:root{--bg-top:#1b1e4b;--bg-bottom:#3a2160;--paper:#f4e8cc;--paper-shade:#e3d2a8;--paper-edge:#c9b58a;--ink:#23264f;--cream:#fbf3e0;--spot:#2d66d8;--spot-dark:#1d4aa8;--ring:#d9600d;--miss:#4c3569;--miss-ink:#b8a8d6;--coral:#e4573f;--coral-dark:#b43a28;--muted:#c9bfe0;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--tile:56px;--gap:6px;--key-h:50px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{background:linear-gradient(180deg, var(--bg-top), var(--bg-bottom)) fixed;height:100%;color:var(--cream);font-family:var(--font);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}#game{position:fixed;inset:0}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:3px solid var(--cream);outline-offset:2px}.loading{color:var(--muted);letter-spacing:.04em;place-items:center;margin:0;font-size:15px;display:grid;position:absolute;inset:0}.loading[hidden]{display:none}#app{box-sizing:border-box;width:100%;max-width:500px;padding:max(6px, env(safe-area-inset-top)) 12px max(8px, env(safe-area-inset-bottom));flex-direction:column;align-items:center;margin:0 auto;display:flex;position:absolute;inset:0}#app[hidden]{display:none}.head{align-items:center;width:100%;min-height:44px;display:flex}.brand{letter-spacing:.02em;color:var(--cream);margin:0;font-size:24px;font-weight:800;line-height:1}.brand span{color:#ffb066}.bar{justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:44px;display:flex}.seg{background:#00000047;border-radius:12px;display:flex}.seg button{min-width:78px;min-height:44px;color:var(--muted);background:0 0;border:0;border-radius:12px;padding:0 14px;font-size:15px;font-weight:700}.seg button[aria-selected=true]{background:var(--paper);color:var(--ink);box-shadow:0 2px 0 var(--paper-edge)}.icons{gap:8px;display:flex}.icon{background:#00000047;border:0;border-radius:12px;place-items:center;width:44px;height:44px;padding:0;display:grid}.icon img{object-fit:contain;pointer-events:none;width:30px;height:30px}.qmark{color:var(--cream);font-size:22px;font-weight:800}.week-row{align-items:center;gap:8px;width:100%;margin:2px 0 4px;display:flex}.ribbon{background:0 0;border:0;border-radius:10px;flex:1;min-width:0;height:44px;padding:0;display:block;position:relative}.hint{background:#00000047;border:0;border-radius:12px;flex:none;justify-content:center;align-items:center;gap:6px;min-width:64px;height:44px;padding:0 10px;display:flex}.hint img{object-fit:contain;pointer-events:none;width:28px;height:28px}.hint b{min-width:12px;font-size:18px}.hint.empty b{color:var(--miss-ink)}.hint:disabled{opacity:.55}.stage{flex:none;justify-content:center;display:flex;position:relative}.toast{z-index:5;opacity:0;background:var(--paper);max-width:92%;color:var(--ink);white-space:nowrap;pointer-events:none;box-shadow:0 3px 0 var(--paper-edge);border-radius:10px;padding:8px 14px;font-size:15px;font-weight:800;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%,6px)}.toast.on{opacity:1;transform:translate(-50%)}.coach{text-align:center;max-width:100%;min-height:22px;color:var(--muted);margin:6px 0 0;font-size:14px;line-height:22px}.coach b{color:var(--cream)}.coach .mk{vertical-align:-3px;margin:0 2px 0 6px}.mk{box-sizing:border-box;border-radius:50%;width:16px;height:16px;display:inline-block}.mk.spot{background:var(--spot)}.mk.ring{border:3px solid var(--ring);background:var(--paper)}.mk.miss{background:var(--miss);border-radius:4px}.board{grid-template-rows:repeat(6, var(--tile));gap:var(--gap);display:grid}.row{grid-template-columns:repeat(5, var(--tile));gap:var(--gap);display:grid}.tile{width:var(--tile);height:var(--tile);perspective:420px;position:relative}.half{height:50%;position:absolute;left:0;right:0;overflow:hidden}.half.top .fr{border-radius:8px 8px 0 0;overflow:hidden}.half.top{transform-origin:50% 100%;transform-style:preserve-3d;top:0;overflow:visible}.half.bot{bottom:0}.fr,.bk{backface-visibility:hidden;position:absolute;inset:0}.bk{background:linear-gradient(180deg, var(--paper-shade), var(--paper));border-radius:8px 8px 0 0;transform:rotateX(180deg)}.face{box-sizing:border-box;width:100%;height:200%;color:var(--cream);font-weight:800;font-size:calc(var(--tile) * .56);text-transform:uppercase;background:#f4e8cc14;border-radius:8px;place-items:center;line-height:1;display:grid;position:absolute;left:0;box-shadow:inset 0 0 0 2px #f4e8cc33}.half.top .face{top:0}.half.bot .face{top:-100%}.face b{z-index:1;font-weight:800;position:relative}.face:after{content:"";pointer-events:none;background:#23264f38;height:1px;position:absolute;top:50%;left:4px;right:4px}.face.typed{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 2px var(--paper-edge), 0 2px 0 var(--paper-edge)}.face.ghost{color:#f4e8cc80;box-shadow:inset 0 0 0 2px #2d66d8bf}.face.ghost:before{content:"";background:var(--spot);border-radius:50%;width:8px;height:8px;position:absolute;top:7px;left:7px}.face.spot{background:var(--paper);color:var(--cream);box-shadow:0 2px 0 var(--paper-edge)}.face.spot:before{content:"";background:radial-gradient(circle at 35% 30%, #4f87f0, var(--spot) 55%, var(--spot-dark));border-radius:50%;width:84%;height:84%;position:absolute}.face.ring{background:var(--paper);color:var(--ink);box-shadow:0 2px 0 var(--paper-edge)}.face.ring:before{content:"";box-sizing:border-box;border:calc(var(--tile) * .1) solid var(--ring);border-radius:50%;width:84%;height:84%;position:absolute}.face.miss{background:var(--miss);color:var(--miss-ink);box-shadow:0 2px #2c1d3f}.face.miss:after{background:#00000040}.kb{flex-direction:column;gap:6px;width:100%;margin-top:auto;padding-top:6px;display:flex}.kb-row{justify-content:center;gap:4px;display:flex}.key{min-width:0;max-width:44px;height:var(--key-h);background:var(--paper);color:var(--ink);text-transform:uppercase;box-shadow:0 3px 0 var(--paper-edge);border:0;border-radius:8px;flex:1 1 0;padding:0;font-size:18px;font-weight:800;transition:transform 60ms;position:relative}.key.wide{flex:1.6 1 0;max-width:68px;font-size:13px}.key:active{box-shadow:0 1px 0 var(--paper-edge);transform:translateY(2px)}.key:before{content:"";position:absolute;inset:-3px -2px}.key.spot{background:var(--spot);color:var(--cream);box-shadow:0 3px 0 var(--spot-dark)}.key.ring{background:var(--paper);box-shadow:inset 0 0 0 3px var(--ring), 0 3px 0 var(--paper-edge)}.key.miss{background:var(--miss);color:var(--miss-ink);box-shadow:0 3px #2c1d3f}.key svg{fill:currentColor;pointer-events:none;width:22px;height:22px}.key.pulse{box-shadow:0 0 0 3px #ffb066, 0 3px 0 var(--paper-edge);animation:.9s ease-in-out infinite pulse}@keyframes pulse{50%{transform:scale(1.14)}}.week{border-radius:10px;width:100%;display:flex;position:relative;overflow:hidden}.week.big{aspect-ratio:7/4}.week.mini{height:44px;box-shadow:0 0 0 2px #f4e8cc47,0 2px #0000004d}.panel{perspective:500px;flex:1 1 0;min-width:0;position:relative;overflow:hidden}.panel+.panel{box-shadow:inset 1px 0 #23264f47}.pimg{background-repeat:no-repeat;background-size:700%;background-position:calc(var(--i) * 100% / 6) 50%;transform-origin:0;position:absolute;inset:0}.pfold{background:linear-gradient(90deg, #23264f38, transparent 30%, transparent 70%, #ffffff38), linear-gradient(180deg, var(--paper), var(--paper-shade));color:#23264f8c;place-items:center;font-size:14px;font-weight:800;display:grid;position:absolute;inset:0}.week.big .pfold{font-size:22px}.panel.glow:after{content:"";pointer-events:none;animation:1s ease-out forwards glow;position:absolute;inset:0;box-shadow:inset 0 0 22px 6px #ffd28cf2,inset 0 0 0 3px #ffb066e6}@keyframes glow{0%{opacity:1}to{opacity:0}}.panel.open:not(.unfolding) .pfold,.panel:not(.open) .pimg{display:none}.week.mini .pfold{font-size:12px}.panel.today .pfold:after{content:"";border:2px solid var(--ring);border-radius:6px;position:absolute;inset:3px}.days{width:100%;margin-top:6px;display:flex}.days span{color:var(--muted);flex:1 1 0;justify-items:center;gap:4px;font-size:12px;display:grid}.days .mk{width:14px;height:14px}.days .mk.todo{background:0 0;border:2px solid #c9bfe080;border-radius:4px}#sheets{pointer-events:none;position:absolute;inset:0}.backdrop{padding:max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));pointer-events:auto;background:#0e0c26b8;place-items:center;animation:.18s ease-out fade;display:grid;position:absolute;inset:0}@keyframes fade{0%{opacity:0}}.sheet{box-sizing:border-box;background:var(--paper);width:min(100%,420px);max-height:100%;color:var(--ink);box-shadow:0 0 0 3px var(--ink), 0 8px 0 3px #00000040;-webkit-user-select:text;user-select:text;border-radius:16px;padding:18px 16px 16px;animation:.22s cubic-bezier(.2,1.1,.4,1) rise;position:relative;overflow-y:auto}@keyframes rise{0%{opacity:0;transform:translateY(18px)scale(.97)}}.sheet h2{margin:0 28px 6px 0;font-size:22px;line-height:1.15}.sheet h3{letter-spacing:.08em;text-transform:uppercase;color:#23264fb3;margin:14px 0 6px;font-size:13px}.sheet p{margin:6px 0;font-size:15px;line-height:1.4}.sheet .art{float:right;object-fit:contain;margin:2px 36px 4px 8px}.close{width:44px;height:44px;color:var(--ink);background:0 0;border:0;border-radius:12px;font-size:26px;line-height:1;position:absolute;top:6px;right:6px}.btns{gap:8px;margin-top:14px;display:flex}.btn{background:var(--paper-shade);min-height:48px;color:var(--ink);box-shadow:0 3px 0 var(--paper-edge);border:0;border-radius:12px;flex:1;padding:0 14px;font-size:16px;font-weight:800}.btn.primary{background:var(--coral);color:#fff;box-shadow:0 3px 0 var(--coral-dark)}.btn:active{box-shadow:none;transform:translateY(2px)}.btn:disabled{opacity:.55}.legend{gap:8px;margin:10px 0 4px;display:grid}.legend>div{align-items:center;gap:12px;display:flex}.legend .demo{--tile:44px;flex:none;width:44px;height:44px;position:relative}.legend .demo .face{border-radius:8px;height:100%;top:0}.legend .demo .face:after{display:none}.big-word{letter-spacing:.14em;text-transform:uppercase;margin:4px 0 2px;font-size:30px;font-weight:800}.sub{color:#23264fbf}.nums{text-align:center;grid-template-columns:repeat(4,1fr);gap:4px;margin:8px 0;display:grid}.nums b{font-size:26px;font-weight:800;display:block}.nums small{color:#23264fbf;font-size:11px;line-height:1.2}.dist{gap:4px;display:grid}.dist div{grid-template-columns:14px 1fr;align-items:center;gap:8px;font-size:13px;font-weight:700;display:grid}.dist i{background:var(--paper-edge);min-width:20px;height:20px;color:var(--ink);text-align:right;box-sizing:border-box;border-radius:5px;padding:0 6px;font-size:12px;font-style:normal;line-height:20px;display:block}.dist .hit i{background:var(--spot);color:#fff}.toggle{width:100%;min-height:48px;color:var(--ink);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:0;display:flex}.toggle span small{opacity:.75;font-size:12px;display:block}.toggle .sw{background:var(--paper-edge);border-radius:15px;flex:none;width:52px;height:30px;position:relative}.toggle .sw:after{content:"";background:var(--paper);border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px #0000004d}.toggle[aria-checked=true] .sw{background:var(--spot)}.toggle[aria-checked=true] .sw:after{transform:translate(22px)}.share-box{box-sizing:border-box;border:2px solid var(--paper-edge);background:var(--cream);width:100%;color:var(--ink);resize:none;border-radius:8px;margin-top:10px;padding:8px;font:14px/1.4 ui-monospace,Consolas,monospace}.gallery{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.gallery div{aspect-ratio:7/4;background-color:var(--paper-shade);box-shadow:inset 0 0 0 2px var(--paper-edge);background-size:cover;border-radius:6px;position:relative}.gallery div.locked{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 70 40'%3E%3Cpath d='M6 34 24 12l12 14 8-9 20 17z' fill='%2323264f' fill-opacity='.14'/%3E%3Cpath d='M24 12 30 34M44 17l-4 17' stroke='%2323264f' stroke-opacity='.12' fill='none'/%3E%3Ccircle cx='54' cy='11' r='4' fill='%2323264f' fill-opacity='.12'/%3E%3C/svg%3E") center / 82% no-repeat, repeating-linear-gradient(90deg, var(--paper-shade) 0 14px, var(--paper) 14px 15px)}.gallery div.now{box-shadow:0 0 0 3px var(--ring)}.countdown{font-variant-numeric:tabular-nums;font-weight:800}.center{text-align:center}#fx{pointer-events:none;z-index:30;position:absolute;inset:0;overflow:hidden}.bit{will-change:transform;border-radius:2px;width:10px;height:14px;position:absolute;top:0;left:0}.pop{background:var(--paper);color:var(--ink);white-space:nowrap;box-shadow:0 3px 0 var(--paper-edge);will-change:transform, opacity;border-radius:12px;padding:6px 14px;font-size:20px;font-weight:800;position:absolute;top:0;left:0}.pop.coin{background:#ffb066}@media (prefers-reduced-motion:reduce){.backdrop,.sheet,.key.pulse{animation:none}}@media (height<=560px){.brand{font-size:20px}.key{height:44px}.coach{display:none}}
