:root { color-scheme: light; --bg:#f4f0e8; --panel:#fffdf8; --raised:#e8eee8; --line:#d4d9cf; --ink:#202c27; --muted:#4f6159; --red:#096454; --gold:#176552; font:16px/1.5 "Instrument Sans", Inter, system-ui, sans-serif; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--bg); }
[hidden] { display:none !important; }
h1,h2,p { margin:0; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; }
button,.control,select,input { min-height:42px; border:1px solid var(--line); border-radius:10px; color:var(--ink); background:var(--raised); padding:8px 14px; }
button,.control { cursor:pointer; font-weight:650; }
button:hover,.control:hover { border-color:var(--gold); }
button:disabled { opacity:.55; cursor:wait; }
:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.primary { background:var(--red); border-color:var(--red); color:white; font-weight:800; padding:11px 20px; }
.top { min-height:66px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; padding:10px max(24px,calc((100vw - 1200px)/2)); gap:20px; background:var(--panel); }
nav a.brand { font-size:.84rem; color:var(--ink); padding-left:0; margin-right:8px; font-weight:800; white-space:nowrap; }
nav,.wallet,.filters,.controls { display:flex; align-items:center; gap:10px; }
nav a { padding:7px 12px; color:var(--muted); border-radius:8px; }
nav a[aria-current] { color:var(--ink); background:var(--raised); }
.balance { color:var(--gold); white-space:nowrap; font-weight:750; }
main,footer { width:min(1200px,calc(100% - 48px)); margin:auto; }
main { min-height:75vh; padding:28px 0 46px; }
.hero { position:relative; isolation:isolate; overflow:hidden; display:grid; grid-template-columns:43% 57%; align-items:center; border:1px solid var(--line); border-radius:22px; background:#e5eee3; }
.hero-copy { z-index:1; padding:clamp(25px,5vw,58px); align-self:center; }
.hero h1,.subpage h1 { font-size:clamp(2.65rem,6vw,5rem); letter-spacing:-.065em; line-height:.94; margin:12px 0 20px; }
.hero p:not(.eyebrow) { color:var(--muted); max-width:34ch; }
.hero .primary { margin-top:22px; }
.eyebrow { font-size:.94rem; font-weight:850; color:var(--gold); }
.art { background-color:#c8d8cd; background-size:cover; background-position:center; }
.art.zoo { background-image:url(zoo.jpg); }.art.berry { background-image:url(berry.jpg); }.art.pirate { background-image:url(pirate.jpg); }.art.crystal { background-image:url(crystal.jpg); }
.art.blackjack { background-image:url(blackjack.jpg); }.art.moon { background-image:url(moon.jpg); }.art.citrus { background-image:url(citrus.jpg); }.art.classic { background-image:url(classic.jpg); }
.hero-art { min-width:0; min-height:300px; height:100%; }
.dealer-art { aspect-ratio:2.1; width:min(100%,440px); margin:10px auto 15px; border-radius:14px; background-position:center 38%; }
.section-heading { display:flex; gap:14px; align-items:center; justify-content:space-between; margin:26px 0 14px; flex-wrap:wrap; }
.section-heading h2 { font-size:1.7rem; letter-spacing:-.04em; }
.filters button { min-height:34px; padding:4px 13px; background:transparent; }
.filters button[aria-pressed=true] { color:var(--gold); border-color:#7aa594; background:#e0eee7; }
.catalog { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.game-card { padding:0; min-width:0; overflow:hidden; text-align:left; background:var(--panel); border-radius:14px; transition:transform .2s,border-color .2s; }
.game-card:hover { transform:translateY(-4px); }
.game-card .art { display:block; aspect-ratio:1.24; }
.game-card strong,.game-card small { display:block; padding:0 12px; text-overflow:ellipsis; overflow:hidden; }
.game-card strong { padding-top:9px; }.game-card small { padding-bottom:12px; color:var(--muted); }
.table,.panel { border:1px solid var(--line); background:var(--panel); border-radius:18px; padding:clamp(16px,4vw,40px); }
.table { text-align:center; }
.table h1 { font-size:clamp(2rem,6vw,4rem); letter-spacing:-.05em; }
.reels { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; max-width:630px; margin:20px auto; }
.reel { display:grid; place-items:center; aspect-ratio:1.28; border-radius:15px; border:2px solid #9eb8a9; background:#e7efe8; color:var(--gold); font-size:clamp(2rem,8vw,5rem); font-family:Georgia,serif; }
.reel.champion { color:#a13851; border-color:#ce8999; background:#f8e7ea; }
.reels.spinning .reel { animation:roll .16s infinite alternate; }
.reels.spinning .reel:nth-child(2) { animation-delay:.04s; }.reels.spinning .reel:nth-child(3) { animation-delay:.08s; }
@keyframes roll { from { transform:translateY(-5px); opacity:.65; } to { transform:translateY(5px); opacity:1; } }
.hand { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin:7px 0 16px; }
.hand-label,#timer { color:var(--muted); }
.card { display:grid; place-items:center; width:61px; height:88px; background:#f4eddd; color:#211c1a; border-radius:9px; font-weight:800; font-size:1.2rem; }
.card.red { color:#a01d32; }.card.back { background:#4a2030; border:3px double #ca8591; color:#f2b9bb; }
.controls { justify-content:center; margin:14px 0; flex-wrap:wrap; }
.controls label { display:flex; align-items:center; gap:8px; }
details { color:var(--muted); margin:auto; max-width:56ch; }
summary { cursor:pointer; }
.subpage { max-width:750px; margin:auto; }.subpage h1 { font-size:clamp(2.5rem,6vw,4rem); }
.panel { margin:14px 0; }.panel label,dialog label { display:grid; gap:5px; margin:12px 0; }
.panel h2 { margin-bottom:12px; }.panel p { margin-top:9px; }
.user-row { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--line); }
.empty { padding:26px 0; color:var(--muted); }
footer { display:flex; justify-content:space-between; gap:15px; flex-wrap:wrap; color:var(--muted); border-top:1px solid var(--line); padding:18px 0 26px; font-size:.86rem; }
dialog { color:var(--ink); width:min(420px,calc(100% - 32px)); background:var(--panel); border:1px solid var(--line); border-radius:18px; padding:22px; }
dialog::backdrop { background:#000b; }dialog header { display:flex; justify-content:space-between; align-items:center; }
#auth-error { color:#a01d32; margin:5px 0; }
@media(max-width:900px) { .catalog { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:620px) { .top { padding:10px 14px; gap:9px; flex-wrap:wrap; } nav { order:3; width:100%; } main,footer { width:calc(100% - 28px); } main { padding-top:15px; } .hero { grid-template-columns:1fr; } .hero-art { aspect-ratio:1.45; grid-row:1; } .hero-copy { padding:22px; }.catalog { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; } }
@media(max-width:620px) { .hero-art { min-height:0; height:auto; } nav { flex-wrap:wrap; gap:4px; } }

:root { --bg:#f3f0eb; --panel:#faf7f1; --raised:#efebe5; --line:#d9d3d0; --ink:#282139;
  --muted:#635a71; --red:#6245ae; --gold:#5e459c; }
.top { display:grid; grid-template-columns:1fr auto 1fr; background:var(--bg); }
.brand { font-weight:750; font-size:.9rem; }
.wallet { justify-content:flex-end; }
nav { justify-content:center; }
button,.control,select,input,nav a { border-radius:5px; }
.hero { display:block; background:var(--bg); border:0; border-radius:0; text-align:center; }
.hero-copy { position:relative; padding:clamp(45px,8vw,86px) 10px 20px; }
.hero h1 { font-size:clamp(2.6rem,6vw,5.3rem); line-height:1.01; }
.hero p:not(.eyebrow) { max-width:60ch; margin:auto; }
.hero-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:21px; }
.hero .hero-actions .primary { margin:0; }
.hero-art { display:block; width:min(100%,1100px); height:auto; min-height:0; margin:auto; object-fit:contain; mix-blend-mode:multiply; }
.art.stadium { background-image:url(stadium.jpg); }
.game-card,.dealer-art,.table,.panel,dialog { border-radius:7px; }
.game-card .art { aspect-ratio:1.65; }
.filters { flex-wrap:wrap; }
.filters button[aria-pressed=true] { color:var(--ink); border-color:#aa98d6; background:#e8dff5; }
.reels { grid-template-columns:repeat(3,minmax(0,1fr)); }
.reels[data-columns="4"] { grid-template-columns:repeat(4,minmax(0,1fr)); }
.reels[data-columns="5"] { grid-template-columns:repeat(5,minmax(0,1fr)); }
.reel { grid-template-rows:repeat(3,1fr); gap:4px; border-radius:6px; aspect-ratio:auto; padding:5px; font-size:clamp(1.3rem,4vw,2.8rem); background:#eae4f2; border-color:#c7b6de; }
.reel span { display:grid; place-items:center; width:100%; min-height:clamp(26px,7vw,64px); }
.reel .winner { background:#dcd0f4; color:#4e278d; }
@media(max-width:620px) { .top { grid-template-columns:1fr auto; } .top nav { grid-column:1/-1; grid-row:2; } .top .wallet { grid-column:2;grid-row:1; } }
