:root{--bg:#f4f2ee;--surface:#fff;--text:#1f1d2b;--muted:#6b6878;--line:#d9d5cf;--accent:#2f5f93;--accent-text:#fff;--cell:#fff;--tw:#a23b36;--dw:#efc3c3;--tl:#4f88c6;--dl:#c3e3f1;--qw:#5b1f3a;--ql:#1f4f8f;--tile:#5b2a86;--tile-text:#fff;--tentative:#e9a93b;--tentative-text:#2a1a00;--answer:#2e8b57;--error:#b3261e;--success:#1e7a45;--font-body:"Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Fraunces", Georgia, "Times New Roman", serif;--card:#fffcf7d6;--card-line:#ffffffb3;--radius:12px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-body)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#17151d;--surface:#221f2b;--text:#ece9f3;--muted:#a19db0;--line:#3a3646;--accent:#6ea2dc;--accent-text:#0e1a28;--cell:#2b2836;--tw:#b24a44;--dw:#7a4a55;--tl:#3d6ea6;--dl:#355a6e;--tile:#7a45ab;--error:#f2b8b5;--success:#7fd6a2;--card:#1e1b28d1;--card-line:#ffffff14;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;overflow-x:hidden}body,button,select{font-family:var(--font-body)}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}.loading{text-align:center;color:var(--muted);padding:48px 16px}.app{--board:min(100%, calc(100vh - 250px));min-height:100vh;padding:12px 16px 16px;position:relative}.backdrop{z-index:0;background:var(--bg);position:fixed;inset:0;overflow:hidden}.backdrop-layer{opacity:0;transition:opacity 1.4s;position:absolute}.backdrop-layer.shown{opacity:1}.backdrop-layer svg{width:100%;height:100%;display:block}.topbar,.game,.view-tabs{z-index:1;position:relative}.stage{justify-content:center;display:grid}.app.is-mobile .stage{justify-content:stretch}.card{background:var(--card);border:1px solid var(--card-line);-webkit-backdrop-filter:blur(14px)saturate(1.2);border-radius:18px;box-shadow:0 18px 40px -24px #14102873}.topbar{flex-wrap:wrap;align-items:center;gap:12px 16px;margin-bottom:16px;padding:8px 16px;display:flex}.wardrobe-button{border:1px solid var(--line);background:var(--surface);border-radius:10px;place-items:center;width:36px;height:36px;padding:0;display:grid}.topbar h1{font-family:var(--font-display);letter-spacing:.02em;margin:0 auto 0 0;font-size:1.6rem}.day-nav{align-items:center;gap:4px;display:flex}.day-nav button{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:32px;height:32px;font-size:1.2rem;line-height:1}.day-nav button:disabled{opacity:.35}.day-nav .date{text-align:center;min-width:96px;font-weight:600}.topbar select{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:6px 8px}.game{grid-template-columns:max-content 300px;align-items:start;gap:16px;display:grid}@media (width<=1180px){.game{grid-template-columns:max-content}.board-stage{max-width:min(calc(100vw - 60px), calc(var(--room,100vw) - 60px))}}.play-area{gap:12px;padding:12px 14px 14px}.board-stage{width:calc((100vh - 250px) * var(--aspect,1));max-width:min(calc(100vw - 60px), calc(var(--room,100vw) - 380px));justify-content:center;display:flex;position:relative}.board-stage .board-wrap{width:100%}.play-area{flex-direction:column;align-items:center;gap:16px;min-width:0;display:flex}.board-wrap{--label:18px;grid-template-columns:var(--label) minmax(0, 1fr);grid-template-rows:var(--label) auto;width:min(100%,560px);display:grid;container-type:inline-size}.board-labels{color:var(--muted);place-items:center;font-family:ui-monospace,Menlo,monospace;font-size:11px;display:grid}.board-labels.cols{grid-column:2;grid-template-columns:repeat(var(--cols), 1fr)}.board-labels.rows{grid-row:2;grid-template-rows:repeat(var(--rows), 1fr)}.board{grid-area:2/2;grid-template-columns:repeat(var(--cols), 1fr);background:var(--line);border-radius:6px;gap:2px;padding:2px;display:grid}.cell{aspect-ratio:1;background:var(--cell);border:0;place-items:center;min-width:0;padding:0;display:grid;position:relative}.cell.tw{background:var(--tw);color:#fff}.cell.dw,.cell.start{background:var(--dw)}.cell.tl{background:var(--tl);color:#fff}.cell.dl{background:var(--dl)}.cell.qw{background:var(--qw);color:#ffd76a}.cell.ql{background:var(--ql);color:#ffd76a}.cell.blocked{background:var(--bg);box-shadow:0 0 0 2px var(--bg)}.cell:focus-visible{outline:none}.cell.cursor{outline:3px solid var(--accent);outline-offset:-3px;z-index:1}.premium-label{font-size:clamp(8px, calc(100cqw / var(--cols) * .26), 13px);opacity:.75;font-weight:700}.cursor-arrow{color:var(--accent);font-weight:800;font-size:calc(100cqw / var(--cols) * .45)}.tile{background:var(--tile);width:100%;height:100%;color:var(--tile-text);font-weight:700;font-size:calc(100cqw / var(--cols) * .5);-webkit-user-select:none;user-select:none;border-radius:4px;place-items:center;line-height:1;display:grid;position:relative}.tile sub{font-size:.42em;font-weight:600;position:absolute;bottom:6%;right:8%}.tile.tentative{background:var(--tentative);color:var(--tentative-text)}.tile.answer{background:var(--answer);animation:.35s ease-out pop}@keyframes pop{0%{transform:scale(.6)}}.rack-row{justify-content:center;align-items:center;gap:12px;width:min(100%,560px);display:flex}.rack{gap:6px;display:flex}.rack-tile{--size:clamp(30px, calc((100vw - 32px - 2 * 40px - 24px - 36px) / 7), 52px);width:var(--size);height:var(--size);font-size:calc(var(--size) * .5);border:0;transition:transform .1s}.rack-tile.used{opacity:.2}.rack-tile.selected{box-shadow:0 0 0 3px var(--tentative);transform:translateY(-6px)}.round{background:var(--accent);width:40px;height:40px;color:var(--accent-text);border:0;border-radius:50%;flex:none;place-items:center;padding:0;font-size:1.2rem;font-weight:700;display:grid}.round:disabled{opacity:.4}.actions{gap:12px;display:flex}.primary,.secondary{border-radius:8px;padding:10px 22px;font-weight:700}.primary{background:var(--accent);color:var(--accent-text);border:0;min-width:140px}.secondary{border:1.5px solid var(--accent);color:var(--accent);background:0 0}.primary:disabled,.secondary:disabled{opacity:.4}.link{color:var(--muted);background:0 0;border:0;padding:4px 0;text-decoration:underline}.message{text-align:center;max-width:560px;margin:0;font-weight:600}.message.error{color:var(--error)}.message.success{color:var(--success)}.panel{flex-direction:column;gap:14px;padding:20px;display:flex}.panel-head{justify-content:space-between;align-items:baseline;display:flex}.panel h2{letter-spacing:.12em;text-transform:uppercase;color:var(--tile);margin:0;font-size:.95rem}.panel h3{margin:0 0 8px}.prompt{margin:0;font-style:italic;line-height:1.45}.muted{color:var(--muted)}.small{margin:0;font-size:.875rem;line-height:1.4}.attempts{border-top:1px solid var(--line);padding-top:12px}.attempts ol,.ranked{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.attempts li,.ranked li{font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;display:flex}.score{font-weight:700}.attempt-list .rank{width:4.5ch;color:var(--muted);flex:none;font-weight:600}.attempt-list .words{flex:1}.ranked li.best{color:var(--success);font-weight:700}.hints{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.hint-list{background:color-mix(in srgb, var(--tentative) 18%, transparent);border-radius:12px;flex-direction:column;gap:4px;max-width:560px;margin:0;padding:10px 14px 10px 30px;font-weight:600;line-height:1.35;display:flex}.hints ul{flex-direction:column;gap:4px;margin:0;padding-left:18px;display:flex}.results{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:12px;display:flex}.flash{z-index:3;color:#fff;text-align:center;pointer-events:none;background:#181228e0;border-radius:16px;flex-direction:column;align-items:center;gap:4px;max-width:86%;padding:14px 24px;animation:2.2s forwards flash;display:flex;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.flash strong{font-family:var(--font-display);font-size:clamp(1.6rem,6vw,2.3rem);line-height:1.1}.flash span{opacity:.9;font-weight:700}.flash.success{background:#1e6e46eb}.flash.error{background:#962828e6}.flash.error strong{font-size:1.3rem}@keyframes flash{0%{opacity:0;transform:translate(-50%,-40%)scale(.9)}10%,78%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-54%)scale(.98)}}.attempt-list .words small{color:var(--muted);margin-left:8px;font-size:.8em;font-weight:600}.view-tabs{border-radius:14px;gap:4px;margin-bottom:12px;padding:4px;display:flex}.view-tabs button{background:0 0;border:0;border-radius:10px;flex:1;padding:8px;font-weight:800}.view-tabs button.on{background:var(--accent);color:var(--accent-text)}.view-tabs .count{background:#0000001f;border-radius:999px;min-width:1.4em;margin-left:4px;padding:0 6px;font-size:.8em;display:inline-block}.is-mobile .app,.app.is-mobile{padding:10px 10px 24px}.app.is-mobile .topbar{padding:8px 12px}.app.is-mobile .topbar h1{flex:60%;font-size:1.35rem}.app.is-mobile .wardrobe-button{order:1}.app.is-mobile .day-nav{order:2}.app.is-mobile .topbar select{order:3;margin-left:auto}.app.is-mobile .game{grid-template-columns:minmax(0,1fr)}.app.is-mobile .play-area{padding:12px 8px 16px}.app.is-mobile .board-stage{width:100%;max-width:none}.companion{z-index:2;position:fixed}.puff-host rig-puff{width:100%;display:block}.bubble{background:var(--surface);width:max-content;max-width:min(300px,28vw);color:var(--text);border:1px solid var(--line);opacity:0;transform-origin:100% 100%;pointer-events:none;border-radius:18px;padding:10px 14px;font-weight:700;line-height:1.35;transition:opacity .25s,transform .25s;position:absolute;bottom:96%;right:18%;transform:translateY(6px)scale(.96);box-shadow:0 12px 28px -16px #14102873}.bubble.show{opacity:1;transform:none}.bubble:after{content:"";background:inherit;border-right:1px solid var(--line);border-bottom:1px solid var(--line);width:12px;height:12px;position:absolute;bottom:-7px;right:18px;transform:rotate(45deg)}.wardrobe-backdrop{z-index:10;background:#14102873;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.wardrobe{background:var(--surface);border-radius:22px;flex-direction:column;width:min(960px,100%);max-height:min(720px,100%);display:flex;overflow:hidden;box-shadow:0 30px 80px -30px #0009}.wardrobe header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.wardrobe h2{font-family:var(--font-display);margin:0}.wardrobe .close{color:var(--muted);background:0 0;border:0;font-size:1.8rem;line-height:1}.wardrobe-body{flex:1;grid-template-columns:260px minmax(0,1fr);min-height:0;display:grid}.wardrobe-preview{background:radial-gradient(80% 60% at 50% 60%, #f1ecff 0%, var(--bg) 100%);place-items:center;padding:16px;display:grid}.wardrobe-preview rig-puff{width:220px}.wardrobe-pick{flex-direction:column;min-height:0;display:flex}.wardrobe-tabs{border-bottom:1px solid var(--line);gap:4px;padding:10px 14px;display:flex;overflow-x:auto}.wardrobe-tabs button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:6px 12px;font-weight:800}.wardrobe-tabs button.on{background:var(--accent);color:var(--accent-text)}.wardrobe-items{flex-wrap:wrap;align-content:flex-start;gap:8px;padding:14px;display:flex;overflow-y:auto}.chip{border:1.5px solid var(--line);background:var(--bg);border-radius:999px;padding:8px 14px;font-weight:700}.chip.on,.scene-card.on,.voice-card.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.scene-card,.voice-card{text-align:left;border:1.5px solid var(--line);background:var(--bg);border-radius:14px;flex-direction:column;gap:4px;width:calc(50% - 4px);padding:8px 8px 12px;display:flex}.scene-card span,.voice-card span{color:var(--muted);font-size:.85rem;line-height:1.35}.scene-thumb{background:var(--line);border-radius:10px;height:140px;overflow:hidden}.scene-thumb svg{width:100%;height:100%;display:block}@media (width<=820px){.wardrobe-body{grid-template-columns:minmax(0,1fr)}.wardrobe-preview{padding:8px}.wardrobe-preview rig-puff{width:140px}.scene-card,.voice-card{width:100%}}.help-button{font-size:1.05rem;font-weight:800}.tut-backdrop{z-index:12;background:#14102880;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.tutorial{background:var(--surface);border-radius:22px;width:min(440px,100%);padding:26px 24px 20px;position:relative;box-shadow:0 30px 80px -30px #0009}.tutorial h2{font-family:var(--font-display);margin:0 0 12px;font-size:1.5rem}.tut-body{min-height:150px;line-height:1.45}.tut-body p{margin:0 0 10px}.tut-list{flex-direction:column;gap:8px;margin:0;padding-left:20px;display:flex}.tut-row{gap:6px;margin:12px 0;display:flex}.tut-tile{width:40px;height:40px;font-size:20px}.tut-legend{flex-direction:column;gap:10px;display:flex}.tut-legend>div{align-items:center;gap:6px;display:flex}.tut-legend span:last-child{margin-left:4px}.tut-square{aspect-ratio:auto;border-radius:6px;flex:none;place-items:center;width:36px;height:36px;font-size:11px;font-weight:800;display:grid}.tut-skip{color:var(--muted);background:0 0;border:0;font-weight:700;position:absolute;top:14px;right:16px}.tutorial footer{align-items:center;gap:10px;margin-top:18px;display:flex}.tut-dots{gap:6px;margin-right:auto;display:flex}.tut-dots span{background:var(--line);border-radius:50%;width:8px;height:8px}.tut-dots span.on{background:var(--accent)}.tutorial .primary{min-width:110px}.hint-confirm{background:var(--surface);text-align:center;border-radius:20px;width:min(380px,100%);padding:22px 22px 18px;animation:.18s ease-out pop-in;box-shadow:0 30px 80px -30px #0009}.hint-puff{width:120px;margin:-6px auto 2px}.hint-puff rig-puff{width:100%;display:block}.hint-confirm h2{font-family:var(--font-display);margin:0 0 6px}.hint-confirm p{color:var(--muted);margin:0 0 18px;font-style:italic}.hint-confirm footer{justify-content:center;gap:10px;display:flex}@keyframes pop-in{0%{opacity:0;transform:scale(.92)}}
