:root{--ink: #181114;--board: #221a1f;--panel: #2b2127;--line: #463640;--bone: #e9dcc6;--dim: #a08e92;--gilt: #c9a85c;--ember: #e2703a;--p0: #5fa8a0;--p1: #d1497b;--p2: #bd7ce2;--p3: #ef7f52;--p4: #e8c987;--p5: #b3a59f;--actionsH: 92px;--handH: 118px;--might: #c96a5a;--faith: #9b8cc9;--trade: #c9a85c;--display: "Cormorant Garamond", Marcellus, Georgia, serif;--serif: "Source Serif 4", Georgia, "Iowan Old Style", "Times New Roman", serif;--mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{background:var(--ink)}body{background:radial-gradient(120% 90% at 50% 30%,#201820 0%,var(--ink) 60%,#120c0e 100%);color:var(--bone);font-family:var(--serif);font-size:14.5px;line-height:1.5;min-height:100vh}#app{max-width:980px;margin:0 auto;padding:10px 10px calc(var(--actionsH) + var(--handH) + 14px)}:focus-visible{outline:2px solid var(--bone);outline-offset:2px;border-radius:4px}header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 12px;padding:6px 4px 10px}header h1{font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:.24em;color:var(--gilt);text-transform:uppercase;white-space:nowrap;text-shadow:0 0 18px rgba(201,168,92,.25)}header h1 .sub{color:var(--dim);letter-spacing:.1em;font-size:12px;text-transform:none;font-family:var(--serif)}#hdrRight{display:flex;align-items:center;gap:12px;flex-wrap:wrap}button.mini{min-width:0;min-height:36px;padding:4px 12px;font-size:11px;font-family:var(--mono);letter-spacing:.06em;color:var(--dim);border-color:var(--line);border-radius:5px}button.mini:hover{color:var(--bone);border-color:var(--dim)}#seasonTrack{display:flex;gap:6px;align-items:center}.pip{width:20px;height:20px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--dim);font-family:var(--mono);position:relative;transition:border-color .4s,color .4s,box-shadow .4s}.pip.past{border-color:#5c4b39;color:#8d7a55}.pip.now{border-color:var(--gilt);color:var(--gilt);box-shadow:0 0 8px #c9a85c8c}.pip.fire{border-color:#56302a}.pip.fire .flame{filter:grayscale(1) brightness(.55);font-size:11px;transition:filter .5s}.pip.fire.lit{border-color:var(--ember);box-shadow:0 0 10px #e2703aa6}.pip.fire.lit .flame{filter:none}.pip.igniting{animation:pipIgnite .6s ease-out}@keyframes pipIgnite{0%{transform:scale(1)}35%{transform:scale(1.5);box-shadow:0 0 18px #e2703ae6}to{transform:scale(1)}}#status{position:relative;background:linear-gradient(180deg,var(--panel),var(--board));border:1px solid var(--line);border-radius:7px;box-shadow:inset 0 1px #e9dcc60f;padding:10px 14px;font-size:14.5px;line-height:1.45;min-height:46px;margin-bottom:10px;overflow:hidden}#status b{color:var(--gilt);font-weight:400}#status .seasonLine{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--gilt);display:block;margin-bottom:2px}#status:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 25%,rgba(233,220,198,.22) 50%,transparent 75%);transform:translate(-130%);pointer-events:none}#status.sweep:after{animation:statusSweep .2s ease-out}@keyframes statusSweep{0%{transform:translate(-130%)}to{transform:translate(130%)}}#layout{display:flex;flex-direction:column;gap:10px}#layout>#boardWrap{order:-1}#boardWrap{background:radial-gradient(ellipse 70% 60% at 50% 46%,#ffbe781a,#ffbe7800 70%),radial-gradient(ellipse at 50% 50%,#0000 45%,#080403a6),repeating-linear-gradient(92deg,#0000,#00000012 3px,#0000,#ffdcaa06 11px,#0000 17px),repeating-linear-gradient(88deg,#0000,#00000029 40px,#0000 90px,#0000001a 150px,#0000 230px),linear-gradient(180deg,#3a2318,#2c1a12 55%,#22140e);border:1px solid #140e11;border-radius:12px;overflow:hidden;box-shadow:0 30px 56px -24px #050203e6,0 10px 22px -12px #050203a6,inset 0 0 0 1px #c9a85c33,inset 0 0 0 6px #241a16,inset 0 0 0 7px #c9a85c26,inset 0 1px #e9dcc614,inset 0 -16px 44px #0a060899}#boardMount{width:100%;aspect-ratio:1 / 1;max-height:82vh;margin:0 auto;position:relative}#boardMount canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block}#players{display:flex;gap:8px}#players.compact{display:grid;grid-template-columns:1fr 1fr;gap:5px}.pcard{flex:1;background:linear-gradient(175deg,#2f2429 0%,var(--panel) 60%,#271e23 100%);border:1px solid var(--line);border-radius:7px;padding:8px 10px;font-size:12px;line-height:1.55;box-shadow:inset 0 1px #e9dcc60d;transition:border-color .3s,box-shadow .3s}.pcard.active{border-color:#c9a85c8c;box-shadow:inset 0 1px #e9dcc60d,0 0 12px #c9a85c24}.pcard .nm{font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcard .pline{display:flex;align-items:baseline;gap:6px;min-width:0}.pcard .pline+.pline{margin-top:1px}.pcard .pline .score{margin-left:auto;line-height:1.1}.pcard .pline .score small{font-size:10px;color:var(--dim)}.pcard .pdoc{margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.pcard .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:baseline}.dot{box-shadow:inset 0 -1px 1px #0000004d,0 0 0 1px #140e11b3}.pcard .score{font-family:var(--mono);font-size:18px;color:var(--gilt)}.pcard .mono{font-family:var(--mono);font-size:10.5px;color:var(--dim)}.pcard .tray{display:inline-block;border:1px dashed var(--line);border-radius:4px;padding:0 7px;margin-left:2px;font-family:var(--mono);font-size:10.5px;color:var(--dim);transition:border-color .3s,color .3s}.pcard .tray.pop{animation:trayPop .45s ease-out;border-color:var(--bone);color:var(--bone)}@keyframes trayPop{30%{transform:scale(1.25)}to{transform:scale(1)}}.pcard.mini{display:flex;align-items:center;gap:6px;padding:5px 9px;line-height:1.3;min-width:0}.pcard.mini .nm{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}.pcard.mini .dot{flex:none;margin-right:0}.pcard.mini .score{font-size:14px;margin-left:auto}.pcard.mini .mono{white-space:nowrap;flex:none}.pcard.mini .tray{flex:none;margin-left:0}.pcard.mini .aiTag{margin-left:0;flex:none}.colLabel{font-family:var(--display);font-size:11px;letter-spacing:.2em;color:var(--dim);margin:10px 0 5px}#hand,#ashRow{display:flex;flex-wrap:wrap;gap:6px;min-height:56px;align-items:flex-start}#handArea{position:fixed;left:0;right:0;bottom:var(--actionsH);z-index:15;background:linear-gradient(180deg,rgba(24,17,20,.94),var(--ink) 55%);border-top:1px solid var(--line);box-shadow:0 -10px 24px -14px #050203e6;padding:5px 12px 6px;max-height:168px;overflow-y:auto}#handArea .colLabel{margin:0 0 4px}#handArea #hand{min-height:64px}#doctrineCard{display:flex;flex-direction:column;gap:1px;margin:0 0 6px;padding:5px 8px;border:1px solid var(--line);border-left:3px solid var(--gilt);border-radius:5px;background:linear-gradient(180deg,rgba(201,168,92,.08),transparent);cursor:pointer}#doctrineCard[hidden]{display:none}#doctrineCard{background:linear-gradient(90deg,#221a1ff7,#221a1fe6,#221a1f59),url(/art/tiles/keep.jpg) right 0 center / 42% auto no-repeat,#221a1f}#doctrineCard.met{background:linear-gradient(90deg,#2a1812f7,#2a1812e0,#2a181259),url(/art/tiles/keep.jpg) right 0 center / 42% auto no-repeat,#2a1812}#doctrineCard.met{border-left-color:var(--ember);background:linear-gradient(180deg,rgba(226,112,58,.1),transparent)}#doctrineCard .dkind{font-size:9px;letter-spacing:.16em;color:var(--dim);text-transform:uppercase}#doctrineCard .dname{font-size:13px;color:var(--bone)}#doctrineCard .dname b{color:var(--gilt);font-weight:600}#doctrineCard.met .dname b{color:var(--ember)}#doctrineCard .dprog{font-family:var(--mono, ui-monospace, monospace);font-size:11px;color:var(--dim)}.chip{--suit: var(--line);position:relative;width:46px;height:64px;border-radius:5px;border:1px solid var(--suit);background:radial-gradient(120% 60% at 50% 100%,color-mix(in srgb,var(--suit) 16%,transparent) 0%,transparent 70%),linear-gradient(175deg,#2e2329,#221a1f 60%,#1a1317);box-shadow:inset 0 0 0 1.5px #140e11,inset 0 0 0 2.5px #c9a85c8c,inset 0 1px #fff0d214,0 3px 6px -2px #050203b3;display:inline-flex;align-items:center;justify-content:center;font-size:20px;color:var(--suit);text-shadow:0 1px 2px rgba(10,6,8,.55);-webkit-user-select:none;user-select:none;flex:none;overflow:hidden}.chip.suit-m{--suit: var(--might)}.chip.suit-f{--suit: var(--faith)}.chip.suit-t{--suit: var(--trade)}.chip .cArt{position:absolute;left:4px;right:4px;top:4px;height:56%;border-radius:50% 50% 2px 2px/22% 22% 2px 2px;background-size:cover;background-position:center 32%;box-shadow:inset 0 0 0 1px #e8c463d9,inset 0 -10px 12px -4px #0a060899,inset 0 6px 10px -6px #fff0d240}.chip.suit-m .cArt{background-image:url(/art/tiles/garrison.jpg)}.chip.suit-f .cArt{background-image:url(/art/tiles/shrine.jpg)}.chip.suit-t .cArt{background-image:url(/art/tiles/field.jpg)}.chip .cMed{position:absolute;left:50%;top:calc(-5px + 56%);width:18px;height:18px;transform:translate(-50%);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10.5px;line-height:1;color:var(--suit);background:radial-gradient(circle at 40% 35%,#2e2228,#120c0f 75%);border:1.5px solid #d9b765;box-shadow:0 1px 2px #0009,inset 0 0 0 1px #00000080;text-shadow:none}.chip .cPips{position:absolute;left:0;right:0;bottom:6px;display:flex;justify-content:center;gap:3.5px}.chip .cPips i{width:5px;height:5px;background:var(--suit);transform:rotate(45deg);box-shadow:0 0 0 1px #0a0608cc,0 0 4px color-mix(in srgb,var(--suit) 60%,transparent)}.chip .v{position:absolute;top:5px;left:6px;min-width:11px;height:11px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:8.5px;font-weight:500;color:#fff3dc;background:#0e090cb8;text-shadow:none;z-index:1}.chip.back{border-color:#6a5426;background:radial-gradient(70% 50% at 50% 50%,#c9a85c29,#c9a85c00 70%),repeating-linear-gradient(45deg,#ffffff06 0,#ffffff06 2px,#0000 2px,#0000 5px),radial-gradient(circle at 45% 40%,#34305e,#1c1936 80%);box-shadow:inset 0 0 0 2px #120f22,inset 0 0 0 3px #c9a85cb3,inset 0 0 0 5px #120f22,inset 0 0 0 5.6px #c9a85c59,0 3px 6px -2px #050203b3;color:#e8c463;font-size:16px;text-shadow:0 0 6px rgba(232,196,99,.5)}.chip.fading{transition:opacity .35s ease-in,transform .35s ease-in;opacity:0;transform:translateY(10px)}.chip.arriving{animation:chipArrive .35s ease-out}@keyframes chipArrive{0%{opacity:0;transform:translateY(-14px) scale(1.15)}to{opacity:1;transform:none}}.ashCard{width:46px;height:64px;border-radius:5px;border:1px solid var(--ember);background:linear-gradient(180deg,#140a0640,#140a06bf),url(/art/tiles/field-burned.jpg) center / cover;text-shadow:0 1px 3px #000;color:var(--ember);display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:16px;box-shadow:0 0 8px #e2703a4d;flex:none}.ashCard small{font-family:var(--mono);font-size:9px;letter-spacing:.08em}.ashNone{font-family:var(--mono);font-size:11px;color:var(--dim);align-self:center}.colHint{font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;color:var(--dim);text-transform:none}#bazaarShelf{display:flex;gap:6px;min-height:84px;align-items:stretch}.edict{flex:1 1 0;min-width:0;background:linear-gradient(172deg,#423629,#3a3028 45%,#322a22);border:1px solid var(--line);border-radius:7px;padding:7px 9px 6px;box-shadow:inset 0 1px #e9dcc612,inset 0 0 0 1px #1811144d;display:flex;flex-direction:column;gap:2px;transition:border-color .25s,box-shadow .25s,opacity .25s}.edict .ecost{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--gilt)}.edict .ename{font-family:var(--display);font-size:13px;letter-spacing:.06em;color:var(--bone);line-height:1.25}.edict .edesc{font-size:10px;line-height:1.4;color:var(--dim)}.edict .enote{margin-top:auto;font-family:var(--mono);font-size:9px;letter-spacing:.07em;color:var(--dim)}.edict.dim{opacity:.55}.edict[class*=aff-]{padding-top:40px;background-repeat:no-repeat}.edict.aff-sm{background-image:linear-gradient(180deg,#3a302800,#3a302826 22px,#3a3028 46px),url(/art/tiles/garrison.jpg);background-size:100% 100%,100% auto;background-position:top,center -18px}.edict.aff-sf{background-image:linear-gradient(180deg,#3a302800,#3a302826 22px,#3a3028 46px),url(/art/tiles/shrine.jpg);background-size:100% 100%,100% auto;background-position:top,center -22px}.edict.aff-st{background-image:linear-gradient(180deg,#3a302800,#3a302826 22px,#3a3028 46px),url(/art/tiles/field.jpg);background-size:100% 100%,100% auto;background-position:top,center -26px}.edict[class*=aff-] .ecost{text-shadow:0 1px 2px #000,0 0 6px rgba(0,0,0,.8)}#bazaarShelf{flex-wrap:wrap}.heldRow{flex-basis:100%;display:flex;gap:6px;align-items:stretch;margin-top:4px}.edict.held{border-color:#c9a85c8c;box-shadow:inset 0 0 10px #c9a85c14}.heldTag{color:var(--gilt)}.edict.buyable{cursor:pointer;border-color:var(--gilt);box-shadow:0 0 8px #c9a85c2e}.edict.buyable .enote{color:var(--gilt)}.edict.buyable:hover{box-shadow:0 0 14px #c9a85c66;transform:translateY(-1px)}#side{display:flex;flex-direction:column;min-height:0;background:var(--panel);border:1px solid var(--line);border-radius:7px;overflow:hidden}#sideTabs{display:flex;flex:none;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#2f2429,var(--panel))}.sideTab{flex:1 1 0;min-width:0;min-height:40px;padding:8px 6px;border:none;border-radius:0;border-bottom:2px solid transparent;font-family:var(--display);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);position:relative}.sideTab:hover{color:var(--bone)}.sideTab[aria-selected=true]{color:var(--gilt);border-bottom-color:var(--gilt);background:#c9a85c0d}.tabBadge{display:inline-block;min-width:16px;margin-left:5px;padding:0 4px;border-radius:8px;background:var(--ember);color:var(--ink);font-family:var(--mono);font-size:9.5px;letter-spacing:0;line-height:16px;vertical-align:1px}.tabBadge[hidden]{display:none}.sidePane{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.sidePane[hidden]{display:none}#paneTreaties{padding:4px 12px 12px}#log{background:var(--board);box-shadow:inset 0 3px 8px #0a060859;padding:4px 12px 10px;min-height:100%;font-size:12.5px;line-height:1.55;color:var(--dim)}#log>div{padding:2px 0}#log .imp{color:var(--bone)}#log .fireL{color:var(--ember)}#log .logSeason{position:sticky;top:0;z-index:1;margin:6px -12px 3px;padding:5px 12px 4px;background:linear-gradient(180deg,var(--board) 70%,rgba(34,26,31,.85));border-bottom:1px solid rgba(70,54,64,.7);font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--gilt)}#log .logSeason.burn{color:var(--ember)}#log .logTurn{margin-top:6px;font-family:var(--display);font-size:12.5px;letter-spacing:.08em;color:var(--bone)}#log .who{color:var(--bone);white-space:nowrap}#log .who:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;vertical-align:1px;background:var(--seat, var(--dim))}#log>div.fresh{animation:logFresh 1.6s ease-out}@keyframes logFresh{0%{background:#c9a85c1f}to{background:transparent}}@media(max-width:1099px){#side{height:380px}#players{flex-direction:column;gap:5px}.pcard{min-width:0}}@media(max-width:720px){#hdrRight .btnText{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}#hdrRight{gap:8px;flex-wrap:nowrap}#hdrRight button.mini{min-width:40px;min-height:40px;padding:4px 10px;font-size:14px}#seasonTrack{gap:4px}.pip{width:18px;height:18px}}.pcard .seatMark{margin-left:6px;font-size:11px;color:var(--bone)}.srOnly{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}#boardMount:focus-visible{outline:2px solid var(--bone);outline-offset:-4px;border-radius:10px}.coach{position:fixed;z-index:30;left:50%;bottom:calc(var(--actionsH) + 12px);transform:translate(-50%);width:min(460px,calc(100vw - 32px));background:linear-gradient(180deg,#33272d,var(--panel));border:1px solid var(--gilt);border-radius:8px;box-shadow:0 16px 40px -12px #050203e6,0 0 18px #c9a85c26;padding:11px 14px 10px;font-size:13.5px;line-height:1.5;animation:coachIn .3s ease-out}.coach .coachHead{font-family:var(--display);font-size:11px;letter-spacing:.2em;color:var(--gilt);margin-bottom:3px}.coach b{color:var(--gilt);font-weight:400}.coach .coachRow{display:flex;justify-content:space-between;align-items:center;margin-top:8px;gap:10px}.coach .coachRow label{font-family:var(--mono);font-size:10.5px;color:var(--dim);display:flex;gap:6px;align-items:center;cursor:pointer}.coach button{min-width:0;min-height:36px;padding:6px 16px;font-size:13px}@keyframes coachIn{0%{opacity:0;transform:translate(-50%,10px)}}@media(min-width:1100px){.coach{left:calc(50% + 0px)}}.primerOverlay{z-index:45}.overlay .modal.primer{position:relative;max-width:640px;display:flex;flex-direction:column;max-height:min(92vh,860px)}.primerHead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-right:36px}.primerHead h2{margin-bottom:6px!important}.primerCount{font-family:var(--mono);font-size:11px;color:var(--dim)}.primerBody{overflow-y:auto;min-height:0;flex:1 1 auto;padding-right:4px;outline:none}.overlay .modal .primerBody p{font-size:14px;color:var(--bone);line-height:1.6}.overlay .modal .primerBody p.lead{font-size:15px}.overlay .modal .primerBody p.aside{color:var(--dim);font-size:13px;border-left:2px solid var(--line);padding-left:10px}.primerArt{display:block;width:100%;max-width:520px;height:auto;margin:6px auto 12px}.primerArt.narrow{max-width:300px}.primerList{margin:4px 0 12px 20px;font-size:14px;line-height:1.6;color:var(--bone)}.primerList li{margin-bottom:7px}.primerGrid{display:grid;grid-template-columns:1fr max-content;gap:2px 14px;font-family:var(--mono);font-size:11.5px;color:var(--dim);background:var(--board);border:1px solid var(--line);border-radius:6px;padding:8px 12px;margin:0 0 12px}.primerGrid b{text-align:right}.primerDots{display:flex;gap:6px;justify-content:center;margin:8px 0 2px}.primerDots span{width:7px;height:7px;border-radius:50%;background:var(--line)}.primerDots span.on{background:var(--gilt)}.primerClose{position:absolute;top:10px;right:10px;min-width:0;min-height:0;width:34px;height:34px;padding:0;border-color:transparent;color:var(--dim);font-size:15px}.primerClose:hover{color:var(--bone);border-color:var(--line)}#cheat{padding:13px 14px 14px;font-size:12px;line-height:1.5;color:var(--dim)}#cheat h3{font-family:var(--display);color:var(--gilt);font-size:11px;letter-spacing:.2em;font-weight:500;margin:14px 0 5px;padding-top:10px;border-top:1px solid rgba(70,54,64,.55)}#cheat h3:first-child{margin-top:0;padding-top:0;border-top:none}#cheat h3 .hsub{font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;color:var(--dim)}#cheat b{color:var(--bone);font-weight:400}#cheat .row{margin:0 0 4px}#cheat .row:last-child{margin-bottom:0}#cheat small{font-size:10px;line-height:1.45;display:block;margin-top:2px}#cheat .might{color:var(--might)}#cheat .faith{color:var(--faith)}#cheat .trade{color:var(--trade)}#cheat .mini-table{display:grid;grid-template-columns:1fr max-content;gap:1px 12px;font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;margin:3px 0 6px;padding:5px 8px;background:var(--board);border:1px solid rgba(70,54,64,.55);border-radius:5px}#cheat .mini-table .num{color:var(--bone);text-align:right}#cheat .mini-table .full{grid-column:1 / -1;color:var(--bone)}#actions{position:fixed;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(24,17,20,0),rgba(24,17,20,.92) 40%,var(--ink));padding:12px;display:flex;gap:8px 10px;justify-content:center;flex-wrap:wrap;z-index:25}@media(max-width:720px){#actions button{min-width:0;flex:1 1 30%;padding:11px 10px;font-size:14px}}button{font-family:var(--serif);background:transparent;color:var(--bone);border:1px solid var(--line);border-radius:7px;padding:11px 30px;min-height:48px;min-width:220px;font-size:15px;letter-spacing:.04em;cursor:pointer;transition:opacity .25s,box-shadow .25s,border-color .25s}button:disabled{opacity:.3;cursor:default}button.gold{border-color:var(--gilt);color:var(--gilt);background:linear-gradient(180deg,#c9a85c17,#c9a85c08);box-shadow:inset 0 1px #e9dcc614}button.gold:not(:disabled):hover{box-shadow:inset 0 1px #e9dcc614,0 0 12px #c9a85c59}button.emberB{border-color:var(--ember);color:var(--ember);background:linear-gradient(180deg,#e2703a17,#e2703a08);box-shadow:inset 0 1px #e9dcc60f}.duelOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e0a0c8c;display:flex;align-items:center;justify-content:center;z-index:20;padding:14px;animation:overlayIn .15s ease-out}.duelOverlay.closing{animation:overlayOut .2s ease-in forwards}@keyframes overlayIn{0%{opacity:0}}@keyframes overlayOut{to{opacity:0}}.duelPanel{background:var(--panel);border:1px solid var(--gilt);border-radius:9px;max-width:540px;width:100%;padding:18px 20px 16px;box-shadow:inset 0 1px #e9dcc612,0 24px 70px #050203cc}.duelPanel h2{font-family:var(--display);font-size:15px;letter-spacing:.22em;color:var(--gilt);font-weight:500;text-align:center;margin-bottom:12px}.reveal{display:flex;gap:12px}.rside{flex:1;background:var(--board);border:1px solid var(--line);border-radius:7px;padding:10px 10px 12px;text-align:center;min-height:196px}.rside .rname{font-size:13px;margin-bottom:8px}.rside .rcards{display:flex;justify-content:center;gap:6px;min-height:64px}.rside .rtot{font-family:var(--mono);font-size:30px;margin-top:8px}.rside .rmath{font-family:var(--mono);font-size:12px;color:#cdbfa9;line-height:1.7;min-height:40px}.rside .rmath div{animation:lineIn .18s ease-out}@keyframes lineIn{0%{opacity:0;transform:translateY(4px)}}.chip.slam{animation:slam .22s cubic-bezier(.2,.9,.3,1.2)}@keyframes slam{0%{opacity:0;transform:translateY(-34px) scale(1.5)}to{opacity:1;transform:none}}.verdict{text-align:center;font-family:var(--display);font-size:17px;letter-spacing:.12em;margin-top:12px;min-height:26px}.verdict span{display:inline-block;animation:verdictIn .3s ease-out}@keyframes verdictIn{0%{opacity:0;transform:scale(1.35)}}#flightRoot{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:30}#flightRoot .flier{position:fixed;will-change:transform}.pieceGhost{width:40px;height:40px;border-radius:50%;border:2.5px solid;background:#e9dcc6eb;display:flex;align-items:center;justify-content:center;font-size:20px;color:#241a1e}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e0a0c99;display:flex;align-items:center;justify-content:center;z-index:40;padding:14px;animation:overlayIn .15s ease-out}.overlay .modal{background:var(--panel);border:1px solid var(--gilt);border-radius:9px;max-width:560px;width:100%;max-height:86vh;overflow-y:auto;padding:18px 20px 16px;box-shadow:inset 0 1px #e9dcc612,0 24px 70px #050203cc}.overlay .modal.wide{max-width:760px}.overlay .modal h2{font-family:var(--display);font-size:15px;letter-spacing:.22em;color:var(--gilt);font-weight:500;text-align:center;margin-bottom:10px}.overlay .modal p{color:var(--dim);font-size:13px;margin-bottom:10px}.overlay .modal b{color:var(--gilt);font-weight:400}.optRow{display:flex;flex-direction:column;gap:8px}.opt{min-width:0;width:100%;text-align:left;padding:10px 14px;min-height:46px;font-size:14px;line-height:1.4}.opt small{color:var(--dim);font-size:11px;font-family:var(--mono)}.opt:not(:disabled):hover{border-color:var(--bone)}.opt.goldOpt{border-color:var(--gilt);color:var(--gilt);background:#c9a85c0d}.opt.emberOpt{border-color:var(--ember);color:var(--ember);background:#e2703a0d}.pickCards{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px;justify-content:center}.pickCards .chip,.rcards .chip{width:60px;height:84px}.pickCards .chip .cMed,.rcards .chip .cMed{width:22px;height:22px;top:calc(-7px + 56%);font-size:13px}.pickCards .chip .cPips i,.rcards .chip .cPips i{width:6px;height:6px}.pickCards .chip .v,.rcards .chip .v{min-width:14px;height:14px;font-size:10px}.rcards .chip.back{font-size:20px}.chip.pickable{cursor:pointer;transition:transform .15s,box-shadow .15s}.chip.pickable:hover{transform:translateY(-3px)}.chip.picked{box-shadow:0 0 0 2px var(--gilt),0 0 12px #c9a85c80;transform:translateY(-5px)}.btnrow{display:flex;gap:10px;justify-content:center;margin-top:8px;flex-wrap:wrap}.btnrow button{min-width:150px;padding:9px 18px;min-height:46px}.duelBtnRow{display:flex;justify-content:center;margin-top:12px}.duelBtnRow button{min-width:200px;min-height:44px;padding:9px 18px}.vWin{text-align:center;font-family:var(--display);font-size:17px;letter-spacing:.06em;margin-bottom:8px}.scoreTable{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0 10px}.scoreTable th,.scoreTable td{padding:5px 7px;border-bottom:1px solid var(--line);text-align:left}.scoreTable th{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--dim);font-weight:400}.scoreTable .num{text-align:right;font-family:var(--mono)}.overlay .modal .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.vDetail{font-size:12px;line-height:1.55;margin-bottom:6px!important}@media(min-width:1100px){html,body{height:100%;overflow:hidden}#app{max-width:1560px;height:100vh;display:flex;flex-direction:column;padding-bottom:calc(var(--actionsH) + 6px)}header,#status{flex:none}#layout{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:324px minmax(420px,1fr) 320px;grid-template-rows:minmax(0,1fr);gap:14px}#layout>#boardWrap{order:0;align-self:start}#boardMount{max-height:calc(100vh - 200px)}#players{flex-direction:column;flex:none}#players.compact{display:flex;flex-direction:column}#leftCol{min-height:0;display:flex;flex-direction:column}#leftScroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:3px;scrollbar-width:thin;scrollbar-color:var(--line) transparent;display:flex;flex-direction:column}#handArea{position:static;flex:none;background:none;box-shadow:none;border-top:1px solid var(--line);padding:6px 0 0;margin-top:8px;max-height:none;overflow:visible}#side{max-height:100%}header h1{font-size:26px}#handArea .chip{width:42px;height:59px;font-size:18px}#handArea #hand{gap:5px;min-height:56px}.pcard{padding:7px 10px}}@media(prefers-reduced-motion:reduce){.pip.igniting,.chip.slam,.verdict span,.pcard .tray.pop,.chip.arriving,.rside .rmath div{animation:none}#status.sweep:after{animation:none}.duelOverlay{animation-duration:.01s}*{transition-duration:.01s!important}}.setupModal .setupCount{display:flex;gap:8px;justify-content:center;margin-bottom:12px}button.mini.sel{border-color:var(--gilt);color:var(--gilt);background:#c9a85c14}.seatRows{display:flex;flex-direction:column;gap:7px;margin-bottom:10px}.seatRow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;background:var(--board);border:1px solid var(--line);border-radius:7px;padding:7px 10px}.seatRow .seatName{background:var(--panel);border:1px solid var(--line);border-radius:5px;color:var(--bone);font-family:var(--serif);font-size:13px;padding:5px 8px;width:120px}.seatRow .rankWrap{display:flex;gap:5px}.seatRow .rankWrap.hidden{visibility:hidden}.setupSeed{text-align:center;font-size:12px;color:var(--dim)}.setupSeed input{background:var(--board);border:1px solid var(--line);border-radius:5px;color:var(--bone);font-family:var(--mono);font-size:12px;padding:4px 8px;width:110px;margin-left:6px}#treaties{display:flex;flex-direction:column;gap:5px;min-height:24px}.treaty{background:var(--board);border:1px solid var(--line);border-radius:6px;padding:5px 9px;font-size:11.5px;line-height:1.5;color:var(--bone)}.treaty .tkind{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--gilt);border:1px solid rgba(201,168,92,.4);border-radius:4px;padding:0 5px;margin-right:5px}.treaty .tkind.wager{color:var(--ember);border-color:#e2703a66}.treaty .tnote{font-family:var(--mono);font-size:10px;color:var(--dim);margin-left:5px}.treaty.dead{opacity:.45;text-decoration:line-through}.treaty .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 3px;vertical-align:baseline}.overlay.handoff{background:#0e0a0cf7}.handoffModal{text-align:center}.pcard{cursor:pointer}.pcard .aiTag{font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;color:var(--dim);border:1px solid var(--line);border-radius:4px;padding:0 4px;margin-left:6px;vertical-align:middle}.setupModal .resumeBox{border:1px solid rgba(201,168,92,.45);border-radius:8px;padding:10px 12px 8px;margin-bottom:12px;text-align:center}.setupModal .resumeBox .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 4px 0 2px}.setupModal .resumeNote{font-size:12px;color:var(--dim);margin:6px 0 0}.setupModal .howRow{text-align:center;margin:0 0 10px}.giltPulse{animation:giltPulse 1.8s ease-in-out infinite;border-color:var(--gilt)!important;color:var(--gilt)}@keyframes giltPulse{0%,to{box-shadow:0 0 #c9a85c00}50%{box-shadow:0 0 0 4px #c9a85c40,0 0 16px #c9a85c73}}@media(prefers-reduced-motion:reduce){.giltPulse{animation:none;box-shadow:0 0 0 2px #c9a85c73}}.payPrice{font-family:var(--mono);font-size:12px;color:var(--dim);text-align:center}.payPrice b{color:var(--gilt);font-weight:400}body:has(#overlayRoot .overlay[data-prompt])>.coach{z-index:41}.lobbyModal,.joinModal{text-align:center}.roomCode{display:flex;gap:8px;justify-content:center;margin:6px 0 14px}.roomCode span{width:46px;height:58px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:30px;color:var(--gilt);background:radial-gradient(circle at 45% 35%,#34305e,#1c1936 85%);border:1px solid rgba(201,168,92,.6);border-radius:6px;box-shadow:inset 0 0 0 2px #120f22,0 4px 10px -4px #000000b3}.inviteRow{display:flex;gap:6px;justify-content:center;margin-bottom:6px}.inviteUrl{flex:1 1 auto;min-width:0;max-width:340px;background:var(--board);border:1px solid var(--line);border-radius:5px;color:var(--dim);font-family:var(--mono);font-size:11.5px;padding:6px 8px}.overlay .modal p.lobbyHint{font-size:12px}.lobbySeats{display:flex;flex-direction:column;gap:5px;margin:10px auto 6px;max-width:360px;text-align:left}.lobbySeat{display:flex;align-items:center;gap:4px;background:var(--board);border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:13.5px}.lsTag{margin-left:auto;font-family:var(--mono);font-size:10.5px;color:var(--dim)}.lsTag.on{color:#8fd0c4}.lsTag.wait{color:var(--ember);animation:lsWait 1.6s ease-in-out infinite}@keyframes lsWait{50%{opacity:.45}}.joinField{display:block;text-align:left;max-width:300px;margin:8px auto;font-size:12px;color:var(--dim);letter-spacing:.06em}.joinField input{display:block;width:100%;margin-top:4px;background:var(--board);border:1px solid var(--line);border-radius:6px;color:var(--bone);font-size:18px;padding:9px 12px}.joinCode{font-family:var(--mono);letter-spacing:.4em;text-transform:uppercase;text-align:center}.overlay .modal p.joinError{color:var(--ember)}.setupJoin{text-align:center;margin-top:6px}@media(prefers-reduced-motion:reduce){.lsTag.wait{animation:none}}.btnrow button[hidden]{display:none}.overlay .modal p.tagline,.primer p.tagline{font-family:var(--serif);font-style:italic;color:var(--gilt, #c9a85c);text-align:center;font-size:14px;letter-spacing:.02em;opacity:.9;margin:2px 0 12px}
