/* © 2026 Ori Roniger. Hollowport: original artwork, writing and code. All rights reserved. https://hollowport.mystery.co.il/ */
/* A fixed play surface. Content is paged in panels; the document never scrolls. */
[hidden]{display:none!important}
html,body{height:100%;margin:0;overflow:hidden}
body{min-width:300px;background:#090f1b}
.shell{height:100dvh;max-width:1600px;padding:0 18px;display:grid;grid-template-rows:48px 33px minmax(0,1fr) 25px;box-sizing:border-box}
header{height:auto;min-height:0;gap:12px;border-bottom:1px solid #536d7c}
.brand{font-size:24px;gap:9px;line-height:1}
.brand-icon{font-size:31px}
.brand small{font-size:6px;margin-top:5px}
.edition{font-size:6px;margin-left:auto}
#operator-menu,#save-menu{margin:0;padding:8px 12px;font:16px var(--pixel);min-height:34px}
.statusbar{min-height:0;padding:0;border-bottom:1px solid #354f60;gap:12px;flex-wrap:nowrap;font-size:7px}
.sound-toggle{font-size:16px;min-height:26px;padding:3px 9px}
.statusbar>span:last-child{margin-left:auto}
.statusbar strong{font-size:14px}
main{min-height:0;display:grid;grid-template-rows:42px minmax(0,1fr) 46px;padding:0}
.intro{display:none!important}
.tabs{min-height:0;height:auto;gap:26px;margin:0;padding:0;border:0;align-items:center}
.tabs button{padding:8px 0;font:17px var(--pixel);letter-spacing:.5px}
.tabs small{font:7px var(--mono)}
.tabs .district{font-size:6px;margin-left:auto}
.game-grid{min-height:0;display:block!important;margin:0}
.primary{height:100%;min-height:0;overflow:hidden;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:0;background:#101f2c}
#main-view,#location-panel{min-height:0;min-width:0;height:100%;box-sizing:border-box;overflow:hidden}
#location-panel{padding:0!important;border-left:2px solid #5b7580;background:#142632}
body:not([data-game-view=city]) #location-panel{display:none!important}
body:not([data-game-view=city]) .primary{display:block}
.city-pane-tabs{display:none}
.adventure-scene{height:100%;display:grid;grid-template-rows:32px minmax(0,1fr) auto auto;min-height:0}
.scene-titlebar{height:32px;font-size:19px;padding:0 12px;box-sizing:border-box;flex-shrink:0}
.scene-display{min-height:0;aspect-ratio:auto;border-width:3px;box-sizing:border-box}
.scene-art{object-fit:fill;height:100%;width:100%}
.scene-narration{padding:12px;gap:12px}
.scene-narration p{font:20px/1.2 var(--pixel)}
.scene-narration>span{font-size:15px}
.scene-verbs{padding:8px;gap:6px}
.scene-verbs button{font-size:17px;min-height:40px;padding:9px 6px}
.scene-verbs button span{display:none}
.scene-hotspot>span{font-size:17px}
.terminal{margin:0;padding:7px 10px;min-height:0;display:flex;align-items:center;gap:14px;border:1px solid #496674;border-top:0;background:#0c1925;overflow:hidden}
.terminal-label{white-space:nowrap;font:7px var(--mono);margin:0;flex-shrink:0}
.terminal-label>span{display:none}
.terminal p{font:19px/1.1 var(--pixel);margin:0;color:#d2dfcf;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}
#read-feed{font:16px var(--pixel);padding:4px 8px;min-height:30px;flex-shrink:0}
footer{height:auto;min-height:0;margin:0;padding:0;border:0;align-items:center;font-size:6px}
footer button{font:15px var(--pixel);padding:2px 5px}
footer>span:nth-child(2){display:none}
.screen-book{display:grid!important;grid-template-rows:minmax(0,1fr) 39px;min-height:0!important;overflow:hidden!important;padding:0!important;box-sizing:border-box}
.book-viewport{min-height:0;overflow:hidden;position:relative}
.book-page{display:flow-root;padding:16px 18px;box-sizing:border-box;outline:none}
.book-page:focus-visible{box-shadow:inset 0 0 0 2px #d8c291}
.book-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 10px;background:#263f4d;border-top:1px solid #76919a;box-sizing:border-box}
.book-nav button{font:17px var(--pixel);padding:5px 11px;min-height:30px;color:#d8e3d1;background:#344f5b;border-color:#6c8990}
.book-nav button:disabled{opacity:.35}
.book-nav span{font:7px var(--mono);color:#c3d5cd;white-space:nowrap}
.book-tall{max-height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.book-page>h2,.book-page .location-panel>h2{font:32px/1 var(--pixel);margin:8px 0}
.book-page .location-description{font:19px/1.25 var(--pixel);margin:10px 0 16px}
.book-page .location-heading{padding:0;line-height:1.7;gap:8px}
.book-page .location-indicator{font-size:5px}
.book-page .eyebrow{font-size:7px;line-height:1.7}
.book-page .conversation{padding:13px;margin:8px 0;border:1px solid #55737f}
.book-page .npc-portrait{width:56px;height:56px;flex-basis:56px}
.book-page .npc-heading{gap:10px}
.book-page .npc-heading h3{font-size:30px;margin:5px 0}
.book-page .npc-mood{font-size:6px}
.book-page .conversation blockquote{font:20px/1.25 var(--pixel);margin:12px 0;padding:12px}
.book-page .conversation-choices{display:flex;flex-wrap:wrap;gap:6px}
.book-page .conversation-choices button{font:18px/1.15 var(--pixel)!important;padding:9px;min-height:36px;flex:1 1 150px}
.book-page .city-contracts,.book-page .shop-grid,.book-page .networks{display:block;margin:12px 0}
.book-page .city-contracts article,.book-page .shop-grid article,.book-page .network{padding:13px;margin:10px 0}
.book-page .shop-grid h3,.book-page .city-contracts h3,.book-page .network h3{font:27px var(--pixel);margin:8px 0}
.book-page p,.book-page .shop-grid p,.book-page .network p,.book-page .city-contracts p{font:19px/1.3 var(--pixel);margin:10px 0;color:#c5d5ce}
.book-page .city-scene,.book-page .transmission-contract{padding:13px;margin:10px 0}
.book-page .city-scene h3,.book-page .transmission-contract h3{font:29px var(--pixel);margin:10px 0}
.book-page button{font-family:var(--pixel);font-size:18px;min-height:36px;padding:9px 12px}
.book-page .scene-actions{gap:7px;flex-wrap:wrap}
.book-page .scene-actions button{flex:1 1 150px}
.book-page .packet-work{padding:13px;display:block}
.book-page .packet-work h3{font:25px var(--pixel)}
.book-page .contract-heading{margin:12px 0}
.book-page .contract-pay{font-size:27px;margin:12px 0}
.book-page .vox-posts{display:block}
.book-page .vox-posts article{margin:10px 0;padding:12px}
.book-page .vox-posts h4{font:24px var(--pixel);margin:6px 0}
.book-page .node-intel{margin:12px 0;padding:12px}
.book-page .node-intel p{font:19px/1.3 var(--pixel)}
.book-page .journal-entry{padding:15px;margin:12px 0}
.book-page .journal-entry h3{font:27px var(--pixel);margin:10px 0}
.book-page .content-view{padding:0;min-height:0}
.book-page .node-auth{margin:12px 0}
.book-page .node-auth input,.book-page .password-row input{min-width:0;font:19px var(--pixel);padding:10px}
.book-page .password-row{flex-wrap:wrap;gap:6px}
.book-page .password-row button{min-height:38px}
.book-page .node-tools{margin:10px 0;gap:7px}
.book-page .node-tools>button{padding:10px 12px;min-height:39px;font-size:18px}
.book-page .node-tools>button span{margin-top:5px}
.book-page .employee-roster th,.book-page .employee-roster td{font-size:17px;padding:7px 3px}
.book-page .employee-roster thead th{font-size:6px}
.book-page .ending-choices{margin:10px 0;display:block}
.book-page .ending-choices article{padding:13px;margin:12px 0}
.book-page .chapter-ending{padding:13px;margin:10px 0}
/* The city map fits its panel; all six destinations remain in view. */
.city-atlas{height:100%;display:grid;grid-template-rows:32px minmax(0,1fr) 49px auto}
.city-atlas .atlas-note{display:none}
.city-atlas .atlas-display{aspect-ratio:auto;max-width:900px;width:100%;justify-self:center}
.atlas-status{padding:7px 13px}
.atlas-status b{font-size:20px}
.atlas-status button{font-size:16px;min-height:32px;padding:6px}
.atlas-destinations{grid-template-columns:repeat(6,minmax(0,1fr));padding:8px;gap:6px}
.atlas-destinations button{min-height:55px;padding:7px;gap:7px}
.atlas-destinations b{font-size:19px}
.atlas-destinations small{font-size:5px;letter-spacing:0}
.atlas-destinations i{display:none}
/* Live map and console have independent, fixed budgets. */
.has-live-network #main-view{display:grid;grid-template-rows:41px minmax(0,1fr)}
.deck-panels{padding:5px 8px;gap:7px;box-sizing:border-box}
.deck-panels button{font-size:17px;padding:5px;min-height:30px}
.live-network{min-height:0;display:grid;grid-template-rows:55px 66px auto minmax(0,1fr);overflow:hidden}
.live-network:not(:has(>.network-danger)){grid-template-rows:55px 66px minmax(0,1fr)}
.live-network .cyber-heading{padding:9px 15px;min-height:0}
.live-network .cyber-heading .eyebrow{font-size:6px}
.live-network .cyber-heading h2{font-size:28px;margin-top:4px}
.live-network .cyber-heading>button{font:16px var(--pixel);min-height:34px;padding:8px}
.live-network .connection-status{padding:7px 15px;font-size:6px}
.live-network .signal-console{padding:0 15px 7px;gap:4px 12px;grid-template-columns:1fr auto}
.live-network .signal-console strong{font-size:18px}
.live-network .signal-console meter{height:7px}
.live-network .signal-readings span,.live-network .signal-readings b{font-size:5px}
.live-network .network-danger{padding:6px 13px;font-size:16px;line-height:1.1}
.live-workspace{min-height:0;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:stretch;overflow:hidden}
.live-cartography{min-height:0;display:grid;grid-template-rows:32px minmax(0,1fr) auto 62px 58px}
.live-panel-label{padding:5px 12px;font-size:6px;min-height:32px;box-sizing:border-box}
.live-panel-label button{font-size:16px;min-height:26px}
.live-network .illustrated-network{aspect-ratio:auto!important;min-height:0}
.live-network .route-list{padding:8px 12px;gap:6px}
.live-network .route-list>span{font-size:5px;margin:0}
.live-network .route-list>button{font-size:17px;padding:7px;min-height:31px;min-width:100px}
.live-network .ice-contact{padding:8px 12px;gap:10px;min-height:0}
.live-network .ice-contact svg{width:45px;height:36px;flex-basis:45px;border-width:2px}
.live-network .ice-contact h3{font-size:20px;margin:3px 0}
.live-network .ice-contact p{display:none}
.live-network .ice-state{font-size:5px}
.live-network .cyber-programs{padding:8px 12px;gap:12px}
.live-network .cyber-programs p{font-size:16px;margin-top:4px}
.live-network .cyber-programs .eyebrow{font-size:5px}
.live-network .cyber-programs button{font-size:16px;padding:7px;min-height:32px}
.live-network .network-turn-note,.live-journal{display:none}
.live-network .node-detail{min-height:0;display:grid;grid-template-rows:32px auto minmax(0,1fr);height:100%;overflow:hidden}
.live-network .node-heading{padding:12px 16px}
.live-network .node-heading h3{font-size:29px;margin:6px 0}
.live-network .node-heading .eyebrow{font-size:6px}
.live-network .node-description{font-size:19px;line-height:1.2}
.live-network .network-message{display:none}
.live-network .node-controls{padding:0;min-height:0;overflow:hidden}
.live-network .node-detail>.live-panel-label{position:static}
.live-network .book-page{padding:8px 16px}
.live-network .book-nav button{font-size:16px;min-height:29px;padding:4px 9px}
/* Hardware is a paged dossier, with each subsection available through Next. */
.has-deck-hardware #main-view{display:flex;flex-direction:column}
.has-deck-hardware .deck-panels{flex:0 0 41px}
.deck-workbench{flex:1;min-height:0;height:100%;border:0}
.book-page .deck-overview{display:block}
.book-page .deck-machine{padding:12px;border:0}
.book-page .deck-machine svg{max-height:160px;width:100%}
.book-page .deck-machine-heading>span{font-size:25px}
.book-page .deck-machine-labels{font-size:6px}
.book-page .deck-diagnostics{padding:12px}
.book-page .deck-diagnostics h2{font-size:29px;margin:10px 0}
.book-page .deck-diagnostics dl{gap:8px;margin:10px 0}
.book-page .deck-diagnostics dd{font-size:20px}
.book-page .deck-software,.book-page .deck-chips,.book-page .deck-carriers{padding:12px}
.book-page .deck-section-title{margin-bottom:12px}
.book-page .deck-section-title h3{font-size:26px}
.book-page .deck-roms{gap:6px}
.book-page .deck-rom{padding:9px 6px;min-height:86px}
.book-page .deck-program-detail{padding:12px;margin-top:12px;gap:10px}
.book-page .deck-program-detail h3{font-size:27px;margin:8px 0}
.book-page .deck-program-detail small{font:17px/1.2 var(--pixel)}
.book-page .deck-chip-grid{gap:8px}
.book-page .deck-chip-grid article{padding:10px}
.book-page .deck-carrier{padding:10px 0;gap:10px}
.book-page .deck-carrier h4{font-size:24px}
/* Dossiers and status open over the game and return to exactly the same place. */
dialog{max-height:calc(100dvh - 32px);box-sizing:border-box}
#operator-dialog,#message-dialog{height:min(640px,calc(100dvh - 32px));width:min(640px,calc(100vw - 24px));padding:16px;overflow:hidden;grid-template-rows:auto minmax(0,1fr)}
#operator-dialog[open],#message-dialog[open]{display:grid}
#operator-content,#message-content{min-height:0;overflow:hidden}
#operator-content .profile{padding:14px}
#operator-content .objective{margin:10px 0;padding:14px}
#message-content .book-page{font:23px/1.35 var(--pixel);color:#dae5d4}
/* Compact transmission form keeps its inputs and submit action on one page. */
.book-page [data-transmission-order] fieldset{padding:10px;margin:0}
.book-page [data-transmission-order] legend{font-size:7px}
.book-page [data-transmission-order] p{font-size:17px;margin:6px 0}
.book-page [data-transmission-order] label{font-size:6px;margin:6px 0 3px}
.book-page [data-transmission-order] select{font:17px var(--pixel);padding:7px;margin:0;min-height:31px}
.book-page [data-transmission-order] button{margin-top:8px}
@media(max-width:760px){
 .shell{padding:0 8px;grid-template-rows:44px 31px minmax(0,1fr) 22px}
 header{gap:8px;height:auto}.brand{font-size:20px}.brand-icon{font-size:26px}.brand small{display:none}.edition{display:none}
 #operator-menu,#save-menu{font-size:14px;padding:6px 8px;min-height:30px}#operator-menu{margin-left:auto}
 .statusbar{padding:0;font-size:5px;gap:8px}.statusbar .muted{display:none}.sound-toggle{font-size:14px;padding:3px 6px;min-height:24px}.status-credit{margin-left:8px}.statusbar strong{font-size:12px}
 main{grid-template-rows:37px minmax(0,1fr) 51px}.tabs{gap:10px;justify-content:space-between}.tabs button{font-size:16px;padding:8px 0}.tabs small,.tabs .district{display:none}
 .primary{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:34px minmax(0,1fr)}
 .city-pane-tabs{display:flex;padding:3px 6px;gap:6px;background:#253f4e;border-bottom:1px solid #6e8992}
 .city-pane-tabs button{flex:1;padding:3px;min-height:27px;font:17px var(--pixel);color:#cadace}
 body[data-game-view=city][data-city-pane=interact] #main-view{display:none}
 body[data-game-view=city]:not([data-city-pane=interact]) #location-panel{display:none}
 #location-panel{border-left:0}
 body:not([data-game-view=city]) .city-pane-tabs{display:none}
 .scene-narration{padding:10px;gap:9px}.scene-narration p{font-size:19px}.scene-titlebar{font-size:18px;height:30px}.scene-hotspot>span{font-size:15px}
 .scene-verbs{padding:7px}.scene-verbs button{font-size:16px;min-height:39px}.terminal{padding:5px 8px;gap:8px}.terminal-label{font-size:5px}.terminal p{font-size:18px}#read-feed{font-size:15px;padding:4px 6px}
 footer{font-size:5px}footer button{font-size:14px}
 .book-page{padding:12px}.book-nav{padding:4px 7px}.book-nav button{font-size:16px;padding:5px 9px}.book-nav span{font-size:6px}
 .book-page .location-indicator{display:none}.book-page .location-description{margin:8px 0 12px}
 .atlas-destinations{grid-template-columns:repeat(3,minmax(0,1fr));padding:6px;gap:5px}.atlas-destinations button{min-height:47px;padding:5px;gap:5px}.atlas-destinations b{font-size:17px}.atlas-destinations small{display:none}.atlas-destinations button>span{font-size:16px}
 .atlas-status{padding:6px 10px}.atlas-status button{max-width:140px;font-size:15px}.atlas-status b{font-size:19px}.atlas-pin>span{display:none}.atlas-pin>b{width:25px;height:25px;font-size:17px}
 .live-network{grid-template-rows:51px 66px auto minmax(0,1fr)}.live-network:not(:has(>.network-danger)){grid-template-rows:51px 66px minmax(0,1fr)}
 .live-network .cyber-heading{padding:7px 10px}.live-network .cyber-heading h2{font-size:25px}.live-network .cyber-heading .eyebrow{font-size:5px}.live-network .cyber-heading>button{font-size:14px;padding:6px;min-height:31px}
 .live-network .connection-status{padding:6px 10px;font-size:5px;gap:6px}.live-network .signal-console{padding:0 10px 7px;grid-template-columns:1fr;gap:2px}.live-network .signal-console strong{font-size:16px}.live-network .signal-readings{display:none}.live-network .signal-console meter{height:7px}
 .live-workspace{display:block;position:relative}
 .live-cartography{height:100%;grid-template-rows:32px minmax(0,1fr) auto 51px 52px}
 .live-network .ice-contact{padding:6px 10px}.live-network .ice-contact h3{font-size:18px}.live-network .ice-contact svg{height:31px;width:39px;flex-basis:39px}
 .live-network .cyber-programs{padding:6px 10px}.live-network .cyber-programs p{font-size:15px}.live-network .cyber-programs button{font-size:15px}
 .live-network .illustrated-network .net-node{width:79px;gap:3px}.live-network .illustrated-network .net-node-label{font-size:15px}.live-network .illustrated-network .net-node-icon{height:23px;width:23px}.live-network .network-map-caption{font-size:4px;bottom:4px}
 .live-network .route-list{padding:6px 10px;flex-direction:row}.live-network .route-list>button{font-size:16px;min-width:100px;padding:6px;min-height:31px}.live-network .route-list>button span{font-size:5px}
 .live-network .node-detail{border:0;height:100%;grid-template-rows:32px auto minmax(0,1fr)}
 .live-network .node-heading{padding:10px 13px}.live-network .node-heading h3{font-size:27px}.live-network .node-description{font-size:18px;line-height:1.2}
 .live-network .book-page{padding:7px 13px}.live-network .live-panel-label>button{display:block}
 body:not([data-network-pane=console]) .live-network .node-detail{display:none}
 body[data-network-pane=console] .live-cartography{display:none}
 .console-map-link{display:block}.live-network .node-trace{font-size:7px}
 .book-page .deck-roms{grid-template-columns:repeat(2,minmax(0,1fr))}.book-page .deck-rom{min-height:75px}.book-page .rom-pins{display:none}.book-page .deck-chip-grid{grid-template-columns:1fr 1fr}.book-page .chip-mark{display:none}
 .book-page .deck-program-detail{display:block}.book-page .deck-program-detail button{margin-top:10px}.book-page .deck-section-title>span{display:none}.book-page .deck-machine-labels{font-size:5px}
}
@media(max-height:680px){
 .shell{grid-template-rows:39px 27px minmax(0,1fr) 20px}
 main{grid-template-rows:33px minmax(0,1fr) 40px}
 .live-network{grid-template-rows:45px 52px auto minmax(0,1fr)}.live-network:not(:has(>.network-danger)){grid-template-rows:45px 52px minmax(0,1fr)}
 .live-network .connection-status{padding-block:4px}.live-network .signal-console strong{font-size:16px}.live-network .signal-console{padding-bottom:5px;gap:2px}.live-network .signal-readings{display:none}
 .live-network .node-heading{padding:8px 12px}.live-network .node-heading h3{font-size:25px}.live-network .node-description{display:none}
 .live-cartography{grid-template-rows:29px minmax(0,1fr) auto 44px 44px}
 .live-network .ice-contact svg{height:27px;width:34px;flex-basis:34px}.live-network .ice-contact h3{font-size:17px}.live-network .cyber-programs p{display:none}
 .book-page{padding:9px 12px}.book-page .conversation{padding:9px}.book-page .npc-portrait{height:44px;width:44px;flex-basis:44px}.book-page .conversation blockquote{font-size:19px;padding:9px;margin:8px 0}
 .book-page [data-transmission-order] p{display:none}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.live-network .illustrated-network .net-node{transform:translate(-50%,-50%)}
.live-network .illustrated-network .net-node[style]{top:clamp(43px,var(--node-y),calc(100% - 43px))!important}
#help-dialog,#about-dialog,#terms-dialog{height:min(640px,calc(100dvh - 32px));width:min(640px,calc(100vw - 24px));padding:16px;overflow:hidden;grid-template-rows:auto minmax(0,1fr)}
#help-dialog[open],#about-dialog[open],#terms-dialog[open]{display:grid}
#help-content,#about-content,#terms-content{min-height:0;overflow:hidden}
#help-content p,#about-content p,#terms-content p{font:21px/1.3 var(--pixel)}
#about-content h3,
#terms-content h3{font:27px/1.1 var(--pixel);margin:10px 0}
#about-content a,
#terms-content a{text-decoration:underline;text-underline-offset:3px}
#about-content .info-section,
#terms-content .info-section{margin-bottom:18px}
@media(max-width:760px){.adventure-scene .scene-display{aspect-ratio:2/1;align-self:center;max-height:100%;width:100%;height:auto}.adventure-scene{background:#0e1b29}}
body[data-city-pane=interact] [data-city-pane=interact],body:not([data-city-pane=interact]) [data-city-pane=scene]{background:#b3cdbf;color:#132733;border-color:#d8e1ce}
.book-page .packet-work button,.book-page .city-contracts button,.book-page .city-scene button{font-size:18px!important;line-height:1.2;white-space:normal}
.book-page .scene-actions{flex-direction:row}
.book-page .scene-actions button{min-width:0;flex:1 1 130px}
.book-page .city-contracts p{min-height:0}
.book-page .npc-heading canvas{width:100%;height:100%;image-rendering:pixelated}
.screen-book.has-book-title{grid-template-rows:30px minmax(0,1fr) 39px}
.book-title{background:#304b59;border-bottom:1px solid #6e8790;padding:5px 13px;color:#d8e1cf;font:20px/1 var(--pixel);letter-spacing:.5px;box-sizing:border-box}
.deck-output{display:none!important}
.live-network .net-node{--node-y:48%}
.live-network .net-node[data-value=sentinel],.live-network .net-node[data-value=audit],.live-network .net-node[data-value=guardian]{--node-y:14%}
.live-network .net-node[data-value=cache],.live-network .net-node[data-value=vault],.live-network .net-node[data-value=refuge]{--node-y:78%}
.live-network .illustrated-network .net-node[style]{top:clamp(50px,var(--node-y,48%),calc(100% - 50px))!important}
@media(max-width:760px){.book-page .employee-roster{margin-top:8px}.book-page .employee-roster th,.book-page .employee-roster td{font-size:16px;line-height:1.1;padding:5px 3px}.book-page .employee-roster caption{font-size:17px;margin-bottom:6px}}
.live-network .book-page .node-intel:has(.employee-roster){padding:8px;margin:8px 0}
@media(max-width:760px){.live-network .book-page .employee-roster tbody th,.live-network .book-page .employee-roster td{font-size:15px;line-height:1.1;padding:4px 3px}}
/* Compact map markers reserve enough vertical space for distinct node rows. */
.live-cartography{grid-template-rows:32px minmax(0,1fr) auto 48px 48px}
.live-network .illustrated-network .net-node{gap:3px;min-height:44px}
.live-network .illustrated-network .net-node-icon{height:22px;width:22px;font-size:19px}
.live-network .illustrated-network .net-node-label{font-size:17px;white-space:nowrap;padding:4px 6px}
.live-network .illustrated-network .net-node-label small{font-size:5px;margin-top:3px}
.live-network .book-page .employee-roster tbody th,.live-network .book-page .employee-roster td{font-size:17px;line-height:1.1;padding:5px 3px}
@media(max-width:760px){
 .live-cartography{grid-template-rows:32px minmax(0,1fr) auto 44px 44px}
 .live-network .illustrated-network .net-node[style]{top:clamp(28px,var(--node-y,48%),calc(100% - 28px))!important}
 .live-network .illustrated-network .net-node-icon,.live-network .illustrated-network .net-node-label small{display:none}
 .live-network .illustrated-network .net-node-label{display:grid;place-items:center;white-space:normal;min-height:40px;width:100%;box-sizing:border-box;padding:4px;font-size:17px}
 .live-network .illustrated-network .net-node.here .net-node-label{background:var(--signal);color:#142533}
 .live-network .book-page .employee-roster tbody th,.live-network .book-page .employee-roster td{font-size:15px;padding:4px 3px}
}
#saves{padding:18px;width:min(580px,calc(100vw - 24px))}
#saves .dialog-heading h2{font:32px/1.1 var(--pixel);margin:8px 0}
#saves>p{font:19px/1.25 var(--pixel);margin:12px 0}
#saves .save-slot{padding:12px 0}
#saves .save-actions{margin:12px 0}
#saves button,#saves .button{font:17px var(--pixel);padding:8px 10px;min-height:34px}
#saves .close{font-size:27px;padding:0 8px}
/* Navigation and operator utilities share one compact game toolbar. */
.shell{grid-template-rows:52px minmax(0,1fr) 25px}
header{display:flex;gap:14px;min-width:0}
header .brand{order:0;flex-shrink:0;font-size:23px;letter-spacing:1px}
header .brand small,header .edition,header .district,header .tabs small{display:none}
header .tabs{order:1;flex:1;min-width:0;gap:18px;justify-content:flex-start;align-self:stretch}
header .tabs button{font-size:17px;white-space:nowrap;letter-spacing:0}
header .tabs button span{margin-left:0}
header .statusbar{display:contents}
header .statusbar>span:first-child{display:none}
header .statusbar>span:last-child{order:2;display:flex;align-items:center;gap:9px;font-size:0;margin:0;white-space:nowrap}
header #city-time{font:16px var(--pixel);color:#afc3c6}
header .status-credit{font:5px var(--mono);margin:0;display:flex;align-items:center;gap:7px}
header .status-credit strong{font:21px var(--pixel);color:#b3d7c2}
header .sound-toggle{order:3;font:15px var(--pixel);min-height:32px;padding:5px 8px;white-space:nowrap}
header #operator-menu{order:4;font-size:15px;padding:7px 9px;white-space:nowrap}
header #save-menu{order:5;font-size:15px;padding:7px 9px;white-space:nowrap}
main{grid-template-rows:minmax(0,1fr) 46px;padding-top:0}
@media(max-width:1100px) and (min-width:761px){header{gap:9px}header .brand{font-size:20px}header .brand-icon{font-size:27px}header .tabs{gap:12px}header .tabs button{font-size:16px}header #city-time{display:none}header .status-credit{font-size:0;gap:0}}
@media(max-width:900px) and (min-width:761px){header .brand>div{display:none}header .tabs{gap:14px}}
@media(max-width:760px){
 .shell{grid-template-rows:78px minmax(0,1fr) 22px}
 header{display:grid;grid-template-columns:auto 1fr auto auto auto;grid-template-rows:39px 36px;column-gap:7px;row-gap:0;align-items:center}
 header .brand{grid-row:1;grid-column:1/3;font-size:20px;gap:7px;min-width:0}
 header .brand-icon{font-size:25px}
 header .sound-toggle{grid-row:1;grid-column:3;font-size:13px;padding:4px 6px;min-height:28px}
 header #operator-menu{grid-row:1;grid-column:4;margin:0;font-size:13px;padding:5px 7px;min-height:28px}
 header #save-menu{grid-row:1;grid-column:5;font-size:13px;padding:5px 7px;min-height:28px}
 header .tabs{grid-row:2;grid-column:1/5;display:flex;gap:11px;justify-content:space-between;align-self:stretch}
 header .tabs button{font-size:15px;padding:6px 0}
 header .tabs b{font-size:5px;margin-left:3px}
 header .statusbar>span:last-child{grid-row:2;grid-column:5;justify-content:flex-end;gap:0}
 header #city-time{display:none}
 header .status-credit{font-size:0;gap:0}
 header .status-credit strong{font-size:20px}
 main{grid-template-rows:minmax(0,1fr) 51px}
}
@media(max-width:380px){header .brand{font-size:17px}header .brand-icon{display:none}header .tabs{gap:8px}header .tabs button{font-size:14px}header .sound-toggle,header #operator-menu,header #save-menu{font-size:12px;padding:5px}header .status-credit strong{font-size:18px}}
@media(max-height:680px){.shell{grid-template-rows:46px minmax(0,1fr) 20px}main{grid-template-rows:minmax(0,1fr) 40px}}
@media(max-height:680px) and (max-width:760px){.shell{grid-template-rows:73px minmax(0,1fr) 20px}header{grid-template-rows:36px 34px}}
@media(max-width:760px){
 body[data-game-view=city]:not([data-city-pane=interact]) #location-panel{display:none!important}
 body[data-game-view=city][data-city-pane=interact] #main-view{display:none!important}
}
.book-page .opening-message blockquote{margin:14px 0;padding:12px;border-left:2px solid #afd5c1;background:#0d1c28;color:#dce5d3;font:22px/1.25 var(--pixel)}
#case-hint{margin-left:auto;font:16px var(--pixel);padding:2px 8px}
#guidance-dialog{height:min(460px,calc(100dvh - 32px));width:min(620px,calc(100vw - 24px));padding:16px;overflow:hidden;grid-template-rows:auto minmax(0,1fr)}
#guidance-dialog[open]{display:grid}
#guidance-dialog h2{font:30px var(--pixel);margin:8px 0 15px}
#guidance-content{min-height:0;overflow:hidden}
#guidance-content h3{font:29px/1.1 var(--pixel);color:#dce5ce;margin:12px 0}
#guidance-content p{font:22px/1.3 var(--pixel);color:#cfdbd0}
#guidance-content small{font:7px/1.8 var(--mono);color:#9fb8ba}
.hint-controls{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.hint-controls button{flex:1;min-width:115px;font:18px var(--pixel);padding:10px;min-height:38px;color:#d0dfcb;background:#294550;border-color:#6e8990}
@media(max-width:760px){#case-hint{font-size:14px;padding:2px 6px}#guidance-content p{font-size:21px}}
.primary{position:relative}
.discovery-banner{position:absolute;z-index:8;top:12px;left:12px;width:min(390px,calc(100% - 24px));box-sizing:border-box;display:flex;gap:12px;align-items:flex-start;padding:14px;border:2px solid #a9d9c4;background:#142b38f5;box-shadow:4px 4px #06121c99;color:#d7e4d2;pointer-events:none;animation:carrier-arrival .25s ease-out}
.discovery-symbol{font:32px var(--pixel);color:#c2ddaf;line-height:1}
.discovery-banner strong{font:20px/1.1 var(--pixel);letter-spacing:.5px;display:block}
.discovery-banner p{font:18px/1.2 var(--pixel);margin:7px 0 0;color:#bfced0}
.discovery-banner button{pointer-events:auto;flex:0 0 28px;min-height:28px;padding:0;font:25px var(--pixel);border-color:#668997;color:#d7e5d1}
.discovery-cut,.discovery-trace,.discovery-contact{border-color:#d9ac79}
.discovery-cut .discovery-symbol,.discovery-trace .discovery-symbol{color:#e7a88f}
@keyframes carrier-arrival{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.discovery-banner{padding:11px;gap:8px}.discovery-banner strong{font-size:18px}.discovery-banner p{font-size:17px}}
@media(prefers-reduced-motion:reduce){.discovery-banner{animation:none}}

.network-salvage .net-node[data-value="clock"]{--node-y:18%}

.book-page .deck-shop{padding:8px;margin:0;border-top:0}
.book-page .deck-offer{padding:8px;margin:6px 0;gap:10px}
.book-page .deck-offer .deck-machine{padding:5px}
.book-page .deck-offer p{font:17px/1.15 var(--pixel);margin:6px 0}
.book-page .deck-offer .deck-offer-example{font-size:15px}
@media(max-width:760px){
 .book-page .deck-offer .deck-machine svg{height:48px}
 .book-page .deck-offer .deck-offer-details>.eyebrow{font-size:5px}
 .book-page .deck-offer button{font:17px/1.1 var(--pixel);padding:7px 9px;min-height:33px}
}
@media(max-width:760px) and (max-height:620px){.book-page .deck-offer .deck-machine{display:none}}

footer #music-toggle{white-space:nowrap;color:#adc8c5}footer #music-toggle[aria-pressed=true]{color:#e0d1a2;border-color:#8d865f}.music-credit a{text-decoration:underline}
@media(max-width:760px){footer{flex-wrap:nowrap;gap:5px}footer>span:first-child{font-size:5px}footer .footer-caption{display:none}footer button{white-space:nowrap;font-size:13px;padding:2px 4px}}

/* The outer game frame supplies the location border, as on the action side. */
.scene-display{border:0;box-shadow:none}

/* Sound and music share one compact footer group. */
.audio-controls{display:flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}
footer .audio-controls button{font:15px/1 var(--pixel);min-height:0;padding:2px 5px;white-space:nowrap}
footer #sound-toggle[aria-pressed=true]{color:var(--acid)}
@media(max-width:760px){header .brand{grid-column:1/4}footer .audio-controls button{font-size:13px;padding:2px 4px}}
@media(max-width:540px){footer>span:first-child{display:none}footer{gap:4px;justify-content:space-between}footer button,footer .audio-controls button{font-size:12px;padding:2px 3px}.audio-controls{margin-left:0;gap:4px}}

/* One flat frame for both halves of a location, with matching title bars. */
.primary{--location-frame:#6e8790;border:1px solid var(--location-frame);box-shadow:none}
#location-panel{border-top:0;border-left:1px solid var(--location-frame)}
.adventure-scene{grid-template-rows:30px minmax(0,1fr) auto auto}
.scene-titlebar,.book-title{height:30px;box-sizing:border-box;padding:5px 13px;background:#304b59;border:0;border-bottom:1px solid var(--location-frame);box-shadow:none;color:#d8e1cf;font:20px/1 var(--pixel);letter-spacing:.5px}
.scene-narration{border-top:1px solid var(--location-frame);box-shadow:none}
.scene-verbs{border-bottom:0}
@media(max-width:760px){#location-panel{border-left:0}}

/* Game navigation belongs to the frame; scenes are the default view. */
header .brand{margin-right:auto}
.primary{grid-template-rows:35px minmax(0,1fr)}
.game-toolbar{grid-row:1;grid-column:1/-1;display:flex;align-items:center;gap:12px;padding:0 10px;min-width:0;background:#203744;border-bottom:1px solid var(--location-frame)}
.game-toolbar .tabs{display:flex;flex:1;align-self:stretch;align-items:center;gap:22px;margin:0;min-width:0}
.game-toolbar .tabs small,.game-toolbar .district{display:none}
.game-toolbar .tabs button{font:17px/1 var(--pixel);padding:8px 0;letter-spacing:0;white-space:nowrap}
.game-toolbar .tabs button span{margin-left:0}
.game-toolbar .tabs b{font:6px var(--mono);margin-left:5px}
#return-to-scene{font:17px/1 var(--pixel);min-height:27px;padding:4px 8px;white-space:nowrap;color:#cde0d4}
#main-view{grid-row:2;grid-column:1}
#location-panel{grid-row:2;grid-column:2}
body:not([data-game-view=city]) .primary{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:35px minmax(0,1fr)}
.scene-verbs{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){
 .shell{grid-template-rows:44px minmax(0,1fr) 22px}
 header{display:flex;gap:7px}
 header .brand{font-size:18px;gap:5px}
 header .statusbar>span:last-child{display:flex}
 header #operator-menu,header #save-menu{font-size:13px;padding:5px 6px;min-height:28px}
 .primary{grid-template-rows:34px 34px minmax(0,1fr)}
 .game-toolbar{padding:0 8px;gap:0;flex-wrap:wrap}
 .game-toolbar .tabs{flex-basis:100%;height:33px;gap:18px;justify-content:flex-start}
 .game-toolbar .tabs button{font-size:16px;padding:7px 0}
 #return-to-scene{font-size:16px;max-width:100%;min-height:27px;margin:0 0 4px}
 .city-pane-tabs{grid-row:2;grid-column:1}
 #main-view,#location-panel{grid-row:3;grid-column:1}
 body:not([data-game-view=city]) .primary{grid-template-rows:65px minmax(0,1fr)}
 body:not([data-game-view=city]) #main-view{grid-row:2}
}
@media(max-width:380px){header .brand{font-size:17px}header #operator-menu,header #save-menu{font-size:12px;padding:5px}header .status-credit strong{font-size:18px}}
@media(max-height:680px){.shell{grid-template-rows:44px minmax(0,1fr) 20px}}

.book-page .inbox-message blockquote{margin:12px 0;padding:0 0 0 10px;border-left:2px solid #afd5c1;background:transparent;color:#dce5d3;font:20px/1.25 var(--pixel)}
.book-page .inbox-heading>span{font:9px/1.5 var(--mono);overflow-wrap:anywhere}

/* A single navigation row: return, destinations, wallet. */
.game-toolbar{flex-wrap:nowrap;gap:12px}
.game-toolbar .status-credit{margin-left:auto;display:flex;gap:8px;align-items:center;white-space:nowrap;font:7px var(--mono);color:#b4cbc8}
.game-toolbar .status-credit strong{font:22px var(--pixel);color:#b3d7c2}
.game-toolbar .tabs{flex:0 1 auto}
#return-to-scene{flex-shrink:0}
body[data-game-view=deck]:not(.has-live-network) #main-view{display:flex;flex-direction:column}
body[data-game-view=deck] .deck-panels{flex:0 0 41px}
.deck-inbox{flex:1;min-height:0;overflow:hidden;background:#142632}
@media(max-width:760px){
 .game-toolbar{gap:8px;padding:0 7px}
 .game-toolbar .tabs{flex:0 1 auto;flex-basis:auto;height:33px;gap:12px}
 .game-toolbar .tabs button{font-size:15px}
 .game-toolbar .tabs b{margin-left:3px}
 .game-toolbar .status-credit{font-size:0;gap:0}
 .game-toolbar .status-credit strong{font-size:19px}
 #return-to-scene{font-size:15px;margin:0;padding:3px 5px;min-height:25px}
 body:not([data-game-view=city]) .primary{grid-template-rows:34px minmax(0,1fr)}
 .deck-panels button{font-size:16px}
}
@media(max-width:380px){.game-toolbar{gap:5px}.game-toolbar .tabs{gap:9px}.game-toolbar .tabs button{font-size:14px}.game-toolbar .status-credit strong{font-size:18px}#return-to-scene{font-size:14px;padding:3px}}

.scene-verbs:empty{display:none}
.conversation-choices [data-delivery]{grid-column:1/-1;margin:0;padding:6px}
.conversation-choices [data-delivery] label{font:14px var(--pixel)}
.conversation-choices [data-delivery] .password-row{display:flex;gap:6px;margin:5px 0}
.conversation-choices [data-delivery] input{min-width:0;width:100%;padding:7px;font:18px var(--pixel)}
.conversation-choices [data-delivery] button{min-width:80px;font:16px var(--pixel)!important;padding:7px}

/* Program activation runs before the world action commits. */
dialog.tool-run{width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 24px);box-sizing:border-box;padding:18px;overflow:hidden;background:#102432;color:#d8e4d2;border:1px solid #8aada9}
.tool-run-heading>span{font:8px var(--mono);color:#a2c0bf}.tool-run h2{font:34px var(--pixel);margin:8px 0}
.tool-run p{font:20px/1.2 var(--pixel);margin:10px 0}
.tool-run canvas{display:block;width:100%;height:clamp(100px,24vh,180px);touch-action:none;border:1px solid #597e86;box-sizing:border-box;image-rendering:pixelated}
.tool-run-meter{display:flex;gap:12px;align-items:center;margin:10px 0;font:16px var(--pixel)}.tool-run-meter progress{flex:1;min-width:0;accent-color:#a8ceba}
.tool-run .tool-run-status{min-height:2.4em;color:#e2c79c}
.tool-run-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tool-run-controls label{display:flex;gap:8px;align-items:center;flex:1;font:14px var(--pixel)}.tool-run-controls input{width:100%;min-width:65px;accent-color:#9fcab4}.tool-run-controls button{font:20px var(--pixel);min-height:38px;padding:8px 12px}
@media(max-height:620px){dialog.tool-run{padding:12px}.tool-run p{font-size:18px}.tool-run canvas{height:110px}.tool-run .tool-run-status{min-height:2.4em}.tool-run h2{font-size:28px;margin:5px 0}.tool-run-controls button{font-size:18px}}

/* Feedback belongs to the current interaction; the game uses the freed feed row. */
main{grid-template-rows:minmax(0,1fr)}
.action-feedback{font:20px/1.25 var(--pixel)!important;color:#d7e3c7!important;border-left:2px solid #9bc8b3;background:#102532;padding:10px 12px;margin:10px 0;overflow-wrap:anywhere}
.action-feedback.action-error{border-color:#dea484;color:#edc3a5!important}
@media(max-width:760px){.action-feedback{font-size:19px!important;padding:8px 10px}}

.case-layer{border-left:2px solid #92b5ac;padding:10px 12px;margin:12px 0;background:#102633}.case-layer>span,.case-status{font:9px/1.5 var(--mono)!important;color:#b5cbc5!important}.case-layer p{font:21px/1.3 var(--pixel)!important;color:#dce2c9!important;overflow-wrap:anywhere}.case-source{padding:12px;border:1px solid #78928c;background:#18323e;margin:12px 0}.case-source ol{padding-left:28px;counter-reset:list-item}.case-source li{font:20px/1.3 var(--pixel);padding:5px 0;color:#dfdbc0}.case-packet label{display:block;font:16px var(--pixel);margin:10px 0}.case-packet .password-row{display:flex;gap:8px;flex-wrap:wrap}.case-packet input{min-width:0;flex:1 1 180px;font:20px var(--pixel);padding:9px}.case-packet .password-row button{font:18px var(--pixel)!important;padding:9px}

.routing-table{width:100%;border-collapse:collapse;table-layout:fixed;margin:12px 0;font:18px/1.3 var(--pixel);color:#dce2c9}.routing-table caption{text-align:left;font:9px/1.4 var(--mono);color:#aac4bf;padding-bottom:8px}.routing-table th,.routing-table td{text-align:left;border-bottom:1px solid #4d6974;padding:6px 3px;overflow-wrap:anywhere}.routing-table th{color:#aac4bf}.routing-table th:first-child{width:12%}.routing-table th:nth-child(4){width:11%}.routing-manifest p{overflow-wrap:anywhere}@media(max-width:760px){.routing-table{font-size:16px}.routing-table th,.routing-table td{padding:5px 2px}}

/* Six-node service sectors keep separate branches readable on the smallest map pane. */
@media(max-width:420px){
 .network-maintenance .illustrated-network .net-node,.network-transit .illustrated-network .net-node{width:53px}
 .network-maintenance .illustrated-network .net-node-label,.network-transit .illustrated-network .net-node-label{font-size:13px;padding:3px 1px}
}
@media(max-width:420px){
 .live-network.network-maintenance,.live-network.network-transit{grid-template-rows:62px 52px auto minmax(0,1fr)}
 .live-network.network-maintenance:not(:has(>.network-danger)),.live-network.network-transit:not(:has(>.network-danger)){grid-template-rows:62px 52px minmax(0,1fr)}
 .network-maintenance .cyber-heading>div,.network-transit .cyber-heading>div{min-width:0}
 .live-network.network-maintenance .cyber-heading h2,.live-network.network-transit .cyber-heading h2{font-size:19px;margin-top:2px;line-height:1.05}
}
/* Quiet node states leave the map drawing and current position prominent. */
.live-network .net-node.progress-complete{color:#8aa89b}.live-network .net-node.progress-unsolved{color:#d7bc88}.live-network .net-node.progress-blocked{color:#71838e}.live-network .net-node.progress-info{color:#91a8b7}
.live-network .net-node.progress-unsolved .net-node-label{border-color:#bba172;color:#d7c49f}
.live-network .net-node.progress-complete .net-node-label{border-color:#648e7b;color:#96b3a4;background:#15282b}
.live-network .net-node.progress-blocked .net-node-label{border:1px dashed #657784;color:#82939e;background:#14212a}
.live-network .net-node.reachable{filter:none}
.live-network .net-node.here .net-node-label{outline:2px solid #d6e7d2;outline-offset:3px;background:#213a3f;color:#e0e7d6}
.live-network .net-node.here .net-node-label small{color:#d6e7d2}
@media(max-width:420px){
 .live-cartography{grid-template-rows:32px minmax(0,1fr) 44px 44px}
 .live-cartography>.route-list{display:none}
}

.discovery-mail{border-top:1px solid #668997;padding-top:10px;margin-top:12px}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.flatline h2{color:#e2564a;letter-spacing:4px}.flatline p{max-width:60ch}
.origin-notice{max-width:60ch;margin:15vh auto;padding:0 16px;font-family:'IBM Plex Mono',monospace;color:#cfe0c0;line-height:1.7}.origin-notice h1{color:#e2564a;font-size:20px}.origin-notice a{color:#9fd18b}
#contact-dialog{height:min(700px,calc(100dvh - 32px));width:min(640px,calc(100vw - 24px));padding:16px;overflow:hidden;grid-template-rows:auto minmax(0,1fr)}#contact-dialog[open]{display:grid}#contact-content{overflow:auto;padding-right:4px}
.contact-intro{font-size:10px;line-height:1.8;color:var(--muted)}.contact-form{display:grid;gap:14px}.contact-row{display:grid;gap:6px}.contact-row label{font-size:9px;letter-spacing:1px;color:var(--acid)}.contact-row small{color:var(--muted);letter-spacing:0}
.contact-row input,.contact-row select,.contact-row textarea{width:100%;box-sizing:border-box;background:#0d100b;border:1px solid var(--line);color:var(--text);font:11px/1.6 var(--mono);padding:10px 12px}.contact-row textarea{resize:vertical;min-height:120px}
.contact-row :focus{outline:none;border-color:var(--acid)}.contact-row [aria-invalid=true]{border-color:#e2564a}.contact-count{justify-self:end;font-size:8px;color:var(--muted)}
.contact-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.contact-human{min-height:65px}.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.contact-status{font-size:10px;color:var(--muted);margin:0}.contact-status.error{color:#e2564a}
.contact-result{display:grid;gap:12px}.contact-result h3{font:24px var(--pixel);color:var(--acid);margin:8px 0 0}.contact-result p{font-size:10px;line-height:1.8}.contact-result:focus{outline:none}
footer a.footer-home{color:inherit;text-decoration:none}footer a.footer-home:hover,footer a.footer-home:focus-visible{color:var(--acid);text-decoration:underline}
.ask-about{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.ask-about label{font-size:9px;letter-spacing:1px;color:var(--acid)}.ask-about small{color:var(--muted);letter-spacing:0}
.skill-strip{margin:0 0 12px}.skill-strip ul{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 14px}.skill-strip li{display:flex;gap:8px;align-items:baseline;font-size:10px;color:var(--muted)}.skill-strip li.has-skill{color:var(--text)}.skill-strip li span{flex:1}.skill-strip b{color:var(--acid);letter-spacing:1px;font-weight:400}.skill-strip small{font-size:8px}

/* HINT sits with the header controls; TERMS opens its dialog like About. */
header #case-hint{margin:0 0 0 auto;padding:8px 12px;font:16px var(--pixel);min-height:34px;white-space:nowrap}header #case-hint+#operator-menu{margin-left:0}footer #help{margin-left:auto}@media(max-width:760px){header #case-hint{font-size:13px;padding:5px 6px;min-height:28px}}@media(max-width:380px){header #case-hint{font-size:12px;padding:5px}}

/* NEXT stands out while more of the panel waits on later pages. */
.book-nav [data-book-next].book-more{border-color:var(--acid,#c4eb78);color:var(--acid,#c4eb78);box-shadow:0 0 0 1px #c4eb7855;animation:book-more 1.6s ease-in-out 3}@keyframes book-more{50%{box-shadow:0 0 0 3px #c4eb7833}}@media(prefers-reduced-motion:reduce){.book-nav [data-book-next].book-more{animation:none}}
