@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700&family=Cormorant+Garamond:wght@500;600;700&display=swap";:root{--bg0:#1a1510;--bg1:#2a2118;--panel:#34281c;--ink:#f3e6d4;--muted:#b9a48a;--accent:#c4a35a;--line:#f3e6d424;--danger:#e07060;--white:#f5f1ea;--blue:#3d6ea8;--green:#3f8f5a;--red:#b64a3c;--black:#2b2b2b;--gold:#d4a017;color:var(--ink);background:radial-gradient(1200px 600px at 20% -10%, #4a3520 0%, transparent 55%), radial-gradient(900px 500px at 100% 0%, #2c3d2a 0%, transparent 50%), linear-gradient(160deg, var(--bg0), var(--bg1));min-height:100%;font-family:Cormorant Garamond,Times New Roman,serif}*{box-sizing:border-box}body{min-height:100vh;margin:0}button,input,select{font:inherit}.shell{max-width:1280px;margin:0 auto;padding:1rem 1.25rem 2.5rem}.shell.playing{--play-card-w:110px;--play-card-h:142px;flex-direction:column;max-width:min(1480px,100%);height:100dvh;padding:.45rem .7rem .4rem;display:flex;overflow:hidden}.shell.playing .topbar{flex-shrink:0;margin-bottom:.35rem;padding-bottom:.35rem}.shell.playing .brand{font-size:1.35rem}.play-layout{flex:1;grid-template:"self table opponents"minmax(0,1fr)"command command command"/minmax(188px,230px) minmax(0,1fr) minmax(176px,210px);align-items:stretch;gap:.45rem;min-height:0;display:grid}.table-area{flex-direction:column;grid-area:table;gap:.4rem;min-width:0;min-height:0;display:flex;overflow:auto}.market-body{grid-template-columns:7fr 3fr;align-items:stretch;gap:.55rem;display:grid}.market-levels{min-width:0}.market-nobles{border-left:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;padding-left:.55rem;display:flex}.market-nobles .noble-column{flex:1;min-height:0}.market-nobles .nobles-label{margin-top:0}.opponent-area{flex-direction:column;grid-area:opponents;gap:.4rem;min-height:0;display:flex;overflow:hidden}.noble-column{flex-direction:column;align-items:stretch;gap:.28rem;min-height:0;display:flex;overflow-y:auto}.noble-column .noble-tile{flex:none;width:100%}.self-area{flex-direction:column;grid-area:self;min-height:0;display:flex;overflow:auto}.self-main{flex-direction:column;flex:1;gap:.35rem;min-height:0;display:flex}.self-status{flex-shrink:0}.self-reserved{flex:auto;min-width:0;min-height:0}.self-stack{flex-direction:column;gap:.1rem;display:flex}.command{z-index:5;flex-shrink:0;grid-area:command;padding:.45rem .65rem!important}.board,.players{display:contents}.self-grid{grid-template-columns:1fr auto;align-items:start;gap:1rem;display:grid}.player-panel.opponent{flex:1 1 0;min-height:0;overflow:auto}.player-panel.opponent-empty{opacity:.55;border-style:dashed;flex-direction:column;justify-content:center;display:flex}.seat-hint{margin:.25rem 0 0;font-size:.78rem}.player-panel.self{height:100%;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent);flex-direction:column;display:flex}.score{float:right;color:var(--ink)}.meta-line{color:var(--muted);margin:.3rem 0 .15rem;font-size:.8rem}.reserved-list{flex-wrap:wrap;gap:.35rem;margin-top:.25rem;display:flex}.reserved-item{justify-items:start;gap:.15rem;display:grid}.reserved-item .card-tile,.reserved-item .hidden-card{width:84px;min-height:108px}.supply-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.supply-head h3{margin:0}.shell.playing .panel{padding:.5rem .6rem}.shell.playing .panel>h3{margin:0 0 .3rem;font-size:.92rem}.shell.playing .supply-row{gap:.35rem}.shell.playing .market-row{align-items:flex-start;gap:.4rem;margin-bottom:.35rem;display:flex}.shell.playing .card-row{flex-wrap:nowrap;flex:1;gap:.4rem;min-width:0}.shell.playing .card-tile,.shell.playing .hidden-card,.shell.playing .deck-tile{width:var(--play-card-w);min-height:var(--play-card-h);flex-shrink:0}.shell.playing .market-nobles .noble-tile-compact{gap:.12rem;min-height:0;padding:.22rem .28rem}.shell.playing .market-nobles .noble-points{min-height:0;font-size:.95rem;line-height:1}.shell.playing .market-nobles .cost-stack{gap:.1rem}.shell.playing .market-nobles .gem-chip-sm{width:1.05rem;height:1.05rem;font-size:.6rem}.shell.playing .card-points,.shell.playing .noble-points{min-height:1.25rem;font-size:1.25rem}.deck-tile{text-align:center;color:#1a1510;border:2px solid #00000038;justify-content:center;align-items:center;gap:.3rem;box-shadow:inset 0 1px #ffffff59,0 4px 10px #00000038}.deck-tile-l1{background:linear-gradient(#ffffff6b,#0000 48%),linear-gradient(135deg,#b8dcc4 0%,#7fb896 100%)}.deck-tile-l2{background:linear-gradient(#ffffff73,#0000 48%),linear-gradient(135deg,#ecd9a8 0%,#c4a35a 100%)}.deck-tile-l3{color:#122033;background:linear-gradient(#ffffff6b,#0000 48%),linear-gradient(135deg,#b8cce8 0%,#6a94c4 100%)}.deck-tile:not(:disabled):hover{border-color:#1a1510;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff73,0 6px 14px #00000047}.deck-tile:disabled{opacity:.52;filter:saturate(.65);cursor:not-allowed}.deck-tile-level{color:inherit;opacity:.88;font-family:Cinzel,Cormorant Garamond,serif;font-size:1.2rem;font-weight:700}.deck-tile-count{color:inherit;font-family:Segoe UI,sans-serif;font-size:1.5rem;font-weight:800;line-height:1}.deck-tile-hint{color:inherit;opacity:.72;font-size:.72rem;font-weight:600}.deck-tile-l3 .deck-tile-hint,.deck-tile-l3 .deck-tile-level,.deck-tile-l3 .deck-tile-count{color:#122033}.shell.playing .help{margin:.15rem 0;font-size:.82rem}.shell.playing .market.panel{flex-direction:column;flex:1;min-height:0;display:flex}.shell.playing .market-body{flex:1;min-height:0}.shell.playing .opponent .owned-row{flex-wrap:wrap;gap:.25rem}.shell.playing .opponent .gem-chip-md{width:1.45rem;height:1.45rem;font-size:.72rem}@media (width<=1100px){.shell.playing{--play-card-w:102px;--play-card-h:132px}}@media (width<=900px){.shell.playing{height:auto;overflow:auto}.play-layout{grid-template:"self""table""opponents""command"/1fr;height:auto}.opponent-area{flex-flow:wrap;overflow:auto}.player-panel.opponent{flex:180px}.market-body{grid-template-columns:7fr 3fr}.topbar{flex-direction:column;align-items:start}}@media (width<=720px){.market-body{grid-template-columns:1fr}.market-nobles{border-left:none;border-top:1px solid var(--line);padding-top:.4rem;padding-left:0}.noble-column{flex-flow:wrap}.noble-column .noble-tile{width:96px}.shell.playing .card-row{flex-wrap:wrap}}.hero-brand h1,.brand{letter-spacing:.08em;color:var(--accent);margin:0;font-family:Cinzel,Cormorant Garamond,serif;font-size:2.4rem}.hero-brand p{color:var(--muted);margin:.35rem 0 1.5rem}.setup{gap:.85rem;max-width:420px;display:grid}.setup label,.checkbox{color:var(--muted);gap:.35rem;display:grid}.setup input,.setup select,.actions-header input{background:var(--bg0);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:.55rem .7rem}.difficulty-field{border:none;margin:0;padding:0}.difficulty-field legend{color:var(--muted);margin-bottom:.45rem;padding:0}.difficulty-list{gap:.45rem;display:grid}.difficulty-card{border:1px solid var(--line);cursor:pointer;background:#1a15108c;border-radius:8px;grid-template-columns:auto 1fr;align-items:start;gap:.55rem;margin:0;padding:.65rem .75rem;display:grid}.difficulty-card input{margin-top:.2rem}.difficulty-card.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px #c4a35a59}.difficulty-card.is-disabled{opacity:.55;cursor:not-allowed}.difficulty-card-body{gap:.2rem;display:grid}.difficulty-card-title{color:var(--ink);font-size:1.05rem}.difficulty-card-style{color:var(--accent);font-size:.92rem}.difficulty-card-desc{color:var(--muted);font-size:.92rem;line-height:1.35}.checkbox{grid-template-columns:auto 1fr;align-items:center}button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:6px;padding:.55rem .9rem}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:#1a1510;border-color:#0000;font-weight:700}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.topbar .brand{margin-right:.75rem;font-size:1.4rem}.muted{color:var(--muted);font-size:.95rem}.status{align-items:center;gap:.75rem;display:flex}.panel{background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--line);border-radius:10px;padding:.85rem 1rem}.panel h3{color:var(--accent);margin:0 0 .65rem;font-size:1.05rem}.noble-row,.card-row{flex-wrap:wrap;gap:.55rem;display:flex}.market-row{align-items:flex-start;gap:.5rem;margin-bottom:.55rem;display:flex}.card-tile,.noble-tile,.hidden-card{color:#1a1510;text-align:left;background:linear-gradient(#ffffff38,#0000 42%),#d8c4a4;border:1px solid #ffffff1f;border-radius:10px;flex-direction:column;gap:.25rem;width:112px;min-height:148px;padding:.45rem .4rem .4rem;display:flex;position:relative;box-shadow:0 6px 14px #00000047}.card-bonus-white{background:linear-gradient(#ffffff8c,#0000 40%),#ebe4d6}.card-bonus-blue{background:linear-gradient(#78aae68c,#0000 40%),#9bb8d8}.card-bonus-green{background:linear-gradient(#6ebe8280,#0000 40%),#9fc7a8}.card-bonus-red{background:linear-gradient(#dc786e80,#0000 40%),#d4a198}.card-bonus-black{color:#f3e6d4;background:linear-gradient(#50505073,#0000 40%),#8a847c}.noble-tile{background:linear-gradient(#ffe6a08c,#0000 45%),#c9b087;min-height:110px}.card-top{justify-content:space-between;align-items:flex-start;display:flex}.card-points,.noble-points{min-height:1.45rem;font-family:Cinzel,Cormorant Garamond,serif;font-size:1.45rem;font-weight:700;line-height:1}.card-body-spacer{flex:1}.cost-stack{flex-direction:column;align-items:flex-start;gap:.18rem;display:flex}.cost-stack.empty{opacity:.45;font-size:.85rem}.gem-chip{color:#111;border:2px solid #00000047;border-radius:999px;place-items:center;font-family:Segoe UI,sans-serif;font-weight:800;display:inline-grid;box-shadow:inset 0 1px #ffffff59,0 1px 2px #00000040}.gem-chip-sm{width:1.35rem;height:1.35rem;font-size:.72rem}.gem-chip-md{width:1.7rem;height:1.7rem;font-size:.85rem}.gem-chip-lg{width:2.55rem;height:2.55rem;font-size:1.05rem}.token-white{color:#222;background:radial-gradient(circle at 30% 28%,#fff,#d8d2c8 70%)}.token-blue{color:#fff;background:radial-gradient(circle at 30% 28%,#7eb6ef,#2f5f9a 72%)}.token-green{color:#fff;background:radial-gradient(circle at 30% 28%,#7ed29a,#2f7a49 72%)}.token-red{color:#fff;background:radial-gradient(circle at 30% 28%,#ef8b7d,#9a3a30 72%)}.token-black{color:#fff;background:radial-gradient(circle at 30% 28%,#6a6a6a,#1d1d1d 72%)}.token-gold{color:#3a2a00;background:radial-gradient(circle at 30% 28%,#ffe08a,#c79212 72%)}.card-tile.selected,.noble-tile.selected,.deck-btn.selected{outline:2px solid var(--accent);outline-offset:2px}.card-tile.affordable{box-shadow:0 0 0 2px #83c98e,0 8px 18px #00000052}.card-tile.affordable:not(.selected){outline-offset:1px;outline:2px solid #7bb988}.seed-hint{margin:-.45rem 0 0;font-size:.82rem}.result-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.5rem;display:flex}.opp-buy-badges{pointer-events:none;flex-direction:column;align-items:flex-end;gap:.12rem;display:flex;position:absolute;bottom:.28rem;right:.28rem}.opp-buy-badge{letter-spacing:.02em;color:#f3e6d4;border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);background:#241b13;border-radius:999px;place-items:center;min-width:1.35rem;height:1.15rem;padding:0 .28rem;font-family:Segoe UI,sans-serif;font-size:.58rem;font-weight:800;line-height:1;display:grid}.owned-token.needed:not(.picked){box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 70%, transparent)}.owned-token.needed:not(.picked):after{content:"要";color:var(--accent);font-family:Segoe UI,sans-serif;font-size:.65rem;font-weight:700;position:absolute;bottom:-.35rem;left:50%;transform:translate(-50%)}.pay-breakdown{border:1px solid var(--line);background:color-mix(in srgb, var(--bg0) 55%, transparent);border-radius:8px;margin:.35rem 0 .75rem;padding:.65rem .75rem}.pay-breakdown-row{flex-wrap:wrap;align-items:center;gap:.55rem 1rem;display:flex}.pay-label{color:var(--muted);min-width:4.5rem;font-size:.85rem}.pay-gems{flex-wrap:wrap;gap:.55rem;display:flex}.pay-need{background:color-mix(in srgb, var(--panel) 70%, transparent);border-radius:6px;align-items:center;gap:.35rem;padding:.2rem .4rem;display:inline-flex}.pay-need.short{background:color-mix(in srgb, var(--danger) 22%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--danger) 45%, transparent)}.pay-need.over{background:#c4a35a38}.pay-need.ok{background:#5aa86a33}.pay-need-meta{color:var(--ink);font-family:Segoe UI,sans-serif;font-size:.8rem}.pay-summary{margin:.55rem 0 0;font-size:.95rem}.pay-summary.ok{color:#8fd49a}.pay-summary.short{color:#f0a090}.card-tile.dimmed{opacity:.4}.bonus-strip{flex-wrap:wrap;gap:.3rem;display:flex}.supply-row,.owned-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.supply-pile,.owned-token{background:0 0;border:none;border-radius:999px;padding:.15rem;position:relative}.supply-pile:not(:disabled):hover,.owned-token:not(:disabled):hover{transform:translateY(-1px)}.supply-pile.picked .gem-chip,.owned-token.picked .gem-chip{box-shadow:inset 0 1px 0 #ffffff59, 0 0 0 2px var(--accent)}.supply-picked{background:var(--accent);color:#1a1510;border-radius:999px;padding:.08rem .32rem;font-family:Segoe UI,sans-serif;font-size:.72rem;font-weight:800;position:absolute;top:-.2rem;right:-.25rem}.hidden-card{color:var(--muted);background:#2a2118;place-items:center}.deck-sizes{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.65rem;font-size:.9rem;display:flex}.deck-btn{background:#241b13;padding:.35rem .55rem}.take-actions{flex-wrap:wrap;gap:.45rem;margin-top:.65rem;display:flex}.card-with-menu{justify-items:start;gap:.35rem;display:grid;position:relative}.card-choice{flex-wrap:wrap;gap:.3rem;display:flex}.card-choice button{background:#241b13;padding:.35rem .55rem;font-size:.9rem}.card-choice button.primary{background:var(--accent);color:#1a1510;border-color:#0000;font-weight:700}.intent-tabs{display:none}.command-status{margin:0 0 .35rem;font-size:1.15rem}.help{margin:0 0 .65rem}.command-actions{flex-wrap:wrap;gap:.5rem;display:flex}.seat-gate,.result{text-align:center;border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 90%, transparent);border-radius:12px;gap:.75rem;max-width:480px;margin:2rem auto;padding:1.5rem;display:grid}.error{color:var(--danger)}.error.banner{border:1px solid color-mix(in srgb, var(--danger) 50%, transparent);background:#50141059;border-radius:8px;padding:.5rem .75rem}.detail-btn{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));width:100%;color:var(--accent);margin-top:.55rem;font-size:.9rem}.detail-btn:hover{background:color-mix(in srgb, var(--accent) 16%, transparent)}.modal-backdrop{z-index:40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0805b8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-panel{width:min(720px,100%);max-height:min(82vh,900px);overflow:auto;box-shadow:0 18px 48px #00000073}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;padding-bottom:.55rem;display:flex}.modal-header h3{margin:0}.modal-section{margin-bottom:1rem}.modal-section h4{color:var(--muted);margin:0 0 .45rem;font-size:.95rem;font-weight:600}.review-shell{max-width:980px;margin:0 auto;padding:.75rem 1rem 2rem}.review-body{gap:1rem;display:grid}.review-status{text-align:center;border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 90%, transparent);border-radius:12px;gap:.75rem;max-width:480px;margin:2rem auto;padding:1.5rem;display:grid}.review-summary h2{margin:0 0 .4rem}.review-scoreline{margin:.2rem 0;font-size:1.25rem}.grade-dist{flex-wrap:wrap;gap:.45rem .75rem;margin:.5rem 0;padding:0;list-style:none;display:flex}.grade-dist li{align-items:center;gap:.35rem;display:flex}.grade-pill{border:1px solid var(--line);letter-spacing:.02em;border-radius:999px;align-items:center;gap:.25rem;padding:.12rem .45rem;font-size:.78rem;display:inline-flex}.grade-best{background:#3f8f5a59}.grade-good{background:#3d6ea84d}.grade-interesting{background:#c4a35a59}.grade-inaccuracy{background:#b9893c47}.grade-mistake{background:#e0706052}.grade-blunder{background:color-mix(in srgb, #e07060 55%, var(--panel))}.review-card-panel{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 92%, transparent);border-radius:12px;gap:.65rem;padding:1rem;display:grid}.review-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.review-kicker{color:var(--muted);font-size:.9rem}.review-moves{gap:.45rem;display:grid}.review-move{border:1px solid var(--line);border-radius:8px;padding:.45rem .6rem}.review-move.human{border-color:color-mix(in srgb, #3d6ea8 60%, var(--line))}.review-move.ai{border-color:color-mix(in srgb, #c4a35a 60%, var(--line))}.review-move-label{color:var(--muted);font-size:.78rem;display:block}.review-consensus{margin:0;font-weight:600}.review-why{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 80%, transparent);border-radius:10px;gap:.45rem;padding:.55rem .7rem;display:grid}.review-why-toggle{width:100%;color:inherit;cursor:pointer;background:0 0;border:0;justify-content:space-between;padding:0;font-weight:700;display:flex}.review-why-headline{margin:0}.review-why-bullets{gap:.25rem;margin:0;padding-left:1.15rem;display:grid}.review-why-confidence{color:var(--muted);margin:0;font-size:.82rem}.review-note{color:var(--muted);margin:0}.intent-row{flex-wrap:wrap;gap:.35rem;display:flex}.intent-chip{border:1px solid var(--line);border-radius:999px;padding:.1rem .45rem;font-size:.78rem}.review-board{gap:.55rem;display:grid;overflow-x:auto}.review-market-row{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.review-players{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.review-reserved,.review-nobles,.review-supply{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.review-supply-chip,.review-card,.card-tile.hl-human,.card-tile.hl-ai,.review-supply-chip.hl-human,.review-supply-chip.hl-ai{outline-offset:2px}.hl-human{outline:2px solid #6ea0d6}.hl-ai{outline:2px dashed #c4a35a}.review-nav,.review-footer{justify-content:center}.review-nav{justify-content:center;align-items:center;gap:.75rem;display:flex}.review-other-ai{gap:.4rem;display:grid}.review-other-block h4{margin:0 0 .2rem}.hero-brand .main-nav{gap:.6rem;margin-top:.85rem;display:flex}.grade-count-btn{color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.35rem;padding:0;display:inline-flex}.review-section{gap:.75rem;display:grid}.review-fold{text-align:left;justify-content:space-between;align-items:center;width:100%;display:flex}.history-shell{max-width:980px;margin:0 auto;padding:.75rem 1rem 2rem}.history-tabs{gap:.4rem;margin-top:.55rem;display:flex}.history-tabs button.is-active{font-weight:700}.learning-profile{gap:.9rem;display:grid}.learning-topics{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.learning-topic,.learning-hit{text-align:left;cursor:pointer;gap:.2rem;width:100%;display:grid}.learning-table{border-collapse:collapse;width:100%}.learning-table th,.learning-table td{text-align:left;border-bottom:1px solid var(--line);padding:.4rem .35rem}.learning-drill ul{gap:.35rem;padding:0;list-style:none;display:grid}.history-empty{text-align:center;gap:.8rem;max-width:420px;margin:2rem auto;display:grid}.history-table-wrap{overflow-x:auto}.history-table{border-collapse:collapse;width:100%}.history-table th,.history-table td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:.55rem .45rem}.history-cards{gap:.75rem;display:none}.history-card{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 92%, transparent);border-radius:12px;gap:.4rem;padding:.9rem;display:grid}.history-card-score{justify-content:space-between;gap:.5rem;margin:0;font-size:1.2rem;display:flex}.history-pager{justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;display:flex}@media (width<=720px){.review-players{grid-template-columns:1fr}.review-shell,.history-shell{padding:.5rem .65rem 1.5rem}.review-card-panel,.review-summary{overflow-x:auto}.history-table-wrap{display:none}.history-cards{display:grid}}html,body,#root{min-height:100%}
