@font-face{font-family:Galmuri11;src:url(/fonts/Galmuri11.woff2)format("woff2");font-display:swap}@font-face{font-family:GalmuriMono11;src:url(/fonts/GalmuriMono11.woff2)format("woff2");font-display:swap}:root{--cream:#f4e9d8;--coffee:#5b3a29;--ink:#2a1d17;--teal:#2f7f7a;--orange:#e8843c;--yellow:#f2c94c;--lcd:#b8d8a8;--white:#fffaf2;--px:3px;--sans:"Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", system-ui, -apple-system, sans-serif;--pixel:"Galmuri11", var(--sans);--border:0 calc(-1 * var(--px)) 0 0 var(--ink), 0 var(--px) 0 0 var(--ink), calc(-1 * var(--px)) 0 0 0 var(--ink), var(--px) 0 0 0 var(--ink)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:var(--cream);color:var(--ink);font:500 15px/1.5 var(--sans);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;touch-action:manipulation}img,canvas{image-rendering:pixelated}#app{max-width:480px;min-height:100dvh;margin:0 auto;position:relative}.screen{min-height:100dvh;padding:16px 16px calc(16px + env(safe-area-inset-bottom));flex-direction:column;gap:14px;display:flex}#setup{background:var(--cream) center / cover no-repeat}.panel{background:var(--white);box-shadow:var(--border);padding:14px}.title{font-family:var(--pixel);letter-spacing:0;text-align:center;text-shadow:2px 2px 0 var(--white);margin:8px 0 0;font-size:22px;font-weight:400}.btn{font:inherit;cursor:pointer;background:var(--white);min-height:44px;color:var(--ink);box-shadow:var(--border);border:0;padding:10px 14px}.btn:active{transform:translateY(2px)}.btn[disabled]{opacity:.45;cursor:default}.btn[aria-disabled=true]{opacity:.6}.lap-flash{background:var(--yellow)}.btn-primary{background:var(--orange);color:var(--white);font-family:var(--pixel);letter-spacing:0;font-size:22px;font-weight:400}.btn[aria-pressed=true]{background:var(--teal);color:var(--white)}.row{gap:10px;display:flex}.row>*{flex:1}.chips{flex-wrap:wrap;gap:8px;min-height:36px;margin:10px 0;display:flex}.chip{background:var(--cream);box-shadow:var(--border);align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.chip button{font:inherit;cursor:pointer;background:0 0;border:0;padding:0 2px}.dot{width:10px;height:10px;display:inline-block}input[type=text],textarea{font:inherit;width:100%;box-shadow:var(--border);background:var(--white);border:0;padding:8px}.mode-btn{flex-direction:column;align-items:center;gap:4px;display:flex}.mode-btn img,.mode-btn .ph{width:48px;height:48px}.ph{background:var(--yellow);box-shadow:var(--border)}.rule{text-align:center;background:var(--ink);color:var(--cream);padding:4px 8px;font-size:13px}.topbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.icon-btn{min-width:44px}a.btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.muted{opacity:.7;font-size:13px}.linkish{font:inherit;cursor:pointer;color:var(--coffee);background:0 0;border:0;text-decoration:underline}.modal-backdrop{z-index:10;background:#2a1d1799;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--white);width:min(440px,100%);max-height:calc(100dvh - 32px);box-shadow:var(--border);flex-direction:column;gap:12px;padding:16px;display:flex;overflow:auto}.modal h2{margin:0;font-size:20px}.howto-img{aspect-ratio:9/16;object-fit:contain;background:var(--cream);width:100%;max-height:46dvh}.winner{font-family:var(--pixel);letter-spacing:0;text-align:center;color:var(--orange);text-shadow:2px 2px 0 var(--ink);margin:4px 0;font-size:33px;font-weight:400;line-height:1.2}.ranks{gap:4px;margin:0;padding:0;list-style:none;display:grid}.ranks li{background:var(--cream);justify-content:space-between;padding:4px 8px;display:flex}.ranks li.hit{background:var(--yellow)}.laps{border-collapse:collapse;width:100%;font-size:13px}.laps td{border-bottom:1px dashed var(--coffee);padding:2px 4px}.mono{font-family:GalmuriMono11,ui-monospace,monospace}.toast{background:var(--ink);color:var(--cream);z-index:20;padding:8px 14px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.avatar{image-rendering:pixelated;object-fit:contain;flex:none}.avatar-ph{background:var(--cream);box-shadow:var(--border);color:var(--coffee);flex:none;place-items:center;display:inline-grid}.char-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0;display:grid}.char{letter-spacing:-.04em;white-space:nowrap;padding:4px 0;flex-direction:column;align-items:center;gap:2px;min-height:92px;padding-inline:2px;font-size:12px;font-weight:600;line-height:1.2;display:flex;position:relative}.char[aria-pressed=true]{background:color-mix(in srgb, var(--pc) 24%, var(--white));color:var(--ink);box-shadow:inset 0 0 0 4px var(--pc), var(--border)}.char .order{background:var(--pc,var(--orange));min-width:20px;height:20px;color:var(--pc-ink,var(--white));box-shadow:var(--border);place-items:center;font-size:12px;display:grid;position:absolute;top:-6px;right:-4px}.pchip{background:color-mix(in srgb, var(--pc) 24%, var(--white));color:var(--ink);box-shadow:inset 6px 0 0 var(--pc), var(--border);padding-left:12px}.pchip .num{background:var(--pc);min-width:20px;height:20px;color:var(--pc-ink);flex:none;place-items:center;padding:0 3px;font-size:12px;display:inline-grid}.pchip .who{align-items:center;gap:6px;min-width:0;display:inline-flex}.ranks li.pchip{align-items:center;padding:4px 8px 4px 12px}.ranks li.pchip.hit{box-shadow:inset 6px 0 0 var(--pc), 0 0 0 4px var(--orange), var(--border);font-weight:700}.pb-hud{justify-content:space-between;align-items:center;gap:8px;min-height:26px;font-size:13px;display:flex}.pb-caption{color:var(--coffee);white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-weight:700;overflow:hidden}.pb-left{background:var(--ink);color:var(--cream);flex:none;padding:2px 8px}.ld-name{background:color-mix(in srgb, var(--pc) 24%, var(--white));min-height:64px;box-shadow:inset 0 -5px 0 var(--pc), var(--border);flex-direction:column;align-items:center;padding:4px 2px 8px;font-size:12px;display:flex;overflow:hidden}.ld-name.is-turn{background:color-mix(in srgb, var(--pc) 55%, var(--white));transform:translateY(-3px)}.ld-name[disabled]:not(.is-turn){opacity:.6}.ld-name.is-turn[disabled]{opacity:1}.ld-name-text{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.ld-turn{align-items:center;gap:8px;min-height:40px;padding:6px 10px 6px 12px;font-size:16px;display:flex}.ld-turn .ld-face{display:inline-flex}.ld-caption{text-align:center;min-height:1.5em;color:var(--coffee);margin:0;font-weight:700}.shake{color:var(--orange);animation:.3s linear shake}@keyframes shake{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.turn-bar{justify-content:center;align-items:center;gap:10px;min-height:44px;display:flex}.timer-stage{margin:4px 0;position:relative}.timer-device{width:min(100%,360px);box-shadow:inset 0 0 0 3px #3d4c75, 0 0 0 3px var(--ink), 0 6px 0 3px var(--ink);background:#24304f;border-radius:22px;flex-direction:column;gap:14px;margin:0 auto;padding:16px 16px 20px;display:flex;container-type:inline-size}.dev-lcd{background:#0d2224;border-radius:10px;justify-content:center;align-items:center;min-height:84px;display:flex;box-shadow:inset 0 0 0 3px #050f10,inset 0 4px 10px #0009}.timer-device .lcd{color:#8dffb0;text-shadow:0 0 8px #8dffb08c;white-space:nowrap;font-size:44px}.timer-device .lcd-hot{color:var(--yellow);text-shadow:0 0 8px #f2c94c99;font-size:1em}.dev-btn{width:100%;min-height:84px;font-family:var(--pixel);letter-spacing:0;background:var(--orange);color:var(--white);box-shadow:inset 0 5px 0 #ffffff59, inset 0 -6px 0 #00000040, 0 0 0 3px var(--ink), 0 6px 0 3px var(--ink);border-radius:14px;font-size:33px;font-weight:400;transition:none}.timer-device.pressed .dev-btn{box-shadow:inset 0 3px 0 #0003, 0 0 0 3px var(--ink), 0 1px 0 3px var(--ink);transform:translateY(5px)}@container (width<=300px){.timer-device .lcd{font-size:33px}.dev-btn{font-size:22px}}.lcd-hot{color:var(--orange);text-shadow:2px 2px 0 var(--white);font-size:1.35em}.lap-pop{z-index:2;background:var(--white);width:max-content;max-width:92vw;box-shadow:var(--border);text-align:center;pointer-events:none;align-items:center;gap:10px;padding:8px 14px;animation:.32s cubic-bezier(.2,1.4,.4,1) both pop-in;display:flex;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.pop-face .avatar,.pop-face .avatar-ph{animation:.38s ease-out bounce}.pop-text{flex-direction:column;align-items:center;min-width:92px;display:flex}.pop-formula{font-size:15px}.pop-score{font-family:var(--pixel);letter-spacing:0;font-size:33px;font-weight:400;line-height:1.1}.pop-word{font-size:18px;font-weight:800}.tone-gold{background:var(--yellow);color:var(--ink)}.tone-gold .pop-word,.tone-gold .pop-score{text-shadow:2px 2px 0 var(--white)}.tone-good{background:color-mix(in srgb, var(--teal) 22%, var(--white))}.tone-good .pop-word{color:var(--teal)}.tone-close .pop-word{color:var(--orange)}.tone-bad{color:#fff;background:#c0392b}.tone-bad .pop-word,.tone-bad .pop-score{color:#fff}@keyframes pop-in{0%{transform-origin:50% 100%;opacity:0;transform:translate(-50%)scale(.4)}to{transform-origin:50% 100%;opacity:1;transform:translate(-50%)scale(1)}}@keyframes bounce{30%{transform:translateY(-9px)}60%{transform:translateY(0)}80%{transform:translateY(-3px)}}.avatar.bounce,.avatar-ph.bounce{animation:.38s ease-out bounce}.board{flex-direction:column;gap:4px;min-height:130px;max-height:calc(100dvh - 560px);display:flex;position:relative;overflow-y:auto}.board ol,.board ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.board-h{color:var(--coffee);margin:2px 0 0;font-size:12px}.settled{flex-wrap:wrap;gap:4px!important;display:flex!important}.settled li{align-items:center;gap:4px;padding:2px 8px 2px 12px;font-size:12px;display:inline-flex}.board-row{background:color-mix(in srgb, var(--pc) 24%, var(--white));min-height:30px;box-shadow:inset 6px 0 0 var(--pc), var(--border);grid-template-columns:22px minmax(0,1fr) auto auto 22px;align-items:center;gap:6px;padding:2px 8px 2px 12px;display:grid}.board-row:not(.lapped){opacity:.7}.board-row.is-turn{opacity:1;background:color-mix(in srgb, var(--pc) 55%, var(--white));outline:3px solid var(--ink);outline-offset:1px}.board-row.danger{background:color-mix(in srgb, #c0392b 22%, var(--white))}.board-row .rk,.settled .rk{background:var(--ink);min-width:20px;height:20px;color:var(--cream);place-items:center;padding:0 3px;font-size:12px;display:inline-grid}.board-row .who{align-items:center;gap:6px;min-width:0;display:inline-flex}.board-row .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-row .tags{gap:3px;display:inline-flex}.tag{white-space:nowrap;background:var(--ink);color:var(--cream);padding:0 4px;font-size:11px}.tag-turn{background:var(--orange);color:var(--white)}.tag-tie{background:var(--yellow);color:var(--ink)}.tag-danger{color:#fff;background:#c0392b}.tie-laps .who .tag{margin-left:2px}.tie-lap{flex-direction:column;align-items:flex-end;line-height:1.25;display:flex}.tie-lap small{font-size:12px;font-weight:400}.tie-stake{text-align:center;margin:0;font-weight:700}.tie-actions{gap:10px;display:grid}.tie-open [data-testid=home]{z-index:11;position:relative}.modal-backdrop.modal-top{z-index:12}.lap-ms{font-size:12px}.board-row .sc{text-align:right;font-size:18px}@media (prefers-reduced-motion:reduce){.lap-pop,.pop-face .avatar,.pop-face .avatar-ph,.avatar.bounce,.avatar-ph.bounce{animation:none}}.timer-wrap{flex-direction:column;flex:1;gap:8px;display:flex}.ld-cell{flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:56px;font-size:12px;font-weight:700;display:flex;position:relative}.ld-cell.is-up{background:var(--white);box-shadow:var(--border);animation:ld-flip .35s ease-out var(--flip-delay,0s) both}.ld-cell.is-up.instant{animation:none}.ld-cell.is-landed{background:color-mix(in srgb, var(--pc) 30%, var(--white));box-shadow:inset 0 -5px 0 var(--pc), var(--border)}.ld-cell.is-crown{box-shadow:inset 0 0 0 3px var(--yellow), var(--border);animation:ld-flip .35s ease-out var(--flip-delay,0s) both, ld-glow 1s ease-in-out calc(var(--flip-delay,0s) + .6s) infinite alternate;background:#fff3c4}.ld-cell.is-crown.instant{animation:1s ease-in-out infinite alternate ld-glow}.ld-cell.is-crown.is-landed{background:color-mix(in srgb, var(--pc) 30%, #fff3c4);box-shadow:inset 0 0 0 3px var(--yellow), inset 0 -5px 0 var(--pc), var(--border);animation:none}.ld-crown{font-size:16px;line-height:1}.ld-cell .ld-face{display:inline-flex}.ld-win{z-index:20;pointer-events:none;background:var(--yellow);color:var(--ink,#2a1d17);box-shadow:var(--border);font:22px/1.3 var(--pixel);white-space:nowrap;padding:14px 22px;animation:.35s ease-out both ld-pop;position:fixed;top:40%;left:50%;transform:translate(-50%,-50%)}.ld-win[hidden]{display:none}@keyframes ld-flip{0%{opacity:0;transform:perspective(200px)rotateX(90deg)}to{opacity:1;transform:none}}@keyframes ld-glow{0%{filter:none}to{filter:drop-shadow(0 0 6px #f2c94c)brightness(1.08)}}@keyframes ld-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (prefers-reduced-motion:reduce){.ld-cell,.ld-win{animation:none!important}}.pb-controls{grid-template-columns:repeat(3,56px) 1fr;align-items:stretch;gap:8px;display:grid}.pb-speed{padding:8px 0;font-weight:700}
