@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(/assets/barlow-latin-400-normal-fsAxiSwU.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-600-normal-DILqtrty.woff2)format("woff2"),url(/assets/barlow-latin-600-normal-CNwfPWQD.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/barlow-condensed-latin-800-normal-BKzMuPgK.woff2)format("woff2"),url(/assets/barlow-condensed-latin-800-normal-e9GbPXiK.woff)format("woff")}:root{--ground:#0b1a2b;--panel:#0b1a2be6;--card:#13263b;--line:#3a5370;--text:#f2f5f7;--muted:#b9c6d3;--accent:#ffc845;--accent-soft:#ffe08a;--good:#2e9e5b;--bad:#ff7a45;--display:"Barlow Condensed", "Arial Narrow", sans-serif;--body:"Barlow", system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--text);font-family:var(--body);overscroll-behavior:none;background:#050d17;margin:0}body{justify-content:center;display:flex}#app{background:var(--ground);touch-action:none;-webkit-user-select:none;user-select:none;width:100%;max-width:480px;height:100dvh;position:relative;overflow:hidden}#c{touch-action:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.45;cursor:default}[hidden]{display:none!important}#hud{pointer-events:none;position:absolute;inset:0}#hud button{pointer-events:auto}.top{padding:calc(env(safe-area-inset-top,0px) + 12px) 12px 0;align-items:center;gap:8px;display:flex;position:absolute;top:0;left:0;right:0}.pill{white-space:nowrap;background:var(--panel);border-radius:12px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;font-weight:600;display:flex}.pill b{color:var(--accent)}.score{font-family:var(--display);font-size:20px;font-weight:800}.sep{color:var(--muted);font-weight:600}.icon-btn{background:var(--panel);border:none;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;margin-left:auto;display:flex}.targets{left:12px;right:12px;top:calc(env(safe-area-inset-top,0px) + 66px);grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid;position:absolute}.chip{background:var(--panel);border:1.5px solid var(--line);border-radius:10px;min-width:0;padding:6px 8px}.chip .l{align-items:flex-start;gap:4px;font-size:12px;font-weight:600;line-height:1.25;display:flex}.chip .l .star{margin-top:1px}.chip .s{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.chip.done{border-color:var(--good)}.chip.done .s{color:#7fe0a6}.chip.missed{opacity:.6}.chip.missed .s{color:var(--bad)}.star{flex:none;width:12px;height:12px}.toast{text-align:center;font-family:var(--display);letter-spacing:.02em;color:var(--text);text-shadow:0 4px 18px #0000008c;opacity:0;font-size:64px;font-weight:800;transition:opacity .2s,transform .2s;position:absolute;top:34%;left:0;right:0;transform:scale(.9)}.toast.show{opacity:1;transform:scale(1)}.toast.tip{padding:0 24px;font-size:30px;line-height:1.1;top:44%}.demo{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.demo line{stroke:#ffffff8c;stroke-width:6px;stroke-linecap:round;stroke-dasharray:2 12}.demo circle{fill:#ffffffd9;stroke:#ffffff59;stroke-width:10px;transition:r .12s}.demo circle.down{r:12}.demo.static line{stroke:#fff;stroke-dasharray:none;marker-end:url(#demoArrow);opacity:.9}.demo.static circle{display:none}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}h1[tabindex="-1"]:focus{outline:none}@media (prefers-reduced-motion:reduce){.toast,.toast.show{transition:opacity .2s;transform:none}}.bottom{padding:0 12px calc(env(safe-area-inset-bottom,0px) + 16px);align-items:stretch;gap:10px;display:flex;position:absolute;bottom:0;left:0;right:0}.hint{background:var(--panel);color:#dce6ee;border-radius:14px;flex:1;align-items:center;min-height:52px;padding:10px 14px;font-size:14px;line-height:1.35;display:flex}.hint:empty{visibility:hidden}.hint b{color:var(--accent);font-weight:600}.rewind{border:2px solid var(--line);background:var(--panel);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:76px;font-size:13px;font-weight:600;display:flex}.overlay{padding:calc(env(safe-area-inset-top,0px) + 48px) 22px calc(env(safe-area-inset-bottom,0px) + 28px);background:var(--ground);flex-direction:column;gap:14px;display:flex;position:absolute;inset:0;overflow-y:auto}.overlay.dim{background:#0b1a2bd1;justify-content:center}.overlay h1{font-family:var(--display);margin:0;font-size:44px;font-weight:800;line-height:1}.overlay h1.big{text-align:center;font-size:72px;line-height:.95}.kicker{font-family:var(--display);letter-spacing:.18em;color:var(--accent);text-transform:uppercase;margin:0;font-size:14px;font-weight:600}#result .kicker{text-align:center}.lead{color:var(--muted);margin:0;font-size:16px;line-height:1.45}.how{color:var(--muted);margin:0;font-size:14px;line-height:1.45}.facts{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:10px;display:grid}.facts div{background:var(--card);border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.facts span{color:var(--muted);font-size:12px}.facts b{font-family:var(--display);font-size:24px;font-weight:800}.checklist{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.checklist li{background:var(--card);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-size:15px;display:flex}.checklist li .d{color:var(--muted);margin-left:auto;font-size:13px}.checklist .mark{width:24px;height:24px;color:var(--ground);background:#5a6b7d;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.checklist .mark.ok{background:var(--good)}.checklist .mark.star{background:0 0}.stars{justify-content:center;align-items:flex-end;gap:12px;display:flex}.actions{flex-direction:column;gap:10px;margin-top:auto;display:flex}.overlay.dim .actions{margin-top:12px}.primary{background:var(--accent);height:56px;color:var(--ground);font-family:var(--display);letter-spacing:.04em;border:none;border-radius:14px;font-size:22px;font-weight:800}#brief .primary{margin-top:auto}.secondary{border:2px solid var(--line);background:0 0;border-radius:14px;height:52px;font-size:15px;font-weight:600}.note{text-align:center;color:var(--muted);margin:-4px 0 0;font-size:13px}#fail h1,#menu h1,#fail .kicker{text-align:center}.hint b.risk{color:var(--bad)}.install{justify-content:center;align-items:center;gap:8px;display:flex}.back{border:2px solid var(--line);background:0 0;border-radius:12px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.sheet{z-index:5;background:#050d17b3;align-items:flex-end;display:flex;position:absolute;inset:0}.sheet-card{background:var(--card);width:100%;padding:24px 22px calc(env(safe-area-inset-bottom,0px) + 24px);border-radius:20px 20px 0 0;flex-direction:column;gap:16px;display:flex}.sheet-card h2{font-family:var(--display);margin:0;font-size:28px;font-weight:800}.steps{counter-reset:s;flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.steps li{align-items:center;gap:12px;font-size:16px;line-height:1.35;display:flex}.steps b{color:var(--accent);font-weight:600}.step-icon{background:var(--ground);color:#4fd1ff;border-radius:12px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.kit-head{align-items:center;gap:12px;display:flex}.kit-head h1{font-size:36px!important}.kit-preview{flex:none;align-self:center;width:120px;height:150px}.kit-group{flex-direction:column;gap:8px;display:flex}.swatches{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:8px;display:grid}.swatch{border:2px solid #ffffff40;border-radius:50%;justify-self:center;width:44px;height:44px;padding:0}.swatch[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:2px}#kit .primary{flex:none;margin-top:auto}.versus{flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;display:flex}.versus .vs{color:var(--muted)}.versus .dot{border:2px solid #fff6;border-radius:50%;flex:none;width:16px;height:16px}.update-bar{left:12px;right:12px;top:calc(env(safe-area-inset-top,0px) + 120px);z-index:6;background:var(--accent);min-height:48px;color:var(--ground);border:none;border-radius:14px;font-size:15px;font-weight:600;position:absolute}.note.version{margin-top:-6px;font-size:12px}.link{min-height:44px;color:var(--muted);text-underline-offset:3px;background:0 0;border:none;padding:8px;text-decoration:underline}.feedback{background:var(--card);border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.fb-q{margin:0;font-weight:600}.fb-row{gap:8px;display:flex}.fb-row>*{flex:1}.toggle{border:2px solid var(--line);background:0 0;border-radius:12px;min-height:44px;font-weight:600}.toggle[aria-pressed=true]{border-color:var(--accent);background:#ffc84526}.fb-label{color:var(--muted);font-size:13px}.feedback textarea{border:2px solid var(--line);background:var(--ground);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:10px;padding:8px;font-size:16px}.note.small{margin:0;font-size:12px}.replay-bar{left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);z-index:6;background:var(--panel);border-radius:14px;align-items:center;gap:8px;padding:10px 12px;display:flex;position:absolute}.replay-bar span{flex:1;font-size:14px}.replay-bar .small{flex:none;height:44px;padding:0 14px;font-size:15px}.file-btn{justify-content:center;align-items:center;display:flex;position:relative}.file-btn input{opacity:0;position:absolute;inset:0}#replayList button{text-align:left;background:0 0;border:none;flex-direction:column;gap:2px;width:100%;min-height:44px;display:flex}#replayList small{color:var(--muted)}.pair{gap:8px;display:flex}.pair>*{flex:1;min-width:0}.start .pair .secondary{height:48px;padding:0 8px;font-size:14px;line-height:1.15}.result-score{justify-content:center;align-items:baseline;gap:10px;margin:0;display:flex}.result-score span{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:14px;font-weight:600}.result-score b{font-family:var(--display);font-size:48px;font-weight:800;line-height:1}.advice{text-align:center;color:#dce6ee;margin:0;font-size:16px;line-height:1.45}.advice:empty{display:none}.feedback-wrap{flex-direction:column;gap:8px;display:flex}.feedback-wrap>.link{align-self:center;font-size:15px}.overlay.dim .feedback-wrap{margin-top:-6px}.rotate{z-index:20;background:var(--ground);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:none;position:fixed;inset:0}.rotate svg{color:var(--accent)}.rotate-title{font-family:var(--display);margin:0;font-size:32px;font-weight:800}@media (orientation:landscape) and (max-height:500px){.rotate{display:flex}}.pair>.secondary{height:auto;min-height:52px}.pair>.primary{white-space:nowrap;font-size:min(22px,5.6vw)}.start{padding-top:calc(env(safe-area-inset-top,0px) + 18px);gap:12px;padding-bottom:0;overflow:hidden}.start-head{flex:none;align-items:center;gap:12px;display:flex}.start .title{flex-direction:column;gap:2px;min-width:0;display:flex}.logo{letter-spacing:-.01em;font-size:46px!important;line-height:.9!important}.gear{background:var(--card);color:var(--muted);flex:none}.start .actions{padding:4px 22px calc(env(safe-area-inset-bottom,0px) + 16px);background:var(--ground);flex:none;gap:8px;margin:0 -22px}.season-tabs{scrollbar-width:none;flex:none;gap:6px;margin:0 -22px;padding:0 22px;display:flex;overflow-x:auto}.season-tabs::-webkit-scrollbar{display:none}.season-tabs button{border:2px solid var(--line);min-width:84px;height:40px;color:var(--muted);font-family:var(--display);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;background:0 0;border-radius:12px;flex:1 0 0;justify-content:center;align-items:center;gap:5px;padding:0 6px;font-size:16px;font-weight:600;display:flex}.season-tabs button[aria-selected=true]{border-color:var(--accent);background:var(--accent);color:var(--ground)}.season-tabs button.complete:not([aria-selected=true]) svg{color:var(--accent)}.season-tabs button.locked:not([aria-selected=true]){border-style:dashed}.season-tabs svg{flex:none}.season-card{background:var(--card);border-radius:14px;flex-direction:column;flex:none;gap:6px;padding:12px 14px;display:flex}.sc-row{align-items:baseline;gap:10px;display:flex}.sc-row h2{min-width:0;font-family:var(--display);text-transform:uppercase;flex:1;margin:0;font-size:28px;font-weight:800;line-height:1}.sc-stars{font-family:var(--display);color:var(--muted);align-self:center;align-items:center;gap:5px;font-size:18px;font-weight:600;display:flex}.sc-stars b{color:var(--accent);font-size:22px;font-weight:800}.sc-sub{color:var(--muted);margin:0;font-size:14px}.sc-progress{align-items:center;gap:10px;margin-top:2px;display:flex}.sc-bar{background:#24394f;border-radius:4px;flex:1;height:8px;overflow:hidden}.sc-bar span{background:linear-gradient(90deg, var(--good), #49c77a);border-radius:4px;height:100%;display:block}.sc-won{color:var(--text);white-space:nowrap;font-size:13px;font-weight:600}.sc-lock{color:var(--accent-soft);align-items:center;gap:8px;margin:2px 0 0;font-size:14px;font-weight:600;display:flex}.season-map{touch-action:pan-y;overscroll-behavior:contain;scrollbar-width:none;flex:1;min-height:0;margin:0 -22px;padding:0 22px;overflow:hidden auto;-webkit-mask-image:linear-gradient(#0000,#000 16px calc(100% - 20px),#0000);mask-image:linear-gradient(#0000,#000 16px calc(100% - 20px),#0000)}.season-map::-webkit-scrollbar{display:none}.map-track{position:relative}.map-path{position:absolute;top:0;left:0;overflow:visible}.map-path path{fill:none;stroke-linecap:round}.map-path .todo{stroke:var(--line);stroke-width:5px;stroke-dasharray:1 11}.map-path .done{stroke:var(--good);stroke-width:6px}.node{text-align:left;background:0 0;border:none;align-items:center;gap:10px;max-width:calc(100% - 10px);padding:0;display:flex;position:absolute}.node.side-r{text-align:right;flex-direction:row-reverse}.node:disabled{opacity:1}.node .dot{width:52px;height:52px;font-family:var(--display);background:var(--card);border:3px solid var(--line);box-shadow:0 0 0 5px var(--ground);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:24px;font-weight:800;display:flex}.node .lbl{background:#0b1a2bd9;border-radius:10px;flex-direction:column;gap:2px;min-width:0;padding:5px 10px;display:flex}.node.side-r .lbl{align-items:flex-end}.node .lbl b{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:15px;font-weight:600;line-height:1.2;overflow:hidden}.node .sub{color:var(--muted);font-size:12px}.node .got{gap:2px;display:flex}.node.won .dot{background:var(--good);border-color:#49c77a}.node.open .dot{border-color:var(--accent)}.node.next .dot{background:var(--accent);border-color:var(--accent-soft);color:var(--ground);animation:1.8s ease-out infinite pulse}.node.next .sub{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.node.locked .dot{color:#6f849a;background:#1a2e44;border-color:#2a3f57}.node.locked .lbl b{color:#8095aa}.node.locked .sub{color:#6f849a}@keyframes pulse{0%{box-shadow:0 0 0 5px var(--ground), 0 0 0 5px #ffc8458c}to{box-shadow:0 0 0 5px var(--ground), 0 0 0 18px #ffc84500}}.goal{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;left:0;right:0}.goal .cup{background:radial-gradient(circle at 50% 40%, #1f3650, var(--card));border:3px dashed var(--line);color:#5b7390;width:76px;height:76px;box-shadow:0 0 0 5px var(--ground);border-radius:50%;justify-content:center;align-items:center;margin-top:10px;display:flex}.goal b{font-family:var(--display);letter-spacing:.03em;text-transform:uppercase;color:var(--text);font-size:20px;font-weight:800;line-height:24px}.goal .sub{color:var(--muted);font-size:12px;line-height:16px}.goal.won .cup{border:3px solid var(--accent-soft);color:var(--accent);--trophy-star:#fff3c4;background:radial-gradient(circle at 50% 40%, #3b3417, var(--card));box-shadow:0 0 0 5px var(--ground), 0 0 28px #ffc84559}.goal.won b{color:var(--accent)}.map-track.locked .node .dot,.map-track.locked .goal .cup{border-style:dashed}.map-track.slide-next{animation:.28s ease-out slide-next}.map-track.slide-prev{animation:.28s ease-out slide-prev}@keyframes slide-next{0%{opacity:0;transform:translate(36px)}}@keyframes slide-prev{0%{opacity:0;transform:translate(-36px)}}@media (max-height:640px){.start{padding-top:calc(env(safe-area-inset-top,0px) + 12px);gap:10px}.start .kicker{display:none}.logo{font-size:38px!important}.sc-sub{display:none}.season-card{padding:10px 12px}.sc-row h2{font-size:24px}.season-tabs button{letter-spacing:.03em;font-size:15px}}.set-group{flex-direction:column;gap:8px;display:flex}.set-card{background:var(--card);border-radius:14px;flex-direction:column;gap:12px;padding:14px;display:flex}.set-line{flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:15px;display:flex}.set-line b{color:var(--accent)}.set-card .note.small{text-align:left}.set-card .version{text-align:left;align-self:flex-start;min-height:36px;margin:0;padding:4px 0}.secondary.danger{color:#ffb08f;border-color:#ff7a4599}.primary.danger{background:var(--bad);color:var(--ground)}.sheet-card .lead{color:#dce6ee}.sheet-card .secondary{flex:none}.season-done{text-align:center;background:radial-gradient(circle at 50% 32%, #2a2a1a 0, var(--ground) 62%);justify-content:center;align-items:center;gap:12px;overflow-x:hidden}.season-done .actions{width:100%;margin-top:18px}.season-done .lead{max-width:30ch}.sd-trophy{color:var(--accent);--trophy-star:#fff3c4;filter:drop-shadow(0 8px 30px #ffc84573);position:relative}.sd-trophy:before{content:"";z-index:-1;background:repeating-conic-gradient(#ffc84521 0 10deg, transparent 10deg 30deg);border-radius:50%;animation:14s linear infinite rays;position:absolute;inset:-60px;-webkit-mask-image:radial-gradient(circle,#000 30%,#0000 70%);mask-image:radial-gradient(circle,#000 30%,#0000 70%)}.sd-trophy svg{animation:.7s cubic-bezier(.2,1.4,.4,1) both trophy-in;display:block}.season-done h1.big{font-size:60px}.sd-stars{background:var(--card);border-radius:14px;align-items:center;gap:8px;padding:10px 18px;display:flex}.sd-stars b{font-family:var(--display);color:var(--accent);font-size:32px;font-weight:800;line-height:1}.sd-stars span:last-child{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:14px;font-weight:600}.sd-stars #sdStarIcon{display:flex}.season-done .note{max-width:32ch;margin:0}@keyframes trophy-in{0%{opacity:0;transform:scale(.3)rotate(-12deg)}}@keyframes rays{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.node.next .dot,.sd-trophy:before,.sd-trophy svg,.map-track.slide-next,.map-track.slide-prev{animation:none}}
