@font-face{font-family:Space;src:url('/assets/space-grotesk-regular.ttf') format('truetype');font-style:normal;font-weight:300 500;font-display:swap}
@font-face{font-family:Space;src:url('/assets/space-grotesk-bold.ttf') format('truetype');font-style:normal;font-weight:600 800;font-display:swap}
:root{color-scheme:dark;--bg:#071019;--surface:#0d1b27;--raised:#122433;--line:#233a49;--text:#ecf2ef;--muted:#91a5b1;--cyan:#80f7d5;--cyan-dark:#102f2e;--red:#ff6570;--orange:#f5b77e;--radius:18px;font-family:Space,'Helvetica Neue',Arial,sans-serif;font-size:15px;background:var(--bg);color:var(--text)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;min-width:300px;min-height:100vh}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}a{color:inherit;text-decoration:none}p{line-height:1.7;color:var(--muted);margin:12px 0}h1,h2,h3{margin:0;letter-spacing:-.045em;line-height:1.12}h2{font-size:30px;font-weight:600}h3{font-size:18px;font-weight:600}small{line-height:1.6}svg{flex-shrink:0}.icon{width:22px;height:22px;vertical-align:middle}.hidden{display:none!important}.muted{color:var(--muted)}.cyan{color:var(--cyan)!important}.red{color:var(--red)!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}button{color:inherit}input,select{min-width:0}::selection{color:var(--bg);background:var(--cyan)}
.ambient{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.stars{position:absolute;inset:-20%;background-image:radial-gradient(1px 1px at 20% 20%,#80f7d533 98%,transparent),radial-gradient(1px 1px at 60% 75%,#fff3 98%,transparent);background-size:170px 190px,290px 240px;animation:stardrift 90s linear infinite}.orbital{position:absolute;width:1000px;height:1000px;border:1px solid #80f7d507;border-radius:50%;left:-600px;top:450px}.orbital-two{left:auto;right:-700px;top:100px;width:1400px;height:1400px}
.topbar{height:100px;max-width:1392px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:10px;letter-spacing:-.07em;font-size:24px;font-weight:700;line-height:1}.brand>.icon{width:38px;height:38px;color:var(--cyan)}.brand-light{font-weight:400}.brand small{display:block;font-size:8px;letter-spacing:.22em;color:var(--muted);margin-top:7px}.topbar nav{display:flex;align-items:center;gap:20px}.connection{font-size:9px;letter-spacing:.13em;color:var(--muted);display:flex;align-items:center;gap:8px}.connection:before,.live-dot{display:inline-block;content:'';width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px #80f7d566}.offline:before{background:var(--red)}.topbar .quiet{font-size:12px;min-height:42px}.topbar .icon-button{border:1px solid var(--line);border-radius:50%}.button{border:1px solid transparent;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 20px;font-weight:600;font-size:14px;line-height:1.35;transition:transform .18s,background .18s,box-shadow .18s,border-color .18s;position:relative}.button:not(:disabled):hover{transform:translateY(-2px)}.button:not(:disabled):active{transform:translateY(1px) scale(.98)}.primary{background:var(--cyan);color:#08221d;box-shadow:0 0 24px #80f7d50a}.primary:hover{background:#a4ffe4;box-shadow:0 0 26px #80f7d526}.secondary{background:#152a36;border-color:#365360;color:#e0eeed}.secondary:hover{background:#203b47;border-color:var(--cyan)}.quiet{background:transparent;color:var(--muted)}.quiet:hover{color:var(--text);background:#ffffff06}.danger{background:#4d232e;color:#ffb8bd;border-color:#82424d}.danger:hover{background:#6d2a35}.full{width:100%}.icon-button{padding:10px;min-width:44px}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:600;line-height:1.6;display:inline-flex;align-items:center;gap:9px}.panel{border:1px solid var(--line);background:linear-gradient(140deg,#10212eec,#0b1823f5);border-radius:var(--radius);overflow:hidden}.panel-eyebrow{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.13em;color:var(--muted);padding-bottom:22px}.panel-eyebrow>.icon{color:var(--cyan);width:19px;height:19px}.badge{font-size:9px;letter-spacing:.09em;line-height:1.6;color:var(--cyan);border:1px solid #80f7d532;border-radius:6px;padding:7px 10px;white-space:nowrap}.text-link{display:inline-flex;align-items:center;gap:16px;font-size:13px;border-bottom:1px solid #80f7d555;padding-bottom:8px;margin-top:16px;color:var(--cyan)}
.landing{max-width:1392px;padding:0 48px;margin:auto}.hero{position:relative;min-height:555px;border:1px solid #2b4049;border-radius:24px;overflow:hidden;background:#07121e}.hero-art{position:absolute;inset:0;background-image:linear-gradient(90deg,#071019e8 0%,#07101980 38%,#07101900 70%),url('/assets/voyage.webp');background-size:cover;background-position:center 56%;animation:arrival 1.5s ease-out both}.hero:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 -100px 100px -60px #071019}.hero-grain{position:absolute;inset:0;background:repeating-linear-gradient(0deg,#07101900 0px,#07101900 3px,#07101910 4px);pointer-events:none}.hero-copy{position:relative;padding:45px 54px 54px;z-index:1;max-width:620px}.hero .eyebrow{font-size:9px;color:#b6c9cd;letter-spacing:.18em}.hero h1{font-size:clamp(72px,8vw,112px);line-height:.84;letter-spacing:-.065em;font-weight:700;margin:35px 0 25px}.hero h1>span{color:var(--cyan);display:inline-block;position:relative}.title-star{font-size:.55em;position:absolute;right:-.95em;top:.1em;color:var(--cyan);animation:rotate 40s linear infinite}.tagline{font-size:20px;font-weight:500;color:#e3e8e6;letter-spacing:-.025em;margin-bottom:14px}.hero-description{font-size:13px;line-height:1.7;color:#b5c3c8}.hero-stats{display:flex;gap:20px;margin-top:30px;font-size:10px;color:#acbec5}.hero-stats span{display:flex;gap:7px;align-items:center}.hero-stats .icon{width:16px;height:16px;color:var(--cyan)}.coordinates{position:absolute;bottom:24px;right:30px;font:9px monospace;color:#aec8cf9c;letter-spacing:.12em}.coordinates span{color:var(--red);margin:0 12px}.boarding-wrap{display:grid;grid-template-columns:1fr 1fr;gap:100px;margin:72px auto 88px;max-width:1060px;align-items:center}.boarding-intro h2{font-size:49px;margin-top:18px;line-height:1.08}.boarding-intro p{max-width:330px;font-size:14px;margin-top:22px}.boarding{padding:28px 30px;box-shadow:0 14px 80px #0003;position:relative}.boarding:before{content:'';position:absolute;left:30px;right:30px;top:0;height:1px;background:linear-gradient(90deg,transparent,#80f7d5aa,transparent)}.boarding h2{font-size:23px;letter-spacing:-.035em}.boarding>p{font-size:12px;margin:10px 0 24px}label{display:block;font-size:10px;letter-spacing:.09em;color:var(--muted);font-weight:500}input,select{width:100%;background:#08151f;border:1px solid #2d4554;color:var(--text);border-radius:8px;min-height:48px;padding:12px 14px;font-size:16px;letter-spacing:0}input::placeholder{color:#6b8595}input:focus,select:focus{border-color:var(--cyan)}.input-wrap{display:flex;align-items:center;background:#08151f;border:1px solid #2d4554;border-radius:8px;padding:0 14px;margin:10px 0 18px}.input-wrap:focus-within{border-color:var(--cyan)}.input-wrap .icon{width:18px;color:var(--muted)}.input-wrap input{border:0;background:none;outline:none!important;box-shadow:none;padding:15px 12px}.input-indicator{height:6px;width:6px;border:1px solid var(--cyan);border-radius:50%;flex-shrink:0}.button-caption{text-align:center;font:8px monospace;letter-spacing:.08em;color:#8ba2ae;margin:9px 0 18px}.boarding .primary{justify-content:space-between;padding:14px 18px;font-size:15px;min-height:53px}.join-row{display:flex;gap:10px}.join-row input{width:43%;font:12px monospace;letter-spacing:.1em;text-transform:uppercase}.join-row .button{flex:1;padding:10px;font-size:13px}.terminal-foot{display:flex;align-items:center;justify-content:center;gap:8px;border-top:1px solid #29404d;padding-top:17px;margin-top:22px;font-size:10px;color:#8199a6;line-height:1.6}.terminal-foot .icon{width:14px;height:14px}.section-title{margin-bottom:32px}.section-title .eyebrow{color:var(--muted)}.section-title h2{font-size:32px;margin-top:12px}.briefing{border-top:1px solid var(--line);padding:50px 0}.briefing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.briefing article{border:1px solid var(--line);border-radius:14px;background:#0c1924;padding:30px;position:relative}.briefing article>.icon{width:30px;height:30px;color:var(--cyan);margin-bottom:28px}.step-number{position:absolute;top:24px;right:24px;font:12px monospace;color:#4a6474}.briefing h3{font-size:19px;letter-spacing:-.025em}.briefing p{font-size:12px;max-width:290px;margin-bottom:0}footer{max-width:1392px;padding:25px 48px 35px;margin:auto;display:flex;justify-content:space-between;gap:18px;font:8px monospace;letter-spacing:.1em;color:#8395a0}footer .icon{width:13px;height:13px;margin-right:5px}
.game-shell{max-width:1392px;margin:auto;padding:0 48px 30px}.phase-banner{border:1px solid #28414d;background:linear-gradient(110deg,#163034b3,#0b1a27 75%);border-radius:18px;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;overflow:hidden;margin-bottom:28px}.phase-banner:before{content:'';height:2px;width:120px;background:var(--cyan);position:absolute;top:0;left:32px;box-shadow:0 0 24px #80f7d566}.phase-banner h1{font-size:34px;margin-top:10px;display:flex;gap:14px;align-items:center}.phase-banner p{font-size:12px;max-width:660px;margin-bottom:0}.phase-pip{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 20px var(--cyan)}.phase-divider{color:#4a6570;margin:0 6px}.phase-clock{border-left:1px solid var(--line);padding-left:30px;text-align:right;flex-shrink:0}.phase-clock>span{font-size:43px;letter-spacing:-.06em;color:var(--cyan);font-variant-numeric:tabular-nums;display:block}.phase-clock>small{font-size:8px;letter-spacing:.14em;color:var(--muted)}.phase-insignia{color:#80f7d533}.phase-insignia .icon{width:72px;height:72px;stroke-width:1}.night-banner{background:linear-gradient(120deg,#172638,#101923)}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}.main-deck{min-width:0}.deck-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:24px}.deck-tabs .button{border-radius:0;padding:12px 16px;min-height:53px;background:none;color:var(--muted);font-size:12px;font-weight:500;white-space:nowrap}.deck-tabs .icon{height:17px;width:17px}.deck-tabs .active{color:var(--cyan);border-bottom:2px solid var(--cyan)}.board{position:relative;min-height:430px;padding:28px}.board-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:25px;position:relative;z-index:1}.board-title .eyebrow{color:var(--muted);font-size:8px}.board-title h2{font-size:24px;margin-top:8px}.board-scenery{position:absolute;inset:0;overflow:hidden;opacity:.5;pointer-events:none}.core-ring{position:absolute;left:50%;top:47%;width:370px;height:370px;border:1px solid #80f7d521;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 30px #80f7d504,0 0 0 31px #80f7d50c,0 0 0 70px #80f7d503,0 0 0 71px #80f7d50c;background:radial-gradient(circle,#80f7d509,transparent 65%)}.core-ring:after{content:'';position:absolute;inset:35px;border:1px dashed #80f7d529;border-radius:50%;animation:rotate 80s linear infinite}.core-label{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);font:7px monospace;letter-spacing:.3em;color:#365664;white-space:nowrap}.crew-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;position:relative}.crew-seat{background:linear-gradient(145deg,#17303bf0,#0e1c28fa);border:1px solid #2a4655;border-radius:12px;min-width:0;padding:13px 8px 16px;display:flex;align-items:center;flex-direction:column;position:relative;transition:transform .2s,border-color .2s,box-shadow .2s;animation:seat-arrive .5s ease-out both}.crew-seat:nth-child(3n+2){animation-delay:.08s}.crew-seat:nth-child(3n){animation-delay:.16s}.crew-seat:not(.empty):hover{border-color:#80f7d599;transform:translateY(-3px);box-shadow:0 8px 24px #0002}.seat-top{width:100%;display:flex;justify-content:space-between;align-items:center;color:#7895a3;font:7px monospace;letter-spacing:.1em;gap:6px;margin-bottom:13px;padding:0 3px}.seat-indicator{width:4px;height:4px;border-radius:50%;background:var(--cyan);flex-shrink:0}.seat-indicator.disconnected{background:var(--orange)}.portrait{display:block;width:70px;height:70px;border-radius:50%;background-image:url('/assets/crew-v2.webp');background-size:400% 200%;border:2px solid #4e727f;box-shadow:0 0 0 5px #80f7d506;flex-shrink:0;position:relative}.portrait-0{background-position:0 0}.portrait-1{background-position:33.333% 0}.portrait-2{background-position:66.666% 0}.portrait-3{background-position:100% 0}.portrait-4{background-position:0 100%}.portrait-5{background-position:33.333% 100%}.portrait-6{background-position:66.666% 100%}.portrait-7{background-position:100% 100%}.portrait-lg{width:120px;height:120px;margin:0 auto 25px}.crew-seat>strong{font-size:13px;margin-top:14px;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;letter-spacing:-.015em}.seat-status{font-size:6px;letter-spacing:.1em;color:#8ba9b6;margin-top:7px}.my-seat{border-color:#80f7d55a}.my-seat .seat-status{color:var(--cyan)}.empty{border-style:dashed;background:#0c1924aa;opacity:.6}.empty-portrait{display:grid;place-items:center;width:70px;height:70px;border-radius:50%;border:1px dashed #375160;color:#4a697a;font-size:25px;font-weight:300}.empty strong{font-size:11px;color:#6c8a9b;font-weight:400}.on-block{border-color:#d86972;background:linear-gradient(145deg,#3b2634,#1b1b2b)}.on-block .seat-status{color:#ffa4aa}.axe-badge{position:absolute;right:8px;top:44px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#87384b;border:1px solid var(--red);box-shadow:0 0 20px #ff657025;animation:throb 3s infinite}.axe-badge .icon{width:17px;height:17px;color:#ffccd0}.dead{background:#0b1721;border-style:dashed;opacity:.6}.dead .portrait{filter:grayscale(1);opacity:.4}.dead .seat-status{color:#cc9b9f}.dead .seat-indicator{background:#8d5158}.revealed-role{margin-top:10px;font-size:9px;color:var(--cyan);max-width:100%;line-height:1.4}.board-note{position:relative;display:flex;align-items:center;gap:10px;font-size:10px;line-height:1.6;color:var(--muted);border-top:1px solid #263f4c;margin-top:26px;padding-top:18px}.board-note .icon{width:17px;height:17px;color:var(--cyan)}.command-panel{display:flex;flex-direction:column;gap:18px}.command-panel>.panel{padding:24px}.voyage-card{background:linear-gradient(140deg,#153138,#101d2a)}.voyage-card>.muted{font-size:8px;letter-spacing:.15em}.room-code{display:flex;align-items:center;gap:14px;font-size:32px;letter-spacing:.12em;background:none;border:0;padding:12px 0 0;color:var(--cyan);width:100%}.room-code .icon{width:16px;height:16px;color:var(--muted)}.voyage-card p{font-size:11px;line-height:1.7;margin:12px 0 20px}.captain-line{border-top:1px solid #2b4652;padding-top:14px;font-size:10px;line-height:1.6;color:#b0c4cb;overflow-wrap:anywhere}.captain-line .icon{width:15px;height:15px;color:var(--cyan);margin-right:5px}.captain-controls p{font-size:12px}.captain-controls .button{font-size:12px;margin-top:8px}.captain-controls h3{margin:0 0 20px}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;letter-spacing:0}.switch-row strong{font-size:12px;color:var(--text);font-weight:500;display:block}.switch-row small{font-size:10px;color:var(--muted);display:block;margin-top:5px;max-width:260px}.switch-row input{appearance:none;width:36px;min-height:22px;height:22px;flex-shrink:0;border-radius:20px;background:#293e4c;padding:0;position:relative;cursor:pointer}.switch-row input:before{content:'';position:absolute;width:14px;height:14px;border-radius:50%;background:#869da9;top:3px;left:3px;transition:transform .2s}.switch-row input:checked{background:#194c43;border-color:#387f6e}.switch-row input:checked:before{transform:translateX(14px);background:var(--cyan)}.timer-settings{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0}.timer-settings label{font-size:8px}.timer-settings select{font-size:11px;margin-top:8px;padding:10px 8px}.settings-form details{border-top:1px solid var(--line);padding:15px 0;font-size:11px}.settings-form summary{display:flex;justify-content:space-between;align-items:center;color:#c5d7db;cursor:pointer;min-height:32px;list-style:none}.settings-form summary .icon{width:15px;height:15px;transform:rotate(90deg)}.settings-form details[open] summary .icon{transform:rotate(-90deg)}.role-setting{display:flex;align-items:center;justify-content:space-between;margin:12px 0;gap:10px;letter-spacing:0;font-size:11px}.role-setting>span{display:flex;align-items:center;gap:8px;line-height:1.5}.role-setting .icon{height:16px;width:16px;color:var(--cyan)}.role-setting select{width:58px;min-height:40px;font-size:12px;padding:5px}.fine-print{font-size:9px!important;line-height:1.7;color:#8198a5}.captain-controls>form>label{margin:12px 0}.captain-controls>form>label select{margin-top:8px;font-size:13px}.wait-card>.icon{color:var(--cyan);width:30px;height:30px;margin-bottom:20px}.wait-card p{font-size:12px}.leave{font-size:11px;color:#879aa5}hr{border:0;border-top:1px solid var(--line);margin:24px 0}.roster,.ship-log{padding:30px}.roster>h2,.ship-log>h2{margin-top:12px}.roster>p{font-size:12px}.duty-card{display:flex;gap:18px;padding:23px 0;border-top:1px solid var(--line);margin-top:16px}.duty-card h3{font-size:18px}.duty-card p{font-size:12px;margin:8px 0}.duty-card small{font-size:10px;color:#6c8a99}.duty-icon{width:44px;height:44px;border-radius:12px;border:1px solid #80f7d533;display:grid;place-items:center;flex-shrink:0;background:#80f7d508;color:var(--cyan)}.hollow-card .duty-icon{color:var(--red);border-color:#ff657044;background:#ff657009}.count{font:10px monospace;color:var(--muted);margin-left:8px}.ship-log article{display:flex;gap:20px;align-items:baseline;border-bottom:1px solid var(--line);padding:15px 0}.ship-log article>span{font:8px monospace;color:var(--cyan);white-space:nowrap}.ship-log article p{font-size:12px;margin:0}.orders-prompt{padding:28px;display:flex;gap:20px;align-items:center;margin-bottom:24px}.orders-prompt>.icon{width:32px;height:32px;color:var(--cyan)}.orders-prompt h2{font-size:22px}.orders-prompt p{font-size:12px}.orders-prompt .button{flex-shrink:0}.station-panel{padding:30px;margin-bottom:24px}.station-panel h2{font-size:29px}.station-panel>p{font-size:13px;max-width:540px}.target-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:25px 0}.target{background:#0b1822;border:1px solid #2b4654;padding:14px 8px;border-radius:10px;display:flex;flex-direction:column;align-items:center;gap:12px;position:relative;min-width:0}.target .portrait{width:50px;height:50px}.target>span:not(.portrait){font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target.selected{border-color:var(--cyan);background:#193831}.target>.icon{position:absolute;right:6px;top:6px;color:var(--cyan);width:14px;height:14px}.hollow-network{border:1px solid #6d3948;border-radius:10px;background:#311e2b;padding:16px;margin:24px 0}.hollow-network>div{display:flex;justify-content:space-between;gap:20px;font-size:12px;padding-top:14px;color:#e0c6d0}.hollow-network strong{font-weight:500;color:#ffb1bc}.scanner{width:150px;height:150px;margin:30px auto;border-radius:50%;background:repeating-radial-gradient(circle,#80f7d522 0 1px,transparent 2px 24px),conic-gradient(from 0deg,transparent 65%,#80f7d533);border:1px solid #80f7d555;position:relative;animation:rotate 8s linear infinite}.scanner:after{content:'';position:absolute;width:9px;height:9px;left:40px;top:40px;border-radius:50%;background:var(--cyan);box-shadow:0 0 15px var(--cyan);animation:throb 2s infinite}.sealed-status{padding:20px;border:1px dashed #395962;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:10px;text-align:center;line-height:1.6;color:var(--cyan);font-size:12px;margin:20px 0}.ballot-panel{text-align:center;padding:35px;margin-bottom:24px;border-color:#643d49;background:radial-gradient(ellipse at top,#3f263388,#101e2b 70%)}.ballot-panel h2{font-size:31px}.ballot-panel p{font-size:13px}.nominee-portrait{position:relative;width:120px;margin:30px auto}.nominee-portrait>.icon{position:absolute;right:-10px;bottom:0;background:#7a3344;padding:9px;width:42px;height:42px;border:1px solid var(--red);border-radius:50%;color:#ffbdc5}.ballot-actions{display:flex;gap:12px;margin:25px 0 16px}.ballot-actions>.button{flex:1;min-height:58px}.ballot-panel>small{font-size:10px;color:var(--muted)}.ballot-progress{height:4px;background:#182d39;margin:32px 0 15px;border-radius:4px;overflow:hidden}.ballot-progress>span{display:block;background:var(--cyan);height:100%;transition:width .5s}.connection-warning,.pause-banner{background:#35272b;border:1px solid #7e4a45;padding:20px;border-radius:12px;margin-bottom:20px;font-size:13px;line-height:1.7}.pause-banner h2{font-size:24px}
dialog{border:1px solid #3c5865;border-radius:22px;color:var(--text);background:#0e1e2a;max-width:560px;width:calc(100% - 32px);max-height:calc(100dvh - 40px);padding:44px 34px 30px;box-shadow:0 30px 150px #0009;overscroll-behavior:contain}dialog[open]{animation:modal-in .25s ease-out}dialog::backdrop{background:#020810dc;backdrop-filter:blur(8px)}.modal-close{position:absolute;top:10px;right:10px;z-index:2}.private-card{text-align:center}.private-card .eyebrow{font-size:8px;display:block;color:var(--muted);margin:10px 0 30px}.role-emblem{width:120px;height:120px;display:grid;place-items:center;margin:auto auto 25px;border:1px solid #80f7d555;border-radius:30px;background:radial-gradient(circle,#80f7d51a,transparent);box-shadow:0 0 80px #80f7d510;animation:float 6s ease-in-out infinite}.role-emblem>.icon{width:66px;height:66px;stroke-width:1;color:var(--cyan)}.team-label{font-size:9px;color:var(--cyan);letter-spacing:.22em}.private-card h2{font-size:38px;margin:12px 0 20px}.private-card p{font-size:13px}.private-card>small{display:block;color:#91a7b3;font-size:11px}.private-objective{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:26px 0;padding:18px 0}.private-objective>strong{font-size:8px;letter-spacing:.15em;color:var(--cyan)}.private-objective>p{font-size:12px;margin:8px 0 0}.private-reports{text-align:left;margin:25px 0}.private-reports h3{font-size:16px;margin-bottom:15px}.private-reports p{padding:14px;border:1px solid #29424e;border-radius:8px;font-size:12px}.private-reports span{display:block;font-size:8px;color:var(--cyan);margin-bottom:8px}.private-card.hollow-card .role-emblem{border-color:#ff657066;background:radial-gradient(circle,#ff657022,transparent);box-shadow:0 0 80px #ff657016}.private-card.hollow-card .role-emblem>.icon,.private-card.hollow-card .team-label{color:var(--red)}.guide h2,.preferences h2{font-size:33px;margin:12px 0 20px}.guide h3{margin-top:26px;color:var(--cyan);font-size:17px}.guide p{font-size:13px}.guide>.button:last-child{margin-top:20px}.person-detail{text-align:center}.person-detail>.eyebrow{display:block;color:var(--muted)}.person-detail h2{margin:15px 0;font-size:38px;overflow-wrap:anywhere}.person-detail .badge{display:inline-block;margin:20px}.death-dialog{background:radial-gradient(circle at 50% 20%,#532332,#0e1a26 70%);border-color:#a55b66}.death-screen{text-align:center}.death-reticle{display:grid;place-items:center;width:130px;height:130px;margin:20px auto 30px;border:1px dashed #ff657077;border-radius:50%;animation:signal-loss 2s ease-out}.death-reticle .icon{width:65px;height:65px;color:var(--red)}.death-screen h2{font-size:72px;font-weight:700;color:#ff8c96;line-height:.9;margin:25px 0}.death-screen p{font-size:13px}.death-screen .button{margin-top:20px}.preferences .switch-row{margin:30px 0}.preferences .switch-row strong{font-size:15px}.preferences .switch-row small{font-size:12px}
.victory{position:relative;overflow:hidden;text-align:center;background:radial-gradient(ellipse at top,#1b6354,#0d2029 65%);border:1px solid #448a75;border-radius:20px;padding:45px 25px;margin-bottom:25px}.victory>*:not(.confetti):not(.victory-burst){position:relative;z-index:1}.victory>.eyebrow{color:var(--cyan)}.victory-emblem{width:120px;height:120px;margin:22px auto;border:1px solid #80f7d54a;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 12px #80f7d509,0 0 0 13px #80f7d51c,0 0 80px #80f7d533;animation:emblem-in 1s cubic-bezier(.2,.8,.2,1) both}.victory-emblem .icon{width:70px;height:70px;color:var(--cyan);stroke-width:1}.victory h2{font-size:clamp(40px,4.4vw,62px);line-height:.95;letter-spacing:-.055em;margin:30px 0;color:#b7ffe8;animation:title-in .8s ease-out both}.victory>p{font-size:13px;max-width:440px;margin:20px auto}.victory-burst{position:absolute;inset:-100%;background:repeating-conic-gradient(from 0deg,#80f7d506 0deg 10deg,transparent 10deg 25deg);animation:rotate 80s linear infinite}.winners{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin:35px 0}.winners>div{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:120px;animation:seat-arrive .7s ease-out both}.winners .portrait{width:56px;height:56px}.winners strong{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.winners span:not(.portrait){font-size:7px;color:var(--cyan);letter-spacing:.05em}.hollow-victory{background:radial-gradient(ellipse at top,#7b2a3c,#211b2a 70%);border-color:#a45265}.hollow-victory h2{color:#ffb5bd}.hollow-victory .victory-emblem{border-color:#ff657055;box-shadow:0 0 0 12px #ff657009,0 0 0 13px #ff657025,0 0 80px #ff657044}.hollow-victory .victory-emblem .icon,.hollow-victory>.eyebrow{color:var(--red)}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti i{position:absolute;left:calc(var(--i)*4.3%);top:-30px;width:5px;height:12px;background:var(--cyan);opacity:.7;animation:confetti calc(3s + var(--i)*.07s) calc(var(--i)*.1s) ease-in infinite}.confetti i:nth-child(3n){background:#f6be84;width:8px;height:8px}.confetti i:nth-child(3n+1){background:#d8fff2}.hollow-victory .confetti i{background:var(--red)}
#toast{position:fixed;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%,20px);background:#203d42;border:1px solid #5c9b8e;color:#e1fff4;border-radius:10px;padding:15px 22px;max-width:calc(100% - 32px);width:max-content;font-size:13px;line-height:1.6;box-shadow:0 10px 60px #0008;z-index:10;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}#toast.visible{opacity:1;transform:translate(-50%,0)}
@keyframes rotate{to{rotate:360deg}}@keyframes stardrift{to{transform:translate(50px,100px)}}@keyframes arrival{from{transform:scale(1.04);opacity:.4}to{transform:scale(1);opacity:1}}@keyframes float{50%{transform:translateY(-7px)}}@keyframes throb{50%{opacity:.6;box-shadow:0 0 30px #ff657055}}@keyframes seat-arrive{from{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes modal-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}@keyframes signal-loss{0%,20%,40%{opacity:1;transform:translateX(0)}10%,30%{opacity:.2;transform:translateX(5px)}50%{transform:translateX(-2px)}}@keyframes emblem-in{from{transform:scale(.4) rotate(-45deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@keyframes title-in{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes confetti{to{transform:translate(40px,750px) rotate(540deg);opacity:0}}
@media(min-width:1450px){.hero{min-height:590px}.hero-copy{padding-top:55px}.hero h1{font-size:122px}.game-layout{grid-template-columns:minmax(0,1fr) 330px}.crew-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.command-panel{position:sticky;top:20px}}
@media(max-width:1100px){.topbar{padding:0 28px;height:85px}.landing,.game-shell{padding-left:28px;padding-right:28px}.boarding-wrap{gap:50px;margin:55px 20px 65px}.hero-copy{padding-left:38px}.hero{min-height:520px}.hero h1{font-size:90px}.game-layout{grid-template-columns:minmax(0,1fr) 280px;gap:18px}.board{padding:22px}.crew-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.command-panel>.panel{padding:20px}.deck-tabs .button{padding:10px;font-size:11px;gap:6px}.board-title{flex-wrap:wrap}.orders-prompt{flex-wrap:wrap}.orders-prompt .button{width:100%}.topbar nav{gap:10px}.topbar .connection{display:none}footer{padding-left:28px;padding-right:28px}.briefing-grid{gap:16px}.briefing article{padding:23px}.boarding{padding:25px}.boarding h2{font-size:22px}}
@media(max-width:780px){.hero-art{background-position:60% center}.hero-copy{padding:35px}.hero h1{font-size:88px}.hero-stats{gap:14px}.hero .coordinates{font-size:7px}.boarding-wrap{grid-template-columns:1fr 1.2fr;gap:28px;margin-left:0;margin-right:0}.boarding-intro h2{font-size:38px}.boarding-intro p{font-size:12px}.boarding{padding:23px 20px}.boarding h2{font-size:20px}.join-row{flex-wrap:wrap}.join-row input{width:100%}.boarding .button-caption{font-size:7px}.briefing-grid{grid-template-columns:1fr}.briefing article{display:grid;grid-template-columns:35px 1fr;gap:0 22px;padding:26px}.briefing article>.icon{grid-row:1/3;margin:0}.briefing article p{max-width:100%;margin:10px 0 0;padding-right:25px}.briefing .step-number{top:20px;right:20px}.game-layout{grid-template-columns:1fr}.crew-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.command-panel{display:grid;grid-template-columns:1fr 1fr;align-items:start}.command-panel .leave{grid-column:1/-1}.game-layout .main-deck{order:0}.game-layout .command-panel{order:1}.command-panel .voyage-card{position:sticky;top:15px}.phase-banner{padding:25px}.phase-banner h1{font-size:30px}.phase-clock>span{font-size:35px}.phase-clock{padding-left:20px}.phase-banner p{max-width:420px}.board-title{flex-wrap:nowrap}.deck-tabs .button{padding:12px 16px}footer>span:last-child{display:none}}
@media(max-width:560px){:root{--radius:15px}.topbar{height:79px;padding:0 20px}.brand{font-size:21px;gap:8px}.brand>.icon{width:32px;height:32px}.brand small{font-size:6px;letter-spacing:.21em;margin-top:6px}.topbar nav{gap:6px}.topbar .quiet>span{display:none}.topbar nav>.quiet{padding:10px}.topbar nav>.quiet:first-of-type{border:0}.landing,.game-shell{padding:0 16px}.hero{min-height:560px;border-radius:19px}.hero-copy{padding:30px 25px}.hero .eyebrow{font-size:7px;gap:7px;letter-spacing:.12em}.hero h1{font-size:91px;margin:42px 0 24px}.hero-art{background-size:auto 100%;background-position:57% center;background-image:linear-gradient(90deg,#071019d9 0%,#0710197d 50%,#07101922 100%),url('/assets/voyage.webp')}.hero-description{font-size:12px}.tagline{font-size:17px}.hero-stats{flex-wrap:wrap;gap:14px;font-size:9px;max-width:230px;margin-top:28px}.hero-stats span:last-child{flex-basis:100%}.hero-stats .icon{width:15px;height:15px}.coordinates{bottom:20px;right:18px;font-size:6px!important}.coordinates span{margin:0 7px}.boarding-wrap{grid-template-columns:1fr;gap:26px;margin:37px 0 45px}.boarding-intro{padding:0 9px}.boarding-intro h2{font-size:36px;margin-top:15px}.boarding-intro h2 br{display:none}.boarding-intro p{font-size:13px;margin-top:15px;max-width:100%}.boarding-intro .text-link{display:none}.boarding{padding:25px}.boarding h2{font-size:23px}.boarding>p{font-size:12px}.join-row{flex-wrap:nowrap}.join-row input{width:43%;font-size:11px}.boarding .button-caption{font-size:7px}.section-title h2{font-size:27px}.briefing{padding-top:32px;padding-bottom:35px}.briefing-grid{gap:14px}.briefing article{padding:25px 22px;gap:0 17px}.briefing article p{font-size:12px;padding-right:0}.briefing article h3{font-size:17px;padding-right:20px}footer{padding:25px 20px;font-size:7px}.phase-banner{padding:22px 20px;gap:14px;align-items:flex-start;margin-bottom:17px}.phase-banner .eyebrow{font-size:7px;gap:4px;letter-spacing:.1em}.phase-banner h1{font-size:26px;gap:9px;line-height:1.15;margin-top:13px}.phase-banner p{font-size:11px;margin-top:12px}.phase-pip{width:5px;height:5px;flex-shrink:0}.phase-insignia{display:none}.phase-clock{padding-left:10px;border:0;padding-top:17px}.phase-clock>span{font-size:26px}.phase-clock small{font-size:6px;white-space:nowrap;letter-spacing:.03em}.phase-banner:has(.phase-clock)>div:first-child{max-width:calc(100% - 76px)}.deck-tabs{margin-bottom:16px;gap:0;justify-content:space-between}.deck-tabs .button{font-size:10px;gap:5px;padding:10px 7px;min-height:48px}.deck-tabs .icon{width:15px;height:15px}.board{padding:20px 16px}.board-title h2{font-size:21px}.board-title .eyebrow{font-size:7px}.board-title .badge{font-size:7px;padding:6px}.board-title{gap:8px;margin-bottom:22px}.crew-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.crew-seat{padding:11px 6px 13px;border-radius:10px}.portrait{width:58px;height:58px;border-width:1px}.seat-top{font-size:6px;letter-spacing:.03em;margin-bottom:12px;padding:0 1px}.crew-seat>strong{font-size:12px;margin-top:12px}.seat-status{font-size:5.5px;letter-spacing:.02em;margin-top:6px}.empty-portrait{width:58px;height:58px}.empty>strong{font-size:9px}.axe-badge{right:3px;top:37px;width:25px;height:25px}.axe-badge .icon{width:14px;height:14px}.board-note{font-size:9px;margin-top:22px;padding-top:17px;gap:8px}.core-ring{width:240px;height:240px}.command-panel{display:flex;gap:16px}.command-panel .voyage-card{position:static}.command-panel>.panel{padding:25px}.voyage-card .room-code{font-size:36px}.voyage-card .panel-eyebrow{padding-bottom:17px}.voyage-card p{margin-top:10px;font-size:12px}.voyage-card{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.voyage-card .panel-eyebrow{grid-column:1/-1}.voyage-card>.muted{grid-column:1}.voyage-card>.room-code{grid-column:1;font-size:29px;gap:10px}.voyage-card>p{grid-column:2;grid-row:2/4;font-size:10px;margin:0;align-self:center;line-height:1.9}.voyage-card>.captain-line{grid-column:1/-1;margin-top:18px}.captain-controls h3{font-size:20px}.switch-row strong{font-size:14px}.switch-row small{font-size:11px}.timer-settings select{font-size:13px}.role-setting{font-size:13px}.captain-controls .button{font-size:14px}.settings-form details{font-size:13px}.command-panel{margin-top:4px}.roster,.ship-log{padding:23px}.roster h2,.ship-log h2{font-size:25px}.duty-card{gap:13px}.duty-card h3{font-size:17px}.duty-icon{width:36px;height:36px}.duty-icon>.icon{width:20px;height:20px}.ship-log article{gap:14px}.ship-log article>span{font-size:7px}.ship-log article p{font-size:11px}.orders-prompt{padding:23px;gap:16px}.orders-prompt h2{font-size:23px}.orders-prompt>div{flex:1;min-width:0}.orders-prompt>.icon{width:24px}.station-panel{padding:24px 20px}.station-panel .panel-eyebrow{font-size:7px}.station-panel h2{font-size:27px}.station-panel>p{font-size:12px}.target-grid{gap:9px}.target{padding:14px 7px;gap:10px}.target .portrait{width:45px;height:45px}.target>span:not(.portrait){font-size:11px}.ballot-panel{padding:28px 20px}.ballot-panel h2{font-size:27px}.ballot-panel .eyebrow{font-size:8px}.portrait-lg{width:110px;height:110px}.ballot-actions{gap:10px}.ballot-actions>.button{font-size:14px;padding:12px}.private-card h2{font-size:34px}.private-card p{font-size:13px}.private-card .eyebrow{font-size:7px}.victory{padding:35px 20px}.victory h2{font-size:43px}.victory>p{font-size:12px}.winners{gap:17px}.winners>div{max-width:86px}.winners .portrait{width:50px;height:50px}.winners strong{font-size:11px}.phase-divider{margin:0 3px}.game-shell{padding-bottom:10px}dialog{padding:44px 24px 25px}.guide h2,.preferences h2{font-size:29px}.fine-print{font-size:10px!important}}
@media(max-width:359px){.topbar{padding:0 16px}.hero-copy{padding:27px 20px}.hero h1{font-size:78px}.hero{min-height:530px}.hero .eyebrow{font-size:6px}.tagline{font-size:15px}.boarding{padding:24px 19px}.boarding h2{font-size:21px}.boarding-intro h2{font-size:30px}.join-row{gap:7px}.join-row .button{font-size:11px}.join-row input{font-size:10px;padding:10px}.deck-tabs .button{font-size:9px;padding:10px 4px;gap:4px}.deck-tabs .icon{width:13px;height:13px}.crew-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.board-title{flex-wrap:wrap}.phase-banner h1{font-size:23px}.phase-banner{padding:20px 17px}.phase-clock>span{font-size:23px}.phase-banner:has(.phase-clock)>div:first-child{max-width:calc(100% - 66px)}.phase-banner .eyebrow{font-size:6px}.target-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
html[data-motion=reduced]{scroll-behavior:auto}html[data-motion=reduced] *,html[data-motion=reduced] *:before,html[data-motion=reduced] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
.mobile-dock{display:none}
@media(max-width:560px){body:has(.mobile-dock){padding-bottom:80px}.hero{min-height:420px}.hero-copy{padding-top:28px;padding-bottom:32px}.hero h1{font-size:82px;margin:28px 0 20px}.hero-description{display:none}.hero-stats{margin-top:24px}.hero-stats span:last-child{flex-basis:auto}.hero-stats{max-width:100%;gap:12px}.hero-stats span{font-size:8px}.boarding-intro{display:none}.boarding-wrap{margin-top:24px}.crew-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.crew-seat{padding:14px 10px 18px}.portrait{width:70px;height:70px}.seat-top{font-size:8px;margin-bottom:15px}.crew-seat>strong{font-size:15px}.seat-status{font-size:8px;letter-spacing:.04em}.axe-badge{top:44px;right:10px;width:30px;height:30px}.axe-badge .icon{width:17px;height:17px}.empty-portrait{width:70px;height:70px}.empty>strong{font-size:12px}.mobile-dock{display:flex;position:fixed;z-index:4;bottom:0;left:0;right:0;padding:10px 12px max(10px,env(safe-area-inset-bottom));gap:5px;align-items:center;justify-content:space-around;background:#0b1a25f5;backdrop-filter:blur(14px);border-top:1px solid #3a5662;box-shadow:0 -8px 30px #0004}.mobile-dock .button{font-size:11px;min-height:46px;padding:10px;gap:6px}.mobile-dock .icon{width:16px;height:16px}.captain-controls,.main-deck{scroll-margin-top:20px}.station-panel .target-grid .portrait{width:45px;height:45px}.winners .portrait{width:50px;height:50px}.portrait-lg{width:110px;height:110px}.board-title{flex-wrap:wrap}}
@media(max-width:359px){.hero{min-height:390px}.hero h1{font-size:70px;margin-top:25px}.hero-stats{gap:10px}.hero-stats span:last-child{flex-basis:100%}.hero .tagline{font-size:14px}.crew-seat .portrait{width:64px;height:64px}.seat-top{font-size:7px}.seat-status{font-size:7px}.mobile-dock .button{font-size:10px;padding:9px 7px}}
.crew-seat{animation:none}.role-emblem{position:relative;width:150px;height:150px;display:block}.role-emblem>.portrait{width:148px;height:148px;margin:0;border-radius:28px;border:0;box-shadow:none}.role-emblem>.icon{position:absolute;right:-12px;bottom:-12px;width:47px;height:47px;padding:10px;border:1px solid #80f7d566;background:#0e292d;border-radius:14px}.hollow-card .role-emblem>.portrait{filter:grayscale(.65) contrast(1.15)}.private-card.hollow-card .role-emblem>.icon{background:#3d1f2b;border-color:#ff657077}.role-emblem:after{content:'';position:absolute;inset:0;border:1px solid #80f7d544;border-radius:28px;pointer-events:none}.hollow-card .role-emblem:after{background:linear-gradient(0deg,#ff657033,transparent);border-color:#ff657066}
.hero-board-link{margin-top:10px;font-size:12px;min-height:36px;position:relative;z-index:2}.topbar .quiet{min-height:44px}
@media(max-width:560px){.hero-board-link{margin-top:0;font-size:11px;min-height:36px}.hero-stats{margin-top:18px}.hero h1{margin-top:24px}.hero{min-height:430px}}
body[data-phase=lobby] .crew-seat{animation:seat-arrive .5s ease-out both}
.portrait-8,.portrait-9,.portrait-10,.portrait-11,.portrait-12,.portrait-13,.portrait-14,.portrait-15{background-image:url('/assets/crew-extra-v2.webp')}
.portrait-8{background-position:0 0}.portrait-9{background-position:33.333% 0}.portrait-10{background-position:66.666% 0}.portrait-11{background-position:100% 0}.portrait-12{background-position:0 100%}.portrait-13{background-position:33.333% 100%}.portrait-14{background-position:66.666% 100%}.portrait-15{background-position:100% 100%}
.avatar-dialog{max-width:660px}.avatar-picker h2{margin:12px 0;font-size:32px}.avatar-picker>p{font-size:13px}.avatar-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:25px 0}.avatar-option{border:1px solid var(--line);background:#0a1823;border-radius:12px;position:relative;display:flex;flex-direction:column;align-items:center;padding:16px 7px;gap:10px;transition:border-color .2s,background .2s}.avatar-option .portrait{width:72px;height:72px}.avatar-option strong{font-size:12px;font-weight:500}.avatar-option small{font-size:7px;letter-spacing:.08em;color:var(--muted)}.avatar-option.selected{border-color:var(--cyan);background:#17362f}.avatar-option.selected small{color:var(--cyan)}.avatar-option>.icon{position:absolute;right:7px;top:7px;width:16px;height:16px;color:var(--cyan)}.avatar-option:disabled .portrait{filter:grayscale(1)}.avatar-option:disabled{opacity:.45}.avatar-reservation{display:flex;gap:8px;align-items:center;font-size:10px!important;line-height:1.5}.avatar-reservation .icon{width:15px;height:15px}.avatar-picker>.button{margin-top:12px}
@media(max-width:560px){.avatar-dialog{padding:42px 19px 22px}.avatar-picker h2{font-size:27px}.avatar-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.avatar-option{padding:13px 5px;gap:8px}.avatar-option .portrait{width:62px;height:62px}.avatar-picker>p{font-size:12px}.avatar-option strong{font-size:11px}.avatar-picker>.button{position:sticky;bottom:0;box-shadow:0 -10px 22px #0e1e2a}}
@media(max-width:359px){.avatar-options{gap:7px}.avatar-option .portrait{width:52px;height:52px}.avatar-option strong{font-size:10px}.avatar-option small{font-size:6px}}
.card-faction{display:block;font-size:8px;letter-spacing:.12em;margin-bottom:7px}.library-dialog{max-width:700px}.card-library h2{margin:12px 0 20px;font-size:32px}.card-library>p{font-size:13px}.planned-title{margin-top:28px;padding-top:25px;border-top:1px solid var(--line)}.pool-editor{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.pool-heading{display:flex;align-items:center;justify-content:space-between;font-size:15px}.pool-heading .icon{width:18px;height:18px}.pool-budget{font-size:12px!important;color:var(--cyan);font-variant-numeric:tabular-nums}.pool-validation{padding:12px;border:1px solid var(--line);border-radius:8px;font-size:11px!important;line-height:1.6}.card-library>.button{margin-top:20px}.roster>.button{margin:20px 0 0}.library-dialog .duty-card h3{line-height:1.4}.duty-card .count{display:inline-block;font-size:8px}
@media(max-width:560px){.topbar nav{gap:2px}.topbar{gap:9px}.topbar nav>.quiet{padding:9px}.card-library h2{font-size:27px}.library-dialog{padding-left:22px;padding-right:22px}}
@media(max-width:359px){.brand{font-size:18px}.brand>.icon{width:28px;height:28px}.topbar nav>.quiet{min-width:40px;padding:8px}.topbar{gap:6px}}
.unused-cards{position:relative;margin:25px 0;padding:18px;border:1px solid #80f7d533;border-radius:10px;background:#07101955}.unused-cards p{font-size:12px;margin:10px 0 0}

.faction-tabs{display:flex;gap:10px;margin:18px 0;flex-wrap:wrap}.faction-tabs .button{flex:1;min-height:48px}.pool-choice{border:1px solid #345267;border-radius:16px;margin:14px 0;overflow:hidden;background:#0c1c30}.pool-choice.selected{border-color:#45dfe8;box-shadow:inset 0 0 20px #38dbe911}.pool-select{display:flex;flex-direction:column;gap:12px;width:100%;padding:20px;text-align:left;color:inherit;background:transparent;border:0;cursor:pointer;font:inherit;line-height:1.5}.pool-select strong{font-size:1.15rem}.pool-select small{color:#a5b9ca}.pool-select b{color:#64e8ef;font-size:.75rem;letter-spacing:.06em}.pool-select:disabled{cursor:default;opacity:.85}.pool-minimums{line-height:1.7;color:#b8d9e7}.pool-select:focus-visible{outline:3px solid #64e8ef;outline-offset:-4px}

.orders-notification{display:inline-block;flex:none;width:9px;height:9px;margin-left:3px;border-radius:50%;background:#ff596c;box-shadow:0 0 0 3px #ff596c22,0 0 12px #ff596c99;vertical-align:middle}

.orders-dialog{width:min(740px,calc(100% - 24px));max-height:calc(100dvh - 24px)}.orders-dialog .private-card{text-align:left}.orders-identity{display:flex;align-items:center;gap:16px;margin:24px 0}.orders-identity>.icon{width:40px;height:40px;color:#62e8ec;flex:none}.orders-identity h2{font-size:clamp(1.5rem,5vw,2.2rem);margin:0 0 8px}.orders-identity .team-label{font-size:.67rem}.orders-action{padding:22px;margin:20px 0;border:1px solid #31566a;border-radius:18px;background:linear-gradient(145deg,#102b3b,#0c1829)}.orders-action.inactive{background:#101e29}.orders-action h3{font-size:1.3rem;margin:14px 0}.orders-action p{line-height:1.6}.orders-targets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0 22px}.order-target{display:flex;align-items:center;gap:10px;min-height:72px;min-width:0;padding:10px;background:#142a3b;border:1px solid #345166;border-radius:12px;color:#e8f5f6;text-align:left;font:inherit;cursor:pointer}.order-target .portrait{width:44px;height:52px;flex:none;border-radius:8px}.order-target span:not(.portrait){overflow-wrap:anywhere;min-width:0;font-size:.85rem}.order-target .icon{flex:none;width:16px}.order-target small{display:block;font-size:.6rem;color:#91a7b9}.order-target.selected{border-color:#59e6e9;background:#163e49;box-shadow:0 0 15px #38e6e614}.order-target:focus-visible{outline:3px solid #7efaff;outline-offset:3px}.order-modes{display:flex;gap:10px;flex-wrap:wrap}.order-modes button{flex:1;min-height:48px}.orders-status{padding:18px;background:#2a2932;border:1px solid #6c5c60;border-radius:12px;margin:16px 0}.orders-status p{margin:10px 0}.private-report{padding:18px 0;border-bottom:1px solid #294451}.private-report p{white-space:pre-line;line-height:1.7}.resource-status{color:#8de0d8}.selection-count{font-size:.75rem;color:#9dd4df}.character-reference{padding:20px 0;margin:12px 0}.character-reference summary,.hollow-network summary{cursor:pointer;min-height:44px;align-content:center}.restriction-badge{display:block;color:#ffc487;font-size:.56rem;letter-spacing:.04em;margin-top:7px}@media(max-width:420px){.orders-dialog .private-card{padding:20px 16px}.orders-action{padding:16px}.orders-targets{gap:8px}.order-target{padding:8px;gap:7px}.order-target .portrait{width:34px;height:44px}.order-target .icon{width:12px}.orders-identity{gap:10px}.orders-identity>.icon{width:30px}.order-target span:not(.portrait){font-size:.77rem}}

.orders-topline{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-right:24px}.orders-clock{display:flex;flex-direction:column;align-items:flex-end;flex:none;color:#86f5de}.orders-clock b{font-size:1.1rem;font-variant-numeric:tabular-nums}.orders-clock small{font-size:.5rem;letter-spacing:.1em;margin-top:4px}
@media(max-width:360px){.order-target{flex-direction:column;justify-content:center;text-align:center;gap:8px;padding:12px 6px;min-height:106px;position:relative}.order-target .portrait{width:40px;height:48px}.order-target>span:not(.portrait){width:100%;font-size:.8rem;line-height:1.4}.order-target>.icon{position:absolute;right:6px;top:6px}}

.dawn-dialog{max-width:660px;background:radial-gradient(circle at 50% 0%,#492631,#0e1a26 65%);border-color:#a55b66}.dawn-reveal{text-align:center}.dawn-reveal h2{font-size:clamp(27px,6vw,42px);margin:18px 0}.dawn-reveal>p{font-size:14px;line-height:1.7;overflow-wrap:anywhere}.dawn-tokens{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:18px;margin:28px 0}.dawn-token{perspective:900px;min-width:0}.dawn-token-flip{position:relative;height:210px;transform-style:preserve-3d;transform:rotateY(180deg);animation:dawn-token-flip 1s cubic-bezier(.22,.7,.3,1) var(--reveal-delay) both}.dawn-token-front,.dawn-token-back{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;padding:18px 12px;border:1px solid #ff657066;border-radius:20px;background:#15232e;backface-visibility:hidden}.dawn-token-front .portrait{width:100px;height:100px}.dawn-token-back{transform:rotateY(180deg);background:radial-gradient(circle,#482431,#151c29)}.dawn-token-back>.icon{width:48px;height:48px;color:var(--red)}.dawn-token-back strong{font-size:18px;overflow-wrap:anywhere;max-width:100%}.dawn-token-back span{font-size:10px;color:#ff9aa3;letter-spacing:.12em}.dawn-token-back small{font-size:12px}.dawn-reveal>.button{margin-top:12px}@keyframes dawn-token-flip{from{transform:rotateY(0)}to{transform:rotateY(180deg)}}
@media(prefers-reduced-motion:reduce){.dawn-token-flip{animation:none;transform:rotateY(180deg)}}

.script-tabs,.script-night-switch{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.script-tabs>.button{flex:1;min-width:115px}.script-faction{margin:26px 0}.script-faction>h3{color:var(--cyan);font-size:20px}.night-step{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;border-top:1px solid #ffffff16;padding:22px 0}.night-step-number{font-size:23px;color:var(--cyan);font-weight:700}.night-step h3{margin:0 0 12px;font-size:19px}.night-step p{font-size:13px;line-height:1.7}.night-role{padding:14px;border:1px solid #ffffff14;border-radius:12px;margin-top:12px;background:#10202a}.night-role strong{display:flex;align-items:center;gap:10px;font-size:14px}.night-role small{display:block;color:var(--muted);line-height:1.6;margin-top:8px;font-size:12px}.station-watch{text-align:center}.station-watch h2{font-size:30px}.watch-orbit{display:grid;place-items:center;margin:25px auto;width:140px;height:140px;border:1px solid #80f7d555;border-radius:50%;background:#102a30}.watch-orbit .icon{width:55px;height:55px;color:var(--cyan)}.watch-orbit strong{font-size:25px}.station-watch .button{margin-top:12px}
@media(max-width:560px){.night-step{grid-template-columns:26px minmax(0,1fr);gap:10px}.night-step-number{font-size:19px}.night-step h3{font-size:17px}.script-tabs .button,.script-night-switch .button{font-size:12px;min-height:46px}.script-faction .duty-card h3{overflow-wrap:anywhere}}

.pool-summary{border:1px solid #80f7d533;border-radius:16px;padding:18px;margin:20px 0;background:linear-gradient(135deg,#112c32,#101d29)}.script-editor-dialog{width:min(1120px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 40px);padding:0;background:#0b1823;overflow-y:auto}.script-editor-dialog>.modal-close{z-index:5;right:17px;top:17px}.script-editor-header{padding:32px 32px 20px;background:radial-gradient(ellipse at 0 0,#15404855,transparent 75%);border-bottom:1px solid #80f7d522}.script-editor-header h2{font-size:36px;line-height:1.15;margin:16px 48px 12px 0}.script-editor-header>p{font-size:13px}.editor-setup{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}.editor-setup label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:9px}.editor-setup select{width:100%;font-size:16px}.editor-tools{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 12px}.editor-tools .button{font-size:13px;min-height:46px}.editor-card-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:22px 32px 32px}.editor-card-list>.faction-tabs{grid-column:1/-1;margin:0 0 8px;position:sticky;top:0;z-index:2;background:#0b1823;padding:12px 0;border-bottom:1px solid #80f7d522}.editor-card-list .pool-choice{min-width:0;border-radius:15px;border:1px solid #ffffff18;background:#11212d;overflow:hidden;display:flex;flex-direction:column}.editor-card-list .pool-choice.selected{border-color:#80f7d588;background:linear-gradient(140deg,#15333a,#10212e);box-shadow:inset 0 0 20px #80f7d507}.editor-card-list .pool-select{flex:1;width:100%;border:0;padding:20px;text-align:left;display:flex;flex-direction:column;gap:12px;background:transparent;color:var(--text);cursor:pointer}.editor-card-list .pool-select>strong{font-size:20px;line-height:1.25}.editor-card-list .pool-select>span:not(.card-faction){font-size:13px;line-height:1.65}.editor-card-list .pool-select>small{font-size:11px;line-height:1.6;color:var(--muted)}.editor-card-list .pool-select>b{font-size:10px;color:var(--cyan);margin-top:auto;padding-top:10px}.editor-card-list .pool-choice>.button{margin:0 12px 12px;width:calc(100% - 24px);min-height:44px;font-size:12px;border:1px solid #ffffff14}.script-editor-footer{position:sticky;bottom:0;z-index:3;background:#0b1823f5;backdrop-filter:blur(15px);border-top:1px solid #80f7d544;padding:16px 32px max(18px,env(safe-area-inset-bottom));margin:0;display:block}.script-editor-footer>.pool-validation{font-size:12px;margin:0 0 12px;line-height:1.6;letter-spacing:normal}.script-editor-footer>div{display:flex;justify-content:flex-end;gap:12px}.script-editor-footer>small{display:block;text-align:right;color:var(--muted);font-size:10px;line-height:1.6;margin-top:10px;letter-spacing:normal}.script-editor-footer .button{font-size:13px;min-height:48px}
@media(max-width:850px){.editor-card-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.script-editor-dialog{width:100%;max-height:100dvh;height:100dvh;margin:0;border-radius:0;border:0}.script-editor-header{padding:28px 20px 16px}.script-editor-header h2{font-size:29px}.script-editor-header .eyebrow{font-size:8px}.editor-setup{gap:12px}.editor-tools{gap:8px}.editor-tools .button{font-size:11px;padding:10px 12px}.editor-card-list{grid-template-columns:1fr;padding:14px 20px 25px;gap:14px}.editor-card-list .pool-select{padding:20px}.script-editor-footer{padding:12px 16px max(14px,env(safe-area-inset-bottom))}.script-editor-footer>div{justify-content:stretch;gap:8px}.script-editor-footer .button{flex:1;font-size:12px;padding:12px 8px}.script-editor-footer>small{text-align:center}.script-editor-footer>.pool-validation{font-size:10px}}

@media(max-width:560px){.script-editor-header .editor-setup{margin:18px 0}.script-editor-header .editor-tools{margin:16px 0 10px}.script-editor-header>.fine-print{margin:10px 0 0}.script-editor-header{padding-top:max(24px,env(safe-area-inset-top))}.script-editor-footer>small{margin-top:8px}}
@media(min-width:900px){.script-editor-header{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.script-editor-header>.eyebrow{grid-column:1;grid-row:1}.script-editor-header>h2{grid-column:1;grid-row:2;margin-right:0}.script-editor-header>p:first-of-type{grid-column:1;grid-row:3;margin-bottom:0}.script-editor-header>.editor-setup{grid-column:2;grid-row:1/4;align-self:center;margin:0 18px 0 0}.script-editor-header>.pool-budget{grid-column:1/-1;grid-row:4;margin:22px 0 0}.script-editor-header>.pool-minimums{grid-column:1/-1;grid-row:5;margin:12px 0 0}.script-editor-header>.editor-tools{grid-column:1;grid-row:6;margin:20px 0 0}.script-editor-header>.fine-print{grid-column:2;grid-row:6;align-self:center;margin:20px 0 0;text-align:right}}

/* Approved Hollow escape branding: independent transparent emblem and wordmark. */
.brand-emblem{width:64px;height:52px;object-fit:contain}.brand-wordmark{width:120px;height:54px;object-fit:contain}.brand{gap:8px;flex-shrink:0}
.hero-art{background-image:radial-gradient(ellipse at 80% 40%,#67253855,transparent 65%);animation:none}.hero-emblem{position:absolute;width:54%;height:94%;object-fit:contain;right:0;top:2%;pointer-events:none}.hero-copy{max-width:590px}.hero h1.hero-wordmark{font-size:inherit;line-height:1;margin:26px 0 20px;max-width:380px}.hero-wordmark img{display:block;width:100%;height:auto}.hero .coordinates{z-index:1}
@media(max-width:900px){.hero-emblem{right:-8%;width:64%;opacity:.7}.hero-copy{max-width:540px}}
@media(max-width:560px){.brand-emblem{width:40px;height:40px}.brand-wordmark{width:82px;height:40px}.brand{gap:4px}.hero{min-height:0}.hero-copy{padding:210px 24px 30px}.hero-emblem{top:4px;right:8%;width:84%;height:215px;opacity:1}.hero h1.hero-wordmark{width:240px;max-width:100%;margin:16px 0}.hero-art{background-image:radial-gradient(ellipse at 50% 20%,#67253855,transparent 65%)}.hero .coordinates{display:none}.hero-stats{margin-top:18px}.hero-stats span:last-child{flex-basis:auto}}
@media(max-width:359px){.brand-emblem{width:32px;height:36px}.brand-wordmark{width:72px;height:36px}.hero-copy{padding:185px 20px 24px}.hero-emblem{height:190px}.hero h1.hero-wordmark{width:210px}}
/* Compact manifest: the card is the toggle; repeated cards retain small quantity controls. */
.editor-card-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.editor-card-list .pool-choice{margin:0;transition:border-color .18s,box-shadow .18s,background .18s}.editor-card-list .pool-choice.selected{border-color:#80f7d5;box-shadow:0 0 16px #80f7d522,inset 0 0 20px #80f7d511}.editor-card-list .pool-select{padding:15px;gap:9px}.editor-card-list .pool-select>strong{font-size:17px}.editor-card-list .pool-select>.pool-description{font-size:12px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.editor-card-list .pool-select>small:empty{display:none}.pool-select .card-faction{width:100%;display:flex;align-items:center;gap:6px;font-size:9px}.selection-check{margin-left:auto;visibility:hidden}.selected .selection-check{visibility:visible;color:#80f7d5}.pool-copies{display:flex;align-items:center;justify-content:center;border-top:1px solid #80f7d533;gap:12px}.pool-copies[hidden]{display:none}.pool-copies button{background:transparent;border:0;color:var(--cyan);font:inherit;font-size:22px;width:44px;height:44px;cursor:pointer}.pool-copies button:disabled{opacity:.3;cursor:default}.pool-copies output{font-size:13px;min-width:28px;text-align:center}.role-wiki{margin-top:14px;border-top:1px solid #80f7d533;padding-top:6px}.role-wiki summary{color:var(--cyan);cursor:pointer;min-height:44px;padding:12px 0;font-size:13px}.role-wiki h4{margin:15px 0 8px;color:var(--text);font-size:13px}.role-wiki ul{padding-left:20px;margin:0}.role-wiki li{color:var(--muted);font-size:13px;line-height:1.7;margin-bottom:8px}.duty-card>div{min-width:0}.role-wiki summary:focus-visible,.pool-copies button:focus-visible{outline:2px solid var(--cyan);outline-offset:-2px}
@media(max-width:850px){.editor-card-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.editor-card-list{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px 12px 24px;gap:10px}.editor-card-list .pool-select{padding:12px;gap:8px}.editor-card-list .pool-select>strong{font-size:15px}.editor-card-list .pool-select>.pool-description{font-size:11px}.editor-card-list .pool-select>small{font-size:10px}.pool-select .card-faction{font-size:8px}.pool-copies{gap:4px}}
.night-role-hollow{background:linear-gradient(120deg,#361e2b,#241e29);border-color:#ec657544}.night-role-hollow strong{color:#ff9aa7}.night-role-hollow small{color:#d8afb8}.hollow-choices{border:1px solid #ed637744;border-radius:14px;background:#2c172344;padding:12px;margin:14px 0}.hunt-heading{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:12px}.hunt-heading>span{font-size:9px;letter-spacing:.07em;color:#ff9aa7}.hunt-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.hunt-person{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;flex:1}.hunt-person .portrait{width:36px;height:42px;border-radius:8px}.hunt-person small{font-size:10px;max-width:100%;overflow-wrap:anywhere;line-height:1.25;text-align:center;color:#ebd6dd}.hunt-targets .order-target{position:relative;flex-wrap:wrap;align-content:center}.hunt-targets .order-target.selected{border-color:#ff8d9e;background:#412534;box-shadow:0 0 16px #ed637722}.order-target .hunt-voters{display:flex;flex-wrap:wrap;gap:3px;width:100%;padding-top:5px;border-top:1px solid #ed637744}.hunt-voter{display:inline-flex;border:1px solid #ff8d9e;border-radius:5px;padding:1px;background:#361b2b}.order-target .hunt-voter .portrait{width:22px;height:26px;border-radius:3px}.hunt-voters:before{content:'↳';color:#ff9aa7;font-size:15px;margin-right:2px}@media(max-width:420px){.hunt-links{grid-template-columns:repeat(2,minmax(0,1fr))}.hunt-heading{flex-wrap:wrap}.hunt-person .portrait{width:30px;height:36px}.hunt-targets .order-target{flex-direction:row;text-align:left}.hunt-targets .order-target>span:not(.portrait){width:auto}.hunt-targets .order-target .hunt-voters{width:100%}}
.locked-hunt-target{display:flex;flex-wrap:wrap;align-items:center;gap:12px;border:1px solid #ff8d9e;border-radius:14px;background:#412534;padding:14px;margin:14px 0}.locked-hunt-target>.portrait{width:48px;height:58px;border-radius:9px}.sealed-label{display:flex;align-items:center;gap:5px;color:#ffadba;font-size:10px;margin-left:auto}.sealed-label .icon{width:14px}.locked-hunt-target .hunt-voters{display:flex;width:100%;gap:5px;border-top:1px solid #ed637744;padding-top:10px}.locked-hunt-target .hunt-voter .portrait{width:26px;height:32px;border-radius:4px}.hollow-choices .hunt-links{margin-top:12px}

/* Keep learning prompts and the final reveal readable on narrow terminals. */
.ballot-rules { text-align:left; padding:16px; margin:16px 0; border:1px solid var(--line, #29404d); border-radius:12px; }
.ballot-rules p, .newcomer-briefing p { line-height:1.6; }
.newcomer-briefing summary, .voyage-recap summary { cursor:pointer; padding:12px 0; font-weight:700; }
.final-reveal { margin:28px 0; text-align:left; }
.reveal-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:12px; }
.reveal-person { display:flex; align-items:center; gap:12px; padding:12px; border:1px solid #29404d; border-radius:12px; min-width:0; }
.reveal-person .portrait { flex-shrink:0; width:48px; height:48px; }
.reveal-person > div { min-width:0; overflow-wrap:anywhere; }
.reveal-person strong, .reveal-person span, .reveal-person small { display:block; }
.reveal-person small { margin-top:6px; }
.reveal-hollow { border-color:#b44655; }
.voyage-recap { text-align:left; margin:20px 0; }
.voyage-recap article { border-top:1px solid #29404d; padding:10px 0; }

.mission-brief { margin-bottom:20px; padding:18px 20px; }
.mission-brief summary { cursor:pointer; color:var(--cyan); font-size:18px; }
.mission-brief p { font-size:14px; line-height:1.6; margin:12px 0 0; }
.captain-handbook .mission-brief { margin-top:20px; }
.ballot-result { padding:24px; margin-bottom:20px; border-color:#80f7d566; }
.ballot-result h2 { font-size:26px; margin:12px 0; overflow-wrap:anywhere; }
.ballot-result p { line-height:1.6; }
.ballot-result small { display:block; line-height:1.5; color:var(--muted); }
@media(max-width:360px) { .ballot-result { padding:18px; } .ballot-result h2 { font-size:23px; } }

.topbar .install-button { color:var(--cyan); }
.install-button[hidden] { display:none; }

/* Keep the opening message centered beneath its wordmark. */
.hero-copy{text-align:center}.hero h1.hero-wordmark{margin-left:auto;margin-right:auto}.hero-copy>.eyebrow{display:flex;justify-content:center;margin-bottom:18px}.hero-stats{justify-content:center}
