:root{--bg: #f4f3ee;--bgimg: var(--hanji-app);--sheet-bg: #fdfdfb;--paperimg: var(--hanji-sheet);--wood: #c6baa0;--wood-2: #b4a78c;--recess: #5f5745;--ink: #221e16;--ink-2: #5b5449;--ink-3: #8b8478;--line: #dad6c9;--accent: #b03a29;--accent-on: #fdf3ec;--gold: #9a7420;--chip: rgba(255, 255, 255, .78);--chip-line: rgba(120, 110, 80, .16);--key: #efebde;--key-down: #dfdaca;--hit: #3c7a4e;--hit-on: #f4f8f2;--move: #d9a82b;--move-on: #2a2004;--miss: #bdb6a6;--miss-on: #514a3c;--t: 34px;--s: 34px;--fd: "Gowun Batang", "Apple SD Gothic Neo", serif;--fb: "Gothic A1", "Apple SD Gothic Neo", system-ui, sans-serif;--fh: "Black Han Sans", "Apple SD Gothic Neo", sans-serif;--fm: "IBM Plex Mono", Menlo, monospace}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #211f19;--bgimg: var(--hanji-app);--sheet-bg: #2e2b24;--paperimg: var(--hanji-sheet);--wood: #655c4b;--wood-2: #544c3e;--recess: #2c2820;--ink: #f0ede4;--ink-2: #b5ae9f;--ink-3: #9a9383;--line: #4a453b;--accent: #dd7460;--accent-on: #2a120c;--gold: #cfa84e;--chip: rgba(255, 255, 255, .07);--chip-line: rgba(255, 245, 215, .13);--key: #453f35;--key-down: #544d41;--hit: #62a275;--hit-on: #0f1b10;--move: #d2a128;--move-on: #241b03;--miss: #5a5449;--miss-on: #d4cdbd}}:root[data-theme=dark]{--bg: #211f19;--bgimg: var(--hanji-app);--sheet-bg: #2e2b24;--paperimg: var(--hanji-sheet);--wood: #655c4b;--wood-2: #544c3e;--recess: #2c2820;--ink: #f0ede4;--ink-2: #b5ae9f;--ink-3: #9a9383;--line: #4a453b;--accent: #dd7460;--accent-on: #2a120c;--gold: #cfa84e;--chip: rgba(255, 255, 255, .07);--chip-line: rgba(255, 245, 215, .13);--key: #453f35;--key-down: #544d41;--hit: #62a275;--hit-on: #0f1b10;--move: #d2a128;--move-on: #241b03;--miss: #5a5449;--miss-on: #d4cdbd}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--fb);min-height:100vh;background-color:var(--bg);background-image:var(--bgimg);background-size:cover;background-position:center;background-attachment:fixed;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}.scr{max-width:460px;margin:0 auto;padding:14px 13px 18px;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.scr[hidden]{display:none}.slot{width:var(--s);height:var(--s);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;font-family:var(--fh);font-size:calc(var(--s) * .58);line-height:1;color:transparent;border-radius:3px;background:var(--recess);background:linear-gradient(180deg,color-mix(in srgb,var(--recess) 74%,#000) 0%,var(--recess) 60%,color-mix(in srgb,var(--recess) 86%,#fff) 100%);box-shadow:inset 0 4px 6px #00000080,inset 3px 0 5px #0000004d,inset -2px 0 4px #00000038,inset 0 -1px #ffffff29}.slot.type{color:#c4b069;background:radial-gradient(70% 60% at 30% 22%,rgba(228,211,148,.16),transparent 75%),linear-gradient(150deg,#a2914f,#8e7d3d 52%,#7b6b31);box-shadow:inset 0 1px #f7ecba42,inset 0 -1px #1c160842,0 1px 3px #0006;text-shadow:0 -1px 0 rgba(250,240,198,.5),0 1px 0 rgba(26,20,7,.55)}.slot.type:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:var(--metal);background-size:120px;opacity:.34;mix-blend-mode:overlay}@keyframes seat{0%{transform:translateY(-6px);opacity:.3}to{transform:translateY(0);opacity:1}}.hud{display:flex;gap:6px;align-items:center}.badge{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:50px;height:40px;padding:0 9px;border-radius:12px;background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line)}.bk{font-family:var(--fm);font-size:8px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);line-height:1.3}.bv{font-family:var(--fh);font-size:16px;color:var(--ink);line-height:1.15;font-variant-numeric:tabular-nums}.badge.low .bv,.badge.final .bk,.badge.final .bv{color:var(--accent)}h1,h2{margin:0;font:inherit}[tabindex="-1"]:focus{outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pop{position:fixed;inset:0;background:#1e1a106b;z-index:20;display:flex;align-items:flex-end;justify-content:center}.pop[hidden]{display:none}.card{width:100%;max-width:460px;padding:24px 22px 22px;border-radius:20px 20px 0 0;background-color:var(--sheet-bg);background-image:var(--paperimg);background-size:cover;animation:up .26s cubic-bezier(.2,.7,.3,1);max-height:88vh;overflow-y:auto}@keyframes up{0%{transform:translateY(100%)}to{transform:none}}.chead{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding-bottom:10px;border-bottom:2px solid var(--ink)}.ck{font-family:var(--fb);font-size:12px;font-weight:700;color:var(--accent)}.cw{font-family:var(--fh);font-size:34px;line-height:1;letter-spacing:.05em;margin-top:5px}.rec{padding:2px 0}.rrow{display:flex;align-items:baseline;gap:9px;padding:8px 0}.rrow+.rrow{border-top:1px solid rgba(0,0,0,.05)}.rrow span{flex:0 0 auto;font-size:12.5px;color:var(--ink-2)}.rrow i{flex:1 1 auto;height:0;border-bottom:1px dotted var(--line);transform:translateY(-3px)}.rrow b{flex:0 0 auto;font-family:var(--fh);font-size:16px;color:var(--ink)}.rrow[hidden]{display:none}.shbox{margin-top:14px;padding:14px;border-radius:10px;background:#0000000a;font-family:var(--fm);font-size:12px;line-height:1.55;white-space:pre;overflow-x:auto;color:var(--ink)}.shbox[hidden]{display:none}.cbtn{display:flex;gap:9px;margin-top:16px}.cbtn button{height:48px;border:none;border-radius:10px;cursor:pointer;font-family:var(--fb);font-size:14.5px;font-weight:700}.cbtn .pri{flex:2.4;background:var(--ink);color:var(--sheet-bg)}.cbtn .alt{flex:1;background:transparent;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line)}.cbtn .alt[hidden]{display:none}.srow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0}.srow+.srow{border-top:1px solid rgba(0,0,0,.06)}.srow .st{font-size:14px;font-weight:600}.srow .ss{font-size:11.5px;color:var(--ink-2);margin-top:2px}.srow .sbtn{flex:none;padding:7px 14px;border:none;border-radius:10px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;background:transparent;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line)}.tgl{width:48px;height:28px;border-radius:99px;border:none;cursor:pointer;position:relative;background:var(--miss);transition:background .18s ease;flex:0 0 auto}.tgl.on{background:var(--hit)}.tgl:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .18s cubic-bezier(.3,.9,.4,1)}.tgl.on:after{transform:translate(20px)}.legal{margin-top:14px;padding-top:14px;border-top:1px solid rgba(0,0,0,.06);font-size:11.5px;color:var(--ink-2);line-height:1.7}.legal b{color:var(--ink-2);font-weight:600}.stats4{display:flex;gap:1px;background:var(--line);border-radius:10px;overflow:hidden;margin-bottom:16px}.stats4 div{flex:1;background:var(--sheet-bg);padding:13px 4px;text-align:center}.stats4 .v{font-family:var(--fh);font-size:21px;line-height:1}.stats4 .l{font-family:var(--fm);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-top:5px}.distr{display:flex;flex-direction:column;gap:5px}.dr{display:flex;align-items:center;gap:8px;font-family:var(--fm);font-size:11px}.dr .n{width:12px;color:var(--ink-2)}.dr .bar{height:20px;border-radius:4px;background:var(--miss);min-width:22px;display:flex;align-items:center;justify-content:flex-end;padding:0 6px;color:var(--ink);font-weight:600}.dr .bar.best{background:var(--hit);color:var(--hit-on)}.dr.fail{margin-top:7px;padding-top:7px;border-top:1px solid rgba(0,0,0,.07)}.dr.fail .n{color:var(--accent);font-weight:600}.dr.fail .bar{background:var(--accent);color:var(--accent-on)}.qbox{display:flex;align-items:center;gap:14px;padding:16px;border-radius:12px;background:#0000000a;margin-bottom:14px}.qbox .qi{width:46px;height:46px;flex:0 0 auto;border-radius:6px;background:radial-gradient(70% 60% at 30% 22%,rgba(228,211,148,.16),transparent 75%),linear-gradient(150deg,#a2914f,#8e7d3d 52%,#7b6b31);color:#c4b069;box-shadow:inset 0 1px #f7ecba42,inset 0 -1px #1c160842;text-shadow:0 -1px 0 rgba(250,240,198,.42),0 1px 0 rgba(26,20,7,.5);display:flex;align-items:center;justify-content:center;font-family:var(--fh);font-size:24px}.qbox.done .qi{background:var(--hit);color:var(--hit-on)}.qbox .qt{flex:1}.qbox .qt b{display:block;font-size:14.5px;font-weight:700}.qbox .qt span{display:block;font-size:11.5px;color:var(--ink-2);margin-top:2px}.qprog{font-family:var(--fh);font-size:17px;color:var(--ink-2)}.qbox.done .qprog,button{color:var(--ink)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#splash{align-items:center;justify-content:center;gap:0}.logo{display:flex;flex-direction:column;align-items:center;gap:22px;animation:logoin .5s cubic-bezier(.2,.7,.3,1)}@keyframes logoin{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.stick{padding:11px;display:flex;flex-direction:column;gap:4px;border-radius:12px;background:linear-gradient(100deg,var(--wood) 0%,var(--wood-2) 100%);box-shadow:inset 0 1px #ffffff4d,inset 0 -2px 4px #00000029,0 4px 14px #5a46233d}.stick .slot{width:48px;height:48px;font-size:27px}.stick .slot:nth-child(1){animation:seat .3s ease-out .05s backwards}.stick .slot:nth-child(2){animation:seat .3s ease-out .15s backwards}.stick .slot:nth-child(3){animation:seat .3s ease-out .25s backwards}.stick .slot:nth-child(4){animation:seat .3s ease-out .35s backwards}.wordmark{font-family:var(--fd);font-size:34px;font-weight:700;letter-spacing:.04em}.tagline{font-size:12.5px;color:var(--ink-2);margin-top:-14px}.loadbar{width:120px;height:2px;background:var(--line);border-radius:2px;overflow:hidden;margin-top:8px}.loadbar i{display:block;height:100%;width:0;background:var(--accent);animation:loadfill 1.1s ease-out forwards}@keyframes loadfill{to{width:100%}}#lobby{gap:14px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.acct{display:flex;align-items:center;gap:7px;height:36px;padding:0 12px 0 10px;border:none;border-radius:99px;cursor:pointer;background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line);color:var(--ink-2);font-family:var(--fb);font-size:12px;font-weight:600}.acct svg{width:17px;height:17px;flex:0 0 auto}.inkpill{display:flex;align-items:center;gap:7px;height:36px;padding:0 5px 0 11px;border:none;border-radius:99px;cursor:pointer;background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line)}.inkpill .ic{width:19px;height:19px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-family:var(--fh);font-size:11px;background:linear-gradient(150deg,#4a4030,#241e14);color:var(--gold)}.inkpill .iv{font-family:var(--fh);font-size:16px;color:var(--ink);line-height:1}.inkpill .ib{font-family:var(--fm);font-size:9.5px;color:var(--ink-2);letter-spacing:.02em;font-variant-numeric:tabular-nums}.inkpill .ip{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-on);font-family:var(--fb);font-size:15px;font-weight:700;line-height:1;padding-bottom:2px}.lhead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.buy{display:flex;align-items:center;gap:13px;padding:15px;border-radius:12px;cursor:pointer;border:none;width:100%;text-align:left;background:#0000000a;font-family:var(--fb);margin-bottom:9px}.buy.hero{background:var(--ink);color:var(--sheet-bg)}.buy .bi{width:42px;height:42px;flex:0 0 auto;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--fh);font-size:17px;background:linear-gradient(150deg,#a2914f,#7b6b31);color:#e8dcb4}.buy.hero .bi{background:var(--accent);color:var(--accent-on)}.buy .bt{flex:1;min-width:0}.buy .bt b{display:block;font-size:14.5px;font-weight:700}.buy .bt span{display:block;font-size:11.5px;opacity:.7;margin-top:2px}.buy .bp{font-family:var(--fh);font-size:15px;white-space:nowrap}.buy .bp s{font-family:var(--fb);font-size:11px;font-weight:400;opacity:.55;display:block;text-align:right}.buy[disabled],.xb[disabled]{opacity:.4;cursor:default}.buy[disabled]:active,.xb[disabled]:active{background:#0000000a}.note-s{font-size:11.5px;color:var(--ink-2);line-height:1.7;margin-top:6px}.xfer{margin-top:18px;padding-top:16px;border-top:1px solid rgba(0,0,0,.08)}.xhead{margin-bottom:11px}.xt{font-size:14px;font-weight:700}.xs{font-size:11.5px;color:var(--ink-2);margin-top:2px}.xcode{display:flex;align-items:center;gap:9px;padding:12px 12px 12px 14px;border-radius:10px;background:var(--ink);color:var(--sheet-bg);margin-bottom:9px}.xcode span{flex:1;font-family:var(--fm);font-size:15px;font-weight:600;letter-spacing:.08em}.xcode button{border:none;background:#ffffff29;color:inherit;cursor:pointer;padding:7px 12px;border-radius:7px;font-family:var(--fb);font-size:11.5px;font-weight:700}.xcode[hidden]{display:none}.xwarn{font-size:11.5px;line-height:1.65;color:var(--accent);margin-bottom:11px;padding:10px 12px;border-radius:9px;background:#b03a2917}.xwarn[hidden]{display:none}.xwarn b{font-weight:700}.xbtns{display:flex;gap:8px}.xb{flex:1;height:42px;border:none;border-radius:10px;cursor:pointer;background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line);color:var(--ink-2);font-family:var(--fb);font-size:12.5px;font-weight:700}.xb:active{background:var(--key-down)}.xentry{display:flex;gap:8px;margin-top:9px}.xentry input{flex:1;height:42px;padding:0 12px;border:none;border-radius:10px;background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line);color:var(--ink);font-family:var(--fm);font-size:13px}.xentry input::placeholder{color:var(--ink-2)}.xnotice{margin-top:9px;padding:10px 12px;border-radius:10px;background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line);color:var(--ink-2);font-size:12px;line-height:1.5}.pick{width:100%;text-align:left;border:none;cursor:pointer;padding:15px 16px;border-radius:12px;background:#0000000a;margin-bottom:9px;font-family:var(--fb);box-shadow:inset 0 0 0 1px transparent}.pick:hover{box-shadow:inset 0 0 0 1.5px var(--accent)}.pick .pk{font-family:var(--fm);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px}.pick .pv{font-size:15px;color:var(--ink-2)}.pick .pv b{font-family:var(--fh);font-size:20px;color:var(--ink)}.pick .pn{font-size:11.5px;color:var(--ink-2);margin-top:4px}.ltitle{font-family:var(--fd);font-size:26px;font-weight:700;letter-spacing:-.01em}.ldate{font-family:var(--fm);font-size:11px;color:var(--ink-2);letter-spacing:.06em;margin-top:3px}.streak{display:flex;flex-direction:column;align-items:flex-end}.streak .n{font-family:var(--fh);font-size:26px;color:var(--gold);line-height:1}.streak .l{font-family:var(--fm);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-top:3px}.today{background:var(--sheet-bg);background-image:var(--paperimg);background-size:cover;border-radius:14px;padding:16px;box-shadow:0 2px 6px #5048301f}.today .cap{font-family:var(--fm);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:10px}.dots{display:flex;gap:7px}.dot{flex:1;height:8px;border-radius:99px;background:#5c523a24}.dot.ok{background:var(--hit)}.dot.no{background:var(--miss)}.dot.last{box-shadow:inset 0 0 0 1.5px var(--accent)}.today .sub{font-size:12px;color:var(--ink-2);margin-top:11px}.today .sub b{color:var(--ink)}.lnotice{margin:10px 0 2px;padding:10px 12px;border-radius:10px;background:var(--chip);box-shadow:inset 0 0 0 1px var(--chip-line);color:var(--ink-2);font-size:12px;line-height:1.5}.modes{display:flex;flex-direction:column;gap:9px}.mode{display:flex;align-items:center;gap:13px;padding:16px 17px;border:none;cursor:pointer;border-radius:14px;background:var(--sheet-bg);background-image:var(--paperimg);background-size:cover;box-shadow:0 2px 6px #50483021;text-align:left;font-family:var(--fb)}.mode:active{transform:translateY(1px)}.mode .mi{width:44px;height:44px;flex:0 0 auto;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--fh);font-size:19px;background:linear-gradient(150deg,#a2914f,#7b6b31);color:#e8dcb4}.mode.deep .mi{background:linear-gradient(150deg,#4a4030,#241e14);color:var(--gold)}.mode.free .mi{background:var(--chip);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--chip-line)}.mode .mt{flex:1;min-width:0}.mode .mt b{display:block;font-family:var(--fd);font-size:18px;font-weight:700}.mode .mt span{display:block;font-size:11.5px;color:var(--ink-2);margin-top:2px}.mode .mr{font-family:var(--fm);font-size:11px;color:var(--ink-2);white-space:nowrap}.mode[disabled]{opacity:.4;cursor:default}.mode.done .mr{color:var(--hit)}.mode.free.empty .mi{background:var(--miss);color:var(--miss-on);box-shadow:none}.mode.free.empty .mr{color:var(--accent);font-weight:700}.mode.free.empty .mt b{color:var(--ink-2)}.inkpill.empty{box-shadow:inset 0 0 0 1.5px var(--accent)}.inkpill.empty .iv{color:var(--accent)}.inkpill.empty .ic{background:var(--miss);color:var(--miss-on)}.inkpill.empty .ip{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #b03a2973}50%{box-shadow:0 0 0 5px #b03a2900}}.lfoot{margin-top:auto;display:flex;gap:11px}.lbtn{flex:1;min-width:0;padding:0 6px 0 0;border:none;border-radius:12px;cursor:pointer;overflow:hidden;display:flex;align-items:center;justify-content:flex-start;gap:10px;position:relative;background-color:var(--sheet-bg);background-image:var(--paperimg);background-size:cover;box-shadow:0 2px 6px #50483021}.lbtn:active{transform:translateY(1px)}.lbtn .li{width:40px;height:40px;flex:0 0 auto;border-radius:0;display:flex;align-items:center;justify-content:center;font-family:var(--fh);font-size:21px;color:#c4b069;background:radial-gradient(70% 60% at 30% 22%,rgba(228,211,148,.16),transparent 75%),linear-gradient(150deg,#a2914f,#8e7d3d 52%,#7b6b31);box-shadow:inset 0 1px #f7ecba42,inset 0 -1px #1c160842,0 1px 3px #00000057;text-shadow:0 -1px 0 rgba(250,240,198,.42),0 1px 0 rgba(26,20,7,.5)}.lbtn .ll{font-family:var(--fd);font-size:12px;font-weight:700;color:var(--ink-2);letter-spacing:-.03em;white-space:nowrap}.lbtn.alert .li{color:#fbede6;background:linear-gradient(150deg,#c4523f,#a6342a 55%,#84271f);text-shadow:0 1px 0 rgba(60,12,6,.5)}.lbtn.alert .ll{color:var(--accent)}.lbtn.alert:after{content:"";position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--accent)}#game{display:grid;grid-template-columns:1fr auto auto;grid-template-rows:auto 1fr auto auto;gap:11px 6px}#game[hidden]{display:none}#gameMount{display:contents}#game>.brand{grid-area:1 / 1}#game>#bStage{grid-area:1 / 2}#game .hud{grid-area:1 / 3}#game .board{grid-area:2 / 1 / 3 / 4}#game .note{grid-area:3 / 1 / 4 / 4}#game .kb{grid-area:4 / 1 / 5 / 4}.brand{display:flex;align-items:center;gap:7px}.back{border:none;background:none;cursor:pointer;padding:4px 6px 4px 0;color:var(--ink-2);font-family:var(--fd);font-size:19px;line-height:1}.title{font-family:var(--fd);font-size:19px;font-weight:700;letter-spacing:-.02em}.mark{font-family:var(--fm);font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);padding:3px 7px;border-radius:4px;background:#b03a291f;white-space:nowrap}.mark[hidden]{display:none}#end{justify-content:flex-end;align-items:center;max-width:none;padding:0;background:#1e1a106b}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.tray{flex:0 0 auto;padding:11px;display:flex;gap:13px;justify-content:center;align-items:flex-start;background:linear-gradient(100deg,var(--wood) 0%,var(--wood-2) 100%);border-radius:12px;box-shadow:inset 0 1px #ffffff4d,inset 0 -2px 4px #00000029,0 2px 6px #5a462333}.col{display:flex;flex-direction:row;gap:3px}.slot.nil{font-family:var(--fm);font-size:calc(var(--s) * .32);font-weight:600}.slot.ghost{color:#ffffff52;box-shadow:inset 0 4px 6px #00000080,inset 3px 0 5px #0000004d,inset 0 -1px #ffffff29,inset 0 0 0 1px #fff0be3d}.slot.seat{animation:seat .14s cubic-bezier(.3,.85,.4,1)}.tray.lift .slot.type{animation:pressup .18s cubic-bezier(.4,0,.85,.4) forwards}@keyframes pressup{0%{transform:translateY(0);opacity:1}32%{transform:translateY(-4px)}to{transform:translateY(-16px);opacity:0}}.tray.deny{animation:deny .22s ease-out}@keyframes deny{0%,to{transform:translate(0)}30%{transform:translate(-4px)}70%{transform:translate(4px)}}.note{min-height:18px;font-size:12px;color:var(--ink-2);text-align:center}.note.alert{color:var(--accent)}.kb{display:flex;flex-direction:column;gap:6px}.kr{display:flex;gap:5px}.k{flex:1 1 0;min-width:0;height:46px;padding:0;border:none;display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-size:18px;font-weight:700;background:var(--key);color:var(--ink);cursor:pointer;user-select:none;border-radius:7px;box-shadow:0 1px 2px #5a462324;transition:background .12s ease,color .12s ease,opacity .2s ease}.k:active{background:var(--key-down)}.k.wide{flex:1.7 1 0;font-family:var(--fb);font-size:12.5px;font-weight:700}.k.hint{flex:.7 1 0;font-family:var(--fb);font-size:11px;font-weight:700;color:var(--ink-2);letter-spacing:-.02em}.k.hint:disabled{opacity:.3;cursor:default}.k.hit{background:var(--hit);color:var(--hit-on)}.k.move{background:var(--move);color:var(--move-on)}.k.miss{background:var(--miss);color:var(--ink)}.k.gone{opacity:.26}.k.shift{background:var(--ink-2);color:var(--key)}.k.go{background:var(--ink);color:var(--key)}.k.go.on{background:var(--accent);color:var(--accent-on)}.board{flex:1 1 auto;display:flex;flex-direction:column-reverse;min-height:0;gap:9px;position:relative}.sheet{flex:1 1 auto;min-height:110px;padding:12px;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;background-color:var(--sheet-bg);background-image:var(--paperimg);background-size:cover;background-position:center;border-radius:14px;overflow-y:auto;position:relative;box-shadow:0 1px 1px #5048301a,0 3px 8px #5048301c,0 14px 26px -14px #5048304d}.sheet.done{overflow:hidden}.sheet.done .line{opacity:.24;transition:opacity .3s ease .1s}.sheet.recoil{animation:recoil .15s ease-out}@keyframes recoil{0%{transform:translateY(0)}45%{transform:translateY(1.5px)}to{transform:translateY(0)}}.line{display:flex;gap:3px;flex:0 0 auto;justify-content:center}.line .sp{width:7px;flex:0 0 auto}.tile{width:var(--t);height:var(--t);flex:0 0 auto;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;font-family:var(--fh);font-size:calc(var(--t) * .58);line-height:1;color:transparent;border-radius:3px}.tile.next{background:#5c523a0f;box-shadow:inset 0 2px 3px #4e442c29,inset 0 -1px #fff6,inset 0 0 0 1px #5c523a17}.tile.nil{font-family:var(--fm);font-size:calc(var(--t) * .32);font-weight:600}.tile.hit{background:var(--hit);color:var(--hit-on)}.tile.move{background:var(--move);color:var(--move-on)}.tile.miss{background:var(--miss);color:var(--ink)}.tile.inked{box-shadow:inset 0 1px 3px #0003,inset 0 -1px #ffffff24}.tile.inked:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:var(--paperimg);background-size:340px;opacity:.22;mix-blend-mode:overlay}.tile.press{animation:press .15s cubic-bezier(.32,.9,.35,1) backwards}@keyframes press{0%{transform:scale(1.13);opacity:0}42%{opacity:1}to{transform:scale(1);opacity:1}}.line.won .tile{animation:sway .3s ease-out backwards}@keyframes sway{0%,to{transform:translateY(0)}45%{transform:translateY(-4px)}}.line.arrive{animation:arrive .24s ease-out backwards}@keyframes arrive{0%{opacity:0}to{opacity:1}}.stamp{position:absolute;left:50%;top:50%;z-index:3;pointer-events:none;transform:translate(-50%,-50%);animation:impress .28s cubic-bezier(.34,.9,.36,1) backwards}.stamp .w{font-family:var(--fh);font-size:clamp(40px,15vw,66px);color:var(--ink);opacity:.93;letter-spacing:.05em;line-height:1;white-space:nowrap;transform:rotate(-1.6deg);text-shadow:0 0 1.6px rgba(34,30,22,.32)}@keyframes impress{0%{opacity:0;transform:translate(-50%,-50%) scale(1.6)}48%{opacity:1}74%{transform:translate(-50%,-50%) scale(.972)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.sheet.peel{animation:peel .4s cubic-bezier(.45,0,.75,.35) forwards;transform-origin:50% 92%}@keyframes peel{0%{transform:none;opacity:1}to{transform:translateY(9%) rotate(2deg) scale(.94);opacity:0}}.sheet.fresh{animation:fresh .32s cubic-bezier(.2,.7,.3,1) backwards}@keyframes fresh{0%{opacity:0;transform:translateY(-12px) scale(.985)}to{opacity:1;transform:none}}.tut{text-align:left}.tutfig{display:flex;justify-content:center;gap:3px;margin:16px 0 6px}.tutfig .sp{width:7px}.tutfig .tile{width:38px;height:38px;font-size:22px}.tutcap{text-align:center;font-size:12px;color:var(--ink-2);margin-bottom:14px}.tut p{font-size:13.5px;color:var(--ink-2);line-height:1.7;margin:0 0 10px}.tut p b{color:var(--ink)}.tutdots{display:flex;gap:6px;justify-content:center;margin-top:16px}.tutdots i{width:7px;height:7px;border-radius:50%;background:var(--line)}.tutdots i.on{background:var(--accent)}.cblind .tile.hit:before,.cblind .tile.move:before,.cblind .k.hit:before,.cblind .k.move:before{content:"";position:absolute;inset:auto 0 0;height:6px;pointer-events:none;opacity:.85}.cblind .k.hit,.cblind .k.move{position:relative;overflow:hidden}.cblind .tile.hit:before,.cblind .k.hit:before{background-image:repeating-linear-gradient(45deg,currentColor 0 2px,transparent 2px 5px)}.cblind .tile.move:before,.cblind .k.move:before{background-image:repeating-linear-gradient(-45deg,currentColor 0 2px,transparent 2px 5px)}.guide{position:absolute;left:8px;right:8px;top:0;z-index:4;padding:10px 12px;background:var(--sheet-bg);color:var(--ink);border-radius:10px;box-shadow:0 0 0 1px var(--line),0 6px 18px #221e162e;font-size:13px;line-height:1.5;animation:guide-in .18s ease-out}.guide[hidden]{display:none}.guide.fixed{position:fixed;right:auto}.guide:after{content:"";position:absolute;left:clamp(10px,calc(var(--x, 50%) - 8px - 6px),calc(100% - 22px));bottom:-6px;width:12px;height:12px;background:var(--sheet-bg);box-shadow:1px 1px 0 0 var(--line);transform:rotate(45deg)}.guide.below:after{bottom:auto;top:-6px;transform:rotate(225deg)}.guide-text{margin:0 0 8px}.guide-btns{display:flex;justify-content:flex-end;gap:6px}.guide-btns button{font:inherit;font-size:12px;font-weight:600;padding:5px 11px;border:none;border-radius:8px;cursor:pointer;background:transparent;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line)}.guide-btns .guide-next,.guide-btns .guide-close{background:var(--ink);color:var(--sheet-bg);box-shadow:none}.guide-on{outline:2px solid var(--accent);outline-offset:2px}@keyframes guide-in{0%{opacity:0;transform:translateY(4px)}}
