.orientation-dialog{box-sizing:border-box;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0;background:#080a08;color:#c8c5b9;font-family:serif;z-index:10000}.orientation-dialog::backdrop{background:#080a08}.orientation-shell{max-width:850px;height:100%;margin:auto;display:flex;flex-direction:column}.orientation-scroll{flex:1;min-height:0;overflow:auto;padding:clamp(20px,5vw,56px);line-height:1.9}.orientation-scroll small{color:#a18b5e;letter-spacing:.1em}.orientation-scroll h2,#orientation-reference h1,#orientation-reference h2{font-size:clamp(28px,5vw,34px);color:#dac89e;line-height:1.5}.orientation-narration{white-space:pre-line;line-height:2.2;font-size:16px}.orientation-rule{padding:22px 0;border-bottom:1px solid #48402e}.orientation-rule h3{font-size:clamp(22px,3vw,26px);font-weight:600;color:#d4bd87;line-height:1.6;margin:0 0 12px}.orientation-rule p{font-size:16px;line-height:1.95;margin:0;color:#c8c5b9}.orientation-actions{padding:18px 24px;border-top:1px solid #55482e;background:#10120e;display:flex;gap:12px;flex-wrap:wrap;align-items:center}.orientation-actions label{width:100%;font-size:14px}.orientation-actions button,.orientation-reference-link{border:1px solid #a18b5e;background:#1a1c14;color:#e0cda1;padding:12px 18px;cursor:pointer;font:inherit}.orientation-actions button:disabled{opacity:.4;cursor:not-allowed}.orientation-actions input{width:18px;height:18px;vertical-align:middle}.orientation-reference-link{display:inline-block;text-decoration:none;margin:8px 0}.orientation-reference-link:focus-visible,.orientation-actions button:focus-visible{outline:2px solid #eed597;outline-offset:3px}#orientation-reference{max-width:800px;margin:30px auto;padding:0 22px}#orientation-reference section{scroll-margin-top:80px}.orientation-nav{position:sticky;top:0;background:#10120e;padding:12px;display:flex;flex-wrap:wrap;gap:18px;z-index:2}.orientation-nav a{color:#dfcda0}
.orientation-narration,#orientation-reference #narration h1,.orientation-scroll:has(.orientation-narration) h2{text-align:center}
.orientation-rule p{white-space:pre-line}
.orientation-rule p+p{margin-top:1em}
.orientation-rule strong,.orientation-narration strong{font-weight:700;color:#eddaad}
/* Keep native wheel, touch and keyboard scrolling without visible bars. */
.orientation-dialog{overflow:hidden;scrollbar-width:none}
.orientation-reading{position:relative;display:flex;flex:1;min-height:0;overflow:hidden}
.orientation-scroll{overflow-x:hidden;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:88px;overscroll-behavior:contain;overflow-wrap:anywhere}
.orientation-scroll::-webkit-scrollbar,.orientation-dialog::-webkit-scrollbar{display:none;width:0;height:0}
html:has(.orientation-dialog[open]),body:has(.orientation-dialog[open]){overflow:hidden}
.orientation-actions{flex-shrink:0}
.orientation-scroll-hint{position:absolute;bottom:0;left:0;right:0;padding:28px 0 10px;display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none;background:linear-gradient(transparent,#080a08 48%);color:#c5aa70;font-size:12px;letter-spacing:.2em;opacity:1;visibility:visible;transition:opacity .25s ease,visibility .25s ease}
.orientation-scroll-hint.is-hidden{opacity:0;visibility:hidden}
.orientation-down{font-size:24px;line-height:1.2;animation:orientation-arrow 1.8s ease-in-out infinite}
@keyframes orientation-arrow{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
@media(prefers-reduced-motion:reduce){.orientation-down{animation:none}.orientation-scroll-hint{transition:none}}
/* Balance each authored narration line independently on narrow screens. */
@media(max-width:720px){
  .orientation-narration{white-space:normal;line-height:1.95;letter-spacing:0}
  .orientation-narration .narration-line{display:block;text-wrap:balance;overflow-wrap:normal;word-break:normal;line-break:strict}
  .orientation-narration .narration-line:empty{min-height:1.3em}
}
