/* Ortus · getortus.ru · сцены по прокрутке. Канон — «6 Сайт/КАНОН.md». */
@font-face{font-family:Geologica;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/geologica-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Geologica;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/geologica-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:Geologica;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/geologica-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:Geologica;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/geologica-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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:"JetBrains Mono";font-style:normal;font-weight:400 500;font-display:swap;src:url(/assets/fonts/jbmono-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400 500;font-display:swap;src:url(/assets/fonts/jbmono-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{
  --night:#0E1116; --graphite:#1B212B; --deep:#131820; --line-d:#2A323E; --muted-d:#8A93A3; --soft:#B8C0CC;
  --paper:#F4F5F6; --line-l:#DDE1E6; --muted-l:#5A616C; --ink:#0E1116;
  --amber:#FFB23F; --amber-ink:#C97A00; --amber-text:#A35F00; --ok:#3FB68B; --bad:#E5484D;
  --sans:Geologica,Arial,sans-serif; --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.22,.8,.2,1);
  --gut:clamp(16px,4.2vw,56px); --wrap:1280px;
  /* поле до колонки контента: одно на весь сайт. До 1280px равно --gut, шире — колонка 1280px по центру.
     Процент считается от ширины блока, где поле используется: секции, сцены и шапка идут во всю ширину окна. */
  --side:max(var(--gut),calc((100% - var(--wrap)) / 2 + var(--gut)));
  --top:calc(env(safe-area-inset-top,0px) + 84px);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:72px}
body{margin:0;background:var(--night);color:var(--paper);font:400 17px/1.55 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,p,ol,ul,figure{margin:0}
ol,ul{padding:0;list-style:none}
button,input{font:inherit;color:inherit}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"zero" 0}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:200;background:var(--paper);color:var(--ink);padding:10px 14px}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
[data-tone="light"] :focus-visible{outline-color:var(--amber-ink)}

.h-display{font-weight:500;font-size:clamp(44px,7.4vw,124px);line-height:.94;letter-spacing:-.045em;text-wrap:balance}
.h2{font-weight:500;font-size:clamp(34px,4.9vw,74px);line-height:1;letter-spacing:-.037em;text-wrap:balance}
.lead{font-size:clamp(17px,1.35vw,20px);line-height:1.55;color:var(--soft);max-width:34em;text-wrap:pretty}
[data-tone="light"] .lead{color:var(--muted-l)}
.note{font-size:13px;color:var(--muted-d)}
.note-l{color:var(--muted-l);font-size:15px;margin-top:28px;max-width:38em}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut)}

/* ── сцены: без JS и при «меньше движения» — обычный поток; с анимацией — липкая сцена ── */
.sc{position:relative}
.stage{position:relative;padding:calc(var(--top) + 8px) var(--side) 56px}
.anim .sc[data-scene]{height:var(--len,300svh)}
.anim .sc[data-scene]>.stage{position:sticky;top:0;height:100svh;min-height:520px;overflow:hidden;padding:0}
.sc-city{--len:400svh}.sc-window{--len:320svh}.sc-sources{--len:300svh}.sc-contact{--len:230svh}.sc-letter{--len:400svh}.sc-start{--len:220svh}

/* ── шапка: капсулы со сплошной заливкой, тон по сцене ── */
.cap{position:fixed;z-index:60;top:calc(env(safe-area-inset-top,0px) + 14px);left:var(--side);right:var(--side);display:flex;justify-content:space-between;align-items:center;gap:12px;pointer-events:none}
.cap>*{pointer-events:auto}
.cap-logo,.cap-nav,.cap-cta-m{display:flex;align-items:center;height:46px;border-radius:99px;background:var(--night);border:1px solid var(--line-d);transition:background .4s var(--ease),border-color .4s var(--ease),color .4s var(--ease)}
.cap-logo{gap:14px;padding:0 18px 0 20px;text-decoration:none;color:var(--paper)}
.cap-logo svg{height:19px;width:auto}
.cap-home{display:flex;align-items:center;height:100%;color:inherit;text-decoration:none}
.cap-logo .dot,.foot-logo .dot{fill:var(--amber)}
.cap-clock{font-size:13px;color:var(--muted-d);padding-left:14px;border-left:1px solid var(--line-d);transition:border-color .4s}
.cap-nav{gap:4px;padding:4px}
.cap-nav a{display:flex;align-items:center;height:36px;padding:0 14px;border-radius:99px;font-size:15px;text-decoration:none;color:var(--soft)}
.cap-nav a:hover{color:var(--paper)}
.cap .cap-cta{background:var(--paper);color:var(--ink)!important;font-weight:500}
.cap-cta-m{display:none;padding:0 18px;text-decoration:none;font-size:15px;font-weight:500}
body[data-tone="light"] .cap-logo,body[data-tone="light"] .cap-nav,body[data-tone="light"] .cap-cta-m{background:var(--paper);border-color:var(--line-l);color:var(--ink)}
body[data-tone="light"] .cap-logo .dot{fill:var(--amber-ink)}
body[data-tone="light"] .cap-clock{color:var(--muted-l);border-color:var(--line-l)}
body[data-tone="light"] .cap-nav a{color:var(--muted-l)}
body[data-tone="light"] .cap-nav a:hover{color:var(--ink)}
body[data-tone="light"] .cap .cap-cta{background:var(--ink);color:var(--paper)!important}
@media (max-width:900px){.cap-nav{display:none}.cap-cta-m{display:flex;background:var(--paper);color:var(--ink);border-color:var(--paper)}body[data-tone="light"] .cap-cta-m{background:var(--ink);color:var(--paper);border-color:var(--ink)}}

