@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/libre-franklin-cyrillic-ext-300-normal-BDu0eqW7.woff2)format("woff2"),url(/assets/libre-franklin-cyrillic-ext-300-normal-DjoAyveG.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/libre-franklin-cyrillic-300-normal-B1b7hub6.woff2)format("woff2"),url(/assets/libre-franklin-cyrillic-300-normal-CsV7ql-g.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/libre-franklin-vietnamese-300-normal-CJGCOrma.woff2)format("woff2"),url(/assets/libre-franklin-vietnamese-300-normal-CHSllbW7.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/libre-franklin-latin-ext-300-normal-BlegLLcE.woff2)format("woff2"),url(/assets/libre-franklin-latin-ext-300-normal-DwHgQ0Rw.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/libre-franklin-latin-300-normal-CvFvVvhW.woff2)format("woff2"),url(/assets/libre-franklin-latin-300-normal-COr5WftT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-franklin-cyrillic-ext-400-normal-B9g9xgcO.woff2)format("woff2"),url(/assets/libre-franklin-cyrillic-ext-400-normal-D5jvQp33.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-franklin-cyrillic-400-normal-BxQnOlOp.woff2)format("woff2"),url(/assets/libre-franklin-cyrillic-400-normal-T4bKsRTj.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-franklin-vietnamese-400-normal-BejjGN4K.woff2)format("woff2"),url(/assets/libre-franklin-vietnamese-400-normal-DVbyimmf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-franklin-latin-ext-400-normal-BlKPGRwu.woff2)format("woff2"),url(/assets/libre-franklin-latin-ext-400-normal-CEHJ3Zjr.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/libre-franklin-latin-400-normal-DNAyL8lK.woff2)format("woff2"),url(/assets/libre-franklin-latin-400-normal-B5qoBLOl.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/libre-franklin-cyrillic-ext-500-normal-CEScqsDp.woff2)format("woff2"),url(/assets/libre-franklin-cyrillic-ext-500-normal-DNjvXlO5.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/libre-franklin-cyrillic-500-normal-DmkkefNM.woff2)format("woff2"),url(/assets/libre-franklin-cyrillic-500-normal-BbpetOLr.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/libre-franklin-vietnamese-500-normal-RIIoSqy6.woff2)format("woff2"),url(/assets/libre-franklin-vietnamese-500-normal-r-ir2lkU.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/libre-franklin-latin-ext-500-normal-B0aoLQ4L.woff2)format("woff2"),url(/assets/libre-franklin-latin-ext-500-normal-BEjoZNRk.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Libre Franklin;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/libre-franklin-latin-500-normal-Cbta7Jiu.woff2)format("woff2"),url(/assets/libre-franklin-latin-500-normal-BQKhRarp.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-vietnamese-400-normal-CvGt0Ybw.woff2)format("woff2"),url(/assets/fraunces-vietnamese-400-normal-B65MOf9T.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-ext-400-normal-D8gbi3Gu.woff2)format("woff2"),url(/assets/fraunces-latin-ext-400-normal-UihxqfOe.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-400-normal-6IfK1voy.woff2)format("woff2"),url(/assets/fraunces-latin-400-normal-NUPT2cO8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f5f1e8;--paper-raised:#faf7f0;--ink:#2a2926;--ink-soft:#5e5a52;--ink-faint:#8f897d;--hairline:#2a292624;--water:#e3e8e4;--land:#e9e2d3;--neutral:#d9d6cf;--border:#2a292652;--coast:#2a29266b;--graticule:#2a29260f;--sand:#d6c6a4;--sage:#93ad94;--sage-deep:#5f7f63;--accent:#bf6f4f;--accent-deep:#9c5338;--start:#4f8fba;--end:#9a6fc4;--optimal:#5f9a68;--good:#a8c99a;--close:#e9b46e;--far:#dc8472;--font-ui:"Libre Franklin", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mark:"Fraunces", ui-serif, Georgia, serif;--radius:10px;--gutter:16px;--dock-max:560px;--app-height:100dvh;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--paper:#1d1c1a;--paper-raised:#252421;--ink:#ece6da;--ink-soft:#b9b2a5;--ink-faint:#858073;--hairline:#ece6da24;--water:#22282a;--land:#3a3631;--neutral:#2e2c29;--border:#ece6da47;--coast:#ece6da5c;--graticule:#ece6da0d;--sand:#7d6f55;--sage:#6f8d72;--sage-deep:#9fbea2;--accent:#c98063;--accent-deep:#e0a084;--start:#6aa5cc;--end:#b08ad6;--optimal:#5f9e68;--good:#52714f;--close:#b8874a;--far:#ac5f50;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{background:var(--paper);height:100%;color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font-weight:300}#root{height:100%}a{color:inherit}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{height:var(--app-height);flex-direction:column;display:flex;overflow:hidden}.vv-grow .app{transition:height .44s cubic-bezier(.45,0,.2,1)}@media (prefers-reduced-motion:reduce){.vv-grow .app{transition:none}}.nav{padding:max(12px, env(safe-area-inset-top)) var(--gutter) 10px;border-bottom:1px solid var(--hairline);background:var(--paper);flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex}.wordmark{white-space:nowrap;font-family:var(--font-mark);letter-spacing:-.01em;flex:none;font-size:21px;text-decoration:none}.nav nav{align-items:center;gap:clamp(9px,3vw,22px);font-size:15px;display:flex}@media (width<=399px){.wordmark{font-size:19px}.nav nav{gap:9px;font-size:14px}}@media (width<=379px){.nav{padding-left:12px;padding-right:12px}.wordmark{font-size:18px}.nav nav{gap:8px}.nav-icons{gap:5px}}.nav-icons{gap:6px;display:flex}.how-btn{border:1px solid var(--border);width:26px;height:26px;color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;font-size:14px;font-weight:500;line-height:1;display:grid}.how-btn:hover,.how-btn:active{background:var(--land);color:var(--ink)}.how{border:1px solid var(--hairline);background:var(--paper-raised);width:min(520px,100% - 24px);max-height:min(86dvh,760px);color:var(--ink);border-radius:18px;padding:0;box-shadow:0 18px 50px #2a29262e}.how::backdrop{background:#2a292647}.how[open]{animation:.22s cubic-bezier(.2,.7,.3,1) how-in}@keyframes how-in{0%{opacity:0;transform:translateY(8px)}}.how-body{padding:20px 22px 22px;font-size:15px;line-height:1.5}.how-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.how h2{font-family:var(--font-mark);margin:0;font-size:26px;font-weight:400}.how h3{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:18px 0 8px;font-size:12px;font-weight:500}.how-close{width:32px;height:32px;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:50%;font-size:24px;line-height:1}.how-close:hover{background:var(--land)}.how-lead{margin:0 0 10px;font-size:16px;font-weight:400}.swatch-word{color:#fff;border-radius:6px;padding:0 6px 1px;font-weight:500}.swatch-word.from{background:var(--start)}.swatch-word.to{background:var(--end)}.how-list,.how-hints,.how-scoring{margin:0;padding-left:20px}.how-list li,.how-hints li{margin-bottom:6px}.how-scoring{padding:0;list-style:none}.how-scoring li{align-items:baseline;gap:10px;margin-bottom:7px;display:flex}.how-scoring strong{font-weight:500}.swatch{border:1px solid #2a292633;border-radius:4px;flex:none;width:14px;height:14px;transform:translateY(2px)}.swatch.optimal{background:var(--optimal)}.swatch.good{background:var(--good)}.swatch.close{background:var(--close)}.swatch.far{background:var(--far)}.how-go{width:100%;margin-top:18px;padding:12px 16px;display:block}.link{color:var(--ink-soft);border-bottom:1px solid #0000;padding:6px 0;text-decoration:none}.link.active{color:var(--ink);border-bottom-color:var(--ink)}.link.disabled{color:var(--ink-faint);opacity:.55;cursor:default}.play,.learn{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.map,.globe{touch-action:none;-webkit-user-select:none;user-select:none;flex:1;min-height:0;position:relative}.map svg,.globe canvas{display:block;position:absolute;inset:0}.globe{background:var(--paper)}.water{fill:var(--water)}.neutral{fill:var(--neutral)}.c{fill:var(--land);cursor:default;transition:fill .24s}.c.endpoint.from{fill:var(--start)}.c.endpoint.to{fill:var(--end)}.c.optimal{fill:var(--optimal)}.c.good{fill:var(--good)}.c.close{fill:var(--close)}.c.far{fill:var(--far)}.c.guessed{transform-box:fill-box;transform-origin:50%;animation:.32s cubic-bezier(.2,.7,.3,1) both stamp}@keyframes stamp{0%{fill-opacity:.2;transform:scale(1.035)}to{fill-opacity:1;transform:scale(1)}}.coastline{fill:none;stroke:var(--coast);stroke-width:.8px;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}.borders{fill:none;opacity:0;stroke:var(--border);stroke-width:.7px;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none;transition:opacity .6s}.hint-outline{fill:none;stroke:var(--ink);stroke-opacity:.75;stroke-width:1.2px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;pointer-events:none}.latest-outline{fill:none;stroke:var(--ink);stroke-width:2px;stroke-opacity:.85;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none;animation:1.6s ease-out latest-pulse}@keyframes latest-pulse{0%{stroke-width:9px;stroke-opacity:0}30%{stroke-width:5px;stroke-opacity:.6}to{stroke-width:2px;stroke-opacity:.85}}.labels .mini-marker{fill:var(--tone);stroke:var(--paper);stroke-width:1.5px;pointer-events:none}.labels .latest-ring{fill:none;stroke:var(--ink);stroke-width:1.5px;pointer-events:none;transform-box:fill-box;transform-origin:50%;animation:1.6s ease-out both latest-ring}@keyframes latest-ring{0%{opacity:0;transform:scale(2.2)}40%{opacity:.8}to{opacity:0;transform:scale(1)}}.labels text.latest{font-size:13px;font-weight:500}.short-outline{fill:none;stroke:var(--ink);stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.short-line{fill:none;stroke:var(--ink);stroke-width:1.6px;stroke-dasharray:1 5;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}.labels text{font-family:var(--font-ui);fill:var(--ink);text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:var(--paper);stroke-width:3px;stroke-linejoin:round;font-size:12px;font-weight:400}.labels text.endpoint{font-size:13.5px;font-weight:500}.labels text.quiet{fill:var(--ink-soft);stroke-width:2.5px;pointer-events:none;font-size:11.5px}.labels text.quiet.small{letter-spacing:.01em;font-size:10px}.labels text.hint{font-size:14px;font-weight:500}.labels .endpoint-dot{fill:var(--end);stroke:var(--paper);stroke-width:1.5px;pointer-events:none}.labels .endpoint-dot.from{fill:var(--start)}.labels .hit{fill:#0000;cursor:pointer}.labels .hit.hint-target{fill:none;stroke:var(--ink);stroke-width:1px;stroke-dasharray:2 3;pointer-events:all}.borders.shown{opacity:1}@media (prefers-reduced-motion:reduce){.latest-outline,.labels .latest-ring,.borders,.c,.c.guessed{transition:none;animation:none}}.dock{width:100%;max-width:var(--dock-max);padding:12px var(--gutter) max(12px, env(safe-area-inset-bottom));background:var(--paper);flex:none;margin:0 auto}.play .dock,.learn .dock{z-index:2;border-top:1px solid var(--hairline);background:var(--paper-raised);border-radius:18px 18px 0 0;margin-top:-14px;padding-top:16px;position:relative;box-shadow:0 -6px 20px #2a29260d}@media (width<=719px){.play .dock{margin:0 auto;position:absolute;bottom:0;left:0;right:0}}@media (width>=720px){.play .dock,.learn .dock{border:1px solid var(--hairline);background:var(--paper-raised);border-radius:16px;width:calc(100% - 40px);margin-top:0;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #2a292614}}.dock-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.route{flex:1;align-items:center;min-width:0;margin:0;font-size:16px;font-weight:500;display:flex}.stop{align-items:center;gap:7px;min-width:0;display:inline-flex}.stop-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.stop:before{content:"";background:var(--end);border-radius:50%;flex:none;width:8px;height:8px}.stop.from:before{background:var(--start)}.route-line{border-top:1.5px dotted var(--ink-faint);flex:0 0 20px;margin:0 8px}.pill{border:1px solid var(--border);background:var(--paper-raised);color:var(--ink);cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:6px;padding:7px 13px 7px 11px;font-size:14px;font-weight:400;transition:background .15s,border-color .15s;display:inline-flex}.pill:hover,.pill:active{background:var(--land);border-color:var(--ink-faint)}.icon{flex:none;display:block}@media (width<=399px){.wide-only{display:none}}.pips-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.pips-left{color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.pips-left.low,.pips-left.last{color:var(--ink);border-radius:999px;padding:2px 9px;font-weight:500;transition:background .24s}.pips-left.low{background:color-mix(in srgb, var(--close) 35%, transparent)}.pips-left.last{background:color-mix(in srgb, var(--far) 38%, transparent)}.hint-card{border:1px solid var(--hairline);background:var(--paper);width:100%;color:var(--ink);text-align:left;cursor:pointer;border-radius:12px;align-items:center;gap:12px;margin:0 0 12px;padding:10px 14px 10px 12px;transition:background .15s,border-color .15s;display:flex}button.hint-card:hover,button.hint-card:active{background:var(--land);border-color:var(--border)}.hint-card .icon{color:var(--accent-deep)}.hint-card.done{cursor:default;background:0 0;border-style:dashed}.hint-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.hint-n{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:10px;font-size:12px;font-weight:500;display:flex}.hint-what{font-size:15px;font-weight:400;line-height:1.3}.hint-steps{flex:none;gap:4px;display:flex}.hint-steps i{background:var(--hairline);border-radius:2px;width:14px;height:3px}.hint-steps i.on{background:var(--accent)}.tap-initials .c{cursor:pointer}.pips{gap:6px;display:flex}.pip{border:1px solid var(--ink-faint);border-radius:50%;width:10px;height:10px;transition:background .2s}.pip.used{border-color:#2a292640}.pip.optimal{background:var(--optimal)}.pip.good{background:var(--good)}.pip.close{background:var(--close)}.pip.far{background:var(--far)}.guess{position:relative}.guess-row{gap:8px;display:flex}.guess input{min-width:0;font:inherit;border:1px solid var(--border);background:var(--paper);color:var(--ink);border-radius:12px;flex:1;padding:13px 14px;font-size:19px;font-weight:400}.guess input::placeholder{color:var(--ink-faint);font-weight:300}.guess input:focus{border-color:var(--ink);outline:none}.go{border:1px solid var(--ink);background:var(--ink);width:54px;color:var(--paper);cursor:pointer;border-radius:12px;flex:none;font-size:20px}.suggestions{background:var(--paper-raised);border:1px solid var(--hairline);border-radius:var(--radius);z-index:5;margin:0;padding:4px;list-style:none;position:absolute;bottom:calc(100% + 6px);left:0;right:0}.learn .suggestions{bottom:calc(100% + 6px)}.suggestions li{cursor:pointer;border-radius:7px;padding:11px 12px;font-size:17px;font-weight:400}.suggestions li.active,.suggestions li:active{background:var(--land)}.via{color:var(--ink-faint);font-size:14px;font-weight:300}.message{min-height:16px;color:var(--ink-soft);align-items:center;gap:7px;margin:6px 2px 0;font-size:13px;display:flex}.message.error{color:var(--accent-deep)}.message:not(.error):not(:empty):before{content:"";background:var(--tone);border-radius:50%;flex:none;width:9px;height:9px}.message.optimal{--tone:var(--optimal)}.message.good{--tone:var(--good)}.message.close{--tone:var(--close)}.message.far{--tone:var(--far)}.play.done .dock{max-height:56%;overflow-y:auto}.results-grab{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.grab-handle{background:var(--border);border-radius:2px;width:36px;height:4px;margin:-6px auto 8px;display:block}.results-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.results-title{min-width:0}.collapse-btn{border:1px solid var(--hairline);background:var(--paper);width:36px;height:36px;color:var(--ink-soft);cursor:pointer;border-radius:50%;flex:none;place-items:center;margin:-2px -6px 0 0;padding:0;display:grid}.collapse-btn:hover,.collapse-btn:active{background:var(--land);color:var(--ink)}.results.collapsed .actions{margin-bottom:0}.headline{font-family:var(--font-mark);letter-spacing:-.01em;margin:2px 0 4px;font-size:30px;font-weight:400}.route-compare{color:var(--ink-soft);margin:0 0 14px;font-size:15px}.dot{color:var(--ink-faint);padding:0 2px}.actions{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.btn{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;padding:10px 16px;font-size:15px;font-weight:400;text-decoration:none;display:inline-block}.btn.on{border-color:var(--ink)}.btn.primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}.bars{margin:0 0 18px}.bars figcaption{color:var(--ink-soft);margin-bottom:8px;font-size:13px}.bar-row{font-variant-numeric:tabular-nums;grid-template-columns:20px 1fr 28px;align-items:center;gap:8px;height:18px;font-size:12px;display:grid}.bar-label{color:var(--ink-faint);text-align:right}.bar-track{height:10px}.bar{background:var(--land);border-radius:2px;height:100%;display:block}.bar-row.hl .bar{background:var(--sage)}.bar-row.hl .bar-label,.bar-row.hl .bar-value{color:var(--ink);font-weight:500}.bar-value{color:var(--ink-soft)}.fine{color:var(--ink-soft);margin:0 0 6px;font-size:13px;line-height:1.5}.page{width:100%;max-width:var(--dock-max);padding:28px var(--gutter) 40px;flex:1;margin:0 auto;overflow-y:auto}.page-title{font-family:var(--font-mark);margin:0 0 20px;font-size:30px;font-weight:400}.learn-card h2{font-family:var(--font-mark);margin:0 0 4px;font-size:22px;font-weight:400}.learn-card{margin-bottom:12px}.headline.won{color:color-mix(in srgb, var(--optimal) 85%, var(--ink))}.headline.lost{color:color-mix(in srgb, var(--far) 78%, var(--ink))}.results.collapsed .results-collapse{display:none}.results-body{flex-direction:column;gap:18px;padding-bottom:4px;display:flex}.strip-label{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 6px;font-size:12px;font-weight:500}.route-strip .chips+.strip-label{margin-top:12px}.chips{flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chips.chain{gap:6px 16px}.chip.linked{position:relative}.chip.linked:before{content:"";border-top:1.5px dotted var(--ink-faint);width:12px;position:absolute;top:50%;left:-14px}.chip{border:1px solid var(--hairline);background:var(--paper);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 8px;font-size:13.5px;font-weight:400;display:inline-flex}.chip i{background:var(--tone,var(--land));border-radius:50%;flex:none;width:9px;height:9px}.chip.from{--tone:var(--start);font-weight:500}.chip.to{--tone:var(--end);font-weight:500}.chip.optimal{--tone:var(--optimal)}.chip.good{--tone:var(--good)}.chip.close{--tone:var(--close)}.chip.far{--tone:var(--far)}.chip.ghost{color:var(--ink-soft);border-style:dashed}.chip.ghost i{border:1.5px solid var(--ink-faint);background:0 0}.today-line{margin:0 0 10px;font-size:15px;font-weight:400}.today-tiles{grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;gap:8px;margin:0;display:grid}.today-tiles div{border:1px solid var(--hairline);background:var(--paper);border-radius:12px;flex-direction:column-reverse;justify-content:flex-end;gap:2px;padding:10px 12px;display:flex}.today-tiles dt{color:var(--ink-soft);font-size:12px}.today-tiles dd{font-family:var(--font-mark);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin:0;font-size:22px;line-height:1.15;display:flex}.today-sub{font-family:var(--font-ui);color:var(--ink-faint);font-size:12px}.today-verdict{color:var(--ink-soft);margin:10px 0 0;font-size:14px}.share-row{flex-direction:column;gap:8px;display:flex}.share-preview{border:1px dashed var(--border);background:var(--paper);border-radius:12px;padding:12px 14px}.share-head{color:var(--ink-soft);margin:0 0 8px;font-size:13px}.share-tiles{flex-wrap:wrap;gap:4px;margin:0;display:flex}.share-tile{background:var(--tone);border-radius:4px;width:16px;height:16px}.countdown{font-variant-numeric:tabular-nums}.page.stats{max-width:980px;padding-top:22px}.stats-header{margin-bottom:16px}.stats-header .page-title{margin:0 0 2px}.summary{border:1px solid var(--hairline);background:var(--paper-raised);border-radius:16px;grid-template-columns:repeat(4,1fr);margin:0 0 16px;display:grid;overflow:hidden}.summary div{text-align:center;flex-direction:column;align-items:center;gap:2px;padding:14px 6px 12px;display:flex}.summary div+div{border-left:1px solid var(--hairline)}.summary dd{font-family:var(--font-mark);font-variant-numeric:tabular-nums;margin:0;font-size:30px;line-height:1.1}.summary dt{color:var(--ink-soft);font-size:12px;line-height:1.25}.summary .accent{background:color-mix(in srgb, var(--optimal) 14%, var(--paper-raised))}.cards{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}@media (width>=820px){.cards{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.card.wide{grid-column:1/-1}}.card{border:1px solid var(--hairline);background:var(--paper-raised);border-radius:16px;padding:16px 16px 18px;box-shadow:0 1px 2px #2a29260a}.card-head{border-bottom:1px solid var(--hairline);margin-bottom:14px;padding-bottom:12px}.card-head h2{font-family:var(--font-mark);letter-spacing:-.005em;margin:0;font-size:20px;font-weight:400}.card-head p{color:var(--ink-soft);margin:2px 0 0;font-size:13px}.stat-lead{margin:0 0 12px;font-size:15px;line-height:1.45}.stat-lead strong{font-weight:500}.stats-foot{text-align:center;margin-top:18px}.atlas-count{align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.atlas-big{font-family:var(--font-mark);font-size:34px;line-height:1}.atlas-of{color:var(--ink-faint);font-size:18px}.atlas-label{color:var(--ink-soft);font-size:14px}.progress{background:var(--land);border-radius:3px;height:6px;margin-bottom:14px;overflow:hidden}.progress span{background:var(--optimal);border-radius:3px;height:100%;display:block}.atlas{border-radius:10px;width:100%;height:auto;display:block}.atlas-sphere{fill:var(--water);stroke:var(--border);stroke-width:.6px}.atlas-neutral{fill:var(--neutral)}.atlas-c{fill:var(--land);cursor:pointer;transition:fill .16s}.atlas-c.visited{fill:var(--optimal)}.atlas-c.selected{fill:var(--start)}.atlas-borders,.atlas-coast{fill:none;pointer-events:none;stroke-linejoin:round}.atlas-borders{stroke:var(--border);stroke-width:.4px}.atlas-coast{stroke:var(--coast);stroke-width:.6px}.atlas-note{min-height:20px;margin:10px 0 0}.calendar{grid-template-rows:repeat(7,auto);grid-template-columns:16px repeat(8,minmax(0,1fr));grid-auto-flow:column;align-items:center;gap:5px;display:grid}.cal-day-name{color:var(--ink-faint);text-align:center;font-size:10px}.cal{aspect-ratio:1;border:1px solid var(--hairline);background:var(--paper);border-radius:6px;justify-self:center;width:100%;max-width:34px;display:block}.cal.perfect{background:var(--optimal);border-color:#0000}.cal.over{background:var(--good);border-color:#0000}.cal.failed{background:var(--far);border-color:#0000}.cal.future{opacity:.45;background:0 0;border-style:dashed}.cal.today{outline:1.5px solid var(--ink);outline-offset:1px}.cal-legend{color:var(--ink-soft);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin:14px 0 0;padding:0;font-size:12px;list-style:none;display:grid}.cal-legend li{align-items:center;gap:7px;display:flex}.cal-legend .cal{border-radius:3px;flex:none;justify-self:auto;width:12px;height:12px}.card .bars{margin-bottom:12px}.note-pill{background:var(--land);color:var(--ink-soft);border-radius:999px;margin:0;padding:4px 10px;font-size:12px;display:inline-block}.regions{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.region-row{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:5px;font-size:15px;display:flex}.regions li.strongest .region-name{font-weight:500}.regions li.strongest .region-name:after{content:"strongest";background:var(--optimal);color:#fff;vertical-align:2px;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:500}.region-meta{color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.meter{background:var(--land);border-radius:3px;height:6px;display:block;overflow:hidden}.meter span{background:var(--good);border-radius:3px;height:100%;display:block}.regions li.strongest .meter span{background:var(--optimal)}.bests{flex-direction:column;gap:8px;margin:0;display:flex}.best{background:var(--paper);border:1px solid var(--hairline);border-radius:12px;padding:10px 12px}.best dt{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:3px;font-size:11px;font-weight:500}.best dd{flex-direction:column;gap:1px;margin:0;display:flex}.best-route{font-size:16px;font-weight:400}.best-route .arrow{color:var(--ink-faint)}.best-meta{color:var(--ink-faint);font-size:12.5px}.best-empty{color:var(--ink-faint);font-size:14px}.result-tiles{grid-template-columns:repeat(2,1fr);gap:8px;margin:0;display:grid}@media (width>=520px){.result-tiles{grid-template-columns:repeat(4,1fr)}}.result-tiles div{border:1px solid var(--hairline);background:var(--paper);border-radius:12px;flex-direction:column-reverse;align-items:flex-start;padding:10px 12px;display:flex}.result-tiles dd{font-family:var(--font-mark);font-variant-numeric:tabular-nums;margin:0;font-size:28px;line-height:1.1}.result-tiles dt{color:var(--ink-soft);font-size:12px}.result-tiles .accent{background:color-mix(in srgb, var(--optimal) 16%, var(--paper));border-color:#0000}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.section-head .strip-label{margin:0}.tally{color:var(--ink-soft);flex-wrap:wrap;justify-content:flex-end;gap:4px 10px;margin:0;font-size:12px;display:flex}.tally-item{align-items:center;gap:5px;display:inline-flex}.tally-item i{background:var(--tone);border-radius:50%;width:8px;height:8px}.optimal{--tone:var(--optimal)}.good{--tone:var(--good)}.close{--tone:var(--close)}.far{--tone:var(--far)}.guesses{border:1px solid var(--hairline);background:var(--paper);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.guess-item{border-left:4px solid var(--tone);grid-template-columns:22px 1fr auto;align-items:center;gap:10px;padding:8px 12px;font-size:15px;display:grid}.guess-item+.guess-item{border-top:1px solid var(--hairline)}.guess-n{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:12px}.guess-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.guess-tag{color:var(--ink);background:color-mix(in srgb, var(--tone) 30%, transparent);border-radius:999px;padding:2px 8px;font-size:12px}
