:root{--gold: #d7b56d;--gold-2: #f3e1a8;--ink: #e8e4d9;--muted: #b7b0a0;--glass: rgba(12, 16, 24, .62);--line: rgba(215, 181, 109, .28);--shadow: 0 18px 50px rgba(0, 0, 0, .45)}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%;overflow:hidden;background:#07090f;color:var(--ink);font-family:Noto Sans SC,PingFang SC,sans-serif}#scene{display:block;width:100%;height:100%}.vignette{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 42%,rgba(0,0,0,.55) 100%),linear-gradient(180deg,rgba(0,0,0,.28),transparent 18%,transparent 78%,rgba(0,0,0,.4))}.topbar,.panel,.toast,.modal{position:absolute;z-index:2}.topbar{top:22px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:28px;padding:12px 18px 12px 14px;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:18px;box-shadow:var(--shadow)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(160deg,#f4e2b0,#b8893a);color:#2a1c08;font-size:22px}.brand h1{font-family:Cormorant Garamond,Songti SC,serif;font-size:26px;letter-spacing:.12em;line-height:1}.brand p{margin-top:4px;color:var(--muted);font-size:12px;letter-spacing:.18em}.status-pill{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);font-size:13px}.dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 12px currentColor}.dot.white{background:#f3efe4;color:#f3efe4}.dot.black{background:#2b2b32;color:#8d8d96;box-shadow:0 0 12px #8d8d96}.panel{top:108px;width:248px;padding:18px;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:20px;box-shadow:var(--shadow)}.panel-left{left:22px}.panel-right{right:22px;height:calc(100% - 140px);display:flex;flex-direction:column}.panel-title{font-size:12px;letter-spacing:.28em;color:var(--gold);margin-bottom:14px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:12px;color:var(--muted)}select,.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(215,181,109,.22);background:#ffffff0a;color:var(--ink);border-radius:12px;padding:10px 12px;font:inherit}select:focus,.btn:focus{outline:1px solid var(--gold)}.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.btn{cursor:pointer;transition:.2s ease}.btn:hover{border-color:var(--gold);transform:translateY(-1px)}.btn.primary{background:linear-gradient(180deg,#ead59a,#c49a4a);color:#2b1c08;font-weight:700;border:none}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.hint{margin:4px 0 10px;font-size:11px;line-height:1.55;color:var(--muted);letter-spacing:.04em}.captured{margin-top:16px;display:grid;gap:12px;font-size:12px;color:var(--muted)}.cap-row{min-height:28px;margin-top:6px;letter-spacing:.04em;font-size:18px;color:var(--ink)}.history{overflow:auto;padding-right:6px;list-style:none;flex:1;font-variant-numeric:tabular-nums}.history li{display:grid;grid-template-columns:28px 1fr 1fr;gap:8px;padding:8px 6px;border-bottom:1px solid rgba(255,255,255,.05);font-size:13px}.history li span:first-child{color:var(--gold)}.toast{left:50%;bottom:28px;transform:translate(-50%);padding:12px 18px;border-radius:14px;background:var(--glass);border:1px solid var(--line);opacity:0;pointer-events:none;transition:.25s ease;letter-spacing:.12em}.toast.show{opacity:1}.modal{top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#00000073}.modal.hidden{display:none}.modal-card{width:min(420px,calc(100% - 40px));padding:28px;border-radius:22px;background:linear-gradient(180deg,#1c202af5,#0c0e14f5);border:1px solid var(--line);text-align:center;box-shadow:var(--shadow)}.modal-card h2{font-family:Cormorant Garamond,serif;font-size:32px;margin-bottom:8px}.modal-card p{color:var(--muted);margin-bottom:18px}.promo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.promo-grid button{height:72px;font-size:32px;border-radius:16px;border:1px solid var(--line);background:#ffffff0a;color:var(--ink);cursor:pointer}.promo-grid button:hover{border-color:var(--gold)}@media(max-width:980px){.panel-right{display:none}.panel-left{width:min(248px,calc(100% - 28px))}.topbar{left:14px;right:14px;transform:none;width:auto}}