/* ── 0 · вход ── */
.intro{display:none}
.anim .intro{display:grid;place-items:center;align-content:center;gap:26px;position:fixed;inset:0;z-index:100;background:var(--night);transition:clip-path .9s var(--ease),visibility 0s .9s;clip-path:inset(0 0 0 0)}
.anim .intro.done{clip-path:inset(0 0 100% 0);visibility:hidden}
.anim .intro{animation:introFail .9s var(--ease) 7s forwards}
@keyframes introFail{to{clip-path:inset(0 0 100% 0);visibility:hidden}}
.intro-mark{width:clamp(92px,11vw,132px);height:auto;overflow:visible}
.intro-ring{fill:none;stroke:var(--paper);stroke-width:249;stroke-linecap:round;stroke-dasharray:0 1000;transition:stroke-dasharray 1.1s var(--ease)}
.intro-dot{fill:var(--amber);transform:translateY(900px);transition:transform 1s var(--ease) .55s}
.intro.go .intro-ring{stroke-dasharray:877.8 1000}
.intro.go .intro-dot{transform:none}
.intro-clock{font-size:15px;color:var(--muted-d);letter-spacing:.04em}

/* ── 1 · город ── */
.sc-city{background:var(--night)}
.sc-city .stage{min-height:100svh;display:grid;align-content:end;padding-bottom:max(48px,6svh)}
.city-media{position:absolute;inset:0;overflow:hidden;background:var(--night)}
.city-still img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.city-still{position:absolute;inset:0}
.city-cv{position:absolute;inset:0;width:100%;height:100%;opacity:0}
.anim .city-cv.ready{opacity:1}
.city-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,17,22,.55) 0,rgba(14,17,22,0) 26%,rgba(14,17,22,0) 52%,rgba(14,17,22,.82) 100%);pointer-events:none}
.city-copy{position:relative;z-index:3;display:grid;gap:22px;max-width:980px}
.city-copy .lead{color:#C9D0DA;max-width:30em}
.anim .sc-city .city-copy{position:absolute;left:var(--side);right:var(--side);bottom:max(56px,8svh)}
.cue{display:inline-flex;align-items:center;gap:12px;font-size:14px;color:var(--soft);text-decoration:none;width:max-content}
.cue-line{width:44px;height:1px;background:var(--soft);transform-origin:left;animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:scaleX(.2)}60%{transform:scaleX(1)}100%{transform:scaleX(.2)}}
.city-hud{display:none}
.anim .city-hud{display:grid;gap:10px;justify-items:start;position:absolute;z-index:3;left:var(--side);bottom:max(56px,8svh);width:min(420px,calc(100vw - 2*var(--gut)));padding:18px 20px 20px;background:var(--night);border:1px solid var(--line-d);opacity:0;transition:opacity .4s}
.city-count{display:flex;align-items:baseline;gap:12px}
.city-count b{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:clamp(34px,3.6vw,52px);font-weight:500;letter-spacing:-.03em}
.city-count span{font-size:15px;color:var(--soft)}
.city-step{font-size:17px;line-height:1.45;color:var(--paper);min-height:2.9em;max-width:22em}
.city-rules{display:flex;flex-wrap:wrap;gap:8px}
.city-rules:empty,.city-rules.off{display:none}
.city-rules li{font-size:14px;padding:6px 12px;border:1px solid var(--line-d);background:var(--night);color:var(--paper);opacity:0;transform:translateY(6px);transition:opacity .35s,transform .35s var(--ease)}
.city-rules li.on{opacity:1;transform:none}
.city-boxes{position:absolute;inset:0;pointer-events:none}
.bx{position:absolute;left:0;top:0;border:1px solid rgba(244,245,246,.7);opacity:0;transition:opacity .35s,border-color .35s;will-change:transform}
.bx i{position:absolute;left:-1px;bottom:calc(100% + 6px);display:flex;gap:6px;white-space:nowrap;font:500 11.5px/1.2 var(--sans);color:var(--paper);background:rgba(14,17,22,.86);padding:4px 7px;font-style:normal}
.bx i em{font:400 11px/1.2 var(--mono);color:var(--soft);font-style:normal}
.bx.on{opacity:1}
.bx.out{opacity:0!important}
.bx.tg.hot{border-color:transparent}
.bx.tg.hot:before{content:"";position:absolute;inset:-1px;border:1.5px solid var(--amber);border-top:0;background:linear-gradient(var(--amber),var(--amber)) left top/calc(50% - 6px) 1.5px no-repeat,linear-gradient(var(--amber),var(--amber)) right top/calc(50% - 6px) 1.5px no-repeat}
.bx.tg.hot:after{content:"";position:absolute;left:50%;top:-12px;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:var(--amber)}
.bx.tg i{display:none}
.city-final{display:none}
.anim .city-final{display:grid;gap:8px;position:absolute;z-index:4;left:var(--side);bottom:max(56px,8svh);max-width:min(640px,calc(100vw - 2*var(--gut)));opacity:0;transform:translateY(16px);transition:opacity .5s,transform .6s var(--ease)}
.anim .city-final.on{opacity:1;transform:none}
.city-final-k{font-size:clamp(30px,3.6vw,52px);font-weight:500;letter-spacing:-.03em;line-height:1.02}
.city-final-ev{font-size:16px;color:var(--soft)}
.city-final-ev .mono{color:var(--amber);margin-right:8px}
.note-city{position:absolute;z-index:3;right:var(--side);bottom:18px}
.no-js .note-city,.rm .note-city{position:static;margin-top:20px}
@media (max-width:760px){
  .cue{display:none}
  .anim .sc-city .city-copy,.anim .city-final{bottom:calc(env(safe-area-inset-bottom,0px) + 100px)}
  .note-city{bottom:calc(env(safe-area-inset-bottom,0px) + 74px)}
}
@media (max-aspect-ratio:1/1){
  .city-still img{object-position:50% 50%}
  .anim .city-hud{top:calc(var(--top) + 4px);bottom:auto;width:auto;right:var(--side);padding:14px 16px 16px}
  .city-count b{font-size:34px}
  .city-step{font-size:16px}
}

