html,body,#root{background:#000;width:100%;margin:0;padding:0}html{scrollbar-width:thin;scrollbar-color:#ffffff29 transparent}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:2px}body{color:#fff;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-user-select:none;user-select:none;font-family:Inter Tight,Helvetica Neue,Segoe UI,Arial,sans-serif;overflow-x:hidden}.scroll-space{pointer-events:none;height:1300vh}.stage{position:fixed;inset:0}.vignette{pointer-events:none;z-index:30;background:radial-gradient(#0000 52%,#0000008c 100%);position:fixed;inset:0}.grain{pointer-events:none;z-index:31;opacity:.045;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='160' height='160' filter='url(%23n)' opacity='0.55'/></svg>");background-repeat:repeat;position:fixed;inset:0}.overlay{pointer-events:none;z-index:10;position:fixed;inset:0}.wordmark{letter-spacing:.3em;white-space:nowrap;margin:0;font-size:clamp(44px,9.5vw,138px);font-weight:200;position:absolute;top:50%;left:50%;transform:translate(-50%,-56%)}.wordmark span{opacity:0;will-change:opacity, filter;text-shadow:0 0 34px #ffffff4d}.wordsub{text-align:center;letter-spacing:.24em;color:#ffffff9e;opacity:0;will-change:opacity;width:max-content;max-width:86vw;font-size:clamp(11px,1.15vw,15px);font-weight:300;line-height:2.3;position:absolute;top:calc(50% + clamp(34px,6.6vw,96px));left:50%;transform:translate(-50%)}.statement{text-align:center;letter-spacing:.15em;color:#ffffffeb;text-shadow:0 2px 26px #000000b3;opacity:0;will-change:opacity;width:min(780px,86vw);font-size:clamp(15px,1.7vw,22px);font-weight:250;line-height:2.05;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.statement.low{top:auto;bottom:17%;transform:translate(-50%)}.wordmark2{opacity:0;will-change:opacity, transform;position:absolute;top:50%;left:8%;transform:translateY(-50%)}.wordmark2-title{letter-spacing:.42em;font-size:clamp(28px,3.6vw,52px);font-weight:200}.wordmark2-tag{letter-spacing:.4em;text-transform:uppercase;opacity:.75;margin-top:16px;font-size:clamp(10px,1vw,13px);font-weight:300}.wordmark2-sub{letter-spacing:.14em;opacity:.58;max-width:min(420px,74vw);margin-top:24px;font-size:clamp(11px,1.1vw,15px);font-weight:300;line-height:2}.caption{text-align:center;opacity:0;will-change:opacity, transform;width:max-content;max-width:86vw;position:absolute;bottom:17%;left:50%;transform:translate(-50%)}.caption h3{letter-spacing:.5em;text-transform:uppercase;margin:0;padding-left:.5em;font-size:clamp(17px,2vw,27px);font-weight:250}.caption p{letter-spacing:.14em;opacity:.6;margin:16px 0 0;font-size:clamp(11px,1.05vw,14px);font-weight:300}.caption-detail{letter-spacing:.22em;text-transform:uppercase;opacity:.36;margin-top:12px;font-size:clamp(9px,.9vw,11px);font-weight:300;display:block}.kicker{letter-spacing:.52em;text-transform:uppercase;color:#ffffff80;opacity:0;will-change:opacity;padding-left:.52em;font-size:clamp(10px,1vw,12px);font-weight:300;position:absolute;top:13%;left:50%;transform:translate(-50%)}.quote{text-align:center;letter-spacing:.16em;opacity:0;color:#ffffffd9;width:min(720px,84vw);font-size:clamp(15px,1.6vw,21px);font-weight:300;line-height:2.1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.quote-dim{opacity:.6;margin-top:20px;font-size:.82em;display:block}.nav{pointer-events:auto;flex-direction:column;align-items:center;gap:11px;transition:opacity .5s;display:flex;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.dots{gap:15px;display:flex}.dot{opacity:.2;cursor:pointer;background:#fff;border:0;border-radius:50%;width:5px;height:5px;padding:0;transition:opacity .45s,transform .45s}.dot:hover{opacity:.6}.dot.on{opacity:.95;transform:scale(1.3)}.phasename{letter-spacing:.32em;text-transform:uppercase;opacity:.32;white-space:nowrap;font-size:10px;font-weight:300}.scrollhint{letter-spacing:.34em;text-transform:uppercase;opacity:0;color:#ffffffbf;flex-direction:column;align-items:center;gap:12px;padding-left:.34em;font-size:10px;font-weight:300;display:flex;position:absolute;bottom:72px;left:50%;transform:translate(-50%)}.scrollhint i{transform-origin:top;background:linear-gradient(#fff,#0000);width:1px;height:36px;animation:2.4s ease-in-out infinite scrolldrop}@keyframes scrolldrop{0%{opacity:.7;transform:scaleY(0)}45%{opacity:.7;transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}.finalpulse{opacity:0;pointer-events:none;width:170px;height:170px;margin:-85px 0 0 -85px;position:absolute;top:50%;left:50%}.finalpulse i{opacity:0;border:1px solid #ffffff73;border-radius:50%;animation:3.6s cubic-bezier(.2,.55,.4,1) infinite ringpulse;position:absolute;inset:0;transform:scale(.1)}.finalpulse i:nth-child(2){animation-delay:1.8s}@keyframes ringpulse{0%{opacity:.5;transform:scale(.1)}70%{opacity:.16}to{opacity:0;transform:scale(1)}}.final{text-align:center;opacity:0;pointer-events:none;will-change:opacity, transform;position:absolute;top:calc(50% + 96px);left:50%;transform:translate(-50%,16px)}.final-lead{letter-spacing:.18em;opacity:.82;font-size:clamp(14px,1.5vw,19px);font-weight:300}.final-cta{letter-spacing:.32em;text-transform:uppercase;color:#ffffffd9;cursor:pointer;background:0 0;border:1px solid #ffffff38;border-radius:999px;margin-top:30px;padding:13px 34px 13px calc(34px + .32em);font-family:inherit;font-size:11px;font-weight:300;transition:border-color .5s,background .5s,color .5s}.final-cta:hover{color:#fff;background:#ffffff0f;border-color:#fff9}.overlay.hidden .nav{opacity:0;pointer-events:none}.contact{z-index:20;box-sizing:border-box;background:#000;border-top:1px solid #ffffff12;justify-content:center;align-items:center;min-height:100vh;padding:130px 24px 90px;display:flex;position:relative}.contact-inner{width:min(640px,94vw)}.contact h2{text-align:center;letter-spacing:.2em;margin:0 0 70px;font-size:clamp(21px,2.6vw,34px);font-weight:200}.contact label{margin-bottom:46px;display:block}.contact label span{letter-spacing:.3em;text-transform:uppercase;color:#ffffff73;margin-bottom:14px;font-size:11px;font-weight:300;display:block}.contact input,.contact textarea{box-sizing:border-box;color:#fff;letter-spacing:.04em;-webkit-user-select:text;user-select:text;background:0 0;border:none;border-bottom:1px solid #ffffff2e;border-radius:0;outline:none;width:100%;padding:6px 0 12px;font-family:inherit;font-size:15px;font-weight:300;transition:border-color .4s}.contact textarea{resize:vertical;min-height:58px}.contact input:focus,.contact textarea:focus{border-bottom-color:#fff9}.contact ::placeholder{color:#ffffff38;letter-spacing:.1em}.contact-row{grid-template-columns:1fr 1fr;gap:36px;display:grid}@media (width<=640px){.contact-row{grid-template-columns:1fr;gap:0}}.contact-submit{margin:26px auto 0;display:block}.contact footer{text-align:center;letter-spacing:.34em;text-transform:uppercase;opacity:.25;margin-top:100px;font-size:10px;font-weight:300}

