/* «Смена» · середина «Стена выдачи» (build-m). Токены — DESIGN.md. Герой — hero.css без изменений.
   JetBrains Mono: OFL 1.1, licenses/OFL-jetbrainsmono.txt. Курсива нет. */
@font-face{font-family:'JetBrains Mono';font-weight:700;font-display:swap;src:url(fonts/JetBrainsMono-Bold.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-weight:400;font-display:swap;src:url(fonts/JetBrainsMono-Regular.woff2) format('woff2')}
:root{--steel:#353a37;--steel-d:#232624;--chalk:#ecebe4;--chalk2:#b9bab1;--paint:#2b72db;--paint-bg:#2b72db;--paint-t:#8ab8ff;--rust:#ffb08f;--ink:#1d1e1b;--brushed:#aeb3b4;--mono:'JetBrains Mono',ui-monospace,Menlo,monospace;--pad:36px}
html{scroll-behavior:smooth}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:var(--paint);padding:12px 16px;font-weight:800}
.skip:focus{top:12px}
.defs{position:absolute;width:0;height:0;overflow:hidden}
:focus-visible{outline:2px solid var(--paint);outline-offset:3px}
button{cursor:pointer}
.stencil-label{display:flex;flex-wrap:wrap;gap:6px 18px;font:700 12px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--paint-t)}
.stencil-label span+span{color:var(--chalk2)}
.stencil-label.dark{color:var(--ink)}
.stencil-label.dark span:first-child{background:var(--ink);color:var(--paint-t);padding:2px 7px}
.stencil-label.dark span+span{color:#3c3f3b}

/* ===== Стена ===== */
.wall{position:relative;isolation:isolate;background:#2c302e;color:var(--chalk);overflow:clip}
.wall>canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:-1}
.no-gl.wall{background:#30352f url(tex/metal027-color.webp) 0 0/420px;background-blend-mode:multiply}
.wall-head{max-width:1440px;margin:auto;padding:56px var(--pad) 22px;display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px 48px;align-items:end}
.wall-head .stencil-label{grid-column:1/-1}
.wall-head h2{font-size:clamp(46px,5vw,76px);line-height:.94;letter-spacing:-.055em;font-weight:800;text-shadow:0 2px 0 #0007}
.wall-lead{font-size:15px;line-height:1.55;color:var(--chalk2)}
/* рейка дней: стальная полоса, краска по выбранным дням */
.rail{position:sticky;top:0;z-index:30;max-width:1440px;margin:auto;padding:12px var(--pad) 12px;background:linear-gradient(#3b403d,#2a2e2c 55%,#202321);border-top:1px solid #ffffff1c;border-bottom:2px solid #0009;box-shadow:0 10px 18px -8px #000a}
.rail-top{display:flex;justify-content:space-between;gap:10px 18px;align-items:center;margin-bottom:8px}
.rail-cap{font:700 11px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--chalk2)}
.rail-cap span{color:var(--chalk)}
.rail-cap b{font-weight:400;letter-spacing:.02em;text-transform:none;margin-left:8px}
.rail-range{font:700 12px/1.3 var(--mono);letter-spacing:.06em;color:var(--paint-t);text-align:right;white-space:nowrap}
.rail-track{position:relative;touch-action:pan-y}
.rail-days{position:relative;display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:3px}
.stripe{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.stripe rect{fill:var(--paint);transition:x .35s cubic-bezier(.3,.7,.2,1),width .35s cubic-bezier(.3,.7,.2,1)}
.day{position:relative;appearance:none;border:0;background:none;color:var(--chalk);font:700 11px/1.1 var(--mono);letter-spacing:.06em;text-transform:uppercase;min-height:54px;padding:7px 0 6px;text-align:center;user-select:none;-webkit-user-select:none}
.day b{display:block;font-size:21px;letter-spacing:-.02em;margin-top:3px}
.day small{display:block;font-size:9px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--chalk2);margin-top:2px;min-height:11px}
.day::after{content:"";position:absolute;inset:0;border:1px dashed #ecebe42e;pointer-events:none}
.day.in{color:#fff}.day.in small{color:#e6eeff}.day.in::after{border-color:transparent}
.day.ret::before{content:"↩";position:absolute;right:4px;top:3px;font-size:12px;color:var(--paint)}
.day.closed,.day.off{color:#ecebe466}
.day.closed{background:repeating-linear-gradient(-45deg,#0000 0 7px,#ecebe412 7px 9px)}
.day:disabled{cursor:not-allowed}
.rail-terms{display:flex;gap:6px;flex-wrap:nowrap;margin-left:auto}
.term{appearance:none;font:700 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--chalk);background:#ffffff0d;border:1px solid #ecebe440;min-height:44px;padding:0 14px}
.term[aria-pressed=true]{background:var(--paint-bg);color:#fff;border-color:var(--paint-bg)}
/* мир стены: координаты в «мировых» пикселях 1368×770, масштаб через --k */
.wall-scroll{position:relative;max-width:1440px;margin:auto;padding:0 var(--pad)}
.world-size{position:relative}
.world{position:absolute;left:0;top:0;width:1368px;height:800px;transform-origin:0 0;transform:scale(var(--k,1))}
.world:focus{outline:none}
.layer{position:absolute;inset:0}
.layer>*{position:absolute;left:0;top:0}
.floor{position:absolute;left:-400px;right:-400px;top:690px;bottom:-40px;background:#4a4a46 url(tex/concrete034-color.webp) 0 0/520px;background-blend-mode:multiply;box-shadow:inset 0 22px 26px -10px #000c;border-top:3px solid #111}
.floor::after{content:"";position:absolute;left:0;right:0;top:6px;height:3px;background:repeating-linear-gradient(90deg,var(--paint) 0 46px,#0000 46px 70px);opacity:.75}
.labels>*{position:absolute;left:0;top:0}
.ghosts img.thin{filter:url(#outline-thin);opacity:.6}
.ghosts img{filter:url(#outline);opacity:.95;transform-origin:0 0}
.hatch{transform-origin:0 0;-webkit-mask-size:100% 100%;mask-size:100% 100%;background:repeating-linear-gradient(-45deg,#2b72db80 0 2px,#0000 2px 13px)}
.ghost-txt{font:700 10px/1.3 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink);text-align:center;white-space:pre;opacity:0;transition:opacity .3s;transform:translate(-50%,0);pointer-events:none;background:linear-gradient(#f3f2ec,#d9d8d0);border-top:3px solid var(--paint);padding:4px 7px 5px;box-shadow:4px 6px 7px #000a}
.ghost-txt.peg::before{content:"";position:absolute;left:50%;top:-13px;width:6px;height:12px;margin-left:-3px;border-radius:3px 3px 1px 1px;background:linear-gradient(90deg,#4e514b,#d4d6cc 45%,#5f625a)}
.ghost-txt.on{opacity:1}
.ghost-txt.mine{background:var(--ink);color:#fff;border-top-color:var(--paint)}
.tools .tw,.shadows img{transform-origin:0 0;will-change:transform}
.tw{position:absolute;left:0;top:0;transform-origin:0 0;isolation:isolate}
.tw img{display:block;width:100%;height:100%}
.lit{position:absolute;inset:0;pointer-events:none;-webkit-mask-size:100% 100%;mask-size:100% 100%;mix-blend-mode:soft-light}
.lit.rim{mix-blend-mode:screen;opacity:.8}
.shadows img{filter:brightness(0) blur(7px);opacity:.55}
.shadows img.floor-shd{filter:brightness(0) blur(12px);opacity:.42}
.contact{position:absolute;height:16px;border-radius:50%;background:radial-gradient(closest-side,#000d,#0000);transform:translateX(-50%);pointer-events:none;transition:opacity .3s}
.hook{width:10px;height:26px;margin:-6px 0 0 -5px;border-radius:5px 5px 2px 2px;background:linear-gradient(90deg,#4e514b,#d4d6cc 45%,#5f625a);box-shadow:5px 7px 6px #000a}
.hook::after{content:"";position:absolute;left:-3px;top:-4px;width:16px;height:7px;border-radius:2px;background:linear-gradient(#9a9c94,#4c4e48);box-shadow:0 2px 3px #0008}
.hit{appearance:none;background:none;border:0;padding:0;border-radius:4px}
.hit:disabled{cursor:default}
.hit:focus-visible{outline:2px dashed var(--paint);outline-offset:2px}
.plate{font:700 12px/1.45 var(--mono);letter-spacing:.04em;color:var(--chalk);text-transform:uppercase;border-top:3px solid var(--paint);padding-top:8px;text-shadow:0 1px 0 #000a}
.plate .n{color:var(--paint)}
.plate .nm{display:block;font-size:13px;margin:2px 0 4px}
.plate .pr{display:block;color:var(--chalk2);font-weight:400;text-transform:none;letter-spacing:0}
.plate .fr{display:block;margin-top:4px;color:var(--paint)}
.plate .fr.zero{color:var(--rust)}
.plate .n,.plate .fr{color:var(--paint-t)}
.plate.curb{border-top:0;padding-top:0;color:#ecebe4;font-size:11px}
.plate.dim,.dim-t{opacity:.3;transition:opacity .3s}
.wall-side{max-width:1440px;margin:auto;padding:0 var(--pad);position:relative}
.magnets{position:absolute;right:var(--pad);top:calc(-800px * var(--k,1) + 22px);width:330px;z-index:5;text-align:right}
.magnets .stencil-label{justify-content:flex-end}
.mag-row{display:flex;gap:10px;justify-content:flex-end;margin:12px 0 10px}
.mag{appearance:none;border:0;min-height:46px;padding:0 15px;font:800 16px/1 Manrope,sans-serif;color:#f4f3ee;background:radial-gradient(120% 90% at 30% 20%,#2f63a8,#173a6b);border-radius:6px;box-shadow:inset 0 1px 0 #ffffff55,inset 0 -3px 0 #0005,5px 7px 9px #000b;transition:transform .2s}
.mag-teal{background:radial-gradient(120% 90% at 30% 20%,#1f8f8f,#0f5a5c)}
.mag-yel{color:#1d1e1b;background:radial-gradient(120% 90% at 30% 20%,#f3d250,#c9a516)}
.mag[aria-pressed=true]{transform:rotate(-4deg) translateY(-2px);box-shadow:inset 0 1px 0 #ffffff55,0 0 0 3px var(--paint),8px 10px 12px #000c}
.mag-note{font:400 11px/1.5 var(--mono);color:var(--chalk2)}
.wall-index{display:none}
.wall-foot{max-width:1440px;margin:auto;padding:18px var(--pad) 26px;display:flex;justify-content:space-between;gap:20px;font:700 11px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--chalk2)}

/* ===== Прилавок ===== */
.counter{position:relative;isolation:isolate;color:var(--ink);background:#a7acad;overflow:clip}
.counter>canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:-1}
.no-gl.counter{background:#a3a8aa url(tex/metal032-color.webp) 0 0/520px}
.counter-lip{height:18px;background:linear-gradient(#141513,#3f4340 55%,#cfd3d3);box-shadow:0 8px 16px #0006}
.counter-in,.done{max-width:1440px;margin:auto;padding:56px var(--pad) 70px}
.counter h2{font-size:clamp(40px,4.4vw,66px);line-height:.98;letter-spacing:-.05em;font-weight:800;margin-top:14px;max-width:900px}
.phrase{margin-top:30px;font-size:clamp(28px,3.5vw,52px);line-height:1.32;letter-spacing:-.035em;font-weight:800;max-width:1200px}
.nw{white-space:nowrap;display:inline-flex;align-items:baseline}
.patch{appearance:none;font:inherit;letter-spacing:inherit;color:#fff;background:var(--paint-bg);border:0;padding:0 .2em .04em;margin:0 .06em 0 0;line-height:1.1;display:inline-block;transform:rotate(var(--r,-.8deg));box-shadow:2px 3px 0 #0003;min-height:44px;vertical-align:baseline}
.patch:nth-of-type(2n){--r:.7deg}.patch:nth-of-type(3n){--r:-.4deg}
.patch.ask{background:none;outline:3px dashed var(--ink);outline-offset:-3px;color:#2f312d}
.patch[aria-expanded=true]{background:var(--ink);color:var(--paint-t)}
.patch .x{font-size:.5em;vertical-align:.5em;margin-left:.15em;font-weight:700}
.opts{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:1100px;padding:14px 16px;background:#1d1e1b;color:var(--chalk)}
.opts .o-cap{flex-basis:100%;font:700 11px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paint-t)}
.opt{appearance:none;font:700 13px/1 var(--mono);color:var(--chalk);background:#ffffff10;border:1px solid #ecebe455;min-height:44px;padding:0 14px}
.opt[aria-pressed=true]{background:var(--paint-bg);color:#fff;border-color:var(--paint-bg)}
.opt:disabled{opacity:.35;cursor:not-allowed}
.opts input{font:400 15px/1.2 Manrope,sans-serif;min-height:44px;padding:0 12px;border:1px solid #ecebe466;background:#0003;color:var(--chalk);min-width:min(420px,100%)}
.opts label{font:700 11px/1.4 var(--mono);letter-spacing:.06em;color:var(--chalk2);text-transform:uppercase}
.err{margin-top:12px;font-weight:700;color:#8e2b12}
.counter-grid{margin-top:34px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px;align-items:start}
.tray-wrap{position:sticky;top:24px}
.tray{position:relative;height:380px;border-bottom:14px solid #2a2c2a;box-shadow:0 14px 0 -4px #0003;background:linear-gradient(#0000 70%,#0000001a);overflow:hidden}
.tray::before{content:"";position:absolute;left:0;right:0;bottom:0;height:46px;background:linear-gradient(#0000,#00000022);pointer-events:none}
.tray-empty{position:absolute;left:0;right:0;top:8%;text-align:center;font:700 12px/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#30332f;padding:0 20px}
.tray>img,.tray>.tw{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.tray::after{content:"";position:absolute;left:0;right:0;bottom:46px;height:2px;background:linear-gradient(90deg,#0000,#ffffff70 20%,#ffffff70 80%,#0000);pointer-events:none}
.sockets{position:absolute;inset:0}.sockets img{position:absolute;filter:url(#chalk);opacity:.85}
.tray img.shd{filter:brightness(0) blur(8px);opacity:.38}
.tray .token{position:absolute;left:0;top:0;width:96px;height:96px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;font:800 11px/1.1 var(--mono);letter-spacing:.04em;color:var(--ink);background:radial-gradient(circle at 34% 30%,#fff4c8,#e5a52b 42%,#9c6a12 100%);box-shadow:inset 0 0 0 5px #0000,inset 0 0 0 7px #00000038,6px 9px 10px #0006;transform-origin:0 0;will-change:transform}
.tray .token span{display:block;font-size:1.35em;letter-spacing:-.02em;font-family:Manrope,sans-serif}
.kit{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:16px;font:700 11px/1.35 var(--mono);letter-spacing:.06em;text-transform:uppercase}
.kit .slot{width:58px;height:34px;border:2px dashed var(--ink);display:grid;place-items:center;position:relative}
.kit .slot img{width:46px;height:26px;object-fit:contain;filter:url(#paint)}
.tray-wrap .extras{margin-top:22px}
.kit .slot.on{border-style:solid;background:#1d1e1b}
.kit .m{border-color:var(--paint);padding:0 9px;width:auto;color:#1d4fa8}
.kit .m.on{background:var(--paint-bg);color:#fff;border-color:var(--ink)}
.kit p{flex-basis:100%;text-transform:none;letter-spacing:.01em;font-weight:400}
.sum-cap{font:700 12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.sum-big{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.sum-big strong{font-size:clamp(70px,8vw,124px);line-height:.92;letter-spacing:-.06em;font-weight:800}
.sum-big span{font:700 13px/1.4 var(--mono)}
.sum-lines{margin:16px 0 0;border-top:2px solid var(--ink)}
.sum-lines div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #1d1e1b45;font-size:16px}
.sum-lines dd{margin:0;font-weight:800;white-space:nowrap;text-align:right}
.sum-lines .due{font-size:19px;font-weight:800}
.sum-note{font-size:13px;line-height:1.5;margin-top:10px;color:#1d1e1bd9}
.extras{margin-top:16px;display:grid;gap:8px}
.sw{display:flex;gap:12px;align-items:flex-start;font-weight:700;font-size:15px;min-height:44px;padding:6px 0}
.sw input{width:22px;height:22px;margin:2px 0 0;accent-color:#1d1e1b;flex:none}
.sw small{display:block;font-weight:400;font-size:12px;color:#2c2e2b;margin-top:2px}
.rems{border:0;margin:14px 0 0;padding:0}
.rems legend{font:700 11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:0;margin-bottom:8px}
.rem-row{display:flex;flex-wrap:wrap;gap:8px}
.rem{appearance:none;font:700 12px/1 var(--mono);min-height:44px;padding:0 12px;background:#0000;border:1px solid #1d1e1b80;color:var(--ink)}
.rem[aria-pressed=true]{background:var(--ink);color:var(--paint)}
.rem:disabled{opacity:.35;cursor:not-allowed}
.rem-note{font-size:12px;margin-top:6px}
.go{margin-top:22px;display:flex;align-items:center;justify-content:space-between;width:100%;max-width:440px;min-height:66px;padding:0 22px;background:var(--paint-bg);color:#fff;border:1px solid var(--ink);font:800 14px/1 Manrope,sans-serif;letter-spacing:.02em;text-transform:uppercase}
.go span:last-child{font-size:28px}
.go:hover{background:var(--ink);color:var(--paint-t)}
.go.ghost{background:#0000}
.fine{margin-top:10px;font:400 11px/1.5 var(--mono);color:#2c2e2b}
.done-set{position:relative;display:flex;align-items:flex-end;gap:26px;min-height:120px;margin-top:22px;padding:0 10px;border-bottom:12px solid #2a2c2a}
.done-set img{display:block;filter:drop-shadow(10px 9px 7px #0006)}
.done .stencil-big{font-size:clamp(64px,9vw,150px);line-height:.9;letter-spacing:-.06em;font-weight:800;margin-top:14px;font-family:var(--mono);text-transform:uppercase;color:var(--ink);opacity:.92}
.done-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:48px;margin-top:30px;align-items:start}
.done-list{margin:0;border-top:2px solid var(--ink)}
.done-list div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:14px;padding:10px 0;border-bottom:1px solid #1d1e1b45;font-size:16px}
.done-list dt{font:700 11px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase}
.done-list dd{margin:0;font-weight:700;white-space:pre-line}
.tg{background:#1d1e1b;color:var(--chalk);padding:18px}
.tg-cap{font:700 11px/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paint-t)}
.tg-cap.small{color:var(--chalk2);text-transform:none;letter-spacing:0;font-weight:400;margin-top:10px}
.tg-msg{margin-top:12px;background:#2b5278;border-radius:12px 12px 12px 3px;padding:12px 14px;max-width:360px}
.tg-msg.rem{background:#33393d}
.tg-head{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}.tg-head span{color:#ffffff99;font-size:12px}
.tg-body{font-size:14px;line-height:1.5;white-space:pre-line}

/* ===== Окно выдачи ===== */
.issue{position:relative;isolation:isolate;color:var(--chalk);background:#2e3330;overflow:clip}
.issue>canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:-1}
.no-gl.issue{background:#30352f url(tex/metal027-color.webp) 0 0/420px;background-blend-mode:multiply}
.issue-in{max-width:1440px;margin:auto;padding:70px var(--pad) 80px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-template-areas:"head head" "hatch rules" "map map";gap:34px 56px}
.issue-head{grid-area:head}
.issue h2{font-size:clamp(40px,4.4vw,66px);line-height:.98;letter-spacing:-.05em;font-weight:800;margin-top:14px;max-width:880px;text-shadow:0 2px 0 #0007}
.hatch{grid-area:hatch;align-self:start;position:relative}
.hatch:focus{outline:none}
.hatch-sign{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;background:linear-gradient(#1b1c1a,#101110);padding:14px 16px;font:700 12px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--chalk2);border-bottom:3px solid var(--paint);box-shadow:0 10px 18px #000a}
.hatch-sign strong{font:800 24px/1 Manrope,sans-serif;letter-spacing:-.02em;text-transform:none;color:#ffe2a6;text-shadow:0 0 14px #ffc46a99}
.hatch-sign .lamp{width:12px;height:12px;border-radius:50%;background:#ffcf6b;box-shadow:0 0 10px 3px #ffb23f88}
.hatch-sign .next{flex-basis:100%;color:var(--paint-t);font-weight:700}
/* окно в стене: стальная рама, тёплая комната выдачи, поднятое стекло с записками, доска с ответами мелом, подоконник */
.hatch-frame{position:relative;display:flex;flex-direction:column;gap:16px;padding:18px;min-height:470px;border:16px solid #44473f;border-color:#7a7e76 #34372f #262822 #5d6159;background:radial-gradient(90% 60% at 50% 0%,#8a6c45,#43362a 58%,#221d18);box-shadow:inset 0 0 0 2px #000a,inset 0 30px 60px #0006,0 20px 34px #000c;overflow:hidden}
.hatch-room{position:absolute;inset:0;background:repeating-linear-gradient(#0000 0 86px,#1a140f99 86px 92px,#0000 92px 96px);opacity:.55}
.hatch-pane{position:absolute;left:0;right:0;top:0;height:40%;background:linear-gradient(112deg,#ffffff26 0 14%,#ffffff08 14% 36%,#ffffff1a 36% 41%,#ffffff06 41%),#a9c2c51f;border-bottom:12px solid #4b4e47;box-shadow:0 8px 12px #0008;pointer-events:none}
.chips{position:relative;z-index:3;display:flex;flex-wrap:wrap;gap:12px 14px;padding:4px 2px 0}
.chip{appearance:none;position:relative;font:700 13px/1.3 Manrope,sans-serif;color:var(--ink);background:linear-gradient(#f8f5ea,#e9e4d4);border:0;min-height:44px;padding:12px 14px 10px;box-shadow:3px 5px 6px #0007;text-align:left;transform:rotate(var(--r,-1.2deg))}
.chip:nth-child(2){--r:1.4deg}.chip:nth-child(3){--r:-.6deg}
.chip::before{content:"";position:absolute;left:50%;top:-7px;width:46px;height:14px;margin-left:-23px;background:#f3eecf99;box-shadow:0 1px 2px #0003;transform:rotate(-3deg)}
.chip:hover,.chip:focus-visible{background:#d9e7ff}
.board{position:relative;z-index:2;flex:1;min-height:250px;margin:4px 4% 0;padding:14px 16px;background:#1d2420;border:9px solid #6b4f33;border-color:#8a6744 #5a4029 #4d3723 #7a5a3b;box-shadow:0 14px 22px #000b,inset 0 0 40px #0008}
.log{height:100%;max-height:300px;overflow:auto;display:flex;flex-direction:column;gap:10px;font:400 15px/1.55 var(--mono);color:#f1efe4;padding-right:6px;text-shadow:0 0 1px #fff8,1px 0 0 #ffffff22}
.msg{max-width:96%}
.msg.me{align-self:flex-end;text-align:right;color:#b9d3ff;font-weight:700}
.msg.me::before{content:"— "}
.times{display:grid;gap:8px;margin-top:8px}
.times p{font-size:13px;color:var(--chalk2)}
.tbtn{appearance:none;font:700 13px/1 var(--mono);min-height:44px;padding:0 12px;margin:4px 6px 0 0;background:#f4f1e6;color:var(--ink);border:0;box-shadow:2px 3px 0 #0006}
.ask{display:flex;gap:10px;position:relative}
.ask.sill{padding:12px 14px;background:linear-gradient(#d5d8d7,#9ca1a1 60%,#7d8282);box-shadow:0 10px 16px #0009;border-top:1px solid #fff8}
.ask input{flex:1;min-width:0;min-height:48px;padding:0 14px;font:500 15px/1 Manrope,sans-serif;background:#f6f3e8;color:var(--ink);border:0;box-shadow:inset 0 1px 3px #0003}
.ask button{appearance:none;width:52px;min-height:48px;border:0;background:var(--paint-bg);color:#fff;font-size:24px;font-weight:800}
.hatch-note{margin-top:12px;font:400 11px/1.5 var(--mono);color:var(--chalk2)}
.rules{grid-area:rules}
.rule-rail{position:relative;margin-top:22px;display:flex;flex-wrap:wrap;gap:26px 14px;padding-top:16px}
.rule-rail::before{content:"";position:absolute;left:-8px;right:-8px;top:0;height:10px;background:linear-gradient(#c9ccc6,#6a6d67 60%,#3a3c38);box-shadow:0 5px 8px #0009;border-radius:2px}
.rule{appearance:none;position:relative;border:0;width:calc(33.333% - 10px);min-height:92px;padding:16px 12px 12px;text-align:left;font:800 15px/1.2 Manrope,sans-serif;letter-spacing:-.01em;color:var(--ink);background:linear-gradient(#efeee6,#cfcfc6);box-shadow:inset 0 1px 0 #fff,inset 0 -2px 0 #0003,6px 9px 10px #000a;transform-origin:50% -14px}
.rule::before,.rule::after{content:"";position:absolute;top:-17px;width:3px;height:19px;background:linear-gradient(90deg,#666,#ddd,#666)}
.rule::before{left:22px}.rule::after{right:22px}
.rule span{display:block;font:700 10px/1.2 var(--mono);letter-spacing:.08em;color:#1d4fa8;margin-bottom:6px}
.rule[aria-pressed=true]{background:var(--paint-bg);color:#fff}.rule[aria-pressed=true] span{color:#d6e5ff}
.chalk{margin-top:26px;min-height:150px;padding:18px 20px;background:#1e2120;box-shadow:inset 0 0 0 1px #ffffff1a,inset 0 0 40px #0009}
.chalk-q{font:700 12px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paint-t)}
.chalk-a{margin-top:10px;font:400 16px/1.6 var(--mono);color:#ecebe4;text-shadow:0 0 1px #fff8,1px 0 0 #ecebe422}
.mapboard{grid-area:map}
.mapwrap{margin-top:16px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px 56px;align-items:center}
.map{position:relative;height:340px}
.map svg{position:absolute;inset:0;width:100%;height:100%}
.ring{stroke:#ecebe4;opacity:.55;stroke-width:3;stroke-dasharray:2 7}
.r1{stroke:var(--paint);opacity:.9;stroke-width:5;stroke-dasharray:none}
.river{stroke:#7fa6b8;stroke-width:4;opacity:.6}
.ring-lbl{position:absolute;transform:translate(-50%,-100%);font:700 10px/1 var(--mono);letter-spacing:.1em;color:var(--chalk2);background:#1f2221;padding:3px 5px}
.l1{left:50%;top:7.5%;color:var(--paint-t)}.l2{left:50%;top:26%}.l3{left:50%;top:36.5%}
.pin{position:absolute;left:50%;top:51%;width:30px;height:30px;margin:-30px 0 0 -15px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--paint-bg);box-shadow:4px 6px 8px #000a;display:grid;place-items:center;font:800 14px/1 Manrope,sans-serif;color:#fff}
.mtags{display:grid;gap:14px;align-content:center}
.mtag{display:grid;gap:3px;padding:12px 14px;font:400 12px/1.45 var(--mono);color:var(--ink);background:linear-gradient(#f3f2ec,#dcdbd3);border-left:7px solid var(--paint);box-shadow:5px 7px 8px #000a}
.mtag b{font:800 16px/1.2 Manrope,sans-serif}
.mt-del{border-left-color:#9aa0a0}
.map-note{font:400 11px/1.5 var(--mono);color:var(--chalk2)}

/* ===== Финал ===== */
.finale{position:relative;isolation:isolate;min-height:760px;color:var(--chalk);background:#1d201e;overflow:clip;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center}
.finale>canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:-1}
.no-gl.finale{background:#202421 url(tex/metal027-color.webp) 0 0/420px;background-blend-mode:multiply}
.finale-stage{position:relative;height:640px}
.finale-stage img{position:absolute;left:0;top:0;transform-origin:0 0}
.f-ghost{filter:url(#outline);opacity:.95}
.finale-stage .tw{z-index:2}
.f-lamp{position:absolute;left:0;top:0;width:120px;height:140px;margin-left:-60px;z-index:4}
.f-lamp .cord{position:absolute;left:59px;top:-600px;width:2px;height:640px;background:#111}
.f-lamp .shade{position:absolute;left:10px;top:38px;width:100px;height:56px;clip-path:polygon(28% 0,72% 0,100% 100%,0 100%);background:linear-gradient(90deg,#26292a,#8d9291 38%,#3a3e3e 70%,#1b1d1e)}
.f-lamp .bulb{position:absolute;left:38px;top:80px;width:44px;height:22px;border-radius:0 0 22px 22px;background:radial-gradient(circle at 50% 10%,#fffbe8,#ffd889 55%,#e9a24c);box-shadow:0 0 30px 12px #ffd38966}
.f-cone{position:absolute;left:0;top:0;width:620px;height:560px;margin-left:-310px;z-index:1;pointer-events:none;background:radial-gradient(50% 60% at 50% 0%,#ffe2a41f,#0000 70%);clip-path:polygon(44% 0,56% 0,100% 100%,0 100%)}
.f-shd{filter:brightness(0) blur(14px);opacity:.6}
.f-hook{position:absolute;width:16px;height:48px;border-radius:7px 7px 3px 3px;background:linear-gradient(90deg,#4e514b,#d4d6cc 45%,#5f625a);box-shadow:8px 10px 9px #000b;z-index:3}
.finale-copy{padding:60px var(--pad) 60px 0;max-width:560px}
.finale h2{font-size:clamp(54px,6.6vw,104px);line-height:.92;letter-spacing:-.06em;font-weight:800;margin-top:14px}
.f-ret{margin-top:22px;font:700 clamp(20px,2vw,28px)/1.25 var(--mono);color:var(--paint-t);letter-spacing:-.01em}
.f-sub{margin-top:12px;font-size:15px;line-height:1.55;color:var(--chalk2);max-width:440px}
.f-cta{margin-top:28px;display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:62px;padding:0 22px;background:var(--paint-bg);color:#fff;font:800 13px/1 Manrope,sans-serif;text-transform:uppercase;text-decoration:none;border:1px solid var(--ink)}
.f-cta span{font-size:26px}

/* ===== Подвал (разметка принятой версии без изменений) ===== */
.site-footer{background:#242522;color:#f0efe9;padding:46px 0 30px}
.site-footer .container{max-width:1440px;margin:auto;padding:0 var(--pad)}
.footer-top{display:flex;align-items:flex-end;gap:40px;flex-wrap:wrap;padding-bottom:26px;border-bottom:1px solid #ffffff2a}
.footer-brand{font-size:58px;font-weight:800;letter-spacing:-.06em;text-decoration:none;line-height:1}
.footer-top p{font-size:15px;line-height:1.45;color:#c9c9bf}
.footer-link{margin-left:auto;display:inline-flex;align-items:center;gap:12px;min-height:44px;font-weight:800;text-decoration:none;color:var(--paint)}
.footer-bottom{display:flex;justify-content:space-between;gap:12px 28px;flex-wrap:wrap;padding-top:18px;font-size:12px;color:#b9bab1}
.footer-bottom a{color:#f0efe9;display:inline-block;padding:12px 0}

/* полоса заявки: видна, когда что-то снято со стены, а прилавок вне экрана */
.tray-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px var(--pad);background:linear-gradient(#2c2f2c,#1a1c1a);color:var(--chalk);border-top:3px solid var(--paint);font:700 12px/1.35 var(--mono);letter-spacing:.04em;box-shadow:0 -8px 20px #0007}
.tray-bar a{flex:none;display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 16px;background:var(--paint-bg);color:#fff;font:800 13px/1 Manrope,sans-serif;text-decoration:none;text-transform:uppercase}
.tray-bar p b{color:var(--paint-t)}

/* ===== Телефон (проектировался первым, см. DESIGN.md) ===== */
@media(max-width:1100px){
 :root{--pad:24px}
 .issue-in{grid-template-columns:1fr;grid-template-areas:"head" "hatch" "rules" "map"}
 .finale{grid-template-columns:1fr}.finale-stage{height:520px}.finale-copy{padding:0 var(--pad) 70px}
 .counter-grid{grid-template-columns:1fr}
 .done-grid{grid-template-columns:1fr}
 .magnets{position:static;width:auto;text-align:left;margin-top:20px}
 .magnets .stencil-label,.mag-row{justify-content:flex-start}
 .rail-cap b{display:none}.rail.pending .rail-cap b{display:inline}
 .wall-index{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-top:14px}
 .wi{appearance:none;text-align:left;font:700 10px/1.25 var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--chalk);background:#ffffff0c;border:1px solid #ecebe433;border-top:3px solid var(--paint);min-height:54px;padding:6px 8px}
 .wi b{display:block;color:var(--paint-t);font-weight:700;margin-top:3px}
 .wi b.zero{color:var(--rust)}
}
@media(max-width:700px){
 :root{--pad:18px}
 .wall-head{grid-template-columns:1fr;padding-top:42px;gap:10px}
 .wall-head h2{font-size:44px}
 .wall-lead{font-size:14px}
 .rail{padding:10px 0 10px;margin:0}
 .rail-top{padding:0 var(--pad);flex-direction:column;align-items:stretch;gap:4px}
 .rail-cap{display:none}
 .rail.pending .rail-cap{display:block}
 .rail-cap b{display:none}
 .rail.pending .rail-cap b{display:inline;margin-left:6px}
 .day{min-height:54px}
 .rail-terms{margin:2px calc(-1 * var(--pad)) 2px;padding:0 var(--pad)}
 .rail.stuck{padding:4px 0}
 .rail.stuck .rail-top{display:none}
 .rail.stuck .day{min-height:44px;padding:3px 0}
 .rail.stuck .day small{display:none}
 .rail.stuck .day b{font-size:16px;margin-top:1px}
 .tray{height:330px}
 .tray::after{bottom:36px}
 .term{font-size:10px;padding:0 12px}
 .rail-range{text-align:left;font-size:12px}
 .rail-track{overflow-x:auto;scrollbar-width:none;padding:0 var(--pad);touch-action:pan-x}
 .rail-track::-webkit-scrollbar{display:none}
 .rail-days{grid-template-columns:repeat(14,52px);width:max-content}
 .stripe{left:var(--pad);width:calc(14 * 52px + 13 * 3px)}
 .rail-terms{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;order:3}
 .term{flex:none}
 .wall-scroll{padding:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scrollbar-width:none;overscroll-behavior-x:contain}
 .wall-scroll::-webkit-scrollbar{display:none}
 .snap{position:absolute;top:0;width:1px;height:1px;scroll-snap-align:start}
 .magnets{position:static;width:auto;text-align:left;margin-top:20px}
 .magnets .stencil-label,.mag-row{justify-content:flex-start}
 .wall-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:14px}
 .wi{appearance:none;text-align:left;font:700 10px/1.25 var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--chalk);background:#ffffff0c;border:1px solid #ecebe433;border-top:3px solid var(--paint);min-height:54px;padding:6px 8px}
 .wi b{display:block;color:var(--paint-t);font-weight:700;margin-top:3px}
 .wi b.zero{color:var(--rust)}
 .wi[aria-current=true]{background:#ecebe41f}
 .wall-foot{flex-direction:column;gap:4px;font-size:10px}
 .counter-in,.done{padding:42px var(--pad) 56px}
 .counter h2{font-size:38px}
 .phrase{font-size:25px;line-height:1.55;margin-top:22px;letter-spacing:-.03em}

 .tray{height:250px}
 .sum-big strong{font-size:76px}
 .sum-lines div{font-size:14px}.sum-lines .due{font-size:16px}
 .done-list div{grid-template-columns:1fr;gap:2px}
 .done-set{gap:12px;min-height:90px;overflow:hidden}
 .done .stencil-big{font-size:40px;letter-spacing:-.04em}
 .tray-wrap{position:relative;top:auto}
 .issue-in{padding:50px var(--pad) 60px;gap:26px}
 .issue h2{font-size:36px}
 .hatch-frame{min-height:440px;padding:14px;border-width:12px}
 .chip{font-size:12px;padding:11px 12px 9px}
 .rule{width:calc(50% - 7px);font-size:14px;min-height:96px}
 .mapwrap{grid-template-columns:1fr;gap:16px}
 .map{height:auto;aspect-ratio:4/3}
 .finale{min-height:0}.finale-stage{height:390px}
 .finale h2{font-size:58px}
 .footer-brand{font-size:44px}.footer-link{margin-left:0}
 .tray-bar{padding:8px 12px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.stripe rect,.ghost-txt,.mag,.contact{transition:none}}
/* цели нажатия ≥44 px в шапке героя: только площадь нажатия, вид героя прежний */
.poster-brand{min-height:44px}
.poster-contact{padding:13px 0 14px}
.footer-bottom a{padding:13px 0}
