/* ============================================================
   BURJATRO — Golden Hour Edition
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Lilita+One&family=Cabin:wght@500;700&display=swap');
:root{
  --night1:#1a1230; --night2:#070410;
  --panel:#201640; --panel2:#2a1d52; --line:#3d2d72;
  --gold:#e9b44c; --gold-d:#9a7220; --gold-l:#ffd98a;
  --cream:#f7efda; --cream-d:#d9c79c; --ink:#241a08;
  --red:#cf4f33; --red-d:#8e2f19;
  --blue:#3f88b0; --blue-d:#27576f;
  --green:#3fa172;
  --text:#f1e8d4; --muted:#9a8cc4;
  --disp:'Lilita One','Arial Black',sans-serif;
  --body:'Cabin','Trebuchet MS',sans-serif;
  --mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  font-family:var(--body);color:var(--text);
  background:
    radial-gradient(1200px 600px at 75% -10%, #2b1d5e 0%, transparent 60%),
    radial-gradient(900px 500px at 10% 110%, #2a1538 0%, transparent 55%),
    linear-gradient(180deg,var(--night1),var(--night2) 70%);
  background-attachment:fixed;
  overflow:hidden;
}
body::before{content:'';position:fixed;inset:0;pointer-events:none;opacity:.35;
  background-image:radial-gradient(1px 1px at 12% 18%,#fff8 50%,transparent 51%),
    radial-gradient(1px 1px at 38% 8%,#fff6 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 64% 22%,#ffeec27a 50%,transparent 51%),
    radial-gradient(1px 1px at 82% 12%,#fff5 50%,transparent 51%),
    radial-gradient(1px 1px at 91% 34%,#fff4 50%,transparent 51%),
    radial-gradient(1px 1px at 22% 40%,#fff3 50%,transparent 51%);
  transition:opacity 1.2s}
/* GOLDEN HOUR sky */
#sunset{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:0;transition:opacity 1.1s ease;
  background:
    radial-gradient(900px 500px at 50% 100%, #ff9d4c66 0%, transparent 60%),
    linear-gradient(180deg,#4c2a5eb0 0%,#a34d2c88 55%,#e9862fb8 100%)}
body.golden #sunset{opacity:1}
body.golden::before{opacity:.1}
body.golden #skyline{opacity:.26;color:#ffc46a}
#skyline{position:fixed;left:0;right:0;bottom:0;width:100%;height:180px;color:var(--gold);
  opacity:.09;pointer-events:none;z-index:0;transition:opacity 1.1s,color 1.1s}
#fx{position:fixed;inset:0;pointer-events:none;z-index:70}

#app{position:relative;z-index:1;display:grid;grid-template-columns:300px 1fr;gap:14px;height:100vh;padding:14px}
#app.shake-sm{animation:shk .4s}
#app.shake-big{animation:shkB .55s}
@keyframes shk{20%{transform:translate(-4px,2px)}40%{transform:translate(4px,-2px)}60%{transform:translate(-3px,-2px)}80%{transform:translate(2px,2px)}}
@keyframes shkB{15%{transform:translate(-9px,5px) rotate(-.4deg)}30%{transform:translate(9px,-5px) rotate(.4deg)}45%{transform:translate(-7px,-4px)}60%{transform:translate(6px,4px)}75%{transform:translate(-4px,2px)}90%{transform:translate(2px,-1px)}}

/* ---------- SIDEBAR ---------- */
#sidebar{display:flex;flex-direction:column;gap:9px;min-height:0;overflow-y:auto;scrollbar-width:none}
#sidebar::-webkit-scrollbar{display:none}
.logo{font-family:var(--disp);font-size:32px;letter-spacing:2px;line-height:.9;
  background:linear-gradient(180deg,var(--gold-l),var(--gold) 55%,#b9842c);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 3px 0 #00000055;padding:2px 4px 0}
.logo small{display:block;font-family:var(--body);font-size:9.5px;font-weight:700;letter-spacing:3.5px;
  color:var(--muted);-webkit-text-fill-color:var(--muted);text-transform:uppercase;margin-top:4px}
.panel{background:var(--panel);border:2px solid var(--line);border-radius:14px;padding:11px;
  box-shadow:inset 0 2px 0 #ffffff10, 0 6px 14px #00000055;position:relative}
.label{font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted)}

#blindCard{border-color:var(--gold-d);background:linear-gradient(160deg,#2c2050,#1c1438)}
#blindCard .b-top{display:flex;align-items:center;gap:10px}
#blindCard .b-icon{font-size:28px;filter:drop-shadow(0 2px 2px #0008)}
#blindCard .b-name{font-family:var(--disp);font-size:19px;letter-spacing:.5px;color:var(--gold-l)}
#blindCard .b-boss{margin-top:8px;font-size:12px;font-weight:700;color:#ff9d86;background:#5a201266;
  border:1px solid #8e2f1955;border-radius:8px;padding:6px 8px}
#blindCard .b-target{margin-top:9px;display:flex;justify-content:space-between;align-items:baseline}
#blindCard .b-target b{font-family:var(--mono);font-size:22px;color:var(--gold)}

.score-panel{text-align:center}
.big-num{font-family:var(--mono);font-weight:800;font-size:32px;color:#fff;text-shadow:0 0 14px #e9b44c44}
.target-bar{height:8px;border-radius:6px;background:#120c26;border:1px solid var(--line);margin-top:8px;overflow:hidden}
.target-bar i{display:block;height:100%;width:0%;background:linear-gradient(90deg,var(--gold-d),var(--gold));transition:width .5s ease}

#handName{font-family:var(--disp);font-size:17px;text-align:center;color:var(--text);min-height:21px;letter-spacing:.5px}
.calc{display:flex;align-items:center;gap:8px;margin-top:7px}
.pill{flex:1;text-align:center;border-radius:10px;padding:7px 4px;font-family:var(--mono);font-weight:800;font-size:24px;color:#fff;box-shadow:inset 0 -4px 0 #00000033}
.pill.chips{background:var(--blue)} .pill.mult{background:var(--red)}
.x{font-family:var(--disp);font-size:22px;color:var(--gold)}

/* golden hour meter */
#sunPanel{text-align:center;transition:border-color .5s, box-shadow .5s}
#sunPanel.lit{border-color:var(--gold);box-shadow:0 0 18px #e9b44c55, inset 0 2px 0 #ffffff10}
#sunDots{display:flex;gap:7px;justify-content:center;margin:7px 0 5px}
.sdot{width:16px;height:16px;border-radius:50%;background:#120c26;border:2px solid var(--line);transition:all .4s}
.sdot.lit{background:radial-gradient(circle at 35% 35%,#ffd98a,#e9862f);border-color:var(--gold);
  box-shadow:0 0 10px #ffb64c99}
#sunLabel{font-size:11px;font-weight:700;color:var(--muted)}
#sunPanel.lit #sunLabel{color:var(--gold-l)}

.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.stat{background:var(--panel);border:2px solid var(--line);border-radius:12px;padding:7px 10px;text-align:center;position:relative}
.stat b{display:block;font-family:var(--mono);font-size:21px;font-weight:800;margin-top:2px}
.stat.hands b{color:#7fc4ff}.stat.disc b{color:#ff9d86}
.stat.cash{border-color:var(--gold-d)} .stat.cash b{color:var(--gold)}

.sidebtns{display:flex;gap:6px}
.sidebtns button{flex:1;background:var(--panel);border:2px solid var(--line);border-radius:10px;color:var(--muted);
  font-family:var(--body);font-weight:700;font-size:13px;padding:8px 2px;cursor:pointer;box-shadow:none;letter-spacing:0}
.sidebtns button:hover{color:var(--gold);border-color:var(--gold-d)}
.sidebtns button.off{opacity:.4}
#newRun{margin-top:auto;background:none;border:none;color:var(--muted);font-family:var(--body);font-weight:700;
  font-size:11px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;padding:8px;box-shadow:none}
#newRun:hover{color:var(--gold)}

/* ---------- TABLE ---------- */
#table{display:flex;flex-direction:column;min-width:0;min-height:0;gap:8px}
#topRow{display:flex;gap:12px;align-items:stretch;min-height:150px;padding-top:4px}
#jokerRow{flex:1;display:flex;gap:9px;justify-content:flex-start;align-items:stretch;flex-wrap:wrap}
#consRow{display:flex;gap:9px;align-items:stretch;border-left:2px dashed #3d2d7280;padding-left:12px}
.jslot{width:116px;border:2px dashed #3d2d7280;border-radius:14px;min-height:140px}
.cslot{display:flex;align-items:center;justify-content:center}
.cslot span{font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#3d2d72}
.joker,.cons{width:116px;background:linear-gradient(165deg,#33246a,#1d1340);border:2px solid var(--gold-d);
  border-radius:14px;padding:9px 8px;position:relative;display:flex;flex-direction:column;gap:5px;
  box-shadow:0 6px 12px #00000066;transition:transform .12s}
.joker:hover,.cons:hover{transform:translateY(-4px)}
.joker.r-c{border-color:#54688090}.joker.r-u{border-color:#3f8f6a}.joker.r-r{border-color:#b04a30}
.joker.r-l{border-color:var(--gold);box-shadow:0 6px 12px #00000066,0 0 14px #e9b44c55}
.cons{border-color:#3a7da6}
.jicon{font-size:23px;line-height:1}
.jname{font-family:var(--disp);font-size:13px;color:var(--gold-l);letter-spacing:.3px;line-height:1.1}
.jdesc{font-size:10.5px;line-height:1.28;color:#cfc4ef}
.joker .sell{margin-top:auto;align-self:flex-start;font-size:10px;font-weight:700;color:#1d1340;background:var(--cream-d);
  border:none;border-radius:6px;padding:3px 7px;cursor:pointer;opacity:0;transition:opacity .15s;box-shadow:none;font-family:var(--body);letter-spacing:0}
.joker:hover .sell{opacity:1}
.joker.flash{outline:3px solid var(--gold);transform:translateY(-8px) scale(1.05)}
.cbtns{margin-top:auto;display:flex;gap:4px}
.cbtns button{flex:1;font-size:10px;font-weight:700;border:none;border-radius:6px;padding:4px 2px;cursor:pointer;
  box-shadow:none;font-family:var(--body);letter-spacing:0}
.cbtns .use{background:linear-gradient(180deg,#5fc08f,var(--green));color:#fff}
.cbtns .csell{background:var(--cream-d);color:#1d1340}

#playArea{flex:1;display:flex;gap:10px;justify-content:center;align-items:center;min-height:140px;position:relative}
#tally{position:absolute;left:50%;top:2px;transform:translateX(-50%);font-family:var(--disp);
  font-size:30px;color:var(--gold-l);text-shadow:0 3px 0 #0009;opacity:0;pointer-events:none;z-index:5}
#tally.huge{font-size:42px;color:#ffe9b0}
#tally.show{animation:tallyIn 1.05s ease-out forwards}
@keyframes tallyIn{0%{opacity:0;transform:translateX(-50%) scale(.6)}18%{opacity:1;transform:translateX(-50%) scale(1.18)}70%{opacity:1;transform:translateX(-50%) scale(1)}100%{opacity:0;transform:translateX(-50%) translateY(-28px)}}

#handRow{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding:14px 6px 4px;min-height:126px}

/* ---------- CARDS ---------- */
.card{width:74px;height:104px;background:linear-gradient(170deg,#fbf5e6,var(--cream) 60%,#ecdfbd);
  border:2px solid var(--cream-d);border-radius:10px;position:relative;cursor:pointer;user-select:none;
  box-shadow:0 4px 8px #00000059, inset 0 0 0 3px #ffffff66;
  transition:transform .12s ease, box-shadow .12s ease;flex:0 0 auto}
.card:hover{transform:translateY(-6px)}
.card.sel{transform:translateY(-16px);box-shadow:0 0 0 3px var(--gold), 0 10px 16px #000a}
.card .corner{position:absolute;top:5px;left:7px;font-family:var(--disp);font-size:18px;line-height:1}
.card .corner small{display:block;font-size:11px;margin-top:1px}
.card .corner.br{top:auto;left:auto;bottom:5px;right:7px;transform:rotate(180deg)}
.card .pip{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:30px;
  filter:drop-shadow(0 2px 1px #00000033)}
.card.dim{opacity:.45;filter:saturate(.4)}
.card.scored{box-shadow:0 0 0 3px var(--gold), 0 0 18px #e9b44c88}
.card.dealt{animation:dealIn .3s both}
@keyframes dealIn{from{opacity:0;transform:translateY(16px) scale(.9)}to{opacity:1}}
.card.played{animation:playIn .28s both;transform:rotate(var(--rot,0deg))}
.card.played:hover{transform:rotate(var(--rot,0deg))}
@keyframes playIn{from{opacity:0;transform:translateY(-24px) rotate(var(--rot,0deg)) scale(1.08)}
  to{opacity:1;transform:rotate(var(--rot,0deg))}}
.card.bump{animation:bumpA .22s}
@keyframes bumpA{40%{transform:rotate(var(--rot,0deg)) translateY(-8px) scale(1.07)}}

/* enhancements */
.enhbadge{position:absolute;top:3px;right:4px;font-size:12px;filter:drop-shadow(0 1px 1px #0006)}
.card.enh-gilded{background:linear-gradient(170deg,#ffe9b8,#f3d488 60%,#dcb254);border-color:var(--gold)}
.card.enh-oasis{background:linear-gradient(170deg,#e2f6ef,#bfe8db 60%,#93cebd);border-color:#3fa172}
.card.enh-glass{background:linear-gradient(170deg,#e8f2fbdd,#c8def0c9 60%,#a6c6e0c2);border-color:#7fb3d8}
.card.enh-steel{background:linear-gradient(170deg,#e8e8ec,#c9c9d2 60%,#a8a8b4);border-color:#8a8a99}
/* boss states */
.card.debuff{opacity:.5;filter:grayscale(.9)}
.card.debuff::after{content:'✕';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--disp);font-size:34px;color:#8e2f19cc}
.card.miraged{animation:mirageShimmer 1.6s ease-in-out infinite}
@keyframes mirageShimmer{0%,100%{opacity:1;filter:none}50%{opacity:.45;filter:blur(1px) saturate(.3)}}
.card.facedown{background:#2a1d52;border-color:var(--line)}
.card.facedown .back{position:absolute;inset:4px;border-radius:6px;border:2px solid #4d3a8a;
  background:repeating-linear-gradient(45deg,#33246a 0 6px,#2a1d52 6px 12px)}
.card.facedown:hover{transform:translateY(-3px)}

.float{position:absolute;left:50%;top:-10px;transform:translateX(-50%);font-family:var(--disp);font-size:16px;
  pointer-events:none;text-shadow:0 2px 0 #000c;animation:floatUp .84s ease-out forwards;white-space:nowrap;z-index:40}
.float.c{color:#8fd0ff}.float.m{color:#ff8a6b}.float.g{color:var(--gold-l)}.float.x{color:#9a8cc4}
@keyframes floatUp{from{opacity:1}to{opacity:0;transform:translateX(-50%) translateY(-46px)}}

/* ---------- CONTROLS ---------- */
#controls{display:flex;gap:10px;align-items:center;justify-content:center;padding-bottom:6px;flex-wrap:wrap}
button{font-family:var(--disp);letter-spacing:1px;cursor:pointer;border:none;border-radius:12px;color:#fff;
  padding:13px 22px;font-size:17px;box-shadow:0 5px 0 #00000066;transition:transform .06s, box-shadow .06s, opacity .15s}
button:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px 0 #00000066}
button:disabled{opacity:.35;cursor:default}
#btnPlay{background:linear-gradient(180deg,var(--gold-l),var(--gold));color:var(--ink);box-shadow:0 5px 0 var(--gold-d)}
#btnPlay.golden{animation:goldPulse 1.1s ease-in-out infinite}
@keyframes goldPulse{50%{box-shadow:0 5px 0 var(--gold-d),0 0 26px #ffb64ccc}}
#btnDiscard{background:linear-gradient(180deg,#e06243,var(--red));box-shadow:0 5px 0 var(--red-d)}
.sortgrp{display:flex;border:2px solid var(--line);border-radius:10px;overflow:hidden}
.sortgrp button{border-radius:0;background:var(--panel);font-family:var(--body);font-weight:700;font-size:12px;
  letter-spacing:1.5px;padding:10px 14px;box-shadow:none;color:var(--muted)}
.sortgrp button.on{background:var(--panel2);color:var(--gold)}
#deckCount{font-family:var(--mono);font-size:12px;color:var(--muted);margin-left:8px}
#hint{width:100%;text-align:center;font-size:12px;font-weight:700;color:#ff9d86;min-height:14px}

/* ---------- OVERLAY / MODALS ---------- */
#overlay{position:fixed;inset:0;z-index:60;background:#05030cd0;backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:16px}
#overlay.hidden{display:none}
.modal{width:min(760px,95vw);max-height:92vh;overflow-y:auto;background:linear-gradient(170deg,#281c4e,#170f33);
  border:3px solid var(--gold-d);border-radius:20px;padding:26px;text-align:center;
  box-shadow:0 30px 80px #000c, inset 0 2px 0 #ffffff14;animation:modalIn .25s ease-out}
@keyframes modalIn{from{transform:translateY(18px) scale(.97);opacity:0}to{transform:none;opacity:1}}
.modal h1{font-family:var(--disp);font-size:34px;letter-spacing:1px;color:var(--gold-l);text-shadow:0 3px 0 #0009}
.modal h2{font-family:var(--disp);font-size:14px;letter-spacing:3px;color:var(--muted);text-transform:uppercase;margin-bottom:6px}
.modal .flavor{color:#cfc4ef;font-size:13.5px;margin-top:8px}
.modal .bigtarget{font-family:var(--mono);font-weight:800;font-size:42px;color:var(--gold);margin:14px 0 2px}
.modal .sub{font-size:12.5px;color:var(--muted)}
.modal .bossbox{margin:14px auto 0;max-width:440px;font-size:13px;font-weight:700;color:#ff9d86;
  background:#5a201266;border:1px solid #8e2f1955;border-radius:10px;padding:10px 12px}
.modal .go{margin-top:20px;background:linear-gradient(180deg,var(--gold-l),var(--gold));color:var(--ink);
  box-shadow:0 5px 0 var(--gold-d);font-size:18px;padding:14px 32px}
.modal .howto{margin-top:16px;font-size:11.5px;color:var(--muted);letter-spacing:.3px}
.modal .alt{background:var(--panel2);border:2px solid var(--line);box-shadow:0 4px 0 #00000055;font-size:14px;padding:11px 18px}

/* landmark choice */
.landrow{display:flex;gap:14px;justify-content:center;margin-top:18px;flex-wrap:wrap}
.land{width:210px;background:linear-gradient(165deg,#33246a,#1d1340);border:2px solid var(--gold-d);border-radius:16px;
  padding:16px 12px;display:flex;flex-direction:column;gap:6px;align-items:center;box-shadow:0 6px 12px #00000066}
.land:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:0 10px 18px #000a,0 0 16px #e9b44c44}
.land .licon{font-size:38px;filter:drop-shadow(0 3px 3px #0008)}
.land .lland{font-family:var(--disp);font-size:17px;color:var(--gold-l)}
.land .lhand{font-size:12px;font-weight:700;color:#cfc4ef;font-family:var(--body);letter-spacing:0}
.land .lstat{font-family:var(--mono);font-size:15px;font-weight:800;color:#fff}
.land .lstat i{font-style:normal;font-size:10px;color:var(--muted)}
.skipland{margin-top:16px}

/* shop */
.shoplbl{margin:16px 0 8px;text-align:left}
.shopgrid{display:flex;gap:10px;justify-content:flex-start;flex-wrap:wrap}
.shop-item{width:168px;background:linear-gradient(165deg,#33246a,#1d1340);border:2px solid var(--gold-d);
  border-radius:14px;padding:11px 10px;display:flex;flex-direction:column;gap:6px;text-align:left}
.shop-item.vitem{border-color:#3a7da6;width:240px}
.shop-item .jicon{font-size:25px}
.shop-item .jname{font-size:14px}
.shop-item .jdesc{font-size:11px;flex:1}
.rtag{font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;font-family:var(--body)}
.buyrow{display:flex;gap:5px}
.buyrow .buy{flex:1;font-size:13px;padding:7px 4px;background:linear-gradient(180deg,#5fc08f,var(--green));box-shadow:0 4px 0 #1f5e3e}
.buyrow .hag{font-size:11px;padding:7px 8px;background:var(--panel2);border:2px solid var(--line);box-shadow:0 4px 0 #00000055;
  font-family:var(--body);font-weight:700;letter-spacing:0}
.buyrow .hag:hover:not(:disabled){border-color:var(--gold-d);color:var(--gold-l)}
.shop-item.sold{opacity:.35}
.shoprow{display:flex;gap:10px;justify-content:center;margin-top:22px;flex-wrap:wrap}
.ownrow{display:flex;gap:8px;flex-wrap:wrap}
.ownrow .own{font-family:var(--body);font-weight:700;font-size:12px;letter-spacing:0;padding:8px 12px;
  background:var(--panel2);border:2px solid var(--line);box-shadow:0 3px 0 #00000055;border-radius:10px;color:var(--text)}
.ownrow .own:hover{border-color:var(--red);color:#ff9d86}

/* end stats */
.endstats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px auto 6px;max-width:520px}
.endstats div{background:var(--panel);border:2px solid var(--line);border-radius:12px;padding:9px 6px}
.endstats b{display:block;font-family:var(--mono);font-size:19px;color:var(--gold-l);margin-top:3px}
.metaline{margin-top:10px}

/* levels table */
.lvltable{margin:16px auto 4px;border-collapse:collapse;font-size:13.5px}
.lvltable td{padding:5px 9px;text-align:left}
.lvltable .lname{color:var(--gold-l);font-family:var(--disp);letter-spacing:.4px}
.lvltable .lvl{color:var(--muted);font-weight:700}
.lvltable .cnum{color:#8fd0ff;font-family:var(--mono);font-weight:800;text-align:right}
.lvltable .mnum{color:#ff8a6b;font-family:var(--mono);font-weight:800}
.lvltable .xx{color:var(--gold)}

/* deck view */
.deckview{margin-top:14px;text-align:left}
.deckrow{display:flex;align-items:center;gap:8px;padding:7px 4px;border-bottom:1px solid #3d2d7250}
.dsym{font-size:20px;width:28px}
.drlist{flex:1;display:flex;flex-wrap:wrap;gap:4px}
.dr{font-family:var(--mono);font-weight:700;font-size:12.5px;background:var(--panel2);border:1px solid var(--line);
  border-radius:5px;padding:2px 5px}
.dr i{font-style:normal;font-size:10px}
.dr.none{opacity:.4;border:none;background:none}
.dcount{font-family:var(--mono);color:var(--muted);font-size:12px}

/* help */
.helpbody{text-align:left;margin-top:14px;font-size:13.5px;line-height:1.5;color:#e5dcf5}
.helpbody p{margin:9px 0}
.helpbody .hc{color:#8fd0ff;font-weight:700}.helpbody .hm{color:#ff8a6b;font-weight:700}

#toast{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:80;background:#2c2050ee;
  border:2px solid var(--gold-d);color:var(--text);font-weight:700;font-size:13px;border-radius:12px;
  padding:10px 18px;opacity:0;pointer-events:none;transition:opacity .25s;max-width:90vw;text-align:center}
#toast.show{opacity:1}

/* ---------- MOBILE ---------- */
@media (max-width:900px){
  body{overflow:auto}
  #app{grid-template-columns:1fr;height:auto;min-height:100vh;padding:10px}
  .logo{font-size:26px;text-align:center}
  .stats{grid-template-columns:repeat(4,1fr)}
  .stat b{font-size:16px}
  #topRow{flex-wrap:wrap;min-height:0}
  #consRow{border-left:none;padding-left:0;border-top:2px dashed #3d2d7280;padding-top:10px;width:100%}
  #jokerRow{justify-content:center}
  .joker,.cons,.jslot{width:102px;min-height:118px}
  .joker .sell{opacity:1}
  .card{width:56px;height:80px;border-radius:8px}
  .card .corner{font-size:13px;top:3px;left:4px}
  .card .corner small{font-size:9px}
  .card .pip{font-size:22px}
  #playArea{min-height:110px}
  #handRow{min-height:0;gap:5px}
  button{padding:11px 16px;font-size:15px}
  .endstats{grid-template-columns:repeat(2,1fr)}
}