/* === readability fixes: dark scrim + stronger shadows behind text === */
.caption,.statement,.quote,.wordsub,.kicker,.final,.wordmark2{text-shadow:0 0 6px #000,0 0 14px #000,0 2px 24px #000,0 0 40px rgba(0,0,0,.9)}
.caption{padding:28px 44px;border-radius:24px;background:radial-gradient(ellipse at center,rgba(0,0,0,.78) 0%,rgba(0,0,0,.55) 55%,rgba(0,0,0,0) 100%)}
.caption p{opacity:.92;color:#fff}
.caption-detail{opacity:.7;color:#fff}
.statement{padding:30px 40px;border-radius:28px;background:radial-gradient(ellipse at center,rgba(0,0,0,.72) 0%,rgba(0,0,0,.48) 55%,rgba(0,0,0,0) 100%);color:#fff}
.quote{padding:34px 44px;border-radius:28px;background:radial-gradient(ellipse at center,rgba(0,0,0,.72) 0%,rgba(0,0,0,.48) 55%,rgba(0,0,0,0) 100%);color:#fff}
.wordsub{color:#fff;padding:14px 28px;border-radius:18px;background:radial-gradient(ellipse at center,rgba(0,0,0,.6) 0%,rgba(0,0,0,0) 100%)}
.kicker{color:#ffffffd9}
.wordmark2{padding:30px 36px;border-radius:24px;background:radial-gradient(ellipse at center,rgba(0,0,0,.7) 0%,rgba(0,0,0,.45) 60%,rgba(0,0,0,0) 100%)}
.wordmark2-tag{opacity:.9}
.wordmark2-sub{opacity:.85}
.phasename{opacity:.6;text-shadow:0 0 8px #000,0 1px 12px #000}
.final-lead{opacity:1}
.scrollhint{text-shadow:0 0 8px #000,0 1px 12px #000}
.caption,.statement,.quote,.wordmark2{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);-webkit-mask-image:radial-gradient(ellipse at center,#000 55%,transparent 100%);mask-image:radial-gradient(ellipse at center,#000 55%,transparent 100%)}
.caption h3{text-shadow:0 0 10px #000,0 2px 20px #000}
/* stronger, more opaque scrim behind text */
.caption{background:radial-gradient(ellipse at center,rgba(0,0,0,.94) 0%,rgba(0,0,0,.8) 60%,rgba(0,0,0,0) 100%)}
.statement,.quote{background:radial-gradient(ellipse at center,rgba(0,0,0,.92) 0%,rgba(0,0,0,.75) 60%,rgba(0,0,0,0) 100%)}
.wordmark2{background:radial-gradient(ellipse at center,rgba(0,0,0,.92) 0%,rgba(0,0,0,.72) 60%,rgba(0,0,0,0) 100%)}
.wordsub{background:radial-gradient(ellipse at center,rgba(0,0,0,.85) 0%,rgba(0,0,0,0) 100%)}
.caption,.statement,.quote,.wordmark2{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}
/* lighter scrim: background visible through it, text still readable */
.caption{background:radial-gradient(ellipse at center,rgba(0,0,0,.5) 0%,rgba(0,0,0,.32) 55%,rgba(0,0,0,0) 100%)}
.statement,.quote{background:radial-gradient(ellipse at center,rgba(0,0,0,.48) 0%,rgba(0,0,0,.3) 55%,rgba(0,0,0,0) 100%)}
.wordmark2{background:radial-gradient(ellipse at center,rgba(0,0,0,.48) 0%,rgba(0,0,0,.3) 55%,rgba(0,0,0,0) 100%)}
.wordsub{background:radial-gradient(ellipse at center,rgba(0,0,0,.4) 0%,rgba(0,0,0,0) 100%)}
.caption,.statement,.quote,.wordmark2{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
/* v2: no blur, no scrim — keep the vibe; readability via bolder text + stronger shadow */
.caption,.statement,.quote,.wordmark2,.wordsub{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;-webkit-mask-image:none;mask-image:none;padding:0;border-radius:0}
.caption h3{font-weight:400}
.caption p{font-weight:400;opacity:1}
.caption-detail{font-weight:400;opacity:.8}
.statement{font-weight:400;color:#fff}
.quote{font-weight:400;color:#fff}
.quote-dim{opacity:.75}
.wordsub{font-weight:400;color:#fff}
.wordmark2-title{font-weight:300}
.wordmark2-tag{font-weight:400;opacity:.95}
.wordmark2-sub{font-weight:400;opacity:.9}
.kicker{font-weight:400;color:#ffffffd9}
.final-lead{font-weight:400}
.caption,.statement,.quote,.wordsub,.kicker,.wordmark2,.final{text-shadow:0 0 2px #000,0 0 8px #000,0 0 18px #000,0 2px 30px #000}
