:root{--bg: #0f0f12;--panel: #1a1b22;--text: #f2f2f5;--muted: #9aa0a6;--accent: #ffcc00;--accent-2: #ff3b3b;--border: #2a2c36}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic,sans-serif;overscroll-behavior:none}#app{max-width:820px;margin:0 auto;padding:16px}.header{text-align:center;padding:8px 0 12px}.header h1{margin:0;font-size:32px;letter-spacing:.04em;line-height:1.2}.header .lead{margin:8px 0 0;font-size:16px;color:var(--accent);font-weight:700}.header .sub{margin:4px 0 0;color:var(--muted);font-size:12px}.main{display:flex;flex-direction:column;gap:16px}.canvas-wrap{position:relative;width:100%;max-width:600px;margin:0 auto;aspect-ratio:750 / 1000;background:#000;border-radius:12px;overflow:hidden;box-shadow:0 10px 30px #0006;touch-action:none}#stage{width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none}.loading{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#fff;z-index:10}.loading.hidden{display:none}.loading p{margin:0;font-size:14px}.spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.controls{display:flex;flex-direction:column;gap:12px;padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:12px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row.hint p{margin:0;color:var(--muted);font-size:12px}.field{display:flex;flex-direction:column;gap:4px;flex:1 1 240px}.field span{font-size:12px;color:var(--muted)}.field input{background:#0f1015;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:15px;outline:none}.field input:focus{border-color:var(--accent)}.btn{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:1px solid var(--border);background:#23242c;color:var(--text);padding:10px 14px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:transform .05s ease,background .15s ease}.btn:hover{background:#2b2c36}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);color:#111;border-color:var(--accent)}.btn.primary:hover{background:#ffd633}.btn.x-btn{background:#000;color:#fff;border-color:#2a2a2a}.btn.gold{background:linear-gradient(135deg,#ffe27a,#ffb700 45%,#b87b00);color:#3a2300;border-color:#8a5d00;text-shadow:0 1px 0 rgba(255,255,255,.35);box-shadow:0 0 0 1px #ffe6824d inset,0 4px 12px #b87b0059}.btn.gold:hover{background:linear-gradient(135deg,#fff0a3,#ffc72b 45%,#d08e00)}.promo{margin-top:20px}.promo-link{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;text-decoration:none;color:#111;background:linear-gradient(135deg,#ffd94a,#ff9a2b);box-shadow:0 6px 20px #ff9b2b40;font-weight:700;transition:transform .08s ease,box-shadow .15s ease}.promo-link:hover{transform:translateY(-1px);box-shadow:0 10px 24px #ff9b2b59}.promo-link:active{transform:translateY(1px)}.promo-label{font-size:13px;letter-spacing:.02em}.promo-title{flex:1;font-size:16px}.promo-arrow{font-size:22px}.about{margin-top:20px;padding:18px 16px 24px;background:var(--panel);border:1px solid var(--border);border-radius:12px;line-height:1.7;font-size:14px;color:var(--text)}.about h2{margin:0 0 10px;font-size:16px;letter-spacing:.04em;color:var(--accent)}.about p{margin:0 0 12px;color:#d8d9df}.about .points{margin:0 0 14px;padding-left:18px;color:#d8d9df}.about .points li{margin-bottom:6px}.about .points strong{color:var(--accent)}.about .about-promo{padding-top:10px;border-top:1px dashed var(--border);color:#e8e8ec}.about .about-promo strong{color:var(--accent)}.about .credit{margin-top:14px;font-size:11px;color:var(--muted);text-align:center}.about .version{margin:6px 0 0;font-size:10px;color:var(--muted);text-align:center;letter-spacing:.08em;opacity:.7}.notice{margin-top:16px;padding-top:14px;border-top:1px dashed var(--border)}.notice h3{margin:0 0 6px;font-size:13px;color:var(--accent);letter-spacing:.04em}.notice p,.notice ul{margin:0;font-size:13px;color:#d8d9df;line-height:1.7}.notice ul{padding-left:18px}.notice li{margin-bottom:4px}.notice a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
