:root{color-scheme:dark;--bg:#07151e;--panel:#0d2029;--ink:#f1f5ee;--muted:#93acb5;--lime:#d9f36a;--cyan:#69d5c0;--line:#29404a;--danger:#ffac87;font-family:Segoe UI,Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink)}body{background:radial-gradient(ellipse at 50% -40%,#173a44 0,transparent 65%),var(--bg)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--lime);outline-offset:4px}button,a{touch-action:manipulation}[hidden]{display:none!important}p,h1,h2,h3{margin:0}a{color:inherit}svg{width:22px;height:22px;display:block}button svg{pointer-events:none}.app-shell{max-width:1328px;margin:auto;padding:0 48px}.site-header{height:96px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;gap:12px;align-items:center;font-weight:800;font-size:20px;letter-spacing:.07em;line-height:1.1}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--lime);border-radius:9px;color:var(--lime);font-size:25px;font-family:Arial Black,Arial,sans-serif;box-shadow:inset 0 0 0 4px var(--bg),inset 0 0 0 5px #365141}.brand-sub{display:block;font:10px/1.6 ui-monospace,Consolas,monospace;letter-spacing:.32em;color:var(--muted);margin-top:4px}.header-title{font:700 13px/1.3 ui-monospace,Consolas,monospace;letter-spacing:.13em;color:#b7c8ca}.edition{font:12px/1.5 ui-monospace,Consolas,monospace;letter-spacing:.08em;color:#7f989f}.game-area{position:relative;height:clamp(560px,72vh,770px);min-height:560px;border:1px solid #36505a;border-radius:22px;overflow:hidden;isolation:isolate;background:#0a1a24;box-shadow:0 22px 80px #0005;touch-action:manipulation}.game-area canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-5px}.game-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#06151ecc,transparent 28%,transparent 75%,#06151eaa);z-index:1}.hud{position:absolute;left:28px;right:28px;top:22px;z-index:5;display:flex;gap:40px;align-items:center;pointer-events:none}.micro-label{font:11px/1.5 ui-monospace,Consolas,monospace;color:#a6bcc0;letter-spacing:.13em;display:block}.score-block{width:135px;flex-shrink:0}.score-block strong{font:800 34px/1.2 ui-monospace,Consolas,monospace;letter-spacing:-.05em}.score-goal{font:17px/1.4 ui-monospace,Consolas,monospace;color:#6f8c94}.route-progress{width:340px;max-width:45%;margin:auto}.progress-caption{display:flex;justify-content:space-between;gap:16px;margin-bottom:10px;font:12px/1.3 ui-monospace,Consolas,monospace;color:#c1d4d4}.progress-caption #timer{color:var(--lime);font-variant-numeric:tabular-nums}.progress-track{height:4px;overflow:hidden;background:#49616a66;border-radius:4px}.progress-track>div{height:100%;width:0;background:var(--lime);box-shadow:0 0 12px #d9f36a88;transition:width .25s linear}.hud-buttons{display:flex;gap:8px;pointer-events:auto}.icon-button{display:grid;place-items:center;color:#e2ebe7;background:#0b202ddd;border:1px solid #39525b;width:42px;height:42px;border-radius:12px}.icon-button:hover:not(:disabled){border-color:var(--lime);color:var(--lime)}.icon-button[aria-pressed=true] .sound-off,.icon-button[aria-pressed=false] .sound-on{display:none}.overlay{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;padding:100px 26px 50px;background:#06121c45;backdrop-filter:blur(3px);overflow-y:auto;touch-action:pan-y}.start-card{display:grid;grid-template-columns:240px minmax(0,365px);gap:48px;align-items:center;max-width:710px;width:100%;padding:10px 0}.start-art{position:relative;text-align:center;padding-top:30px}.hero-character{width:100%;height:auto;display:block;filter:drop-shadow(0 18px 16px #0008);animation:float 3s ease-in-out infinite}.speech-bubble{position:absolute;top:8px;left:13px;z-index:1;background:var(--lime);color:#11200c;padding:10px 18px;border-radius:12px 12px 2px 12px;font-size:19px;font-weight:800;transform:rotate(-7deg);box-shadow:0 4px 0 #8f9c4277}.character-caption{display:block;margin:20px auto 0;font:700 13px/1.5 ui-monospace,Consolas,monospace;letter-spacing:.14em;color:#d9e3df}.character-caption>span{display:block;font-size:10px;letter-spacing:.1em;color:#8ba5ac;margin-top:4px}.eyebrow{font:700 12px/1.6 ui-monospace,Consolas,monospace;color:var(--cyan);letter-spacing:.17em;margin-bottom:13px}h1{font:900 clamp(42px,4.4vw,60px)/1.03 Arial Black,Segoe UI,Arial,sans-serif;letter-spacing:-.045em}h1 span,.win-copy h2 span{color:var(--lime)}.intro{font-size:16px;line-height:1.55;color:#b3c6ca;margin-top:17px;max-width:365px}.mission{display:flex;gap:23px;color:#a9bec1;font-size:14px;margin:24px 0}.mission span{white-space:nowrap}.mission b{font-size:19px;color:#f1f5ec;margin-right:3px}.primary-button{border:0;background:var(--lime);color:#16240b;width:100%;min-height:53px;padding:16px 20px;border-radius:11px;font-size:14px;font-weight:850;letter-spacing:.045em;display:flex;justify-content:center;align-items:center;gap:20px;box-shadow:0 4px 0 #6c7935;transition:background .15s,transform .15s}.primary-button:hover{background:#e7ff8e;transform:translateY(-1px)}.primary-button:active{transform:translateY(2px);box-shadow:0 2px 0 #6c7935}.primary-button span{font-size:21px;font-weight:500;line-height:.7}.start-hint{font-size:12px;line-height:1.6;color:#a2b6ba;margin-top:15px;text-align:center}kbd{font-family:inherit;font-size:.9em;color:#cfdbdc;display:inline-block;border:1px solid #38505a;border-bottom-width:2px;padding:1px 7px;border-radius:5px;background:#14293288}.below-game{display:flex;align-items:center;gap:25px;padding:19px 4px;font-size:13px;color:#b3c5c7;line-height:1.6}.below-game p span{color:#7f979e}.goal-note{margin-left:auto;color:#98b0b5}.site-footer{border-top:1px solid #263a43;display:flex;justify-content:space-between;gap:20px;color:#69848d;font-size:11px;line-height:1.6;padding:18px 0 24px}.footer-slash{margin:0 8px;color:#455f68}.bench-label{position:absolute;left:28px;right:28px;bottom:17px;display:flex;justify-content:space-between;pointer-events:none;z-index:2;font:10px/1.5 ui-monospace,Consolas,monospace;color:#9abab990;letter-spacing:.18em}.state-card{text-align:center;width:100%;max-width:355px;border:1px solid #3b525a;background:#0a1e29f5;border-radius:22px;padding:28px 30px;box-shadow:0 20px 60px #0005}.state-code{display:inline-block;font:700 12px/1.4 ui-monospace,Consolas,monospace;letter-spacing:.13em;color:var(--lime);margin-bottom:17px}.state-card h2{font:900 32px/1.12 Arial Black,Segoe UI,Arial,sans-serif;letter-spacing:-.035em;margin-bottom:15px}.state-card>p{font-size:14px;line-height:1.6;color:#a9c0c4}.state-card .primary-button{margin-top:24px}.text-button{display:block;margin:18px auto 0;background:none;border:0;color:#a8c0c5;font-size:14px;padding:4px}.text-button:hover{color:var(--lime)}.error-code{color:var(--danger)}.result-score{margin:15px 0 3px;font:16px/1.2 ui-monospace,Consolas,monospace;color:#8ba7ae}.result-score strong{font-size:48px;font-weight:800;letter-spacing:-.05em;color:#f1f5ec}.state-card .record-line{font-size:12px;color:#7fa1a7}.win-card{display:grid;grid-template-columns:1fr 265px;align-items:center;gap:40px;width:100%;max-width:715px;background:radial-gradient(ellipse at 100% 15%,#244c4366,transparent 65%),#0a1e29f5;border:1px solid #4f7169;border-radius:23px;padding:30px 35px;box-shadow:0 20px 100px #0006}.win-copy h2{font:900 54px/1.03 Arial Black,Segoe UI,Arial,sans-serif;letter-spacing:-.045em}.win-summary{font-size:16px;line-height:1.6;color:#adc2c5;margin:17px 0 24px}.win-stats{display:flex;gap:30px;margin-bottom:26px}.win-stats>span{font:10px/1.5 ui-monospace,Consolas,monospace;letter-spacing:.1em;color:#7e9aa2}.win-stats b{display:block;font-size:21px;color:#eaf2e8;letter-spacing:-.04em;margin-top:4px}.secondary-button{border:1px solid #4b666e;color:#e0ebe3;background:#19333a;min-height:44px;border-radius:9px;padding:11px 17px;font-size:14px}.secondary-button:hover{border-color:var(--lime);color:var(--lime)}.reward{text-align:center}.reward h3{font:900 31px/1.1 Arial Black,Arial,sans-serif;color:var(--lime);letter-spacing:-.025em}.reward-name{font-size:12px;line-height:1.4;color:#b7cbd0;margin:5px -4px 12px}.qr-link{display:block;isolation:isolate;background:#d4e6dc;border:1px solid #94b7a7;border-radius:14px;padding:12px;width:224px;max-width:100%;margin:0 auto;overflow:hidden;box-shadow:0 0 0 5px #72cdb412,0 12px 28px #03141866}.qr-link img{display:block;width:100%;height:auto;mix-blend-mode:multiply;filter:brightness(.76) contrast(2.15)}.telegram-link{display:inline-block;color:var(--cyan);font-size:12px;margin-top:12px;text-underline-offset:4px;line-height:1.5}.game-toast{position:absolute;bottom:58px;left:50%;transform:translateX(-50%);max-width:90%;padding:11px 17px;color:var(--lime);background:#0a1e29ed;border:1px solid #5e714766;border-radius:10px;font-size:14px;line-height:1.35;text-align:center;z-index:3;pointer-events:none;box-shadow:0 6px 18px #0004}.loading-box{display:flex;align-items:center;flex-direction:column;gap:18px;color:#b0c7cb;font-size:16px}.loading-box p{max-width:320px;text-align:center;line-height:1.6}.loader{width:30px;height:30px;border:2px solid #39535c;border-top-color:var(--lime);border-radius:50%;animation:spin .8s linear infinite}.noscript{padding:20px;background:#502d2d;border:1px solid #ba725b;border-radius:10px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(1deg)}}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1500px){.app-shell{max-width:1430px}.game-area{height:min(76vh,820px)}.site-header{height:104px}.start-card{gap:66px;grid-template-columns:280px 390px;max-width:736px}.start-copy h1{font-size:66px}}
@media(max-width:1000px){.app-shell{padding:0 25px}.site-header{height:82px}.edition{display:none}.hud{gap:20px;left:23px;right:23px}.start-card{grid-template-columns:190px minmax(0,340px);gap:28px;max-width:558px}.game-area{height:640px}.site-footer{font-size:10px}.header-title{font-size:11px}}
@media(max-width:640px){.app-shell{padding:0 12px}.site-header{height:70px;gap:10px}.brand{font-size:16px;gap:8px}.brand-mark{width:32px;height:32px;font-size:21px;border-radius:7px}.brand-sub{font-size:8px;margin-top:2px}.header-title{font-size:9px;max-width:155px;text-align:right;line-height:1.6;letter-spacing:.09em}.game-area{height:calc(100svh - 152px);min-height:570px;max-height:830px;border-radius:17px}.hud{top:16px;left:16px;right:16px;gap:12px;align-items:flex-start}.score-block{width:80px}.micro-label{font-size:8px;letter-spacing:.04em}.score-block strong{font-size:28px}.score-goal{font-size:13px}.route-progress{position:absolute;top:66px;left:0;right:0;width:100%;max-width:none}.progress-caption{font-size:10px;margin-bottom:6px}.hud-buttons{margin-left:auto;gap:6px}.icon-button{width:37px;height:37px;border-radius:10px}.icon-button svg{width:19px;height:19px}.overlay{padding:114px 20px 37px;align-items:center;backdrop-filter:blur(2px)}.start-card{grid-template-columns:1fr;gap:6px;max-width:320px;text-align:center;padding:0}.start-art{width:125px;margin:0 auto;padding-top:0;height:124px}.hero-character{width:125px;height:125px}.speech-bubble{font-size:12px;left:-46px;top:8px;padding:7px 10px;border-radius:8px 8px 2px 8px}.character-caption{display:none}.eyebrow{font-size:10px;margin-bottom:7px;letter-spacing:.13em}h1{font-size:37px;line-height:1.01}.intro{font-size:13px;line-height:1.5;margin:12px auto 0;max-width:285px}.mission{justify-content:center;gap:22px;margin:14px 0;font-size:12px}.mission b{font-size:17px}.primary-button{min-height:47px;padding:13px 10px;font-size:12px;border-radius:9px}.start-hint{font-size:11px;margin-top:11px}.below-game{padding:12px 1px;justify-content:center;font-size:11px;gap:5px}.below-game .desktop-pause,.goal-note{display:none}.site-footer{font-size:9px;text-align:center;justify-content:center;gap:4px;flex-direction:column;padding:12px 0 17px}.bench-label{left:15px;right:15px;font-size:8px;bottom:14px;letter-spacing:.08em}.state-card{padding:26px 24px}.state-card h2{font-size:29px}.game-toast{font-size:12px;bottom:43px;padding:9px 12px;width:max-content;max-width:92%}.win-card{display:flex;flex-direction:column;gap:15px;padding:18px 20px;border-radius:17px;max-width:340px;text-align:center}.win-copy .state-code{font-size:10px;margin-bottom:9px}.win-copy h2{font-size:32px}.win-copy h2 br{display:none}.win-copy h2 span:before{content:' '}.win-summary{font-size:12px;line-height:1.45;margin:8px 0 10px}.win-stats{justify-content:center;gap:27px;margin-bottom:10px}.win-stats b{font-size:17px;margin-top:1px}.win-stats>span{font-size:9px}.win-copy .secondary-button{font-size:12px;min-height:34px;padding:7px 13px}.reward h3{font-size:23px}.reward-name{font-size:10px;margin:3px -4px 8px}.qr-link{width:170px;padding:8px;border-radius:11px}.telegram-link{font-size:11px;margin-top:8px}#win-screen{padding-top:114px;padding-bottom:33px}.win-card{gap:12px}}
@media(max-width:380px){.app-shell{padding:0 8px}.overlay{padding-left:16px;padding-right:16px}.intro{font-size:12px}.start-art{height:110px;width:112px}.hero-character{width:112px;height:112px}.start-copy h1{font-size:34px}.mission{margin:11px 0}.hud{left:13px;right:13px}.header-title{font-size:8px}}
@media(max-height:690px) and (min-width:641px){.site-header{height:65px}.game-area{height:550px;min-height:550px}.start-card{padding-top:0}.win-card{padding:22px 28px}.qr-link{width:198px}.win-copy h2{font-size:46px}}
@media(prefers-reduced-motion:reduce){.hero-character{animation:none}.progress-track>div,.primary-button{transition:none}}
@media(max-width:640px){.game-area[data-state=won]{min-height:700px}.micro-label{font-size:10px}.progress-caption{font-size:12px}.intro{font-size:14px}.start-hint{font-size:12px}.brand-sub{font-size:10px}.site-footer{font-size:11px}.reward-name{font-size:12px}.telegram-link{font-size:12px}}
/* Password gate. The QR has no source or destination until decryption succeeds. */
.win-card{margin-block:auto;flex-shrink:0}
.reward-lock{width:224px;max-width:100%;margin:0 auto;padding:17px 15px 13px;border:1px solid #52766a;border-radius:14px;background:linear-gradient(145deg,#183a3d,#102831);box-shadow:inset 0 1px #a4dfbc14}
.reward-lock-icon{display:grid;place-items:center;width:38px;height:38px;margin:0 auto 8px;border-radius:11px;background:#91cfb318;color:#b1e5c8}.reward-lock-icon svg{width:29px;height:29px}
.reward-lock-title{font:800 13px/1.3 ui-monospace,Consolas,monospace;letter-spacing:.03em;color:#d9f36a}
.reward-lock-copy{font-size:12px;line-height:1.45;color:#abc9c6;margin:7px 0 13px}
.reward-lock label{display:block;text-align:left;font-size:12px;line-height:1.4;color:#c0d9d2;margin-bottom:6px}
.reward-password{display:block;width:100%;min-width:0;height:43px;padding:10px 11px;border:1px solid #50776e;border-radius:8px;background:#071d25;color:#f1f5ee;font:16px/1.2 ui-monospace,Consolas,monospace;letter-spacing:.05em;box-shadow:inset 0 2px 5px #0003}
.reward-password:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.reward-password[aria-invalid=true]{border-color:var(--danger)}.reward-password:disabled{opacity:.65}
.reward-submit{margin-top:11px;min-height:42px;padding:12px 8px;font-size:12px;border-radius:8px;box-shadow:0 3px 0 #6c7935}
.reward-submit:disabled{opacity:.7;transform:none}
.reward-feedback{min-height:30px;margin-top:12px;color:#8dafa8;font-size:11px;line-height:1.4}.reward-feedback.is-error{color:var(--danger)}
@media(max-width:640px){.reward-lock{width:224px;padding:13px 15px 10px}.reward-lock-icon{width:32px;height:32px;margin-bottom:6px}.reward-lock-icon svg{width:25px;height:25px}.reward-lock-copy{margin:6px 0 10px}.reward-submit{min-height:40px}.reward-feedback{margin-top:10px}}
