:root{color-scheme:dark;--ink:#101917;--panel:#192522;--line:#3a473d;--faint:#293930;--parchment:#f5ead7;--muted:#b6bca8;--gold:#f2d49a;--gold-deep:#a57d4d;--copper:#d69769;--moonstone:#a7d6ee;--glass:#b1d9ae;--iron:#d1b6dc;--spark:#ffdb8b;--serif:Georgia,'Times New Roman',serif;--sans:system-ui,-apple-system,'Segoe UI',sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:300px;background:radial-gradient(ellipse at 42% 0%,#28372d 0%,#16211d 33%,#101917 76%);color:var(--parchment);font:15px/1.45 var(--sans)}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit}
button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
button:enabled{cursor:pointer}
button:disabled{cursor:default}
a{color:inherit}
p,h1,h2,h3{margin:0}
.frame{max-width:1334px;padding:0 28px;margin:auto}
.masthead{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:90px;padding:12px 0 14px}
.brand,.header-tools{display:flex;align-items:center;gap:14px}
.brand-mark{display:grid;place-items:center;flex:none;width:45px;height:45px;border:1px solid #a78758;background:#211f18;transform:rotate(45deg);border-radius:9px;box-shadow:inset 0 0 0 4px #1b211c,0 5px 16px #0c120e}
.brand-mark svg{width:34px;height:34px;transform:rotate(-45deg);fill:#dbb97632;stroke:var(--gold);stroke-width:1.25}
.eyebrow{font-size:.67rem;letter-spacing:.16em;text-transform:uppercase;font-weight:760;color:var(--gold);line-height:1.3}
h1,h2,h3{font-family:var(--serif);font-weight:400}
h1{font-size:clamp(1.5rem,3.15vw,2.4rem);line-height:1.08;letter-spacing:-.045em}
h2{font-size:clamp(1.4rem,2.6vw,1.88rem);line-height:1.05;letter-spacing:-.04em}
h3{font-size:1.08rem;line-height:1.13}
.control{display:inline-grid;place-items:center;min-height:42px;border:1px solid #5d6553;border-radius:7px;padding:7px 13px;background:#29362c;color:var(--parchment);font-size:.79rem;font-weight:730;text-decoration:none;white-space:nowrap;transition:background .17s,border-color .17s,box-shadow .17s}
.control.ghost{background:#202c24;color:#e1dac9}
.control.ghost:enabled:hover{background:#344237;border-color:#9a9d7d}
.control.gold{border-color:#ecc78b;background:linear-gradient(160deg,#f6d99f,#cd9f61);color:#241a12;box-shadow:0 2px 0 #835f3c,0 5px 9px #10171466}
.control.gold:enabled:hover{background:#ffe7b0;box-shadow:0 2px 0 #ab8550,0 0 18px #e5bd6955}
.control:disabled{opacity:.45;box-shadow:none}
.diorama{position:relative;isolation:isolate;min-height:202px;display:flex;align-items:flex-end;border:1px solid #677060;border-radius:16px;overflow:hidden;background:#182829;box-shadow:0 14px 25px #05090666}
.diorama canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.diorama::after{content:'';position:absolute;inset:5px;border:1px solid #dfbb833b;border-radius:11px;z-index:-1;pointer-events:none}
.landmark{position:absolute;left:50%;top:12px;transform:translateX(-50%);font-size:.64rem;font-weight:750;letter-spacing:.22em;text-transform:uppercase;color:#f0d8b1;white-space:nowrap;text-shadow:0 2px 5px #0e1515}
.landmark span{margin:0 6px;color:#d5a76e}
.scoreboard{width:100%;display:flex;justify-content:space-between;gap:8px;padding:13px}
.player{width:min(19%,206px);min-width:160px;border:1px solid #89917c65;border-radius:9px;background:#101b19e8;padding:9px 11px;backdrop-filter:blur(6px)}
.player.active{border-color:#dab37a;box-shadow:inset 0 0 16px #e8c4860b,0 0 14px #e4af5333}
.player header{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:5px}
.player header b{font-family:var(--serif);font-size:1.13rem;font-weight:500;line-height:1.06}
.player header span{font-size:.61rem;color:#e9ce9f;letter-spacing:.095em;text-transform:uppercase}
.player-meters{display:flex;flex-wrap:wrap;gap:4px 10px;color:#cfd1bc;font-size:.68rem;font-variant-numeric:tabular-nums}
.player-meters b{color:var(--gold);font-size:.78rem}
.rival-stock{display:flex;align-items:center;gap:8px;margin-top:4px;color:var(--muted);font-size:.65rem}
.rival-stock span{display:inline-flex;align-items:center;gap:1px}
.rival-stock .material{width:13px;height:13px}
.turnline{min-height:53px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:9px 2px}
.turn-lead{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:.88rem}
.turn-dot{display:block;width:9px;height:9px;border-radius:50%;background:#d2a961;box-shadow:0 0 10px #f0be7080}
.turnline[data-turn="rival"] .turn-dot{background:#a9d4cf;box-shadow:0 0 10px #a9d4cf80}
.turn-count,#latest{font-size:.75rem;color:var(--muted)}
.turn-count{border-left:1px solid #65725c;padding-left:9px}
#latest{text-align:right}
.panel{min-width:0;border:1px solid #485648;border-radius:14px;padding:15px;background:linear-gradient(155deg,#212e27 0%,#192521 54%,#16221e 100%);box-shadow:0 8px 22px #070f0a47}
.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.panel-heading .eyebrow{margin-bottom:3px}
.section-emblem{color:#c8a975;font-size:1.4rem}
.quarry-plate{perspective:700px;border:1px solid #6f6047;padding:7px 9px 9px;border-radius:11px;background:repeating-linear-gradient(8deg,#1e2923 0,#1e2923 3px,#202b25 3px,#202b25 4px);box-shadow:inset 0 3px 7px #0d1512,inset 0 -2px #99946b29,0 5px 0 #17201a}
.quarry-labels{display:flex;justify-content:space-between;color:#c0b699;text-transform:uppercase;font-size:.62rem;letter-spacing:.13em;padding:0 1.8% 5px}
.quarry-labels span:first-child::before{content:'‹';margin-right:6px;color:#ebc680}
.quarry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(30px,.72fr);gap:5px;align-items:center}
.tile,.forecast{position:relative;display:grid;place-items:center;min-width:0;height:clamp(42px,5.2vw,58px);border-radius:8px;border:1px solid #526154;background:linear-gradient(150deg,#3c4c3d,#28392f 62%,#23322a);box-shadow:inset 0 1px #8896813d,inset 0 -3px #15241e90,0 1px 2px #08120d}
.tile:enabled:hover,.tile[aria-pressed="true"]{border-color:#e9c78c;background:#4f5340;box-shadow:inset 0 0 13px #e8b96a35,0 0 9px #e8b96a35}
.tile[aria-pressed="true"]::after{content:'✦';position:absolute;top:0;right:5px;font-size:.65rem;color:#ffe0a4}
.tile.incompatible{opacity:.45}
.tile .material{width:clamp(24px,4vw,37px);height:clamp(24px,4vw,37px);filter:drop-shadow(0 4px 2px #121c18a8)}
.forecast{margin-left:4px;box-shadow:none;border:1px dashed #80745773;background:#182920;color:var(--muted)}
.forecast .material{width:24px;height:24px;opacity:.73}
.material{display:inline-grid;place-items:center;flex:none;width:20px;height:20px;vertical-align:middle}
.material svg{display:block;width:100%;height:100%;overflow:visible}
.material[data-kind="0"]{color:var(--copper)}.material[data-kind="1"]{color:var(--moonstone)}.material[data-kind="2"]{color:var(--glass)}.material[data-kind="3"]{color:var(--iron)}.material[data-kind="4"]{color:var(--spark)}
.gather-row{display:flex;justify-content:space-between;align-items:center;gap:9px;margin:13px 0 11px}
.gather-row p{font-size:.76rem;color:var(--muted)}
.gather-row .control{min-width:100px}
.tray{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:8px 0 0;border-top:1px solid var(--faint)}
.tray-slot{display:grid;justify-items:center;gap:0;background:#122019;border:1px solid #394838;border-radius:8px;padding:5px 0}
.tray-slot .material{width:21px;height:21px}
.tray-slot b{font-size:.85rem;line-height:1.4;color:var(--parchment)}
.tray-slot small{font-size:.63rem;color:var(--muted);white-space:nowrap}
.tray-slot em{color:var(--gold);font-size:.61rem;font-style:normal;white-space:nowrap}
.tier + .tier{margin-top:10px}
.tier-head{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:5px}
.tier-head b{color:#e4d6b8;font-size:.75rem;font-weight:760;letter-spacing:.02em}
.tier-head span{font-size:.68rem;color:var(--muted);text-align:right}
.blueprint-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.blueprint{min-width:0;display:flex;flex-direction:column;align-items:stretch;position:relative;isolation:isolate;overflow:hidden;border:1px solid #596054;border-radius:9px;background:linear-gradient(165deg,#2c3a32,#1b2a24 63%,#15231e);color:var(--parchment);text-align:left;padding:5px 6px 7px;box-shadow:0 2px 0 #101c16;transition:background .16s,border-color .16s,transform .16s}
.blueprint[data-kind="0"]{--card-accent:#d39664;--card-haze:#d38e482b}.blueprint[data-kind="1"]{--card-accent:#a2cde3;--card-haze:#78a6d42e}.blueprint[data-kind="2"]{--card-accent:#b6d4a5;--card-haze:#87ad5d2d}.blueprint[data-kind="3"]{--card-accent:#c3a6d2;--card-haze:#a67cc82b}
.blueprint:enabled:hover{transform:translateY(-2px);border-color:var(--card-accent);background:#304035}
.blueprint.is-ready{border-color:#ceaa72}
.blueprint.empty{min-height:105px;place-content:center;text-align:center;color:var(--muted);background:#1b2922;border-style:dashed;font-size:.7rem}
.blueprint-art{display:grid;place-items:center;width:100%;height:94px;border-radius:6px;border:1px solid #adbe9a23;background:radial-gradient(ellipse at 49% 58%,var(--card-haze),#15221d58 76%),repeating-linear-gradient(135deg,#a8b8a30d 0,#a8b8a30d 1px,transparent 1px,transparent 8px)}
.blueprint-art svg{width:100%;height:94px;max-width:145px;filter:drop-shadow(0 3px 2px #111c16)}
.card-score{position:absolute;top:8px;right:9px;min-width:26px;padding:0 3px;border:1px solid #a98f5c88;border-radius:4px;background:#14211e;color:var(--gold);font-size:.69rem;text-align:center}
.card-name{font-family:var(--serif);font-size:clamp(.83rem,1.5vw,1.03rem);font-weight:500;line-height:1.12;margin:5px 0 3px;min-height:1.12em;overflow-wrap:anywhere}
.card-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:2px;margin-top:auto;min-height:18px}
.costs{display:flex;flex-wrap:wrap;align-items:center;gap:1px 4px;color:var(--parchment);font-size:.7rem;line-height:1.25}
.costs .cost{display:inline-flex;align-items:center;gap:1px;white-space:nowrap;font-variant-numeric:tabular-nums}
.costs .material{width:14px;height:14px}
.costs .missing{color:#f9c5a6}
.bonus{font-size:.69rem;color:var(--card-accent,var(--gold));white-space:nowrap}
.bonus .material{width:13px;height:13px}
.reserved{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:10px;border-top:1px solid var(--faint);padding-top:7px;color:var(--muted);font-size:.73rem}
.reserved .control{min-height:32px;font-size:.73rem}
.ready-note{color:var(--gold);font-size:.68rem}
.commission-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.commission{padding:7px;min-width:0;border:1px solid #59604a;border-radius:8px;background:linear-gradient(145deg,#353a2a,#242e25)}
.commission h3{font-size:.94rem;margin-bottom:5px}
.commission .costs{color:#ede2ca}
.commission-progress{font-size:.68rem;color:var(--muted);margin-top:6px;font-variant-numeric:tabular-nums}
.commission-progress b{color:var(--gold)}
.move-log{display:grid;gap:4px;padding:0;margin:0;list-style:none;color:#c8cbb9;font-size:.75rem}
.move-log li{display:grid;grid-template-columns:2.1em 1fr;gap:5px;border-bottom:1px solid #354138;padding-bottom:3px}
.move-log li:last-child{border:0}
.move-log time{color:#c7a671;font-variant-numeric:tabular-nums}
footer{display:flex;justify-content:space-between;gap:12px;padding:19px 2px 24px;font-size:.65rem;color:var(--muted);letter-spacing:.09em;text-transform:uppercase}
.sheet{max-width:min(510px,calc(100% - 24px));width:100%;max-height:calc(100dvh - 30px);padding:0;border:1px solid #a78c63;border-radius:15px;background:#1d2b24;color:var(--parchment);box-shadow:0 22px 90px #070c07cc}
.sheet::backdrop{background:#08100dd6;backdrop-filter:blur(3px)}
.sheet-inner{padding:19px;display:grid;gap:12px}
.sheet-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.sheet-top .eyebrow{margin-bottom:4px}
.sheet p,.rules-list{font-size:.87rem;color:#d7dac8}
.sheet .secondary{color:var(--muted);font-size:.77rem}
.rules-list{display:grid;gap:8px;margin:0;padding-left:20px}
.sheet-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}
.detail-card{display:grid;grid-template-columns:92px 1fr;align-items:center;gap:12px;padding:8px;border:1px solid #58634e;border-radius:9px;background:#16261e}
.detail-card .blueprint-art{height:76px;background:radial-gradient(ellipse,#9dbe7d22,transparent 74%)}
.detail-card .blueprint-art svg{height:77px}
.detail-card .costs{margin-top:4px;font-size:.9rem}
.detail-card .costs .material{width:19px;height:19px}
.detail-steps{display:grid;gap:6px}
.detail-steps strong{color:var(--gold)}
.match-end{color:#f4d696}
@media(max-width:950px){.frame{padding:0 18px}.panel{padding:12px}.diorama{min-height:176px}.brand-mark{width:36px;height:36px}.brand-mark svg{width:28px;height:28px}}
@media(max-width:700px){.frame{padding:0 10px}.masthead{min-height:68px;gap:9px;padding:10px 1px}.brand{gap:9px}.brand-mark{width:28px;height:28px;border-radius:6px}.brand-mark svg{width:23px;height:23px}.brand-edition{font-size:.54rem;letter-spacing:.12em}.header-tools{gap:4px}.header-tools .control{min-height:42px;font-size:.66rem;padding:5px 7px}.diorama{min-height:166px}.scoreboard{padding:7px;gap:7px}.player{width:auto;min-width:0;flex:1;padding:6px 7px}.player header b{font-size:.98rem}.player header span{font-size:.53rem}.player-meters{gap:3px 5px;font-size:.65rem}.rival-stock{gap:5px}.landmark{top:7px;font-size:.55rem}.turnline{align-items:flex-start;flex-direction:column;gap:2px;min-height:51px;padding:7px 2px}.turn-lead{font-size:.82rem}.turn-count,#latest{font-size:.67rem}#latest{text-align:left}.market,.catalog,.ledger{scroll-margin-top:8px}.panel{padding:10px}.panel-heading{margin-bottom:8px}.quarry-plate{padding:5px 7px 7px}.quarry-grid{gap:4px}.quarry-grid .tile,.forecast{height:44px}.gather-row{margin:9px 0 7px}.gather-row .control{min-height:44px}.tray{padding-top:6px}.blueprint-grid{gap:5px}.blueprint-art{height:63px}.blueprint-art svg{height:64px}.reserved .control{min-height:42px}.commission-list{gap:5px}}
@media(max-width:375px){h1{font-size:1.2rem}.header-tools .control{font-size:.59rem;padding:5px 5px}.brand-mark{width:25px;height:25px}.brand-mark svg{width:21px;height:21px}.player header span{font-size:.48rem}.player-meters{font-size:.59rem}.player-meters b{font-size:.7rem}.tray-slot small{font-size:.56rem}.card-score{right:6px;top:6px}.blueprint{padding:4px 4px 6px}.commission h3{font-size:.82rem}}
@media(max-width:700px){.diorama{min-height:0;padding-top:113px}.diorama canvas{height:121px}.scoreboard{padding-top:0}}

:root {
  --copper:#ffab72;
  --moonstone:#83dfff;
  --glass:#84f2bb;
  --iron:#dea0ff;
  --spark:#ffe08d;
}
body { background:radial-gradient(ellipse at 23% 0%,#323053 0%,#1c2638 32%,#111c26 74%); }
.panel { background:linear-gradient(153deg,#26354a 0%,#192a37 62%,#16242d 100%);border-color:#516778; }
.section-emblem,.eyebrow { color:#f7d493; }
.quarry-plate { background:repeating-linear-gradient(9deg,#1e2739 0,#1e2739 3px,#232d40 3px,#232d40 4px);border-color:#79838d; }
.quarry-labels { color:#d1d9df; }
[data-kind="0"] { --gem:var(--copper); }
[data-kind="1"] { --gem:var(--moonstone); }
[data-kind="2"] { --gem:var(--glass); }
[data-kind="3"] { --gem:var(--iron); }
[data-kind="4"] { --gem:var(--spark); }
.tile {
  border-color:color-mix(in srgb,var(--gem) 42%,#2c3750);
  background:linear-gradient(143deg,color-mix(in srgb,var(--gem) 23%,#263347),#1b2539 78%);
}
.tile .material { filter:drop-shadow(0 4px 2px #101623) drop-shadow(0 0 6px color-mix(in srgb,var(--gem) 43%,transparent)); }
.tile:enabled:hover,.tile[aria-pressed="true"] { background:color-mix(in srgb,var(--gem) 34%,#283047);border-color:var(--gem); }
.tile.incompatible { opacity:.55; }
.forecast { border-color:color-mix(in srgb,var(--gem) 42%,#24304b);background:#20293a; }
.forecast .material { opacity:.9; }
.blueprint { --card-accent:var(--gem);--card-haze:color-mix(in srgb,var(--gem) 35%,transparent);background:linear-gradient(165deg,#374057,#263046 58%,#202b3b); }
.blueprint[data-kind] { --card-accent:var(--gem);--card-haze:color-mix(in srgb,var(--gem) 37%,transparent); }
.blueprint-art { background:radial-gradient(ellipse at 49% 58%,var(--card-haze),#18223662 76%),repeating-linear-gradient(135deg,#a8b8e225 0,#a8b8e225 1px,transparent 1px,transparent 8px); }
.blueprint:enabled:hover { background:#394962; }
.public-inventory { display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:.66rem;color:#c9d6df;margin-top:4px; }
.public-inventory a { color:var(--gold);text-decoration-color:#b49c71; }
.rival-stock { justify-content:space-between;gap:3px; }
.rival-stock span { gap:2px; }
.rival-stock b { font-weight:650;color:#f4f3ed; }
.tray-heading { display:flex;justify-content:space-between;gap:5px;align-items:baseline;padding:4px 0;color:#c9d6df;font-size:.68rem; }
.tray-heading strong { font-size:.77rem;color:var(--parchment); }
.tray { padding-top:4px; }
.tray-slot { background:#17293c;border-color:#4a5a6e; }
.tray-slot small { color:#c9d6df; }
.hand-heading { display:flex;justify-content:space-between;gap:4px;align-items:center;font-size:.76rem;color:#d7e1e8; }
.hand-heading span { color:var(--gold);font-variant-numeric:tabular-nums; }
.hand-slots { display:grid;gap:5px;margin-top:5px; }
.hand-slot { display:flex;align-items:center;gap:6px;min-height:45px;min-width:0;width:100%;border-radius:7px;border:1px solid color-mix(in srgb,var(--gem,#839ab7) 42%,#394b61);background:#26374c;color:#f7ecd8;text-align:left;font:inherit;font-size:.72rem;padding:3px 5px; }
.hand-slot:enabled:hover,.hand-slot.is-ready { border-color:#efc982;background:#394858; }
.hand-slot.empty { border-style:dashed;color:#c0ccd6;background:#172738;justify-content:center; }
.hand-slot small { display:block;color:#d8c9ad;font-size:.66rem; }
.hand-art { flex:none;display:grid;place-items:center;width:36px;height:33px; }
.hand-art svg { width:100%;height:100%; }
.sealed-reserve { display:grid;gap:5px;border-bottom:1px solid #536478;padding:9px 0;color:#c9d6df;font-size:.69rem; }
.sealed-reserve div { display:flex;flex-wrap:wrap;gap:4px; }
.sealed-reserve .control { min-height:40px;font-size:.67rem;padding:4px 6px; }
.rival-hand { margin-top:9px; }
.rival-backs { display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:5px; }
.rival-back { min-height:37px;display:grid;place-items:center;border:1px dashed #60748a;border-radius:6px;color:#8298b4;background:#192b3b; }
.rival-back.filled { background:repeating-linear-gradient(45deg,#47395e 0,#47395e 3px,#514469 3px,#514469 6px);color:#efc989;border:1px solid #bb96d3; }
.commission-explainer { font-size:.75rem;color:#d0dbe4;margin:-3px 0 10px;max-width:65ch; }
.commission { background:linear-gradient(150deg,#3b3f5b,#29364e);border-color:#69748d; }
.commission.qualified { border-color:#efc984; }
.commission-requirements { padding:0;margin:0;list-style:none;font-size:.71rem;color:#e6e8ec;display:grid;gap:2px; }
.commission-requirements li { display:flex;align-items:center;gap:3px; }
.commission-requirements li.met { color:#acffd0; }
.commission-requirements .material { width:15px;height:15px; }
.claimed-list { margin-top:8px;font-size:.71rem;color:#c8d5e0; }
.claimed-list strong { color:#f4d7a1;margin-right:3px; }
.spark-toggle { display:flex;align-items:center;gap:7px;color:#f1d6a2;font-size:.82rem;min-height:36px; }
.spark-toggle input { width:17px;height:17px;accent-color:#f1cb83; }
.return-options { display:grid;gap:6px; }
.return-option { display:grid;grid-template-columns:minmax(0,1fr) 42px 3.2rem 42px;gap:6px;align-items:center; }
.return-option strong { display:flex;align-items:center;gap:5px;color:var(--gem);font-size:.85rem; }
.return-option output { text-align:center;color:#e8dfd1;font-variant-numeric:tabular-nums; }
@media(max-width:700px) {
  .hand-slots { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .hand-slot { flex-direction:column;align-items:flex-start;min-height:66px; }
  .hand-slot.empty { align-items:center; }
  .hand-slot strong { overflow-wrap:anywhere; }
  .player-meters { color:#d2dce4; }
  .public-inventory { font-size:.59rem; }
  .commission-requirements { font-size:.64rem; }
}
.frame { max-width:1080px;padding:0 17px; }
.masthead { min-height:64px;padding:6px 0 9px; }
.brand-mark { width:35px;height:35px; }
.brand-mark svg { width:27px;height:27px; }
h1 { font-size:clamp(1.35rem,2.85vw,2.1rem); }
h2 { font-size:clamp(1.23rem,2.3vw,1.55rem); }
.diorama {
  min-height:147px;
  border-color:#a58b72;
  background:#202c49;
  box-shadow:inset 0 0 8px #ffc99645,0 7px 17px #08081495;
}
.diorama::after { border-color:#f9ce8e5c; }
.scoreboard { padding:8px 10px; }
.player { padding:6px 8px;background:#161c34ed;border-color:#777f9b; }
.landmark { top:6px; }
.turnline { min-height:36px;padding:4px 1px;gap:9px; }
#latest { flex:1; }
.compact-control { min-height:30px;padding:3px 8px;font-size:.68rem; }
.board-tabs { display:flex;gap:5px;margin-bottom:6px; }
.board-tabs a { display:grid;place-items:center;min-height:34px;padding:4px 14px;border:1px solid #64718e;border-radius:6px;background:#26364d;font-size:.73rem;font-weight:720;text-decoration:none;text-align:center; }
.board-tabs a[aria-current="true"] { border-color:#f4cd86;background:linear-gradient(125deg,#e7bf86,#f0d5a0);color:#281e2d; }
.market-board,.hand-board { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);align-items:start;gap:8px; }
.frame[data-view="market-board"] .hand-board,.frame[data-view="hand-board"] .market-board { display:none; }
.panel { padding:8px 9px;border-radius:10px;border-color:#63748b;background:linear-gradient(155deg,#303553,#202c40 44%,#192a37); }
.panel-heading { margin-bottom:5px; }
.panel-heading .eyebrow { font-size:.56rem;margin-bottom:2px; }
.quarry-plate { padding:4px 5px 5px;box-shadow:inset 0 1px 4px #0e1325,0 2px 0 #141a2c; }
.quarry-grid { gap:4px; }
.quarry-grid .tile,.quarry-grid .forecast { height:38px; }
.quarry-grid .tile .material { width:28px;height:28px; }
.quarry-grid .forecast .material { width:20px;height:20px; }
.quarry-labels { padding-bottom:2px; }
.tile { box-shadow:inset 0 1px color-mix(in srgb,var(--gem) 32%,transparent),inset 0 -2px #11172fa8; }
.tile[aria-pressed="true"] .material { animation:gem-sparkle 1.25s ease-in-out infinite alternate; }
@keyframes gem-sparkle { to { filter:drop-shadow(0 0 7px var(--gem)) brightness(1.35); } }
.gather-row { margin:6px 0 3px; }
.gather-row .control { min-height:34px;min-width:74px; }
.tray-heading { padding:2px 0; }
.tray-slot { padding:2px 0; }
.tray-slot .material { width:17px;height:17px; }
.tray-slot b { line-height:1.12; }
.tray-slot .gem-bonus { color:#98f3c8;font-weight:700; }
.tray-slot .gem-bonus.zero { color:#a7b7c7;font-weight:500; }
.cost-key { color:#cbd4e7;font-size:.66rem;margin:-1px 0 4px; }
.cost-key strong { color:#a0f4cb; }
.tier + .tier { margin-top:5px; }
.tier-head { margin-bottom:2px; }
.tier-head b { font-size:.69rem;color:#f9dfaa; }
.tier-head span { font-size:.61rem;color:#c3cbdf; }
.blueprint-grid { gap:4px; }
.blueprint {
  padding:3px 4px;
  border-color:color-mix(in srgb,var(--gem,#7085a5) 31%,#5d607d);
  border-radius:6px;
  background:linear-gradient(149deg,color-mix(in srgb,var(--gem,#7085a5) 16%,#383652),#263147 55%,#20283b);
}
.blueprint:hover { z-index:1; }
.blueprint.empty { min-height:74px; }
.blueprint-art {
  height:30px;
  border-color:#e3b98857;
  border-radius:4px;
  background:radial-gradient(ellipse at 50% 55%,var(--card-haze),transparent 72%),repeating-linear-gradient(133deg,transparent 0 6px,#f1cb9922 7px 8px,transparent 9px 14px),linear-gradient(160deg,#2b2948,#202139);
}
.blueprint-art svg { height:34px; }
.blueprint.is-ready { border-color:#f4cc79;box-shadow:inset 0 0 7px #f0bc7142; }
.card-name { font-size:clamp(.68rem,1.3vw,.89rem);margin:2px 0;min-height:1.06em;line-height:1.06; }
.card-score { min-width:20px;right:5px;top:5px;font-size:.57rem;color:#ffdfa0;border-color:#e3b67d9e;background:linear-gradient(120deg,#332745,#211b2b); }
.printed-cost { display:flex;flex-wrap:wrap;gap:1px 3px;align-items:center;min-height:13px; }
.price-gem { display:inline-flex;gap:1px;align-items:center;line-height:1.15;font-size:.65rem;color:#f7efd9;white-space:nowrap; }
.price-gem .material { width:12px;height:12px; }
.price-gem em { color:#a0f4cb;font-style:normal;font-weight:700;font-size:.6rem; }
.card-meta { min-height:14px;gap:2px; }
.cost-total { color:#d2d9ed;font-size:.62rem;font-variant-numeric:tabular-nums; }
.cost-total b { color:#ffe1a4; }
.card-gain { color:#a0f4cb;font-size:.59rem;font-weight:700;white-space:nowrap; }
.card-gain .material { width:11px;height:11px; }
.hand-slots { gap:3px;margin-top:3px; }
.hand-slot { min-height:35px; }
.hand-art { width:30px;height:28px; }
.sealed-reserve { padding:5px 0;gap:3px; }
.sealed-reserve .control { min-height:30px;padding:3px 5px;font-size:.62rem; }
.rival-hand { margin-top:5px; }
.rival-back { min-height:24px; }
.commission-explainer { margin:0 0 5px;max-width:none;font-size:.68rem; }
.commission-list { gap:4px; }
.commission { padding:4px 6px; }
.commission h3 { margin-bottom:3px; }
.commission-requirements { display:flex;flex-wrap:wrap;gap:2px 7px; }
.commission-progress { margin-top:3px; }
.claimed-list { display:flex;flex-wrap:wrap;gap:3px 16px;margin-top:4px; }
footer { padding:6px 0;font-size:.55rem; }
.engine-bonuses { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px; }
.engine-bonus { display:grid;place-items:center;gap:2px;background:#253347;border:1px solid #677990;border-radius:6px;padding:5px 2px;color:var(--gem); }
.engine-bonus small { font-size:.65rem;color:#d8e1f3; }
.engine-summary { margin:8px 0; }
.engine-cards { display:grid;gap:5px; }
.engine-card { display:flex;align-items:flex-start;gap:7px;border:1px solid #616b87;border-radius:7px;padding:5px; }
.engine-card h3 { color:var(--gem); }
.engine-card .hand-art { width:49px;height:40px; }
.engine-card p { margin-top:2px;font-size:.73rem; }
@media (max-width:900px) {
  .frame { padding:0 9px; }
  .board-tabs a { flex:1;min-height:40px;padding:4px 6px;font-size:.7rem; }
  .quarry-grid .tile,.quarry-grid .forecast { height:44px; }
  .blueprint-art { height:35px; }
  .blueprint-art svg { height:37px; }
  .card-name { min-height:2.12em; }
  .sealed-reserve .control { min-height:42px; }
  .hand-slot { min-height:52px; }
  footer { display:none; }
}
@media (max-width:700px) {
  .masthead { min-height:53px;gap:6px;padding:4px 0 6px; }
  .brand { gap:6px; }
  .brand-mark { width:24px;height:24px; }
  .brand-mark svg { width:18px;height:18px; }
  .header-tools .control { min-height:36px;padding:3px 5px;font-size:.58rem; }
  h1 { font-size:clamp(1.13rem,5.3vw,1.52rem); }
  .diorama { min-height:0;padding-top:97px; }
  .diorama canvas { height:103px; }
  .scoreboard { padding:0 5px 5px; }
  .player { padding:4px 6px; }
  .player header { margin-bottom:2px; }
  .turnline { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px 4px; }
  #latest { grid-row:2;grid-column:1;line-height:1.14; }
  #ledger-open { grid-row:1 / span 2;grid-column:2;align-self:center; }
  .blueprint-art { height:30px; }
  .blueprint-art svg { height:33px; }
  .card-name { font-size:.69rem; }
  .commission-requirements { display:grid;gap:1px; }
}
@media (max-width:700px) and (max-height:790px) {
  .diorama { padding-top:77px; }
  .diorama canvas { height:83px; }
}
@media (max-width:540px) {
  .frame { padding:0 6px; }
  .market-board { grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:4px; }
  .market-board .panel { padding:5px 4px; }
  .market-board .panel-heading { gap:3px; }
  .market-board h2 { font-size:1rem; }
  .market-board .panel-heading .eyebrow,.market-board .section-emblem { display:none; }
  .catalog .compact-control { padding:3px;min-height:32px;font-size:.6rem; }
  .quarry-plate { padding:2px; }
  .quarry-grid { grid-template-columns:repeat(4,minmax(0,1fr)) minmax(12px,.64fr);gap:2px; }
  .quarry-labels { font-size:.53rem;letter-spacing:.05em; }
  .quarry-labels span:first-child::before { margin-right:2px; }
  .quarry-grid .tile,.quarry-grid .forecast { height:36px;border-radius:5px;padding:0; }
  .quarry-grid .tile .material { width:min(18px,100%);height:18px; }
  .quarry-grid .forecast .material { width:min(12px,100%);height:12px; }
  .forecast { margin-left:0; }
  .tile[aria-pressed="true"]::after { right:1px;font-size:.5rem; }
  .gather-row { flex-direction:column;align-items:stretch;gap:3px;margin:4px 0; }
  .gather-row p { font-size:.66rem;line-height:1.2; }
  .gather-row .control { min-height:40px; }
  .tray-heading { display:block;font-size:.61rem; }
  .tray-heading strong { display:block;font-size:.69rem; }
  .tray { grid-template-columns:minmax(0,1fr);gap:2px; }
  .tray-slot { grid-template-columns:14px minmax(0,1fr) 13px 15px;gap:1px;justify-items:start;align-items:center;padding:1px 2px; }
  .tray-slot .material { width:13px;height:13px; }
  .tray-slot small { grid-column:2;grid-row:1;font-size:.58rem; }
  .tray-slot b { grid-column:3;grid-row:1;font-size:.72rem; }
  .tray-slot .gem-bonus { grid-column:4;grid-row:1;font-size:.55rem; }
  .cost-key { font-size:.6rem;line-height:1.2; }
  .tier + .tier { margin-top:3px; }
  .tier-head span { display:none; }
  .blueprint-grid { gap:2px; }
  .blueprint { padding:2px; }
  .blueprint-art { height:21px; }
  .blueprint-art svg { height:23px; }
  .card-name { font-size:.64rem;min-height:2.12em; }
  .card-score { min-width:15px;right:2px;top:2px;font-size:.5rem; }
  .printed-cost { gap:1px 2px; }
  .price-gem .material { width:10px;height:10px; }
  .price-gem,.price-gem em,.cost-total,.card-gain { font-size:.55rem; }
  .card-gain .material { width:9px;height:9px; }
  .hand-board { grid-template-columns:minmax(0,1fr);gap:4px; }
  .hand-board .panel { padding:6px; }
  .hand-slot { min-height:38px; }
  .sealed-reserve .control { min-height:38px; }
}
@media (max-width:365px) and (max-height:700px) {
  .masthead { min-height:43px; }
  .brand-mark,.brand-edition { display:none; }
  h1 { font-size:1.04rem;white-space:nowrap; }
  .header-tools .control { min-height:32px; }
  .diorama { padding-top:42px; }
  .diorama canvas { height:48px; }
  .player-meters { font-size:.54rem;gap:1px 4px; }
  .player-meters b { font-size:.62rem; }
  .rival-stock { margin-top:2px; }
  .board-tabs a { min-height:35px; }
  .quarry-grid .tile,.quarry-grid .forecast { height:29px; }
  .gather-row .control { min-height:34px; }
  .tray-heading { display:flex;gap:2px;font-size:.52rem; }
  .tray-heading strong { font-size:.59rem;white-space:nowrap; }
  .tray-slot .material { width:11px;height:11px; }
  .tray-slot b { font-size:.65rem; }
  .catalog .compact-control { min-height:26px; }
  .catalog h2 { font-size:.9rem; }
  .cost-key { font-size:.54rem; }
  .blueprint-art { height:17px; }
  .blueprint-art svg { height:19px; }
  .card-name { min-height:1.9em;font-size:.61rem; }
  .card-meta { min-height:12px;column-gap:1px; }
  .hand-board { grid-template-columns:minmax(0,2fr) minmax(0,3fr); }
  .hand-board .panel { padding:5px 4px; }
  .hand-board h2 { font-size:1rem; }
  .hand-slots,.commission-list { grid-template-columns:minmax(0,1fr); }
  .hand-slot { flex-direction:row;align-items:center;min-height:28px; }
  .sealed-reserve .control { min-height:30px; }
  .commission-explainer { font-size:.63rem;line-height:1.25; }
  .commission { padding:3px 4px; }
  .commission-requirements { display:flex;flex-wrap:wrap;gap:1px 4px; }
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
[hidden] { display:none !important; }
.title-screen { max-width:1140px;margin:0 auto;padding:34px 22px 50px; }
.title-back { display:inline-block;margin-bottom:18px;color:#f8d599;font-size:.8rem;font-weight:700;text-decoration:none; }
.title-hero { overflow:hidden;position:relative;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;border:1px solid #b08b83;border-radius:20px;background:linear-gradient(120deg,#2c1a43,#17273e 64%,#153944);box-shadow:0 26px 80px #0c1123; }
.title-art { height:100%;min-height:380px; }
.title-art img { display:block;width:100%;height:100%;min-height:380px;object-fit:cover;object-position:47% center; }
.title-copy { padding:32px 30px; }
.title-copy h1 { font-size:clamp(2.65rem,6.5vw,5.4rem);line-height:.91;margin:12px 0 18px;letter-spacing:-.055em;color:#fff2d9; }
.title-copy h1 span { display:block;color:#ffc585;text-shadow:0 0 30px #ff8e6e5b; }
.title-copy > p:not(.eyebrow):not(.title-status) { max-width:33ch;color:#e6d9ee;line-height:1.45; }
.title-actions,.title-resume,.mode-choices { display:flex;flex-wrap:wrap;gap:8px;margin-top:16px; }
.title-resume { margin-top:8px; }
.title-resume:empty { display:none; }
.title-actions .control,.mode-choices .control,.invite-join .control { min-height:44px; }
.title-status { color:#ffca9e;font-size:.82rem; }
.title-status:not(:empty) { margin-top:12px; }
.invite-join { border-top:1px solid #98748c;padding-top:12px;margin-top:15px; }
.invite-join p { margin:0 0 7px;color:#ebdcf1; }
.invite-panel { margin:8px 0 3px; }
.invite-panel label { display:block;color:#f7d599;font-weight:700;margin-bottom:4px; }
.invite-panel > div { display:flex;gap:6px; }
.invite-panel input { min-width:0;flex:1;font:inherit;font-size:16px;background:#141b32;border:1px solid #947b95;color:#fff4e2;border-radius:6px;padding:5px 8px; }
.connection-status { margin:5px 0;color:#ffdc9a;font-size:.79rem; }
@media (max-width:680px) {
  .title-screen { padding:17px 12px 25px; }
  .title-back { margin-bottom:11px; }
  .title-hero { grid-template-columns:minmax(0,1fr);border-radius:14px; }
  .title-art,.title-art img { min-height:0;height:clamp(145px,44vw,255px); }
  .title-copy { padding:16px 15px 19px; }
  .title-copy h1 { margin:7px 0 10px; }
  .title-copy h1 span { display:inline; }
}
