/* One cadence, with immediate press feedback and slower spatial transitions. */
:root{--studio-ease:cubic-bezier(.22,1,.36,1)}
html.studio-travelling{scroll-snap-type:none!important;scroll-behavior:auto!important}
.wycf-flagship .flagship-copy{animation:none}
.wycf-flagship .flagship-video{transition:none}
.wycf-flagship .flagship-pagination span{transition:opacity 240ms var(--studio-ease),transform 380ms var(--studio-ease);transform:scaleX(.75);transform-origin:center}
.wycf-flagship .flagship-pagination [aria-current=step] span{transform:scaleX(1)}
:is(.flagship-next,.flagship-prev,.flagship-close){transition:background 220ms var(--studio-ease),color 220ms var(--studio-ease),scale 220ms var(--studio-ease),opacity 220ms var(--studio-ease)!important}
:is(.flagship-next,.flagship-prev,.flagship-close):active:not(:disabled){scale:.92}
:is(.contact-disclosure,.flagship-contact,.studio-standalone button[type=submit]){transition:background-color 240ms var(--studio-ease),color 240ms var(--studio-ease),border-color 240ms var(--studio-ease),scale 220ms var(--studio-ease)!important}
:is(.contact-disclosure,.flagship-contact,.studio-standalone button[type=submit]):active{scale:.975}

.explore-work{transition:opacity 240ms var(--studio-ease)}
.explore-work svg{transition:translate 350ms var(--studio-ease)}
@media(hover:hover){
 :is(.flagship-next,.flagship-prev,.flagship-close):hover:not(:disabled){scale:1.06}
 .explore-work:hover svg{translate:0 4px}
}
.screen-complete path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 450ms var(--studio-ease) 150ms}
.is-complete .screen-complete path{stroke-dashoffset:0}
.service-screen:not(.motion-in-view) :is(.orbit-energy,.campaign-light,.node-label::after),html.flagship-open .service-screen :is(.orbit-energy,.campaign-light,.node-label::after){animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 .studio-standalone *, .wycf-flagship *, .screen-progress *{animation:none!important;transition:none!important}
 .screen-complete path{stroke-dashoffset:0}
}

.screen-counter{position:absolute;left:calc(100% + 12px);top:0;height:28px;display:flex;align-items:center;font:400 11px/1 var(--brand-font-body,Arial,sans-serif);font-variant-numeric:tabular-nums;letter-spacing:.03em;color:var(--brand-text);opacity:.6;white-space:nowrap;pointer-events:none}
.screen-progress.is-complete .screen-counter{opacity:0;visibility:hidden}


/* Native chapter settling, without JS gesture locks or forced intermediate stops. */
html:has(.studio-standalone):not(.flagship-open){scroll-snap-type:y mandatory!important;scroll-padding-top:0}
.studio-standalone :is(.heading,.service-screen,.studio-ending){scroll-snap-align:start!important;scroll-snap-stop:always!important}
@media(prefers-reduced-motion:reduce){html:has(.studio-standalone):not(.flagship-open){scroll-snap-type:none!important}}

