/* V7 bounded adapter of V6 site.css + mozg-whole-assembly.css.
   Reader artwork, content and palette remain in style.css. No common SPA CSS. */
:root{--paper:var(--bz-fantazeria-light);--gold:var(--bz-fantazeria);--red:var(--bz-fantazeria);--green:var(--bz-fantazeria);--sans:var(--bz-font-body);--serif:var(--bz-font-display);--bz-world-accent:var(--bz-fantazeria);--fanta-header-height:76px;--fanta-header-visible-height:var(--fanta-header-height)}
body{font-family:var(--bz-font-body);line-height:1.65}
h1,h2,h3{font-family:var(--bz-font-display)}
.hero h1{font-weight:900}.bookhead h1,.journal-shell h1{font-weight:750}
.button{border-radius:10px;font-weight:750;max-width:100%;white-space:normal;overflow-wrap:anywhere}
#site-header{position:sticky;top:0;height:var(--fanta-header-height);z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,5vw,72px);color:var(--gold);background:var(--paper);border-bottom:1px solid var(--line);transition:transform .22s ease;will-change:transform}
#site-header.is-hidden{transform:translateY(-100%)}
#site-header .brand{font-size:20px;font-weight:900;gap:10px;line-height:1;letter-spacing:-.025em;min-width:0}
#site-header .brand-beacon{display:block;flex:none;width:42px;height:42px}
#site-header .brand-beacon img{width:100%;height:100%;object-fit:contain}
@supports ((mask-image:url('')) or (-webkit-mask-image:url(''))){#site-header .brand-beacon{background-color:currentColor;-webkit-mask:url("/assets/media-v1/f4305cdd223b4423754c76cf-w256-q90.webp") center/145% 145% no-repeat;mask:url("/assets/media-v1/f4305cdd223b4423754c76cf-w256-q90.webp") center/145% 145% no-repeat}#site-header .brand-beacon img{display:none}}
#site-header .header-actions{display:flex;align-items:center;gap:24px}
#menu-toggle{width:48px;height:48px;border:0;background:none;display:flex;align-items:center;justify-content:center;padding:10px;cursor:pointer;color:inherit;border-radius:8px}
#menu-toggle span{display:none}
#menu-toggle::before{content:'';width:28px;height:25px;background:currentColor;mask:url('../../assets/menu-icon.svg') center/contain no-repeat;-webkit-mask:url('../../assets/menu-icon.svg') center/contain no-repeat}
#site-menu{position:absolute;right:clamp(18px,5vw,72px);top:84px;width:min(310px,calc(100vw - 32px));padding:14px 18px 0;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 42px #0002;max-height:calc(100dvh - 100px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
#site-menu a{display:flex;align-items:center;min-height:48px;padding:10px 16px;text-decoration:none;font-size:16px;font-weight:750;border-radius:7px}
#site-menu .menu-context{font-size:12px;font-weight:850;letter-spacing:.06em;line-height:1.4;margin:5px 0;color:var(--gold)}
#site-menu .menu-context[data-world]::before,#site-menu .menu-world-list a::before{content:'';display:inline-block;flex:none;width:7px;height:7px;border-radius:50%;background:var(--r16-place,var(--bz-atlas));outline:1px solid #0002;margin-right:10px}
#site-menu .menu-context-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;margin:4px 0 6px;padding-bottom:8px;border-bottom:1px solid var(--line)}
#site-menu .menu-context-sections a{font-size:12px;font-weight:700;line-height:1.4;min-height:44px;padding:9px 2px;border-radius:5px}
#site-menu .menu-context-sections a:last-child:nth-child(odd){grid-column:1/-1}
#site-menu .menu-worlds>summary{display:list-item;min-height:48px;padding:13px 2px;font-size:14px;font-weight:750;cursor:pointer;line-height:22px;list-style-position:inside}
#site-menu .menu-world-list a{min-height:44px;padding:9px 8px;border-bottom:1px solid var(--line);border-radius:0;font-size:12px}
#site-menu>a{min-height:48px;padding:12px 2px;border-bottom:1px solid var(--line);border-radius:0;font-size:13px}
#site-menu a:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent)}
#site-menu a[aria-current]{background:color-mix(in srgb,var(--ink) 12%,transparent)}
#site-menu .menu-work{position:sticky;bottom:0;justify-content:space-between;min-height:52px;margin-top:8px;border-bottom:0;background:var(--paper);font-weight:850;z-index:1}
main>.wrap:not(.credits),.reader-tools>.wrap,.foot>.wrap{box-sizing:border-box;width:100%;max-width:1360px;padding-inline:clamp(18px,5vw,72px)}
.reader-tools{top:var(--fanta-header-visible-height);transition:top .22s ease}
.reader-tools>.wrap{flex-wrap:wrap;gap:10px 20px}
.audio-tools{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 10px;width:min(560px,100%);max-width:100%;min-width:0}
.audio-tools select{max-width:100%;min-width:0;width:100%;font-size:12px}
.audio-tools audio{grid-column:1/-1;grid-row:2;width:100%;max-width:100%;min-width:0;height:42px}
.audio-tools .audio-time{grid-column:3;grid-row:1}
.audio-time{display:block;color:var(--muted);font-size:12px;line-height:1.6;font-variant-numeric:tabular-nums;white-space:nowrap}
.music-intro .audio-time{margin-top:6px}
audio:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.scene{scroll-margin-top:calc(var(--fanta-header-height) + 142px)}
@media(min-width:1360px){#site-header{padding-inline:calc((100vw - 1360px)/2 + clamp(18px,5vw,72px))}#site-menu{right:calc((100vw - 1360px)/2 + clamp(18px,5vw,72px))}}
@media(max-width:800px){.audio-tools{width:100%}}
@media(max-width:600px){:root{--fanta-header-height:68px}#site-header .brand{font-size:18px;gap:9px}#site-header .brand-beacon{width:34px;height:34px}#site-header .header-actions{gap:8px}#site-menu{top:76px}.audio-tools{gap:4px 8px}}
@media(prefers-reduced-motion:reduce){#site-header,.reader-tools{transition:none}#site-header{will-change:auto}}
@media print{#site-header,.audio-time{display:none}}


/* Compact music stays in document flow; the existing scene/contents toolbar stays sticky. */
.score-inline-wrap{padding-block:8px 12px}
.score-disclosure{width:100%;max-width:700px;min-width:0}
.score-disclosure--reader{max-width:560px}
.score-compact-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;min-width:0}
.score-compact-title{font-size:13px;font-weight:750;line-height:1.35;min-width:0;overflow-wrap:anywhere}
.score-compact-actions{display:flex;align-items:center;gap:6px}
.score-compact-actions[hidden],.score-panel[hidden]{display:none}
.score-compact-actions button{min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font-size:12px;line-height:1.3;padding:8px 10px}
.score-compact-actions .score-play{width:44px;min-width:44px;padding:8px;font-size:16px}
.score-compact-actions .score-toggle{white-space:nowrap}
.score-panel{padding-top:12px;min-width:0;max-width:100%}
.score-disclosure--music .score-panel>audio{display:block;width:100%;max-width:100%;min-width:0}
@media print{.score-inline-wrap,.score-disclosure{display:none}}

/* Review: open journal contents begin after a deliberate pause. */
.journal-shell details[open]>summary{margin-bottom:16px}
.journal-shell details[open]>summary+nav{padding-top:0}

/* One persistent, optional world player. Scene navigation never changes music. */
body[data-world="fantazeria"]{padding-bottom:88px}
#fanta-music{position:fixed;z-index:45;inset-inline-end:16px;bottom:max(12px,env(safe-area-inset-bottom));width:min(400px,calc(100vw - 32px));padding:8px 12px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 4px 18px #0002}
#fanta-music .score-panel{max-height:42vh;overflow:auto}
#fanta-music audio{display:block;width:100%;max-width:100%;height:40px}
#fanta-music .score-panel p{margin:10px 0 2px;font-size:12px}
#fanta-music .audio-time{display:block;margin-top:6px;font-size:12px}
#fanta-page{min-width:0}
@media print{#fanta-music{display:none}body[data-world="fantazeria"]{padding-bottom:0}}

/* Music belongs to the page flow: it never floats over artwork. */
body[data-world="fantazeria"]{padding-bottom:0}
#fanta-music{position:relative;inset:auto;z-index:1;width:min(600px,calc(100% - 36px));margin:16px auto 0;padding:8px 12px;box-shadow:none;scroll-margin-top:100px}
#fanta-music[hidden],.music-reopen[hidden]{display:none!important}
.score-close,.music-reopen{min-width:44px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:transparent;color:inherit}
.score-close{font-size:24px;line-height:1}.score-compact-actions{flex-wrap:wrap}.music-reopen{font-size:13px}
@media(max-width:520px){#fanta-music .score-compact-title{font-size:12px}#fanta-music .score-compact-bar{gap:8px;flex-wrap:wrap}.header-actions{gap:8px}.music-reopen{padding:8px}}

#fanta-music{margin-bottom:20px}
