:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#edf2f8;background:#0c1119;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 90% 10%,#16334370,transparent 50%);min-height:100vh}a{color:inherit;text-underline-offset:5px}header,main,footer{max-width:1120px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 32px;border-bottom:1px solid #ffffff16}.brand{text-decoration:none;font-size:24px;font-weight:700;letter-spacing:-1px}.brand span{color:#91e2d2;margin-left:8px}nav{display:flex;flex-wrap:wrap;gap:24px}nav a{text-decoration:none;min-height:44px;display:flex;align-items:center;font-size:16px;color:#bbc8d9}nav a[aria-current]{color:#91e2d2}main{padding:80px 32px 48px}.eyebrow{color:#91e2d2;font-size:13px;text-transform:uppercase;letter-spacing:2px;font-weight:650;margin-bottom:22px}h1{font-size:clamp(44px,7vw,88px);line-height:1.04;letter-spacing:-3px;font-weight:560;margin:0 0 28px;max-width:900px}h2{font-size:28px;line-height:1.2;letter-spacing:-.6px;font-weight:580}p{font-size:17px;line-height:1.7;color:#bac7d8;max-width:760px}.lead{font-size:22px;line-height:1.55;max-width:740px;margin-bottom:34px}.button{display:inline-flex;gap:25px;align-items:center;justify-content:space-between;min-height:52px;padding:14px 22px;background:#b5f3df;color:#102c28;border-radius:9px;text-decoration:none;font-size:17px;font-weight:650}.story{margin:96px 0 70px;max-width:790px}.studios{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.studios article{border:1px solid #ffffff19;border-radius:14px;padding:26px;background:#ffffff03}.studios article>span{color:#79b5ac;font-size:14px}.studios h2{font-size:24px;margin:20px 0 8px}.studios p{margin:0}.contact{border-top:1px solid #ffffff1f;margin-top:65px;padding-top:34px}.search{max-width:760px;margin:35px 0 25px}label{display:block;margin-bottom:10px;font-size:16px}input{width:100%;font:inherit;font-size:17px;min-height:54px;padding:14px 18px;border:1px solid #526779;border-radius:10px;color:#fff;background:#111c28}input::placeholder{color:#9aafc2}.questions{max-width:850px}details{border-bottom:1px solid #ffffff20}summary{cursor:pointer;min-height:65px;padding:20px 26px 20px 0;font-size:18px;line-height:1.45}details p{margin:0 0 24px}footer{display:flex;gap:20px;justify-content:space-between;flex-wrap:wrap;padding:28px 32px max(28px,env(safe-area-inset-bottom));border-top:1px solid #ffffff19;font-size:14px;color:#a9b8c9}footer a{min-height:44px;display:inline-flex;align-items:center}.skip{position:absolute;top:-80px;left:20px}.skip:focus{top:10px;background:#b5f3df;color:#102c28;padding:15px;z-index:5}:focus-visible{outline:3px solid #91e2d2;outline-offset:5px}[hidden]{display:none!important}@media(max-width:600px){header{padding:18px 20px;gap:12px}.brand{font-size:22px}nav{gap:14px}nav a{font-size:16px}main{padding:48px 20px 36px}h1{letter-spacing:-1.7px}.lead{font-size:20px}.story{margin:64px 0 48px}.studios{grid-template-columns:1fr;gap:12px}.studios article{padding:22px}.contact{margin-top:44px}footer{padding-left:20px;padding-right:20px}summary{font-size:18px}p{font-size:17px}}@media(prefers-reduced-motion:no-preference){a,summary{transition:color .15s}a:hover,summary:hover{color:#91e2d2}.button:hover{color:#102c28;background:#d2faec}}

pre{max-width:100%;overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:1rem;background:#151c28;border-radius:12px}code{overflow-wrap:anywhere}
.oauth-page main{max-width:780px;padding-top:40px}.oauth-page h1{font-size:clamp(34px,5vw,56px);letter-spacing:-1.5px}.oauth-page button{min-height:48px;font:inherit;font-size:17px;padding:12px 20px;margin:8px 8px 0 0;border:1px solid #91e2d2;border-radius:10px;background:#b5f3df;color:#102c28;cursor:pointer}.oauth-page button:disabled{opacity:.5;cursor:wait}.oauth-page #cancel{background:transparent;color:inherit}.oauth-page #error{color:#ffa8a8}.oauth-page code{word-break:break-word}

/* Mobile density: vertical spacing 80%, text 90%; retain widths, geometry and media proportions. */
@media(max-width:760px){
body{margin-top:0;margin-bottom:0}
header,main,footer{margin-top:auto;margin-bottom:auto}
header{row-gap:16px;padding-top:22.4px;padding-bottom:22.4px}
.brand{font-size:21.6px}
nav{row-gap:19.2px}
nav a{font-size:14.4px}
main{padding-top:64px;padding-bottom:38.4px}
.eyebrow{font-size:11.7px;margin-bottom:17.6px}
h1{font-size:clamp(39.6px,6.3vw,79.2px);margin-top:0;margin-bottom:22.4px}
h2{font-size:25.2px}
p{font-size:15.3px}
.lead{font-size:19.8px;margin-bottom:27.2px}
.button{row-gap:20px;padding-top:11.2px;padding-bottom:11.2px;font-size:15.3px}
.story{margin-top:76.8px;margin-bottom:56px}
.studios{row-gap:14.4px}
.studios article{padding-top:20.8px;padding-bottom:20.8px}
.studios article>span{font-size:12.6px}
.studios h2{font-size:21.6px;margin-top:16px;margin-bottom:6.4px}
.studios p{margin-top:0;margin-bottom:0}
.contact{margin-top:52px;padding-top:27.2px}
.search{margin-top:28px;margin-bottom:20px}
label{margin-bottom:8px;font-size:14.4px}
input{font-size:15.3px;padding-top:11.2px;padding-bottom:11.2px}
summary{padding-top:16px;padding-bottom:16px;font-size:16.2px}
details p{margin-top:0;margin-bottom:19.2px}
footer{row-gap:16px;padding-top:22.4px;padding-bottom:max(22.4px,env(safe-area-inset-bottom));font-size:12.6px}
.skip:focus{padding-top:12px;padding-bottom:12px}
@media(max-width:600px){header{padding-top:14.4px;padding-bottom:14.4px;row-gap:9.6px}
.brand{font-size:19.8px}
nav{row-gap:11.2px}
nav a{font-size:14.4px}
main{padding-top:38.4px;padding-bottom:28.8px}
.lead{font-size:18px}
.story{margin-top:51.2px;margin-bottom:38.4px}
.studios{row-gap:9.6px}
.studios article{padding-top:17.6px;padding-bottom:17.6px}
.contact{margin-top:35.2px}
summary{font-size:16.2px}
p{font-size:15.3px}}
pre{padding-top:1rem;padding-bottom:1rem}
.oauth-page main{padding-top:32px}
.oauth-page h1{font-size:clamp(30.6px,4.5vw,50.4px)}
.oauth-page button{font-size:15.3px;padding-top:9.6px;padding-bottom:9.6px;margin-top:6.4px;margin-bottom:0}
:root{font-size:90%}
input:not([type=checkbox]):not([type=radio]),textarea,select{font-size:16px!important}
button,summary,a.button{min-height:44px!important}
}


/* Mobile page zoom: preserve pan, component swipe rules and desktop scaling. */
@media (max-width:760px) {
  :where(html,body,main,aside,section,article,div,dialog,form,nav,pre,textarea) {
    touch-action:pan-x pan-y;
  }
}

