:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#243e38;--paper:#edf0e7;--green:#315b48;--accent:#df764e;color:var(--ink);background:var(--paper);font-family:Apple SD Gothic Neo,Malgun Gothic,sans-serif}*{box-sizing:border-box}body{margin:0}main{width:min(100%,548px);padding:24px 14px max(24px, env(safe-area-inset-bottom));margin:auto}header{margin:0 4px 22px;position:relative}a{color:inherit;text-decoration:none}.back,.edition{letter-spacing:.04em;font-size:11px;font-weight:600}.edition{float:right;color:#66776d}h1{letter-spacing:-.06em;margin:27px 0 6px;font-size:clamp(30px,7.5vw,40px);font-weight:900}h1 em{color:var(--green);font-style:normal}.intro{color:#596d61;margin:0;font-size:13px}.hud{border-top:1px solid #c0cbbd;justify-content:space-between;align-items:center;padding:13px 4px 14px;display:flex}.eyebrow{letter-spacing:.03em;font-size:10px;font-weight:700}.kicks{align-items:center;gap:6px;height:25px;margin-top:3px;display:flex}.kicks i{background:var(--accent);border-radius:6px 6px 3px 3px;width:13px;height:17px;transform:rotate(-18deg);box-shadow:inset 0 -3px #b95836}.kicks i.used{box-shadow:none;background:#d3dacc}.kicks b{font-variant-numeric:tabular-nums;margin-left:4px;font-size:18px}.hud p{text-align:right;color:#607163;margin:0;font-size:11px;line-height:1.65}.hud strong{color:var(--ink);font-weight:600}.playfield{background:#d6ddca;border:1px solid #8c9e8c;border-radius:10px;position:relative;overflow:hidden}#game{touch-action:none;cursor:grab;width:100%;height:auto;display:block}#game:active{cursor:grabbing}#game:focus-visible{outline:3px solid var(--green);outline-offset:-4px}button,a,summary{-webkit-tap-highlight-color:transparent}button{min-height:44px;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #a1b09e;border-radius:7px;padding:11px 16px;font-family:inherit;font-size:13px;font-weight:600}button:hover{background:#dce3d4}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #b44d28}.primary,#resume{background:var(--green);border-color:var(--green);color:#fafbf4}.primary:hover,#resume:hover{background:#244535}.actions{gap:8px;display:flex}.actions .primary{flex:1}.journal-actions{gap:8px;margin-top:8px;display:flex}#collection-open{background:#e2e7d7;flex:1;justify-content:space-between;align-items:center;display:flex}#collection-count{font-variant-numeric:tabular-nums;font-size:12px}[data-rarity=common]{--rarity-ink:#56634a;--rarity-paper:#e4e7d9}[data-rarity=rare]{--rarity-ink:#245f80;--rarity-paper:#e0edf2}[data-rarity=epic]{--rarity-ink:#72418c;--rarity-paper:#efe4f1}[data-rarity=legendary]{--rarity-ink:#865012;--rarity-paper:#f5e8b9}#collection-target{border-left:3px solid var(--rarity-ink);background:var(--rarity-paper);border-radius:4px;align-items:center;gap:8px;margin-bottom:10px;padding:9px 8px 9px 12px;display:flex}#collection-target strong{color:var(--rarity-ink);font-size:12px}#collection-target p{margin:4px 0 0;font-size:11px;line-height:1.6}#target-clear{border:0;min-width:44px;margin-left:auto}.feedback{min-height:91px;padding:17px 3px 14px}.feedback h2{letter-spacing:-.03em;margin:0 0 7px;font-size:16px}.feedback p{color:#566c5f;margin:0;font-size:12px;line-height:1.6}[hidden]{display:none!important}#pause-cover{background:#edf0e7e8;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:absolute;inset:0}#pause-cover strong{font-size:24px}details{color:#596d61;margin-top:15px;font-size:11px}summary{cursor:pointer;padding:8px 0}details p{margin:6px 0;line-height:1.8}footer{color:#69796b;text-align:center;letter-spacing:.08em;margin-top:23px;font-size:10px}body:has(dialog[open]){overflow:hidden}#journal{width:min(440px,100% - 24px);max-height:calc(100dvh - 32px);color:var(--ink);overscroll-behavior:contain;background:#f5f0df;border:1px solid #91a18b;border-radius:12px;margin:auto;padding:20px;box-shadow:0 20px 80px #182d3655}#journal::backdrop{background:#1b302bc2}.journal-header{justify-content:space-between;align-items:center;gap:10px;display:flex}#journal-label{letter-spacing:.12em;color:#62755f;font-size:10px;font-weight:800}#journal-close{border:0;margin-right:-10px;padding:10px;font-size:11px}#journal-title{letter-spacing:-.06em;margin:0 0 18px;font-size:34px;line-height:1.15}#journal[data-outcome=miss] #journal-title{color:#a4472d}#journal[data-outcome=win] #journal-title{color:#315f43}.assessment{border-top:2px solid #87967d;border-bottom:1px dashed #aab29a;padding:14px 0;position:relative}#journal[data-rarity] .assessment{border-top:3px solid var(--rarity-ink)}.rarity-badge{border:1px solid var(--rarity-ink);color:var(--rarity-ink);background:var(--rarity-paper);white-space:nowrap;border-radius:4px;align-self:flex-start;padding:4px 7px;font-size:10px;font-weight:800;line-height:1.3;display:inline-block}#route-rarity{margin-bottom:8px}#route-number{float:right;color:#8a795e;padding-top:4px;font:11px monospace}#route-name{letter-spacing:-.04em;margin:0 0 5px;font-size:23px}#route-reason{color:#65745f;margin:0;font-size:12px;line-height:1.5}.route-summary{grid-template-columns:1fr 1fr;gap:18px;padding:18px 0 12px;display:grid}.route-summary figure{margin:0}#route-map{border:1px solid #b6bca6;border-radius:4px;width:100%;height:auto}.route-summary figcaption{color:#6b7861;margin-top:7px;font-size:9px;line-height:1.6}#route-stats{flex-direction:column;justify-content:space-around;gap:8px;margin:0;padding:0;display:flex}#route-stats dt{color:#6b7861;font-size:10px}#route-stats dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:19px;font-weight:800}.unlock-message{margin:4px 0 8px;font-size:12px;font-weight:700;line-height:1.6}.earned-badges{flex-wrap:wrap;gap:5px;margin-bottom:18px;display:flex}.earned-badges span{background:var(--rarity-paper);color:var(--rarity-ink);border:1px solid #0000;border-radius:4px;padding:6px 8px;font-size:10px}.earned-badges span.new{border-color:var(--rarity-ink);font-weight:800}.result-actions{gap:8px;display:flex}.result-actions button{flex:1}.storage-note{color:#66775f;border-top:1px solid #d0d2bb;margin:16px 0 0;padding-top:12px;font-size:10px;line-height:1.6}.storage-note.warning{color:#994528}.collection-intro{color:#65745f;margin:0 0 17px;font-size:12px;line-height:1.7}.chapter-progress{grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 12px;display:grid}.chapter-progress span{white-space:nowrap;font-size:10px;font-weight:700}.chapter-progress progress{width:100%;height:5px;accent-color:var(--green);margin-top:6px;display:block}.rarity-progress{flex-wrap:wrap;gap:5px;margin-bottom:16px;display:flex}.collection-filters{grid-template-columns:1fr 1fr;gap:8px;display:grid}.collection-filters label{gap:5px;font-size:10px;font-weight:700;display:grid}.collection-filters select{width:100%;min-height:44px;color:var(--ink);font:inherit;background:#fbf7e9;border:1px solid #a6b499;border-radius:5px;padding:8px;font-size:12px}.collection-filters select:focus-visible,.missing-filter input:focus-visible{outline-offset:2px;outline:3px solid #b44d28}.missing-filter{cursor:pointer;align-items:center;gap:7px;min-height:44px;font-size:11px;display:flex}.missing-filter input{width:16px;height:16px;accent-color:var(--green)}.collection-visible-count{color:#65745f;margin:0 0 10px;font-size:10px}.rarity-note,#collection-empty{color:#62715b;font-size:11px;line-height:1.65}.collection-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.route-card{text-align:left;border-color:#a6b499;border-top:3px solid var(--rarity-ink);background:#fbf7e9;flex-direction:column;gap:6px;padding:10px;display:flex;position:relative;overflow:hidden}.route-card>*{z-index:1;position:relative}.route-card[data-rarity=common]{background:#f0eddf;border-bottom:2px dashed #9aa28b;border-radius:2px}.route-card[data-rarity=rare]{background:linear-gradient(130deg,#f5faf9,#dceaf0);border:4px double #5684a0;border-radius:3px 12px 3px 3px}.route-card[data-rarity=epic]{background:radial-gradient(at 100% 0,#dac6e9,#0000 70%),#f3eaf5;border:1px solid #8452a3;border-radius:15px 3px;padding:13px;box-shadow:inset 0 0 0 3px #f3eaf5,inset 0 0 0 4px #a17db6}.route-card[data-rarity=legendary]{background:linear-gradient(125deg,#fff7d0 5%,#edce83 45%,#fff3c2 62%,#ddbb69);border:2px solid #916021;border-radius:9px;padding:14px;box-shadow:inset 0 0 0 2px #fff3c6,inset 0 0 0 4px #b88b3a,0 3px #9a762e}.route-card .card-emblem{z-index:0;opacity:.13;pointer-events:none;color:var(--rarity-ink);font-size:68px;line-height:1;position:absolute;top:28px;right:9px}.route-card.locked{color:#536149;background:#ececdd}.route-card.locked:hover{background:var(--rarity-paper)}.route-card .card-number{color:#728166;font:10px monospace}.route-card strong{letter-spacing:-.03em;font-size:14px}.route-card .card-hint{font-size:10px;font-weight:400;line-height:1.55}.route-card canvas{object-fit:contain;width:100%;height:100px;cursor:inherit;background:#e6e7d7;border-radius:3px}.locked-route{width:100%;height:100px;color:var(--rarity-ink);background:repeating-linear-gradient(135deg,#0000 0 9px,#dfe2d2 10px 11px);border-radius:3px;place-items:center;font:40px Georgia,serif;display:grid}#collection-result{width:100%;margin-top:14px}.same-layout{text-underline-offset:3px;color:#647359;border:0;width:100%;margin-top:8px;font-size:11px;text-decoration:underline}#acquisition{isolation:isolate;color:var(--rarity-ink);background:var(--rarity-paper);pointer-events:none;border:1px solid;border-radius:5px;align-items:center;gap:12px;margin-bottom:15px;padding:14px;display:flex;position:relative;overflow:hidden}#acquisition>div:not(#acquisition-particles),#acquisition-mark{z-index:1;position:relative}#acquisition small{letter-spacing:.14em;font-size:8px;font-weight:800}#acquisition strong{letter-spacing:-.05em;margin-top:3px;font-size:21px;line-height:1.25;display:block}#acquisition p{margin:5px 0 0;font-size:11px;font-weight:600}#acquisition-mark{flex:0 0 42px;place-items:center;height:42px;font-size:36px;display:grid}#acquisition[data-rarity=common]{border-style:dashed;border-radius:1px;padding:10px 12px;animation:.2s ease-out ticket-arrival}#acquisition[data-rarity=common] strong{font-size:17px}#acquisition[data-rarity=rare]{background:linear-gradient(120deg,#f2faff,#d6e9f2);border:4px double #4f829f;animation:.4s ease-out rare-arrival}#acquisition[data-rarity=rare]:after{content:"";background:linear-gradient(110deg,#0000 35%,#ffffffb0 49%,#0000 61%);animation:.75s ease-out both rare-shine;position:absolute;inset:-60% -30%}#acquisition[data-rarity=epic]{background:radial-gradient(at 20%,#cfb4e4,#0000 70%),#f0e5f6;border:1px solid #805099;border-radius:16px 2px;animation:.65s ease-out epic-arrival;box-shadow:inset 0 0 0 3px #f7eef9,inset 0 0 0 4px #a57cba}#acquisition[data-rarity=epic] #acquisition-mark{text-shadow:0 0 12px #ba8bd8;animation:.8s ease-out epic-medal}#acquisition[data-rarity=legendary]{background:radial-gradient(at 15%,#fff7c3,#0000 50%),linear-gradient(115deg,#bc872b,#f7d990 32%,#fff0b9 65%,#ddb251);border:2px solid #93651f;border-radius:8px;gap:15px;padding:20px 14px;box-shadow:inset 0 0 0 3px #fff0b5,inset 0 0 0 4px #b4832a,0 5px 18px #9c6b262b}#acquisition[data-rarity=legendary] strong{color:#70400a;text-shadow:0 1px #fff5cb;font-size:32px}#acquisition[data-rarity=legendary] #acquisition-mark{background:linear-gradient(135deg,#fff2ba,#d7a446);border:4px double #9b6b1b;border-radius:50%;flex-basis:64px;height:64px;font-size:48px;animation:.95s cubic-bezier(.16,.8,.25,1) both legendary-medal;box-shadow:0 0 0 5px #f9e7aa66,0 3px 8px #8b5e2d44}#journal[data-celebration=legendary]{box-shadow:0 0 0 2px #b78e42,0 0 55px #e6ba5a70,0 20px 80px #182d3670}#journal[data-rarity=rare] .assessment{border-top:4px double #5684a0}#journal[data-rarity=epic] .assessment{background:linear-gradient(110deg,#eee0f5,#0000);border-top:2px solid #8452a3;border-bottom:2px solid #c8b0d5;padding-inline:8px}#journal[data-rarity=legendary] .assessment{background:linear-gradient(115deg,#fff4cf,#efdaa1 60%,#fff1c0);border:3px double #aa792c;border-radius:4px;padding:16px 12px}#acquisition-particles{z-index:0;position:absolute;top:50%;left:47px}#acquisition-particles i{opacity:0;background:currentColor;border-radius:1px;width:5px;height:12px;position:absolute}#acquisition[data-rarity=legendary] #acquisition-particles i{animation:1.05s ease-out both gold-spark;animation-delay:calc(var(--i) * 15ms)}#acquisition[data-rarity=epic] #acquisition-particles i:nth-child(-n+6){border-radius:50%;width:5px;height:5px;animation:.8s ease-out both violet-spark}@keyframes ticket-arrival{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes rare-arrival{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:none}}@keyframes rare-shine{0%{transform:translate(-70%)}to{transform:translate(70%)}}@keyframes epic-arrival{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes epic-medal{0%{transform:rotate(-35deg)scale(.5)}to{transform:none}}@keyframes legendary-medal{0%{opacity:0;transform:scale(.3)rotate(-60deg)}65%{opacity:1;transform:scale(1.16)rotate(5deg)}to{opacity:1;transform:none}}@keyframes gold-spark{0%{opacity:0;transform:rotate(calc(var(--i) * 30deg)) translateY(-20px) scale(.3)}20%{opacity:.9}to{opacity:0;transform:rotate(calc(var(--i) * 30deg)) translateY(-130px) scale(1)}}@keyframes violet-spark{0%{opacity:0;transform:rotate(calc(var(--i) * 60deg)) translateY(-10px)}25%{opacity:.75}to{opacity:0;transform:rotate(calc(var(--i) * 60deg)) translateY(-65px)}}@media (prefers-reduced-motion:reduce){#acquisition,#acquisition:after,#acquisition-mark,#acquisition-particles i{animation:none!important}#acquisition:after,#acquisition-particles{display:none}}@media (width<=360px){#journal{padding:14px}#journal-title{font-size:29px}#route-name{font-size:21px}.route-summary{gap:12px}.result-actions button{padding-inline:8px;font-size:12px}}@media (width>=600px){main{width:clamp(380px,78.8svh - 255.68px,548px);padding-top:16px}header{margin-bottom:14px}h1{margin-top:18px;font-size:32px}.hud{padding-top:10px;padding-bottom:10px}.feedback{min-height:78px;padding-top:13px;padding-bottom:10px}details{margin-top:8px}footer{margin-top:15px}}@media (width<=360px){main{padding:18px 10px}header{margin-bottom:16px}h1{margin-top:22px}.feedback h2{font-size:14px}.feedback p{font-size:11px}}
