/* A real DOM book: rigid cover, paper faces and scroll-driven hinges. */
.page-menu .menu-main { padding-top: 0; }
.book-scroll { position: relative; height: 100vh; }
.book-stage { position: relative; height: 100vh; min-height: 620px; overflow: hidden; background: radial-gradient(ellipse at 70% 48%, #eee4d6 0%, #faf8f5 60%); isolation: isolate; }
.book-ready .book-scroll { height: 340vh; }
.book-ready .book-stage { position: sticky; top: 0; }
.book-intro { position: absolute; z-index: 5; top: 32%; left: max(5vw, calc((100vw - 1200px) / 2)); width: min(35%, 520px); }
.book-intro h1 { font-size: clamp(2.8rem, 4.5vw, 4.7rem); margin: 1.2rem 0; }
.book-intro p { line-height: 1.8; }
.book-skip { display: inline-flex; align-items: center; gap: 1rem; font-size: .85rem; border-bottom: 1px solid #9e8e7a; padding: .5rem 0; margin-top: 1.5rem; }
.book-scene { --book-width: clamp(230px, 26vw, 355px); position: absolute; left: 50%; top: 49%; width: calc(var(--book-width) * 2); height: calc(var(--book-width) * 1.5); perspective: 1800px; transform: translate(-50%, -42%); }
.book-model { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transform: rotateX(9deg) rotateY(-12deg) rotateZ(-4deg); }
.book-model::after { content: ''; position: absolute; left: 50%; top: 96%; width: 100%; height: 25%; border-radius: 50%; background: #422211; filter: blur(28px); opacity: .22; transform: translateX(-30%) translateZ(-25px); pointer-events: none; }
.book-back-board, .book-paper-right, .book-leaf, .book-front-cover { position: absolute; left: 50%; top: 0; width: 50%; height: 100%; border-radius: 2px 7px 7px 2px; transform-style: preserve-3d; }
.book-back-board { background: #631519; transform: translateZ(-12px); box-shadow: 3px 6px 0 #481216, 10px 16px 20px #42221122; }
.book-paper-right { background: #faf7ee; border-right: 5px solid #e1d6c4; border-bottom: 5px solid #e1d6c4; transform: translateZ(-3px); box-shadow: inset 15px 0 20px -14px #65412366; }
.book-paper-left { position: absolute; left: 0; width: 50%; height: 100%; background: #f6f0e4; border-radius: 7px 0 0 7px; transform: translateZ(-4px); box-shadow: inset -15px 0 20px -14px #65412366; opacity: 0; }
.book-front-cover { transform-origin: left center; transform: translateZ(7px); }
.book-face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; border-radius: inherit; overflow: hidden; }
.book-cover-face { color: #eac37a; background: radial-gradient(ellipse at 25% 40%, #bb3436aa, transparent 65%), radial-gradient(ellipse at 90% 80%, #3c050c99, transparent 65%), repeating-linear-gradient(37deg, #ffffff03 0 1px, #00000003 1px 3px), #831b22; border: 2px solid #5e1118; box-shadow: inset 0 0 28px #30000699, inset 3px 0 2px #dc676144, 5px 6px 0 #5e1118; }
.book-cover-face::after { content: ''; position: absolute; inset: 0; opacity: .2; background: url('../assets/images/leather-grain.svg'); mix-blend-mode: soft-light; pointer-events: none; }
.book-gold-border { position: absolute; inset: 5.5%; border: 1px solid #dfb869; outline: 1px solid #c3923b; outline-offset: 4px; }
.book-brand { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 82%; text-align: center; text-transform: uppercase; font-family: var(--font-heading); text-shadow: 0 1px 0 #6e2904, 0 -1px 0 #fff0ac88; }
.book-swan { width: 50%; height: auto; margin-bottom: .3rem; filter: drop-shadow(0 1px 0 #692606); }
.book-brand > span { font-size: clamp(18px, 2.3vw, 30px); letter-spacing: .07em; }
.book-brand > strong { font-size: clamp(25px, 3vw, 40px); font-weight: 500; letter-spacing: .05em; }
.book-corner { position: absolute; font-size: 42px; line-height: 1; color: #edcb8a; }
.corner-tl { top: -12px; left: -10px; transform: rotate(-45deg); }
.corner-tr { top: -12px; right: -10px; transform: rotate(45deg) scaleX(-1); }
.corner-bl { bottom: -12px; left: -10px; transform: rotate(45deg) scaleY(-1); }
.corner-br { bottom: -12px; right: -10px; transform: rotate(-45deg) scale(-1); }
.book-cover-inside { transform: rotateY(180deg); background: linear-gradient(90deg,#5b1118,#8c242b 65%,#50121a); border: 4px solid #631319; }
.book-inside-border { position: absolute; inset: 6%; border: 1px solid #d6a95377; }
.book-spine { position: absolute; left: calc(50% - 7px); width: 10px; height: 100%; background: linear-gradient(90deg,#4e0a14,#a63a40,#5d1119); border-radius: 3px; transform: translateZ(5px); }
.book-leaf { transform-origin: left center; }
.leaf-one { transform: translateZ(3px); }
.leaf-two { transform: translateZ(1px); }
.leaf-front, .leaf-back { background: #fffdf8; box-shadow: inset 14px 0 17px -16px #331500aa; }
.leaf-back { transform: rotateY(180deg); box-shadow: inset -14px 0 17px -16px #331500aa; }
.book-leaf img { width: 100%; height: 100%; object-fit: fill; }
.book-welcome, .book-final-page { position: absolute; inset: 0; padding: 12% 9%; text-align: center; }
.book-welcome .book-swan { color: #ae8a51; width: min(35%, 520px); margin: 5% auto; }
.book-welcome h2 { font-size: clamp(23px, 2.5vw, 35px); }
.book-welcome p { font-size: 11px; margin-top: 1rem; }
.book-welcome .subtitle, .book-final-page .subtitle { font-size: 9px; letter-spacing: 1.5px; }
.book-final-page h2 { font-size: clamp(24px, 3vw, 40px); }
.book-page-rule { width: 30px; height: 1px; background: #a68b5c; margin: 12% auto; }
.book-dish { display: flex; justify-content: space-between; gap: .7rem; text-align: left; font-family: var(--font-heading); font-size: clamp(11px, 1.2vw, 16px); line-height: 1.35; margin: 11% 0; }
.book-dish b { white-space: nowrap; font-weight: 500; }
.book-page-number { position: absolute; bottom: 5%; left: 0; width: 100%; font-size: 9px; color: #a18f70; letter-spacing: 1px; }
.book-scroll-cue { position: absolute; bottom: 6%; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 14px; font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: #79654e; white-space: nowrap; }
.book-cue-line { height: 38px; width: 1px; background: linear-gradient(#aa8b5a,transparent); }
.book-progress { position: absolute; bottom: 0; width: 100%; height: 2px; background: #ddcdb622; }
.book-progress span { display: block; width: 100%; height: 100%; background: #a68956; transform: scaleX(0); transform-origin: left; }
.menu-arrival { padding-top: 4rem; padding-bottom: 3rem; scroll-margin-top: 90px; }
.menu-arrival h2 { margin-bottom: 1rem; }

@media (prefers-reduced-motion: reduce) {
 .book-ready .book-scroll { height: 100vh; }
 .book-ready .book-stage { position: relative; }
 .book-scroll-cue, .book-progress { display: none; }
}
.book-brand .book-swan { display: block; width: 50%; height: auto; aspect-ratio: 345 / 305; margin-bottom: 1rem; }
.book-welcome .book-swan { display: block; height: auto; aspect-ratio: 345 / 305; }

/* Typeset vector pages stay sharp at every camera distance. */
.book-typeset-page { display: block; width: 100%; height: 100%; }
.book-typeset-page text { fill: #30271f; font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; }
.book-typeset-page .paper-category { font-size: 28px; font-style: italic; }
.book-typeset-page .paper-dish, .book-typeset-page .paper-price { font-size: 20px; }
.book-typeset-page .paper-variant { font-size: 16px; fill: #76685a; }
.book-typeset-page .paper-number { font-size: 13px; letter-spacing: 2px; fill: #9c8668; }
.book-paper-left { opacity: 0; }
.book-intro { transition: none; }
.book-front-cover, .book-leaf { will-change: auto; }
.leaf-front { transform: translateZ(.1px); }
.leaf-back, .book-cover-inside { transform: rotateY(180deg) translateZ(.1px); }
/* Composite each turning sheet separately; SVG descendants must not reorder
   the resting sheets in the browser's shared 3D sorting context. */
.book-model { transform-style: flat; perspective: 1800px; }
.book-paper-left, .book-paper-right { z-index: 1; }
.leaf-one { z-index: 30; }
.leaf-two { z-index: 20; }
.book-front-cover { z-index: 50; }
.book-spine { z-index: 45; }

/* A shallow paper bow and directional light during each turn. */
.book-page-strip {
    position: absolute;
    top: 0;
    width: calc(100% / 6 + .6px);
    height: 100%;
    overflow: hidden;
    background: #fffdf8;
    transform-origin: center center;
}
.book-strip-content { position: absolute; top: 0; width: 600%; height: 100%; }
.book-strip-content .book-typeset-page { width: 100%; height: 100%; }
.book-leaf .book-face::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(90deg,
        rgba(54, 35, 16, var(--paper-shade, 0)),
        transparent 30%,
        rgba(255, 255, 255, var(--paper-light, 0)) 66%,
        rgba(54, 35, 16, var(--paper-shadow, 0)));
}

/* The inside title page is attached to the cover. It rotates with the
   board rather than appearing underneath it before the book is open. */
.book-cover-inside .book-welcome {
    inset: 9px;
    background: #f6f0e4;
    border-radius: 4px 1px 1px 4px;
    box-shadow: inset -10px 0 16px -14px #65412388;
}
.book-paper-left { visibility: hidden; }

.book-skip {
    gap: 1.25rem;
    min-height: 48px;
    padding: .85rem 1.35rem;
    border: 1px solid #b99256;
    border-radius: 4px;
    background: linear-gradient(135deg, #8b2530, #68151f);
    color: #fff3db;
    font-size: .9rem;
    font-weight: 400;
    letter-spacing: .15px;
    box-shadow: 0 5px 16px #68151f18, inset 0 0 0 3px #eac37a12;
    transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.book-skip > span { color: #eac37a; font-size: 1.25rem; transition: transform .2s ease; }
.book-skip:hover { background: #8b2530; box-shadow: 0 7px 20px #68151f28, inset 0 0 0 3px #eac37a20; transform: translateY(-2px); }
.book-skip:hover > span { transform: translateY(3px); }
.book-skip:focus-visible { outline: 2px solid #8b2530; outline-offset: 4px; }


/* Phone layout first; the book uses the space between both navigation bars. */

 .book-stage { min-height: 0; height: calc(100svh - 70px); }
 .book-ready .book-scroll { height: 300svh; }
 .book-intro { top: 8%; left: 6%; width: 88%; text-align: center; }
 .book-intro h1 { font-size: 2.4rem; margin: .6rem 0; }
 .book-intro h1 br { display: none; }
 .book-intro p { font-size: .9rem; }
 .book-intro p br { display: none; }
 .book-intro .subtitle { font-size: .65rem; }
 .book-skip { margin-top: .5rem; font-size: .75rem; }
 .book-scene { --book-width: min(42vw, 245px); top: 60%; transform: translate(-50%,-50%); }
 .book-model { transform: translateX(calc(var(--book-width) * -.5)) rotateX(9deg) rotateY(-12deg) rotateZ(-4deg); }
 .book-brand > span { font-size: 16px; }
 .book-brand > strong { font-size: 23px; }
 .book-corner { font-size: 28px; }
 .book-scroll-cue { bottom: 3%; }
 .book-cue-line { height: 20px; }
 .book-dish { font-size: 9px; margin: 6% 0; }
 .book-final-page .subtitle { font-size: 7px; }
 .book-welcome p { font-size: 8px; }
.book-scroll { height: auto; }
.book-stage { height: calc(100svh - var(--mobile-header-height) - var(--mobile-nav-height)); min-height: 560px; }
.book-ready .book-stage { top: var(--mobile-header-height); }
.book-intro { top: 5%; }
.book-intro h1 { font-size: clamp(2rem, 8vw, 2.4rem); }
.book-scene { top: 66%; }
.book-skip { font-size: .8rem; padding: .7rem 1.1rem; min-height: 48px; }
.book-ready .book-scroll { height: 280svh; }
.book-ready .book-stage { height: calc(100svh - var(--mobile-header-height) - var(--mobile-nav-height)); }
.book-progress { bottom: 0; }
@media (min-width: 960px) {
 .book-scroll { height: 100vh; }
 .book-stage { height: 100vh; min-height: 620px; }
 .book-ready .book-scroll { height: 340vh; }
 .book-ready .book-stage { top: 0; height: 100vh; }
 .book-intro { top: 32%; left: max(5vw, calc((100vw - 1200px) / 2)); width: min(35%, 520px); text-align: left; }
 .book-intro h1 { font-size: clamp(2.8rem, 4.5vw, 4.7rem); margin: 1.2rem 0; }
 .book-intro h1 br, .book-intro p br { display: initial; }
 .book-intro p { font-size: 1.125rem; }
 .book-intro .subtitle { font-size: .85rem; }
 .book-skip { margin-top: 1.5rem; font-size: .9rem; padding: .85rem 1.35rem; }
 .book-scene { --book-width: clamp(230px, 26vw, 355px); top: 49%; transform: translate(-50%, -42%); }
 .book-model { transform: rotateX(9deg) rotateY(-12deg) rotateZ(-4deg); }
 .book-brand > span { font-size: clamp(18px, 2.3vw, 30px); }
 .book-brand > strong { font-size: clamp(25px, 3vw, 40px); }
 .book-corner { font-size: 42px; }
 .book-scroll-cue { bottom: 6%; }
 .book-cue-line { height: 38px; }
 .book-dish { font-size: clamp(11px, 1.2vw, 16px); margin: 11% 0; }
 .book-final-page .subtitle { font-size: 9px; }
 .book-welcome p { font-size: 11px; }
}

/* Short phone screens use normal document flow, with no cropped cover. */
.book-static .book-stage { display: flex; flex-direction: column; align-items: center; height: auto; min-height: 0; padding-bottom: 2rem; }
.book-static .book-intro { position: relative; top: auto; left: auto; width: 100%; padding: 2rem 1.25rem 0; }
.book-static .book-scene { position: relative; top: auto !important; left: auto; transform: none; margin: 2rem auto 1rem; }
.book-static .book-scroll-cue, .book-static .book-progress { display: none; }

/* Place the mobile action beneath the cover, above the bottom navigation. */
.book-stage > .book-skip { position:absolute; bottom:7%; left:50%; transform:translateX(-50%); z-index:6; margin:0; white-space:nowrap; }
.book-stage > .book-skip:hover { transform:translateX(-50%); }
.book-scene { top:55%; --book-width:min(42vw, 230px, 30svh); }
.book-scroll-cue { bottom:1%; }
.book-scroll-cue .book-cue-line { display:none; }
.book-static .book-stage > .book-skip { position:relative; bottom:auto; left:auto; transform:none; margin:1rem auto 0; }
@media(min-width:960px) {
 /* Reserve a footer beneath the book, including on short desktop screens. */
 .book-scene { --book-width:min(clamp(230px,26vw,355px),42vh); top:49%; }
 .book-scroll-cue { bottom:18px; }
 .book-scroll-cue .book-cue-line { display:none; }
}

/* Two leather-bound volumes, sharing one scroll-driven reading stage. */
.book-ready .book-scroll { height:var(--book-distance,340svh); }
.book-blue .book-cover-face { background:radial-gradient(ellipse at 25% 30%,#476bbaaa,transparent 68%),radial-gradient(ellipse at 90% 85%,#060f3899,transparent 65%),repeating-linear-gradient(37deg,#ffffff03 0 1px,#00000003 1px 3px),#183879; border-color:#102753; box-shadow:inset 0 0 28px #050d3499,inset 3px 0 2px #819de944,5px 6px 0 #102753; }
.book-blue .book-back-board { background:#162c5b; box-shadow:3px 6px 0 #0b1c40,10px 16px 20px #111d3322; }
.book-blue .book-spine { background:linear-gradient(90deg,#0c1d44,#3d5f9b,#132955); }
.book-blue .book-cover-inside { background:linear-gradient(90deg,#142852,#345084 65%,#102348); border-color:#142852; }
.book-behind { position:absolute; left:50%; top:0; width:50%; height:100%; padding:0; border:0; border-radius:3px 7px 7px 3px; transform:translate(32px,-22px) rotate(7deg) scale(.96); z-index:0; cursor:pointer; background:transparent; }
.book-behind .book-cover-face { position:absolute; inset:0; }
.book-behind .book-brand { justify-content:flex-start; padding-top:20%; }
.book-tap { position:absolute; left:50%; top:0; width:50%; height:100%; z-index:70; background:transparent; border:0; border-radius:4px; cursor:pointer; }
.book-tap:focus-visible, .book-behind:focus-visible { outline:3px solid #eac37a; outline-offset:6px; }
.book-tap[hidden],#food-menu-content[hidden] { display:none; }
.book-actions { display:flex; gap:.6rem; flex-wrap:wrap; }
.book-actions .book-skip { margin:0; justify-content:center; font-size:.75rem; gap:.65rem; padding:.8rem 1rem; }
.book-skip-drinks { background:linear-gradient(130deg,#38589c,#172f67); box-shadow:0 5px 16px #18336c20,inset 0 0 0 3px #eac37a12; }
.book-skip-drinks:hover { background:linear-gradient(130deg,#476bb1,#1c3979); box-shadow:0 7px 20px #18336c28,inset 0 0 0 3px #eac37a20; }
.book-skip-drinks:focus-visible { outline-color:#254782; }
.book-stage > .book-actions { position:absolute; bottom:7%; left:5%; width:90%; justify-content:center; z-index:6; }
.book-choice { font-size:.65rem !important; letter-spacing:.06em; color:#8b7656; margin-top:.65rem; }
.book-static .book-stage > .book-actions { position:relative; bottom:auto; left:auto; width:90%; margin:1rem auto 0; }
@media(min-width:960px) { .book-actions { margin-top:1.5rem; } .book-actions .book-skip { font-size:.8rem; } .book-behind { transform:translate(42px,-26px) rotate(7deg) scale(.96); } }
@media(prefers-reduced-motion:reduce) { .book-actions a { transition:none; } }
.book-behind:not(.book-blue) .book-cover-face { background:radial-gradient(ellipse at 25% 40%,#bb3436aa,transparent 65%),radial-gradient(ellipse at 90% 80%,#3c050c99,transparent 65%),repeating-linear-gradient(37deg,#ffffff03 0 1px,#00000003 1px 3px),#831b22; border-color:#5e1118; box-shadow:inset 0 0 28px #30000699,inset 3px 0 2px #dc676144,5px 6px 0 #5e1118; }
.book-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.book-actions .book-skip { font-size:.72rem; padding:.7rem .6rem; gap:.4rem; text-align:center; min-height:58px; line-height:1.4; }
.book-actions .book-skip span { flex-shrink:0; }
.book-blue .book-brand > span:not(.book-swan) { font-size:clamp(12px,2vw,24px); }

/* Close the rear board, then present stable actions outside the 3D layers. */
.book-back-board { transform-origin:left center; }
.book-back-inner { background:#fffdf8; box-shadow:inset 14px 0 17px -16px #331500aa; }
.book-back-outside { transform:rotateY(180deg); }
.book-closing-copy { position:absolute; inset:10% 8%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#f1d699; }
.book-closing-copy .brand-mark { width:28%; height:auto; aspect-ratio:345 / 305; flex-shrink:0; margin-bottom:12%; background:currentColor; }
.book-closing-copy h2 { color:inherit; font-size:clamp(20px,2.6vw,34px); line-height:1.2; margin:10% 0; }
.book-closing-label { font-size:clamp(7px,.8vw,11px); letter-spacing:.12em; text-transform:uppercase; }
.book-closing-copy p { font-size:clamp(9px,1vw,13px); color:inherit; }
.book-ending-actions { position:absolute; z-index:8; left:50%; bottom:7%; transform:translateX(-50%); width:min(90%,460px); display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.book-ending-actions[hidden] { display:none; }
.book-ending-actions a { display:flex; justify-content:center; align-items:center; min-height:48px; padding:.6rem 1rem; border:1px solid #b9a17b; border-radius:4px; background:#faf8f5; color:#443729; font-size:.85rem; text-align:center; }
.book-ending-actions .book-visit-primary { grid-column:1/-1; gap:1rem; color:#fff3db; background:linear-gradient(135deg,#8b2530,#68151f); box-shadow:inset 0 0 0 3px #eac37a12; }
.drinks-active .book-ending-actions .book-visit-primary { background:linear-gradient(130deg,#38589c,#172f67); }
.book-ending-actions a:hover { filter:brightness(1.08); }
.book-ending-actions a:focus-visible { outline:3px solid #b99256; outline-offset:3px; }

/* Typography follows the physical page, including narrow split-page spreads. */
.book-cover-inside { container-type:size; }
.book-cover-inside .book-welcome {
    inset:3%;
    padding:8cqw 6cqw 6cqw;
    display:grid;
    grid-template-rows:auto auto auto 1fr auto;
    justify-items:center;
    align-content:start;
    gap:4cqw;
    min-width:0;
}
.book-welcome .subtitle { font-size:4cqw; letter-spacing:.5cqw; line-height:1.3; }
.book-welcome .book-swan { width:28cqw; height:25cqw; margin:0; }
.book-welcome h2 { font-size:11cqw; line-height:1.18; margin:0; max-width:100%; overflow-wrap:break-word; }
.book-welcome p { font-size:4.5cqw; line-height:1.55; margin:0; max-width:100%; align-self:start; }
.book-welcome .book-page-number { position:static; width:auto; font-size:4cqw; letter-spacing:.4cqw; line-height:1.3; align-self:end; }

/* Keep the interior strictly inside its physical page, even when closed. */
.book-paper-right, .book-final-page { overflow:hidden; }
.book-model.is-closed .book-paper-right,
.book-model.is-closed .book-back-inner { visibility:hidden; }

/* Mobile screens, short viewports and reduced motion use the direct menu. */
@media (max-width:959px), (max-height:619px), (prefers-reduced-motion:reduce) {
 .book-scroll, .book-ready .book-scroll { height:auto; }
 .book-stage, .book-ready .book-stage, .book-static .book-stage { position:relative; top:auto; height:auto; min-height:0; padding:2rem 1.25rem; display:flex; flex-direction:column; gap:1.25rem; background:#faf8f5; }
 .book-intro, .book-static .book-intro { position:static; width:100%; padding:0; text-align:left; }
 .book-intro h1 { font-size:clamp(1.9rem,7vw,2.5rem); margin:.7rem 0; }
 .book-intro h1 br { display:none; }
 .book-intro p { font-size:.9rem; margin:0; }
 .book-scene, .book-choice, .book-scroll-cue, .book-progress, .book-ending-actions { display:none !important; }
 .book-stage > .book-actions, .book-static .book-stage > .book-actions { position:static; width:100%; margin:0; transform:none; }
 .book-intro .book-actions { margin-top:1rem; }
}
.drinks-flat-grid { display:none; }
#getraenke[hidden] { display:none; }
@media (max-width:959px), (max-height:619px), (prefers-reduced-motion:reduce) {
 .drinks-flat-grid { display:block; }
 #getraenke details.drink-category { display:none; }
 .drinks-flat-grid .drink-category { border:0; margin:1.5rem 0 2rem; }
 .drink-flat-heading { font-size:1.65rem; color:#263e54; margin:0 0 1rem; }
 .drinks-flat-grid .menu-grid { gap:.75rem; }
 .drinks-flat-grid .menu-item { border:1px solid #d7dfe5; border-radius:6px; padding:1rem; background:#fafcfd; }
 .book-compact .menu-arrival { padding-top:1.5rem; padding-bottom:1.5rem; }
 .book-compact #getraenke { padding-top:1.5rem; }
 .book-actions a[aria-current="true"] { outline:2px solid #b99256; outline-offset:3px; }
}

@media (max-width:959px) {
 .book-choice { display:none; }
 .book-intro h1 { font-size:clamp(1.7rem,7vw,2.2rem); }
 .book-scene { top:60%; --book-width:min(42vw,230px,22svh); }
}

/* Two opaque covers exchange places along opposing curved paths. */
.book-model.book-swapping > :not(.book-swap-volume) { visibility:hidden !important; }
.book-model.book-swapping > :not(.book-swap-volume) * { visibility:hidden !important; }
.book-swap-volume { position:absolute; left:50%; top:0; width:50%; height:100%; border-radius:2px 7px 7px 2px; pointer-events:none; }
.book-swap-volume > .book-cover-face { position:absolute; inset:0; }
.book-swap-volume:not(.book-blue) .book-cover-face { background:radial-gradient(ellipse at 25% 40%,#bb3436aa,transparent 65%),radial-gradient(ellipse at 90% 80%,#3c050c99,transparent 65%),repeating-linear-gradient(37deg,#ffffff03 0 1px,#00000003 1px 3px),#831b22; border-color:#5e1118; box-shadow:inset 0 0 28px #30000699,inset 3px 0 2px #dc676144,5px 6px 0 #5e1118; }

/* On mobile, start directly with the menu instead of the book introduction. */
@media (max-width:959px) {
 .book-scroll { display:none; }
}

/* Welcome letter precedes both menus on small screens. */
.menu-preface { display: none; }
.book-typeset-page .paper-preface { font-size: 19px; fill: #362d24; }
@media (max-width: 959px) {
 .menu-preface { display: block; padding: 48px 0 36px; background: #faf8f4; }
 .menu-preface .container { max-width: 720px; }
 .menu-preface h1 { font-size: clamp(30px, 5vw, 42px); line-height: 1.15; margin: 12px 0 28px; }
 .menu-preface p { font-size: 17px; line-height: 1.75; margin: 0 0 20px; }
 .menu-preface p:last-child { color: #8b713d; font-style: italic; }
}
