/* Geist & Geist Mono — self-hosted (см. assets/fonts/) */
@font-face{font-family:'Geist';font-style:normal;font-weight:100;font-display:swap;src:url(fonts/geist-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Geist';font-style:normal;font-weight:100;font-display:swap;src:url(fonts/geist-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Geist';font-style:normal;font-weight:100;font-display:swap;src:url(fonts/geist-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Geist';font-style:normal;font-weight:100;font-display:swap;src:url(fonts/geist-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:'Geist';font-style:normal;font-weight:200;font-display:swap;src:url(fonts/geist-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Geist';font-style:normal;font-weight:200;font-display:swap;src:url(fonts/geist-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Geist';font-style:normal;font-weight:200;font-display:swap;src:url(fonts/geist-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Geist';font-style:normal;font-weight:200;font-display:swap;src:url(fonts/geist-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:'Geist';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/geist-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Geist';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/geist-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Geist';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/geist-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Geist';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/geist-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:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/geist-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/geist-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/geist-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/geist-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:'Geist Mono';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/geist-mono-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/geist-mono-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/geist-mono-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/geist-mono-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:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/geist-mono-cyrillic-ext.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/geist-mono-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/geist-mono-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/geist-mono-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{
    --bg:#0A0A0A; --ink:#F2EEE6; --line:rgba(242,238,230,0.12);
    --line-bright:rgba(242,238,230,0.28); --muted:#6B6760; --dim:#A8A39B;
    --pad:clamp(20px,5vw,40px);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html,body{height:100%;background:var(--bg);color:var(--ink);overflow:hidden;
    font-family:'Geist',-apple-system,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}

  /* горизонтальный трек из 5 экранов */
  .track{display:flex;width:500vw;height:100%;transition:transform 900ms cubic-bezier(0.7,0,0.15,1);will-change:transform;}
  .screen{width:100vw;height:100%;position:relative;overflow:hidden;flex-shrink:0;}

  /* общий каркас */
  .grid{position:absolute;inset:0;pointer-events:none;z-index:1;}
  .grid .v{position:absolute;top:0;bottom:0;width:0.5px;background:var(--line);}
  .grid .h{position:absolute;left:0;right:0;height:0.5px;background:var(--line);}
  .grid .v1{left:25%;} .grid .v2{left:75%;}
  .grid .h1{top:18%;} .grid .h2{bottom:24%;}
  @media (max-width:760px){ .grid .v1{left:14%;} .grid .v2{left:auto;right:8%;} }

  .tick{position:absolute;font-family:'Geist Mono',monospace;font-weight:400;font-size:10px;letter-spacing:2.5px;color:var(--muted);z-index:4;}
  .tl{top:var(--pad);left:var(--pad);}
  .tr{top:var(--pad);right:var(--pad);text-align:right;}
  .bl{bottom:var(--pad);left:var(--pad);}
  .br{bottom:var(--pad);right:var(--pad);text-align:right;}
  .tick .lo{color:var(--dim);}

  canvas.light{position:absolute;inset:0;width:100%;height:100%;z-index:1;display:block;}

  /* HERO (экран 1) */
  .toc{position:absolute;z-index:5;left:var(--pad);top:33%;display:flex;flex-direction:column;gap:clamp(10px,1.6vw,15px);padding-top:26px;}
  .toc::before{content:"";position:absolute;top:0;left:0;width:clamp(28px,6vw,64px);height:0.5px;background:var(--line-bright);}
  .toc a{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:2px;color:var(--muted);text-decoration:none;display:flex;align-items:baseline;gap:12px;transition:color .35s;cursor:pointer;}
  .toc a .num{color:var(--dim);font-size:9px;min-width:34px;letter-spacing:1px;}
  .toc a .nm{position:relative;}
  .toc a .nm::after{content:"";position:absolute;left:0;bottom:-3px;width:0;height:0.5px;background:var(--ink);transition:width .35s;}
  .toc a:hover{color:var(--ink);} .toc a:hover .nm::after{width:100%;}
  .toc a.cur{color:var(--ink);}
  @media (max-width:760px){ .toc{top:27%;} .toc a{font-size:10px;} }

  .hero{position:absolute;z-index:3;left:var(--pad);bottom:24%;right:calc(var(--pad)*1.6);}
  .hero h1{font-family:'Geist',sans-serif;font-weight:200;font-size:clamp(48px,14.5vw,150px);line-height:0.98;letter-spacing:-0.02em;color:var(--ink);}
  .star-label-btm{position:absolute;z-index:4;font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:2px;color:var(--dim);white-space:nowrap;background:var(--bg);padding:0 10px;
    right:calc(25% + 20px);bottom:24%;transform:translateY(50%);}
  @media (max-width:760px){ .star-label-btm{right:calc(8% + 20px);bottom:24%;} }
  .star-label{position:absolute;left:calc(75% + 18px);top:18%;z-index:4;font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:2px;color:var(--dim);transform:translateY(-50%);white-space:nowrap;background:var(--bg);padding:0 10px;}
  @media (max-width:760px){ .star-label{left:auto;right:calc(8% + 14px);text-align:right;} }
  .cta-line{position:relative;display:inline-block;font-family:'Geist Mono',monospace;font-size:12px;letter-spacing:3px;color:var(--ink);text-transform:uppercase;text-decoration:none;cursor:pointer;background:none;border:none;padding-bottom:12px;}
  .cta-line::after{content:"\00A0\00A0→";color:var(--dim);transition:transform .4s;display:inline-block;}
  .cta-line:hover::after{transform:translateX(5px);}
  .cta-line .underline{position:absolute;left:0;bottom:0;height:0.5px;background:var(--line-bright);width:100%;transform:scaleX(0);transform-origin:left;animation:ctaDraw 1000ms cubic-bezier(0.7,0,0.2,1) 400ms forwards;}
  .cta-line:hover .underline{background:var(--ink);}
  @keyframes ctaDraw{to{transform:scaleX(1);}}

  /* текстовые экраны */
  .content{position:absolute;z-index:3;left:calc(var(--pad)*1.3);right:calc(var(--pad)*1.6);top:48%;transform:translateY(-50%);max-width:720px;}
  @media (max-width:760px){ .content{left:calc(var(--pad)*1.1);right:var(--pad);} }
  .idx{font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:3px;color:var(--muted);margin-bottom:clamp(20px,3.5vw,36px);display:flex;gap:14px;align-items:center;}
  .idx::before{content:"";width:clamp(28px,6vw,64px);height:0.5px;background:var(--line-bright);display:inline-block;}
  .content h1{font-family:'Geist',sans-serif;font-weight:200;font-size:clamp(25px,4.6vw,50px);line-height:1.12;letter-spacing:-0.015em;color:var(--ink);margin-bottom:clamp(26px,3.6vw,40px);}
  .content .body{font-family:'Geist',sans-serif;font-weight:300;font-size:clamp(14px,2.1vw,18px);line-height:1.66;color:var(--dim);max-width:480px;}

  /* контакт (экран 5) */
  .contact{position:absolute;z-index:3;left:calc(var(--pad)*1.3);right:calc(var(--pad)*1.6);bottom:34%;}
  @media (max-width:760px){ .contact{bottom:36%;left:calc(var(--pad)*1.1);right:var(--pad);} }
  .contact .body{font-family:'Geist',sans-serif;font-weight:300;font-size:clamp(15px,2.3vw,19px);line-height:1.6;color:var(--dim);max-width:440px;margin-top:clamp(24px,3.5vw,36px);}
  .contact .cta-line{margin-top:clamp(28px,4vw,40px);}

  /* индикатор */
  .indicator{position:fixed;bottom:calc(var(--pad) + 2px);left:50%;transform:translateX(-50%);z-index:20;display:flex;gap:11px;align-items:center;}
  .indicator .d{width:4px;height:4px;border-radius:50%;background:var(--muted);opacity:0.4;transition:all .5s;cursor:pointer;}
  .indicator .d.on{opacity:1;background:var(--ink);box-shadow:0 0 6px 1px rgba(242,238,230,0.4);}

  /* стрелки desktop */
  .arrow{position:fixed;top:50%;transform:translateY(-50%);z-index:20;width:44px;height:44px;border:0.5px solid var(--line-bright);border-radius:50%;background:rgba(10,10,10,0.4);color:var(--dim);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;opacity:0.5;}
  .arrow:hover{opacity:1;border-color:var(--ink);color:var(--ink);}
  .arrow.prev{left:16px;} .arrow.next{right:16px;}
  .arrow.hidden{opacity:0;pointer-events:none;}
  @media (max-width:760px){ .arrow{display:none;} }

  .hint{position:fixed;bottom:calc(var(--pad) + 20px);left:50%;transform:translateX(-50%);z-index:19;font-family:'Geist Mono',monospace;font-size:9px;letter-spacing:2px;color:var(--muted);opacity:0.6;animation:hintPulse 3s ease-in-out infinite;}
  @keyframes hintPulse{0%,100%{opacity:0.3;}50%{opacity:0.7;}}
  @media (min-width:761px){ .hint{display:none;} }