:root{--gold:#e6c879;--wine:#9a2e3c;--cream:#f3e7c8;--dim:#b9a58a;--ink:#160f16;--panel:#20161d}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{margin:0;background:#120b10;color:var(--cream);font-family:system-ui,Segoe UI,Arial,sans-serif;overflow:hidden;overscroll-behavior:none}
.ct-rotate{display:none}
.ct-shell{display:flex;flex-direction:column;height:100dvh;max-width:560px;margin:0 auto;padding:6px 8px calc(8px + env(safe-area-inset-bottom));gap:6px}
.ct-top{display:flex;align-items:center;gap:8px}
.ct-brand{font-weight:800;color:var(--gold);letter-spacing:.5px;font-size:1rem;line-height:1}
.ct-brand small{display:block;font-size:.6rem;color:var(--dim);font-weight:600;letter-spacing:2px}
.ct-top .sp{flex:1}
.ct-icon{width:40px;height:40px;border:1px solid #3a2b33;background:#241820;color:var(--cream);border-radius:10px;font-size:1.1rem;cursor:pointer}
.ct-back{color:var(--dim);text-decoration:none;font-size:.85rem;padding:6px 8px;border:1px solid #3a2b33;border-radius:10px}
.ct-title{text-align:center;line-height:1.1}
.ct-title b{color:var(--gold);font-size:1.15rem}
.ct-title span{display:block;color:var(--dim);font-size:.72rem;margin-top:2px}
.ct-hud{display:flex;align-items:center;gap:6px;justify-content:space-between;font-size:.82rem}
.ct-hud .cell{background:#20161d;border:1px solid #33242c;border-radius:9px;padding:5px 9px;display:flex;flex-direction:column;align-items:center;min-width:60px}
.ct-hud .k{font-size:.56rem;text-transform:uppercase;letter-spacing:.06em;color:var(--dim)}
.ct-hud .v{font-weight:800}
.ct-hud .v.gold{color:var(--gold)}.ct-hud .heart{color:#e0563b;letter-spacing:1px}
.ct-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#0d080c;border:1px solid #2c1f27;border-radius:14px;overflow:hidden;touch-action:none}
#ctcanvas{display:block;image-rendering:auto;border-radius:6px}
.ct-banner{position:absolute;top:10px;left:50%;transform:translateX(-50%);background:#000c;border:1px solid var(--gold);color:var(--gold);padding:5px 14px;border-radius:20px;font-weight:700;font-size:.85rem;opacity:0;transition:opacity .2s;pointer-events:none;white-space:nowrap}
.ct-banner.show{opacity:1}
.ct-controls{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;user-select:none;touch-action:none}
.ct-dpad{display:grid;grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,46px);gap:4px}
.ct-dpad button{border:none;background:#2a1c24;color:var(--cream);border:1px solid #40303a;border-radius:12px;font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.ct-dpad button:active{background:var(--wine);color:#fff}
#ctup{grid-column:2;grid-row:1}#ctleft{grid-column:1;grid-row:2}#ctright{grid-column:3;grid-row:2}#ctdown{grid-column:2;grid-row:3}
.ct-cright{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.ct-action{width:74px;height:74px;border-radius:50%;border:2px solid var(--gold);background:#3a2530;color:var(--gold);font-size:.8rem;font-weight:800;cursor:pointer}
.ct-hswrap{background:#1a1219;border:1px solid #33242c;border-radius:12px;padding:8px 10px}
.ct-hshead{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.ct-hshead span{color:var(--gold);font-weight:700;font-size:.82rem}
.ct-hsbtn{background:var(--wine);color:#fff;border:none;border-radius:8px;padding:5px 10px;font-size:.75rem;cursor:pointer}
.ct-hslist{list-style:none;margin:0;padding:0;font-size:.85rem}
.ct-hslist li{display:flex;align-items:center;gap:8px;padding:3px 2px;border-top:1px solid #2a1e25}
.ct-hslist li:first-child{border-top:none}
.ct-hslist .rk{width:18px;color:var(--dim)}.ct-hslist .nm{flex:1;font-weight:700;letter-spacing:.08em}.ct-hslist .sc{color:var(--gold);font-variant-numeric:tabular-nums}
.ct-hsempty{color:var(--dim);justify-content:center}
/* Overlays */
.ct-ov{position:absolute;inset:0;background:#0b070ae6;display:none;align-items:center;justify-content:center;padding:16px;z-index:5}
.ct-ov.show{display:flex}
.ct-card{background:linear-gradient(180deg,#241820,#180f16);border:1px solid var(--gold);border-radius:16px;padding:18px 16px;max-width:340px;text-align:center;box-shadow:0 20px 60px -20px #000}
.ct-card h2{margin:0 0 6px;color:var(--gold);font-size:1.3rem}
.ct-card p{margin:6px 0;font-size:.9rem;color:var(--cream);line-height:1.5}
.ct-card .big{color:var(--gold);font-size:1.8rem;font-weight:800}
.ct-steps{text-align:left;margin:10px auto;font-size:.85rem;color:var(--dim);max-width:240px}
.ct-steps li{margin:3px 0}
.ct-btn{margin-top:10px;background:var(--wine);color:#fff;border:none;border-radius:11px;padding:11px 20px;font-size:1rem;font-weight:800;cursor:pointer}
.ct-btn.ghost{background:transparent;border:1px solid #4a3540;color:var(--cream)}
.ct-aliasin{width:100%;padding:11px;border-radius:10px;border:1px solid #4a3540;background:#0f0a0e;color:var(--cream);font-size:1.3rem;text-align:center;letter-spacing:.3em;text-transform:uppercase}
.ct-aliaserr{color:#e0563b;font-size:.8rem;min-height:1em;margin:6px 0 0}
.ct-aliasrow{display:flex;gap:8px;margin-top:10px}.ct-aliasrow .ct-btn{flex:1;margin-top:0}
.ct-legal{text-align:center;font-size:11px;margin:4px 0 0;opacity:.5}
.ct-legal a{color:inherit}
@media(max-height:560px){.ct-title,.ct-hswrap{display:none}.ct-dpad{grid-template-columns:repeat(3,40px);grid-template-rows:repeat(3,40px)}}
