:root{color-scheme:dark;--gold:#e1bf7e;--ink:#eee8d6;--muted:#b4c0b2;--teal:#78bcc1;--red:#f09a85}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#294233,#0b1612 80%);color:var(--ink);font:15px/1.5 Arial,sans-serif}button,select{font:inherit;color:var(--ink);background:#243b2e;border:1px solid #7c865f;border-radius:5px;padding:9px 12px;cursor:pointer}button:hover{background:#3b5240;border-color:var(--gold)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #f4cd83;outline-offset:3px}button.primary{background:var(--gold);color:#14251a;font-weight:bold}button.selected{box-shadow:0 0 0 2px var(--gold);background:#425641}a{color:var(--gold)}header{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:18px 3vw;background:#0c1714;border-bottom:1px solid #746646}h1,h2,h3{font-family:Georgia,serif;line-height:1.2;font-weight:normal}h1{font-size:30px;margin:5px 0}h1 small{display:block;font:12px Arial;letter-spacing:.1em;color:var(--gold);margin-top:6px}h2{font-size:24px;margin:8px 0 15px}h3{font-size:19px;margin:8px 0}.eyebrow{font:10px Arial;letter-spacing:.13em;text-transform:uppercase;color:var(--gold)}nav{display:flex;flex-wrap:wrap;gap:7px}nav button{font-size:12px;background:transparent}main{max-width:1720px;margin:auto;padding:20px 2vw}small,.muted{color:var(--muted)}small{font-size:12px}.stats{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 18px;background:#17291e;border:1px solid #596547;border-radius:7px;margin-bottom:18px}.stat b{font:25px Georgia;color:var(--gold);display:block}.stat span{font-size:10px;letter-spacing:.1em;text-transform:uppercase}.layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px}.board-wrap{align-self:start}.board{position:relative;aspect-ratio:3/2;background:url('assets/board-art.png') center/100% 100%;border:1px solid #a68a50;border-radius:7px;overflow:hidden;box-shadow:0 16px 35px #0006}.board svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.path{stroke:#e1bf7e;stroke-width:.35;fill:none}.path.risk{stroke:#efac7e;stroke-dasharray:1.2 1}.board-title{position:absolute;top:6%;left:10%;right:10%;text-align:center;font:bold clamp(12px,2.1vw,31px) Georgia;color:#f2dfb4;letter-spacing:.1em}.board-credit{position:absolute;bottom:2%;left:0;width:100%;text-align:center;font-size:clamp(7px,.8vw,12px);color:#eddaa9}.node{position:absolute;transform:translate(-50%,-50%);width:25%;height:32%;padding:0;background:transparent!important;border:2px solid transparent;border-radius:50%;color:#fff}.node:hover{border-color:var(--gold)}.node.reachable{border:2px dashed #f1ce82}.node.current{border:3px solid #fff0b3}.node.done{box-shadow:0 0 0 2px #73b69c}.node-label{position:absolute;bottom:3%;left:-2%;width:104%;background:#0b1614e8;color:#fae6b9;padding:3px;font:bold clamp(9px,1.1vw,16px) Georgia;border:1px solid #a38c55;border-radius:4px}.pawns{display:flex;justify-content:center;position:absolute;top:0;left:0;width:100%;gap:3px}.pawn{width:clamp(18px,2.4vw,35px);height:clamp(25px,3.2vw,48px);object-fit:cover;border:2px solid #e5c88b;border-radius:12px 12px 2px 2px;box-shadow:0 3px 6px #000}.progress{position:absolute;bottom:-17%;width:100%;font-size:11px;text-align:center;color:#ffe1a1;background:#101d17cc}.board-help{font-size:12px;color:var(--muted);margin:10px 0}.crew{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.hero{display:flex;gap:10px;background:#17281d;border:1px solid #506144;border-radius:6px;padding:12px}.hero.active{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.hero img{width:48px;height:66px;object-fit:cover;object-position:50% 25%;border-radius:4px}.hero strong{font-size:13px;display:block}.hero small{font-size:10px;display:block}.hero .s{font-size:10px;color:var(--gold)}.sidebar{background:#16271e;border:1px solid #60704d;border-radius:7px;padding:20px}.mission-text{font-size:15px;color:#d8dfce}.skill-options{display:flex;gap:9px;flex-wrap:wrap;margin:16px 0}.toggle{display:flex;gap:10px;font-size:13px;margin:12px 0}.toggle input{accent-color:var(--gold);width:17px;height:17px}.dice-row{display:flex;justify-content:center;align-items:center;gap:18px;margin:15px 0}.die{width:76px;height:82px;filter:drop-shadow(2px 5px 4px #0008)}.die text{fill:#fff0d2;font:bold 22px Georgia}.dice-label{text-align:center;font-size:9px;color:var(--gold);letter-spacing:.08em}.formula{text-align:center;font:22px Georgia;color:#e7ce93}.roll-button{width:100%;margin:15px 0}.side-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;border-top:1px solid #576347;padding-top:16px;margin-top:18px}.side-actions button{font-size:12px}.end-turn{width:100%;margin-top:12px}.relics{display:flex;flex-direction:column;gap:8px;margin:16px 0}.relics button{text-align:left;border-color:#bb9d5e;font-size:13px}.relics b{color:var(--gold)}.result{padding:13px;background:#0e1c14;border-left:3px solid var(--gold);margin:14px 0}.result.fail{border-color:var(--red)}.result p{font-size:14px}.event{background:#101e17;border:1px solid #475b40;padding:14px;margin-top:15px}.event p{font-size:12px;margin:5px 0}.hand-section{background:#182b20;border:1px solid #596749;padding:18px;border-radius:7px;margin-top:20px}.hand-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.hand-heading h2{font-size:22px;margin:0}.hand{display:flex;justify-content:center;gap:16px;padding:20px 6px 8px;overflow-x:auto}.card{position:relative;flex:0 0 155px;min-height:235px;text-align:left;background:#0f1e17;padding:10px;border-color:var(--suit);display:flex;flex-direction:column;box-shadow:0 7px 12px #0006}.card.selected{transform:translateY(-8px)}.card .rank{display:flex;justify-content:space-between;font:23px Georgia;color:var(--suit);margin-bottom:7px}.card img{width:100%;height:102px;object-fit:cover;object-position:50% 25%;border-radius:3px}.card b{font:16px Georgia;margin-top:8px;display:block}.card small{font-size:10px;line-height:1.4;display:block;margin-top:auto;padding-top:7px}.end-screen{padding:25px;background:#183b28;border:1px solid var(--gold);margin-bottom:20px;text-align:center}.intro{max-width:1000px;margin:20px auto;padding:30px;background:#14281e;border:1px solid #8e8057;border-radius:8px}.intro img{width:100%;border-radius:5px;margin:15px 0}.intro h2{font-size:36px}.intro .lede{font-size:18px}.controls{display:flex;gap:12px;flex-wrap:wrap}.controls label{display:flex;flex-direction:column;gap:7px;font-size:13px}.controls button{align-self:flex-end}.summary-list{padding-left:20px}.summary-list li{margin:10px 0}dialog{width:min(900px,94vw);max-height:90vh;background:#14281e;color:var(--ink);border:1px solid #baa268;border-radius:8px;padding:24px}dialog::backdrop{background:#000b;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid #5e714d}.dialog-head button{background:transparent;border:0;font-size:24px}.log{font-size:14px;border-bottom:1px solid #40543c;padding:10px 0}.rule-table{border-collapse:collapse;width:100%;font-size:13px}.rule-table td,.rule-table th{border:1px solid #627650;padding:8px;text-align:left}.alert{color:#ffd19e}#notice{padding:12px 3vw;background:#493b22;color:#ffe2ad;margin:0}footer{text-align:center;padding:25px;font-size:12px;color:#aebda7;border-top:1px solid #42563b}.spin .die{animation:roll .18s infinite alternate}@keyframes roll{from{transform:rotate(-15deg)}to{transform:rotate(15deg)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:1100px){.layout{grid-template-columns:1fr 310px}.sidebar{padding:15px}.crew{gap:7px}.hero{padding:8px;display:block}.hero img{float:left;margin-right:8px;width:38px;height:53px}.card{flex-basis:140px}}@media(max-width:780px){header{padding:16px}main{padding:15px 10px}.layout{display:block}.sidebar{margin-top:18px}.board-title{font-size:18px}.node-label{font-size:11px}.pawn{width:22px;height:30px}.board-credit{font-size:8px}.progress{font-size:9px}.hero strong{font-size:11px}.hero small{font-size:9px}.hero img{width:30px;height:42px}.stats{gap:10px}.stat b{font-size:20px}.stat span{font-size:9px}.hand{justify-content:flex-start;gap:12px}.hand-section{padding:12px}.sidebar .dice-row{gap:25px}.controls{flex-direction:column}.controls button{align-self:stretch}.intro{padding:18px}.intro h2{font-size:29px}.board-help{font-size:11px}nav button{padding:7px}.side-actions button{padding:12px}.crew{grid-template-columns:repeat(3,1fr)}.progress{bottom:-20%}}@media(max-width:420px){.board-title{font-size:14px}.node-label{font-size:9px}.pawn{width:18px;height:24px}.hero img{display:none}.board-credit{font-size:6px}}

.online-forms{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:24px;text-align:left}.online-forms form{padding:20px;border:1px solid #897448;border-radius:12px}input{font:inherit;color:#f0eadb;background:#0d2019;border:1px solid #897448;padding:10px;max-width:100%;box-sizing:border-box}form label{display:grid;gap:6px;margin:12px 0}#room-panel{margin:16px auto;max-width:1440px;padding:18px;background:#142e23;border:1px solid #897448;border-radius:12px}.room-bar,.assignments{display:flex;align-items:center;flex-wrap:wrap;gap:16px}.turn-owner{font-size:1.2rem;color:#f5cf84}.assignments>span{padding:8px;background:#0b2018}.assignments button{font-size:.8rem}.chat-log{max-height:200px;overflow:auto}.chat-log p{white-space:pre-wrap;overflow-wrap:anywhere}#chat-form{display:flex;align-items:end;gap:12px}#chat-form label{flex:1}details{margin-top:16px}button:disabled{cursor:not-allowed;opacity:.45}

/* Genesis Code encrypted dice modules — v1.2 */
.dice-row{gap:12px;margin:20px 0 14px;padding:14px 8px 12px;background:linear-gradient(145deg,#071018,#0d1d20);border:1px solid #244648;border-top:2px solid #369c87;border-radius:3px;box-shadow:inset 0 0 28px #0008;align-items:stretch}
.cyber-die{--signal:#42f5be;flex:1;min-width:0;max-width:160px;text-align:center}.cyber-die.trace-die{--signal:#ff8178}.die-channel{display:flex;justify-content:center;align-items:center;gap:5px;color:var(--signal);font:700 8px 'Courier New',monospace;letter-spacing:.5px;white-space:nowrap}.die-channel i{width:4px;height:4px;background:var(--signal);box-shadow:0 0 7px var(--signal)}.cyber-die .die{display:block;width:100%;height:auto;max-height:178px;filter:drop-shadow(0 7px 7px #0009)}.cyber-die .dice-label{font:700 8px 'Courier New',monospace;letter-spacing:.7px;color:var(--signal);white-space:nowrap}.die-spec{font:7px 'Courier New',monospace;color:#9cafb7;margin-top:5px;letter-spacing:.25px}.formula{font:bold 21px 'Courier New',monospace;color:#aaf7dc;letter-spacing:.5px;padding:9px 4px;border-bottom:1px solid #284c46;text-shadow:0 0 14px #36e6aa33}.spin .die{animation:cipher-roll .18s infinite alternate}.spin .die-channel i{animation:signal-blink .1s infinite alternate}@keyframes cipher-roll{from{transform:translateY(-2px) rotate(-7deg);filter:drop-shadow(-3px 2px 3px #35ffc044)}to{transform:translateY(2px) rotate(7deg);filter:drop-shadow(3px 2px 3px #35cfff44)}}@keyframes signal-blink{to{opacity:.15}}@media(max-width:780px){.sidebar .dice-row{gap:12px}}@media(prefers-reduced-motion:reduce){.spin .die,.spin .die-channel i{animation:none!important}}