/* Case study footer restored beneath each service composition. */
.studio-standalone .service-screen{grid-template-rows:minmax(396px,1fr) auto;gap:32px;padding-block:64px 80px;min-height:700px;height:100svh}
.studio-standalone .service-composition{min-height:0}
.studio-standalone .service-screen>.service-case-entry{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:calc(100% - 48px);margin:0 24px;padding:18px 0 0;min-height:64px;gap:24px;border:0;border-top:1px solid var(--brand-border);border-radius:0;background:none;box-shadow:none}
.studio-standalone .service-case-identification{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.studio-standalone .service-case-context{font-size:11px;line-height:1.6;color:var(--brand-text-tertiary)}
 .studio-standalone .service-case-action{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:10px 16px;border:1px solid var(--brand-border);border-radius:6px;background:transparent;box-shadow:none;font-size:11px;font-weight:400;line-height:1.4}
.studio-standalone .service-case-entry:hover .service-case-action{background:transparent;border-color:var(--brand-text-tertiary);text-decoration:none}
@media(max-width:850px){
 .studio-standalone .service-screen{height:auto;min-height:100svh;grid-template-rows:auto auto;padding:48px 24px 72px;gap:32px}
 .studio-standalone .service-composition{min-height:0;gap:40px}
 .studio-standalone .service-screen>.service-case-entry{width:100%;margin:0;gap:16px}
}


/* Quiet circular case opener. */
.studio-standalone .service-case-action{width:40px;height:40px;min-width:40px;padding:0;border-radius:50%}
/* Inset case viewer: keep the homepage visible through a soft backdrop. */
.wycf-flagship{--viewer-gap:clamp(16px,3vw,48px);inset:var(--viewer-gap);width:calc(100% - var(--viewer-gap)*2);height:calc(100dvh - var(--viewer-gap)*2);margin:0;max-width:none;max-height:none;border-radius:10px;box-shadow:0 24px 90px rgba(0,0,0,.2);--case-margin:4%;--case-title:clamp(38px,4.6vw,84px)}
.wycf-flagship::backdrop{background:rgba(30,28,24,.22);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
@media(max-width:700px){.wycf-flagship{--viewer-gap:10px;--case-margin:20px;--case-title:clamp(30px,8vw,48px);border-radius:8px}}
.wycf-flagship .flagship-controls{position:absolute;inset:0}
.wycf-flagship .flagship-controls>.flagship-prev,.wycf-flagship .flagship-controls>.flagship-next{position:absolute;top:50%}
.wycf-flagship .flagship-pagination{position:absolute;bottom:20px}
@media(max-width:700px){.wycf-flagship .flagship-pagination{bottom:12px}}

/* Opening is one calm dissolve; the scrim appears with the panel. */
.wycf-flagship[open]::backdrop{animation:case-backdrop-enter 800ms cubic-bezier(.25,.1,.25,1) both}
@keyframes case-backdrop-enter{from{opacity:0;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}
@media(prefers-reduced-motion:reduce){.wycf-flagship[open]::backdrop{animation:none}}

/* Footer interaction: stable typography and divider, soft response at the opener. */
.studio-standalone .service-screen>.service-case-entry:is(:hover,:active){background:none;border-top-color:var(--brand-border);box-shadow:none;transform:none;scale:1}
.studio-standalone .service-case-action{scale:1;transform:none;background:transparent;border-color:var(--brand-border);transition:background-color 420ms cubic-bezier(.25,.1,.25,1),border-color 420ms cubic-bezier(.25,.1,.25,1)}
.studio-standalone .service-case-action svg{transform:translate(0,0);transition:transform 420ms cubic-bezier(.25,.1,.25,1),opacity 300ms ease}
.studio-standalone .service-case-entry:hover .service-case-action{background:rgba(255,255,255,.28);border-color:var(--brand-border);scale:1;box-shadow:none}
@media(hover:hover) and (pointer:fine){.studio-standalone .service-case-entry:hover .service-case-action svg{transform:translate(1px,-1px)}}
.studio-standalone .service-case-entry:active .service-case-action{scale:1;transform:none;background:rgba(255,255,255,.42)}
.studio-standalone .service-case-entry:active .service-case-action svg{transform:translate(0,0);opacity:.72}
@media(prefers-reduced-motion:reduce){.studio-standalone .service-case-action,.studio-standalone .service-case-action svg{transition:none}}

/* The full-width footer must never inherit global button scaling. */
body.studio-standalone .service-case-entry{--ui-hover-scale:1;--ui-press-scale:1;scale:1!important;transform:none!important;translate:none!important;transition:none!important}
body.studio-standalone .service-case-entry:is(:hover,:active,:focus){scale:1!important;transform:none!important;translate:none!important}
.studio-standalone .service-case-entry .service-case-name,#launch-campaign .service-case-entry .service-case-name{font-family:"DM Mono",monospace;font-size:10px;font-weight:400;line-height:1.5;letter-spacing:.08em;color:var(--brand-text-secondary)}

@font-face{font-family:"DM Mono";src:url("assets/dm-mono-regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}

/* Keep case evidence and its opener together under the full-width divider. */
.studio-standalone .service-screen>.service-case-entry{justify-content:space-between;gap:24px;padding-right:40px}
.studio-standalone .service-case-identification{flex:0 1 auto}
.studio-standalone .service-case-action{align-self:center}
@media(max-width:850px){.studio-standalone .service-screen>.service-case-entry{gap:16px;padding-right:12px}}

/* Soft outline around the case-study footer. */
body.studio-standalone .service-screen>.service-case-entry{border:1px solid var(--brand-border);border-radius:14px;padding:16px 40px 16px 20px;background:transparent;box-shadow:none}
body.studio-standalone .service-screen>.service-case-entry:is(:hover,:active){border-color:var(--brand-border);background:transparent;box-shadow:none}
@media(max-width:850px){body.studio-standalone .service-screen>.service-case-entry{padding:14px 16px;border-radius:12px}}


.service-case-entry.awaiting-diagram{opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){.service-case-entry.awaiting-diagram{opacity:1;pointer-events:auto}}

/* Restrained footer hover: small, eased zoom with no press bounce. */
body.studio-standalone .service-case-entry{transition:scale 420ms cubic-bezier(.25,.1,.25,1)!important;transform-origin:center}
@media(hover:hover) and (pointer:fine){
 body.studio-standalone .service-case-entry:hover,
 body.studio-standalone .service-case-entry:hover:active{scale:1.008!important}
}
@media(prefers-reduced-motion:reduce){body.studio-standalone .service-case-entry{transition:none!important;scale:1!important}}

/* A distinct, full-width closing footer. */
body.studio-standalone .studio-ending{padding-bottom:0}
body.studio-standalone .studio-ending .founder-credit{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:24px;width:100vw;max-width:none;align-self:center;min-height:88px;margin-top:32px;padding:18px max(24px,calc((100vw - 1312px)/2)) 24px;border:0;border-radius:0;background:#171715;box-shadow:none;color:#f5f2ee}
.founder-identity{display:flex;align-items:center;gap:14px;min-width:0}
.studio-ending .founder-avatar{width:40px;height:40px;flex:0 0 40px}
body.studio-standalone .studio-ending .founder-credit h2{font-family:DM,Arial,sans-serif;font-size:12px;line-height:1.4;font-weight:500;margin:0 0 5px;color:#f5f2ee}
body.studio-standalone .studio-ending .founder-credit p{font-size:11px;line-height:1.5;color:#b4b2ad;margin:0}
body.studio-standalone .studio-ending .founder-credit a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 14px;margin:0;border:1px solid #514f49;border-radius:6px;background:transparent;color:#f5f2ee;font-size:11px;text-decoration:none;scale:1;transition:background-color 240ms ease,border-color 240ms ease}
body.studio-standalone .studio-ending .founder-credit a:hover{background:#272723;border-color:#858178;text-decoration:none}
body.studio-standalone .studio-ending .founder-credit a:active{scale:1}
body.studio-standalone .studio-ending .founder-credit a:focus-visible{outline:2px solid #f5f2ee;outline-offset:4px}
.screen-progress.is-complete{color:#c9c6be}
@media(max-width:850px){body.studio-standalone .studio-ending .founder-credit{padding:18px 24px 28px;gap:16px}.studio-ending .founder-avatar{width:36px;height:36px;flex-basis:36px}body.studio-standalone .studio-ending .founder-credit p{font-size:10px;max-width:210px}}
@media(max-width:420px){body.studio-standalone .studio-ending .founder-credit{flex-wrap:wrap}body.studio-standalone .studio-ending .founder-credit a{margin-left:50px}}

.screen-progress.is-complete .screen-complete{color:#c9c6be}

/* Restore the original inset viewer proportions. */
.wycf-flagship{--viewer-gap:clamp(16px,3vw,48px)}
@media(max-width:700px){.wycf-flagship{--viewer-gap:10px}}
.wycf-flagship.has-case-inquiry .flagship-controls{visibility:hidden}
.wycf-flagship.has-case-inquiry .flagship-close{color:#27251f;background:rgba(255,255,255,.7);border-color:#d8d3ca}
.case-inquiry{position:absolute;inset:0;z-index:1;overflow:auto;overscroll-behavior:contain;background:#f5f2ee;color:#27251f;padding:38px clamp(24px,6vw,80px) 40px;display:flex;flex-direction:column;align-items:flex-start}
.sol-case .case-inquiry{background:#fff}
.wycf-flagship .case-inquiry h2{font-family:var(--brand-font-editorial);font-weight:400;font-size:clamp(32px,3.3vw,48px);line-height:1.1;letter-spacing:-.035em;margin:18px 0 24px}
.wycf-flagship .case-inquiry-back{font-size:11px;min-height:32px;padding:0;text-decoration:underline;text-underline-offset:4px;color:#77726a;align-self:flex-start}
.case-inquiry .contact-panel{display:block;opacity:1;visibility:visible;width:100%;max-width:640px;overflow:visible;transition:none}
.case-inquiry .contact-panel-inner{overflow:visible}
.case-inquiry .inquiry{padding-top:0;margin:0;border:0}
.case-inquiry .field{color:#27251f}
.case-inquiry .field input,.case-inquiry .field textarea{color:#27251f;background:transparent}
.wycf-flagship .case-inquiry button[type=submit]{margin-top:16px;background:#fff;color:#27251f;border:1px solid #d8d3ca;border-radius:6px;padding:10px 18px;font-size:12px}
@media(max-width:700px){.case-inquiry{padding:24px 22px}.wycf-flagship .case-inquiry h2{margin:12px 0 20px}.case-inquiry .fields{grid-template-columns:1fr}}

/* A shared light submit button in Contact and inside both case viewers. */
body.studio-standalone .inquiry button[type=submit][data-ui-button]{background:#fefbfc!important;color:#27251f!important;border:1px solid #d8d3ca;box-shadow:none}
body.studio-standalone .inquiry button[type=submit][data-ui-button]:is(:hover,:active,:focus-visible){background:#ece9e3!important;color:#27251f!important;border-color:#aaa398}

/* The founder footer has no entrance, hover or press animation. */
body.studio-standalone .founder-credit,
body.studio-standalone .founder-credit *{animation:none!important;transition:none!important;transform:none!important;translate:none!important;scale:1!important}
/* Keep the shared progress dock above the footer as it enters the viewport. */
body.studio-standalone .screen-progress{bottom:max(var(--progress-bottom,24px),env(safe-area-inset-bottom,0px))}
.screen-progress.is-complete,.screen-progress.is-complete .screen-complete{color:#716e65}
