:root {
  color-scheme:dark;
  --bg:#170c12;
  --bg2:#21111a;
  --panel:#2b1621;
  --panel2:#341b28;
  --line:#4a2a3a;
  --gold:#d4ab55;
  --gold2:#f0d28a;
  --ink:#f4ebde;
  --muted:#b9a596;
  --dim:#a08b87;
  --wine:#7a2e4c;
  --red:#e4857d;
  --green:#97c5a0;
  --mana:#4f8fd6;
  --mana2:#9cc8f5;
  font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Segoe UI",sans-serif;
  font-size:14px;
  font-variant-numeric:tabular-nums;
}
* { box-sizing:border-box; }
body { margin:0; background:radial-gradient(120% 650px at 50% 0%,#2d1422,var(--bg) 80%); color:var(--ink); line-height:1.5; }
button,input,textarea,select { font:inherit; }
button,input,textarea,select,summary { -webkit-tap-highlight-color:transparent; }
button { min-width:0; min-height:44px; padding:11px 13px; border:1px solid var(--line); border-radius:10px; background:var(--panel); color:var(--ink); font-weight:700; cursor:pointer; touch-action:manipulation; }
button:disabled { opacity:.5; cursor:default; }
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible { outline:3px solid var(--gold2); outline-offset:3px; }
[hidden] { display:none!important; }
h1,h2,h3,p { margin:0; }
p { overflow-wrap:anywhere; }
h1 { font-size:15px; letter-spacing:-.5px; line-height:1.4; }
h2 { font-size:23px; font-weight:800; letter-spacing:-.7px; line-height:1.3; }
h3 { font-size:16px; }
strong { font-weight:800; }
.masthead { position:sticky; top:0; z-index:10; padding:max(8px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 6px max(16px,env(safe-area-inset-left)); background:#150a10; border-bottom:1px solid var(--line); }
.brand,.notices,.beta-notice,.progress { max-width:1008px; margin-left:auto; margin-right:auto; }
.brand { display:flex; align-items:center; gap:8px; }
.brand-mark { flex:0 0 23px; height:23px; display:grid; place-items:center; background:var(--wine); border:1px solid var(--gold); border-radius:6px; color:var(--gold2); font-size:13px; font-weight:800; }
.edition { margin-left:auto; border:1px solid var(--gold); border-radius:20px; padding:2px 7px; color:var(--gold); font-size:8px; letter-spacing:1px; white-space:nowrap; }
#effects-label { letter-spacing:0; }
#effects-label:not(:empty)::before { content:" · "; }
.notices { margin-top:4px; color:var(--muted); font-size:9.5px; line-height:1.3; }
.notices p { margin:1px 0; }
.notices p:first-child,.notices p:nth-child(2) { color:var(--ink); }
.notices p:nth-child(2) { font-weight:700; }
.beta-notice { margin-top:2px; color:var(--dim); font-size:9px; }
.beta-notice.ended { color:var(--gold2); font-weight:700; }
.progress { display:flex; gap:0; margin-top:0; margin-bottom:0; padding:8px 0 2px; list-style:none; }
.step { flex:1; min-width:0; text-align:center; color:var(--dim); font-size:9px; line-height:1.25; position:relative; }
.step .dot { position:relative; z-index:1; display:block; width:12px; height:12px; border:2px solid var(--dim); border-radius:50%; margin:0 auto 3px; background:var(--bg); }
.step time,.step .step-time { display:block; font-variant-numeric:tabular-nums; }
.step:not(:last-child)::after { content:""; position:absolute; top:5px; left:calc(50% + 9px); right:calc(-50% + 9px); height:2px; background:var(--line); }
.step.done { color:var(--muted); }
.step.done .dot,.step.done:not(:last-child)::after { background:var(--gold); border-color:var(--gold); }
.step.now { color:var(--gold2); font-weight:800; }
.step.now .dot { border-color:var(--gold2); box-shadow:0 0 0 3px #d4ab5533; }
main { max-width:1040px; margin:0 auto; padding:0 max(16px,env(safe-area-inset-right)) calc(120px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); }
main>section { min-width:0; }
.status-strip { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 12px; min-height:31px; align-items:center; color:var(--dim); font-size:9px; padding:6px 0; }
.section-heading { margin:10px 0 18px; }
.section-heading>p:not(.eyebrow) { color:var(--muted); font-size:12px; margin-top:5px; }
.section-heading strong { color:var(--ink); }
.eyebrow,.label { display:block; color:var(--gold); font-size:11px; font-weight:800; letter-spacing:1.1px; line-height:1.5; }
.eyebrow { margin-bottom:7px; }
.panel { padding:14px; border:1px solid var(--line); border-radius:13px; background:var(--panel); margin:14px 0; min-width:0; }
.panel>p { margin:8px 0; font-size:12px; }
.panel>h3 { margin-bottom:10px; }
.preparation { border-left:3px solid var(--gold); padding:10px 12px; background:var(--bg2); font-size:12px; margin:14px 0; }
.preparation p { color:var(--muted); margin-top:6px; font-size:11px; }
label { display:block; min-width:0; color:var(--ink); font-size:12px; font-weight:650; }
input:not([type=checkbox]),textarea,select { display:block; width:100%; min-width:0; min-height:46px; margin:7px 0 3px; padding:11px; border:1px solid #6c4559; border-radius:8px; background:var(--bg); color:var(--ink); font-size:16px; font-weight:400; }
input::placeholder,textarea::placeholder { color:var(--dim); opacity:1; }
textarea { resize:vertical; }
.lot-fields label+label { margin-top:14px; }
.unit,label small { display:block; color:var(--muted); font-size:10px; font-weight:400; text-align:right; margin-top:2px; }
.subtle { color:var(--muted); font-size:11px!important; margin-top:9px; line-height:1.55; }
.input-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 10px; }
.input-grid .full { grid-column:1/-1; }
.primary { background:linear-gradient(180deg,var(--gold2),var(--gold)); border-color:var(--gold); color:#211307; font-size:15px; font-weight:800; }
.secondary { background:transparent; border-color:var(--gold); color:var(--gold2); }
.wide { width:100%; margin-top:10px; min-height:48px; }
.wide>span { float:right; }
.error { color:#ffd1ca; background:#3a1515; border-left:3px solid var(--red); padding:11px; font-size:12px; margin:10px 0; }
.strategy-meters { padding:9px 0 1px; }
.gauge { display:flex; gap:4px; margin:8px 2px 0; }
.gauge i { flex:1; min-width:0; height:14px; border-radius:3px; transform:skewX(-12deg); background:#2a2238; border:1px solid #514262; }
.gauge i.on { background:linear-gradient(180deg,var(--mana2),var(--mana)); border-color:#9bc8f9; }
.gauge i.over { background:#7d3636; border-color:var(--red); }
.meter-summary { font-size:12px; margin-top:7px; color:var(--muted); }
.meter-summary strong { color:var(--ink); }
.row { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:3px 8px; margin-top:5px; font-size:11.5px; color:var(--muted); }
.row strong { min-width:0; color:var(--ink); font-size:12px; overflow-wrap:anywhere; }
.row small { font-size:10px; }
.budget-block { margin-top:16px; }
.hp { height:10px; border-radius:6px; background:#2b1b1b; border:1px solid #5e3838; overflow:hidden; margin-top:6px; }
.hp>span { display:block; width:0; height:100%; background:linear-gradient(90deg,#b8463f,#e07a5f); }
.interest,.streak { display:inline-flex; align-items:center; gap:5px; margin-top:10px; font-size:11.5px; color:var(--gold2); background:#d4ab5514; border:1px solid #d4ab5566; padding:6px 10px; border-radius:22px; }
.card-heading { margin:19px 0 20px; }
.card-heading .eyebrow { display:none; }
.card-heading h2 { font-size:22px; }
#recommendation { font-size:10px; }
.cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px 12px; margin:0 1px; }
.card { position:relative; display:flex; flex-direction:column; align-items:stretch; text-align:center; min-width:0; min-height:211px; padding:31px 11px 12px; border-radius:14px; border:1px solid var(--line); background:linear-gradient(170deg,var(--panel2),var(--panel)); color:var(--ink); }
.card.selected { border:2px solid var(--gold2); padding:30px 10px 11px; box-shadow:0 0 0 4px #d4ab5522,0 8px 22px #0004; transform:translateY(-3px); }
.card-cost,.cost-badge { position:absolute; top:-10px; left:-6px; width:50px; height:50px; border:2px solid #cfe4fb; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; background:radial-gradient(circle at 35% 30%,var(--mana2),var(--mana) 75%); color:#0c1d33; font-size:14px; font-weight:900; line-height:1.15; }
.card-cost,.cost-badge { overflow-wrap:anywhere; }
.card-cost small,.cost-badge small { display:block; font-size:9px; margin-top:3px; }
.glyph { width:43px; height:43px; margin:7px auto 12px; border:1.5px solid var(--gold); border-radius:12px; display:grid; place-items:center; color:var(--gold2); font-size:21px; transform:rotate(45deg); }
.glyph>span { transform:rotate(-45deg); }
.card .name,.card .card-name { display:block; font-size:18px; font-weight:800; }
.card .desc,.card .card-desc { display:block; margin:4px 0 9px; min-height:31px; font-size:10.5px; font-weight:400; line-height:1.45; color:var(--muted); white-space:pre-line; }
.card-foot { margin-top:auto; border-top:1px solid var(--line); padding-top:8px; display:flex; justify-content:space-between; align-items:center; gap:5px; color:var(--muted); font-size:11px; font-weight:400; }
.card-foot strong { color:var(--ink); font-size:13px; }
.card-foot>span:first-child { min-width:0; overflow-wrap:anywhere; }
.crystals { display:inline-flex; gap:3px; align-items:center; color:var(--mana2); font-size:16px; line-height:1; white-space:nowrap; }
.crystals i { display:inline-block; width:9px; height:9px; transform:rotate(45deg); background:var(--mana); border:1px solid var(--mana2); }
.crystals i.off { background:transparent; border-color:var(--dim); }
.recommended { position:absolute; top:9px; right:8px; padding:2px 7px; border-radius:11px; background:var(--gold2); color:#211307; font-size:9px; font-weight:800; }
.card.locked { opacity:1; background:#221a1e; border-color:#51434b; cursor:default; }
.card.locked>*:not(.card-lock) { filter:grayscale(1); opacity:.48; }
.card.locked .card-cost { background:#55505a; border-color:#8a8590; color:#fff; }
.card-lock { position:absolute; z-index:1; left:7px; right:7px; top:60%; padding:8px 3px; border:1px solid var(--red); border-radius:8px; background:#3a1515; color:#ffd1ca; font-size:10.5px; font-weight:800; }
.start-selected { margin-top:18px; min-height:48px; }
.cost-row { display:flex; justify-content:space-between; gap:12px; font-size:12px; padding:9px 0; border-bottom:1px solid var(--line); }
.cost-row:last-of-type { color:var(--gold2); font-weight:800; font-size:15px; border:0; }
details>summary { min-height:44px; display:flex; gap:10px; align-items:center; cursor:pointer; list-style:none; color:var(--ink); font-size:12px; font-weight:700; }
details>summary::-webkit-details-marker { display:none; }
details>summary::before { content:'+'; flex:0 0 12px; color:var(--gold); font-size:20px; }
details[open]>summary::before { content:'−'; }
details[open]>summary { margin-bottom:9px; }
details.panel { padding-top:7px; padding-bottom:7px; }
details.panel[open] { padding-bottom:14px; }
table { width:100%; border-collapse:collapse; font-size:12px; }
caption { color:var(--muted); font-size:11px; text-align:left; margin-bottom:8px; }
td,th { padding:9px 4px; border-bottom:1px solid var(--line); text-align:left; }
td:last-child,th:last-child { text-align:right; }
.budget-remaining { color:var(--gold2); font-size:17px!important; font-weight:800; }
.checkbox { display:flex; gap:10px; align-items:center; min-height:48px; cursor:pointer; }
.checkbox input { flex:0 0 22px; width:22px; height:22px; accent-color:var(--gold); }
.attestation { background:var(--bg2); padding:11px; border-radius:9px; margin-top:10px; align-items:flex-start; line-height:1.7; }
.attestation input { margin-top:2px; }
#board-message { margin:10px 0; color:var(--muted); font-size:12px; }
.board-layout,.board-main { min-width:0; }
.board-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:12px 0 0; font-size:12px; }
.pill { padding:4px 9px; border:1px solid var(--line); border-radius:99px; background:var(--panel); color:var(--gold2); font-size:10px; }
#board-now { font-size:10px!important; margin-top:6px; }
.bidder-desktop { display:none; }
.bidder-mobile { margin-top:0; }
.bidder-list { margin:0; padding:0; list-style:none; }
.bidder-list li { display:flex; align-items:baseline; flex-wrap:wrap; justify-content:space-between; gap:3px 8px; padding:7px 0; color:var(--muted); font-size:12px; border-bottom:1px solid var(--line); }
.bidder-list li:last-child { border:0; }
.bidder-list li>div { min-width:0; overflow-wrap:anywhere; }
.bidder-list li.leading,.bidder-list li.leader { color:var(--gold2); }
.bidder-list time,.bidder-list small { font-size:10px; color:var(--muted); }
.bidder-list small { margin-left:6px; }
.countdown { text-align:center; padding:15px 0 14px; }
.window-time { display:block; margin-top:3px; font-size:72px; line-height:1.05; font-weight:900; letter-spacing:-2px; color:var(--gold2); overflow-wrap:anywhere; }
.timer-track { height:12px; margin-top:9px; overflow:hidden; border:1px solid #6e5128; border-radius:9px; background:#2a1a12; }
.timer-track>span { display:block; width:0; height:100%; background:linear-gradient(90deg,var(--gold),var(--gold2)); }
.hard-deadline { margin-top:12px; text-align:left; }
.hard-deadline strong { font-size:14px; }
.hard-track { margin-top:5px; height:4px; background:#392125; border:0; }
.hard-track>span { background:#c96a5a; }
.scoreboard { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:5px 0 18px; text-align:center; }
.scoreboard>div { min-width:0; padding:9px 5px; border-radius:11px; background:var(--panel); }
.scoreboard span { display:block; color:var(--muted); font-size:10px; }
.scoreboard strong { display:block; font-size:17px; line-height:1.5; overflow-wrap:anywhere; }
.scoreboard>div:nth-child(2) strong { font-size:13px; margin-top:3px; }
#ticket-summary { color:var(--green); font-size:13px; margin-top:3px; }
.next-move { background:linear-gradient(170deg,var(--panel2),var(--panel)); border-color:var(--gold); }
.next-move .row { margin:0; align-items:center; }
#next-heading { margin:0; }
#next-proposal { margin-top:7px; font-size:16px; }
#next-proposal strong { font-size:29px; }
#next-proposal .proposal-cost { display:block; color:var(--muted); font-size:12px; }
.next-move .subtle { font-size:10px!important; }
.confirmation { border:2px solid var(--gold); background:var(--panel2); }
.confirmation>strong { font-size:12px; }
.quick-buttons { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:7px; }
.quick-buttons button { min-height:55px; padding:8px 4px; font-size:13px; white-space:pre-line; }
.quick-buttons strong { display:block; }
.hand-area { margin:20px 0 15px; }
.hand { display:flex; justify-content:center; align-items:flex-end; gap:7px; padding:17px 0 1px; }
.mini-card { flex:1; max-width:83px; min-width:0; min-height:84px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:10px; padding:10px 4px; border-radius:9px; border:1px solid var(--line); background:var(--panel); color:var(--muted); font-size:12px; opacity:.6; }
.mini-card.active { min-height:94px; border:2px solid var(--gold2); background:linear-gradient(170deg,var(--panel2),var(--panel)); color:var(--ink); font-weight:800; opacity:1; transform:translateY(-5px); }
.mini-card small { font-size:10px; color:var(--muted); }
#fixed-card { font-size:10px!important; }
.deadline { font-size:12px; padding-bottom:10px; margin-bottom:10px; border-bottom:1px solid var(--line); }
.deadline:last-child { padding:0; margin:0; border:0; }
.deadline strong,.deadline span { display:block; }
.deadline small { color:var(--muted); font-size:10px; }
.button-row { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:10px; }
.button-row button { flex:1; font-size:11px; white-space:nowrap; padding:10px 7px; }
.timeline { list-style:none; margin:0; padding:0; }
.timeline li { padding:10px 0; font-size:12px; border-bottom:1px solid var(--line); }
.timeline li:last-child { border:0; }
.timeline time { display:block; color:var(--muted); font-size:10px; margin-bottom:3px; }
.timeline .rejected { color:var(--red); }
.empty-state { padding:55px 10px; color:var(--muted); text-align:center; font-size:14px; }
.result-hero { padding:17px 0 12px; text-align:center; }
.result-hero h2 { font-size:26px; }
.result-hero .eyebrow { margin-bottom:4px; }
.result-hero .subtle { margin-top:7px; font-size:12px!important; }
.reward-ring { width:190px; height:190px; max-width:100%; margin:17px auto 0; padding:18px 5px; border:2px solid var(--gold); border-radius:50%; background:radial-gradient(circle,#d4ab5522,transparent 70%); display:flex; flex-direction:column; justify-content:center; align-items:center; }
.reward-ring .label { letter-spacing:0; }
.reward-ring strong { max-width:100%; font-size:24px; font-weight:900; color:var(--gold2); overflow-wrap:anywhere; }
.reward-ring small { color:var(--muted); font-size:10px; }
#effects-output { margin-top:3px; }
#effects-output:empty { display:none; }
.celebration { display:block; margin:10px 0 0; color:var(--gold2); font-size:13px; }
.result-budget { margin:11px 0 21px; }
.row .gold { color:var(--gold2); }
.report-label { margin-top:20px; }
.report-editor { margin-top:8px; }
#report-availability { white-space:pre-line; font-size:12px; line-height:1.8; margin:0 0 12px; }
.report-editor label { color:var(--gold); font-size:13px; }
.report-editor textarea { border:1px dashed var(--gold); min-height:75px; font-size:13px; }
#report-message { margin-top:9px; font-size:12px; color:var(--gold2); }
.saved-reports-heading { margin-top:26px; }
.report-lines p { padding:10px 0; border-bottom:1px solid var(--line); font-size:12px; white-space:pre-wrap; }
.report-lines p:last-child { border:0; padding-bottom:0; }
.report-date { font-size:10px; color:var(--muted); }
.settings-panel { padding-top:3px; padding-bottom:3px; }
.setting-switch { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:78px; cursor:pointer; }
.setting-switch+.setting-switch { border-top:1px solid var(--line); }
.setting-switch span { flex:1; }
.setting-switch strong { font-size:14px; }
.setting-switch small { text-align:left; margin-top:4px; line-height:1.5; }
.setting-switch input { flex:0 0 44px; width:44px; height:26px; accent-color:var(--gold); cursor:pointer; }
.settings-info p { margin:11px 0; color:var(--muted); }
.settings-info strong { color:var(--gold2); margin-left:8px; }
.dock { position:fixed; bottom:0; left:0; right:0; z-index:20; padding:3px max(10px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)); background:#120910; border-top:1px solid var(--line); }
.dock nav { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); max-width:1008px; margin:auto; }
.dock button { min-height:46px; padding:10px 2px; border:0; border-radius:0; background:transparent; color:var(--dim); font-size:11px; font-weight:500; }
.dock button>span { margin-right:3px; }
.dock button[aria-selected=true] { color:var(--gold2); font-weight:800; }
.dock>p { max-width:1008px; margin:3px auto 0; text-align:center; color:var(--dim); font-size:8px; line-height:1.6; }
@media(min-width:600px) {
  .masthead { padding-top:max(14px,env(safe-area-inset-top)); }
  h1 { font-size:18px; }
  .edition { font-size:9px; }
  .notices { margin-top:8px; font-size:11px; }
  .beta-notice { font-size:11px; }
  .progress { padding-top:15px; }
  .step { font-size:11px; }
  .status-strip { font-size:10px; min-height:35px; }
  #lot-panel,#strategy-panel,#report-panel,#settings-panel { max-width:720px; margin-left:auto; margin-right:auto; }
  h2 { font-size:28px; }
  .section-heading { margin-top:17px; }
  .section-heading>p:not(.eyebrow) { font-size:13px; }
  .lot-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .lot-fields label+label { margin-top:0; }
  .lot-fields>p { grid-column:1/-1; }
  .card-heading h2 { font-size:26px; }
  .card { min-height:235px; padding:34px 18px 15px; }
  .card.selected { padding:33px 17px 14px; }
  .card-cost { width:56px; height:56px; font-size:16px; }
  .card .name { font-size:21px; }
  .card .desc { font-size:12px; min-height:36px; }
  .card-lock { font-size:12px; }
  .card-foot { font-size:12px; }
  .card-foot strong { font-size:15px; }
  .cards { gap:22px 18px; }
  .panel { padding:18px; }
  details.panel { padding-top:8px; padding-bottom:8px; }
  details.panel[open] { padding-bottom:18px; }
  details>summary { font-size:14px; }
  .input-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .input-grid .full { grid-column:auto; }
  .scoreboard strong { font-size:23px; }
  .scoreboard>div:nth-child(2) strong,#ticket-summary { font-size:16px; }
  .window-time { font-size:80px; }
  .result-hero h2 { font-size:30px; }
  .reward-ring { width:210px; height:210px; }
  .reward-ring strong { font-size:27px; }
  .dock button { font-size:12px; }
  .dock>p { font-size:9px; }
}
@media(min-width:900px) {
  .board-layout { display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:22px; align-items:start; }
  .bidder-mobile { display:none; }
  .bidder-desktop { display:block; margin-top:12px; }
  .bidder-desktop h3 { font-size:13px; }
  .board-main { grid-column:1; grid-row:1; }
  .board-main .input-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:390px) {
  .brand { gap:6px; }
  h1 { font-size:13px; }
  .edition { font-size:7px; padding:2px 5px; letter-spacing:.7px; }
  .card-foot { font-size:10px; }
  .card-foot strong { font-size:12px; }
  .dock button { font-size:10px; }
  .dock button>span { margin-right:2px; }
}
@media(prefers-reduced-motion:no-preference) {
  button { transition:background .15s,box-shadow .15s; }
  .timer-track>span,.hp>span { transition:width .2s linear; }
  .sparkle { animation:card-sparkle .25s ease-out; }
  .celebration { animation:quiet-celebration .28s ease-out; }
  .reward-reveal { animation:reward-reveal .25s ease-out; }
}
@keyframes card-sparkle { 0% { box-shadow:0 0 0 5px #f0d28a66,0 0 20px #d4ab5555; } 100% { box-shadow:0 0 0 4px #d4ab5522,0 8px 22px #0004; } }
@keyframes quiet-celebration { 0% { opacity:.3; transform:translateY(4px); } 100% { opacity:1; transform:translateY(0); } }
@keyframes reward-reveal { 0% { opacity:.4; } 100% { opacity:1; } }
body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}

/* WL-03: saved achievements and season information are ordinary page content. */
.sound-prompt { border-color:var(--gold); }
.sound-prompt p { margin:8px 0; color:var(--muted); }
.effect-flags { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 12px; }
.effect-flags .checkbox { font-size:12px; }
.progression { margin:18px 0; }
.season-card { padding:18px; margin:14px 0 20px; border:1px solid var(--gold); border-radius:14px; background:linear-gradient(135deg,#3b2630,#21141e); }
.season-card strong { display:block; margin:7px 0; color:var(--gold2); font-size:22px; }
.season-card .subtle { margin-top:6px; }
.badge-collection { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:9px; }
.achievement { display:grid; gap:4px; padding:13px 10px; border:1px solid var(--line); border-radius:12px; color:var(--muted); background:var(--panel); }
.achievement strong { font-size:12px; }
.achievement small { font-size:10px; overflow-wrap:anywhere; }
.achievement-mark { color:var(--dim); font-size:23px; }
.achievement.earned { border-color:var(--gold); color:var(--gold2); }
.achievement.earned .achievement-mark { color:var(--gold2); }
#effects-output { display:flex; justify-content:center; flex-wrap:wrap; gap:5px; }
.update-notice { display:flex; align-items:center; justify-content:center; gap:6px; padding:3px 6px; font-size:10px; color:var(--gold2); background:var(--bg2); }
.update-notice button { flex-shrink:0; min-height:36px; padding:6px 8px; font-size:10px; }
body.has-update main { padding-bottom:180px; }
@media(min-width:600px) { .badge-collection { grid-template-columns:repeat(3,minmax(0,1fr)); } }