/* ── 2 · окно возможности ── */
.sc-window{background:var(--night)}
.sc-window .stage{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,80px);align-items:center;padding-inline:var(--side)}
.anim .sc[data-scene].sc-window>.stage{padding:var(--top) var(--side) 40px}
.win-copy{display:grid;gap:24px;align-content:center}
.win-list{display:grid;gap:4px;margin-top:8px}
.win-list li{display:grid;gap:2px;padding:12px 0 12px 18px;border-left:1px solid var(--line-d);color:var(--muted-d);transition:color .35s,border-color .35s}
.win-list b{font-weight:500;font-size:18px}
.win-list span{font-size:15px;line-height:1.45}
.win-list li.on{color:var(--paper);border-color:var(--paper)}
.win-list li.on span{color:var(--soft)}
.win-gauge{display:grid;gap:18px}
.win-gauge svg{width:100%;height:auto;overflow:visible}
#win-svg line{vector-effect:non-scaling-stroke}
.win-zone line{stroke:var(--soft);stroke-width:1.5}
.win-zone-t,.win-done-t,.win-axis{font-family:var(--sans);font-weight:400;fill:var(--soft)}
.win-done-t{fill:var(--muted-d)}
.win-axis{fill:var(--muted-d)}
.win-base{stroke:var(--paper);stroke-width:1.5}
.win-tick{stroke:var(--line-d);stroke-width:1.5}
.win-tick.mj{stroke:var(--muted-d)}
.win-num{font-family:var(--mono);fill:var(--muted-d)}
.win-needle line{stroke:var(--paper);stroke-width:2}
.win-needle-dot{fill:var(--paper)}
.win-needle.ortus line{stroke:var(--amber)}
.win-needle.ortus .win-needle-dot{fill:var(--amber)}
.win-needle.lost line{stroke-dasharray:5 6}
.win-moment{fill:var(--amber);opacity:0;transition:opacity .4s}
.win-moment.on{opacity:1}
.win-cap{font-size:17px;color:var(--paper);min-height:1.6em}
@media (max-width:900px){.sc-window .stage{grid-template-columns:1fr;align-content:center;gap:28px}.win-list li:not(.on){display:none}.no-js .win-list li,.rm .win-list li{display:grid}.win-copy .lead{display:none}.no-js .win-copy .lead,.rm .win-copy .lead{display:block}}

