:root{color-scheme:light;--pad: #f1e9de;--card: #fffdf9;--card-hover: #ffffff;--desk: #7f92ab;--ink: #1f2a3d;--ink-soft: #4d5870;--line: #485b7a;--accent: #485b7a;--band-bg: #485b7a;--band-fg: #f1e9de;--band-note: #dce3ec;--primary-bg: #485b7a;--primary-fg: #f1e9de;--rule: #e2d8c9;--margin: #b4c0d1;--red-pen: #b3261e;--graphite: #4a4e57;--size-0: #4a4e57;--size-1: #2b5bae;--size-2: #2a7448;--size-3: #7a3e9e;--size-4: #b0500a;--size-5: #0b7285;--size-6: #b82e74;--size-7: #6b6710;--pad-shadow: 0 18px 44px rgb(24 34 54 / .4);--hand: "Kalam", "Gaegu", "Bradley Hand", cursive;--type: "Lexend", system-ui, -apple-system, "PingFang TC", "Apple SD Gothic Neo", "Noto Sans TC", "Noto Sans KR", sans-serif;--gutter-left: 46px;--gutter-right: 16px}:root[data-theme=dark]{color-scheme:dark;--pad: #1b2433;--card: #263245;--card-hover: #2e3c53;--desk: #0e131b;--ink: #f1e9de;--ink-soft: #b7c1d0;--line: #8fa3bf;--accent: #9db1cc;--band-bg: #26334a;--band-fg: #f1e9de;--band-note: #b7c1d0;--primary-bg: #9db1cc;--primary-fg: #141c29;--rule: #232e40;--margin: #35455e;--red-pen: #ff8a80;--graphite: #c6ccd6;--size-0: #c6ccd6;--size-1: #8fb8f5;--size-2: #86d0a0;--size-3: #cba2ec;--size-4: #f2a65a;--size-5: #5cc8d6;--size-6: #f291bd;--size-7: #cfc866;--pad-shadow: 0 18px 44px rgb(0 0 0 / .6)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--desk);color:var(--ink);font-family:var(--type);font-size:17px;line-height:1.5}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media(max-width:559px){body{background:var(--pad)}}#app{display:flex;flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;background:var(--pad)}.band{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px 6px var(--gutter-left);background:var(--band-bg);border-bottom:3px dashed var(--pad)}.band-right{display:flex;align-items:center;gap:4px;min-width:0}.theme-toggle{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;background:none;border:0;border-radius:50%;color:var(--band-fg)}.theme-toggle:hover{background:#ffffff1f}.theme-toggle svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.wordmark{display:inline-flex;align-items:center;min-height:48px;color:var(--band-fg);font-family:Kalam,Bradley Hand,cursive;font-size:30px;font-weight:700;line-height:1;text-decoration:none}.wordmark:focus-visible,.theme-toggle:focus-visible{outline-color:var(--band-fg)}.band-note{overflow:hidden;color:var(--band-note);text-overflow:ellipsis;white-space:nowrap;font-family:var(--hand);font-size:19px}.page{flex:1;min-height:calc(100dvh - 63px);padding:32px var(--gutter-right) 48px var(--gutter-left);background-image:linear-gradient(90deg,transparent 32px,var(--margin) 32px 34px,transparent 34px),repeating-linear-gradient(180deg,transparent 0 31px,var(--rule) 31px 32px)}.label{color:var(--ink-soft);font-family:var(--hand);font-size:20px;line-height:1.2}.tagline{margin:0 0 8px;font-size:28px;font-weight:700;line-height:34px;letter-spacing:-.01em;text-wrap:pretty}.rule{margin:0;color:var(--ink-soft)}.demo{display:flex;align-items:flex-start;gap:8px;margin:24px 0 8px}.demo-target{display:flex;flex-direction:column;align-items:center;flex:none}.demo-target .target-badge{width:96px;height:auto}.demo-board{flex:1;min-width:0}.demo-board .board{width:min(100%,216px);margin:0;cursor:default}.demo-count{display:flex;align-items:center;gap:10px;min-height:32px;margin:6px 0 0;color:var(--accent);font-family:var(--hand);font-size:20px;font-weight:700}.demo-count .tally line{stroke:var(--accent)}.section{margin:32px 0 8px;font-family:var(--hand);font-size:24px;line-height:1.2}.levels{display:grid;gap:8px}.level-btn{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:8px 16px;background:var(--card);border:1.5px solid var(--line);border-radius:6px;box-shadow:0 1px #1f2a3d14;text-align:left;transition:background-color .12s ease-out}.level-btn:hover{background:var(--card-hover)}.level-btn:active,.level-btn[aria-busy=true]{background:var(--pad)}.level-name{font-size:20px;font-weight:700}.level-note{color:var(--ink-soft);font-size:16px}.topline{display:flex;align-items:flex-start;justify-content:space-between}.target,.timer{display:flex;flex-direction:column}.timer{align-items:flex-end}.target-badge{display:block;width:100px;height:70px;margin-left:-8px}.target-badge .loop{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.target-badge text{fill:var(--ink);font-family:var(--type);font-size:40px;font-weight:700;text-anchor:middle;dominant-baseline:central}.time{font-size:30px;font-weight:700;font-variant-numeric:tabular-nums;line-height:70px}.board{display:block;width:min(100%,calc(var(--cols) * 76px));height:auto;margin:4px auto 12px;border-radius:6px;cursor:crosshair;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.board.is-locked{cursor:default;touch-action:auto}.cell{fill:var(--card);stroke:var(--line);stroke-width:2}.gap{stroke:none}.gap-hatch{stroke:var(--line);stroke-width:2.5;opacity:.6}.num{fill:var(--ink);font-family:var(--type);font-size:30px;font-weight:700;text-anchor:middle;dominant-baseline:central;pointer-events:none}.num-small{font-size:23px}.mark{fill:currentColor;fill-opacity:.08;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.size-0{color:var(--size-0)}.size-1{color:var(--size-1)}.size-2{color:var(--size-2)}.size-3{color:var(--size-3)}.size-4{color:var(--size-4)}.size-5{color:var(--size-5)}.size-6{color:var(--size-6)}.size-7{color:var(--size-7)}.preview{fill:var(--graphite);fill-opacity:.16;stroke:var(--graphite);stroke-width:2.5;stroke-dasharray:7 6;pointer-events:none}.preview.is-bad,.kb-cursor.is-bad{fill:var(--red-pen);stroke:var(--red-pen)}.kb-cursor{display:none;fill:var(--ink);fill-opacity:.1;stroke:var(--ink);stroke-width:3;stroke-dasharray:3 6;stroke-linecap:round;pointer-events:none}.board:focus-visible .kb-cursor{display:block}.rv{opacity:0;pointer-events:none;transition:opacity .2s ease-out}.rv.is-seen{opacity:.7}.rv.is-on{opacity:1}.reveal.has-on .rv.is-seen:not(.is-on){opacity:.22}.rv.is-on .rv-line{stroke-width:5}.rv-line{fill:none;stroke:currentColor;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}.rv.is-on .rv-line[pathLength]{stroke-dasharray:1;animation:draw .42s ease-out both}.rv-fill{fill:currentColor;opacity:0}.rv.is-on .rv-fill{opacity:.24}.rv-wrong{color:var(--graphite)}.rv-wrong .rv-line{stroke-dasharray:8 7}.rv-tick{fill:none;stroke:currentColor;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;opacity:0}.rv.is-on .rv-tick{opacity:1}@keyframes draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}.helper{margin:16px 0 0;color:var(--ink-soft);font-size:15px;line-height:1.4}.marked-row{display:flex;align-items:center;gap:10px;min-height:32px}.tally{flex:0 1 auto;min-width:0;max-width:100%;height:auto}.tally line{stroke:var(--graphite);stroke-width:2.6;stroke-linecap:round}.marked-n{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.marks-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.marks-row .marked-row{flex:1;min-width:0}.marks-row .tools{flex:none}.legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;min-height:26px;font-size:14px}.legend-label{color:var(--ink-soft)}.chip{display:inline-flex;align-items:center;gap:5px;font-weight:700;font-variant-numeric:tabular-nums}.swatch{width:15px;height:15px;background:color-mix(in srgb,currentColor 22%,transparent);border:3px solid currentColor;border-radius:4px}.answer-row{display:grid;grid-template-columns:1fr 56px auto;gap:8px;margin-top:6px}.entry-box{display:flex;align-items:center;justify-content:center;min-width:0;font:inherit;color:inherit;min-height:56px;padding:0 14px;background:var(--card);border:2px solid var(--line);border-radius:6px}.entry{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.entry.is-empty{color:var(--ink-soft);font-family:var(--hand);font-size:19px;font-weight:400;white-space:nowrap}.entry-box[aria-expanded=true]{background:var(--card-hover);box-shadow:inset 0 0 0 2px var(--line)}.keypad{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:8px}.key{min-height:48px;padding:0;background:var(--card);border:2px solid var(--line);border-radius:6px;font-size:22px;font-weight:700;line-height:1;transition:transform .1s ease-out}.key:hover:not(:disabled){background:var(--card-hover)}.key:active:not(:disabled){transform:scale(.94);background:var(--pad)}.key:disabled{opacity:.4}.shake{animation:shake .32s ease-out}@keyframes shake{20%{transform:translate(-6px)}50%{transform:translate(5px)}80%{transform:translate(-3px)}}.primary{min-height:56px;padding:0 20px;background:var(--primary-bg);color:var(--primary-fg);border:2px solid var(--primary-bg);border-radius:6px;font-size:19px;font-weight:700;transition:transform .12s ease-out}.primary:active:not(:disabled){transform:scale(.97)}.primary:disabled{opacity:.45}.ghost{min-height:44px;padding:0 8px;background:none;border:0;color:var(--accent);font-size:16px;font-weight:700;text-decoration:underline 2px;text-underline-offset:5px}.ghost:hover:not(:disabled){color:var(--ink)}.ghost:disabled{opacity:.4;text-decoration:none}.ghost.round{flex:none;width:48px;height:48px;padding:0 0 4px;border:2px solid var(--line);border-radius:50%;color:var(--ink);font-size:28px;line-height:1;text-decoration:none}.note{min-height:26px;margin:4px 0 0;color:var(--red-pen);font-weight:700}.guesses{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:16px}.dots{display:inline-flex;gap:5px}.dot{width:14px;height:14px;background:var(--ink);border:2px solid var(--ink);border-radius:50%}.dot.is-used{background:transparent;border-color:var(--red-pen)}.tried{color:var(--red-pen);font-weight:700;text-decoration-thickness:2px}.tools{display:flex;gap:8px}.result-title{margin:4px 0 2px;font-size:25px;font-weight:700;line-height:1.2}.result-title:focus{outline:none}.result-time{margin:0 0 6px;color:var(--ink-soft)}.result .tally line{stroke:var(--accent)}.pager{display:flex;align-items:center;gap:10px;margin:10px 0 16px}.pager-caption{flex:1;min-height:48px;margin:0;display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1.3;text-align:center}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.result-actions .primary{grid-column:1 / -1}@media(min-width:560px){#app{min-height:calc(100dvh - 56px);margin:28px auto;border-radius:4px 4px 12px 12px;box-shadow:var(--pad-shadow);overflow:hidden}:root{--gutter-left: 54px;--gutter-right: 24px}.page{min-height:calc(100dvh - 119px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.notice{margin:16px 0;color:var(--ink-soft)}.stack{display:grid;gap:12px;margin-top:24px}.section-note{margin:-6px 0 12px;color:var(--ink-soft);font-size:15px;line-height:1.4}.rank-line{margin:0 0 6px;font-weight:700}.rank-note{color:var(--ink-soft);font-weight:400}.ghost.wide{grid-column:1 / -1}.fastest{margin-top:24px}.fastest-title{margin:0 0 8px;font-family:var(--hand);font-size:22px;line-height:1.2}.fastest-body{min-height:32px}.fastest-empty{margin:0;color:var(--ink-soft)}.fastest-list{display:grid;gap:4px;margin:0;padding:0;list-style:none}.fastest-list li{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;min-height:36px;padding:0 10px;background:var(--card);border-radius:8px;font-variant-numeric:tabular-nums}.fastest-list li.is-me{box-shadow:inset 0 0 0 2px var(--line);font-weight:700}.fastest-rank{color:var(--ink-soft)}.fastest-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-box{display:grid;gap:8px;margin:4px 0 10px}.rank-box .rank-line{margin:0}.account>p{margin:0 0 12px}.account-claim{font-weight:700}.google-slot{min-height:44px;margin:8px 0 4px}.google-slot,.google-slot iframe{color-scheme:light}.field{display:grid;gap:6px}.field-label{font-weight:700}.field-input{min-height:52px;padding:0 14px;background:var(--card);color:var(--ink);border:2px solid var(--line);border-radius:6px;font:inherit;font-size:18px}.field .helper{margin:0}.field-error{min-height:24px;margin:0;color:var(--red-pen);font-weight:700}.field .stack{margin-top:8px}.account-name{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.account-username{min-width:0;overflow:hidden;font-size:26px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.stats{display:block;margin:0}.stat{display:flex;align-items:baseline;justify-content:space-between;gap:16px;height:32px}.stat dt{color:var(--ink-soft);font-size:15px;line-height:32px}.stat dd{margin:0;font-size:20px;font-weight:700;line-height:32px;font-variant-numeric:tabular-nums}.ghost.danger{color:var(--red-pen)}.primary.danger{background:var(--red-pen);border-color:var(--red-pen);color:var(--card)}.confirm{margin-top:16px;padding:14px;border:2px solid var(--red-pen);border-radius:6px}.confirm p{margin:0}.confirm .stack{margin-top:12px}.legal{margin:24px 0 0;font-size:15px}.legal p{margin:0 0 6px}.langs span[aria-current]{font-weight:700}.legal a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;color:var(--accent);font-weight:700}:lang(ko){word-break:keep-all;overflow-wrap:break-word}.num-tiny{font-size:18px}.num-frac{font-size:19px}.frac-bar{stroke:var(--ink);stroke-width:2;stroke-linecap:round}.target-badge text.is-long{font-size:30px}@media(max-width:559px){.board.is-wide{width:calc(100% + var(--gutter-left) - 30px);max-width:none;margin-left:calc(38px - var(--gutter-left))}}.advice{display:grid;gap:8px;margin:6px 0 12px;padding:12px 14px;background:var(--card);border:2px dashed var(--line);border-radius:6px}.advice p{margin:0;font-weight:700}.ad{margin:28px 0 0;min-height:0}ins.adsbygoogle[data-ad-status=unfilled]{display:none!important}.ad:has(ins[data-ad-status=unfilled]){margin:0}.ad:has(ins[data-ad-status=filled]){min-height:120px}.ad-label{display:block;margin-bottom:4px;color:var(--ink-soft);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.ad:not(:has(ins[data-ad-status=filled])) .ad-label{display:none}.league,.league .stats{margin-top:16px}.league-rank{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:16px;margin:0 0 8px}.league-rank .rank-seal{grid-row:span 3;width:72px;height:72px}.rank-seal path{fill:none;stroke:var(--rank-colour, var(--ink-soft));stroke-width:3;stroke-linecap:round}.rank-seal text{fill:var(--rank-colour, var(--ink-soft));font-family:var(--type);font-size:30px;font-weight:700}.league-rank-label{color:var(--ink-soft);font-size:13px}.league-rank-name{font-size:26px;font-weight:700;line-height:32px}.league-rating{color:var(--ink-soft);font-size:15px;font-variant-numeric:tabular-nums}.rank-0{--rank-colour: #815428}.rank-1{--rank-colour: #555e67}.rank-2{--rank-colour: #735a0b}.rank-3{--rank-colour: #246663}.rank-4{--rank-colour: #2f59ab}.rank-5{--rank-colour: #7341b5}:root[data-theme=dark] .rank-0{--rank-colour: #d9a36f}:root[data-theme=dark] .rank-1{--rank-colour: #c3cbd4}:root[data-theme=dark] .rank-2{--rank-colour: #e6c55a}:root[data-theme=dark] .rank-3{--rank-colour: #72cfc9}:root[data-theme=dark] .rank-4{--rank-colour: #8fb3f5}:root[data-theme=dark] .rank-5{--rank-colour: #c3a0f0}.league-list li.is-up .zone-mark{color:var(--size-2)}.league-list li.is-down .zone-mark{color:var(--red-pen)}.points-line{margin:8px 0 0}.league .fastest .helper{margin:0 0 10px}:lang(zh-TW),:lang(ko){--hand: var(--type)}:lang(zh-TW) .label,:lang(ko) .label,:lang(zh-TW) .section,:lang(ko) .section,:lang(zh-TW) .fastest-title,:lang(ko) .fastest-title{font-weight:700}.stats-empty{margin:0;color:var(--ink-soft);line-height:32px}.share-rank{margin:0 0 8px -8px}.signin-card{display:grid;gap:8px;margin:16px 0;padding:16px;background:var(--card);border:1.5px solid var(--line);border-radius:6px}.signin-title{margin:0;font-size:20px;font-weight:700;line-height:28px}.signin-body,.signin-carry{margin:0;color:var(--ink-soft);font-size:15px;line-height:22px}.signin-card .google-slot{margin:4px 0 0}.signin-later{justify-self:start;margin-left:-8px}.signin-card .field-error:empty{display:none}
