:root{--navy-950:#050b1c;--navy-900:#070f24;--navy-800:#0c1a3d;--navy-700:#13275a;--navy-600:#1c3577;--gold-300:#ffe9a8;--gold-400:#f3d27e;--gold-500:#e2b85c;--gold-600:#c99a3b;--gold-700:#9c7426;--ivory:#fff8e7;--text:#f3f1ea;--muted:#a9b2c8;--danger:#e0645c;--ok:#6fcf97;--serif:"Times New Roman", Georgia, "Noto Serif", "Noto Serif CJK JP", "Yu Mincho", serif;--sans:system-ui, -apple-system, "Noto Sans JP", "Noto Sans CJK JP", "Hiragino Sans", "Yu Gothic UI", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{background:var(--navy-900);height:100%;color:var(--text);font-family:var(--sans);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0}button{font:inherit;color:inherit;touch-action:manipulation}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.draw-screen{background:radial-gradient(ellipse at 50% 35%, #2a4a9673, transparent 60%), radial-gradient(ellipse at 50% 120%, #e2b85c1f, transparent 55%), linear-gradient(180deg, var(--navy-800), var(--navy-950));-webkit-user-select:none;user-select:none;touch-action:manipulation;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.stage-frame{pointer-events:none;position:absolute}.stage-header{white-space:nowrap;border-bottom:1px solid #e2b85c59;justify-content:space-between;align-items:center;padding:0 .4em;display:flex;position:absolute}.stage-title{font-family:var(--serif);letter-spacing:.18em;color:var(--gold-400);text-shadow:0 0 .4em #e2b85c59;text-overflow:ellipsis;margin-right:1em;overflow:hidden}.stage-counter{color:var(--text);letter-spacing:.06em;font-size:.8em}.stage-counter b{color:var(--gold-300);font-size:1.25em;font-family:var(--serif)}.flip-card{background:linear-gradient(150deg, #ffffff14, transparent 40%), linear-gradient(160deg, var(--navy-600), var(--navy-800) 70%);cursor:pointer;will-change:transform;border:0;border-radius:6%;justify-content:center;align-items:center;padding:0;transition:transform .65s cubic-bezier(.2,.8,.2,1),width .65s cubic-bezier(.2,.8,.2,1),height .65s cubic-bezier(.2,.8,.2,1),font-size .65s cubic-bezier(.2,.8,.2,1),filter .2s;display:flex;position:absolute;top:0;left:0;box-shadow:inset 0 0 0 2px #e2b85cd9,inset 0 0 0 5px #070f24e6,inset 0 0 0 6px #e2b85c66,0 .6vmin 2vmin #0000008c}.flip-card:active{filter:brightness(1.25)}.flip-card:disabled{cursor:default;opacity:.6}.flip-letter{font-family:var(--serif);background:linear-gradient(180deg, var(--gold-300) 10%, var(--gold-500) 55%, var(--gold-700) 95%);color:#0000;filter:drop-shadow(0 .03em .02em #0009);-webkit-background-clip:text;background-clip:text;font-weight:700;line-height:1}.reveal-layer{z-index:20;position:absolute;top:0;bottom:0;left:0;right:0}.reveal-backdrop{background:radial-gradient(#050b1c8c,#02050ee6);animation:.6s both fadeIn;position:absolute;top:0;bottom:0;left:0;right:0}.phase-leaving{animation:.32s forwards fadeOut}@keyframes fadeIn{0%{opacity:0}}@keyframes fadeOut{to{opacity:0}}.reveal-pos{will-change:transform;position:absolute}.reveal-pos.wide{transition:left .55s cubic-bezier(.2,.8,.2,1),width .55s cubic-bezier(.2,.8,.2,1)}.reveal-pos.wide .prize-name{transition:font-size .55s cubic-bezier(.2,.8,.2,1)}.flipper{transform-style:preserve-3d;will-change:transform;position:absolute;top:0;bottom:0;left:0;right:0}.face{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:5%;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.face.front{background:linear-gradient(150deg, #ffffff1a, transparent 40%), linear-gradient(160deg, var(--navy-600), var(--navy-800) 70%);box-shadow:inset 0 0 0 3px var(--gold-500), inset 0 0 0 9px var(--navy-900), inset 0 0 0 11px #e2b85c80, 0 2vmin 6vmin #0009}.face.back{background:radial-gradient(ellipse at 50% 30%, #fff, transparent 70%), linear-gradient(160deg, var(--ivory), #f5e2b0 60%, var(--gold-500));box-shadow:inset 0 0 0 3px var(--gold-600), inset 0 0 0 9px var(--ivory), inset 0 0 0 11px var(--gold-500), 0 0 8vmin #f3d27e8c;color:var(--navy-900);flex-direction:column;justify-content:space-between;padding:7% 0 8%;transform:rotateY(180deg)}.back-letter{font-family:var(--serif);color:var(--gold-700);letter-spacing:.1em;font-weight:700}.prize-name{text-align:center;overflow-wrap:anywhere;word-break:normal;line-break:strict;flex:1;justify-content:center;align-items:center;width:100%;font-weight:800;line-height:1.25;animation:.5s ease-out both prizeIn;display:flex;overflow:hidden}@keyframes prizeIn{0%{opacity:.2;transform:scale(.92)}}.congrats{font-family:var(--serif);letter-spacing:.22em;color:var(--gold-700)}.reveal-hint{text-align:center;color:#ffffff8c;letter-spacing:.1em;pointer-events:none;animation:1.2s .8s both fadeIn;position:absolute;bottom:2.5%;left:0;right:0}.reveal-hint.strong{color:var(--gold-300);animation:1.6s ease-in-out infinite pulse;bottom:6%}@keyframes pulse{50%{opacity:.45}}.cancel-btn{color:#ffffffd9;z-index:25;background:#050b1cb3;border:1px solid #ffffff59;border-radius:999px;padding:.5em 1.1em;font-size:14px;position:absolute;bottom:3%;right:2%}.confetti-canvas{pointer-events:none;z-index:30;width:100%;height:100%;position:fixed;top:0;bottom:0;left:0;right:0}.finished{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.4em;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.finished-title{font-family:var(--serif);letter-spacing:.15em;color:var(--gold-400);text-shadow:0 0 .5em #e2b85c66;font-size:1.6em}.finished-sub{font-size:.6em}.finished-thanks{color:var(--muted);font-size:.5em}.menu-btn{color:#fff6;z-index:40;background:#ffffff0d;border:1px solid #ffffff26;border-radius:50%;width:40px;height:40px;font-size:20px;line-height:1;position:absolute;bottom:6px;right:6px}.menu-panel{z-index:41;background:#070f24f5;border:1px solid #e2b85c80;border-radius:10px;flex-direction:column;min-width:200px;display:flex;position:absolute;bottom:54px;right:8px;overflow:hidden}.menu-panel button{text-align:left;background:0 0;border:0;border-bottom:1px solid #ffffff14;padding:12px 16px;font-size:15px}.storage-alert{z-index:45;border:1px solid var(--danger);background:#5a1712;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;max-width:94vw;padding:8px 14px;font-size:14px;display:flex;position:absolute;top:8px;left:50%;transform:translate(-50%)}.rotate-notice{z-index:100;background:var(--navy-950);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.rotate-icon{color:var(--gold-500);font-size:72px;animation:2s ease-in-out infinite rot}@keyframes rot{50%{transform:rotate(90deg)}}.rotate-notice p{margin:0;font-size:20px}.rotate-notice small{color:var(--muted)}.guide{pointer-events:none;position:absolute}.viewport-guide{border:2px solid #e0645c99;top:0;bottom:0;left:0;right:0}.safe-guide{border:2px dashed #e2b85cbf}.corner{border:0 solid var(--danger);pointer-events:none;width:6vmin;height:6vmin;position:absolute}.corner-tl{border-width:5px 0 0 5px;top:0;left:0}.corner-tr{border-width:5px 5px 0 0;top:0;right:0}.corner-bl{border-width:0 0 5px 5px;bottom:0;left:0}.corner-br{border-width:0 5px 5px 0;bottom:0;right:0}.test-panel{z-index:35;border:1px solid var(--gold-600);-webkit-user-select:text;user-select:text;background:#050b1cf0;border-radius:12px;width:min(720px,94vw);max-height:92vh;padding:12px 16px;font-size:13px;position:absolute;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.test-panel h2{color:var(--gold-400);margin:0 0 6px;font-size:16px}.test-panel dl{grid-template-columns:auto 1fr;gap:2px 12px;margin:0 0 8px;display:grid}.test-panel dt{color:var(--muted)}.test-panel dd{margin:0}.test-row{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0;display:flex}.test-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.hint{color:var(--muted);margin:8px 0 0}.chip{background:0 0;border:1px solid #ffffff40;border-radius:999px;padding:4px 10px;font-size:13px}.chip.on{background:var(--gold-500);color:var(--navy-900);border-color:var(--gold-500);font-weight:700}.setup-screen{background:var(--navy-900);max-width:820px;min-height:100%;margin:0 auto;padding:16px 16px 40px}.setup-head h1{font-size:22px;font-family:var(--serif);letter-spacing:.05em;margin:4px 0 8px}.gold{color:var(--gold-500)}.status-row{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.pill{border:1px solid;border-radius:999px;padding:3px 10px;font-size:12px}.pill.ok{color:var(--ok)}.pill.warn{color:var(--gold-400)}.pill.ng{color:var(--danger)}.btn-pill{background:var(--gold-500);color:var(--navy-900);border-color:var(--gold-500);font-weight:700}.card{background:var(--navy-800);border:1px solid #ffffff14;border-radius:14px;margin-bottom:14px;padding:14px 16px}.card.highlight{border-color:#e2b85c8c;box-shadow:inset 0 0 0 1px #e2b85c26}.card h2{align-items:center;gap:8px;margin:0 0 10px;font-size:17px;display:flex}.danger-zone{border-color:#e0645c59}.field{margin:10px 0;display:block}.field>span{color:var(--muted);margin-bottom:4px;font-size:13px;display:block}input[type=text],input[type=number],select,textarea{width:100%;font:inherit;color:var(--text);background:var(--navy-950);border:1px solid #ffffff2e;border-radius:8px;padding:9px 10px;font-size:16px}input:disabled{opacity:.55}input[type=range]{width:100%;accent-color:var(--gold-500)}.row{align-items:center;gap:10px;display:flex}.stepper{align-items:center;gap:8px;display:flex}.stepper input{text-align:center;width:80px}.stepper button{background:var(--navy-700);border:1px solid #fff3;border-radius:10px;width:44px;height:44px;font-size:22px}.stepper button:disabled{opacity:.35}.prize-list{gap:6px;margin:0;padding-left:2.2em;display:grid}.prize-list li::marker{color:var(--gold-500)}.count{border-radius:999px;padding:2px 10px;font-size:13px}.count.ok{color:var(--ok);background:#6fcf9729}.count.ng{color:var(--danger);background:#e0645c29}.muted{color:var(--muted);font-size:13px}.err{color:var(--danger);margin:6px 0 0;font-size:13px}.warn{color:var(--gold-400);margin:6px 0 0;font-size:13px}.ok-text{color:var(--ok)}.alert{border:1px solid var(--danger);background:#e0645c26;border-radius:10px;margin-bottom:14px;padding:10px 14px;font-size:14px}.actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.btn{background:var(--navy-700);border:1px solid #ffffff38;border-radius:10px;min-height:44px;padding:10px 16px;font-size:15px}.btn:disabled{opacity:.4}.btn.small{min-height:36px;padding:6px 12px;font-size:13px}.btn.big{width:100%;padding:14px 22px;font-size:17px}.btn.gold{background:linear-gradient(180deg, var(--gold-400), var(--gold-600));color:var(--navy-950);border-color:var(--gold-600);font-weight:800}.btn.danger{color:#ffb3ad;background:#e0645c1a;border-color:#e0645c99}.foot{text-align:center;margin-top:20px}.ball-grid{flex-wrap:wrap;gap:10px;margin:10px 0;display:flex}.ball{border:2px solid var(--gold-500);width:56px;height:56px;color:var(--navy-900);font-family:var(--serif);opacity:.55;background:radial-gradient(circle at 35% 30%,#fff,#e8e8e8 40%,#b9b9b9);border-radius:50%;font-size:24px;font-weight:800}.ball.on{opacity:1;box-shadow:0 0 0 3px var(--ok)}.modal-backdrop{z-index:200;background:#000000a6;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--navy-800);border:1px solid var(--gold-600);width:min(520px,100%);max-height:90vh;color:var(--text);border-radius:14px;padding:16px 18px;overflow:auto}.modal h2{color:var(--gold-400);margin:0 0 8px;font-size:18px}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.modal.results ol{padding-left:1.4em}.modal.results li{margin:4px 0}.modal.results li b{color:var(--gold-400);font-family:var(--serif);margin-right:8px}.hold-btn{border:1px solid var(--gold-600);background:var(--navy-700);-webkit-user-select:none;user-select:none;touch-action:none;border-radius:10px;min-height:44px;padding:10px 18px;position:relative;overflow:hidden}.hold-btn.danger{border-color:var(--danger)}.hold-fill{transform-origin:0;background:#e2b85c73;position:absolute;top:0;bottom:0;left:0;right:0}.hold-btn.danger .hold-fill{background:#e0645c8c}.hold-label{font-weight:700;position:relative}.resume-screen{background:linear-gradient(180deg, var(--navy-800), var(--navy-950));text-align:center;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.resume-title{color:var(--gold-400);font-size:clamp(20px,5vmin,44px);font-family:var(--serif)}.resume-sub{margin:10px 0 24px;font-size:clamp(14px,3vmin,24px)}.resume-tap{font-size:clamp(16px,3.6vmin,30px);animation:1.6s ease-in-out infinite pulse}.resume-setup{opacity:.6;position:absolute;bottom:10px;left:10px}.toast{z-index:300;border:1px solid var(--gold-600);background:#070f24f5;border-radius:10px;max-width:92vw;padding:10px 36px 10px 14px;font-size:14px;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.toast-x{color:var(--muted);position:absolute;top:8px;right:12px}@media (prefers-reduced-motion:reduce){.flip-card{transition-duration:.2s}}