/* ── 3 · источники ── */
.sc-sources{background:var(--deep)}
.sc-sources .stage{display:grid;grid-template-rows:auto 1fr auto;gap:28px}
.anim .sc[data-scene].sc-sources>.stage{padding:var(--top) var(--side) 28px}
.src-copy{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(20px,4vw,64px);align-items:end}
.src-field{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr);align-items:center;gap:24px;min-height:0}
.src-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.src-lines path{fill:none;stroke:var(--line-d);stroke-width:1.2}
.src-lines path.lit{stroke:rgba(244,245,246,.55)}
.src-lines path.bad{stroke:var(--line-d);stroke-dasharray:4 7}
.src-lines circle{fill:var(--paper)}
.src-list{position:relative;display:grid;gap:clamp(10px,2.2svh,22px);align-content:center;z-index:2;max-width:430px}
.src-list li{display:grid;gap:3px;opacity:.35;transition:opacity .4s}
.src-list li.on{opacity:1}
.src-list b{font-weight:500;font-size:clamp(17px,1.5vw,21px)}
.src-list span{font-size:12.5px;color:var(--muted-d);opacity:0;transition:opacity .4s}
.src-list li.chk span{opacity:1}
.src-list li.is-bad.chk b{color:var(--muted-d);text-decoration:line-through;text-decoration-thickness:1px}
.src-list li.is-bad.chk span{color:var(--bad)}
.src-ring{position:relative;z-index:2;display:grid;justify-items:center;gap:18px}
.src-ring svg{width:clamp(110px,14vw,190px);height:auto;overflow:visible}
.src-ring-c{fill:none;stroke:var(--paper);stroke-width:249;stroke-linecap:round;stroke-dasharray:877.8 1000}
.src-ring-dot{fill:var(--amber);transition:transform .9s var(--ease);transform:translateY(822px)}
.src-ring.on .src-ring-dot{transform:none}
.src-ring-t{font-size:15px;color:var(--soft)}
.src-ring-t b{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:22px;color:var(--paper);font-weight:500;margin-right:4px}
@media (max-width:900px){
  .src-copy{grid-template-columns:1fr;gap:14px}.src-copy .lead{font-size:16px}
  .src-field{grid-template-columns:1fr;grid-template-rows:auto auto;align-content:start;gap:clamp(18px,4svh,40px)}
  .src-list{gap:10px}
  .src-ring svg{width:92px}
}
@media (max-width:900px) and (max-height:760px){.anim .src-copy .lead{display:none}}

/* ── 4 · сито ── */
.sc-sieve{background:var(--graphite);padding-block:clamp(84px,12vw,150px)}
.sv-head{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(20px,4vw,64px);align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.sv{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);align-items:start}
.sv-rules{display:grid;gap:26px}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{padding:0;font-size:15px;color:var(--soft);margin-bottom:12px;display:flex;gap:10px}
legend output{color:var(--paper)}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.seg span{display:flex;align-items:center;min-height:42px;padding:0 14px;border:1px solid var(--line-d);font-size:15px;color:var(--soft);transition:background .2s,color .2s,border-color .2s}
.seg label:hover span{border-color:var(--muted-d);color:var(--paper)}
.seg input:checked+span{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.seg input:focus-visible+span{outline:2px solid var(--amber);outline-offset:2px}
.seg-sm span{min-height:36px;font-size:14px;padding:0 11px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;margin:0;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:2px;background:var(--line-d)}
input[type=range]::-moz-range-track{height:2px;background:var(--line-d)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-7px;background:var(--paper);border:0}
input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--paper);border:0;border-radius:0}
.range-marks{display:flex;justify-content:space-between;font-size:12px;color:var(--muted-d);margin-top:4px}
.sw{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:15px;color:var(--soft);min-height:40px;position:relative}
.sw input{position:absolute;opacity:0;width:44px;height:24px;margin:0;cursor:pointer}
.sw-k{flex:none;width:44px;height:24px;border:1px solid var(--line-d);position:relative;transition:background .2s,border-color .2s}
.sw-k:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;background:var(--muted-d);transition:transform .25s var(--ease),background .2s}
.sw input:checked+.sw-k{border-color:var(--paper)}
.sw input:checked+.sw-k:after{transform:translateX(20px);background:var(--paper)}
.sw input:focus-visible+.sw-k{outline:2px solid var(--amber);outline-offset:2px}
.sv-sw{display:grid;gap:4px}
.sv-out{display:grid;gap:22px;min-width:0}
.sv-count{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--line-d)}
.sv-count p{font-size:15px;color:var(--soft)}
.sv-n{display:flex;align-items:baseline;gap:12px}
.sv-n b{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:clamp(44px,5vw,68px);font-weight:500;color:var(--paper);letter-spacing:-.03em;line-height:1}
.sv-n span{color:var(--paper);font-size:17px}
.sv-list{display:grid;min-width:0}
.sv-list li{border-bottom:1px solid var(--line-d)}
.sv-list button{all:unset;box-sizing:border-box;width:100%;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:4px 14px;padding:13px 4px 13px 0;cursor:pointer;align-items:baseline}
.sv-list .t{font-family:var(--mono);font-size:13px;color:var(--muted-d)}
.sv-list .ti{font-size:16px;color:var(--paper);line-height:1.35}
.sv-list .w{grid-column:2;font-size:14px;color:var(--muted-d)}
.sv-list .s{grid-row:1;grid-column:3;font-family:var(--mono);font-size:13px;color:var(--soft);white-space:nowrap}
.sv-list button:hover .ti{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.sv-list button:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.sv-list li.sel .t{color:var(--amber)}
.sv-list li.sel .ti{color:var(--paper)}
.sv-list li.sel{background:rgba(244,245,246,.05)}
.sv-list li.sel .t:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--amber);margin:0 6px 2px 0;vertical-align:middle}
.sv-list li.in{animation:svin .45s var(--ease) both}
@keyframes svin{from{opacity:0;transform:translateY(8px)}}
.sv-list .more{padding:14px 0;font-size:14px;color:var(--muted-d);border:0}
.sv-hint{font-size:14px;color:var(--muted-d)}
.sc-sieve .note{margin-top:36px}
@media (max-width:900px){.sv-head,.sv{grid-template-columns:1fr}.sv-list button{grid-template-columns:46px minmax(0,1fr)}.sv-list .s{grid-row:auto;grid-column:2}}

