:root{--table: #141210;--table-2: #1c1916;--table-3: #262019;--red: #b8321e;--ochre: #c8861e;--green: #3d4a37;--brown: #6e5a3c;--parchment: #e9dcc3;--ink: #0c0a09;--muted: #9c8f7c;--line: #3a322a;--card-xs: 34px;--card-sm: 48px;--card-md: 70px;--card-lg: 86px;--ratio: 1.4;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:radial-gradient(120% 90% at 50% 0%,var(--table-2) 0%,var(--table) 70%);color:var(--parchment);font:14px/1.45 Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;-webkit-font-smoothing:antialiased}#root{height:100%}h1,h2,h3{margin:0 0 .4em;font-weight:600;letter-spacing:.01em}p{margin:0 0 .6em}.muted{color:var(--muted)}.btn{padding:8px 14px;border:1px solid var(--line);border-radius:3px;background:var(--table-3);color:var(--parchment);font:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease}.btn:hover:not(:disabled){background:#322a21;border-color:var(--brown)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--red);border-color:#8d2415;color:#fdf3e3;font-weight:600}.btn.primary:hover:not(:disabled){background:#cf3a22;border-color:var(--ochre)}.btn.ghost{background:transparent}.btn.big{padding:16px 20px;font-size:17px}.btn.small{padding:4px 9px;font-size:12px}input[type=text],input:not([type]){padding:8px 10px;border:1px solid var(--line);border-radius:3px;background:var(--ink);color:var(--parchment);font:inherit}.wordmark{font-family:UnifrakturCook,Pirata One,Iowan Old Style,Georgia,serif;font-size:62px;line-height:1;color:var(--red);text-shadow:0 2px 0 #000,0 0 26px rgba(184,50,30,.35)}.lobby{max-width:560px;margin:0 auto;padding:56px 20px 40px;display:flex;flex-direction:column;gap:18px}.lobby-head{text-align:center}.tagline{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:12px}.lang-toggle{display:inline-flex;gap:2px;margin-top:6px;border:1px solid var(--line);border-radius:3px;overflow:hidden}.lang{padding:5px 14px;border:0;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.lang.on{background:var(--brown);color:var(--ink);font-weight:700}.panel{display:flex;flex-direction:column;gap:12px;padding:20px;border:1px solid var(--line);border-radius:4px;background:#00000047}.join{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--muted)}.join-row,.share-row{display:flex;gap:8px}.join-row input{flex:1}.share-link{flex:1;padding:8px 10px;border:1px solid var(--line);border-radius:3px;background:var(--ink);color:var(--ochre);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;overflow-wrap:anywhere}.share-label{color:var(--muted);font-size:13px}.rules summary{cursor:pointer;color:var(--ochre)}.rules p{margin-top:10px;color:var(--muted)}.waiting-line{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.spinner{width:11px;height:11px;border:2px solid var(--line);border-top-color:var(--ochre);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.card{position:relative;flex:none;border-radius:4px;border:2px solid var(--line);background:var(--ink);overflow:hidden;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.card.size-xs{width:var(--card-xs);height:calc(var(--card-xs) * var(--ratio));border-width:1px}.card.size-sm{width:var(--card-sm);height:calc(var(--card-sm) * var(--ratio))}.card.size-md{width:var(--card-md);height:calc(var(--card-md) * var(--ratio))}.card.size-lg{width:var(--card-lg);height:calc(var(--card-lg) * var(--ratio))}.card-art{display:block;width:100%;height:100%;object-fit:cover}.card.type-ANG{border-color:var(--red)}.card.type-DEF{border-color:var(--brown)}.card.type-VST{border-color:#5f7a4e}.card.type-EFFECT{border-color:#2b2622}.card.type-ELITE{border-color:var(--ochre)}.card.back{border-color:#6d2013;background:linear-gradient(155deg,#7d2416,#4a150c 55%,#2c0d07);display:flex;align-items:center;justify-content:center}.back-word{font-family:UnifrakturCook,Pirata One,Georgia,serif;color:#e2c08a;opacity:.85;font-size:15px;letter-spacing:.04em;transform:rotate(-8deg);text-shadow:0 1px 0 #000}.card.size-lg .back-word{font-size:19px}.card.size-xs .back-word{font-size:9px}.card.clickable{cursor:pointer}.card.clickable:hover{transform:translateY(-6px);box-shadow:0 8px 18px #0000008c}.card.selected{border-color:var(--ochre);box-shadow:0 0 0 2px var(--ochre),0 10px 22px #0009;transform:translateY(-10px)}.card.targetable{box-shadow:0 0 0 2px #7fb069,0 0 14px #7fb06980;cursor:pointer}.card.disabled{opacity:.42;filter:grayscale(.5)}.card.attach{box-shadow:0 0 0 2px #c8861e8c;cursor:help}.card.covert:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(135deg,#0000006b 0,#0000006b 5px,#0000000f 5px,#0000000f 10px);pointer-events:none}.card.hostile{box-shadow:inset 0 0 0 2px #b8321ebf}.card.hostile.targetable{box-shadow:inset 0 0 0 2px #b8321ebf,0 0 0 2px #7fb069,0 0 14px #7fb06980}.card-badge{position:absolute;right:2px;bottom:2px;min-width:17px;padding:1px 4px;border-radius:3px;background:var(--ochre);color:var(--ink);font-size:11px;font-weight:700;text-align:center}.card-ribbon{position:absolute;left:0;right:0;bottom:0;padding:1px 2px;background:#b8321ee6;color:#fff;font-size:8px;text-align:center;text-transform:uppercase;letter-spacing:.05em}.preview{position:fixed;right:14px;bottom:14px;z-index:60;display:flex;gap:12px;width:400px;padding:12px;border:1px solid var(--brown);border-radius:5px;background:#0c0a09f5;box-shadow:0 12px 40px #000000b3;pointer-events:none}.preview-art{width:150px;border-radius:4px}.preview-body{flex:1;min-width:0}.preview-name{font-size:19px;color:var(--ochre)}.preview-meta{display:flex;gap:6px}.chip{padding:1px 7px;border-radius:10px;border:1px solid var(--line);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.chip.type-ANG{border-color:var(--red);color:#e88b78}.chip.type-DEF{border-color:var(--brown);color:#cbb08a}.chip.type-VST{border-color:#5f7a4e;color:#a8c795}.chip.type-ELITE{border-color:var(--ochre);color:var(--ochre)}.chip.value{background:var(--ochre);color:var(--ink);font-weight:700}.preview-text{font-size:13px;color:var(--parchment)}.hand{display:flex;justify-content:center;align-items:flex-end;min-height:calc(var(--card-lg) * var(--ratio))}.hand.backs{min-height:calc(var(--card-sm) * var(--ratio))}.hand-slot{margin-left:-36px;transform-origin:bottom center}.hand.backs .hand-slot{margin-left:-30px}.hand-slot:first-child{margin-left:0}.hand-slot:hover{z-index:30!important}.table{display:grid;grid-template-columns:minmax(0,1fr) auto;height:100%;min-width:1100px}.board{display:flex;flex-direction:column;gap:6px;padding:8px 12px;min-height:0;overflow-y:auto}.player-bar{display:flex;align-items:center;gap:18px;padding:6px 12px;border:1px solid var(--line);border-radius:4px;background:#0000004d}.player-bar.mine{border-color:var(--brown);padding-bottom:20px}.who{display:flex;align-items:center;gap:7px;min-width:140px}.who-name{font-size:15px}.dot{width:9px;height:9px;border-radius:50%;background:var(--muted)}.dot.on{background:#7fb069;box-shadow:0 0 7px #7fb069cc}.dot.off{background:var(--red)}.disconnect-notice{color:var(--red);font-size:11px;white-space:nowrap}.tag{padding:1px 7px;border-radius:3px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.tag.attack{background:var(--red);color:#fdf3e3}.tag.defend{background:var(--green);color:var(--parchment)}.supplies{display:flex;align-items:baseline;gap:6px}.supplies-value{font-size:34px;font-weight:700;color:var(--ochre);line-height:1;min-width:46px;text-align:right}.supplies-label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.piles{display:flex;flex:none;gap:10px}.pile{display:flex;flex-direction:column;align-items:center;gap:2px}.pile-empty{width:var(--card-xs);height:calc(var(--card-xs) * var(--ratio));border:1px dashed var(--line);border-radius:4px}.pile-label{display:flex;align-items:baseline;gap:4px;font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap}.pile-label b{font-size:12px;color:var(--parchment)}.bar-hand{flex:1;display:flex;justify-content:flex-end;min-width:0}.effects{display:flex;align-items:center;gap:8px;padding:4px 12px}.effects.theirs{flex-direction:row-reverse}.effects-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);width:90px}.effect-slot{position:relative}.effect-slot.open{width:var(--card-sm);height:calc(var(--card-sm) * var(--ratio));border:1px dashed var(--line);border-radius:4px}.effect-slot.open.targetable{border-color:#7fb069;border-style:solid;box-shadow:0 0 12px #7fb06966;cursor:pointer}.effect-on{position:absolute;top:3px;left:3px;width:8px;height:8px;border-radius:50%;background:var(--ochre);box-shadow:0 0 8px var(--ochre)}.lane-row{display:flex;gap:10px;align-items:flex-start;justify-content:center}.lane-row.theirs{align-items:flex-end}.lane{position:relative;flex:1 1 0;max-width:250px;min-height:calc(var(--card-md) * var(--ratio) + 40px);padding:8px 8px 6px;border:1px solid var(--line);border-radius:5px;background:linear-gradient(180deg,#3d4a3729,#0003);transition:border-color .15s ease,box-shadow .15s ease}.lane.double{flex:1.7 1 0;max-width:400px;border-color:var(--ochre)}.lane.active{border-color:var(--ochre);box-shadow:0 0 0 1px var(--ochre),0 0 22px #c8861e38}.lane.resolved{opacity:.72}.lane-tag{position:absolute;top:3px;left:6px;font-size:10px;color:var(--muted)}.lane-double{position:absolute;top:3px;right:6px;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--ochre)}.lane-slots{display:flex;gap:8px;justify-content:center}.unit-slot{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px}.unit-slot.open{width:var(--card-md);height:calc(var(--card-md) * var(--ratio));border:1px dashed var(--line);border-radius:4px;align-items:center;justify-content:center}.unit-slot.open.targetable{border-color:#7fb069;border-style:solid;background:#7fb06914;box-shadow:0 0 16px #7fb06959;cursor:pointer}.slot-hint{font-size:10px;color:var(--line);text-transform:uppercase;letter-spacing:.06em}.unit-slot.open.targetable .slot-hint{color:#7fb069}.vst-row{display:flex;align-items:center;gap:2px}.vst-row .card{margin-left:-14px}.vst-row .card:first-child{margin-left:0}.vst-count{margin-left:3px;padding:0 5px;border-radius:8px;background:var(--green);color:var(--parchment);font-size:11px;font-weight:700}.bid{padding:1px 6px;border-radius:3px;background:var(--ochre);color:var(--ink);font-size:10px;font-weight:700;text-transform:uppercase}.exposed{display:flex;justify-content:center;margin-top:4px}.center-strip{position:relative;display:flex;align-items:center;gap:16px;padding:8px 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(90deg,#00000073,#26201980,#00000073)}.strip-left{display:flex;align-items:center;gap:8px;min-width:190px}.round{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.strip-middle{flex:1;min-width:0}.phase-text{margin:0;font-size:15px}.warning{margin:0;color:var(--red);font-size:12px}.strip-right{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.melee{position:absolute;right:14px;bottom:calc(100% + 8px);width:340px;padding:12px;border:1px solid var(--ochre);border-radius:5px;background:#0c0a09f7;box-shadow:0 10px 30px #0009;z-index:20}.melee-head{display:flex;justify-content:space-between;align-items:baseline}.melee-body{font-size:12px;color:var(--muted)}.melee-row{display:flex;align-items:center;gap:10px}.melee-row input[type=range]{flex:1;accent-color:var(--ochre)}.melee-amount{min-width:28px;font-size:20px;font-weight:700;color:var(--ochre);text-align:right}.action-bar{position:fixed;left:14px;bottom:14px;z-index:40;display:flex;align-items:center;gap:10px;padding:8px 14px;border:1px solid var(--ochre);border-radius:4px;background:#1c1916f7;box-shadow:0 10px 30px #0009;font-size:13px}.log{display:flex;flex-direction:column;width:320px;border-left:1px solid var(--line);background:#00000052;min-height:0}.log-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--line)}.log-head-tools{display:flex;align-items:center;gap:8px}.log-head .lang{padding:3px 8px;font-size:11px}.log-head h2{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.log-lines{flex:1;overflow-y:auto;margin:0;padding:8px 12px;list-style:none;font-size:12.5px}.log-lines li{margin-bottom:4px}.log-round{display:block;margin:10px 0 4px;padding-top:6px;border-top:1px solid var(--line);font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--ochre)}.log-text{color:#cbbfa9}.log-rules{padding:8px 12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.log-rules summary{cursor:pointer;color:var(--ochre)}.log-tab{align-self:flex-start;padding:8px 6px;border:1px solid var(--line);border-right:0;border-radius:4px 0 0 4px;background:var(--table-3);color:var(--muted);font:inherit;cursor:pointer;writing-mode:vertical-rl;margin-top:12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#060504b8}.modal{width:min(680px,92vw);max-height:88vh;overflow-y:auto;padding:22px;border:1px solid var(--brown);border-radius:6px;background:var(--table-2);box-shadow:0 20px 60px #000000b3}.modal.small{width:min(420px,92vw)}.modal h2{color:var(--ochre);font-size:22px}.modal-body{color:var(--muted);font-size:13px}.modal-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.modal-buttons.wrap{flex-wrap:wrap;justify-content:center}.picker-unit{display:flex;justify-content:center;margin:10px 0}.picker-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:10px;border:1px solid var(--line);border-radius:4px;background:#00000040;min-height:calc(var(--card-md) * var(--ratio) + 20px)}.victory{color:var(--ochre)!important;font-family:UnifrakturCook,Pirata One,Georgia,serif;font-size:42px}.defeat{color:var(--red)!important;font-family:UnifrakturCook,Pirata One,Georgia,serif;font-size:42px}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%);z-index:70;display:flex;flex-direction:column;padding:10px 18px;border:1px solid var(--red);border-radius:4px;background:#1c0c08f7;color:#f4d9cd;box-shadow:0 10px 30px #0009}.toast-detail{font-size:11px;color:var(--muted)}
