:root{--paper:#f3efe6;--surface:#fbf9f4;--ink:#17171a;--ink-2:#34343a;--muted:#5b5750;--muted-ink:#d6d1c6;--eyebrow-ink:#beb8ac;--rule:#ddd6c8;--flame:#e36b12;--danger:#b3261e;--display:"Bricolage Grotesque", "DM Sans", system-ui, sans-serif;--body:"DM Sans", system-ui, -apple-system, sans-serif;--mono:"DM Mono", ui-monospace, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0}body{-webkit-user-select:none;user-select:none}button{touch-action:manipulation;font:inherit;color:inherit}button:focus-visible{outline-offset:3px;outline:3px solid #2563c9}a:focus-visible{outline-offset:3px;outline:3px solid #2563c9}h1,h2,p{margin:0}.num{font-variant-numeric:tabular-nums}.icon{flex-shrink:0}.row{align-items:center;display:flex}.between{justify-content:space-between}.row.end{align-items:flex-end}.bar.end{justify-content:flex-end}.grow{flex-grow:1}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.stack-4,.stack-6,.stack-10,.stack-14,.stack-16{flex-direction:column;display:flex}.stack-4{gap:4px}.stack-6{gap:6px}.stack-10{gap:10px}.stack-14{gap:14px}.stack-16{gap:16px}.center{text-align:center}.muted{color:var(--muted);font-size:15px}.muted.small{font-size:12px}.muted-ink{color:var(--muted-ink);font-size:16px}.ink{color:var(--ink)}#app{min-height:100dvh}#app.enter .screen{animation:.26s cubic-bezier(.2,.7,.2,1) screen-in}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}}.screen{max-width:480px;min-height:100dvh;padding:max(20px, env(safe-area-inset-top)) 20px max(28px, env(safe-area-inset-bottom));flex-direction:column;gap:20px;margin:0 auto;display:flex}.bar{justify-content:space-between;align-items:center;min-height:48px;display:flex}.brand{align-items:center;gap:10px;display:flex}.wordmark{font-family:var(--display);letter-spacing:-.02em;font-size:24px;font-weight:800}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.eyebrow.on-ink{color:var(--eyebrow-ink)}.icon-btn{border:1.5px solid var(--rule);background:var(--surface);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;padding:0;transition:transform .12s,background .12s;display:inline-flex;position:relative}.icon-btn:active{transform:scale(.95)}.icon-btn.on-ink{border-color:var(--ink-2);color:#fff;background:0 0}.icon-btn-lg{border-radius:20px;width:64px;height:64px}.icon-spacer{width:48px}.btn{cursor:pointer;border:1.5px solid #0000;border-radius:16px;justify-content:center;align-items:center;gap:8px;height:52px;padding:0 20px;font-size:16px;font-weight:700;transition:transform .12s,background .12s,color .12s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-lg{border-radius:20px;height:64px;padding:0 26px;font-size:18px}.btn-block{width:100%}.btn-light{color:var(--ink);background:#fff}@media (hover:hover){.btn-light:hover{background:#f0ece3}}.btn-outline{border-color:var(--ink);color:var(--ink);background:0 0}@media (hover:hover){.btn-outline:hover{background:var(--ink);color:#fff}}.btn-danger{border-color:var(--rule);color:var(--danger);background:0 0}.btn-ghost-outline{border-color:var(--rule);background:0 0;border-radius:14px;align-self:flex-start;height:48px;padding:0 16px;font-size:15px;font-weight:600}.link-btn{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:none;align-self:center;padding:0 16px;font-size:15px;font-weight:600}.link-btn.on-ink{color:var(--eyebrow-ink)}.badge{color:#fff;background:#d93a30;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:12px;font-weight:700;display:flex;position:absolute}.badge[hidden]{display:none}.card{background:var(--surface);border:1.5px solid var(--rule);border-radius:28px;padding:22px 24px}.card-ink{background:var(--ink);border-color:var(--ink);color:#fff}.home-cards{flex-direction:column;flex-grow:1;justify-content:center;gap:16px;display:flex}.continue{flex-direction:column;gap:6px;padding:24px;display:flex}.level-title{font-family:var(--display);letter-spacing:-.03em;font-size:52px;font-weight:800;line-height:1}.continue-foot{justify-content:space-between;align-items:flex-end;gap:12px;margin-top:14px;display:flex}.daily{flex-direction:column;gap:16px;display:flex}.streak{color:var(--flame);align-items:center;gap:4px;font-size:15px;font-weight:700;display:flex}.daily-no{font-family:var(--display);letter-spacing:-.02em;font-size:34px;font-weight:800;line-height:1}.week{gap:6px;display:flex}.week span{background:var(--rule);border-radius:3px;flex-grow:1;height:6px}.week span.done{background:var(--flame)}.sheet{background:var(--surface);width:min(420px,100vw - 32px);color:var(--ink);border:none;border-radius:28px;padding:0}.sheet::backdrop{background:#17171a73}.sheet-body{flex-direction:column;gap:12px;padding:20px 24px 24px;display:flex}.sheet-body.confirming>:not(.row:first-child):not([data-confirm]),.confirm[hidden]{display:none}.confirm p{line-height:1.45}.sheet-title{font-family:var(--display);font-size:26px;font-weight:800}.board-wrap{justify-content:center;width:100%;display:flex}.board{aspect-ratio:1;width:min(100%,100dvh - 330px,560px);min-width:260px;box-shadow:0 1px 0 var(--rule), 0 18px 40px -24px #17171a59;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:pointer;border-radius:28px;line-height:0;position:relative}.board svg{width:100%;height:100%;display:block}.board.shake{animation:.42s cubic-bezier(.36,.07,.19,.97) board-shake}@keyframes board-shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.board .gap-marks circle{transform-box:fill-box;transform-origin:50%;animation:1.1s ease-in-out infinite alternate gap-pulse}@keyframes gap-pulse{0%{opacity:.35;transform:scale(.85)}}.board .hint-ring{transform-box:fill-box;transform-origin:50%;opacity:0;animation:.9s cubic-bezier(.2,.7,.3,1) both hint-ring}@keyframes hint-ring{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(2.3)}}.board.revealing{cursor:progress}[data-action=hint].hint-pop svg{animation:.52s cubic-bezier(.3,1.6,.5,1) hint-pop}@keyframes hint-pop{35%{transform:scale(1.35)rotate(-10deg)}}.rules-inline{color:var(--muted);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 10px;font-size:13px;display:inline-flex}.rules-inline span{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.status-warn{color:var(--ink);font-weight:600}.board.solved{cursor:default;animation:.7s cubic-bezier(.2,.8,.2,1) solved-pop}.board.solved .line{animation:.7s ease-out line-glow}.board.solved .line-gap{animation:.7s ease-out gap-glow}@keyframes solved-pop{40%{transform:scale(1.035)}}@keyframes line-glow{40%{stroke-width:38px}}@keyframes gap-glow{40%{stroke-width:52px}}.legend{justify-content:center;align-items:center;gap:8px;min-height:22px;display:flex}.legend-dot{border:3px solid var(--c);border-radius:50%;width:18px;height:18px;transition:background .16s,transform .16s}.legend-dot.on{background:var(--c);transform:scale(1.1)}.legend-lg .legend-dot{width:22px;height:22px}.play-heading{flex-direction:column;flex:1;align-items:center;gap:2px;min-width:0;display:flex}.play-title{font-family:var(--display);letter-spacing:-.02em;font-size:24px;font-weight:800;line-height:1}.play-title-lg{font-family:var(--display);letter-spacing:-.03em;font-size:52px;font-weight:800;line-height:1}.timer{align-items:center;gap:5px;font-size:13px;display:inline-flex}.play-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-top:3px;display:flex}.play-heading .play-meta{justify-content:center}.play>.bar>.icon-btn,.play>.bar>.icon-spacer{flex-shrink:0}.play-center{flex-direction:column;flex-grow:1;justify-content:center;align-items:center;gap:20px;display:flex}.play-center>.muted{font-size:14px}.toolbar{gap:10px;display:flex}.tool{border:1.5px solid var(--rule);background:var(--surface);cursor:pointer;border-radius:18px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:4px;height:72px;font-size:13px;font-weight:600;transition:transform .12s;display:flex;position:relative}.tool:active:not(:disabled){transform:scale(.96)}.tool .badge{top:6px;right:calc(50% - 30px)}.tool:disabled,.tool-row:disabled{color:#a8a298;cursor:default}.tool-row{border:1.5px solid var(--rule);background:var(--surface);cursor:pointer;border-radius:16px;align-items:center;gap:12px;height:56px;padding:0 18px;font-size:16px;font-weight:600;display:flex;position:relative}@media (hover:hover){.tool-row:hover:not(:disabled){border-color:var(--ink)}}.tool-row .tool-label{text-align:left;flex-grow:1}.tool-row .badge{position:static}.tool-row kbd{font-family:var(--mono);color:var(--muted);border:1px solid var(--rule);border-radius:6px;padding:2px 7px;font-size:13px}.rules{color:var(--muted);background:0 0;border-style:dashed;flex-direction:column;gap:10px;font-size:15px;display:flex}.d-only{display:none!important}.theme-ink{color:#fff}body:has(.theme-ink){background:var(--ink)}.clear{gap:20px}.mini-dot{background:var(--c);border-radius:50%;width:10px;height:10px}.clear-body{flex-direction:column;flex-grow:1;justify-content:center;align-items:center;gap:28px;display:flex}.clear-board{border-radius:24px;width:min(240px,60vw);line-height:0;animation:.6s cubic-bezier(.2,.8,.2,1) both clear-board-in;overflow:hidden;transform:rotate(-3deg);box-shadow:0 30px 60px -20px #0009}.clear-board svg{width:100%;height:auto}@keyframes clear-board-in{0%{opacity:0;transform:rotate(-12deg)scale(.85)}}.clear-copy{text-align:center;flex-direction:column;align-items:center;gap:8px;animation:.5s .15s both screen-in;display:flex}.headline{font-family:var(--display);letter-spacing:-.04em;font-size:64px;font-weight:800;line-height:1}.headline-lg{font-size:56px;line-height:.95}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;animation:.5s .25s both screen-in;display:grid}.stat{border:1.5px solid var(--ink-2);border-radius:18px;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;display:flex}.stat-value{font-family:var(--display);font-size:26px;font-weight:700}.stat-label{color:var(--eyebrow-ink);font-size:13px}.result-body{flex-direction:column;flex-grow:1;justify-content:center;gap:22px;display:flex}.streak-line{align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.streak-line .icon{color:var(--flame)}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.week-day{cursor:pointer;touch-action:manipulation;background:0 0;border:none;flex-direction:column;align-items:center;gap:6px;padding:0;display:flex}.week-mark{background:var(--paper);border:1.5px dashed var(--rule);color:#fff;border-radius:12px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.week-mark.done{background:var(--flame);border:none}.week-mark.today{background:var(--ink);border:none}.week-mark.late{background:var(--surface);border:1.5px solid var(--flame);color:var(--flame)}.week-mark.open{color:var(--ink);border-style:solid;border-color:var(--ink)}.week-mark.selected{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--ink)}@media (hover:hover){.week-day:hover .week-mark.missed{border-color:var(--ink)}}.share-text{-webkit-user-select:text;user-select:text;font-family:var(--mono);word-break:break-word;font-size:18px;line-height:1.4}.share-url{opacity:.7;font-size:13px}.tutorial-body{flex-direction:column;flex-grow:1;justify-content:center;align-items:center;gap:36px;display:flex}.tutorial .board{width:min(100%,100dvh - 300px,400px)}.tutorial-guide{text-align:center;flex-direction:column;align-items:center;gap:14px;display:flex}.tutorial-caption{min-height:2.9em;color:var(--muted);font-size:17px;line-height:1.45}.tutorial-caption.status-warn{color:var(--ink)}.pictogram{align-items:center;gap:14px;min-height:48px;display:flex}.station{background:var(--c);border-radius:50%;width:40px;height:40px;display:inline-flex}.station svg{width:100%;height:100%}.cross-pict{justify-content:center;align-items:center;width:96px;height:96px;display:flex;position:relative}.cross-pict .h,.cross-pict .v{background:var(--c);border-radius:6px;position:absolute}.cross-pict .h{width:96px;height:12px}.cross-pict .v{width:12px;height:96px}.cross-pict svg{position:relative}.dots{justify-content:center;gap:8px;display:flex}.dots span{background:var(--rule);border-radius:4px;width:8px;height:8px;transition:width .2s}.dots span.on{background:var(--ink);width:24px}@media (max-width:899.98px),(max-height:499.98px){.screen{padding-top:max(clamp(10px, 2.6dvh, 20px), env(safe-area-inset-top));padding-bottom:max(clamp(10px, 3.4dvh, 28px), env(safe-area-inset-bottom));gap:clamp(8px,2.6dvh,20px)}.screen.play{height:100dvh;min-height:0}.play-center{gap:clamp(6px,2dvh,20px);min-height:0}.play-center .board-wrap{flex:1 1 0;align-items:center;min-height:0;container-type:size}.play .board{width:min(100cqw,100cqh,560px);min-width:0}.play .tool{height:clamp(52px,10dvh,72px)}.screen.home{height:100dvh;min-height:0}.home-cards{justify-content:safe center;gap:clamp(8px,1.8dvh,16px);min-height:0}.home .card{padding:clamp(12px,2.6dvh,24px) 24px}.home .daily{gap:clamp(8px,1.8dvh,16px)}.home .level-title{font-size:clamp(34px,7dvh,52px)}.home .continue-foot{margin-top:clamp(6px,2dvh,14px)}@media (max-height:599.98px) and (orientation:portrait){.home-cards{gap:8px}.home .metro-strip,.home .week{display:none}.home .continue-foot{margin-top:4px}.home .btn-lg{height:52px}.home .btn{height:46px}}.screen.clear{gap:clamp(8px,2.4dvh,20px);height:100dvh;min-height:0}.clear-body{gap:clamp(12px,3.4dvh,28px);min-height:0}.clear-board{width:min(240px,60vw,28dvh)}.clear .headline{font-size:clamp(40px,min(15vw,9dvh),64px)}.clear .stat{padding:clamp(8px,1.8dvh,14px) 8px}.clear .stat-value{font-size:clamp(20px,4dvh,26px)}.clear .btn-lg,.clear .icon-btn-lg{height:clamp(52px,10dvh,64px)}.clear .link-btn{min-height:36px}}@media (orientation:landscape) and (max-height:599px){.screen{max-width:720px;padding:max(12px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left))}.screen.play{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px;max-width:none;height:100dvh;display:grid}.play>.bar{flex-direction:column;align-self:start;align-items:flex-start;gap:14px}.play>.bar .play-heading{align-items:flex-start}.play>.bar .icon-spacer{display:none}.play-center{gap:8px;height:100%}.play-center .board-wrap{flex:1 1 0;width:auto;container-type:normal}.play .board{width:calc(100dvh - 88px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:22px;min-width:200px}.play .rules-inline{display:none}.home-cards{flex-direction:row;align-items:stretch}.home-cards>.card{flex:1 1 0;justify-content:space-between;min-width:0}.play .toolbar{flex-direction:column;justify-self:end;width:min(100%,120px)}.play .tool{flex:none;height:64px}.tutorial-body{flex-direction:row;gap:28px}.tutorial .board{width:calc(100dvh - 120px);min-width:200px}.clear-body{grid-template-columns:auto auto;gap:16px 36px;display:grid}.clear-board{grid-row:span 2;width:min(180px,40dvh)}.screen.clear{gap:8px}.clear .bar{min-height:32px}.clear .headline{font-size:48px}.clear .btn-lg{height:52px}}@media (min-width:900px) and (min-height:500px){.m-only{display:none!important}.d-only{display:flex!important}.screen.play{--pad-y:clamp(16px, 3.5dvh, 40px);--side:clamp(200px, 19vw, 340px);max-width:1920px;height:100dvh;padding:var(--pad-y) clamp(20px, 2.5vw, 48px);grid-template-columns:var(--side) minmax(0, 1fr) var(--side);gap:clamp(20px,2.5vw,48px);display:grid;overflow:hidden}.play-left{flex-direction:column;gap:clamp(14px,3dvh,32px);min-height:0}.play-left .brand .wordmark{font-size:clamp(20px,2.6vmin,30px)}.play-left-body{flex-direction:column;flex-grow:1;justify-content:center;gap:clamp(12px,2.4dvh,28px);min-height:0;display:flex}.play-left .legend{justify-content:flex-start}.play-title-lg{font-size:clamp(38px,6vmin,68px)}.play-left .timer{font-size:clamp(13px,1.6vmin,17px)}.play-left .muted{font-size:clamp(14px,1.6vmin,18px)}.tool-row{height:clamp(44px,6.2dvh,68px);font-size:clamp(15px,1.8vmin,19px)}.play-left .btn-ghost-outline{height:clamp(40px,5.2dvh,56px);font-size:clamp(14px,1.6vmin,17px)}.play-right{flex-direction:column;justify-content:center;gap:clamp(12px,2dvh,24px);min-height:0}.play-right .card{padding:clamp(16px,2.4vmin,28px) clamp(18px,2.4vmin,30px)}.play-right .daily-no{font-size:clamp(28px,4vmin,42px)}.play-right .rules,.play-right .muted{font-size:clamp(14px,1.7vmin,18px)}.play .board{width:min(100%, calc(100dvh - 2 * var(--pad-y)), 90dvh);border-radius:clamp(24px,3.4vmin,40px);min-width:0}.screen.home{gap:clamp(12px,3dvh,32px);max-width:min(1080px,92vw);padding:clamp(16px,3.5dvh,40px) clamp(20px,3vw,48px)}.home .wordmark{font-size:clamp(24px,3vmin,34px)}.home-cards{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-content:center;gap:clamp(16px,2.2vw,32px);display:grid}.home .card{border-radius:clamp(28px,3.4vmin,40px);padding:clamp(22px,3.6vmin,44px)}.home .daily{justify-content:space-between;gap:clamp(16px,3vmin,32px)}.home .daily .row.end{flex-wrap:wrap;gap:16px}.home .level-title{font-size:clamp(52px,9vmin,104px)}.home .continue .muted-ink,.home .daily .muted,.home .eyebrow,.home .streak{font-size:clamp(15px,2vmin,20px)}.home .daily-no{font-size:clamp(34px,6.4vmin,72px)}.home .week span{height:clamp(6px,1vmin,10px)}.home .btn{height:clamp(52px,7vmin,72px);font-size:clamp(16px,2vmin,21px)}.home .btn-lg{height:clamp(64px,8.5vmin,84px);padding:0 clamp(26px,3.4vmin,40px)}@media (min-height:600px){.screen.daily-result,.screen.clear,.screen.tutorial{gap:clamp(12px,2.4dvh,28px);max-width:clamp(440px,62dvh,680px);padding:clamp(16px,3dvh,40px) 24px}.tutorial-body{gap:clamp(16px,3.4dvh,44px)}.tutorial .board{width:min(100%,100dvh - 260px);min-width:200px}.clear-body{gap:clamp(16px,3dvh,36px)}.clear-board{width:clamp(180px,32dvh,400px)}.clear .headline{font-size:clamp(48px,9dvh,104px)}.headline-lg{font-size:clamp(48px,8dvh,92px)}.stat-value{font-size:clamp(24px,3.6dvh,38px)}.stat-label{font-size:clamp(13px,1.6dvh,17px)}}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-delay:0s!important}}.solved-banner{pointer-events:none;place-items:center;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.solved-banner span{font-family:var(--display);letter-spacing:-.04em;color:#fff;background:var(--ink);border-radius:.3em;padding:.12em .4em .18em;font-size:clamp(44px,12vw,96px);font-weight:800;line-height:1;animation:1.9s cubic-bezier(.2,.9,.2,1.2) both banner-stamp;box-shadow:0 24px 50px -18px #0000008c}@keyframes banner-stamp{0%,12%{opacity:0;transform:scale(2.4)rotate(-14deg)}30%{opacity:1;transform:scale(.94)rotate(-6deg)}38%,to{opacity:1;transform:scale(1)rotate(-6deg)}}.confetti{pointer-events:none;z-index:50;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.confetti span{will-change:transform, opacity;position:absolute}.clear .headline{animation:.7s cubic-bezier(.2,.9,.3,1.4) .12s both headline-pop}@keyframes headline-pop{0%{opacity:0;transform:scale(.6)}}.clear .stat{animation:.45s both screen-in}.clear .stat:first-child{animation-delay:.3s}.clear .stat:nth-child(2){animation-delay:.38s}.clear .stat:nth-child(3){animation-delay:.46s}.badge.badge-ad{background:var(--ink);font-family:var(--mono);font-size:11px}.board .nudge-ring{transform-box:fill-box;transform-origin:50%;animation:1s ease-in-out infinite alternate gap-pulse}.status-hint{color:var(--ink);font-weight:600}@media (prefers-reduced-motion:reduce){.board .nudge-ring{animation:none}}.play,.continue{--line-accent:var(--ink)}.line-chip{flex-direction:column;gap:6px;max-width:260px;display:flex}.line-chip-name{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.line-chip-no{background:var(--line-accent);color:#fff;letter-spacing:0;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:12px;font-weight:800;display:inline-grid}.line-chip-station{color:var(--muted);font-size:13px}.line-chip-bar{background:var(--rule);border-radius:2px;height:4px;overflow:hidden}.line-chip-bar>span{border-radius:inherit;background:var(--line-accent);height:100%;display:block}.line-chip-mini{color:var(--muted);white-space:nowrap;align-items:center;gap:5px;min-width:0;max-width:100%;font-size:12px;font-weight:600;display:inline-flex}.line-chip-count{flex:none}.line-chip-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.difficulty-badge{border:1px solid var(--rule);color:var(--muted);letter-spacing:0;white-space:nowrap;border-radius:999px;flex:none;align-items:center;padding:3px 9px;font-size:12px;font-weight:600;line-height:1.3;display:inline-flex}.card-ink .difficulty-badge,.theme-ink .difficulty-badge{color:var(--muted-ink);background:#ffffff0f;border-color:#fff3}.play .difficulty-badge{padding:2px 7px;font-size:11px}.line-chip-mini:before{content:"";background:var(--line-accent);border-radius:50%;flex:none;width:8px;height:8px}.continue-meta{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.continue-line{flex:1;align-items:flex-start;gap:8px;min-width:0}.continue-line-text{overflow-wrap:anywhere;min-width:0}.continue-line .line-chip-no{width:1.5em;height:1.5em;font-size:.85em}.metro-strip{align-items:center;gap:12px;min-width:0;margin-top:12px;display:flex}.ms-stations{--dot:14px;flex-grow:1;align-items:center;min-width:0;max-width:260px;display:flex}.ms-seg{background:#ffffff2e;flex:1 1 0;min-width:10px;height:4px}.ms-seg.done{background:var(--line-accent)}.ms-tail{background:linear-gradient(90deg, transparent, var(--line-accent));flex:0 0 18px}.ms-tail-end{background:linear-gradient(90deg,#ffffff2e,#0000)}.ms-dot{width:var(--dot);height:var(--dot);background:var(--ink);border:2.5px solid #ffffff59;border-radius:50%;flex:none}.ms-dot.done{background:var(--line-accent);border-color:var(--line-accent)}.ms-dot.here{width:calc(var(--dot) + 6px);height:calc(var(--dot) + 6px);border:4px solid var(--line-accent);background:#fff;box-shadow:0 0 0 3px #ffffff26}.ms-next{min-width:0;color:var(--muted-ink);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;align-items:center;gap:4px;font-size:13px;font-weight:600;display:inline-flex;overflow:hidden}@media (min-width:900px){.ms-stations{--dot:clamp(12px, 1.6vmin, 18px)}.home .ms-next{font-size:clamp(13px,1.7vmin,18px)}.metro-strip{margin-top:clamp(12px,2.4vmin,28px)}}@media (max-width:360px){.ms-stations{--dot:12px}.metro-strip{gap:8px}}.ms-next svg{flex:none}.clear-gift{color:#fff;background:#ffffff1f;border-radius:999px;align-items:center;gap:6px;margin:4px 0 0;padding:6px 12px;font-weight:700;display:inline-flex}.line-done{flex-direction:column;align-items:center;gap:8px;display:flex}.line-done .headline,.line-done p{margin:0}.line-done-next{color:#fff}.difficulty-step{color:var(--eyebrow-ink);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:14px;display:flex}.difficulty-step .difficulty-badge{color:var(--ink);background:#fff;border-color:#fff;font-weight:700}.line-done-track{align-items:center;width:min(260px,70vw);margin:6px 0;display:flex}.ld-seg{transform-origin:0;border-radius:3px;flex-grow:1;height:6px}.ld-done{background:var(--done)}.ld-next{background:var(--next);animation:.7s cubic-bezier(.2,.8,.2,1) .5s both ld-grow}.ld-stop{border:4px solid var(--done);background:#fff;border-radius:50%;flex:none;width:18px;height:18px}.ld-new{border-color:var(--next);animation:.4s 1.1s both ld-pop}@keyframes ld-grow{0%{transform:scaleX(0)}}@keyframes ld-pop{0%{transform:scale(0)}}@media (prefers-reduced-motion:reduce){.ld-next,.ld-new{animation:none}}.clear .line-done .headline{white-space:nowrap;font-size:clamp(40px,12vw,64px)}@media (min-width:900px) and (min-height:600px){.clear .line-done .headline{font-size:clamp(48px,8dvh,92px)}.clear-milestone .clear-board{width:clamp(150px,21dvh,300px)}.clear-milestone .clear-body{gap:clamp(16px,2.4dvh,28px)}}@media (max-width:480px){.continue-spec{display:none}.clear-milestone .clear-body{gap:18px}.clear-milestone .clear-board{width:min(200px,52vw)}}.intro-scrim{z-index:50;background:#17171a8c;place-items:center;padding:16px;animation:.2s ease-out both intro-fade;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.intro-card{background:var(--surface);width:min(360px,100%);max-height:100%;color:var(--ink);text-align:center;border-radius:28px;flex-direction:column;align-items:center;gap:10px;padding:24px 24px 20px;animation:.32s cubic-bezier(.2,.9,.3,1.2) both intro-pop;display:flex;overflow:auto;box-shadow:0 18px 50px #00000040}.intro-new{background:var(--flame);color:#fff;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700}.intro-title{font-family:var(--display);margin:0;font-size:30px;line-height:1.1}.intro-art{aspect-ratio:1;width:min(150px,40vw,24dvh)}.intro-art svg{width:100%;height:100%;display:block}.intro-rule{margin:0 0 6px;font-size:17px;line-height:1.35}.btn-dark{background:var(--ink);color:#fff}.btn-dark:focus-visible{outline:3px solid var(--flame);outline-offset:3px}@keyframes intro-fade{0%{opacity:0}}@keyframes intro-pop{0%{opacity:0;transform:translateY(12px)scale(.94)}}@media (max-height:480px) and (orientation:landscape){.intro-card{text-align:left;grid-template-columns:auto 1fr;grid-template-areas:"art new""art title""art rule""art ok";justify-items:start;gap:6px 20px;width:min(520px,100%);padding:18px 22px;display:grid}.intro-new{grid-area:new}.intro-title{grid-area:title;font-size:26px}.intro-art{grid-area:art;align-self:center;width:min(140px,36dvh)}.intro-rule{grid-area:rule}.intro-card .btn{grid-area:ok}}.clear-tease{color:var(--eyebrow-ink);letter-spacing:.02em;margin:6px 0 0;font-size:14px}.cleared-card{flex-direction:column;gap:16px;display:flex}.icon-btn-spacer{width:48px}.cleared h2,.cleared h3{margin:0}.cleared-line{flex-direction:column;gap:10px;display:flex}.cleared-line-name{color:var(--ink)}.cleared-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.cleared-row{border:1.5px solid var(--rule);background:var(--surface);width:100%;color:var(--ink);text-align:left;cursor:pointer;border-radius:18px;align-items:center;gap:14px;padding:8px 14px 8px 8px;display:flex}.cleared-row:hover{border-color:var(--line-accent,var(--ink))}.cleared-row:focus-visible{border-color:var(--line-accent,var(--ink))}.cleared-thumb{border-radius:12px;flex:none;width:64px;line-height:0;overflow:hidden}.cleared-thumb svg{width:100%;height:auto}.cleared-info{flex-direction:column;flex-grow:1;gap:2px;font-size:14px;display:flex}.cleared-title{font-size:16px;font-weight:700}.network{gap:14px}.network-stats .stat{flex:1}.network-scroll{background:var(--surface);border:1.5px solid var(--rule);border-radius:20px;flex:1;min-height:0;padding:8px 4px}.network-map{max-width:400px;margin:0 auto;display:block}.network-play{bottom:max(16px, env(safe-area-inset-bottom));position:sticky}.nm-track,.nm-run{fill:none;stroke-width:7px;stroke-linecap:round;stroke-linejoin:round}.nm-track{stroke:var(--rule)}.nm-dashed{stroke-width:3px;stroke-dasharray:6 7;stroke:var(--eyebrow-ink)}.nm-run{stroke:var(--c)}.nm-tick{fill:var(--surface);stroke:var(--rule);stroke-width:1.5px}.nm-tick.on{stroke:var(--c)}.nm-joint{fill:var(--surface);stroke:var(--ink);stroke-width:3px}.nm-joint-closed{stroke:var(--eyebrow-ink);stroke-width:2px}.nm-label{font-family:var(--body);fill:var(--ink);font-size:12px;font-weight:600}.nm-no{font-family:var(--mono);fill:var(--c)}.nm-label-next{fill:var(--muted);font-weight:500}.nm-current .nm-track{stroke:color-mix(in srgb, var(--c) 22%, var(--surface))}.nm-dot{fill:var(--c);stroke:var(--surface);stroke-width:2.5px}.nm-pulse{fill:var(--c);opacity:.25;transform-box:fill-box;transform-origin:50%;animation:1.6s ease-out infinite nm-pulse}@keyframes nm-pulse{0%{opacity:.45;transform:scale(.6)}to{opacity:0;transform:scale(1.5)}}@media (prefers-reduced-motion:reduce){.nm-pulse{animation:none}}.clear-stamp{color:#ffd66b;border:1.5px solid #ffffff59;border-radius:999px;align-items:center;gap:6px;margin:4px 6px 0 0;padding:6px 12px;font-weight:700;display:inline-flex}.clear-stamp.gold{color:var(--ink);background:#d69a00;border-color:#d69a00}.perfect-star{color:#d69a00;display:inline-flex}.gold-chip{color:var(--ink);letter-spacing:.04em;background:#d69a00;border-radius:999px;align-items:center;gap:3px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.nm-gold{fill:none;stroke:#d69a00;stroke-width:13px;stroke-linecap:round;stroke-linejoin:round;opacity:.45}.nm-star{fill:#d69a00}.line-done-track{position:relative}.ld-train{filter:drop-shadow(0 2px 3px #00000059);width:40px;height:20px;margin-top:-10px;animation:1.5s cubic-bezier(.45,0,.3,1) .15s both ld-ride;position:absolute;top:50%;left:0}.ld-train svg{display:block}@keyframes ld-ride{0%{opacity:0;left:0}8%{opacity:1}to{left:calc(100% - 40px)}}@media (prefers-reduced-motion:reduce){.ld-train{animation:none;left:calc(100% - 40px)}}.clear-compare{color:var(--muted-ink);text-align:center;font-size:14px}.clear-compare.best{color:#ffd66b;font-weight:700}.daily-stats{border-top:1.5px solid var(--rule);text-align:center;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding-top:12px;display:grid}.daily-stats>span{flex-direction:column;gap:2px;display:flex}.daily-stats strong{font-family:var(--display);font-size:18px}.replay-line{color:var(--muted);font-weight:600}.replay-line.best{color:var(--flame)}.replay-btn{align-self:flex-start;margin-top:6px}