/* ── 5 · контакт ── */
.sc-contact{background:var(--graphite)}
.sc-contact .stage{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(24px,5vw,80px);align-items:center}
.anim .sc[data-scene].sc-contact>.stage{padding:var(--top) var(--side) 40px}
.who-copy{display:grid;gap:22px}
.who-chart{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"ev ev ev" "co mg pp" ". ph em" "ck ck ck";gap:clamp(18px,3.4svh,34px) clamp(14px,2vw,28px);align-items:start}
.who-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.who-lines path{fill:none;stroke:rgba(244,245,246,.45);stroke-width:1.2;stroke-dasharray:var(--l,600);stroke-dashoffset:var(--l,600);transition:stroke-dashoffset .8s var(--ease)}
.who-lines path.on{stroke-dashoffset:0}
.who-n{position:relative;z-index:1;display:grid;gap:4px;padding:14px 16px;background:var(--graphite);border:1px solid var(--line-d);opacity:.2;transition:opacity .45s,border-color .45s}
.who-n.on{opacity:1}
.who-n span{font-size:13px;color:var(--muted-d)}
.who-n b{font-weight:500;font-size:16px;line-height:1.35}
.who-ev{grid-area:ev;max-width:520px}
.who-ev span{color:var(--amber)}
.who-co{grid-area:co}.who-mg{grid-area:mg}.who-pp{grid-area:pp}.who-ph{grid-area:ph}.who-em{grid-area:em}
.frame-gap{border-top-color:transparent;background:linear-gradient(var(--line-d),var(--line-d)) left top/calc(50% - 9px) 1px no-repeat,linear-gradient(var(--line-d),var(--line-d)) right top/calc(50% - 9px) 1px no-repeat,var(--graphite)}
.frame-gap:after{content:"";position:absolute;left:50%;top:-12px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--amber);opacity:0;transform:translateY(8px);transition:opacity .4s,transform .5s var(--ease)}
.frame-gap.on{border-color:var(--paper);border-top-color:transparent;background:linear-gradient(var(--paper),var(--paper)) left top/calc(50% - 9px) 1px no-repeat,linear-gradient(var(--paper),var(--paper)) right top/calc(50% - 9px) 1px no-repeat,var(--graphite)}
.frame-gap.on:after{opacity:1;transform:none}
.who-ph b,.who-em b{font-size:15px}
.who-check{grid-area:ck;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.who-check li{position:relative;font-size:14px;color:var(--muted-d);padding-top:12px;transition:color .35s}
.who-check li:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--line-d);transition:background .35s}
.who-check li.on{color:var(--paper)}
.who-check li.on:before{background:var(--paper)}
.who-ok{grid-area:ck;align-self:end;margin-top:54px;font-size:14px;color:var(--ok);opacity:0;transition:opacity .4s}
.who-ok.on{opacity:1}
@media (max-width:900px){
  .sc-contact .stage{grid-template-columns:1fr;align-content:center;gap:22px}
  .who-copy .lead{font-size:16px}
  .who-chart{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"ev ev" "co pp" "ph em" "ck ck";gap:14px}
  .who-mg{display:none}
  .who-n{padding:11px 12px}.who-n b{font-size:15px}
  .who-check{grid-template-columns:1fr 1fr 1fr;gap:8px}.who-check li{font-size:12.5px}
  .who-ok{margin-top:62px}
}

