*{box-sizing:border-box;margin:0}
html,body{height:100%}
body{font-family:Inter,system-ui,sans-serif;color:#16203c;overflow:hidden;
background:radial-gradient(90% 90% at 10% 0%,#dfe8f8 0%,transparent 60%),radial-gradient(80% 80% at 100% 100%,#6d8fe0 0%,transparent 60%),#a9bde3;
-webkit-font-smoothing:antialiased}
#deck{position:fixed;inset:0;display:flex;align-items:center;justify-content:center}
#stage{position:relative;width:1600px;height:1000px;flex:0 0 auto;transform-origin:center center;
border-radius:18px;overflow:hidden;box-shadow:0 30px 80px rgba(20,34,80,.35)}
#slide-host{position:absolute;inset:0;transition:opacity .28s ease}
#slide-host.fading{opacity:0}
#chapter-toggle{height:40px;margin-right:4px;padding:0 16px;border-radius:999px;cursor:pointer;
font:600 12px/1 Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#6d4a08;
background:linear-gradient(90deg,rgba(255,250,236,.96),rgba(255,242,208,.92));border:1px solid rgba(224,165,42,.75);
box-shadow:0 6px 18px rgba(20,34,80,.2);backdrop-filter:blur(10px)}
#chapter-menu{position:fixed;bottom:76px;left:50%;transform:translateX(-50%);z-index:6;width:min(360px,calc(100vw - 28px));max-height:calc(100vh - 150px);overflow:auto;
padding:16px;border-radius:20px;background:rgba(255,255,255,.9);border:1px solid #fff;box-shadow:0 20px 50px rgba(20,34,80,.3);backdrop-filter:blur(18px)}
#chapter-menu p{font:600 10px/1.4 Inter,sans-serif;letter-spacing:.14em;color:#936410;margin:2px 8px 12px}
#chapter-menu a{display:flex;gap:12px;align-items:baseline;padding:10px 10px;border-radius:12px;color:#16203c;text-decoration:none;font:500 14px/1.3 Inter,sans-serif}
#chapter-menu a span{font:700 12px/1 "Space Grotesk",sans-serif;color:#936410;min-width:20px}
#chapter-menu a:hover,#chapter-menu a:focus-visible{background:rgba(47,107,255,.09);outline:none}
#chapter-menu a[aria-current="true"]{background:linear-gradient(90deg,rgba(255,246,224,.95),rgba(243,201,105,.35))}
#controls{position:fixed;right:50%;transform:translateX(50%);bottom:14px;z-index:5;display:flex;align-items:center;gap:6px;padding:5px;border-radius:999px;
background:rgba(255,255,255,.82);border:1px solid #fff;box-shadow:0 8px 24px rgba(20,34,80,.22);backdrop-filter:blur(12px)}
#controls button:not(#chapter-toggle){width:40px;height:40px;border-radius:50%;border:1px solid rgba(224,165,42,.7);cursor:pointer;
font:600 18px/1 Inter,sans-serif;color:#6d4a08;background:linear-gradient(135deg,#fffaf0,#f8e7bd)}
#controls button:disabled{opacity:.35;cursor:default}
#controls button:focus-visible,#chapter-toggle:focus-visible{outline:2px solid #2f6bff;outline-offset:2px}
#position{min-width:62px;text-align:center;font:700 13px/1 "Space Grotesk",sans-serif;letter-spacing:.06em;color:#16203c}
#progress{position:fixed;left:0;right:0;bottom:0;height:3px;z-index:4;background:rgba(255,255,255,.35)}
#progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#f3c969,#e0a52a);transition:width .3s ease}
body.clean #chapter-toggle,body.clean #controls,body.clean #progress{display:none}
body.clean #stage{border-radius:0;box-shadow:none}
@media (max-width:700px){
 #chapter-toggle{height:34px;padding:0 12px;font-size:10.5px}
 #chapter-menu{bottom:66px}
 #controls{bottom:max(8px,env(safe-area-inset-bottom))}
 #controls button:not(#chapter-toggle){width:34px;height:34px;font-size:15px}
}
@media (prefers-reduced-motion:reduce){#slide-host,#progress i{transition:none}}
#rotate-hint{display:none;position:fixed;left:50%;top:calc(50% + 31vw);transform:translateX(-50%);z-index:3;white-space:nowrap;
padding:9px 14px;border-radius:999px;font:600 11px/1 Inter,sans-serif;letter-spacing:.12em;color:#6d4a08;
background:rgba(255,250,236,.92);border:1px solid rgba(224,165,42,.7);box-shadow:0 6px 16px rgba(20,34,80,.18)}
body.portrait-phone #rotate-hint{display:block}
@media (max-height:500px){#chapter-toggle{height:32px;font-size:10px;padding:0 10px}#chapter-menu{bottom:56px;max-height:calc(100vh - 64px)}#controls button:not(#chapter-toggle){width:32px;height:32px;font-size:14px}#position{min-width:52px;font-size:12px}#controls{padding:3px;bottom:6px}}
