.gate{position:fixed;inset:0;z-index:50;display:grid;place-content:center;justify-items:center;gap:18px;padding:var(--gutter);text-align:center;background:radial-gradient(60% 50% at 50% 55%,#0f1113,#050607);transition:opacity 1.1s var(--ease-out) .25s,visibility 0s linear 1.4s}.gate.is-open{opacity:0;visibility:hidden;pointer-events:none}.gate__eyebrow{margin:0;font-size:11px;color:var(--stone-faint)}.gate__title{margin:0 0 10px;font-size:clamp(28px,5vw,44px);font-weight:700;line-height:1.3}.gate__switch{position:relative;width:132px;height:132px;border-radius:50%;border:0;background:transparent;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.gate__ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.gate__ring circle{fill:none;stroke-width:2}.gate__track{stroke:#ece9e21f}.gate__fill{stroke:var(--teal);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--k, 0));filter:drop-shadow(0 0 6px var(--teal-glow))}.gate__logo{position:absolute;inset:34px;display:grid;place-items:center;fill:var(--stone);opacity:.16;transition:opacity .6s,fill .6s,transform .6s var(--ease-spring)}.gate__logo svg{width:100%;height:100%}.gate__switch:hover .gate__logo{opacity:.3}.gate__switch.is-holding .gate__logo{opacity:.9;fill:var(--teal);transform:scale(.94)}.gate.is-open .gate__logo{opacity:1;fill:var(--teal)}.gate__hint{margin:6px 0 0;font-size:15px;color:var(--stone-dim)}.gate__skip{margin-top:18px;padding:6px 10px;border:0;background:none;font-size:13px;color:var(--stone-faint);text-decoration:underline;text-underline-offset:4px;cursor:pointer}.gate__skip:hover{color:var(--stone-dim)}.overlay{position:fixed;z-index:5;pointer-events:none;transition:opacity .6s var(--ease-out),transform .8s var(--ease-out)}.overlay.is-hidden{opacity:0!important;transform:translateY(12px)!important}.hero{inset:auto 0 0;padding:0 var(--gutter) max(28px,env(safe-area-inset-bottom));text-align:center;background:linear-gradient(to top,rgb(11 12 14 / .92) 0%,rgb(11 12 14 / .6) 55%,transparent 100%);padding-top:90px;opacity:0;transform:translateY(20px)}.hero.is-in{opacity:1;transform:none}.hero__stage{margin:0;font-size:11px;color:var(--teal)}.hero__title{margin:4px 0 0;font-size:clamp(34px,6.4vw,64px);font-weight:800;line-height:1.25}.hero__lead{margin:2px 0 0;font-size:clamp(17px,2.2vw,22px);color:var(--stone)}.hero__sub{margin:6px auto 0;max-width:34em;font-size:15px;color:var(--stone-dim)}.hero__story{margin-top:16px;pointer-events:auto;color:var(--teal);border-color:#00adb573}.hero__story[hidden]{display:none}.hero.is-hidden .hero__story{pointer-events:none}.hero__cue{margin:22px auto 0;width:fit-content;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:12px;color:var(--stone-faint)}.hero__cue i{width:1px;height:34px;background:linear-gradient(var(--teal),transparent);transform-origin:top;animation:cue 2.4s var(--ease-out) infinite}@keyframes cue{0%{transform:scaleY(0);opacity:1}70%{transform:scaleY(1);opacity:1}to{transform:scaleY(1);opacity:0}}#hud{position:relative;z-index:20}#hud>*{opacity:0;transition:opacity .8s var(--ease-out) .6s}#hud.is-on>*{opacity:1}.hud{position:fixed;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:max(16px,env(safe-area-inset-top)) var(--gutter) 0;pointer-events:none}.hud>*{pointer-events:auto}.hud__logo{width:44px;height:44px;padding:10px;border-radius:14px;cursor:pointer;fill:var(--stone);transition:fill .3s,transform .4s var(--ease-spring)}.hud__logo:hover{fill:var(--teal);transform:scale(1.05)}.hud__logo svg{width:100%;height:100%;display:block}.hud__nav{display:flex;gap:8px}.hud__bars{display:inline-flex;align-items:flex-end;gap:2px;height:12px}.hud__bars i{width:2px;height:3px;background:currentColor;border-radius:1px;transition:height .3s}.hud__sound.is-on{color:var(--teal)}.hud__sound.is-on .hud__bars i{animation:bar 1.1s ease-in-out infinite}.hud__sound.is-on .hud__bars i:nth-child(2){animation-delay:-.35s}.hud__sound.is-on .hud__bars i:nth-child(3){animation-delay:-.7s}@keyframes bar{0%,to{height:3px}50%{height:12px}}.timer{position:fixed;inset-inline-end:var(--gutter);bottom:max(16px,env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:10px;padding:6px 14px;border-radius:999px;font-size:13px;pointer-events:none}.timer__dot{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 10px var(--teal)}.timer__stage{color:var(--stone-dim)}.timer__time{color:var(--stone);font-size:12px}@media(max-width:720px){.hud__sound-label,.timer{display:none}}.caption{inset-inline-start:var(--gutter);top:50%;width:min(380px,34vw);padding:22px 24px 24px;border-radius:28px;transform:translateY(-50%);pointer-events:auto}.caption.is-hidden{pointer-events:none;transform:translateY(calc(-50% + 12px))!important}.caption>*{transition:opacity .16s,filter .16s}.caption.is-swapping>*{opacity:0;filter:blur(4px)}.caption__meta{margin:0;display:flex;gap:10px;align-items:center;font-size:11px;color:var(--teal)}.caption__form{font-family:var(--font);letter-spacing:0;color:var(--stone-faint);font-size:12px}.caption__form:before{content:"·";margin-inline-end:10px;color:var(--stone-faint)}.caption__cover{margin:8px 0 0;font-size:clamp(22px,2.3vw,30px);line-height:1.35;font-weight:700}.caption__lead{margin:10px 0 18px;font-size:15px;color:var(--stone-dim)}@media(max-width:860px){.caption{top:auto;right:var(--gutter);left:var(--gutter);bottom:max(16px,env(safe-area-inset-bottom));width:auto;padding:16px 18px 18px;border-radius:22px;transform:none}.caption.is-hidden{transform:translateY(12px)!important}.caption__cover{font-size:20px}.caption__lead{font-size:14px;margin:6px 0 12px}}.ritual{position:fixed;inset:0;z-index:6;pointer-events:none;opacity:0;transition:opacity .8s var(--ease-out)}.ritual.is-on{opacity:1}.ritual.is-off{opacity:0}.ritual__labels{list-style:none;margin:0;padding:0}.ritual__labels li{position:absolute;top:0;left:0;display:inline-flex;align-items:center;gap:8px;padding:3px 12px 3px 10px;border-radius:999px;border:1px solid rgb(236 233 226 / .12);background:#0b0c0e8c;font-size:13px;white-space:nowrap;color:var(--stone-faint);transition:color .4s,border-color .4s,background .4s}.ritual__labels li span{font-size:10px;opacity:.7}.ritual__labels li.is-next{color:var(--teal);border-color:#00adb58c}.ritual__labels li.is-in{color:var(--stone);border-color:#ece9e266}.ritual__labels li.is-done{color:var(--stone-dim)}.ritual__labels li.is-done span:after{content:" ✓";color:var(--teal)}.ritual__labels li.is-away{opacity:0}.ritual__panel{position:absolute;left:50%;bottom:max(20px,env(safe-area-inset-bottom));width:min(460px,calc(100% - 2 * var(--gutter)));padding:16px 20px 18px;border-radius:26px;transform:translate(-50%);pointer-events:auto;text-align:center}.ritual__step{margin:0;font-size:11px;color:var(--teal)}.ritual__hint{margin:4px 0 0;font-size:16px;min-height:1.75em;transition:color .3s}.ritual__hint.is-warn{color:var(--coral)}.ritual__gauge{margin:12px 4px 0}.ritual__gauge[hidden]{display:none}.ritual__bar{position:relative;height:8px;border-radius:999px;background:#ece9e21a;overflow:visible}.ritual__zone{position:absolute;top:0;bottom:0;border-radius:999px;background:#00adb573}.ritual__burn{position:absolute;top:0;bottom:0;inset-inline-end:0;border-radius:999px;background:#ff637d59}.ritual__mark{position:absolute;top:50%;width:4px;height:18px;border-radius:2px;background:var(--stone);box-shadow:0 0 10px #ece9e299;transform:translate(50%,-50%)}.ritual__gauge[data-zone=ok] .ritual__mark{background:var(--teal);box-shadow:0 0 12px var(--teal)}.ritual__gauge[data-zone=high] .ritual__mark{background:var(--coral);box-shadow:0 0 12px var(--coral)}.ritual__ticks{display:flex;justify-content:space-between;margin-top:6px;font-size:11px;color:var(--stone-faint)}.ritual__speed{margin:8px 0 0;font-size:11px;color:var(--stone-faint)}.ritual__speed b{font-weight:500;color:var(--stone-dim);transition:color .3s}.ritual__speed.is-fast b{color:var(--teal)}.ritual__speed[hidden]{display:none}.ritual__name{display:block;margin-top:12px}.ritual__name[hidden]{display:none}.ritual__name input{width:100%;min-height:44px;padding:0 16px;border-radius:14px;border:1px solid var(--glass-rim);background:#0b0c0e99;color:var(--stone);font:600 17px var(--font);text-align:center;-webkit-user-select:text;user-select:text}.ritual__name input::placeholder{color:var(--stone-faint);font-weight:400}.ritual__name input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #00adb533}.ritual__row{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:14px}.ritual__act[hidden]{display:none}.ritual__act:disabled{opacity:.55;cursor:default;transform:none}.ritual__skip{padding:6px 4px;border:0;background:none;font-size:13px;color:var(--stone-faint);text-decoration:underline;text-underline-offset:4px;cursor:pointer}.ritual__skip:hover{color:var(--stone-dim)}body.is-ritual{touch-action:none;-webkit-user-select:none;user-select:none}body.is-ritual #track{cursor:grab}body.is-ritual.is-dragging #track{cursor:grabbing}@media(max-width:720px){.ritual__hint{font-size:15px}.ritual__labels li{font-size:15px;padding:5px 14px 5px 12px}.ritual__act{min-height:48px;padding:0 22px;font-size:16px}.ritual__skip{padding:12px 6px}}.viewer{position:fixed;inset:0;z-index:40}.viewer[hidden]{display:none}.viewer__backdrop{position:absolute;inset:0;background:#050607c7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .35s var(--ease-out)}.viewer.is-open .viewer__backdrop{opacity:1}.viewer__stage{position:relative;height:100%;display:flex;align-items:center;justify-content:center;gap:clamp(20px,4vw,56px);padding:72px var(--gutter) 32px;pointer-events:none}.viewer__stage>*{pointer-events:auto}.viewer__frame{height:min(82vh,860px);aspect-ratio:9 / 16;border-radius:22px;overflow:hidden;background:var(--slate);box-shadow:0 0 0 1px var(--glass-rim),0 30px 80px #0009,0 0 120px #00adb51f;transform:translateY(24px) scale(.96);opacity:0;transition:transform .6s var(--ease-spring),opacity .35s}.viewer.is-open .viewer__frame{transform:none;opacity:1}.viewer__video{width:100%;height:100%;object-fit:cover;display:block;background:#000}.viewer__panel{width:min(380px,32vw);max-height:min(82vh,860px);overflow:auto;padding:24px;border-radius:28px;transform:translate(-16px);opacity:0;transition:transform .6s var(--ease-spring) .05s,opacity .35s .05s}.viewer.is-open .viewer__panel{transform:none;opacity:1}.viewer__meta{margin:0;font-size:11px;color:var(--teal)}.viewer__title{margin:6px 0 0;font-size:28px;line-height:1.35}.viewer__cover{margin:4px 0 14px;color:var(--stone-faint);font-size:14px}.viewer__body p{margin:0 0 10px;font-size:15px;color:var(--stone-dim)}.viewer__body p:first-child{color:var(--stone);font-size:17px}.viewer__tags{margin:14px 0 0;font-size:11px;color:var(--stone-faint);line-height:2;word-spacing:4px}.viewer__code{margin:14px 0 0;padding:10px 14px;border-radius:14px;border:1px dashed rgb(0 173 181 / .45);font-size:13px;color:var(--stone-dim)}.viewer__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.viewer__close{position:absolute;top:max(16px,env(safe-area-inset-top));inset-inline-end:var(--gutter);width:44px;padding:0;justify-content:center}@media(max-width:860px){.viewer__stage{flex-direction:column;justify-content:flex-start;overflow:auto;padding-top:72px}.viewer__frame{height:auto;width:min(100%,420px);flex:none}.viewer__panel{width:min(100%,420px);max-height:none;overflow:visible;flex:none}}#sheet{position:relative;background:var(--graphite);padding:clamp(80px,12vh,140px) var(--gutter);box-shadow:0 -60px 80px 20px var(--graphite)}.sheet{max-width:1240px;margin:0 auto}.sheet__stage{margin:0;font-size:11px;color:var(--teal)}.sheet__title{margin:6px 0 0;font-size:clamp(28px,4.4vw,48px);line-height:1.3}.sheet__sub{margin:6px 0 0;color:var(--stone-dim)}.sheet__grid{list-style:none;margin:40px 0 0;padding:clamp(14px,2.4vw,28px);display:grid;grid-template-columns:repeat(auto-fill,minmax(min(150px,40vw),1fr));gap:0;border-radius:6px;background:#e9e6df;box-shadow:0 30px 80px #00000080,inset 0 0 120px #00000014}.frame{position:relative}.frame__btn{position:relative;display:block;width:100%;padding:22px 7px;border:0;background:radial-gradient(circle at 50% 50%,#e9e6df 0 3px,transparent 3.5px) 0 7px / 14px 9px repeat-x,radial-gradient(circle at 50% 50%,#e9e6df 0 3px,transparent 3.5px) 0 calc(100% - 7px) / 14px 9px repeat-x,#0a0a0b;cursor:pointer;text-align:start}.frame__edge{position:absolute;top:1px;inset-inline-start:10px;font-size:8px;letter-spacing:.12em;color:#ffb45a8c}.frame__img{display:block;width:100%;height:auto;aspect-ratio:9 / 16;object-fit:cover;filter:grayscale(.35) brightness(.8);transition:filter .4s,transform .5s var(--ease-spring)}.frame__btn:hover .frame__img,.frame__btn:focus-visible .frame__img{filter:none;transform:scale(1.03)}.frame__label{position:absolute;inset:auto 7px 22px;display:flex;flex-direction:column;padding:18px 8px 6px;background:linear-gradient(transparent,#000000d9);line-height:1.4}.frame__num{font-size:10px;color:var(--teal)}.frame__title{font-size:13px;color:var(--stone)}.frame__circle{position:absolute;inset:8px 0;width:100%;height:calc(100% - 16px);overflow:visible;pointer-events:none}.frame__circle path{fill:none;stroke:var(--teal);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 1px rgb(0 173 181 / .6));transition:stroke-dashoffset 1.1s var(--ease-out)}.is-drawn .frame__circle path{stroke-dashoffset:0}.is-drawn .is-pick:nth-child(n+4) .frame__circle path{transition-delay:.35s}.is-drawn .is-pick:nth-child(n+9) .frame__circle path{transition-delay:.7s}#fixer{position:relative;background:var(--graphite);padding:clamp(80px,14vh,160px) var(--gutter) 48px;overflow:hidden}#fixer:before{content:"";position:absolute;inset:-20% -10% auto;height:70%;background:radial-gradient(40% 50% at 30% 50%,rgb(0 173 181 / .12),transparent 70%);animation:field 18s ease-in-out infinite alternate;pointer-events:none}@keyframes field{to{transform:translate(30%)}}.fixer{position:relative;max-width:980px;margin:0 auto}.fixer__stage{margin:0;font-size:11px;color:var(--teal)}.fixer__title{margin:8px 0 0;font-size:clamp(30px,5vw,58px);line-height:1.3;font-weight:800}.fixer__title em{font-style:normal;color:var(--teal);background:linear-gradient(to left,var(--stone) 0 45%,var(--teal) 55%) right / 220% 100% no-repeat;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;transition:background-position 1.6s var(--ease-out) .3s}.fixer.is-in .fixer__title em{background-position:left}.fixer__cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,56px);margin-top:32px;color:var(--stone-dim);font-size:17px}.fixer__cols p{margin:0}.fixer__topics{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:32px 0 0}.fixer__topics li{padding:4px 14px;border-radius:999px;border:1px solid var(--glass-rim);font-size:14px;color:var(--stone-dim)}.fixer__for{margin:18px 0 0;color:var(--stone)}.fixer>*,.sign>*{opacity:0;transform:translateY(14px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}.fixer.is-in>*,.sign.is-in>*{opacity:1;transform:none}.fixer.is-in>:nth-child(2){transition-delay:.08s}.fixer.is-in>:nth-child(3){transition-delay:.16s}.fixer.is-in>:nth-child(n+4){transition-delay:.24s}.sign{position:relative;max-width:980px;margin:clamp(80px,14vh,140px) auto 0;display:grid;justify-items:center;gap:14px;text-align:center}.sign__row{display:flex;align-items:center;gap:16px;width:min(520px,100%)}.sign__line{flex:1;height:1px;background:linear-gradient(to var(--dir, left),var(--stone-faint),transparent);transform:scaleX(0);transform-origin:var(--origin, right);transition:transform 1.1s var(--ease-out) .2s;position:relative;overflow:hidden}.sign__line:first-child{--dir: right;--origin: left}.sign.is-in .sign__line{transform:scaleX(1)}.sign__line:after{content:"";position:absolute;inset:0;width:30%;background:linear-gradient(90deg,transparent,var(--teal),transparent);animation:glint 6s linear infinite 1.5s;transform:translate(-120%)}@keyframes glint{0%{transform:translate(-120%)}25%,to{transform:translate(380%)}}.sign__logo{width:48px;height:48px;fill:var(--stone)}.sign__logo svg{width:100%;height:100%;display:block}.sign__slogan{margin:0;font-size:20px;font-weight:700}.sign__ig{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--stone-dim);transition:color .3s}.sign__ig:hover{color:var(--teal)}.sign__ig svg{width:20px;height:20px}@media(max-width:720px){.fixer__cols{grid-template-columns:1fr}}#about{position:relative;background:var(--graphite);padding:clamp(80px,14vh,150px) var(--gutter) 0}.about{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}.about__stage{margin:0;font-size:11px;color:var(--teal)}.about__title{margin:8px 0 18px;font-size:clamp(38px,6vw,72px);line-height:1.35;font-weight:800;text-align:start}.about__title em{font-style:normal;color:var(--teal)}.about__text p{margin:0 0 14px;color:var(--stone-dim);font-size:17px}.about__text .about__lead{color:var(--stone);font-size:clamp(18px,2vw,21px)}.about__projects{list-style:none;margin:0;padding:0;display:grid;gap:14px}.project{display:grid;gap:8px;padding:20px 22px;border-radius:24px;text-decoration:none;transition:transform .5s var(--ease-spring),border-color .3s}.project:hover{transform:translateY(-3px);border-color:#00adb580}.project__head{display:flex;justify-content:space-between;align-items:center;gap:12px}.project__name{font-size:22px;font-weight:700}.project__role{padding:2px 10px;border-radius:999px;border:1px solid rgb(0 173 181 / .45);font-size:11px;color:var(--teal)}.project__text{font-size:15px;color:var(--stone-dim);line-height:1.7}.project__link{display:inline-flex;align-items:center;gap:6px;justify-self:start;font-size:12px;color:var(--stone-faint);transition:color .3s}.project:hover .project__link{color:var(--teal)}.about>*{opacity:0;transform:translateY(14px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}.about.is-in>*{opacity:1;transform:none}.about.is-in>:nth-child(2){transition-delay:.12s}@media(max-width:820px){.about{grid-template-columns:1fr}}
