/* One continuous room, with quiet navy surfaces for the words and controls.
 * At 72% alpha, ivory body text exceeds 4.5:1 even over a white window.
 * Apply translucency to the background only, never to the lettering. */
body.ff-in-room:not(.ff-room-library){
 --ff-reading-surface:rgba(20,45,63,.72);
 --ff-reading-ink:#f5eee5;
 --ff-reading-rule:#c8a17b;
}
body.ff-in-room:not(.ff-room-library) #main :is(.ff-reading-panel,.ff-room-scene:has(.ff-page-intro)){
 box-sizing:border-box;position:relative;isolation:isolate;width:100%;max-width:760px;
 min-height:0;display:block;margin:32px 0!important;padding:36px!important;
 border:1px solid var(--ff-reading-rule);border-radius:4px;
 background:var(--ff-reading-surface);color:var(--ff-reading-ink);
 box-shadow:inset 0 0 0 4px #142d3f55,inset 0 0 0 5px #c8a17b55,0 12px 30px #07131f55;
 overflow:visible;
}
/* Blur is on a decorative child so a fixed map locator still belongs to the viewport. */
body.ff-in-room:not(.ff-room-library) #main :is(.ff-reading-panel,.ff-room-scene:has(.ff-page-intro))::before{
 content:"";display:block;position:absolute;inset:0;z-index:-1;border-radius:inherit;
 background:none!important;pointer-events:none;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);
}
body.ff-in-room:not(.ff-room-library) #main .ff-reading-panel>.ff-room-scene{
 display:block;isolation:auto;max-width:none;min-height:0;margin:0!important;padding:0!important;
 border:0;border-radius:0;background:transparent;box-shadow:none;
}
body.ff-in-room:not(.ff-room-library) #main .ff-reading-panel>.ff-room-scene::before{content:none;display:none}
body.ff-in-room:not(.ff-room-library) #main .ff-room-scene:has(.ff-page-intro)>.ff-room-plaque{
 position:relative;inset:auto;display:block;width:max-content;max-width:100%;margin:0 0 28px;
 text-align:left;
}
body.ff-in-room:not(.ff-room-library) #main .ff-room-scene:has(.ff-page-intro)>.ff-page-intro{
 max-width:none;padding:0!important;margin:0 0 24px;z-index:auto;background:transparent;
}
body.ff-in-room:not(.ff-room-library) #main .ff-room-scene .ff-page-intro h1{
 max-width:none;margin:10px 0 18px;font-size:clamp(40px,4.5vw,60px)!important;
 line-height:1.12!important;text-shadow:none;color:var(--ff-reading-ink);
}
body.ff-in-room:not(.ff-room-library) #main .ff-room-scene .ff-page-deck{
 max-width:60ch;padding:0;border:0;background:none;text-shadow:none;
 color:var(--ff-reading-ink);font-size:20px!important;line-height:1.65!important;
}
body.ff-in-room:not(.ff-room-library) #main .ff-room-scene:has(.ff-page-intro)>.ff-room-atmosphere{display:none}
body.ff-in-room #main .ff-reading-panel :is(.ffx-reading-intro,.ffx-reading){
 max-width:none;margin:0;padding:0;background:transparent;
}
body.ff-in-room #main .ff-reading-panel .ffx-reading-intro{margin-bottom:24px}
body.ff-in-room #main .ff-reading-panel :is(.ffx-reading-intro,.ffx-passage-empty,.ffx-entries,.ffx-article) h2{
 margin:0 0 14px;font-size:clamp(28px,3vw,38px)!important;line-height:1.2!important;color:var(--ff-reading-ink);
}
body.ff-in-room #main .ff-reading-panel :is(.ffx-reading-intro,.ffx-passage-empty,.ffx-entries article,.ffx-article)>p:not(.ffx-eyebrow),
body.ff-in-room #main .ff-reading-panel .ffx-reading>p:not(.ffx-eyebrow),
body.ff-in-room #main .ff-reading-panel .ffx-finding>p:not(.ffx-eyebrow){
 font-family:var(--ff-type-reading,Georgia,serif)!important;font-size:19px!important;
 line-height:1.65!important;color:var(--ff-reading-ink)!important;max-width:60ch;
 margin:0 0 20px;letter-spacing:0;
}
body.ff-in-room #main .ff-reading-panel .ffx-reading p.ffx-quiet{color:var(--ff-reading-ink)!important}
body.ff-in-room #main .ff-reading-panel .ffx-article :is(p,li,dd):not(.ff-card *,.ff-note-card *),
body.ff-in-room #main .ff-reading-panel :is(.ffx-article,.ffx-reading-intro,.ffx-entries) :is(p,li,dd) a:not(.ff-button,.ffx-action){
 color:var(--ff-reading-ink)!important;
}
body.ff-in-room #main .ff-reading-panel :is(.ff-eyebrow,.ffx-eyebrow):not(.ff-card *,.ff-note-card *),
body.ff-in-room:not(.ff-room-library) #main .ff-room-scene>.ff-page-intro>.ff-eyebrow{
 color:#f5e4cf!important;margin:0 0 8px;
}
body.ff-room-passage #main .ff-reading-panel .ff-room-hotspots{
 position:relative;inset:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
 width:100%;gap:14px;margin:0 0 28px;padding:0;overflow:visible;z-index:4;
}
body.ff-room-passage #main .ff-reading-panel .ff-room-hotspots .ffx-discovery-pin{
 position:relative;inset:auto;transform:none;min-width:0;width:auto;min-height:56px;
 padding:10px 8px;font-size:14px!important;line-height:1.4!important;flex-direction:row;
}
body.ff-room-passage #main .ff-reading-panel .ffx-findings{
 grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;
}
body.ff-room-passage #main .ff-reading-panel .ffx-finding{min-width:0}
body.ff-room-passage #main .ff-reading-panel .ffx-finding>h3{color:var(--ff-reading-ink)}
body.ff-in-room #main .ff-reading-panel .ffx-passage-empty{
 position:relative;border-top:1px solid var(--ff-reading-rule);padding:26px 0 0;
}
body.ff-in-room #main .ff-reading-panel .ffx-empty-slot-anchor{
 display:block;position:absolute;top:0;left:0;width:1px;height:1px;
 scroll-margin-top:120px;pointer-events:none;
}
body.ff-in-room #main .ff-reading-panel>.ff-room-back{
 margin:26px 0 0!important;padding:0;border:0;background:none;box-shadow:none;
}
body.ff-in-room #main .ff-reading-panel .ffx-action{display:inline-flex;margin-bottom:24px;color:var(--ff-control-ink)!important}
body.ff-in-room #main .ff-reading-panel .ffx-entries{margin-top:24px}
body.ff-in-room #main .ff-reading-panel .ffx-entries article{border-color:var(--ff-reading-rule)}
/* Catalogue fallbacks have room for their existing card grid; the cards retain solid reading surfaces. */
body.ff-in-room:not(.ff-room-library):is(.ff-room-archive,.ff-room-available) #main .ff-reading-panel{max-width:1120px}
@media(max-width:700px){
 body.ff-in-room:not(.ff-room-library) #main :is(.ff-reading-panel,.ff-room-scene:has(.ff-page-intro)){
  width:100%;max-width:100%;min-height:0;margin:20px 0 28px!important;padding:24px 20px!important;
 }
 body.ff-in-room:not(.ff-room-library) #main .ff-reading-panel>.ff-room-scene{margin:0!important;padding:0!important}
 body.ff-in-room:not(.ff-room-library) #main .ff-room-scene:has(.ff-page-intro)>.ff-room-plaque{margin-bottom:24px}
 body.ff-in-room:not(.ff-room-library) #main .ff-room-scene .ff-page-intro h1{font-size:40px!important}
 body.ff-in-room:not(.ff-room-library) #main .ff-room-scene .ff-page-deck{font-size:18px!important}
 body.ff-in-room #main .ff-reading-panel :is(.ffx-reading-intro,.ffx-passage-empty,.ffx-entries article,.ffx-article)>p:not(.ffx-eyebrow),
 body.ff-in-room #main .ff-reading-panel .ffx-reading>p:not(.ffx-eyebrow),
 body.ff-in-room #main .ff-reading-panel .ffx-finding>p:not(.ffx-eyebrow){font-size:18px!important}
 body.ff-room-passage #main .ff-reading-panel .ff-room-hotspots{gap:10px}
 body.ff-room-passage #main .ff-reading-panel .ff-room-hotspots .ffx-discovery-pin{
  min-height:82px;flex-direction:column;padding:8px 3px;gap:3px;font-size:12px!important;
 }
 body.ff-room-passage #main .ff-reading-panel .ffx-findings{grid-template-columns:1fr}
}
@media print{
 body.ff-in-room:not(.ff-room-library) #main :is(.ff-reading-panel,.ff-room-scene:has(.ff-page-intro)){
  --ff-reading-ink:#182b3a;--ff-reading-rule:#617587;background:#fff;box-shadow:none;color:#182b3a;
 }
 body.ff-in-room:not(.ff-room-library) #main :is(.ff-reading-panel,.ff-room-scene:has(.ff-page-intro))::before{display:none}
 body.ff-in-room #main .ff-reading-panel :is(.ff-eyebrow,.ffx-eyebrow):not(.ff-card *,.ff-note-card *),
 body.ff-in-room:not(.ff-room-library) #main .ff-room-scene>.ff-page-intro>.ff-eyebrow{color:#182b3a!important}
}
