/* Elven forest edition. Original door art and page content are retained. */
:root { --forest-950:#0e241e; --forest-900:#173c30; --forest-800:#245342; --ivory:#faf4e9; --gold:#d6bd87; --rose:#9c605f; }
:focus-visible { outline:2px solid var(--gold); outline-offset:6px; }
section[id] { scroll-margin-top:3rem; }
.story-gate { background:transparent; transition:none; }
.story-gate.is-open { visibility:hidden; transition:none; }
.story-gate__panel { background:none; box-shadow:none; overflow:hidden; }
.story-gate__panel::before { content:""; position:absolute; top:0; left:0; width:100vw; height:100%; background:linear-gradient(#0e241e12,#0e241e24),url('./assets/story-door.webp') center/cover; }
.story-gate__panel--right::before { left:-50vw; }
.story-gate__glow { background:radial-gradient(ellipse,#fff8d5b0 0,transparent 64%); transition:opacity .8s; }
.story-gate.is-opening .story-gate__glow { animation:none; opacity:0; }
.story-gate.is-opening .story-gate__leaf { opacity:0; }
.story-gate__leaf { width:4px; height:4px; border-radius:50%; box-shadow:0 0 16px #fff0b1; }
.story-gate__eyebrow,.kicker,.chapter-label { font-size:.8rem; }
.hero__image { background-image:url('./assets/elven-forest.webp'); background-position:center; animation:forest-arrival 2.8s ease-out both; }
.hero__veil { background:linear-gradient(90deg,#08251fd9 0%,#12332988 42%,#12332912 100%),linear-gradient(0deg,#0e241edb,transparent 45%); }
.hero__content { width:100%; padding:9rem 8vw 6rem; text-align:left; }
.hero h2 { max-width:100%; font-size:clamp(2.8rem,6.8vw,6.5rem); line-height:1.35; letter-spacing:.07em; text-shadow:0 3px 36px #08251f70; }
.hero h2 em { color:#f2d1c1; }
.hero__lead { margin:1.65rem 0 1rem; }
.forest-paths { display:flex; flex-wrap:wrap; gap:1rem 1.7rem; margin-top:2rem; }
.forest-paths a { display:inline-flex; align-items:center; min-height:48px; padding:.7rem 1.25rem; font-size:.9rem; letter-spacing:.06em; border:1px solid #f7f1e68a; border-radius:999px; background:#143d314d; transition:background .3s,transform .3s; }
.forest-paths a:first-child { color:#173c30; background:#faf4e9ee; border-color:#faf4e9; }
.forest-paths a:hover { transform:translateY(-3px); background:#f4d9c6; color:#173c30; }
.hero__sparkles i { width:5px; height:5px; animation:forest-drift 9s ease-in-out infinite alternate; }
.hero__sparkles i:nth-child(2n) { background:#f5cbbb; box-shadow:0 0 15px #efb6a3; animation-duration:12s; }
.hero__sparkles i:nth-child(6) { left:43%; top:81%; animation-delay:-5s; }
.hero__sparkles i:nth-child(7) { left:90%; top:35%; animation-delay:-3s; }
.hero__sparkles i:nth-child(8) { left:8%; top:58%; animation-delay:-6s; }
.hero__sparkles i:nth-child(9) { left:56%; top:62%; animation-delay:-8s; }
.hero::after { content:""; position:absolute; inset:45% -25% -15%; pointer-events:none; background:radial-gradient(ellipse,#fae3c021,transparent 67%); animation:forest-mist 16s ease-in-out infinite alternate; }
.desktop-nav { gap:1.5rem; font-size:.95rem; }
.intro { background:radial-gradient(ellipse at 100% 0,#c9dbcb52,transparent 60%),var(--ivory); }
.chapters { background:linear-gradient(#15372cf5,#1f463bf8),url('./assets/elven-forest.webp') center/cover; }
.chapter-card { transition:background .4s,color .4s; }
.chapter-card--roff { background:linear-gradient(120deg,#355b473b,#d4bd8b22); }
.chapter-card--roff:focus-within { background:var(--paper); color:var(--forest-950); }
.chapter-card>p:not(.chapter-card__number):not(.chapter-card__en) { font-size:1rem; line-height:1.9; }
.chapter-door { display:inline-flex; align-items:center; gap:1rem; margin-top:1.6rem; padding:.7rem 0; border-bottom:1px solid currentColor; font-size:.9rem; }
.closing { background:linear-gradient(#123329de,#0e241ef2),url('./assets/elven-forest.webp') 66% 45%/cover; }
.closing::before { animation:forest-halo 9s ease-in-out infinite alternate; }
.closing-academy { display:block; width:fit-content; max-width:100%; margin:2rem auto 0; padding:.5rem; line-height:1.9; font-size:.9rem; color:#f1d4ba; }
.closing-company { display:inline-flex; align-items:center; justify-content:center; min-height:48px; margin:1rem auto 0; padding:.75rem 1.4rem; color:#173c30; background:#faf4e9ee; border:1px solid #faf4e9; border-radius:999px; font-size:.9rem; letter-spacing:.05em; transition:background .3s,transform .3s; }
.closing-company:hover { transform:translateY(-3px); background:#f4d9c6; }
.footer-company { padding:.45rem .8rem; border:1px solid #d6bd8780; border-radius:999px; }
.about__portrait { background:linear-gradient(#173c304a,#173c30b5),url('./assets/elven-forest.webp') 81% center/cover; }
.about__monogram { text-shadow:0 4px 35px #143b30; }
.reveal { opacity:1; transform:none; }
.reveal.will-reveal { opacity:0; transform:translateY(24px); }
.reveal.is-visible { opacity:1; transform:none; }
.motion-paused *, .motion-paused *::before, .motion-paused *::after { animation-play-state:paused!important; }
@keyframes forest-arrival { from { transform:scale(1.1); filter:brightness(1.3); } to { transform:scale(1); filter:brightness(1); } }
@keyframes forest-drift { 0% { opacity:.15; transform:translate3d(-12px,25px,0) scale(.65); } 45% { opacity:.85; } 100% { opacity:.3; transform:translate3d(35px,-55px,0) scale(1.1); } }
@keyframes forest-mist { from { transform:translate3d(-4%,0,0); opacity:.4; } to { transform:translate3d(4%,-3%,0); opacity:.9; } }
@keyframes forest-halo { from { transform:scale(.96); opacity:.5; } to { transform:scale(1.04); opacity:1; } }
@media(max-width:760px) {
  .hero__content { padding:8rem 6vw 4.5rem; }
  .hero__image { background-position:62% center; }
  .hero__veil { background:linear-gradient(90deg,#0e241ebc,#0e241e3b),linear-gradient(0deg,#0e241ee0,transparent 85%); }
  .hero h2 { font-size:clamp(2rem,10.5vw,4.5rem); letter-spacing:.04em; }
  .hero__lead { font-size:1rem; letter-spacing:.035em; }
  .forest-paths { gap:.65rem; }
  .forest-paths a { padding:.7rem 1rem; font-size:.875rem; }
  .hero__chapter { display:none; }
  .story-gate h1 { font-size:clamp(2rem,9vw,3.4rem); }
  .intro__copy { font-size:1rem; }
  .chapter-door { font-size:.875rem; }
  .mobile-nav a { padding:.35rem; }
  body.menu-open { overflow:hidden; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .reveal.will-reveal { opacity:1; transform:none; }
}
