*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:var(--felt-0);color:var(--cream);font-family:var(--font-ui);overscroll-behavior:none}
body{min-height:100dvh;overflow-x:hidden}
button,input{font:inherit;color:inherit}button{touch-action:manipulation}
button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--gold-hi);outline-offset:3px}
.hidden{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.screen{min-height:100dvh}.kicker{display:inline-block;text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;font-weight:800;color:var(--gold-hi)}
h1,h2,h3{font-family:var(--font-display);margin:0;font-weight:600}h1 em,h2 em{font-style:normal;color:var(--gold-hi)}p{margin:0}.icon-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.055);display:grid;place-items:center;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.icon-btn:hover{transform:translateY(-1px);border-color:var(--gold);background:rgba(215,176,104,.12)}.icon-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.primary-btn,.secondary-btn{border:0;border-radius:14px;min-height:50px;padding:0 20px;font-weight:800;cursor:pointer;transition:transform .18s ease,filter .18s ease}.primary-btn{background:linear-gradient(160deg,var(--gold-hi),var(--gold));color:#23180f;box-shadow:0 12px 26px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.45)}.primary-btn:hover{transform:translateY(-2px);filter:brightness(1.04)}.secondary-btn{background:rgba(255,255,255,.06);border:1px solid var(--line)}.text-btn{border:0;background:none;color:var(--muted);font-weight:700;cursor:pointer;padding:9px 4px}.text-btn:hover{color:var(--cream)}
.modal-overlay,.drawer-overlay{position:fixed;inset:0;z-index:100;background:rgba(2,8,5,.76);backdrop-filter:blur(12px);display:grid;place-items:center;padding:18px}
.tutorial-overlay{position:fixed;inset:0;z-index:100020;background:rgba(2,8,5,.76);backdrop-filter:blur(12px);display:grid;place-items:center;padding:18px;touch-action:manipulation}
.tutorial-overlay .tutorial-card{pointer-events:auto;max-height:min(92dvh,720px);overflow:auto;touch-action:manipulation}.modal{width:min(460px,100%);max-height:88dvh;overflow:auto;background:linear-gradient(155deg,rgba(24,49,38,.98),rgba(8,20,15,.98));border:1px solid rgba(241,209,141,.34);border-radius:24px;box-shadow:var(--shadow);padding:26px}.modal h2{font-size:clamp(1.55rem,4vw,2rem);margin:7px 0 8px}.modal p{color:var(--muted);line-height:1.55}.modal-actions{display:grid;gap:10px;margin-top:20px}.score-table{display:grid;gap:7px;margin-top:18px}.score-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.045);border:1px solid transparent}.score-row.winner{border-color:rgba(241,209,141,.45);background:rgba(215,176,104,.10)}.score-row strong{font-family:var(--font-display);color:var(--gold-hi);font-size:1.15rem}
.toast{position:fixed;z-index:180;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);background:rgba(5,15,11,.95);border:1px solid var(--line);box-shadow:0 12px 30px rgba(0,0,0,.35);padding:11px 16px;border-radius:999px;font-weight:750;font-size:.86rem;pointer-events:none}
.access-list{display:grid;gap:9px;margin-top:18px}.access-list label{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:11px}.access-list input{width:20px;height:20px;accent-color:var(--gold)}.achievement{display:inline-block;border:1px solid rgba(241,209,141,.3);border-radius:999px;padding:4px 8px;color:var(--gold-hi);font-size:.7rem;margin:3px}
