:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;color:#e9eaf0;background:#0b101a;--gold:#eac67b;--muted:#a9b4c8;--line:#303b4f}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 25% 25%,#202440 0,transparent 60%),#0b101a;min-height:100vh}header{height:84px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{font-weight:bold;text-decoration:none;color:#fff;white-space:nowrap}.brand span{color:var(--gold);font-size:12px;letter-spacing:2px;margin-left:12px}.tools{display:flex;gap:10px;align-items:center}button,input,select,summary{font:inherit}button,summary{cursor:pointer}button{border:1px solid #44516a;border-radius:7px;background:#192235;color:#e9eaf0;padding:12px 16px;font-size:14px;min-height:44px;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#29354c;border-color:var(--gold)}button:disabled{opacity:.45;cursor:default}.primary{background:var(--gold);color:#171923;border-color:var(--gold);font-weight:bold}.primary:hover:not(:disabled){background:#f8dfa8;color:#171923}.primary span{float:right}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible,summary:focus-visible{outline:3px solid #96d9ed;outline-offset:3px}label{display:block;font-size:14px;color:#c8d0df;line-height:1.6}input:not([type=checkbox]),select{width:100%;margin-top:6px;background:#0d1422;color:#fff;padding:12px;border:1px solid #44516a;border-radius:6px;min-height:46px;font-size:16px}input[type=checkbox]{accent-color:var(--gold);width:18px;height:18px;vertical-align:middle}main{max-width:1540px;margin:auto;padding:32px 4vw 50px}h1,h2,p{margin-top:0}h1{font-family:Georgia,serif;font-size:clamp(50px,7vw,98px);font-weight:normal;line-height:1.02;letter-spacing:-3px;margin-bottom:24px}h1 em{color:var(--gold);font-weight:normal}h2{font-family:Georgia,serif;font-weight:normal;font-size:28px;margin-bottom:16px}p{line-height:1.65;color:var(--muted);font-size:16px}.eyebrow{color:var(--gold);font-size:12px;letter-spacing:2.5px;font-weight:bold;margin-bottom:18px}.small,small{font-size:13px;color:var(--muted)}#setup{min-height:calc(100vh - 190px);display:grid;grid-template-columns:1fr 430px;align-items:center;gap:60px;max-width:1050px;margin:auto}.intro{padding:30px 0}.runes{color:var(--gold);font-size:32px;letter-spacing:14px;margin:40px 0}.setup-panel,.lobby-card{padding:30px;background:#141d2dbb;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 60px #0003}.setup-panel>button{display:block;width:100%;margin-top:12px}.fields{display:grid;grid-template-columns:1fr 1.5fr;gap:14px;margin:16px 0 24px}.divider{display:flex;gap:16px;align-items:center;font-size:11px;letter-spacing:2px;color:var(--muted);margin:26px 0}.divider:before,.divider:after{content:'';height:1px;background:var(--line);flex:1}.lobby-card{max-width:680px;margin:50px auto}.lobby-card h1{font-size:50px}.room-code{font:32px monospace;letter-spacing:8px;color:var(--gold);margin:24px 0}#seats{margin:24px 0;display:grid;gap:10px}.seat{padding:12px;border:1px solid var(--line);border-radius:6px}.battle-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.battle-top h2{font-size:34px;margin-bottom:6px}.battle-top .eyebrow{margin-bottom:8px}#instruction{margin-bottom:18px}.balance{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:1px;color:var(--muted)}meter{width:150px;height:14px}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:24px}#players{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.player{padding:9px 12px;border:1px solid var(--line);border-radius:6px;font-size:13px;background:#111a2b}.player.active{border-color:var(--gold);background:#29273a}.player.dead{opacity:.4;text-decoration:line-through}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}.board-wrap{padding:8px;background:#172235;border:1px solid #40526b;border-radius:7px;box-shadow:0 20px 50px #0004}canvas{display:block;width:100%;height:auto;touch-action:manipulation;border-radius:3px;background:#101523}.board-footer{display:flex;align-items:center;gap:8px;margin:12px 0}.board-footer>span{flex:1;color:var(--muted);font-size:14px}.board-footer button{padding:9px 12px}.chronicle{border-top:1px solid var(--line);padding-top:16px}.chronicle summary{font-size:14px;color:var(--gold)}#log{height:126px;overflow:auto;font-size:13px;color:var(--muted);line-height:1.7;padding:12px 0}aside{background:#141d2b;border:1px solid var(--line);padding:20px;border-radius:8px;align-self:start}.aside-heading{display:flex;align-items:center;justify-content:space-between}.aside-heading h2{font-size:24px}#clock{font:14px monospace;color:var(--gold)}#spell-detail{font-size:14px;line-height:1.6;color:var(--muted);margin-bottom:16px}#spell-detail strong{color:#fff;display:block;margin-bottom:5px}#spells{display:grid;gap:6px;max-height:350px;overflow:auto;margin:14px 0}#spells button{text-align:left;padding:10px;font-size:14px;background:#101827}#spells button.selected{border-color:var(--gold);background:#302b2a}#spells small{float:right}aside>button{width:100%;margin-top:8px}#illusion-control{padding:12px;background:#26223b;border-radius:6px}#illusion-control small{display:block;margin-top:5px}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#293650;border:1px solid #6a7e9e;border-radius:8px;padding:14px 22px;z-index:30;max-width:90vw;box-shadow:0 10px 40px #0008}#notice:empty{display:none}dialog{max-width:640px;width:92vw;background:#151f30;color:#eee;border:1px solid #54647d;border-radius:12px;padding:32px;line-height:1.6}dialog::backdrop{background:#000b}dialog li{margin-bottom:14px;color:#c6cede}.close{float:right;font-size:22px}header details{position:relative}header summary{padding:12px;font-size:14px}.settings{position:absolute;right:0;top:50px;z-index:20;background:#1b273b;border:1px solid var(--line);padding:20px;width:250px;border-radius:8px}.settings label{margin-bottom:14px}[hidden]{display:none!important}body.retro{font-family:monospace;--gold:#ffff68;background:#090d16}body.retro canvas{image-rendering:pixelated}body.retro h1,body.retro h2{font-family:monospace}body.retro button{border-radius:0}#result h2{color:var(--gold)}@media(max-width:1050px){header{padding:0 24px}.brand span{display:none}main{padding:24px}.play-layout{grid-template-columns:minmax(0,1fr) 240px;gap:14px}aside{padding:14px}#setup{grid-template-columns:1fr 380px;gap:24px}}@media(max-width:760px){header{height:auto;min-height:76px;padding:14px 16px;flex-wrap:wrap}.tools{gap:5px}.tools button{font-size:12px;padding:8px}main{padding:20px 14px}#setup{grid-template-columns:1fr;gap:0;max-width:460px}.intro{padding:15px 0}.intro h1{font-size:58px}.intro h1 br{display:none}.intro .runes{display:none}.setup-panel{padding:22px}.play-layout{grid-template-columns:1fr}.battle-top{align-items:start;flex-direction:column;gap:0}.balance{margin-bottom:16px}.board-footer{flex-wrap:wrap}.board-footer>span{flex-basis:100%}.battle-top h2{font-size:28px}#spells{grid-template-columns:1fr 1fr;max-height:260px}.lobby-card h1{font-size:36px}.room-code{letter-spacing:4px}.player{font-size:12px;padding:7px}.brand{font-size:14px}}
