:root{--bg:#140c33;--bg-2:#1c1248;--card:#241a5a;--card-2:#2c2069;--line:#3a2d80;--text:#f5f2ff;--muted:#a99fd8;--p0:#ff4f8b;--p1:#2ad4ff;--p2:#b6f04a;--p3:#ff9f43;--p4:#c58bff;--p5:#3ee0c8;--p6:#ff7ad9;--p7:#7aa2ff;--paper:#f7f1e3;--paper-line:#d8544f66;--ink-color:#1d1438;--gold:#ffd23f;--gold-deep:#b38d12;--ink:#140c33;--good:#3ee08f;--bad:#ff5a5a;--r:10px;--r-sm:8px;--edge:inset 0 1px 0 #ffffff12;--lift:0 3px 0 #0a0520;--raised:var(--edge), var(--lift);--lime:#dbf21d;--pixel:"Jersey 10", ui-monospace, monospace;--body:"Nunito", ui-rounded, system-ui, -apple-system, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:radial-gradient(ellipse 120% 60% at 50% -10%, #33197f 0%, var(--bg) 65%) fixed, var(--bg);min-height:100dvh;color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-weight:600}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}input,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}a{color:var(--p1)}kbd{font-family:var(--mono);opacity:.6;vertical-align:1px;border:1px solid;border-radius:5px;margin-left:6px;padding:1px 5px;font-size:.68em;font-weight:600}code{font-family:var(--mono);background:var(--bg-2);border-radius:6px;padding:1px 6px;font-size:.9em}.p0{--pc:var(--p0)}.p1{--pc:var(--p1)}.p2{--pc:var(--p2)}.p3{--pc:var(--p3)}.p4{--pc:var(--p4)}.p5{--pc:var(--p5)}.p6{--pc:var(--p6)}.p7{--pc:var(--p7)}.muted{color:var(--muted)}.small{font-size:.85rem}.ok{color:var(--good)}.error{color:var(--bad)}.hint{color:var(--gold);text-align:center;font-size:.85rem}.row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.row.start{justify-content:flex-start;margin:12px 0}.card{background:var(--card);border:1.5px solid var(--line);border-radius:var(--r);box-shadow:var(--raised);padding:18px}.card.narrow{flex-direction:column;align-items:flex-start;gap:16px;width:min(420px,100%);display:flex}.big-text{font-size:1.15rem}.btn{border-radius:var(--r);border:1.5px solid var(--line);background:var(--card-2);box-shadow:var(--edge);justify-content:center;align-items:center;gap:4px;padding:12px 22px;font-weight:800;transition:transform 60ms,background .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--line)}.btn:active:not(:disabled){transform:translateY(2px)}.btn.primary{background:var(--gold);border-color:var(--gold);color:var(--ink);box-shadow:0 4px 0 var(--gold-deep)}.btn.primary:hover:not(:disabled){background:#ffdb5c}.btn.primary:active:not(:disabled){box-shadow:0 1px 0 var(--gold-deep);transform:translateY(3px)}.btn.big{font-family:var(--pixel);letter-spacing:.03em;padding:12px 40px 10px;font-size:1.9rem;font-weight:400;line-height:1}.btn.wide{width:100%}.btn:disabled{opacity:.45;box-shadow:none}.btn.primary:disabled{opacity:1;background:var(--card-2);border-color:var(--line);color:var(--muted)}.link-btn{color:var(--muted);background:0 0;border:none;padding:0;font-weight:800}.link-btn:hover{color:var(--text)}.icon-btn{color:var(--muted);background:0 0;border:none;border-radius:8px;padding:6px 8px;font-size:1.1rem}.icon-btn:hover{background:var(--card);color:var(--text)}.tag{background:var(--gold);color:var(--ink);border-radius:999px;margin-left:auto;padding:3px 9px;font-size:.72rem;font-weight:800}.section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-size:.8rem;font-weight:800;display:block}.section-head{justify-content:space-between;align-items:baseline;display:flex}.segmented{border-radius:calc(var(--r) + 4px);background:var(--bg-2);border:1.5px solid var(--line);flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.segmented button{border-radius:var(--r);color:var(--muted);background:0 0;border:none;padding:8px 16px;font-weight:800}.segmented button.on{background:var(--text);color:var(--ink)}.segmented.big button.on small{color:color-mix(in srgb, var(--ink) 70%, transparent)}.segmented.big{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));width:100%;display:grid}.segmented.big button{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;display:flex}.segmented.big small{color:var(--muted);font-size:.8rem;font-weight:600}.rounds{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rounds button{border:1.5px solid var(--line);background:var(--bg-2);border-radius:999px;padding:6px 16px;font-weight:800}.rounds button.on{background:var(--gold);color:var(--ink);border-color:var(--gold)}.text-input,.field input:not([type=file]),.field textarea{background:var(--bg-2);border:1.5px solid var(--line);border-radius:var(--r);outline:none;min-width:0;padding:12px 14px;font-weight:700}.text-input:focus,.field input:focus,.field textarea:focus{border-color:var(--gold)}.field{color:var(--muted);flex-direction:column;gap:8px;margin:18px 0 0;display:flex}.field textarea{resize:vertical;line-height:1.5}.deadline,.timebar{background:var(--bg-2);border-radius:999px;height:6px;overflow:hidden}.deadline div{background:var(--pc,var(--gold));height:100%}.page{flex-direction:column;gap:28px;max-width:1100px;margin:0 auto;padding:12px 16px 120px;display:flex}.page.editor{gap:0}.page.editor>.segmented{margin:16px 0 8px}.topbar{justify-content:space-between;align-items:center;gap:12px;min-height:44px;display:flex}.topbar-title{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.back{color:var(--muted);background:0 0;border:none;padding:8px 4px;font-weight:800}.back:hover{color:var(--text)}.page-title{font-family:var(--pixel);letter-spacing:.02em;font-size:3.2rem;font-weight:400;line-height:1}.cta-bar{padding:14px 16px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--bg) 60%, transparent);z-index:5;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.cta-bar .btn.big{width:min(420px,100%)}.brand{color:var(--text);border-radius:var(--r-sm);align-items:center;gap:8px;text-decoration:none;display:inline-flex}.brand img{width:auto;height:22px;display:block}.brand-play{font-family:var(--pixel);letter-spacing:.08em;text-transform:uppercase;border:1.5px solid var(--line);color:var(--muted);border-radius:4px;padding:3px 7px 2px;font-size:1.05rem;line-height:1}.brand:hover .brand-play{color:var(--text);border-color:var(--muted)}.brand:focus-visible,.site-foot a:focus-visible{outline:2px solid var(--lime);outline-offset:3px}.site-foot{border-top:1.5px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding-top:20px;font-size:.85rem;display:flex}.site-foot a{color:var(--muted);text-decoration:none}.site-foot a:hover{color:var(--text)}.site-foot nav{gap:16px;display:flex}.site-foot-brand{align-items:center;gap:8px;font-weight:800;display:inline-flex}.site-foot-brand img{width:auto;height:22px}.hero{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.logo{font-family:var(--pixel);text-transform:uppercase;letter-spacing:.05em;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 .22em;font-size:clamp(4.5rem,19vw,8rem);font-weight:400;line-height:.85;display:flex}.logo .hl{background:var(--gold);color:var(--ink);letter-spacing:.06em;box-shadow:0 .07em 0 var(--gold-deep);border-radius:.1em;padding:.06em .18em 0}.tagline{color:var(--muted);font-size:1.05rem}.doors{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.door{border-radius:var(--r);background:var(--card);border:1.5px solid var(--line);min-height:220px;box-shadow:var(--raised);text-align:left;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:4px;padding:20px;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex}.door:hover{border-color:var(--muted);box-shadow:var(--edge), 0 5px 0 #0a0520;transform:translateY(-2px)}.door:active{box-shadow:var(--edge), 0 1px 0 #0a0520;transform:translateY(2px)}.door-art{width:auto;height:84px;margin-bottom:auto}.door-title{font-family:var(--pixel);font-size:clamp(2.3rem,8vw,2.8rem);font-weight:400;line-height:1}.door-sub{color:var(--muted);font-size:.95rem}.door-host{background:var(--gold);border-color:var(--gold);color:var(--ink);box-shadow:0 5px 0 var(--gold-deep)}.door-host .door-sub{color:#4a3a05}.door-host:hover{border-color:var(--gold);box-shadow:0 7px 0 var(--gold-deep)}.door-host:active{box-shadow:0 2px 0 var(--gold-deep)}.door-join{border-color:color-mix(in srgb, var(--p1) 45%, var(--line))}.door-join:hover{border-color:var(--p1)}.tagline{align-items:center;gap:10px;display:inline-flex}.tagline-spark{flex:none;width:15px;height:15px}.code-input{cursor:text;grid-template-columns:repeat(4,1fr);gap:8px;width:100%;display:grid;position:relative}.code-box{border-radius:var(--r);background:var(--bg-2);border:1.5px solid var(--line);height:56px;font-family:var(--pixel);place-items:center;font-size:2.2rem;line-height:1;display:grid}.code-box.filled{border-color:var(--muted)}.code-input:focus-within .code-box.active{border-color:var(--gold);box-shadow:0 0 0 3px #ffd23f33}.code-input input{opacity:0;width:100%;font-size:16px;position:absolute;inset:0}.divider{font-family:var(--pixel);letter-spacing:.04em;color:var(--text);align-items:center;gap:12px;margin:0;font-size:1.5rem;font-weight:400;line-height:1;display:flex}.divider:after{content:"";background:repeating-linear-gradient(90deg, var(--line) 0 6px, transparent 6px 10px);flex:1;height:2px}.pixel{display:block}.sky{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.sky svg{width:100%;height:100%;position:absolute;inset:0}.sky .star{fill:#382d7c}.sky .star.bright,.sky .spark rect{fill:#6a5fbd}.sky .spark.gold rect{fill:#a8893a}.sky .spark{opacity:.7;animation:3.2s steps(2,end) infinite twinkle}@keyframes twinkle{50%{opacity:.2}}@media (width<=640px){.sky .spark:nth-of-type(odd){display:none}.sky .star.bright{fill:#4f4499}}.floor{transform-origin:bottom;background:linear-gradient(90deg,#a99fd833 1.5px,#0000 1.5px) 0 0/56px 56px,linear-gradient(#a99fd833 1.5px,#0000 1.5px) 0 0/56px 56px,radial-gradient(50% 70% at 50% 100%,#ff4f8b26,#0000);height:40vh;position:absolute;bottom:0;left:-50%;right:-50%;transform:perspective(320px)rotateX(58deg);-webkit-mask-image:linear-gradient(#0000 10%,#000 80%);mask-image:linear-gradient(#0000 10%,#000 80%)}.room-grid{grid-template-columns:minmax(0,300px) minmax(0,1fr);align-items:start;gap:14px;display:grid}.room-code-card{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.room-code-card .section-title{margin:0}.room-code{font-family:var(--pixel);letter-spacing:.08em;color:var(--gold);font-size:5.5rem;line-height:.85}.qr{border-radius:12px;width:190px;height:190px;overflow:hidden}.qr svg{width:100%;height:100%;display:block}.room-players{flex-direction:column;gap:12px;display:flex}.room-players ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.room-players li{border:1.5px dashed var(--line);border-radius:12px;align-items:center;gap:10px;min-height:52px;padding:8px 14px;display:flex}.room-players li.filled{border:1.5px solid var(--pc);background:color-mix(in srgb, var(--pc) 10%, transparent)}.room-players li strong{font-family:var(--pixel);color:var(--pc);font-size:1.7rem;font-weight:400;line-height:1}.seat-dot{background:var(--pc);border-radius:50%;width:10px;height:10px}.center-screen{place-items:center;min-height:100dvh;padding:16px;display:grid}.cta-bar>.muted{padding:14px 0}.game{max-width:760px;height:100dvh;padding:10px 14px calc(12px + env(safe-area-inset-bottom));flex-direction:column;gap:10px;margin:0 auto;display:flex}.hud{align-items:center;gap:8px;display:flex}.round-chip{font-family:var(--pixel);border-radius:var(--r-sm);background:var(--card);color:var(--gold);flex:none;padding:6px 10px 4px;font-size:1.6rem;line-height:1}.round-chip small{color:var(--muted);font-size:.65em}.score-pills{flex:1;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:6px;min-width:0;display:grid}.score-pill{border-radius:var(--r-sm);background:color-mix(in srgb, var(--pc) 12%, var(--bg));border:1.5px solid color-mix(in srgb, var(--pc) 45%, transparent);justify-content:space-between;align-items:baseline;gap:6px;min-width:0;padding:6px 10px 4px;transition:box-shadow .15s,opacity .15s;display:flex;position:relative}.score-pill.me{border-color:var(--pc)}.score-pill.buzzing{box-shadow:0 0 0 3px var(--pc), 0 0 22px var(--pc)}.score-pill.locked{opacity:.4}.sp-name{color:var(--pc);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:800;overflow:hidden}.sp-pts{font-family:var(--pixel);font-variant-numeric:tabular-nums;font-size:1.7rem;line-height:1}.sp-streak{background:var(--bg);border-radius:999px;padding:0 6px;font-size:.72rem;font-weight:800;animation:1.2s ease-in-out infinite pulse;position:absolute;top:-9px;right:6px}@keyframes pulse{50%{transform:scale(1.06)}}.timebar div{background:linear-gradient(90deg, var(--bad), var(--gold) 40%, var(--good));background-size:760px 100%;height:100%;transition:width .1s linear}.window{background:var(--card);border:1.5px solid var(--line);border-radius:var(--r);box-shadow:var(--raised);overflow:hidden}.titlebar{background:var(--bg-2);border-bottom:1.5px solid var(--line);font-family:var(--pixel);letter-spacing:.08em;text-transform:uppercase;color:var(--text);white-space:nowrap;justify-content:space-between;align-items:center;gap:12px;padding:5px 6px 5px 10px;font-size:1.15rem;line-height:1;display:flex}.titlebar-title{text-overflow:ellipsis;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.titlebar-title img{flex:none;width:auto;height:18px}.controls{flex:none;gap:4px;display:flex}.controls i{border:1.5px solid var(--line);width:20px;height:18px;font-family:var(--body);color:var(--muted);border-radius:3px;place-items:center;font-size:.7rem;font-style:normal;font-weight:800;line-height:1;display:grid}.countdown{font-family:var(--pixel);color:var(--gold);font-size:9rem;line-height:1;animation:1s ease-out count}@keyframes count{0%{opacity:0;transform:scale(1.6)}30%{opacity:1}to{transform:scale(1)}}@keyframes float-up{0%{opacity:0;transform:translateY(18px)scale(.6)}60%{opacity:1;transform:translateY(-4px)scale(1.08)}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}.dialog{width:min(420px,100%);animation:.2s ease-out rise}.dialog-body{flex-direction:column;gap:16px;padding:20px;display:flex}.dialog-title{font-family:var(--pixel);font-size:2.6rem;font-weight:400;line-height:1}.dialog .field{margin:0}.field-label{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem;font-weight:700}.controls .control-close{border:1.5px solid var(--line);width:20px;height:18px;font-family:var(--body);color:var(--muted);background:0 0;border-radius:3px;place-items:center;padding:0;font-size:.85rem;font-weight:800;line-height:1;display:grid;position:relative}.controls .control-close:after{content:"";position:absolute;inset:-13px -12px}.controls .control-close:hover{background:var(--bad);border-color:var(--bad);color:var(--ink)}.overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;background:#0b0620d9;place-items:center;padding:16px;animation:.3s fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.results{text-align:center;border-radius:calc(var(--r) + 4px);background:var(--card);border:1.5px solid var(--gold);width:min(420px,100%);box-shadow:var(--edge), 0 4px 0 var(--gold-deep);padding:24px 20px}.trophy{font-size:4rem;animation:.8s ease-out float-up}.results h2{font-family:var(--pixel);color:var(--pc,var(--text));margin:6px 0 18px;font-size:3rem;font-weight:400;line-height:1}.ranking{gap:6px;margin:0 0 20px;padding:0;list-style:none;display:grid}.ranking li{background:color-mix(in srgb, var(--pc) 12%, var(--bg-2));border-radius:12px;align-items:center;gap:10px;padding:8px 14px;display:flex}.ranking li:first-child{border:1.5px solid var(--pc)}.rank-medal{text-align:center;width:28px;color:var(--muted);font-size:.85rem}.rank-name{text-align:left;color:var(--pc);flex:1;font-weight:800}.ranking strong{font-family:var(--pixel);font-size:1.8rem;font-weight:400;line-height:1}@media (width<=640px){.room-grid{grid-template-columns:1fr}.room-code{font-size:4.5rem}.doors{grid-template-columns:1fr 1fr;gap:10px}.door{gap:4px;min-height:0;padding:14px}.door-art{height:44px;margin-bottom:6px}.door-title{font-size:1.7rem}.door-sub{font-size:.8rem;line-height:1.3}.door-host{grid-column:1/-1;padding:18px}.door-host .door-art{height:56px}.door-host .door-title{font-size:2.3rem}.door-host .door-sub{font-size:.95rem}}.paper{aspect-ratio:1;border-radius:var(--r);background:var(--paper);color:var(--ink-color);position:relative;overflow:hidden;box-shadow:inset 0 0 0 1.5px #e4d9bf,0 4px #0a0520}.glyph{fill:currentColor;width:100%;height:100%;display:block}.glyph.writing .glyph-shadow{fill:currentColor;opacity:.08}.glyph-pen{fill:none;stroke:currentColor;stroke-width:150px;stroke-linecap:round;stroke-linejoin:round;animation:linear forwards pen}@keyframes pen{to{stroke-dashoffset:0}}.practice-grid{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.practice-grid line{stroke:var(--paper-line);stroke-width:1.5px;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}.drawing{width:100%;height:100%;display:block}.drawing .ghost{fill:var(--ink-color);opacity:.13}.drawing .ghost.missed{fill:var(--p0);opacity:.45}.drawing .ink{fill:none;stroke:var(--ink-color);stroke-linecap:round;stroke-linejoin:round;opacity:.92}.drawing .ink-dot{fill:var(--ink-color)}.blank{color:#9c8f73;place-items:center;font-weight:800;display:grid;position:absolute;inset:0}.home .hero{gap:14px;margin-top:4px}.home .logo{font-size:clamp(3.2rem,13vw,6rem)}.showcase{flex-direction:column;align-items:center;gap:8px;display:flex}.showcase-paper{width:132px;transform:rotate(-3deg)}.showcase-paper .practice-grid{display:none}.showcase-gloss{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:700}.door-solo{border-color:color-mix(in srgb, var(--p2) 45%, var(--line))}.door-solo:hover{border-color:var(--p2)}.how{flex-direction:column;gap:12px;display:flex}.how-steps{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.how-steps li{border-radius:var(--r);background:var(--card);border:1.5px solid var(--line);box-shadow:var(--raised);color:var(--muted);flex-direction:column;gap:6px;padding:16px;line-height:1.45;display:flex}.how-steps strong{color:var(--text)}.how-num{font-family:var(--pixel);color:var(--gold);font-size:2.2rem;line-height:1}.credit{flex-basis:100%;order:3;font-size:.78rem}.credit a{text-decoration:underline}.page.with-cta{padding-bottom:120px}.window-body{flex-direction:column;gap:20px;padding:20px;display:flex}.window-body .field{margin:0}.settings{flex-direction:column;gap:18px;display:flex}.setting{color:var(--muted);flex-direction:column;gap:8px;display:flex}.setting .segmented:not(.big){align-self:flex-start}.room-side{flex-direction:column;gap:14px;min-width:0;display:flex}.room-players li.empty{border:1.5px dashed var(--line)}.game{max-width:820px}.hud .icon-btn{flex:none}.score-pills{scrollbar-width:none;display:flex;overflow-x:auto}.score-pill{flex:1 0 auto;min-width:70px}.score-pill.gone{opacity:.35}.sp-done{background:var(--good);width:18px;height:18px;color:var(--ink);border-radius:50%;place-items:center;font-size:.7rem;font-weight:900;display:grid;position:absolute;top:-8px;right:-4px}.solo-total{font-family:var(--pixel);color:var(--gold);margin-left:auto;font-size:1.8rem;line-height:1}.stage{flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:14px;min-height:0;display:flex}.stage .timebar{flex:none;width:100%}.paper.show{width:min(100%,100dvh - 260px,520px);animation:.25s ease-out rise}.memo-caption{text-align:center;font-size:1.1rem}.memo-gloss{font-family:var(--pixel);color:var(--gold);text-transform:uppercase;letter-spacing:.04em;font-size:2.2rem;line-height:1}.ready-card{text-align:center;gap:10px}.eyebrow-line{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.85rem;font-weight:700}.stars{letter-spacing:.1em;color:var(--gold);font-size:2.2rem}.boss-banner{font-family:var(--pixel);border-radius:var(--r-sm);background:var(--p0);color:var(--ink);text-transform:uppercase;letter-spacing:.05em;padding:8px 16px 6px;font-size:2rem;line-height:1;animation:1.2s ease-in-out infinite pulse;box-shadow:0 4px #b02a5c}.draw-stage{justify-content:center}.pad{touch-action:none;-webkit-user-select:none;user-select:none;flex:none;width:min(100%,100dvh - 240px,560px)}.pad canvas{width:100%;height:100%;color:var(--ink-color);touch-action:none;cursor:crosshair;position:absolute;inset:0}.pad.locked canvas{cursor:default}.pad.locked{opacity:.8}.pad-tools .btn{white-space:nowrap;padding-inline:10px}.pad-tools{grid-template-columns:1fr 1fr 1.4fr;gap:8px;width:min(100%,560px);display:grid}.pad-status{text-align:center}.build-pad{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.build-paper{width:min(100%,100dvh - 380px,500px);min-width:220px}.build-paper.picking{box-shadow:inset 0 0 0 3px var(--gold), 0 4px 0 #0a0520;cursor:crosshair}.build-board{width:100%;height:100%;display:block;position:absolute;inset:0}.tian-grid line{stroke:var(--paper-line);stroke-width:3px;stroke-dasharray:14 12}.build-ghost{fill:var(--ink-color);opacity:.1}.build-board .piece{fill:var(--ink-color)}.build-board .piece.wrong{fill:var(--p0)}.placed{touch-action:none;cursor:grab;background:0 0;border:none;padding:0;position:absolute}.placed .piece-art{fill:var(--ink-color)}.placed:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:6px}.placed.lifted{opacity:.25}.locked .placed{cursor:default}.tray{flex-wrap:wrap;justify-content:center;gap:10px;width:min(100%,560px);min-height:78px;display:flex}.tray-piece{touch-action:none;cursor:grab;border:none;flex:none;width:74px;padding:0;transition:transform .1s}.tray-piece.picked{box-shadow:0 0 0 3px var(--gold), 0 4px 0 #0a0520;transform:translateY(-4px)}.tray-piece.lifted{opacity:.3}.locked .tray-piece{cursor:default;opacity:.7}.piece-art{width:100%;height:100%;fill:var(--ink-color);pointer-events:none;display:block}.tray-empty{text-align:center;align-self:center;font-size:.9rem}.drag-ghost{z-index:50;pointer-events:none;background:color-mix(in srgb, var(--paper) 60%, transparent);outline:2px dashed var(--gold);border-radius:6px;position:fixed}.drag-ghost .piece-art{fill:var(--ink-color)}.build-tools{grid-template-columns:1fr 1.6fr}.made-ch{color:var(--text);font-size:1.15em}.pool{flex:none;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;width:min(100%,560px);display:grid}.pool-tile{border-radius:var(--r-sm);background:var(--paper);color:var(--ink-color);grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:3px;min-width:0;padding:5px 6px 4px;transition:background .15s;display:grid;box-shadow:0 3px #0a0520}.pool-tile.short{background:var(--p0)}.pool-tile.special{background:var(--gold);grid-column:span 2;grid-template-columns:auto auto 1fr}.pool-tile.special .pool-name{grid-column:1/3}.pool-special{text-align:right;grid-area:1/3/3;justify-self:end;font-size:.95rem;font-weight:800;line-height:1.1}.pool-eg{opacity:.75;letter-spacing:.05em;font-size:.75rem;font-weight:600;display:block}.stroke-icon{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.pool-name{white-space:nowrap;text-overflow:ellipsis;grid-column:1/-1;font-size:.72rem;font-weight:800;line-height:1.1;overflow:hidden}.pool-count{font-family:var(--pixel);font-variant-numeric:tabular-nums;justify-self:end;font-size:1.45rem;line-height:.8}.pool-note{color:var(--p0);font-weight:700}.handed-in{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 8px;display:flex}.handed-word{font-size:1.5rem;line-height:1}.handed-word small{color:var(--gold);margin-left:2px;font-size:.75rem}.sprint-sheet{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));align-content:start;gap:6px;min-height:80px;display:grid}.sprint-word{text-align:center;margin:0}.sprint-word .paper{aspect-ratio:1}.sprint-word figcaption{font-size:.85rem;font-weight:700}.sprint-word.again{opacity:.45}.reads{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:min(100%,560px);min-height:52px;display:flex}.reads-as{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 10px;display:flex}.reads-points{font-family:var(--pixel);color:var(--gold);font-size:2rem;font-weight:400;line-height:.8}.reads-alts{align-items:center;gap:6px;font-size:.9rem;display:flex}.alt{border-radius:var(--r-sm);border:1.5px solid var(--line);background:var(--card);min-width:40px;padding:2px 8px;font-size:1.3rem}.word-line{align-items:center;gap:8px;min-width:0;display:inline-flex}.word-ch{color:var(--text);font-size:2rem;line-height:1}.word-text{text-align:left;flex-direction:column;align-items:flex-start;min-width:0;font-size:.85rem;line-height:1.25;display:flex}.pool-best{border-radius:var(--r);background:var(--card);box-shadow:var(--raised);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;padding:10px;display:flex}.pool-stage .pad{width:min(100%,100dvh - 360px,560px)}.result-detail .word-ch{font-size:1.7rem}.reveal-stage{flex-direction:column;flex:1;gap:14px;min-height:0;padding-bottom:8px;display:flex;overflow-y:auto}.answer{border-radius:var(--r);background:var(--card);border:1.5px solid var(--gold);box-shadow:var(--raised);align-items:center;gap:16px;padding:12px;display:flex}.answer-glyph{flex:none;width:min(36vw,150px)}.answer-text{flex-direction:column;gap:4px;min-width:0;display:flex}.answer-pinyin{font-family:var(--mono);color:var(--muted);font-weight:700}.answer-gloss{font-family:var(--pixel);text-transform:uppercase;color:var(--gold);font-size:2.4rem;line-height:1}.answer-note{line-height:1.4}.cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.cards.n1{grid-template-columns:minmax(0,320px);justify-content:center}.cards.n2{grid-template-columns:repeat(2,minmax(0,1fr))}.result-card{border-radius:var(--r);background:color-mix(in srgb, var(--pc) 10%, var(--card));border:2px solid color-mix(in srgb, var(--pc) 50%, transparent);box-shadow:var(--raised);text-align:left;flex-direction:column;gap:8px;padding:10px;transition:transform .1s,border-color .12s;animation:.3s ease-out both rise;display:flex;position:relative}.result-card:disabled{cursor:default}.result-card.mine{border-color:var(--pc)}.result-card.votable:hover{border-color:var(--gold);transform:translateY(-3px)}.result-card.voted{border-color:var(--gold);box-shadow:0 0 0 3px #ffd23f55, var(--lift)}.result-card.crowned{border-color:var(--gold);box-shadow:0 0 24px #ffd23f66, var(--lift)}.result-paper{width:100%}.result-meta{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.result-name{color:var(--pc);text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.result-name small{color:var(--muted);font-weight:700}.result-score{font-family:var(--pixel);font-variant-numeric:tabular-nums;font-size:2.4rem;line-height:.8}.result-detail{flex-direction:column;gap:2px;font-size:.85rem;animation:.3s fade;display:flex}.result-label{font-family:var(--pixel);color:var(--gold);font-size:1.4rem;line-height:1}.result-points{font-weight:800}.crown{z-index:1;white-space:nowrap;background:var(--gold);color:var(--ink);border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:900;animation:.6s ease-out float-up;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.my-vote{background:var(--gold);color:var(--ink);border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:900;position:absolute;top:14px;right:14px}.reveal-foot{background:linear-gradient(to top, var(--bg) 70%, transparent);text-align:center;justify-content:center;padding:10px 0 4px;display:flex;position:sticky;bottom:0}.reveal-foot .btn.big{width:min(420px,100%)}.vote-hint{font-weight:800}.page.over{gap:24px;max-width:900px;padding-top:24px}.over .results{margin:0 auto}.over .results .row{margin-top:4px}.learned{flex-direction:column;gap:12px;display:flex}.learned-list{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.learned-list li{border-radius:var(--r);background:var(--card);border:1.5px solid var(--line);align-items:center;gap:12px;padding:8px 12px;display:flex}.learned-ch{font-size:2.2rem;line-height:1}.learned-text{color:var(--muted);flex-direction:column;font-size:.9rem;display:flex}.learned-text strong{font-family:var(--mono);color:var(--text)}.gallery{flex-direction:column;gap:12px;display:flex}.gallery-row{gap:10px;padding-bottom:6px;display:flex;overflow-x:auto}.gallery-cell{flex:none;width:112px;margin:0}.gallery-cell .paper{width:100%}.gallery-cell figcaption{color:var(--pc);text-align:center;margin-top:4px;font-size:.8rem;font-weight:800}.answer-cell{box-shadow:inset 0 0 0 2px var(--gold), 0 4px 0 #0a0520}@media (prefers-reduced-motion:reduce){.sky .spark,.boss-banner,.result-card{animation:none!important}}.memo-approx{font-family:var(--pixel);color:var(--muted);font-size:2.2rem;line-height:1}.answer-also{font-size:.95rem;line-height:1.4}.gone{font-family:var(--pixel);color:#9c8f73;place-items:center;font-size:3rem;display:grid;position:absolute;inset:0}.blind-note{text-align:center;color:#9c8f73;pointer-events:none;font-size:.9rem;font-weight:800;position:absolute;bottom:10px;left:0;right:0}.handicap-tags{vertical-align:1px;gap:2px;margin-left:6px;font-size:.85em;display:inline-flex}.drawing .missed-line{fill:none;stroke:var(--p0);stroke-width:70px;stroke-linecap:round;stroke-linejoin:round;opacity:.5}.segmented.handicaps{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.game-cards{flex-direction:column;gap:12px;display:flex}.game-card{border-radius:var(--r);background:color-mix(in srgb, var(--pc) 8%, var(--card));border:2px solid color-mix(in srgb, var(--pc) 45%, var(--line));box-shadow:var(--raised);text-align:left;align-items:center;gap:16px;padding:14px;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex}.game-card:hover{border-color:var(--pc);box-shadow:var(--edge), 0 5px 0 #0a0520;transform:translateY(-2px)}.game-card:active{box-shadow:var(--edge), 0 1px 0 #0a0520;transform:translateY(2px)}.game-art{flex:none;place-items:center;width:92px;display:grid;transform:rotate(-3deg)}.game-card:nth-child(2) .game-art{transform:rotate(2deg)}.game-art .glyph{width:86%;height:86%}.game-art-parts{gap:1px;font-size:1.75rem;line-height:1;display:flex}.game-art-parts span{border:1.5px dashed var(--paper-line);border-radius:4px;padding:2px}.game-art-parts span:last-child{transform:translate(2px,5px)rotate(6deg)}.game-art-strokes{grid-template-columns:repeat(3,1fr);gap:2px;width:80%;display:grid}.game-art-strokes .stroke-icon{stroke-width:3.4px;width:100%;height:auto}.game-card-text{flex-direction:column;gap:4px;min-width:0;display:flex}.game-card-name{font-family:var(--pixel);color:var(--pc);overflow-wrap:anywhere;font-size:2.2rem;line-height:.9}.game-card-zh{font-family:var(--body);color:var(--text);vertical-align:.15em;font-size:.55em;font-weight:800}.game-card-line{color:var(--text);font-size:.95rem;line-height:1.35}.game-card-who{background:color-mix(in srgb, var(--pc) 22%, transparent);color:var(--pc);border-radius:999px;align-self:flex-start;margin-top:2px;padding:2px 9px;font-size:.75rem;font-weight:900}.game-head{border-radius:var(--r);background:color-mix(in srgb, var(--pc) 10%, var(--card));border:2px solid var(--pc);box-shadow:var(--raised);align-items:center;gap:16px;padding:14px;display:flex}.game-head-text{flex-direction:column;gap:8px;min-width:0;display:flex}.game-head-name{font-family:var(--pixel);color:var(--pc);overflow-wrap:anywhere;font-size:2.4rem;font-weight:400;line-height:.9}.game-head .rules{color:var(--text)}@media (width<=420px){.game-art{width:76px}.game-head{align-items:flex-start}.game-head .game-art{width:64px}}.rules{color:var(--muted);flex-direction:column;gap:4px;margin:0;padding-left:1.2em;font-size:.9rem;line-height:1.4;display:flex}.option-note{color:var(--muted);margin:0;font-size:.85rem;line-height:1.35;display:none}@media (width<=640px){.segmented.compact{grid-template-columns:1fr 1fr}.segmented.compact.trio{grid-template-columns:repeat(3,1fr)}.segmented.compact button{text-align:center;justify-content:center;align-items:center;min-height:44px;padding:10px 6px}.segmented.compact small{display:none}.option-note{display:block}.settings{gap:14px}}.draw-prompt{margin:0;font-size:1rem}.draw-prompt .memo-gloss,.draw-prompt .memo-approx{font-size:1.6rem}.learned-ch{flex:none;width:44px}.learned-ch .glyph{fill:var(--text)}.field input[aria-invalid=true]{border-color:var(--bad)}.room-players li.away{opacity:.55}.get-limin{max-width:420px;color:inherit;text-align:center;opacity:.85;border:1.5px dashed;border-radius:12px;margin:14px auto 0;padding:10px 12px;font-size:.85rem;font-weight:700;line-height:1.35;text-decoration:none;display:block}.get-limin strong{text-decoration:underline}.limin-mark{flex:none;font-size:.95rem;line-height:1}.limin-line{color:var(--muted);margin:12px 0 0;font-size:.85rem;font-weight:800}.limin-line.saved{color:var(--text)}.limin-line.invite{border:1.5px solid var(--gold);background:var(--card-2);color:var(--text);border-radius:12px;flex-wrap:wrap;justify-content:center;gap:4px 8px;padding:10px 12px;text-decoration:none;display:flex}.limin-line.invite strong{color:var(--gold)}.stats-sheet{z-index:30;overscroll-behavior:contain;background:var(--bg);position:fixed;inset:0;overflow-y:auto}.stats-page{max-width:640px;padding-bottom:max(48px, env(safe-area-inset-bottom));gap:18px}.stats-page .page-title:focus{outline:none}.stats-status{text-align:center;padding:24px 0}.stats-note{flex-direction:column;align-items:flex-start;gap:14px;line-height:1.45;display:flex}.stats-note p{margin:0}.stats-note .btn{text-decoration:none}.stats-totals{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.stats-total{border-radius:var(--r);background:var(--card);border:1.5px solid var(--line);box-shadow:var(--raised);flex-direction:column;gap:6px;padding:14px 12px 12px;display:flex}.stats-total strong{font-family:var(--pixel);color:var(--gold);font-variant-numeric:tabular-nums;font-size:2.4rem;font-weight:400;line-height:.9}.stats-total span{color:var(--muted);font-size:.8rem;font-weight:800}.stats-card{flex-direction:column;display:flex}.stats-card .section-title{margin-bottom:6px}.stats-rows,.stats-board,.stats-recent{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.stats-rows li,.stats-recent li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.stats-rows li:first-child,.stats-recent li:first-child{border-top:none}.stats-rows span{color:var(--muted)}.stats-rows strong{text-align:right}.stats-board{gap:6px;margin-bottom:4px}.stats-board li{border-radius:var(--r-sm);background:var(--bg-2);align-items:center;gap:12px;padding:10px 12px;display:flex}.stats-board li.me{box-shadow:inset 0 0 0 1.5px var(--gold);background:color-mix(in srgb, var(--gold) 12%, var(--bg-2))}.stats-rank{font-family:var(--pixel);color:var(--muted);min-width:1.1em;font-size:1.5rem;line-height:1}.stats-board-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:800;overflow:hidden}.stats-board-num{color:var(--muted);white-space:nowrap;font-size:.85rem}.stats-board-num strong{color:var(--text)}.stats-recent-main,.stats-recent-result{flex-direction:column;gap:2px;min-width:0;display:flex}.stats-recent-result{flex:none;align-items:flex-end}.stats-recent-title{text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.stats-recent li.won .stats-recent-result strong{color:var(--gold)}@media (width<=520px){.stats-totals{grid-template-columns:repeat(2,1fr)}}.stats-link{border:1.5px solid var(--line);background:var(--card);color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:.9rem;font-weight:800;display:inline-flex}.stats-link:hover{border-color:var(--gold)}button.limin-line{background:0 0;border:none;width:100%;padding:0;display:block}button.limin-line strong{color:var(--gold);white-space:nowrap}button.limin-line:hover strong{text-decoration:underline}.stats-page .eyebrow{font-family:var(--mono);letter-spacing:.1em;color:var(--muted);font-size:.8rem;font-weight:700}.stats-page .step-head{flex-direction:column;gap:8px;display:flex}.stats-page .step-head p{margin:0}.stats-best-char{align-items:center;gap:14px;padding:4px 0 12px;display:flex}.stats-best-glyph{border-radius:var(--r-sm);background:var(--paper);width:72px;height:72px;color:var(--ink-color);box-shadow:var(--raised);flex:none;place-items:center;font-size:3rem;line-height:1;display:grid}.stats-best-char>span:last-child{flex-direction:column;gap:2px;display:flex}.stats-best-char strong{font-family:var(--pixel);color:var(--gold);font-size:2.4rem;font-weight:400;line-height:.9}