/* ── 6 · письмо ── */
.sc-letter{background:#15171A}
.lt-media{position:absolute;inset:0;overflow:hidden}
.lt-media picture{position:absolute;inset:0}
.lt-media img{width:100%;height:100%;object-fit:cover}
.lt-pm{opacity:0}
.no-js .lt-media,.rm .lt-media{display:none}
.lt-copy{position:relative;z-index:3;display:grid;gap:18px;max-width:440px}
.anim .lt-copy{position:absolute;left:var(--side);bottom:max(48px,7svh);max-width:min(420px,30vw);transition:opacity .4s}
.sc-letter .h2{font-size:clamp(32px,3.5vw,54px)}
.lt-copy .lead{color:#C9D0DA}
.lt-paper{position:relative;z-index:2;width:min(560px,100%);aspect-ratio:1/1.414;margin-top:32px;background:#FBFBF9;color:var(--ink);container-type:inline-size}
.anim .lt-paper{position:absolute;left:0;top:0;width:560px;margin:0;transform-origin:0 0;background:rgba(251,251,249,0);will-change:transform}
.lt-in{position:absolute;inset:0;padding:7.5cqw 8cqw;display:grid;align-content:start;gap:3.2cqw;font-size:3.05cqw;line-height:1.5}
.lt-meta{display:flex;justify-content:space-between;font-size:2.5cqw;color:var(--muted-l)}
.lt-subj{font-weight:500;font-size:3.6cqw;line-height:1.3;padding-bottom:3.2cqw;border-bottom:1px solid var(--line-l)}
.lt-body{display:grid;gap:2.6cqw}
.lt-body .w{opacity:0;transition:opacity .25s}
.lt-body .w.on{opacity:1}
.no-js .lt-body .w,.rm .lt-body .w{opacity:1}
.lt-body .v{color:var(--amber-text);border-bottom:1px solid currentColor}
.lt-unsub{font-size:2.3cqw;color:var(--muted-l);margin-top:2cqw}
.lt-sent,.lt-reply,.lt-final{position:relative;z-index:3}
.anim .lt-sent{position:absolute;left:0;top:0;margin:0;opacity:0;transition:opacity .4s}
.lt-sent{font-size:14px;color:var(--paper);margin-top:16px}
.anim .lt-sent.on{opacity:1}
.lt-reply{display:grid;gap:6px;background:var(--paper);color:var(--ink);padding:16px 18px;max-width:380px;margin-top:16px}
.lt-reply-h .mono:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--amber-ink);margin:0 8px 1px 0;vertical-align:middle}
.anim .lt-reply{position:absolute;right:var(--side);bottom:max(48px,7svh);opacity:0;transform:translateY(18px);transition:opacity .45s,transform .6s var(--ease)}
.anim .lt-reply.on{opacity:1;transform:none}
.lt-reply-h{font-size:14px;color:var(--muted-l);display:flex;gap:10px}
.lt-reply-h b{color:var(--ink);font-weight:500}
.lt-reply p:last-child{font-size:17px;line-height:1.45}
.lt-final{font-size:clamp(24px,2.6vw,38px);font-weight:500;letter-spacing:-.025em;line-height:1.1;max-width:15em;margin-top:18px}
.anim .lt-final{position:absolute;left:var(--side);bottom:max(48px,7svh);max-width:min(460px,34vw);opacity:0;transition:opacity .5s}
.anim .lt-final.on{opacity:1}
@media (max-aspect-ratio:1/1){
  .anim .lt-media{inset:auto 0;top:50%;height:min(125vw,92svh);transform:translateY(-50%);-webkit-mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent)}
}
@media (max-width:900px){
  .anim .lt-copy{top:var(--top);bottom:auto;right:var(--side);max-width:none}
  .anim .lt-copy .lead{display:none}
  .anim .lt-reply{left:var(--side);right:var(--side);bottom:calc(env(safe-area-inset-bottom,0px) + 190px);max-width:none}
  .anim .lt-final{right:var(--side);max-width:none;font-size:24px;bottom:calc(env(safe-area-inset-bottom,0px) + 92px)}
}

/* ── 7 · пульт ── */
.sc-control{background:var(--paper);color:var(--ink);padding-block:clamp(84px,12vw,150px);color-scheme:light}
.ctl{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,5vw,80px);align-items:start}
.ctl-copy{display:grid;gap:24px;position:sticky;top:110px}
.ctl-rules{display:grid;margin-top:12px;border-top:1px solid var(--line-l)}
.ctl-rules li{padding:14px 0;border-bottom:1px solid var(--line-l);font-size:16px;color:var(--ink)}
.panel{background:var(--night);color:var(--paper);padding:clamp(20px,3vw,36px);display:grid;gap:0;color-scheme:dark}
.pn-row{display:grid;gap:12px;padding:22px 0;border-bottom:1px solid var(--line-d)}
.pn-row:first-child{padding-top:4px}.pn-row:last-child{border-bottom:0;padding-bottom:4px}
.pn-l{display:flex;justify-content:space-between;gap:12px;font-size:16px}
.pn-l output{color:var(--amber)}
.pn-bars,.pn-line{width:100%;height:auto}
.pn-bars rect{fill:var(--soft)}
.pn-bars text,.pn-line text{font:400 11px var(--mono);fill:var(--muted-d)}
.pn-line .ln{fill:none;stroke:var(--soft);stroke-width:1.5}
.pn-line .th{stroke:var(--paper);stroke-width:1;stroke-dasharray:4 5}
.pn-line .stop{fill:var(--amber)}
.pn-line .cut{fill:none;stroke:var(--line-d);stroke-width:1.5;stroke-dasharray:3 5}
.pn-c{font-size:12.5px;color:var(--muted-d)}
.pn-c.hot{color:var(--amber)}
.panel .sw{color:var(--paper)}
@media (max-width:900px){.ctl{grid-template-columns:1fr}.ctl-copy{position:static}}

