.nocturns-bookplate{aspect-ratio:2/3;border:1px solid var(--book-pink);padding:9px 6px;display:flex;flex-direction:column;justify-content:space-between;background:var(--book-bg);font:8px/1.5 Georgia,serif;color:var(--book-ink);text-decoration:none;letter-spacing:.07em}.nocturns-bookplate strong{font-size:12px;font-weight:normal;color:var(--book-pink)}.nocturns-bookplate small{font:5px/1.4 ui-monospace,monospace;letter-spacing:.1em;color:var(--book-cyan)}
.book-host .book-mast h1{font-size:clamp(32px,4vw,54px)}.console.visuals-hidden .operating-system{display:none}.console.visuals-hidden .narrative-window{min-height:350px}.console.visuals-hidden:is(:fullscreen,.screen-takeover) .narrative-window{flex:1}.remote #visuals{display:none}.clocks strong{overflow-wrap:anywhere}.narrative-window .passage{overflow-wrap:anywhere}.chapter-ticker{overscroll-behavior-x:contain}.book-host .observer .device{grid-column:auto;grid-row:auto}.book-host .census{display:grid;grid-template-columns:1fr;gap:4px}.book-host .census dt{margin-top:7px}.book-host .census dd{font-size:16px}.registry:empty{display:none}
.nocturns-bookplate strong{font-size:10px;letter-spacing:0}
@media(max-width:600px){.book-host .book-mast h1{font-size:32px}.nocturns-bookplate{padding:5px 3px}.nocturns-bookplate strong{font-size:8px}.nocturns-bookplate>span{font-size:6px}.nocturns-bookplate small{font-size:4px}.book-host .observer .device{grid-column:2}.book-host .observer .census{grid-column:1}.book-host .instrument canvas{max-height:none}.remote .book-mast h1{font-size:25px}}
/* Keep browser-toolbar movement and passage wrapping out of the canvas layout.
   Native fullscreen already owns its viewport; iOS's CSS fallback uses svh. */
.console:fullscreen{height:100%}
.console.screen-takeover{height:100vh;height:100svh;bottom:auto}
.console:is(:fullscreen,.screen-takeover) .instrument canvas{flex:1 1 0;height:0;min-height:0}
.reader-fullscreen .cosmic-field,.reader-fullscreen .site-interference-field{display:none}
@media(max-width:700px),(max-height:500px){
 .console:is(:fullscreen,.screen-takeover) .operating-system{min-height:min-content}
 .console:is(:fullscreen,.screen-takeover) .narrative-window{flex:0 0 auto;height:clamp(125px,24svh,200px);min-height:0;overflow:auto;overscroll-behavior:contain;justify-content:flex-start}
 .console:is(:fullscreen,.screen-takeover).is-prologue .narrative-window{flex:1;height:auto}
 .console:is(:fullscreen,.screen-takeover) .instrument{min-height:200px;overflow:hidden}
 .console:is(:fullscreen,.screen-takeover) .instrument-title{flex-shrink:0;min-height:30px}
 .console:is(:fullscreen,.screen-takeover) .work-area{flex-shrink:0}
 .console:is(:fullscreen,.screen-takeover) .clocks strong{min-height:30px}
}
@media(max-height:500px){
 .console:is(:fullscreen,.screen-takeover) .work-area{display:flex;flex-direction:column;min-height:260px}
 .console:is(:fullscreen,.screen-takeover) .observer{display:none}
}
