:root{--lab-fg:#fff;--lab-bg:#000;--lab-accent:#c96a2b;--lab-font:system-ui,sans-serif;--lab-radius:4px}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--lab-bg);color:var(--lab-fg);font-family:var(--lab-font);-webkit-font-smoothing:antialiased}canvas.lab-canvas{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.lab-perm{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:color-mix(in srgb,var(--lab-bg) 70%,transparent);backdrop-filter:blur(14px);padding:16px}.lab-perm__card{max-width:440px;padding:28px 28px 22px;border:1px solid color-mix(in srgb,var(--lab-fg) 18%,transparent);border-radius:var(--lab-radius);background:color-mix(in srgb,var(--lab-bg) 85%,var(--lab-fg) 4%)}.lab-perm__title{margin:0 0 10px;font-size:22px;line-height:1.15}.lab-perm__text{margin:0 0 20px;font-size:14px;line-height:1.5;opacity:.8}.lab-perm__actions{display:flex;gap:10px;flex-wrap:wrap}.lab-btn{appearance:none;font:inherit;font-size:14px;padding:11px 18px;border-radius:var(--lab-radius);border:1px solid color-mix(in srgb,var(--lab-fg) 30%,transparent);background:transparent;color:var(--lab-fg);cursor:pointer;transition:background .2s,transform .2s}.lab-btn:hover{background:color-mix(in srgb,var(--lab-fg) 10%,transparent)}.lab-btn:active{transform:scale(.97)}.lab-btn:focus-visible{outline:2px solid var(--lab-accent);outline-offset:2px}.lab-btn--primary{background:var(--lab-accent);border-color:var(--lab-accent);color:#fff}.lab-btn--primary:hover{filter:brightness(1.1);background:var(--lab-accent)}.lab-sensor{position:fixed;top:16px;right:16px;z-index:40;display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;opacity:.85;padding:8px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--lab-fg) 15%,transparent)}.lab-sensor__dot{width:8px;height:8px;border-radius:50%;background:#666}.lab-sensor[data-state=on] .lab-sensor__dot{background:#3ec26a;box-shadow:0 0 10px #3ec26a;animation:lab-pulse 1.6s infinite}.lab-sensor[data-state=loading] .lab-sensor__dot{background:#e0a030;animation:lab-pulse .8s infinite}.lab-sensor[data-state=lost] .lab-sensor__dot{background:#e0a030}.lab-sensor[data-state=denied] .lab-sensor__dot{background:#c33}.lab-sensor__state{opacity:.6}@keyframes lab-pulse{50%{opacity:.4}}.lab-hint{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:40;font-size:13px;letter-spacing:.02em;opacity:.75;text-align:center;max-width:90vw;transition:opacity .5s;pointer-events:none}.lab-hint.is-hidden{opacity:0}.lab-fps{position:fixed;left:12px;bottom:12px;font:12px monospace;opacity:.6;z-index:40}.lab-back{position:fixed;top:16px;left:16px;z-index:40;font-size:12px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--lab-fg);opacity:.7;padding:8px 0}.lab-back:hover{opacity:1}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}@media(prefers-reduced-motion:reduce){.lab-sensor[data-state] .lab-sensor__dot{animation:none}}.lab-sensor__detail{position:fixed;top:58px;right:16px;z-index:40;max-width:300px;margin:0;font-size:12px;line-height:1.45;padding:10px 12px;border-radius:8px;background:color-mix(in srgb,var(--lab-bg) 88%,transparent);border:1px solid color-mix(in srgb,var(--lab-fg) 15%,transparent);backdrop-filter:blur(8px)}.lab-sensor__detail[hidden]{display:none}.lab-fatal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:var(--lab-bg);color:var(--lab-fg);text-align:center}.lab-fatal div{max-width:420px}.lab-fatal h2{margin:0 0 12px;font-size:22px}.lab-fatal p{margin:0 0 20px;font-size:14px;line-height:1.55;opacity:.8}.lab-fatal .lab-btn{text-decoration:none;display:inline-block}.lab-btn[disabled]{opacity:.55;cursor:progress}@media(max-width:600px){.lab-sensor__detail{left:16px;right:16px;max-width:none}}.lab-sound{position:fixed;top:13px;left:146px;z-index:41;appearance:none;border:1px solid color-mix(in srgb,var(--lab-fg) 22%,transparent);background:color-mix(in srgb,var(--lab-bg) 55%,transparent);backdrop-filter:blur(6px);color:var(--lab-fg);font:inherit;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:6px 11px;border-radius:999px;cursor:pointer;opacity:.8;display:flex;gap:6px;align-items:center}.lab-sound:hover{opacity:1}.lab-sound[aria-pressed=true]{opacity:1;border-color:var(--lab-accent)}.lab-sound:focus-visible{outline:2px solid var(--lab-accent);outline-offset:2px}.lab-sound__ico{font-size:9px;letter-spacing:-.1em}@media(max-width:600px){.lab-sound{left:134px;top:13px;padding:6px 9px}.lab-sound__t{display:none}}@font-face{font-family:Cormorant;font-style:italic;font-weight:300;font-display:swap;src:url(/assets/fonts/cormorant-italic-300-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant;font-style:italic;font-weight:300;font-display:swap;src:url(/assets/fonts/cormorant-italic-300-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/cormorant-italic-400-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/cormorant-italic-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/cormorant-normal-300-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/cormorant-normal-300-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/cormorant-normal-400-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/cormorant-normal-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-normal-500-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-normal-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Italiana;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/italiana-normal-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/onest-normal-300-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/onest-normal-300-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/onest-normal-400-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/onest-normal-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/onest-normal-500-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/onest-normal-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Oranienbaum;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/oranienbaum-normal-400-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Oranienbaum;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/oranienbaum-normal-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--vv-porcelain:#F0EFEB;--vv-sand:#D8CEC4;--vv-mist:#A9C0D1;--vv-pink:#D5A6AD;--vv-champagne:#D8C6AC;--vv-graphite:#26282A;--vv-burgundy:#642B39;--vv-muted:#55585a;--vv-display:"Oranienbaum","Cormorant",serif;--vv-accent:"Cormorant","Times New Roman",serif;--vv-latin:"Italiana","Cormorant",serif;--vv-text:"Onest",system-ui,sans-serif;--lab-font:var(--vv-text);--lab-radius:999px}.lab-btn{font-family:var(--vv-text);font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:13px 22px;border-radius:999px;border-color:currentColor}.lab-btn--primary{color:var(--lab-bg)!important}.lab-btn--small{font-size:11px;padding:9px 16px}.lab-back,.lab-sound,.lab-sensor{font-family:var(--vv-text)}.lab-back{letter-spacing:.14em}.lab-sound{left:176px}@media(max-width:600px){.lab-sound{left:164px}}.lab-perm__title,.lab-fatal h2{font:400 26px/1.1 var(--vv-display)}.lab-hint{font-family:var(--vv-accent);font-style:italic;font-size:17px;letter-spacing:0}:root{--lab-bg:#0d0b0a;--lab-fg:#efe6d6;--lab-accent:var(--vv-pink)}html{overflow-y:auto;overflow-x:hidden;height:auto}body{overflow:visible;height:auto}body{background:#0d0b0a}.bars{position:fixed;inset:0;pointer-events:none;z-index:6}.bars i{position:absolute;left:0;right:0;height:var(--bar,7vh);background:#0d0b0a;transition:height .8s cubic-bezier(.7,0,.2,1)}.bars i:first-child{top:0}.bars i:last-child{bottom:0}.timeline{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:10px}.timeline__bar{width:2px;height:32vh;background:#efe6d62e;position:relative}.timeline__bar i{position:absolute;left:-1px;top:0;width:4px;height:0%;background:#efe6d6}.timeline__t{font-size:11px;letter-spacing:.14em;font-variant-numeric:tabular-nums;opacity:.7;writing-mode:vertical-rl}#story{position:relative;z-index:8}.ch{height:140vh;position:relative;touch-action:pan-y}.ch--0{height:120vh}.ch--4{height:160vh}.ch__in{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;padding:0 8vw;max-width:720px;pointer-events:none}.ch--2 .ch__in,.ch--4 .ch__in{margin-left:auto;text-align:right;align-items:flex-end}body.is-light .timeline,body.is-light .lab-back{color:#17120e}body.is-light .timeline__bar{background:#17120e33}body.is-light .timeline__bar i{background:#17120e}.ch__n{font-size:12px;letter-spacing:.26em;text-transform:uppercase;opacity:.65;margin:0 0 14px;font-weight:500}.ch__t{font-family:var(--vv-display);font-weight:400;font-size:clamp(40px,7vw,104px);line-height:.95;letter-spacing:-.02em;margin:0 0 20px}.ch--0 .ch__t{font-size:clamp(48px,9vw,140px)}.ch__p{font-weight:300;font-size:clamp(15px,1.4vw,19px);line-height:1.55;max-width:38ch;opacity:.85;margin:0}.ch__hint{margin-top:26px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.55}.ch__in>*{opacity:0;transform:translateY(18px);transition:opacity .7s,transform .7s}.ch.is-on .ch__in>*{opacity:1;transform:none}.ch.is-on .ch__in>*:nth-child(2){transition-delay:.08s}.ch.is-on .ch__in>*:nth-child(3){transition-delay:.16s}.ch.is-on .ch__in>*:nth-child(4){transition-delay:.3s}body.is-live .bars i{height:0}body.is-live .lab-canvas{cursor:grab}body.is-live.is-drag .lab-canvas{cursor:grabbing}.lab-canvas{z-index:1}@media(max-width:600px){.ch__in{padding:0 20px 14vh;justify-content:flex-end}.ch--2 .ch__in,.ch--4 .ch__in{align-items:flex-start;text-align:left}.timeline{right:12px}.timeline__bar{height:22vh}}@media(prefers-reduced-motion:reduce){.ch__in>*{transition:none}.bars i{transition:none}}