/* ── 8 · табло ── */
.sc-board{background:var(--paper);color:var(--ink);padding-block:clamp(48px,7vw,96px) clamp(84px,12vw,150px)}
.board{margin-top:clamp(28px,4vw,48px);background:var(--night);color:var(--paper);padding:clamp(16px,2.4vw,30px)}
.board-h{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px;font-size:12px;letter-spacing:.08em;color:var(--muted-d);padding-bottom:12px;border-bottom:1px solid var(--line-d);text-transform:uppercase}
.board-rows li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px;padding:14px 0;border-bottom:1px solid var(--line-d);font-family:var(--mono);font-size:clamp(14px,1.45vw,19px);min-height:3.2em;align-items:center}
.board-rows li:last-child{border-bottom:0}
.board-rows li span:first-child{color:var(--paper)}
.board-rows li span:last-child{color:var(--soft)}
.flap{display:inline-block;min-width:.62em;text-align:center}
@media (max-width:700px){.board-h{display:none}.board-rows li{grid-template-columns:1fr;gap:4px}.board-rows li span:last-child{font-size:13px}}

/* ── 9 · как начинаем ── */
.sc-start{background:var(--paper);color:var(--ink);color-scheme:light}
.sc-start .stage{display:grid;align-content:center;gap:clamp(32px,7svh,72px)}
.anim .sc[data-scene].sc-start>.stage{padding:var(--top) var(--side) 40px}
.st-track{position:relative}
.st-svg{width:100%;height:60px;display:block}
.st-base{stroke:var(--line-l);stroke-width:2;vector-effect:non-scaling-stroke}
.st-done{stroke:var(--ink);stroke-width:2;vector-effect:non-scaling-stroke}
.st-dot{position:absolute;left:0;top:40px;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--amber-ink);will-change:transform}
.st-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2.4vw,36px);margin-top:28px}
.st-steps li{display:grid;gap:8px;align-content:start;opacity:.5;transition:opacity .4s}
.st-steps li.on{opacity:1}
.st-steps .mono{font-size:13px;color:var(--muted-l)}
.st-steps b{font-weight:500;font-size:clamp(19px,1.7vw,24px);letter-spacing:-.015em}
.st-steps p{font-size:15px;color:var(--muted-l);line-height:1.5}
.st-motto{font-size:clamp(28px,3.4vw,48px);font-weight:500;letter-spacing:-.03em;color:var(--ink);opacity:0;transform:translateY(12px);transition:opacity .5s,transform .6s var(--ease)}
.st-motto.on,.no-js .st-motto,.rm .st-motto{opacity:1;transform:none}
.no-js .st-steps li,.rm .st-steps li{opacity:1}
@media (max-width:900px){.st-steps{grid-template-columns:1fr 1fr;row-gap:18px;margin-top:20px}.st-steps p{font-size:14px}.anim .sc[data-scene].sc-start>.stage{align-content:start;gap:22px;padding-bottom:110px}}

