/* Three staggered shutters, a chapter title, then a quick reveal. */
html { scroll-padding-bottom:100px; }
#p3-overlay { position:fixed;inset:0;z-index:9999;pointer-events:none;visibility:hidden;overflow:hidden;contain:layout paint; }
#p3-overlay.entering,#p3-overlay.arriving { visibility:visible; }
.route-bands { position:absolute;inset:0;display:grid;grid-template-rows:repeat(3,1fr); }
.route-bands i { display:block;position:relative;width:140%;margin-left:-20%;background:#03143d;transform:translateX(-110%) skewX(-16deg);border-right:10px solid #66f0ff; }
.route-bands i:nth-child(2) { background:#075ce5;border-color:#fff; }
.route-bands i:nth-child(3) { background:#102bb9;border-color:#ff6bbc; }
.entering .route-bands i { animation:chapterCover .28s cubic-bezier(.7,0,.25,1) forwards; }
.entering .route-bands i:nth-child(2) { animation-delay:.045s; }
.entering .route-bands i:nth-child(3) { animation-delay:.09s; }
.route-caption { position:absolute;left:12%;top:50%;transform:translateY(-50%) rotate(-5deg);display:flex;flex-direction:column;color:#fff;opacity:0; }
.route-index { position:absolute;left:-.09em;bottom:-.1em;font-size:clamp(180px,30vw,440px);line-height:1;font-style:italic;font-weight:900;color:transparent;-webkit-text-stroke:1px #99e8ff44;z-index:-1; }
.route-caption strong { padding:10px 25px 14px 16px;font-size:clamp(36px,7vw,100px);font-weight:900;font-style:italic;line-height:1;background:linear-gradient(105deg,#efffff 0 94%,#52eeff 94%);color:#063276;box-shadow:10px 10px 0 #041d61;letter-spacing:.025em; }
.route-sub { margin-top:24px;font-size:14px;letter-spacing:.25em;color:#9ff3ff; }
.entering .route-caption { animation:chapterLabelOnce .36s ease-out forwards; }
.arriving .route-bands i { transform:translateX(0) skewX(-16deg);animation:chapterReveal .3s cubic-bezier(.7,0,.25,1) both; }
.arriving .route-bands i:nth-child(2) { animation-delay:.035s; }
.arriving .route-bands i:nth-child(3) { animation-delay:.07s; }
.arriving .route-caption { display:none; }
@keyframes chapterCover { to {transform:translateX(0) skewX(-16deg);} }
@keyframes chapterReveal { to {transform:translateX(110%) skewX(-16deg);} }
@keyframes chapterLabelOnce { 0%,20% {opacity:0;translate:-24px 0;} 48%,78% {opacity:1;translate:0 0;} 100% {opacity:0;translate:12px 0;} }
.chapter-nav a:focus { background:#4ce4ff;color:#031632;outline:2px solid #fff;outline-offset:3px;box-shadow:5px 4px 0 #0752bd; }
.list-row:focus-visible,.contact-card:focus-visible,.read-more-btn:focus-visible { outline:3px solid #62eaff;outline-offset:5px;box-shadow:0 0 0 7px #063db566; }
.keyboard-guide { padding:9px 32px;font-size:14px;letter-spacing:.06em;color:#a5d6ed;background:#030e29a8; }
.keyboard-guide kbd { font:inherit;color:#fff;margin-right:4px; }
.keyboard-guide span { margin-right:18px;white-space:nowrap; }
.menu-hint { flex-wrap:wrap; }
/* Avoid per-frame blur/filter compositing on large moving layers. */
.hero-character-layer { filter:none; }
.page-hidden .hero-artwork,.page-hidden .hero-character-layer { will-change:auto; }
@media(max-width:768px) {
  .route-caption { left:7%;right:7%; }
  .route-caption strong { font-size:clamp(30px,9vw,64px); }
  .route-sub { font-size:12px;letter-spacing:.13em; }
  .keyboard-guide { padding:8px 16px;font-size:12px; }
  .keyboard-guide span { margin-right:12px; }
  .menu-hint { display:flex;margin:18px 0 0 16px;font-size:13px; }
  .about-page .about-block,.home-page .menu-side { backdrop-filter:none; }
  .scene-background { will-change:auto; }
  .scene-wind-line:nth-of-type(n+4),.scene-mote:nth-of-type(n+6) { display:none; }
}
html[data-motion=reduced] #p3-overlay { display:none; }
html[data-motion=reduced] .prism-effects *,html[data-motion=reduced] .prism-effects::before { animation:none !important; }
