/* V5: visible, repeatable entrances and purposeful interaction. */
.js .v5-reveal{opacity:1;transform:none;transition:none}
.js .v5-reveal.v5-visible{animation:v5-entrance .78s cubic-bezier(.16,1,.3,1) backwards;animation-delay:var(--entrance-delay,0ms)}
.js .v5-reveal:focus-within{opacity:1!important;transform:none!important}
@keyframes v5-entrance{from{opacity:.18;transform:translateY(38px)}to{opacity:1;transform:translateY(0)}}
.button,.nav-cta,.film-play{position:relative;overflow:hidden;transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s,background .28s}
.button:hover,.button:focus-visible,.nav-cta:hover,.film-play:hover{transform:translateY(-5px);box-shadow:0 12px 25px #0789bd26}
.button:active,.nav-cta:active,.film-play:active{transform:translateY(-1px) scale(.98)}
.button span,.text-link span{display:inline-block;transition:transform .28s}
.button:hover span,.button:focus-visible span,.text-link:hover span{transform:translate(4px,-4px)}
.button:after{content:'';position:absolute;top:-60%;left:-75%;width:35%;height:220%;background:linear-gradient(90deg,transparent,#ffffff35,transparent);transform:rotate(25deg);pointer-events:none}
.button:hover:after,.button:focus-visible:after{animation:v5-sheen .7s ease-out}
@keyframes v5-sheen{to{left:145%}}
.hero-actions .primary{animation:v5-cta-pulse 4.5s ease-in-out infinite}
@keyframes v5-cta-pulse{0%,65%,100%{box-shadow:0 0 0 0 #008dca00}80%{box-shadow:0 0 0 7px #008dca16}90%{box-shadow:0 0 0 12px #008dca00}}
.outcome{transition:transform .35s,box-shadow .35s}.outcome:hover{transform:translateY(-6px);box-shadow:0 14px 30px #31516d0f}
.solutions-tabs button,.hardware-tabs button,.game-selector button{transition:color .25s,border-color .25s,transform .25s}.solutions-tabs button:hover,.hardware-tabs button:hover,.game-selector button:hover{transform:translateY(-3px)}
.solution-picture img,.founder-portrait{transition:transform .8s cubic-bezier(.2,.7,.2,1)}.solution-picture:hover img,.story-art:hover .founder-portrait{transform:scale(1.035)}
.city-partner{display:flex;align-items:center;min-width:205px}.city-partner img{display:block;width:205px;height:57px;object-fit:contain;filter:url('assets/partner-logo-filter.svg?v=2#city-logo-gray');clip-path:inset(2px)}.ecosystem .brand-row{gap:65px}.ecosystem{padding-top:38px;padding-bottom:38px}
.calculator-context{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:25px}.calculator-context label{font-size:11px;font-weight:600;color:#365467;line-height:1.5}.calculator-context select{width:100%;border:1px solid #c6dce6;background:white;color:#173c50;padding:12px 10px;font:inherit;margin-top:8px;border-radius:2px}
.calculator-instruction{color:#758c9a;font-size:10px;line-height:1.6;margin:0 0 25px}.calculator-instruction span{display:block;color:#188fb9;font-size:9px;letter-spacing:1.5px;margin-bottom:7px;font-weight:600}
.range-field{margin-bottom:25px}.range-field label{font-size:12px;gap:18px}.range-field output{font-size:19px;white-space:nowrap}.range-field>div{font-size:9px;gap:15px;line-height:1.5}
.scenario-select{border-top:1px solid #d5e3ea;padding-top:22px;margin-top:10px}.scenario-select>span{font-size:9px;letter-spacing:1.4px;color:#7973ad;font-weight:600}.scenario-select>div{display:flex;gap:5px;margin-top:12px}.scenario-select button{flex:1;min-width:0;border:1px solid #d5dceb;background:white;color:#50697c;padding:11px 5px;font:inherit;font-size:10px;cursor:pointer;transition:background .25s,transform .25s}.scenario-select button[aria-pressed=true]{background:#7766c6;color:white;border-color:#7766c6}.scenario-select button:hover{transform:translateY(-2px)}.scenario-select p{font-size:10px;line-height:1.7;color:#6f8194;margin:12px 0 20px}
.calculator-results .recommended-solution{border-top:1px solid #ffffff35;margin-top:24px;padding-top:22px}.recommended-solution .eyebrow{font-size:8px;color:#bce7f3!important}.recommended-solution h3{font-size:23px;line-height:1.2;font-weight:500;letter-spacing:-.6px;margin:12px 0}.recommended-solution p{font-size:11px;color:#e4f4fc;line-height:1.8}.recommended-solution #workload-summary{color:#c9b9fc;font-size:10px;margin-top:12px}.calculator-results .result-hours output{font-variant-numeric:tabular-nums}.time-chart>div:nth-child(4) b{background:#fda783}.time-chart>div:nth-child(4)>span{color:#fdd4c0}
.lead-form .form-note{line-height:1.8}.lead-form #form-status{font-size:12px;line-height:1.7;color:#31586b}.lead-form #email-preview{margin-top:22px;padding:20px;background:#eef5f9;border-left:2px solid #39a5cf}.lead-form #email-draft{background:white;font-size:11px;line-height:1.7}.copy-enquiry{border:1px solid #b2d0df;background:white;padding:11px 14px;font:inherit;font-size:11px;color:#174d66;cursor:pointer;margin-top:10px}.lead-form #email-preview p{font-size:10px;color:#657c8b;line-height:1.7}
@media(max-width:700px){.calculator-context{grid-template-columns:1fr}.range-field label{font-size:11px}.range-field output{font-size:17px}.ecosystem .brand-row{gap:35px}.city-partner{min-width:170px}.city-partner img{width:170px;height:48px}.calculator-results .recommended-solution h3{font-size:22px}.scenario-select button{font-size:9px}}
@media(prefers-reduced-motion:reduce){.js .v5-reveal,.js .v5-reveal.v5-visible{animation:none!important;opacity:1;transform:none}.hero-actions .primary,.button:after{animation:none!important}*,*:before,*:after{transition:none!important}.button:hover,.button:focus-visible,.nav-cta:hover,.film-play:hover,.outcome:hover{transform:none}.solution-picture:hover img,.story-art:hover .founder-portrait{transform:none}}
