/* Photo, typography and ribbon choreography. Approved content remains in index.html. */
:root{--line-green:#00864b;--motion-ease:cubic-bezier(.16,1,.3,1)}
.header-line,.cta,.mobile-line a{background:var(--line-green)}
.header-line:hover,.cta:before{background:#00693b}
.cta{border-radius:8px;box-shadow:0 8px 0 -5px #006d3c28}
.cta-arrow{background:#fff;color:var(--line-green);border-color:#fff;flex-shrink:0}
.hero{min-height:780px;max-height:1000px;background:#f3f7fc}
.hero-content{padding-top:55px}
.hero h1{font-size:clamp(62px,6.35vw,96px);line-height:1.35;letter-spacing:-.055em}
.hero-line>span{animation:none}
.hero-char{display:inline-block;animation:character-enter 1.25s calc(.14s + var(--char)*.045s) var(--motion-ease) both}
.hero-sub{margin-top:24px}
.hero-description{max-width:520px}
.hero .cta{margin-top:27px;min-width:340px}
.hero-cta-note{position:absolute;z-index:3;left:max(6vw,calc((100vw - 1267px)/2));bottom:72px;font-size:10px;color:#52637a}
.hero-art{position:absolute;inset:0 -1% 0 auto;width:59%;pointer-events:none;z-index:1}
.hero-ribbon{position:absolute;inset:-4% -6% 0 auto;width:110%;height:110%;max-width:none;transform:translateY(calc(var(--hero-photo-y,0px)*-.45)) rotate(-6deg)}
.hero-ribbon path{stroke-dasharray:1800;animation:ribbon-in 2.2s .2s var(--motion-ease) both}
.hero-ribbon .ribbon-blue{animation-delay:.45s}
.hero-art-word{position:absolute;left:9%;top:11%;font:900 clamp(100px,13vw,220px)/.82 Arial,sans-serif;letter-spacing:-.09em;color:#dce7f7;transform:rotate(-7deg) translateY(calc(var(--hero-photo-y,0px)*-.8));animation:art-type-in 1.6s .2s var(--motion-ease) both}
.hero-photo-main,.hero-photo-detail{position:absolute;overflow:hidden;box-shadow:0 12px 35px #1e38580a}
.hero-photo-main{width:47%;height:66%;right:8%;top:12%;border-radius:160px 160px 12px 12px;transform:translateY(var(--hero-photo-y,0px)) rotate(5deg);animation:portrait-enter 1.7s .18s var(--motion-ease) both}
.hero-photo-detail{width:40%;height:26%;left:4%;top:59%;border-radius:8px;transform:translateY(calc(var(--hero-photo-y,0px)*-.6)) rotate(-7deg);animation:detail-enter 1.7s .4s var(--motion-ease) both}
.hero-photo-main img,.hero-photo-detail img{width:100%;height:100%;object-fit:cover}
.hero-photo-main img{object-position:53% 40%;transform:scale(1.06)}
.hero-photo-detail img{object-position:center}
.photo-index{position:absolute;right:10%;bottom:10%;font-size:9px;letter-spacing:.14em;color:var(--blue);writing-mode:vertical-rl}
.orbit-seal{position:absolute;width:120px;height:120px;right:7%;top:6%;color:var(--blue);z-index:2}
.orbit-seal svg{width:100%;height:100%;animation:seal-spin 25s linear infinite;overflow:visible}
.orbit-seal text{font:700 11px Arial,sans-serif;fill:currentColor;letter-spacing:2px}
.orbit-seal>span{position:absolute;inset:0;display:grid;place-items:center;font-size:34px;transform:rotate(5deg)}
.intro{padding-bottom:80px}
.connection-diagram{margin-top:60px}
.possibility-scene{margin:100px -3vw 0;position:relative;isolation:isolate}
.possibility-canvas{position:relative;height:750px;border-radius:42px;overflow:hidden;background:#f0f4f9;color:#274861}
.scene-type{position:absolute;inset:40px -30px auto;font:900 clamp(120px,15.5vw,235px)/.86 Arial,sans-serif;letter-spacing:-.075em;white-space:nowrap;pointer-events:none;color:#d5dfeb}
.scene-type span{display:block;transform:translateX(var(--scene-type-x,0px))}
.scene-type span+span{margin-top:190px;transform:translateX(calc(var(--scene-type-x,0px)*-1))}
.scene-ribbons{position:absolute;inset:0;width:100%;height:100%;max-width:none;transform:rotate(var(--scene-ribbon-turn,0deg)) scale(1.1)}
.scene-ribbon-one{stroke-dasharray:1800;stroke-dashoffset:0}
.scene-photo{position:absolute;overflow:hidden;z-index:2;border-radius:6px;will-change:transform}
.scene-photo img{height:100%;width:100%;object-fit:cover;transition:transform 1.6s var(--motion-ease)}
.scene-photo-a{width:38%;height:36%;left:6%;top:25%;transform:translateY(var(--scene-photo-a,0px)) rotate(-5deg)}
.scene-photo-b{width:25%;height:62%;right:8%;top:14%;border-radius:150px 150px 6px 6px;transform:translateY(var(--scene-photo-b,0px)) rotate(6deg)}
.scene-photo-b img{object-position:53% 42%}
.scene-photo-c{width:28%;height:28%;left:36%;bottom:7%;transform:translateY(var(--scene-photo-c,0px)) rotate(3deg)}
.scene-caption{position:absolute;left:6%;bottom:8%;font-size:clamp(20px,2vw,30px);font-weight:700;line-height:1.8;z-index:3}
.scene-number{position:absolute;right:4%;bottom:5%;font-size:10px;letter-spacing:.08em;color:#526b81}
.js-ready .possibility-scene:not(.is-visible) .scene-photo{clip-path:inset(100% 0 0)}
.js-ready .possibility-scene:not(.is-visible) .scene-photo img{transform:scale(1.2)}
.possibility-scene.is-visible .scene-photo{animation:photo-reveal 1.5s var(--motion-ease) both}
.possibility-scene.is-visible .scene-photo-b{animation-delay:.15s}
.possibility-scene.is-visible .scene-photo-c{animation-delay:.3s}
.possibility-scene.is-visible .scene-ribbon-one{animation:ribbon-in 2.1s .2s var(--motion-ease) both}
.concern-cta{margin-top:27px;font-size:15px;min-width:340px}
.concern-list li{transition:padding-left .4s var(--motion-ease),background .4s,opacity .9s,transform .9s}
.concern-list li:hover{padding-left:12px;background:#ffffff75}
.line-copy .cta{min-width:350px;font-size:17px}
.line-copy .cta small{font-size:10px}
.story-stage{padding:27px 25px 30px;overflow:hidden;border:1px solid #dae4ef;background:#edf4fc;border-radius:24px;min-height:0}
.stage-top{position:relative;z-index:3}
.story-photos{height:340px;position:relative;margin:26px -25px 24px;overflow:hidden;background:#d4e5ef}
.story-image{position:absolute;inset:0;opacity:0;transform:scale(1.08);transition:clip-path .9s var(--motion-ease),transform 1.3s var(--motion-ease),opacity .5s;clip-path:inset(0 100% 0 0)}
.story-image img{width:100%;height:100%;object-fit:cover}
.story-image.active{opacity:1;clip-path:inset(0);transform:scale(1);z-index:2}
.story-image.previous{opacity:1;clip-path:inset(0);z-index:1}
.story-image-detail img{object-position:20% 50%;transform:scale(1.25);transform-origin:25% 50%}
.story-image:last-of-type img{object-position:50% 36%}
.stage-label{position:relative;z-index:3}
.stage-steps{margin-top:22px}
.stage-steps span{transition:background .5s,color .5s,transform .5s}
.stage-steps span.active{transform:scale(1.06)}
.support-contact .text-link{color:var(--line-green);border-color:var(--line-green)}
.business-banner{min-height:550px;margin:0 3vw;padding:70px 5vw;border-radius:30px;overflow:hidden}
.business-copy{max-width:63%;position:relative;z-index:3}
.business-copy h2{font-size:clamp(30px,3.4vw,50px)}
.business-copy>p:not(.eyebrow){font-size:13px}
.business-photo{position:absolute;inset:0 0 0 auto;width:36%;height:100%;z-index:1;clip-path:polygon(17% 0,100% 0,100% 100%,0 100%)}
.business-photo img{height:100%;width:100%;object-fit:cover;object-position:62% 50%}
.business-ribbon{position:absolute;z-index:2;width:280px;height:700px;border:50px solid #a0dfc6;border-radius:50%;right:26%;top:-100px;transform:rotate(18deg);pointer-events:none}
.business-button{position:relative;z-index:4}
.closing-graphic span{transform:translateX(var(--closing-x,0px)) rotate(-15deg);border-radius:42% 50% 44% 39%}
.closing .cta{min-width:390px}
.image-disclosure{float:right;font-size:9px;color:#607188}
@keyframes character-enter{from{transform:translateY(115%) rotate(7deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}
@keyframes ribbon-in{from{stroke-dashoffset:1800}to{stroke-dashoffset:0}}
@keyframes portrait-enter{from{clip-path:inset(100% 0 0);opacity:0}to{clip-path:inset(0);opacity:1}}
@keyframes detail-enter{from{clip-path:inset(0 100% 0 0);opacity:0}to{clip-path:inset(0);opacity:1}}
@keyframes art-type-in{from{opacity:0;filter:blur(5px)}to{opacity:1;filter:blur(0)}}
@keyframes photo-reveal{from{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}
@keyframes seal-spin{to{transform:rotate(360deg)}}
@media(min-width:1600px){.hero-content{padding-left:0}.hero-art{right:calc((100vw - 1550px)/2);width:850px}.hero-cta-note{left:calc((100vw - 1440px)/2)}}
@media(max-width:1100px){.hero-content{padding-top:80px}.hero-art{width:58%;right:-5%}.hero h1{font-size:6.8vw}.hero-photo-main{height:59%;top:15%;right:8%;width:53%}.hero-photo-detail{width:48%;left:0;top:61%;height:24%}.hero-art-word{left:-3%;font-size:15vw}.hero-cta-note{bottom:63px}.possibility-canvas{height:640px}.scene-type{font-size:17vw}.scene-type span+span{margin-top:190px}.scene-photo-c{left:38%;bottom:8%}.scene-caption{font-size:23px}.scene-photo-b{width:26%;right:6%}.story-photos{height:290px}.business-copy{max-width:66%}.business-copy>p:not(.eyebrow){font-size:12px}.business-photo{width:33%}.business-ribbon{right:23%;opacity:.7}}
@media(max-width:900px){.hero{min-height:730px}.hero-content{padding-top:65px}.hero h1{font-size:7.1vw}.hero-art{top:20px}.hero-photo-main{top:13%;height:57%;right:0;width:60%}.hero-photo-detail{top:64%;height:22%;left:5%;width:55%}.hero-sub{font-size:16px}.hero-description{font-size:11px}.hero .cta{min-width:300px;font-size:15px}.hero-cta-note{bottom:64px}.orbit-seal{width:95px;height:95px;right:3%;top:5%}.line-copy .cta{min-width:0;font-size:13px}.line-copy .cta small{font-size:9px}.scene-caption{font-size:20px}.scene-type span+span{margin-top:210px}.scene-photo-c{width:31%;left:37%}.story-photos{height:260px}.business-banner{padding:55px 5vw;min-height:540px}.business-copy{max-width:68%}.business-ribbon{width:180px;height:600px;border-width:35px;right:27%}.concern-cta{min-width:0;font-size:13px;padding-left:18px;gap:17px}.concern-cta small{font-size:9px}.business-photo{width:29%}}
@media(max-width:640px){
 .hero{min-height:0;height:auto;max-height:none;margin-top:66px}
 .hero-content{padding:35px 24px 105px}
 .hero-label{margin-bottom:20px;font-size:9px}
 .hero h1{font-size:clamp(38px,10.8vw,66px);line-height:1.36;letter-spacing:-.06em}
 .hero-art{width:100%;height:330px;left:0;right:0;top:192px}
 .hero-photo-main{right:10%;top:8%;height:93%;width:45%;border-radius:100px 100px 6px 6px;transform:translateY(calc(var(--hero-photo-y,0px)*.3)) rotate(5deg)}
 .hero-photo-detail{width:43%;height:36%;left:8%;top:58%;transform:translateY(calc(var(--hero-photo-y,0px)*-.35)) rotate(-7deg)}
 .hero-art-word{font-size:26vw;top:24%;left:5%;letter-spacing:-.08em}
 .hero-ribbon{width:107%;height:135%;top:-18%;right:-5%}
 .orbit-seal{width:85px;height:85px;top:0;right:3%}
 .orbit-seal>span{font-size:26px}
 .photo-index{font-size:6px;bottom:8%;right:3%}
 .hero-sub{margin-top:350px;font-size:16px;line-height:1.9;letter-spacing:-.025em}
 .hero-description{font-size:11px;margin-top:13px;max-width:none}
 .hero .cta{min-width:0;width:100%;min-height:75px;font-size:15px;padding:13px 19px;margin-top:23px}
 .hero .cta small{font-size:9px}
 .hero-cta-note{left:24px;bottom:71px;font-size:9px}
 .hero-footer{bottom:20px}
 .intro{padding-bottom:50px}
 .possibility-scene{margin:50px -10px 0}
 .possibility-canvas{height:550px;border-radius:24px}
 .scene-type{font-size:23vw;inset:28px -5px auto;letter-spacing:-.075em;line-height:.9}
 .scene-type span+span{margin-top:235px}
 .scene-ribbons{width:150%;left:-25%;transform:rotate(var(--scene-ribbon-turn,0deg)) scale(1.2)}
 .scene-photo-a{width:55%;height:26%;left:5%;top:23%;border-radius:4px}
 .scene-photo-b{width:33%;height:43%;right:7%;top:13%;border-radius:90px 90px 4px 4px}
 .scene-photo-c{width:40%;height:21%;left:auto;right:8%;bottom:12%}
 .scene-caption{left:7%;bottom:9%;font-size:clamp(12px,3.6vw,16px);line-height:1.8;max-width:45%}
 .scene-number{font-size:8px;right:7%;bottom:4%}
 .connection-diagram{margin-top:35px}
 .concern-cta{width:100%;font-size:14px;padding:14px 17px;min-height:75px;margin-top:24px}
 .line-copy .cta{font-size:14px;min-height:75px}
 .line-copy .cta small{font-size:9px}
 .story-stage{top:66px;border-radius:0;padding:18px 24px;height:220px;min-height:0;overflow:hidden}
 .stage-top{grid-column:1;display:block}
 .stage-top>span:first-child{display:block;margin-bottom:2px;font-size:8px}
 .story-current{font-size:26px}
 .story-photos{position:absolute;top:0;right:0;bottom:0;margin:0;width:47%;height:100%;border-radius:70px 0 0 0}
 .story-photos:after{position:absolute;content:'';inset:0;box-shadow:inset 12px 0 20px #20344d0a;z-index:3;pointer-events:none}
 .story-image img{object-position:55% 50%}
 .story-image-detail img{object-position:25% 50%;transform:scale(1.4)}
 .stage-label{grid-column:1;max-width:160px;font-size:16px;line-height:1.7;margin:12px 0 0}
 .stage-steps{grid-column:1;gap:7px;margin:0;max-width:160px}
 .stage-steps span{width:20px;height:20px;font-size:8px;flex-shrink:0}
 .stage-steps i{min-width:4px}
 .business-banner{padding:42px 26px 270px;min-height:0;margin:0 14px;border-radius:20px}
 .business-copy{max-width:none}
 .business-copy h2{font-size:29px}
 .business-copy>p:not(.eyebrow){font-size:12px}
 .business-photo{height:230px;width:100%;top:auto;bottom:0;clip-path:polygon(0 10%,100% 0,100% 100%,0 100%)}
 .business-photo img{object-position:50% 45%}
 .business-ribbon{width:440px;height:220px;right:-45px;top:auto;bottom:138px;border-width:35px;transform:rotate(-15deg);opacity:1}
 .closing .cta{min-width:0;font-size:14px;width:100%}
 .closing .cta small{font-size:9px}
 .image-disclosure{float:none;display:block;margin-top:7px;font-size:8px}
 .mobile-line a{font-size:14px;border-radius:8px}
}
@media(max-width:359px){.hero-content{padding-inline:20px}.hero h1{font-size:10.7vw}.hero-label{font-size:8px}.hero-art{top:180px;height:300px}.hero-sub{margin-top:322px;font-size:14px}.hero-description{font-size:10px}.hero .cta{font-size:13px;padding-inline:16px;gap:10px}.hero .cta small{font-size:8px}.hero-cta-note{left:20px;font-size:8px}.possibility-canvas{height:510px}.scene-caption{font-size:12px}.scene-photo-c{bottom:15%}.scene-type span+span{margin-top:220px}.stage-label{font-size:14px}.stage-steps{gap:5px}.concern-cta{font-size:12px}.concern-cta small{font-size:8px}}
.motion-off .hero-char{animation:none;transform:none;opacity:1}
.motion-off .hero-art-word,.motion-off .hero-ribbon,.motion-off .hero-photo-main,.motion-off .hero-photo-detail,.motion-off .scene-type span,.motion-off .scene-ribbons,.motion-off .scene-photo,.motion-off .closing-graphic span{transform:none!important}
.motion-off .scene-photo,.motion-off .hero-photo-main,.motion-off .hero-photo-detail{clip-path:none!important}
.motion-off .story-image{transition:none!important}
.motion-off .hero-ribbon path,.motion-off .scene-ribbon-one{stroke-dashoffset:0}
@media(prefers-reduced-motion:reduce){.hero-char{animation:none;transform:none;opacity:1}.hero-art-word,.hero-ribbon,.hero-photo-main,.hero-photo-detail,.scene-type span,.scene-ribbons,.scene-photo{transform:none!important}.scene-photo,.hero-photo-main,.hero-photo-detail{clip-path:none!important}.hero-ribbon path,.scene-ribbon-one{stroke-dashoffset:0}}
