:root{--paper:#e9e3cd;--paper-2:#dcd5bb;--ink:#22241e;--ink-soft:#5d5e50;--stamp:#b3261e;--lcd-bg:#18221a;--lcd:#a6e86f;--green:#2f6b3e;--cyan:#2aa9d8;--font-ui:"PT Sans Narrow", "Arial Narrow", Arial, sans-serif;--font-mono:"PT Mono", "Courier New", monospace}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:#1c1f19;height:100%;margin:0;overflow:hidden}body{font-family:var(--font-ui);color:var(--ink);-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent}.hidden,[hidden]{display:none!important}#app{position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}#scene{width:100%;height:100%;image-rendering:pixelated;display:block;position:absolute;top:0;bottom:0;left:0;right:0}#crt{pointer-events:none;background:repeating-linear-gradient(#0000000f 0 1px,#0000 1px 3px),radial-gradient(#0000 58%,#0a0c0880 100%);position:absolute;top:0;bottom:0;left:0;right:0}#flash,#fade,#bonus-frame{pointer-events:none;opacity:0;position:absolute;top:0;bottom:0;left:0;right:0}#flash.hit{background:#c0392b;animation:.35s ease-out flash-hit}#flash.bonus{background:#49d3ff;animation:.7s ease-out flash-bonus}@keyframes flash-hit{0%{opacity:.5}to{opacity:0}}@keyframes flash-bonus{0%{opacity:.45}to{opacity:0}}#fade{background:#fff1d6}#bonus-frame{transition:opacity .3s;box-shadow:inset 0 0 0 4px #2aa9d8e6,inset 0 0 50px #49d3ff59}body.bonus-on #bonus-frame{opacity:1}#hud{pointer-events:none;padding:max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 12px max(12px, env(safe-area-inset-left));position:absolute;top:0;bottom:0;left:0;right:0}.hud-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.panel{background:#e9e3cded;border:1px solid #34362d;padding:7px 9px 8px;box-shadow:3px 3px #00000059}.label{font:700 10px/1.1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.clock{background:var(--lcd-bg);color:var(--lcd);font:700 36px/1 var(--font-mono);letter-spacing:.04em;text-shadow:0 0 6px #a6e86f73;font-variant-numeric:tabular-nums;margin-top:5px;padding:4px 10px 3px}.clock.bump{animation:.5s clock-bump}@keyframes clock-bump{0%{color:#ff6a5a;transform:scale(1.08)}to{color:var(--lcd);transform:scale(1)}}.overtime{font:700 13px var(--font-mono);margin-top:6px}.overtime b{color:var(--stamp)}.right-col{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.dist-panel,.bonus-panel{width:168px}.dist{font:700 26px/1 var(--font-mono);text-align:right;font-variant-numeric:tabular-nums;margin-top:4px}.bar{background:#bdb69c;border:1px solid #34362d;height:7px;margin-top:6px}.bar i{background:var(--green);width:0;height:100%;display:block}.bar.cyan i{background:var(--cyan)}.bonus-panel{opacity:.62}.bonus-panel.on{opacity:1;background:#ddf3fbf5;border-color:#146d92}.bonus-state{font:700 14px var(--font-mono);margin-top:4px}.bonus-panel.on .bonus-state:before{content:"ПРОЦЕССЫ УПОРЯДОЧЕНЫ · ";color:#146d92;font-size:10px;display:block}.hud-buttons{pointer-events:auto;gap:6px;display:flex}#toasts{top:max(12px, env(safe-area-inset-top));pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:min(420px,100vw - 420px);display:flex;position:absolute;left:50%;transform:translate(-50%)}.toast{border:1px solid #34362d;border-left:5px solid var(--ink);max-width:100%;font:700 13px/1.3 var(--font-mono);text-align:left;background:#e9e3cdf2;padding:7px 11px;animation:.22s ease-out toast-in,.4s ease-in 2.45s forwards toast-out;box-shadow:3px 3px #0000004d}.toast.hit{border-left-color:var(--stamp)}.toast.bonus{border-left-color:var(--cyan);background:#ddf3fbf7}.toast.urgent{background:#f3d9a4;border-left-color:#c27a12}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(-6px)}}#popups{pointer-events:none;position:absolute;top:46%;left:50%}.popup{border:3px solid var(--stamp);color:var(--stamp);font:700 26px/1 var(--font-mono);white-space:nowrap;background:#f0e8d6e6;padding:3px 10px;animation:1.05s ease-out forwards popup;position:absolute;top:0;left:0;transform:translate(-50%)rotate(-6deg)}@keyframes popup{0%{opacity:0;transform:translate(-50%,10px)rotate(-6deg)scale(1.6)}15%{opacity:1;transform:translate(-50%)rotate(-6deg)scale(1)}to{opacity:0;transform:translate(-50%,-70px)rotate(-6deg)scale(1)}}#touch-controls{left:0;right:0;bottom:max(14px, env(safe-area-inset-bottom));pointer-events:none;justify-content:space-between;padding:0 14px;display:none;position:absolute}body.in-run #touch-controls{display:flex}@media (hover:hover) and (pointer:fine){body.in-run #touch-controls,.keys-touch{display:none}}@media (hover:none),(pointer:coarse){.keys-desktop{display:none!important}}.btn.touch{pointer-events:auto;opacity:.85;touch-action:none;width:72px;height:72px;font-size:26px}.btn{font:700 15px/1.1 var(--font-mono);text-transform:uppercase;letter-spacing:.02em;color:var(--ink);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);cursor:pointer;background:#d6ceb2;padding:12px 18px}.btn:hover{background:#e2dbc2}.btn:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.btn:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.btn.primary{background:var(--green);color:#f1eedf}.btn.primary:hover{background:#367a47}.btn.small{padding:7px 10px;font-size:12px}.btn.tiny{box-shadow:2px 2px 0 var(--ink);padding:5px 8px;font-size:11px}.screen{background:#16181359;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}#screen-final{background:0 0}.doc{background:var(--paper) repeating-linear-gradient(to bottom, transparent 0 27px, #505a7814 27px 28px);-webkit-user-select:text;user-select:text;border:1px solid #2b2c25;width:min(560px,100%);max-height:100%;padding:20px 26px 22px;position:relative;overflow:auto;box-shadow:7px 7px #00000073}.doc.narrow{width:min(440px,100%)}.doc-head{border-bottom:1px solid var(--ink);font:12px var(--font-mono);color:var(--ink-soft);text-transform:uppercase;justify-content:space-between;padding-bottom:6px;display:flex}.kicker{font:700 12px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--stamp);margin-top:14px}h1{font:700 clamp(48px, 11vw, 76px) / .92 var(--font-ui);text-transform:uppercase;letter-spacing:-.01em;margin:6px 0 12px}h2{font:700 26px/1.1 var(--font-ui);text-transform:uppercase;margin:16px 0 6px}.lead{margin:0 0 12px;font-size:18px;line-height:1.35}.rules{font:14px/1.6 var(--font-mono);background:#ffffff59;border:1px dashed #8d8a74;margin:0 0 18px;padding:10px 12px 10px 30px}kbd{border:1px solid var(--ink);min-width:22px;font:700 12px/1.5 var(--font-mono);text-align:center;background:#f6f2e4;border-bottom-width:3px;margin-right:3px;padding:0 5px;display:inline-block}.menu-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;display:flex}.hint{font:12px var(--font-mono);color:var(--ink-soft)}.btn-col{flex-direction:column;gap:12px;margin-top:6px;display:flex}.disclaimer{font:11px/1.4 var(--font-mono);color:var(--ink-soft);margin:16px 0 0}.final-time{font:700 clamp(64px, 18vw, 104px) / 1 var(--font-mono);text-align:center;font-variant-numeric:tabular-nums;margin-top:6px}.final-caption{text-align:center;font:12px var(--font-mono);color:var(--ink-soft);text-transform:uppercase}.stats{border-collapse:collapse;width:100%;font:14px var(--font-mono);margin:14px 0 10px}.stats td{border-bottom:1px dotted #8d8a74;padding:5px 0}.stats td:last-child{text-align:right;font-weight:700}.grade{text-align:center;margin:12px 0 18px}.grade-label{font:11px var(--font-mono);text-transform:uppercase;color:var(--ink-soft);display:block}.stamp{border:3px double var(--stamp);color:var(--stamp);font:700 21px/1.15 var(--font-mono);text-transform:uppercase;margin-top:8px;padding:6px 14px;animation:.45s cubic-bezier(.2,1.6,.4,1) .25s both stamp;display:inline-block;transform:rotate(-3deg)}@keyframes stamp{0%{opacity:0;transform:rotate(-3deg)scale(2.2)}to{opacity:1;transform:rotate(-3deg)scale(1)}}.grade-note{font:15px var(--font-mono);margin-top:8px}#screen-final .btn.primary{width:100%}.author{font:700 12px var(--font-mono);color:var(--green);margin-top:8px;display:inline-block}@media (max-width:760px){#toasts{width:calc(100vw - 24px);top:auto;bottom:104px}}@media (max-width:520px){.clock{font-size:28px}.dist-panel,.bonus-panel{width:132px}.dist{font-size:21px}.doc{padding:16px 16px 18px}.lead{font-size:16px}.rules{font-size:12.5px}}#labels{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}body.cinema-on #labels{display:none}.olabel{--c:#efe6c8;letter-spacing:.05em;white-space:nowrap;color:var(--c);opacity:0;will-change:transform, opacity;padding-bottom:9px;font-family:Pixelify Sans,PT Mono,monospace;font-weight:700;line-height:1;transition:opacity .18s steps(3,end);position:absolute;top:0;left:0}.olabel.on{opacity:1}.olabel-text{text-shadow:1px 0 #121310,-1px 0 #121310,0 1px #121310,0 -1px #121310,1px 1px #121310,-1px -1px #121310,1px -1px #121310,-1px 1px #121310,2px 2px #0000008c;display:block}.olabel:after{content:"";border:4px solid #0000;border-top:5px solid var(--c);filter:drop-shadow(1px 0 #121310)drop-shadow(-1px 0 #121310)drop-shadow(0 1px #121310);border-bottom:0;width:0;height:0;margin-left:-4px;position:absolute;bottom:1px;left:50%}.olabel.tone-danger{--c:#ffe0a6}.olabel.tone-request{--c:#f6c98a}.olabel.tone-doc{--c:#efe6c8}.olabel.tone-ok{--c:#bdf0b0}.olabel.warn{--c:#ff9a88}.olabel.warn .olabel-text:before{content:"! ";color:#ff5a46}.stage-line{font:700 10px var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);max-width:230px;margin-top:4px}.dist-panel.renegotiated{animation:1.6s ease-out renegotiated}@keyframes renegotiated{0%,30%{border-color:var(--stamp);background:#f3d9a4;transform:scale(1.06)}to{transform:none}}.banner{text-align:center;pointer-events:none;border:3px solid var(--ink);background:#e9e3cdf0;width:min(620px,100vw - 32px);padding:10px 16px 12px;position:absolute;top:20%;left:50%;transform:translate(-50%);box-shadow:5px 5px #0006}.banner.show{animation:banner-in .35s cubic-bezier(.2, 1.5, .4, 1), banner-out .4s ease-in var(--out,1.9s) forwards}.banner .b-title{font:700 clamp(20px, 4.4vw, 34px) / 1.05 var(--font-ui);letter-spacing:.02em;text-transform:uppercase;text-wrap:balance}.banner .b-sub{font:14px/1.3 var(--font-mono);margin-top:4px}.banner.bonus{color:#0d4b66;background:#ddf3fbf7;border-color:#146d92}.banner.boss{border-color:var(--stamp);color:var(--stamp);background:#f3d9a4;transform:translate(-50%)rotate(-1.5deg)}.banner.stage .b-title{font-size:clamp(18px,3.6vw,28px)}@keyframes banner-in{0%{opacity:0;scale:1.25}to{opacity:1;scale:1}}@keyframes banner-out{to{opacity:0;translate:0 -10px}}.hit-banner{text-align:center;pointer-events:none;width:min(520px,100vw - 32px);position:absolute;top:13%;left:50%;transform:translate(-50%)}.hit-banner.show{animation:.25s cubic-bezier(.2,1.6,.4,1) hit-in,.35s ease-in 1.3s forwards banner-out}.hit-banner .h-main{border:4px solid var(--stamp);color:var(--stamp);font:700 clamp(30px, 7vw, 52px) / 1.05 var(--font-mono);background:#f0e8d6f2;padding:2px 14px;display:inline-block;transform:rotate(-3deg);box-shadow:4px 4px #00000059}.hit-banner .h-sub{color:#f1eedf;font:700 15px/1.3 var(--font-mono);background:#141510d1;margin:8px auto 0;padding:4px 10px;display:table}@keyframes hit-in{0%{opacity:0;scale:1.6}to{opacity:1;scale:1}}#cinema{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.cbar{background:#0c0d0a;height:11vh;animation:.6s ease-out both cbar-in;position:absolute;left:0;right:0}.cbar.top{top:0}.cbar.bottom{--from:100%;bottom:0}@keyframes cbar-in{0%{transform:translateY(calc(var(--from,-100%)))}to{transform:none}}.cut-caption{left:max(18px, env(safe-area-inset-left));font:700 13px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#f1eedf;text-shadow:2px 2px #000;position:absolute;top:calc(11vh + 14px)}.subtitle{text-align:center;pointer-events:none;z-index:5;width:min(880px,100vw - 32px);position:absolute;bottom:19vh;left:50%;transform:translate(-50%)}.subtitle .line{font:700 clamp(20px, 3.3vw, 32px) / 1.42 var(--font-ui);letter-spacing:.01em;color:#fbf6e2;-webkit-box-decoration-break:clone;box-decoration-break:clone;text-shadow:1px 0 #0c0d0a,-1px 0 #0c0d0a,0 1px #0c0d0a,0 -1px #0c0d0a;background:#0a0b0894;padding:.12em .45em;display:inline}.subtitle.show{animation:.2s ease-out subtitle-in}@keyframes subtitle-in{0%{opacity:0;translate:0 6px}to{opacity:1;translate:0}}.subtitle .speaker{font:700 clamp(11px, 1.4vw, 13px) / 1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:#f2c230;text-shadow:1px 1px #000;margin-bottom:4px;display:block}.subtitle .speaker:empty{display:none}@media (max-width:600px){.subtitle{bottom:17vh}.subtitle .line{font-size:clamp(18px,5vw,22px)}}.intro-stamp{color:#c0281c;font:700 clamp(22px, 4vw, 40px) / 1.05 var(--font-mono);text-transform:uppercase;text-align:center;background:#f4eeded1;border:5px double #c0281c;padding:8px 16px;animation:.32s cubic-bezier(.2,1.7,.4,1) both intro-stamp;position:absolute;top:24%;right:12%;transform:rotate(-9deg)}@keyframes intro-stamp{0%{opacity:0;transform:rotate(-9deg)scale(2.4)}to{opacity:1;transform:rotate(-9deg)scale(1)}}.intro-sign{color:#ece6cf;font-family:"Pixelify Sans", var(--font-mono);white-space:nowrap;background:#1d3a29;border:4px solid #e9e3cd;outline:3px solid #1d3a29;align-items:baseline;gap:.5em;padding:10px 22px 8px;animation:.5s steps(5,end) both intro-sign;display:flex;position:absolute;top:30%;left:50%;transform:translate(-50%);box-shadow:6px 6px #00000073}.intro-sign .is-label{letter-spacing:.06em;text-transform:uppercase;font-size:clamp(16px,2.6vw,26px)}.intro-sign .is-value{color:#a6e86f;text-shadow:0 0 8px #a6e86f73;font-size:clamp(34px,6.5vw,64px);font-weight:700}@keyframes intro-sign{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}#cinema.out .cbar.top{transition:transform .9s ease-in;transform:translateY(-100%)}#cinema.out .cbar.bottom{transition:transform .9s ease-in;transform:translateY(100%)}#cinema.out .cut-caption{opacity:0;transition:opacity .4s}#hud:not(.hidden){animation:.6s ease-out hud-in}@keyframes hud-in{0%{opacity:0}to{opacity:1}}.banner.dept{border:2px solid var(--ink);outline:4px double var(--stamp);outline-offset:-10px;color:var(--stamp);background:#efe9d6;transform:translate(-50%)rotate(1.2deg)}.banner.dept .b-sub{color:var(--ink)}.skip{right:max(16px, env(safe-area-inset-right));pointer-events:auto;background:#e9e3cd;position:absolute;top:calc(11vh + 12px)}body.cinema-on #touch-controls,body.cinema-on #toasts{display:none}.final-actions{grid-template-columns:1fr;gap:12px;display:grid}#screen-final .final-actions .btn{width:100%}.copy-status{min-height:1.2em;font:12px var(--font-mono);color:var(--green);margin:8px 0 0}.copy-fallback{width:100%;min-height:150px;font:13px/1.4 var(--font-mono);color:var(--ink);border:1px solid var(--ink);resize:vertical;-webkit-user-select:text;user-select:text;background:#f6f2e4;margin-top:6px;padding:8px}@media (max-width:760px){.banner{top:24%}.hit-banner{top:16%}}@media (prefers-reduced-motion:reduce){.banner.show,.hit-banner.show,.olabel.warn,.stamp{animation-duration:10ms}}.disclaimer.credit{text-transform:uppercase;border-top:1px dotted #8d8a74;flex-direction:column;align-items:flex-start;gap:3px;padding-top:8px;display:flex}.credit-line{font:10px/1.3 var(--font-mono);letter-spacing:.08em;color:var(--ink-soft)}.credit-name{font:700 14px/1.3 var(--font-mono);letter-spacing:.06em;color:var(--ink);text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.credit-name:hover{color:var(--stamp)}.credit-name:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