/* ── 10 · вопросы, связь, подвал ── */
.sc-faq{background:var(--paper);color:var(--ink);padding-block:clamp(84px,12vw,150px);color-scheme:light}
.faq-w{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(24px,5vw,80px)}
.faq{border-top:1px solid var(--line-l)}
.faq details{border-bottom:1px solid var(--line-l)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;padding:22px 0;font-size:clamp(18px,1.5vw,21px);font-weight:500;letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"";flex:none;width:12px;height:12px;margin-top:8px;background:linear-gradient(var(--ink),var(--ink)) center/12px 1.5px no-repeat,linear-gradient(var(--ink),var(--ink)) center/1.5px 12px no-repeat;transition:transform .3s var(--ease)}
.faq details[open] summary:after{transform:rotate(45deg)}
.faq details p{padding:0 0 22px;max-width:40em;color:var(--muted-l);font-size:17px}
@media (max-width:900px){.faq-w{grid-template-columns:1fr}}
.sc-reach{position:relative;overflow:hidden;background:var(--night);padding-block:clamp(110px,16vw,220px) clamp(90px,12vw,160px)}
.reach-bg{position:absolute;inset:0}
.reach-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 70%;opacity:.85}
.reach{position:relative;display:grid;gap:24px}
.reach .lead{color:#D3D9E1}
.h-reach{max-width:12em;font-size:clamp(40px,6.4vw,104px)}
.links{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.links-c{display:contents}
.links a{display:inline-flex;align-items:center;gap:12px;min-height:54px;padding:0 22px;border:1px solid var(--line-d);background:var(--night);text-decoration:none;font-weight:500}
.links a:first-child{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.links small{font:400 13px var(--mono);opacity:.7}
.soon{font-size:16px;color:var(--soft)}
.foot{background:var(--night);border-top:1px solid var(--line-d);color:var(--muted-d);font-size:14px;padding-block:34px calc(34px + env(safe-area-inset-bottom,0px))}
.foot-w{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;justify-content:space-between}
.foot-logo{color:var(--paper);display:flex}.foot-logo svg{height:20px;width:auto}
.foot nav{display:flex;flex-wrap:wrap;gap:20px}
.foot a{text-decoration:none}.foot a:hover{color:var(--paper)}
.foot-req{margin-top:18px;font-size:13px;line-height:1.5;color:var(--muted-d)}
.foot .ck-open{padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.foot .ck-open:hover{color:var(--paper)}

/* ── связь: текст и кнопки слева, форма справа ── */
.reach-g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,64px);align-items:start}
.reach-g:not(:has(.lf)){grid-template-columns:1fr}
@media (max-width:900px){.reach-g{grid-template-columns:1fr}}

/* ── форма связи: короткая, всегда на тёмном ── */
.lf{display:grid;gap:16px;padding:clamp(20px,2.6vw,32px);background:var(--night);border:1px solid var(--line-d);color:var(--paper);color-scheme:dark}
.lf-h{font-weight:500;font-size:clamp(20px,1.8vw,24px);line-height:1.2;letter-spacing:-.02em}
.lf-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.lf-f{display:grid;gap:6px;align-content:start;font-size:15px;color:var(--soft)}
.lf-f i{font-style:normal;color:var(--muted-d)}
.lf-w{grid-column:1/-1}
.lf input:not([type="checkbox"]),.lf textarea{width:100%;min-height:50px;margin:0;padding:12px 14px;background:var(--deep);border:1px solid var(--line-d);border-radius:0;color:var(--paper);font:400 16px/1.4 var(--sans)}
.lf textarea{min-height:100px;resize:vertical}
.lf ::placeholder{color:#6B7482;opacity:1}
.lf input:not([type="checkbox"]):focus-visible,.lf textarea:focus-visible{outline:2px solid var(--amber);outline-offset:-1px}
.lf-ck{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.45;color:var(--soft);cursor:pointer}
.lf-ck input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--paper)}
.lf a{color:var(--paper);text-underline-offset:3px}
.lf-s{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.lf button{min-height:52px;padding:0 28px;border:1px solid var(--paper);border-radius:0;background:var(--paper);color:var(--ink);font:500 16px var(--sans);cursor:pointer}
.lf button[disabled]{opacity:.6;cursor:progress}
.lf-m{flex:1 1 220px;font-size:15px;line-height:1.45;color:var(--soft)}
.lf-m:empty{display:none}
.lf-m.ok,.lf-m.bad{color:var(--paper)}
.lf-note{font-size:14px;line-height:1.5;color:var(--muted-d)}
.lf-hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
@media (max-width:600px){.lf-g{grid-template-columns:1fr}}

/* ── cookie: плашка внизу; пока нет выбора, Метрика не загружается ── */
.ck{position:fixed;z-index:70;right:var(--side);bottom:calc(env(safe-area-inset-bottom,0px) + 16px);display:grid;gap:14px;width:min(500px,calc(100vw - 2*var(--gut)));padding:18px 20px 20px;background:var(--graphite);border:1px solid var(--line-d);color:var(--paper);font-size:15px;line-height:1.5;color-scheme:dark}
.ck[hidden]{display:none}
.ck p{color:var(--soft)}
.ck a{color:var(--paper);text-underline-offset:3px}
.ck-b{display:flex;flex-wrap:wrap;gap:8px}
.ck button{min-height:46px;padding:0 20px;border:1px solid var(--line-d);border-radius:0;background:transparent;color:var(--paper);font:500 15px var(--sans);cursor:pointer}
.ck button[data-ck="all"]{background:var(--paper);color:var(--ink);border-color:var(--paper)}
@media (max-width:760px){
  .ck{padding:16px;gap:12px}
  .ck button{padding:0 14px}
  .ck.ck-up{bottom:calc(env(safe-area-inset-bottom,0px) + 84px)}
  .dock.away~.ck.ck-up{bottom:calc(env(safe-area-inset-bottom,0px) + 16px)}
}

/* ── полоса связи на телефоне ── */
.dock{display:none}
@media (max-width:760px){
  .dock{display:flex;position:fixed;z-index:55;left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);gap:6px;padding:5px;border-radius:99px;background:var(--night);border:1px solid var(--line-d);transition:transform .5s var(--ease),opacity .4s}
  .dock a{flex:1;display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:99px;text-decoration:none;font-size:15px;font-weight:500;color:var(--paper)}
  .dock a:first-child{background:var(--paper);color:var(--ink)}
  .dock.away{transform:translateY(140%);opacity:0}
  .foot{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
}

/* ── без анимации: всё в конечном виде ── */
.no-js .city-cv,.rm .city-cv{display:none}
.no-js .sc-city .stage,.rm .sc-city .stage{min-height:100svh}
.no-js .src-list li,.rm .src-list li,.no-js .src-list span,.rm .src-list span{opacity:1}
.no-js .src-ring-dot,.rm .src-ring-dot{transform:none}
.no-js .who-n,.rm .who-n{opacity:1}
.no-js .who-check li,.rm .who-check li{color:var(--paper)}
.no-js .who-ok,.rm .who-ok{opacity:1;margin-top:8px;grid-area:auto;grid-column:1/-1}
.no-js .lt-sent,.rm .lt-sent{opacity:1}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
