@font-face{font-family:Barlow;src:url('/workshop/assets/BarlowCondensed-ExtraBold.ttf') format('truetype');font-weight:800;font-display:swap}
@font-face{font-family:Bricolage;src:url('/workshop/assets/bricolage.woff2') format('woff2');font-weight:200 800;font-display:swap}
:root{--ink:#101a32;--paper:#f5e9cb;--gold:#f2bd53;--muted:#bac6d9;--blue:#637fc2;--ease:cubic-bezier(.23,1,.32,1);font-family:Bricolage,system-ui,sans-serif;color:var(--paper);background:#101a32}
*{box-sizing:border-box}
body{margin:0;background:#101a32;background-image:linear-gradient(180deg,#101a3233,#101a321a 40%,#101a3255),url('/workshop/assets/night-desk-v1.webp');background-position:center;background-size:cover;background-attachment:fixed;min-width:320px}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,#101a32a6 0%,#101a3230 36%,#101a3260 75%,#101a32de 100%);z-index:-1}
button{font:inherit;cursor:pointer;color:inherit;border:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button:disabled{cursor:default;opacity:.45}
button:focus-visible{outline:3px solid #fff2bd;outline-offset:5px}
button svg{pointer-events:none}
button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
svg{display:block}
h1,h2,h3,p{margin:0}
.game{max-width:1440px;min-height:100svh;margin:auto;padding:24px 52px 14px;display:flex;flex-direction:column;isolation:isolate}
.hud{display:grid;grid-template-columns:1fr 440px 1fr;align-items:center;gap:24px;min-height:118px}
.wordmark{font:800 30px/.8 Barlow,sans-serif;letter-spacing:-.5px;width:190px;transform:rotate(-3deg);text-shadow:3px 4px 0 #101a32}
.wordmark>span{display:block;font-size:69px;line-height:.97;letter-spacing:-1.7px}.title-dot{color:var(--gold)}
.target{padding:14px 24px 16px;background:#101a32e0;border:1px solid #566480;box-shadow:0 4px 0 #0b1427,0 5px 0 #586177;clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%,0 10px)}
.target-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;letter-spacing:1px}.muted{color:var(--muted)}
#phase-label{color:var(--gold);font-size:12px;font-weight:500;letter-spacing:0}
.target-numbers{display:flex;gap:10px;align-items:baseline;line-height:1;margin:6px 0 10px;font-variant-numeric:tabular-nums}
.target-numbers>strong{font:800 47px/.95 Barlow,sans-serif;min-width:55px}.target-numbers>span{font-size:14px;color:var(--muted)}.target-numbers b{font-weight:700;color:var(--paper)}
.target-numbers .clock{margin-left:auto;font:800 28px/1 Barlow,sans-serif;color:var(--paper)}
.target-track{height:8px;position:relative;background:#37435e;overflow:hidden}.target-track i{display:block;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left}.target-tick{position:absolute;right:0;top:0;bottom:0;width:2px;background:var(--paper)}
.hud-right{justify-self:end;display:grid;grid-template-columns:auto auto;gap:12px 24px;align-items:center}
.currency{display:flex;align-items:center;gap:9px;grid-column:1}.currency svg{width:27px;height:27px;fill:#b37827;stroke:#ffdc84;stroke-width:1.5}.currency strong{font:800 34px/1 Barlow;font-variant-numeric:tabular-nums}.currency>span{font-size:12px;color:var(--muted)}
.warnings{display:flex;align-items:center;gap:5px;grid-column:1;font-size:9px;letter-spacing:1px}.warnings span{margin-right:5px;color:var(--muted)}.warnings i{width:10px;height:10px;transform:rotate(45deg);border:1px solid #c9c8c8}.warnings i.spent{background:#e47c62;border-color:#e47c62}
.utility{display:flex;gap:7px;grid-column:2;grid-row:1/3}.icon-button{width:44px;height:44px;border:1px solid #6e7c97;background:#101a32bf;font-weight:700;font-size:21px;display:grid;place-items:center;box-shadow:0 3px 0 #0b1427}.icon-button svg{width:21px;fill:none;stroke:currentColor;stroke-width:1.5}
.play-space{display:grid;grid-template-columns:240px minmax(0,594px) 170px;gap:36px;align-items:center;justify-content:center;flex:1;padding:26px 0 14px;min-height:0}
.inspector{position:relative;padding:28px 0 28px 18px;border-left:1px solid #8291aa7a;align-self:center;margin-top:10px;text-shadow:0 2px 3px #101a32}
.inspector-heading{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.6px;text-transform:uppercase}.selection-mark{width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}#inspect-position{margin-left:auto;color:var(--gold)}
.inspector h2{font:800 42px/.96 Barlow;margin:14px 0 20px;max-width:220px;letter-spacing:-.4px}
.ability-line{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #8291aa70;border-bottom:1px solid #8291aa70;padding:12px 0;margin-bottom:14px}.ability-line strong{color:var(--gold);font-size:17px}.ability-line span{font-size:12px;color:var(--muted)}
#inspect-rule{font-size:14px;line-height:1.6;color:#f4f1e6}.inspector blockquote{font-size:13px;color:#c0c9dc;line-height:1.5;font-style:italic;margin:22px 0}
.neighbours{display:flex;gap:10px;align-items:center;padding-top:19px;border-top:1px solid #8291aa60}.neighbours p{font-size:10px;line-height:1.5;color:var(--muted)}.tiny-board{display:grid;grid-template-columns:repeat(3,7px);gap:3px;flex-shrink:0}.tiny-board i{height:8px;border:1px solid #a5b1c8}.tiny-board i:nth-child(2){background:var(--gold);border-color:var(--gold)}
.field{width:100%;max-width:630px;justify-self:center}.field-heading{display:flex;justify-content:space-between;align-items:center;margin:0 1px 16px;font-size:10px;color:#d8dfed;letter-spacing:1.6px;font-weight:700}.field-heading>span+span{letter-spacing:0;font-size:12px;font-weight:400;color:var(--muted)}
.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 22px;position:relative}
.crew-card{--edge:#d1ae67;position:relative;display:flex;flex-direction:column;width:100%;min-width:0;padding:5px;background:var(--edge);border:1px solid #f5d492;border-radius:9px;box-shadow:0 5px 0 #0a1423,0 8px 12px #0006;aspect-ratio:.744;text-align:left;transition:transform 160ms var(--ease),box-shadow 160ms var(--ease)}
.crew-card.machine{--edge:#af7962;border-color:#d6a182}.crew-card.support{--edge:#97a8bb;border-color:#bdcbdc}
.crew-card[aria-pressed=true]{outline:2px solid var(--gold);outline-offset:4px;box-shadow:0 5px 0 #0a1423,0 10px 24px #0008}
.card-top{height:20px;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 3px 4px;color:#19243a;font-size:9px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;flex-shrink:0}
.card-rank{font-size:10px;letter-spacing:2px}.card-picture{min-height:0;flex:1;position:relative;overflow:hidden;border:2px solid #1a273c;border-bottom:0;border-radius:3px 3px 0 0;background:#203349}
.card-picture img,.card-picture svg,.offer-art img,.offer-art svg{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 34%}
.card-name{font:800 clamp(18px,1.6vw,25px)/.95 Barlow,sans-serif;padding:9px 7px 8px;background:#18273d;border-top:1px solid #a8b5ca;color:#fbefcf;min-height:42px;display:flex;align-items:center;flex-shrink:0;letter-spacing:.1px}
.card-stats{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:7px 5px 4px;font-weight:800;font-size:12px;color:#16253b;font-variant-numeric:tabular-nums;flex-shrink:0}.card-time{display:flex;align-items:center;gap:3px}.card-time svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}
.card-progress{position:absolute;inset:auto 5px 0;height:3px;overflow:hidden}.card-progress i{display:block;height:100%;background:#fff6cc;transform:scaleX(0);transform-origin:left}
.card-spark{position:absolute;left:50%;top:18%;pointer-events:none;font:800 30px/1 Barlow;color:#fff4bd;text-shadow:0 2px 0 #17273e;opacity:0;transform:translate(-50%,10px)}
.crew-card.activated .card-spark{animation:output .65s var(--ease) both}.crew-card.activated .card-picture{filter:brightness(1.18)}
@keyframes output{15%{opacity:1}100%{opacity:0;transform:translate(-50%,-20px)}}
.empty-slot{aspect-ratio:.744;background:#101a3266;border:1px dashed #91a2bc99;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;min-width:0;color:#c4cede;position:relative}
.empty-slot:before,.empty-slot:after{content:"";position:absolute;width:14px;height:14px;border:2px solid #a9b7cb99}.empty-slot:before{left:-1px;top:-1px;border-right:0;border-bottom:0}.empty-slot:after{right:-1px;bottom:-1px;border-left:0;border-top:0}
.empty-slot svg{width:32px;stroke:currentColor;fill:none;stroke-width:1}.empty-slot strong{font:800 22px/1 Barlow;text-transform:uppercase}.empty-slot small{font-size:10px;color:var(--muted)}
.field-caption{display:flex;align-items:center;justify-content:center;gap:13px;font-size:11px;color:#c0cbe0;margin-top:19px;text-align:center}.line{height:1px;background:#8796b950;flex:1}
.side-note{align-self:center;width:146px;margin:0 0 0 4px;background:#d9ccaa;color:#263653;padding:29px 15px 16px;transform:rotate(5deg);box-shadow:3px 6px 0 #0d193770;position:relative;font-family:Bricolage;clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%)}.note-pin{position:absolute;width:38px;height:13px;background:#879bacd9;top:0;left:52px;transform:rotate(-7deg)}.side-note p{font-weight:800;font-size:17px;line-height:1.15;letter-spacing:-.5px}.note-scribble{display:block;font-style:italic;font-size:13px;line-height:1.2;margin:10px 0 3px}.side-note svg{width:55px}
.command-dock{display:flex;justify-content:space-between;align-items:center;gap:30px;max-width:1130px;width:100%;margin:4px auto 0;border-top:1px solid #a0abc25c;padding:19px 0 15px}
.shop-button{display:flex;align-items:center;gap:14px;padding:6px 10px 6px 0;background:transparent;text-align:left}.shop-button>svg{width:33px;fill:none;stroke:var(--paper);stroke-width:1.5}.shop-button>span{font-size:18px;font-weight:700}.shop-button small{font-size:11px;color:var(--muted);display:block;font-weight:400;margin-top:4px}.shop-button .keycap{border:1px solid #71809c;font:500 12px Bricolage;padding:4px 6px;margin-left:10px;color:var(--muted)}
.start-group{display:flex;align-items:center;gap:12px}.speed-button{font-size:16px;font-weight:700;min-width:48px;min-height:48px;background:#14233be6;border:1px solid #74829c;box-shadow:0 3px 0 #070f21}
.start-button{background:var(--gold);color:#18243a;border:1px solid #ffe2a1;box-shadow:0 5px 0 #9f692d,0 6px 0 #121c32;padding:14px 22px;min-height:60px;min-width:218px;display:flex;align-items:center;justify-content:space-between;gap:26px;font:800 27px/1 Barlow;letter-spacing:.6px;clip-path:polygon(7px 0,calc(100% - 7px) 0,100% 7px,100% 100%,0 100%,0 7px);transition:transform 120ms var(--ease),background 120ms var(--ease)}
.start-button svg{width:20px;height:20px;fill:currentColor;flex-shrink:0}.start-button:active{transform:translateY(3px)}
.run-note{display:flex;justify-content:center;gap:14px;font-size:9px;line-height:1.5;color:#aebbd1;margin:6px 0 0}.run-note>span:first-child{font-weight:700;letter-spacing:1px}
.toast{position:fixed;bottom:120px;left:50%;transform:translateX(-50%);background:var(--paper);color:var(--ink);box-shadow:0 4px 16px #0005;padding:12px 18px;z-index:8;font-size:13px;max-width:calc(100vw - 32px);text-align:center}
dialog{color:var(--paper);background:#14223a;border:1px solid #70829c;padding:30px;box-shadow:0 20px 80px #000a;max-height:calc(100svh - 32px);max-width:calc(100vw - 32px);overflow:auto;overscroll-behavior:contain}
dialog::backdrop{background:#060e23c9;backdrop-filter:blur(4px)}
dialog[open]{animation:arrive 200ms var(--ease) both}@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.dialog-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.dialog-top h2{font:800 49px/.98 Barlow;letter-spacing:-.7px}.dialog-kicker{color:var(--gold);font-size:10px;letter-spacing:1.5px;margin:0 0 8px;font-weight:700}
.close-button{font:300 30px/1 Bricolage;width:42px;height:42px;flex-shrink:0;border:1px solid #70829c;background:#1e304c}
.shop-dialog{width:820px}.market-intro{font-size:13px;color:var(--muted);margin:16px 0 25px;line-height:1.5}.offers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.offer{background:#e3d3b5;color:#17283f;padding:6px 6px 10px;border:1px solid #f7e6bc;box-shadow:0 4px 0 #080f20}.offer-art{height:150px;overflow:hidden;border:2px solid #23334c}.offer h3{font:800 26px/1 Barlow;margin:10px 6px 6px}.offer p{font-size:12px;line-height:1.45;min-height:52px;margin:0 6px 12px}.buy-button{width:calc(100% - 12px);margin:0 6px;padding:11px 7px;background:#21344b;color:var(--paper);font-weight:700;font-size:13px;box-shadow:0 3px 0 #a5977c}.market-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:26px}.plain-button{border:1px solid #8998ae;padding:12px 15px;background:#223650;font-size:13px;font-weight:700}.plain-button span{color:var(--muted);font-weight:400}.shop-wallet{font-size:13px;color:var(--gold)}.market-note{font-size:11px;color:var(--muted);margin-top:18px;line-height:1.5}
.help-dialog{width:530px}.help-dialog ol{padding-left:25px;margin:28px 0 24px}.help-dialog li{padding-left:7px;margin-bottom:19px}.help-dialog li::marker{color:var(--gold);font-weight:800}.help-dialog li strong{font-size:16px}.help-dialog li p{color:var(--muted);font-size:13px;line-height:1.6;margin-top:5px}.help-note{font-size:12px;color:var(--muted);line-height:1.6;border-top:1px solid #74839d55;padding-top:17px;margin-bottom:18px}
.report-dialog{padding:0;border:0;background:transparent;box-shadow:none;width:430px;overflow:auto;max-height:calc(100svh - 32px)}
.report-receipt{background:#f3e7ca;color:#24334a;padding:30px 34px 23px;position:relative;clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),98% 100%,96% calc(100% - 8px),94% 100%,92% calc(100% - 8px),90% 100%,88% calc(100% - 8px),86% 100%,84% calc(100% - 8px),82% 100%,80% calc(100% - 8px),78% 100%,76% calc(100% - 8px),74% 100%,72% calc(100% - 8px),70% 100%,68% calc(100% - 8px),66% 100%,64% calc(100% - 8px),62% 100%,60% calc(100% - 8px),58% 100%,56% calc(100% - 8px),54% 100%,52% calc(100% - 8px),50% 100%,48% calc(100% - 8px),46% 100%,44% calc(100% - 8px),42% 100%,40% calc(100% - 8px),38% 100%,36% calc(100% - 8px),34% 100%,32% calc(100% - 8px),30% 100%,28% calc(100% - 8px),26% 100%,24% calc(100% - 8px),22% 100%,20% calc(100% - 8px),18% 100%,16% calc(100% - 8px),14% 100%,12% calc(100% - 8px),10% 100%,8% calc(100% - 8px),6% 100%,4% calc(100% - 8px),2% 100%,0 calc(100% - 8px))}
.receipt-brand{font-size:9px;letter-spacing:1.5px;display:block;border-bottom:1px dashed #8e9a9e;padding-bottom:18px;margin-bottom:24px}.result-stamp{display:inline-block;border:2px solid #477265;color:#335f51;font-weight:800;font-size:12px;letter-spacing:1px;padding:6px 8px;transform:rotate(-4deg)}.result-stamp.missed{color:#9a3d2f;border-color:#9a3d2f}.report-receipt h2{font:800 55px/.95 Barlow;margin:23px 0 15px}.report-total{display:flex;gap:15px;align-items:center;padding:0 0 19px}.report-total strong{font:800 74px/1 Barlow;letter-spacing:-2px}.report-total span{font-size:13px;line-height:1.4;color:#4d5a63}.receipt-line{display:flex;justify-content:space-between;font-size:13px;padding:13px 0;border-top:1px dashed #8e9a9e;border-bottom:1px dashed #8e9a9e}.incident{padding:21px 0 13px}.incident>span{font-size:9px;font-weight:700;letter-spacing:1.5px;color:#56606a}.incident h3{font-size:18px;line-height:1.2;margin-top:7px}.incident p{font-size:13px;line-height:1.5;margin-top:8px}.report-note{font-size:11px;line-height:1.5;color:#58606a;margin-bottom:20px}.report-receipt .start-button{width:100%;min-height:52px;font-size:22px;box-shadow:0 4px 0 #b2a58a;background:#223750;color:var(--paper);border-color:#223750;padding:13px 15px}.receipt-foot{display:block;text-align:center;margin-top:17px;font-size:8px;letter-spacing:1px;color:#60676c}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(hover:hover) and (pointer:fine){.crew-card:hover{transform:translateY(-5px);box-shadow:0 7px 0 #0a1423,0 12px 22px #0007}.empty-slot:hover{background:#223b5e99;color:var(--paper)}.shop-button:hover{color:var(--gold)}.start-button:hover{background:#ffd178}.icon-button:hover,.plain-button:hover,.speed-button:hover{background:#354969}}
@media(min-width:1100px) and (max-height:820px){.game{padding-top:16px}.hud{min-height:100px}.play-space{grid-template-columns:225px minmax(0,520px) 150px;padding-top:16px;gap:32px}.board{gap:16px 20px}.field-heading{margin-bottom:12px}.field-caption{margin-top:14px}.card-name{font-size:22px;min-height:37px;padding-top:6px;padding-bottom:6px}.card-stats{font-size:11px;padding-top:5px}.command-dock{padding-top:14px}.start-button{min-height:55px}}
@media(max-width:1190px){.game{padding-left:30px;padding-right:30px}.hud{grid-template-columns:180px minmax(280px,440px) 1fr;gap:25px}.play-space{grid-template-columns:205px minmax(0,590px);gap:35px}.side-note{display:none}.hud-right{gap:12px}.utility{grid-column:1;grid-row:auto}.warnings{display:none}.currency>span{display:none}}
@media(max-width:900px){.game{padding:24px 28px 16px}.hud{grid-template-columns:140px minmax(250px,1fr) 100px;gap:22px;min-height:100px}.wordmark{font-size:24px;width:145px}.wordmark>span{font-size:55px}.target{padding:11px 16px}.hud-right{gap:8px}.utility{gap:5px}.icon-button{width:44px;height:44px}.currency{gap:6px}.currency strong{font-size:28px}.currency svg{width:22px}.play-space{grid-template-columns:1fr;gap:18px;padding:25px 0 10px}.field{grid-row:1;max-width:560px}.inspector{grid-row:2;width:100%;max-width:560px;justify-self:center;margin:0;padding:14px 0 0;min-height:103px;border:0;border-top:1px solid #8291aa70;display:grid;grid-template-columns:170px 1fr;gap:6px 20px}.inspector-heading{grid-column:1;grid-row:1;font-size:9px}.inspector h2{grid-column:1;grid-row:2/4;font-size:29px;margin:0;max-width:none}.ability-line{grid-column:2;grid-row:1;padding:0;margin:0;border:0;justify-content:flex-start;gap:13px}.ability-line strong{font-size:14px}.ability-line span{font-size:11px}#inspect-rule{grid-column:2;grid-row:2/4;font-size:12px;line-height:1.5}.inspector blockquote,.neighbours{display:none}.card-name{font-size:24px}.command-dock{margin-top:8px}.shop-button small{font-size:10px}.keycap{display:none}.run-note{font-size:9px}}
@media(max-width:600px){body{background-position:50% 50%}.game{padding:16px 16px 12px;min-height:100svh}.hud{grid-template-columns:1fr 1fr;gap:16px;min-height:0}.wordmark{font-size:20px;width:125px}.wordmark>span{font-size:45px;letter-spacing:-1px}.hud-right{display:flex;gap:13px;grid-row:1;grid-column:2;justify-self:end}.currency strong{font-size:30px}.utility{gap:5px}.icon-button{width:44px;height:44px;font-size:18px}.icon-button svg{width:18px}.target{grid-column:1/-1;grid-row:2;padding:10px 15px 12px;clip-path:polygon(7px 0,calc(100% - 7px) 0,100% 7px,100% 100%,0 100%,0 7px)}.target-top{font-size:10px}.target-numbers{margin:5px 0 8px}.target-numbers>strong{font-size:35px;min-width:34px}.target-numbers>span{font-size:12px}.target-numbers .clock{font-size:24px}.target-track{height:6px}
.play-space{padding:19px 0 9px;gap:15px;flex:0}.field-heading{margin-bottom:12px;font-size:9px;letter-spacing:1.2px}.field-heading>span+span{font-size:10px}.board{gap:13px 10px}.crew-card{padding:3px;border-radius:6px;aspect-ratio:.72}.card-top{height:15px;font-size:7px;letter-spacing:.2px;padding:0 2px 3px}.card-rank{font-size:8px;letter-spacing:1px}.card-picture{border-width:1px}.card-name{font-size:17px;min-height:34px;padding:6px 4px 5px;line-height:.95}.card-stats{font-size:9px;padding:5px 2px 3px;gap:2px}.card-time{gap:2px}.card-time svg{width:9px;height:9px}.crew-card[aria-pressed=true]{outline-offset:2px;outline-width:2px}.empty-slot{border-radius:5px;gap:7px;aspect-ratio:.72}.empty-slot strong{font-size:17px}.empty-slot small{font-size:8px}.empty-slot svg{width:24px}.field-caption{font-size:9px;gap:9px;margin-top:13px}
.inspector{grid-template-columns:115px 1fr;gap:6px 16px;padding-top:12px;min-height:99px}.inspector h2{font-size:26px;line-height:.98}.inspector-heading{font-size:8px;letter-spacing:.2px;gap:5px}.selection-mark{height:5px;width:5px}#inspect-position{display:none}.ability-line{gap:8px;flex-wrap:wrap;row-gap:3px}.ability-line strong{font-size:12px}.ability-line span{font-size:10px}#inspect-rule{font-size:11px;line-height:1.45}.command-dock{gap:15px;margin-top:auto;padding:14px 0 10px}.shop-button{gap:8px;padding:6px 0}.shop-button>svg{width:24px}.shop-button>span{font-size:13px}.shop-button small{display:none}.start-group{gap:7px}.speed-button{font-size:14px;min-width:36px;min-height:44px}.start-button{min-width:144px;min-height:48px;padding:11px 13px;gap:12px;font-size:22px}.start-button svg{width:15px;height:15px}.run-note{gap:4px;flex-direction:column;align-items:center;font-size:8px;line-height:1.3;margin-top:3px}.run-note>span:first-child{font-size:8px}
dialog{padding:22px;max-width:calc(100vw - 24px);max-height:calc(100svh - 24px)}.dialog-top h2{font-size:37px}.close-button{width:36px;height:36px}.dialog-kicker{font-size:8px}.market-intro{font-size:12px;margin:13px 0 20px}.offers{grid-template-columns:1fr;gap:13px}.offer{display:grid;grid-template-columns:87px 1fr;column-gap:12px;padding:6px}.offer-art{height:124px;grid-row:1/4}.offer h3{font-size:25px;margin:7px 0 4px}.offer p{min-height:0;margin:0 0 6px;font-size:11px}.buy-button{width:100%;margin:0;padding:9px 6px;font-size:12px}.market-bottom{margin-top:20px;gap:10px}.plain-button{padding:11px;font-size:12px}.shop-wallet{font-size:11px}.market-note{font-size:10px}.help-dialog li p{font-size:12px}.help-dialog ol{margin-top:23px}.report-dialog{padding:0;overflow:auto}.report-receipt{padding:25px 27px 22px}.report-receipt h2{font-size:48px}.report-total strong{font-size:64px}.report-receipt .start-button{font-size:21px}.toast{bottom:95px}}
@media(max-width:360px){.game{padding-left:12px;padding-right:12px}.card-name{font-size:15px}.card-stats{font-size:8px}.start-button{min-width:128px}.shop-button>span{font-size:12px}.shop-button>svg{width:21px}.command-dock{gap:9px}.inspector{grid-template-columns:105px 1fr;gap:5px 12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.crew-card:hover{transform:none}.crew-card.activated .card-spark{opacity:1;transform:translate(-50%,0)}}
html.keyboard *{animation:none!important;transition:none!important}

.target-top .warnings{display:flex;gap:5px}.target-top .warnings span{display:none}.target-top .warnings i{width:8px;height:8px}.hud-right{display:flex;gap:20px}
@media(max-width:600px){.hud-right{gap:12px}}
@media(max-width:360px){.wordmark{font-size:18px;width:100px}.wordmark>span{font-size:39px}.hud{gap:12px}.hud-right{gap:8px}.currency{gap:4px}}
@media(min-width:601px) and (max-width:1190px){.hud-right{flex-direction:column;gap:8px}}
/* Reserve equal title space so every illustrated window lines up. */
.card-name{height:60px;min-height:60px}
@media(min-width:1100px) and (max-height:820px){.card-name{height:54px;min-height:54px}}
@media(max-width:900px){.card-name{height:64px;min-height:64px}}
@media(max-width:600px){.card-name{height:44px;min-height:44px}.crew-card,.empty-slot{aspect-ratio:.68}}
@media(max-width:360px){.card-name{height:42px;min-height:42px}}

/* The opponent owns the right side of the table; mobile moves the same encounter above the crew. */
.play-space{grid-template-columns:205px minmax(0,560px) 250px;gap:30px}
.enemy{position:relative;align-self:center;text-align:center;padding:15px 0 5px;min-width:0}
.enemy-heading{display:flex;justify-content:center;gap:12px;font-size:9px;letter-spacing:1.6px;color:#e2b4ac;font-weight:700}
.enemy h2{font:800 37px/.96 Barlow;margin:9px 0 5px;color:#f6dfbc;letter-spacing:-.4px}
.enemy-shift{display:none}
.enemy-portrait{display:block;background:transparent;width:100%;height:258px;padding:0;position:relative;overflow:visible}
.enemy-portrait:disabled{opacity:1;cursor:default}
.enemy-portrait img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 5px #080e2480);transition:filter 180ms var(--ease),transform 180ms var(--ease);pointer-events:none}
.enemy-quote{position:relative;background:#e4d4b7;color:#28364c;border:1px solid #f0e1c4;max-width:225px;margin:9px auto 18px;padding:10px 12px;font-size:13px;font-weight:600;line-height:1.3;min-height:39px;box-shadow:0 3px 0 #080e2440}
.enemy-quote:before{content:"";position:absolute;left:50%;top:-8px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #e4d4b7}
.enemy-count{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:#dfd4cb;text-align:left;font-variant-numeric:tabular-nums;gap:8px}
.enemy-count strong{font:800 29px/1 Barlow;color:#ffddce;margin-right:5px;display:inline-block;min-width:42px}
.enemy-time{font:800 22px/1 Barlow;color:#f7e8c8;display:none}
.enemy-track{height:11px;background:#18233a;border:1px solid #bc766c;padding:2px;margin:8px 0 9px;overflow:hidden}
.enemy-track i{display:block;background:#d98976;height:100%;transform-origin:left;transform:scaleX(1)}
.enemy-foot{display:flex;gap:8px;justify-content:space-between;align-items:center;color:#d5c7c8;font-size:10px;line-height:1.5;text-align:left;min-height:30px}
.enemy-warnings{display:none;letter-spacing:3px;color:#dfd2cf;white-space:nowrap;font-size:14px}
.enemy[data-mood=nervous] .enemy-portrait img{filter:drop-shadow(0 12px 5px #080e2480) saturate(.8)}
.enemy[data-mood=defeated] .enemy-portrait img{filter:drop-shadow(0 8px 3px #080e2460) saturate(.25);transform:translateY(5px) rotate(3deg)}
.enemy[data-mood=defeated] .enemy-count strong,.enemy[data-mood=defeated] #demand-label{color:#d7dca6}
.enemy[data-mood=defeated] .enemy-track{border-color:#a9b47e}
.enemy-lore{font-size:17px;line-height:1.5;margin:24px 0;color:#eedfc8}
.enemy-contract{display:grid;gap:14px;margin:0 0 24px}.enemy-contract>span{display:flex;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted)}.enemy-contract strong{color:var(--paper)}
@media(min-width:1100px) and (max-height:820px){.play-space{grid-template-columns:195px minmax(0,510px) 220px;gap:25px}.enemy-portrait{height:215px}.enemy h2{font-size:33px}.enemy-quote{font-size:12px;padding:8px 10px}}
@media(max-width:1190px) and (min-width:901px){.game{padding-left:25px;padding-right:25px}.play-space{grid-template-columns:165px minmax(0,490px) 190px;gap:20px}.inspector h2{font-size:34px}.inspector{padding-left:12px}#inspect-rule{font-size:12px}.enemy h2{font-size:30px}.enemy-portrait{height:200px}.enemy-quote{font-size:12px;padding:9px}.enemy-foot{font-size:9px}}
@media(max-width:900px){
  .hud{grid-template-columns:1fr 1fr;min-height:80px}.target{display:none}.hud-right{flex-direction:row;gap:16px;grid-column:2;grid-row:1}
  .play-space{grid-template-columns:1fr;padding-top:13px;gap:18px}
  .enemy{grid-row:1;display:grid;grid-template-columns:132px 1fr;grid-template-rows:auto auto auto auto;width:100%;max-width:560px;justify-self:center;padding:0 0 14px;text-align:left;border-bottom:1px solid #a19aa270;column-gap:20px;align-items:center}
  .enemy-heading{grid-column:2;grid-row:1;justify-content:space-between;font-size:8px;letter-spacing:1px}.enemy-shift{display:inline;color:#cad3e4;letter-spacing:.5px}
  .enemy h2{grid-column:2;grid-row:2;margin:5px 0;font-size:34px}
  .enemy-portrait{grid-column:1;grid-row:1/5;height:146px}
  .enemy-quote{grid-column:2;grid-row:3;background:none;border:0;box-shadow:none;color:#d6c4c7;max-width:none;min-height:0;margin:2px 0 9px;padding:0;font-size:11px;font-style:italic;font-weight:400}.enemy-quote:before{display:none}
  .enemy-demand{grid-column:2;grid-row:4}.enemy-count{font-size:11px}.enemy-count strong{font-size:24px;min-width:32px}.enemy-time{display:inline;font-size:20px}.enemy-track{height:9px;margin:6px 0}.enemy-foot{font-size:9px;min-height:18px}.enemy-warnings{display:inline}
  .field{grid-row:2;max-width:510px}.inspector{grid-row:3;max-width:510px}.field-heading{margin-bottom:13px}.board{gap:18px}.card-name{height:54px;min-height:54px;font-size:22px}
}
@media(max-width:600px){
  .game{padding-top:12px}.hud{min-height:58px;gap:10px}.hud-right{gap:12px}.play-space{gap:14px;padding-top:13px}.enemy{grid-template-columns:90px 1fr;column-gap:10px;padding-bottom:12px}.enemy-portrait{height:122px}.enemy-heading{font-size:7px;letter-spacing:.7px}.enemy-shift{font-size:7px}
  .enemy h2{font-size:28px;margin:3px 0}.enemy-quote{font-size:10px;margin:0 0 8px}.enemy-count{font-size:10px}.enemy-count strong{font-size:23px;min-width:31px}.enemy-time{font-size:19px}.enemy-track{height:8px;margin:5px 0}.enemy-foot{font-size:8px;min-height:18px;gap:6px}.enemy-warnings{font-size:12px;letter-spacing:1px}
  .field-heading{margin-bottom:11px}.board{gap:13px 10px}.card-name{height:44px;min-height:44px;font-size:17px}.crew-card,.empty-slot{aspect-ratio:.72}.field-caption{margin-top:12px}.inspector{min-height:91px}.command-dock{padding-top:11px}.run-note{font-size:7px}
}
@media(max-width:360px){.enemy{grid-template-columns:75px 1fr}.enemy h2{font-size:25px}.enemy-portrait{height:112px}.enemy-heading{font-size:6px}.enemy-shift{font-size:6px}.enemy-count{font-size:9px}.enemy-foot{font-size:7px}.card-name{font-size:15px;height:40px;min-height:40px}.hud-right{gap:8px}}
@media(prefers-reduced-motion:reduce){.enemy-portrait img{transition:none!important;transform:none!important}}
@media(min-width:601px) and (max-width:900px){.game{padding-top:16px;padding-bottom:12px}.hud{min-height:68px}.play-space{gap:12px}.enemy-portrait{height:132px}.enemy h2{font-size:31px}.enemy-quote{margin-bottom:6px}.card-name{font-size:20px;height:56px;min-height:56px}.command-dock{padding-top:14px}}

.boss-picker-button{width:66px;font-size:12px;letter-spacing:.2px}
.enemy-track{border-color:var(--boss-colour,#d98976)}.enemy-track i{background:var(--boss-colour,#d98976)}
.enemy h2{min-height:36px;font-size:34px}.enemy-count strong{min-width:58px}
.roster-dialog{width:1020px;padding:30px}
.roster-intro{font-size:13px;color:var(--muted);line-height:1.6;margin:16px 0 23px}
.roster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.boss-option{position:relative;display:flex;flex-direction:column;align-items:stretch;min-width:0;padding:13px;text-align:left;background:#1c2c43;border:1px solid #586c86;box-shadow:0 4px 0 #0b1529}
.boss-option[aria-pressed=true]{border-color:var(--gold);outline:1px solid var(--gold);outline-offset:3px}
.roster-shift{font-size:9px;letter-spacing:1px;color:var(--boss-colour);font-weight:700;min-height:12px}
.roster-art{height:172px;display:block;margin:12px -3px 8px}.roster-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 4px #0c142b80)}
.boss-option>strong{font:800 28px/1 Barlow;min-height:56px;display:flex;align-items:center;letter-spacing:-.3px}
.roster-role{font-size:11px;color:var(--muted);line-height:1.45;min-height:34px;margin:6px 0 14px}
.roster-demand{border-top:1px solid #60718b66;padding-top:12px;font-size:11px;color:#d6dce7}.roster-demand b{font:800 27px/1 Barlow;color:var(--boss-colour);margin-right:3px}
.roster-enter{display:flex;justify-content:space-between;align-items:center;font-size:10px;margin-top:15px;color:var(--paper);min-height:16px}
.roster-enter>span{font-size:18px}.roster-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:25px;padding-top:20px;border-top:1px solid #67779166}.roster-footer p{font-size:11px;line-height:1.6;color:var(--muted)}
.report-boss{font:800 21px/1 Barlow;margin:-8px 0 18px}.report-total strong{font-size:67px}.report-total b{font-weight:400}
@media(hover:hover) and (pointer:fine){.boss-option:hover{background:#273b55;border-color:var(--boss-colour)}}
@media(max-width:900px){.roster-dialog{width:680px}.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.roster-art{height:135px}.boss-option>strong{font-size:27px;min-height:30px}.roster-role{min-height:16px;margin-bottom:10px}.roster-enter{margin-top:10px}.roster-dialog .dialog-top h2{font-size:43px}}
@media(max-width:600px){.enemy h2{font-size:27px;min-height:0}.enemy-count strong{min-width:45px}.roster-dialog{padding:20px 16px}.roster-dialog .dialog-top h2{font-size:35px}.roster-intro{font-size:11px;margin:12px 0 18px}.roster-grid{gap:12px}.boss-option{padding:10px}.roster-art{height:112px;margin:9px 0 5px}.boss-option>strong{font-size:24px;min-height:48px}.roster-shift{font-size:7px;letter-spacing:.6px}.roster-role{font-size:9px;min-height:29px;margin:4px 0 8px}.roster-demand{font-size:9px;padding-top:8px}.roster-demand b{font-size:24px}.roster-enter{font-size:9px;margin-top:9px}.roster-footer{gap:10px;margin-top:18px;padding-top:16px}.roster-footer p{font-size:9px}.roster-footer .plain-button{font-size:11px;white-space:nowrap}.report-total strong{font-size:59px}.report-receipt .start-button{font-size:20px}.report-boss{font-size:20px}}
@media(max-width:360px){.boss-picker-button{width:58px;font-size:11px}.enemy h2{font-size:24px}.roster-art{height:95px}.boss-option>strong{font-size:21px;min-height:42px}.roster-role{font-size:8px}.roster-dialog{padding:17px 13px}}
@media(max-width:600px){.roster-dialog{padding:16px}.roster-art{height:100px}.roster-intro{margin:10px 0 14px}.roster-role{min-height:26px}.roster-footer{margin-top:14px;padding-top:12px}}
@media(min-width:601px) and (max-width:900px){.enemy h2{font-size:31px;min-height:0}}

/* The shift sheet is a route through the night, with larger framed boss portraits. */
.roster-dialog{width:1130px;padding:26px;overflow:hidden}
.roster-dialog[open]{display:flex;flex-direction:column}
.roster-dialog .dialog-top,.roster-intro,.roster-footer{flex-shrink:0}
.roster-dialog .dialog-top h2{font-size:46px}
.roster-intro{margin:12px 0 17px}
.roster-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;overflow:auto;min-height:0;padding:5px;scrollbar-width:thin;scrollbar-color:#71829b #14223a}
.boss-option{padding:11px;background:#1b2b40;border-color:#52637a;transition:background 160ms var(--ease),border-color 160ms var(--ease)}
.boss-option[data-kind=boss]{background:#302e3c;border-color:#ba9377;box-shadow:inset 0 2px #c39b79,0 4px 0 #0b1529}
.roster-shift{display:flex;justify-content:space-between;gap:5px;align-items:center;font-size:8px;letter-spacing:.6px;min-height:14px}
.roster-badge{font-size:8px;letter-spacing:.5px;text-transform:uppercase}
.boss-option[data-kind=boss] .roster-badge{background:#e4c197;color:#302c3c;padding:3px 5px}
.roster-art{height:124px;margin:6px 0}
.boss-option[data-kind=crook] .roster-art img{padding:9px}
.boss-option>strong{font-size:26px;min-height:42px;line-height:.96}
.roster-role{min-height:24px;font-size:10px;margin:5px 0 7px}
.roster-demand{padding-top:8px;font-size:10px}
.roster-demand b{font-size:24px}
.roster-enter{display:none}
.roster-footer{margin-top:15px;padding-top:13px}
.enemy[data-kind=crook] .enemy-portrait img{padding:22px}
.enemy[data-kind=boss]:before{content:"";position:absolute;inset:0 -12px -4px;border:1px solid #bd9a6c66;border-top:2px solid #d7b27b;background:linear-gradient(180deg,#aa77541f,transparent 70%);pointer-events:none}
.enemy[data-kind=boss] .enemy-heading{color:#edc589}
.enemy[data-kind=crook] .enemy-heading{color:#b4cbba}
.boss-picker-button{width:66px;font-size:12px}
@media(max-width:1100px) and (min-width:901px){
 .roster-grid{gap:12px}.roster-dialog{padding:22px}.roster-art{height:95px}.boss-option>strong{font-size:24px}.roster-role{font-size:9px}
}
@media(max-width:900px){
 .roster-dialog{width:710px}
 .roster-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
 .enemy[data-kind=crook] .enemy-portrait img{padding:10px}
 .enemy[data-kind=boss]:before{inset:-6px -9px 3px;border-bottom:0}
 .roster-art{height:100px}
 .boss-option>strong{font-size:26px;min-height:49px}
}
@media(max-width:600px){
 .roster-dialog{padding:17px 13px;max-height:calc(100svh - 24px)}
 .roster-dialog .dialog-top h2{font-size:34px;max-width:240px}
 .roster-dialog .dialog-kicker{font-size:7px;letter-spacing:1px}
 .roster-dialog .close-button{width:44px;height:44px}
 .roster-intro{font-size:11px;line-height:1.5;margin:12px 0}
 .roster-grid{grid-template-columns:1fr;gap:10px;padding:5px}
 .boss-option{display:grid;grid-template-columns:77px minmax(0,1fr) 48px;grid-template-rows:auto auto auto;column-gap:12px;padding:10px}
 .roster-art{grid-column:1;grid-row:1/4;width:77px;height:92px;margin:0}
 .boss-option[data-kind=crook] .roster-art img{padding:5px}
 .roster-shift{grid-column:2;grid-row:1;font-size:8px;align-self:center;justify-content:flex-start;gap:8px;min-height:18px}
 .roster-badge{font-size:7px}
 .boss-option>strong{grid-column:2;grid-row:2;font-size:25px;min-height:0;align-self:center}
 .roster-role{grid-column:2;grid-row:3;font-size:10px;min-height:0;margin:4px 0 0;line-height:1.3}
 .roster-demand{grid-column:3;grid-row:1/3;align-self:center;text-align:right;border:0;padding:0;font-size:8px}
 .roster-demand b{font-size:25px;display:block;margin:0 0 4px}
 .roster-enter{display:flex;grid-column:3;grid-row:3;font-size:0;margin:0;justify-content:flex-end}
 .roster-enter>span{font-size:21px}
 .boss-option[aria-pressed=true] .roster-enter>span{color:var(--gold)}
 .roster-footer{gap:10px;padding-top:12px;margin-top:10px}
 .roster-footer p{font-size:9px;line-height:1.45}
 .roster-footer .plain-button{min-height:44px}
 .enemy[data-kind=crook] .enemy-portrait img{padding:6px}
 .enemy[data-kind=boss]:before{inset:-5px -6px 3px}
}
@media(max-width:360px){
 .boss-option{grid-template-columns:65px minmax(0,1fr) 44px;column-gap:8px;padding:9px}
 .roster-art{width:65px;height:87px}.boss-option>strong{font-size:22px}.roster-role{font-size:9px}
 .roster-dialog .dialog-top h2{font-size:30px}
}
@media(prefers-reduced-motion:reduce){.boss-option{transition:none}}

/* A reserved two-line bubble keeps the table steady as the opponent talks. */
.enemy-quote{display:flex;align-items:center;justify-content:center;min-height:60px;padding:9px 12px;border-radius:9px 11px 10px 4px;isolation:isolate;pointer-events:none;transform-origin:50% 0;background:#f1e2c5;border-color:#fff0d2;color:#293449;box-shadow:0 3px 0 #080e2455;transition:background 180ms var(--ease)}
.enemy-quote:before{border-bottom-color:#f1e2c5;transition:border-color 180ms var(--ease)}
.enemy-quote[data-tone=desperate]{background:#f4d8b9}.enemy-quote[data-tone=desperate]:before{border-bottom-color:#f4d8b9}
.enemy-quote[data-tone=defeated]{background:#dfe4c6}.enemy-quote[data-tone=defeated]:before{border-bottom-color:#dfe4c6}
#enemy-words{display:block;text-wrap:pretty}
.report-taunt{font-size:13px;line-height:1.4;color:#4d5a63;margin:-5px 0 17px;font-style:italic}
@media(max-width:900px){
 .enemy-quote{justify-content:flex-start;min-height:42px;margin:3px 0 9px;padding:7px 10px;max-width:320px;font-size:12px;font-style:normal;font-weight:600;border:1px solid #fff0d2;border-radius:8px 10px 9px 3px;transform-origin:0 50%}
 .enemy-quote:before{display:block;left:-7px;top:12px;border:0;width:11px;height:11px;transform:rotate(45deg);background:inherit;z-index:-1}
}
@media(max-width:600px){
 .enemy-quote{min-height:40px;font-size:11px;line-height:1.25;margin:2px 0 7px;padding:5px 9px}
 .enemy-quote:before{top:11px;width:9px;height:9px;left:-5px}
 .enemy-portrait{height:135px}
 .enemy{padding-bottom:9px}.play-space{gap:10px}
 .report-taunt{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.enemy-quote,.enemy-quote:before{transition:none}}

.game{min-height:calc(100svh - 54px)}

.resources{font-variant-numeric:tabular-nums;font-size:10px;color:var(--muted)}
.card-time{font-variant-numeric:tabular-nums}
.report-opponent{display:flex;align-items:center;gap:18px;margin:-15px 0 20px}
.report-opponent img{width:116px;height:122px;object-fit:contain;flex:none}
.report-opponent .report-boss{margin:0 0 7px;font-size:27px;line-height:1}
.report-opponent span{font-size:10px;font-weight:800;letter-spacing:1.5px;color:#335f51}
.report-opponent[data-result="clear"] img{filter:saturate(.3);transform:rotate(-7deg)}
.report-opponent[data-result="miss"] span{color:#9a3d2f}
@media(max-width:400px){.report-opponent{gap:12px}.report-opponent img{width:94px;height:104px}.report-opponent .report-boss{font-size:24px}}

@media(hover:hover) and (pointer:fine){.report-receipt .start-button:hover{background:#304e70;color:#fff1d2}}

/* Keep buying decisions readable, with identical values on offers and owned cards. */
.card-output{display:grid;gap:2px;min-width:0}.card-output>span{white-space:nowrap}
.card-stats{min-height:39px}.card-time{flex:none}.card-rank{letter-spacing:.5px}
.card-spark{max-width:calc(100% - 12px);font-size:clamp(16px,2vw,27px);text-align:center}
.ability-line{gap:10px;align-items:flex-start}.ability-line strong{line-height:1.35}.ability-line>span{white-space:nowrap;padding-top:3px}
.inspect-target{margin-top:12px;padding:9px 0 9px 10px;border-left:2px solid #d5ad5e;color:#f2d694;font-size:12px;line-height:1.5}
.inspect-note{margin-top:10px;font-size:11px;line-height:1.5;color:#bac6d9}
.mobile-resources{display:none}
.shop-dialog{width:940px}
.shop-dialog .dialog-top{position:sticky;top:-30px;padding:6px 0 10px;background:#14223a;z-index:2}
.shop-dialog .market-intro{margin:8px 0 18px;max-width:620px}
.shop-dialog .market-bottom{margin:0;gap:12px}
.shop-dialog .market-note{margin:12px 0 20px;max-width:720px}
.offer{display:flex;flex-direction:column;min-width:0;padding:8px 8px 10px}
.offer-heading{margin:11px 6px 0}.offer-kind{font-size:9px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#56616a}
.offer h3{margin:4px 0 0;font-size:29px;line-height:1.05}
.offer-stats{display:grid;grid-template-columns:minmax(0,1fr) 87px;gap:10px;min-height:82px;margin:14px 6px 10px;padding:10px 0;border-top:1px solid #a89d82;border-bottom:1px solid #a89d82}
.offer-stats dt{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#53606a;margin-bottom:6px}
.offer-stats dd{margin:0;font-size:15px;font-weight:800;line-height:1.35;display:flex;flex-direction:column;gap:2px;font-variant-numeric:tabular-nums}
.offer-stats>div:last-child dd{flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px}
.offer-stats dd svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5}
.offer-stats dd strong{font-size:22px;line-height:1}.offer-stats dd>span:not([data-stat]){font-size:11px;font-weight:500}
.offer .offer-rule{min-height:0;margin:0 6px 12px;font-size:12px;line-height:1.5}
.offer .offer-note{min-height:0;margin:0 6px 14px;font-size:10px;line-height:1.5;color:#4e5b65;border-left:2px solid #9f8257;padding-left:8px}
.offer .buy-button{margin-top:auto;min-height:44px;font-size:14px}
.offer .buy-button:disabled{opacity:1;background:#c5bba4;color:#625f55;box-shadow:none}
@media(max-width:900px){.inspect-target,.inspect-note{grid-column:1/-1;margin-top:3px}.inspect-target{grid-row:4}.inspect-note{grid-row:5}}
@media(max-width:600px){
 .field-heading{flex-wrap:wrap;gap:6px}.field-heading .mobile-resources{display:block;order:3;width:100%;font-size:10px;color:#f2d694}
 .card-stats{min-height:31px}.card-output{gap:1px}
 .shop-dialog .dialog-top{top:-22px;padding-top:4px}.shop-dialog .market-intro{margin-bottom:14px}
 .shop-dialog .market-note{font-size:10px;margin-bottom:16px}
 .offer{display:grid;grid-template-columns:80px minmax(0,1fr);column-gap:12px;row-gap:0;padding:9px}
 .offer-art{grid-row:1/3;grid-column:1;height:122px;align-self:start}
 .offer-heading{grid-column:2;grid-row:1;margin:0}.offer h3{font-size:26px;margin:3px 0 0}
 .offer-kind{font-size:8px}.offer-stats{grid-column:2;grid-row:2;grid-template-columns:minmax(0,1fr) 68px;gap:5px;min-height:0;margin:7px 0 0;padding:7px 0}
 .offer-stats dt{font-size:8px;letter-spacing:0;margin-bottom:4px}.offer-stats dd{font-size:12px}.offer-stats dd strong{font-size:19px}.offer-stats dd svg{width:11px;height:11px}.offer-stats dd>span:not([data-stat]){font-size:10px}
 .offer .offer-rule{grid-column:1/-1;margin:12px 0 9px;font-size:11px}
 .offer .offer-note{grid-column:1/-1;margin:0 0 12px;font-size:10px}
 .offer .buy-button{grid-column:1/-1;margin:0;width:100%;min-height:44px;font-size:13px}
}
@media(max-width:360px){.shop-dialog{padding:16px}.shop-dialog .dialog-top{top:-16px}.offer{column-gap:9px;grid-template-columns:65px minmax(0,1fr)}.offer-art{height:116px}.offer h3{font-size:23px}.offer-stats{grid-template-columns:1fr 62px}.offer-stats dd{font-size:11px}.card-stats{font-size:8px}.card-time svg{display:none}}

.offer .offer-target{font-size:10px;line-height:1.5;min-height:0;margin:0 6px 12px;color:#344d60}
@media(max-width:900px){.field-heading{flex-wrap:wrap;gap:6px}.field-heading .mobile-resources{display:block;order:3;width:100%;font-size:10px;color:#f2d694}}
@media(max-width:600px){.offer .offer-target{grid-column:1/-1;margin:0 0 10px;font-size:10px}}

/* Card levels and crew decisions belong beside the actual card, before clocking in. */
.card-level{display:inline-flex;align-items:center;color:#4e4025;background:#c5a76666;border:1px solid #a88b52;padding:2px 4px;margin-left:4px;font-size:9px;letter-spacing:0;text-transform:none}
.crew-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;text-shadow:none}
.crew-actions .upgrade-preview{grid-column:1/-1;padding:12px;background:#142139d9;border:1px solid #73819a66}
.upgrade-preview>span{font-size:11px;color:#dac790}
.upgrade-diff{margin:8px 0 0;font-variant-numeric:tabular-nums}
.upgrade-diff>div{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0}
.upgrade-diff dt{font-size:11px;color:inherit}
.upgrade-diff dd{display:flex;align-items:center;gap:7px;margin:0;font-size:13px;white-space:nowrap}
.upgrade-diff dd>span{opacity:.65}.upgrade-diff svg{width:14px;height:14px}.upgrade-diff strong{color:#f2d694}
.crew-actions .plain-button{font-size:12px;padding:10px 6px;min-height:44px}
.crew-actions #inspect-upgrade{background:#f0c572;color:#233048;border-color:#f0c572}
.crew-actions #inspect-upgrade:disabled{background:#31415a;color:#a9b4c4;border-color:#67758d}
.crew-actions p{grid-column:1/-1;margin:0;font-size:10px;line-height:1.5;color:#c1cbdc}
.market-tabs{display:flex;gap:4px;border-bottom:1px solid #6e7b93;margin:14px 0 18px}
.market-tabs button{font-size:15px;padding:12px 18px;min-height:44px;border-bottom:3px solid transparent;background:transparent;color:#bfcad9}
.market-tabs button[aria-selected=true]{color:#ffe1a6;border-color:#e8bd6d;background:#25364f}
.upgrades{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.upgrade-offer{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px 16px;padding:13px;background:#ded4b6;color:#213149;border:1px solid #ece3cb;box-shadow:0 4px 0 #0e192c}
.upgrade-art{grid-row:1/3;height:133px;overflow:hidden;border:2px solid #263a4c}
.upgrade-art img,.upgrade-art svg,.replace-art img,.replace-art svg{height:100%;width:100%;object-fit:cover;display:block}
.upgrade-heading{align-self:end;min-width:0}.upgrade-heading>span{font-size:10px;color:#4b5a63}.upgrade-heading h3{font:800 27px/1.05 Barlow;margin:5px 0 0}
.upgrade-offer .upgrade-diff{align-self:start;margin:0;min-height:75px}.upgrade-offer .upgrade-diff strong{color:#153951}.upgrade-offer .upgrade-diff dt{font-size:10px}.upgrade-offer .upgrade-diff dd{font-size:12px;gap:5px}
.upgrade-offer .buy-button{grid-column:1/-1;margin:0;width:100%;min-height:44px}
.upgrade-offer .buy-button:disabled{background:#c1b89f;color:#5c625e;box-shadow:none}
.upgrade-max{font-size:12px;line-height:1.5;margin:8px 0}
.replace-dialog{width:660px}.replace-dialog h2{font-size:36px;max-width:460px}
.replace-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.replace-choice{display:flex;gap:12px;text-align:left;align-items:center;padding:8px;background:#263950;border:1px solid #677991;color:#f1e8d0;min-width:0}
.replace-choice[aria-pressed=true]{outline:2px solid #e8bd6d;outline-offset:1px;background:#394e66}
.replace-art{width:52px;height:75px;flex:none;overflow:hidden}
.replace-choice strong{display:block;font:700 21px/1.1 Barlow}.replace-choice small{display:block;font-size:10px;line-height:1.5;margin-top:4px}
.replace-preview{font-size:13px;line-height:1.6;margin:20px 0}.replace-dialog>.plain-button{width:100%;min-height:48px;background:#edc275;color:#18283b}.replace-dialog>.plain-button:disabled{background:#31415a;color:#a9b4c4}
.boss-option[data-current=true]{outline:2px solid #e8bd6d;outline-offset:2px}.boss-option{cursor:default}
[hidden]{display:none!important}
@media(max-width:900px){.crew-actions{grid-column:1/-1;grid-row:6;margin-top:8px}.crew-actions .upgrade-preview{grid-column:1/-1}.crew-actions .upgrade-diff{display:flex;gap:18px;flex-wrap:wrap}.crew-actions .upgrade-diff>div{gap:8px}.crew-actions .plain-button{font-size:13px}.crew-actions p{font-size:11px}.card-level{font-size:8px;padding:1px 3px;margin-left:2px}.inspector{padding-bottom:12px}}
@media(max-width:600px){.upgrades{grid-template-columns:1fr;gap:12px}.upgrade-offer{grid-template-columns:75px minmax(0,1fr);gap:8px 12px;padding:10px}.upgrade-art{height:120px}.upgrade-heading h3{font-size:25px}.upgrade-offer .upgrade-diff dd{font-size:12px}.market-tabs button{flex:1;font-size:14px;padding:10px}.replace-choices{grid-template-columns:1fr}.replace-dialog h2{font-size:30px}.card-level{font-size:7px}.crew-actions .upgrade-diff{gap:6px 16px}.crew-actions .upgrade-diff dt{font-size:10px}.crew-actions .upgrade-diff dd{font-size:12px}.crew-actions .upgrade-preview{padding:10px}.market-tabs{margin-top:10px}.upgrade-offer .buy-button{font-size:13px}}
@media(prefers-reduced-motion:no-preference){.crew-card:focus-visible{transition:outline-color .15s ease}.upgrade-offer .buy-button{transition:background .15s ease}}

.upgrade-offer .upgrade-diff dt{font-size:12px}.upgrade-offer .upgrade-diff dd{font-size:14px}.upgrade-heading>span{font-size:11px}
.move-target{outline:2px dashed #f1ce83;outline-offset:3px}.empty-slot.move-target{color:#f1ce83;background:#2b3c50}
@media(max-width:600px){.upgrade-offer .upgrade-diff dt{font-size:11px}.upgrade-offer .upgrade-diff dd{font-size:12px}}

.replace-dialog .dialog-top{position:sticky;top:-30px;padding:6px 0 10px;background:#14223a;z-index:2}
@media(max-width:600px){.replace-dialog .dialog-top{top:-22px}}

.upgrade-offer .buy-button:disabled{opacity:1;background:#c6bca4;color:#414744}
.crew-actions #inspect-upgrade:disabled{opacity:1}

.card-notes{margin-top:12px;font-size:11px;color:#c0c9dc}.card-notes summary{cursor:pointer;min-height:30px;line-height:30px}.card-notes blockquote{margin:10px 0}.card-notes .neighbours{padding-top:10px}
@media(min-width:901px){
 .inspector{padding-top:12px;padding-bottom:12px;margin-top:0}
 .inspector h2{font-size:34px;margin:10px 0 12px}
 .ability-line{padding:8px 0;margin-bottom:10px}.ability-line strong{font-size:15px}
 #inspect-rule{font-size:12px;line-height:1.5}.inspect-target{font-size:11px;line-height:1.45;margin-top:9px;padding:6px 0 6px 8px}
 .inspect-note{font-size:10px;margin-top:8px}.crew-actions{margin-top:12px;gap:6px}
 .crew-actions .upgrade-preview{padding:8px}.crew-actions .upgrade-diff>div{margin:4px 0}.crew-actions .upgrade-diff dt{font-size:10px}.crew-actions .upgrade-diff dd{font-size:12px}
}
@media(max-width:900px){.card-notes{grid-column:1/-1;grid-row:7;margin-top:0}.card-notes[open] blockquote{display:block}.card-notes[open] .neighbours{display:flex}}
