
@import url("https://fonts.googleapis.com/css2?family=Bowlby+One+SC&family=Corben:wght@700&family=Kranky&family=Zen+Maru+Gothic:wght@400;500;700;900&display=swap");

:root { --orange:#ff6b00; --yellow:#ffc62f; --ink:#160b08; --cream:#fff7df; --purple:#a03b32; --motion-fast:.24s; --motion-reveal:.38s; --motion-open:.58s; --motion-ease:cubic-bezier(.18,.82,.2,1); --motion-playful:cubic-bezier(.2,.85,.25,1.15); }
* { box-sizing:border-box; }
html { scroll-behavior:auto; }
body { margin:0; color:var(--ink); background:var(--orange); font-family:"Zen Maru Gothic","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; }
body::before { content:""; position:fixed; inset:0; z-index:-2; background:url('storybook-intro-background-desktop.webp') center/cover no-repeat #ef741c; }
body::after { content:""; position:fixed; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(255,177,60,.06),transparent 34%,rgba(22,9,7,.1)); box-shadow:inset 0 0 15vw rgba(67,19,12,.26); pointer-events:none; }
a { color:inherit; text-decoration:none; }
.storybook-intro { position:fixed; inset:0; z-index:1000; overflow:hidden; background:#ef6d18; animation:intro-vanish .82s cubic-bezier(.22,.61,.36,1) 2.55s forwards; }
.storybook-intro::before { content:""; position:absolute; inset:0; z-index:5; pointer-events:none; background:#090505; opacity:0; animation:blackout .16s 1.38s forwards; }
.intro-paper { position:absolute; inset:0; overflow:hidden; color:#24130d; background:url('storybook-intro-background-desktop.webp') center/cover no-repeat #ef741c; }
.intro-paper::after { content:""; position:absolute; inset:0; box-shadow:inset 0 0 15vw rgba(67,19,12,.48); background:linear-gradient(180deg,rgba(255,177,60,.08),transparent 34%,rgba(22,9,7,.12)); mix-blend-mode:multiply; }
.intro-paper p { position:absolute; z-index:3; top:7vh; width:100%; margin:0; color:#28150f; text-align:center; font:400 clamp(21px,2.5vw,36px)/1.1 "Kranky",cursive; letter-spacing:.1em; }
.bat-swarm { position:absolute; inset:0; z-index:7; pointer-events:none; perspective:700px; animation:swarm-clear .08s 1.58s forwards; }
.flying-bat { --x:50vw; --y:50vh; --duration:2s; --delay:0s; --rotate:0deg; position:absolute; left:var(--x); top:var(--y); width:clamp(34px,4.5vw,76px); opacity:0; transform:translate(-50%,-50%) rotate(var(--rotate)) scale(.08); animation:bat-rush var(--duration) cubic-bezier(.55,.02,.82,.42) var(--delay) forwards; }
.flying-bat img { display:block; width:100%; height:auto; transform-origin:center; animation:bat-flutter .18s ease-in-out infinite alternate; }
.intro-logo-reveal { position:absolute; inset:0; z-index:8; display:grid; place-items:center; pointer-events:none; opacity:0; transform:translate3d(-28vw,-18vh,-600px) rotate(-11deg) scale(.12); animation:logo-chase .72s cubic-bezier(.16,.74,.18,1) 1.5s forwards,logo-handoff .82s cubic-bezier(.22,.61,.36,1) 2.55s forwards; }
.intro-logo-reveal::before { content:""; position:absolute; width:min(65vw,760px); aspect-ratio:1.4; border-radius:50%; background:radial-gradient(ellipse,rgba(255,112,0,.52),rgba(255,72,0,.18) 40%,transparent 72%); filter:blur(24px); opacity:0; animation:orange-aura .5s ease-out 1.64s forwards; }
.intro-logo-reveal img { position:relative; width:min(52vw,620px); max-height:68vh; object-fit:contain; filter:drop-shadow(0 0 10px rgba(255,118,0,.95)) drop-shadow(0 0 30px rgba(255,76,0,.75)); }
.intro-skip { position:absolute; z-index:10; right:24px; bottom:22px; padding:9px 13px; color:#fff3d3; border:1px solid currentColor; background:rgba(12,7,5,.38); font:800 9px Arial,sans-serif; letter-spacing:.2em; cursor:pointer; }
@keyframes bat-rush { 0% { opacity:0; transform:translate(-50%,-50%) rotate(var(--rotate)) scale(.05); } 12% { opacity:1; } 75% { opacity:1; filter:blur(0); } 100% { opacity:1; filter:blur(2px); transform:translate(-50%,-50%) rotate(calc(var(--rotate) * -1)) scale(42); } }
@keyframes bat-flutter { from { transform:scaleY(.78) rotate(-1deg); } to { transform:scaleY(1.06) rotate(1deg); } }
@keyframes blackout { to { opacity:1; } }
@keyframes swarm-clear { to { opacity:0; visibility:hidden; } }
@keyframes logo-chase { 0% { opacity:0; transform:translate3d(-28vw,-18vh,-600px) rotate(-11deg) scale(.12); filter:blur(10px); } 18% { opacity:.65; } 55% { opacity:1; transform:translate3d(7vw,4vh,-160px) rotate(5deg) scale(.62); filter:blur(3px); } 78% { transform:translate3d(-2vw,-1vh,0) rotate(-1.5deg) scale(1.06); filter:blur(0); } 100% { opacity:1; transform:translate3d(0,0,0) rotate(0) scale(1); filter:blur(0); } }
@keyframes orange-aura { 0% { opacity:0; transform:scale(.72); } 55% { opacity:1; } 100% { opacity:.74; transform:scale(1); } }
@keyframes logo-handoff { 0% { opacity:1; } 58% { opacity:.88; } 100% { opacity:0; transform:translate3d(0,0,0) rotate(0) scale(1.018); } }
@keyframes intro-vanish { 0% { opacity:1; visibility:visible; } 35% { opacity:.94; } 100% { opacity:0; visibility:hidden; } }
.route-bat-transition { position:fixed; inset:0; z-index:2000; overflow:hidden; pointer-events:none; visibility:hidden; isolation:isolate; }
html[data-route-transition="leaving"] .route-bat-transition { visibility:visible; pointer-events:auto; }
.route-bat-transition::after { content:""; position:absolute; inset:0; background:#090505; opacity:0; animation:blackout .18s .6s forwards; }
.route-flying-bat { --x:50vw; --y:50vh; --duration:.8s; --delay:0s; --rotate:0deg; position:absolute; left:var(--x); top:var(--y); width:clamp(34px,4.5vw,76px); opacity:0; transform:translate(-50%,-50%) rotate(var(--rotate)) scale(.06); animation:route-bat-rush var(--duration) cubic-bezier(.55,.02,.82,.42) var(--delay) forwards; }
.route-flying-bat img { display:block; width:100%; height:auto; transform-origin:center; animation:bat-flutter .14s ease-in-out infinite alternate; }
@keyframes route-bat-rush { 0% { opacity:0; transform:translate(-50%,-50%) rotate(var(--rotate)) scale(.05); } 10% { opacity:1; } 100% { opacity:1; transform:translate(-50%,-50%) rotate(calc(var(--rotate) * -1)) scale(16); } }
@media (max-width:800px) {
  .route-flying-bat:nth-child(n+9) { display:none; }
  .route-flying-bat img { animation:none; }
}
.site-header { position:fixed; z-index:20; top:0; left:0; right:0; height:82px; padding:0 4vw; display:flex; align-items:center; justify-content:space-between; color:white; background:linear-gradient(180deg,rgba(20,8,5,.6),transparent); }
.site-header nav { display:flex; gap:2.2vw; font-size:11px; letter-spacing:.16em; font-weight:800; }
.site-header nav a { position:relative; }
.site-header nav a::after { content:""; position:absolute; left:0; bottom:-6px; width:0; height:2px; background:var(--yellow); transition:.25s; }
.site-header nav a:hover::after { width:100%; }
.mini-logo { width:96px; height:64px; display:grid; place-items:center; }
.mini-logo img { width:100%; height:100%; object-fit:contain; }
.round-link { width:38px; height:38px; border:1px solid rgba(255,255,255,.6); border-radius:50%; display:grid; place-items:center; }
.storybook-foreground { --story-slow-y:0px; --story-fast-y:0px; --story-x:0px; --story-fog:.12; position:fixed; z-index:14; inset:0; overflow:hidden; pointer-events:none; opacity:0; transition:opacity .55s ease; }.storybook-foreground.is-visible { opacity:1; }.foreground-branch { position:absolute; top:-8%; width:clamp(110px,17vw,270px); height:116%; opacity:.46; filter:drop-shadow(0 0 12px rgba(25,7,3,.25)); transition:transform .16s linear; }.foreground-branch::before,.foreground-branch::after { content:""; position:absolute; width:150%; height:13px; border-radius:60% 0; background:#1e0b07; box-shadow:30px 58px 0 -3px #1e0b07,74px 112px 0 -4px #1e0b07,12px 180px 0 -4px #1e0b07; }.foreground-branch::before { top:16%; transform:rotate(37deg); }.foreground-branch::after { top:54%; transform:rotate(-28deg); }.branch-left { left:-11%; transform:translate3d(var(--story-x),var(--story-slow-y),0) rotate(-7deg); }.branch-right { right:-11%; transform:translate3d(calc(var(--story-x) * -1),var(--story-fast-y),0) rotate(187deg); }.foreground-fog { position:absolute; left:-15%; right:-15%; bottom:-12%; height:38%; opacity:var(--story-fog); background:radial-gradient(ellipse at 20% 70%,#fff0c9 0 9%,transparent 35%),radial-gradient(ellipse at 70% 80%,#ffe1b0 0 12%,transparent 39%); filter:blur(28px); mix-blend-mode:screen; transform:translate3d(var(--story-x),var(--story-slow-y),0); }.story-bat { position:absolute; width:clamp(36px,4vw,62px); opacity:.68; filter:drop-shadow(0 4px 4px rgba(22,5,2,.35)); transition:transform .12s linear; }.story-bat img { display:block; width:100%; animation:bat-flutter .22s ease-in-out infinite alternate; }.story-bat-one { left:10%; top:29%; transform:translate3d(var(--story-x),var(--story-fast-y),0) rotate(-12deg); }.story-bat-two { right:14%; top:48%; width:clamp(28px,3vw,48px); transform:translate3d(calc(var(--story-x) * -1),var(--story-slow-y),0) rotate(9deg); }.chapter-guide { position:absolute; right:2.5vw; top:64%; display:grid; grid-template-columns:56px auto 22px; align-items:center; gap:9px; padding:8px 11px 8px 7px; color:#fff8df; border:1px solid rgba(255,244,207,.7); border-radius:999px; background:rgba(36,10,6,.68); box-shadow:0 8px 24px rgba(35,8,3,.25); backdrop-filter:blur(5px); pointer-events:auto; transform:translate3d(0,var(--story-slow-y),0); transition:background .25s,transform .12s linear,box-shadow .25s; }.chapter-guide:hover,.chapter-guide:focus-visible { color:#321207; background:#ffd065; box-shadow:0 0 0 7px rgba(255,161,31,.18); outline:none; }.chapter-guide img { width:56px; height:34px; object-fit:contain; animation:guide-bat-fly 1.3s ease-in-out infinite; }.chapter-guide span { display:flex; flex-direction:column; min-width:65px; }.chapter-guide small { font:800 6px/1.2 Arial,sans-serif; letter-spacing:.15em; }.chapter-guide b { font:400 17px/1.1 "Kranky",cursive; letter-spacing:.06em; }.chapter-guide i { font-style:normal; animation:guide-arrow 1.15s ease-in-out infinite; }@keyframes guide-bat-fly { 0%,100% { transform:translateY(3px) rotate(-4deg); } 50% { transform:translateY(-5px) rotate(4deg); } }@keyframes guide-arrow { 0%,100% { transform:translateY(-2px); } 50% { transform:translateY(5px); } }
.hero { min-height:100svh; position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:120px 5vw 62px; color:white; overflow:hidden; }
.hero::before { content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(circle at 48% 45%,rgba(142,53,45,.18),transparent 32%),linear-gradient(180deg,rgba(25,8,5,.08),rgba(19,7,3,.18)); }
.eyebrow { width:min(1050px,88vw); display:flex; justify-content:space-between; position:absolute; top:125px; font-size:10px; letter-spacing:.25em; font-weight:800; }
.hero-logo { width:min(720px,70vw); transform:rotate(-1deg); }
.hero-logo img { display:block; width:100%; max-height:62vh; object-fit:contain; }
.hero-copy { margin:50px 0 32px; font-size:clamp(18px,2vw,29px); line-height:1.7; letter-spacing:.18em; text-align:center; font-weight:600; }
.event-meta { width:min(820px,88vw); display:flex; overflow:hidden; border:1px solid rgba(255,241,205,.9); border-radius:12px; background:rgba(38,11,7,.76); box-shadow:0 12px 32px rgba(31,7,3,.38),0 0 0 5px rgba(255,155,30,.1); backdrop-filter:blur(6px); }
.event-meta div { flex:1; padding:17px 28px; display:flex; align-items:center; justify-content:center; gap:15px; border-right:1px solid rgba(255,241,205,.5); }.event-meta div:last-child { border:0; }
.event-meta small { color:#ffd45b; font-size:8px; letter-spacing:.22em; font-weight:900; opacity:1; }.event-meta strong { color:#fff9e7; font-size:14px; letter-spacing:.08em; text-shadow:0 2px 6px rgba(19,4,2,.7); }.event-meta em { color:var(--yellow); font-style:normal; font-size:9px; }
.section { padding:110px max(5vw,24px); background:transparent; color:white; text-shadow:none; }
.section-heading p { margin:0 0 10px; font-size:10px; letter-spacing:.25em; font-weight:900; }.section-heading h2 { display:block; margin:0; font:400 clamp(44px,5.4vw,78px)/1.02 "Kranky",cursive; letter-spacing:.06em; }.section-heading>span { display:block; margin:10px 0 0; font-size:12px; letter-spacing:.16em; font-weight:800; }
.section-heading.light { color:white; }
.news-section { position:relative; display:grid; grid-template-columns:.75fr 1.5fr; gap:8vw; overflow:hidden; }
.news-list { border-top:2px solid white; }.news-item { min-height:96px; display:grid; grid-template-columns:100px 112px 1fr 30px; gap:18px; align-items:center; border-bottom:1px solid rgba(255,255,255,.72); }.news-item time { font-size:11px; font-weight:800; }.tag { width:max-content; padding:7px 10px; border:1px solid; border-radius:99px; font-size:8px; font-weight:900; letter-spacing:.08em; }.news-item h3 { font-size:14px; font-weight:700; }.arrow { font-size:24px; }
.news-pumpkin { position:absolute; z-index:7; left:clamp(205px,21vw,330px); bottom:-108px; width:clamp(145px,17vw,230px); pointer-events:none; }.news-pumpkin button { position:relative; width:100%; padding:0; border:0; background:none; cursor:pointer; pointer-events:auto; transform:translateY(42%); filter:drop-shadow(0 13px 12px rgba(43,10,3,.35)); transition:transform .55s cubic-bezier(.18,.82,.2,1),filter .35s; }.news-pumpkin button:hover,.news-pumpkin button:focus-visible { transform:translateY(22%) rotate(-3deg); filter:drop-shadow(0 0 12px rgba(255,194,47,.8)) drop-shadow(0 13px 12px rgba(43,10,3,.35)); outline:none; }.news-pumpkin img { display:block; width:100%; }.pumpkin-spark { position:absolute; right:5%; top:25%; color:#ffd75e; font-size:27px; opacity:0; animation:pumpkin-spark 1.8s ease-in-out infinite; }.news-pumpkin p { position:absolute; left:78%; bottom:64%; width:max-content; max-width:210px; margin:0; padding:11px 14px; color:#351509; border:2px solid #653015; border-radius:18px 18px 18px 3px; background:#fff1c7; box-shadow:4px 5px 0 rgba(79,26,8,.3); font-size:12px; font-weight:900; opacity:0; transform:translate(-12px,12px) scale(.8); transition:opacity .28s,transform .4s cubic-bezier(.18,.85,.25,1.25); pointer-events:none; }.news-pumpkin p small { display:block; margin-top:4px; font-size:9px; font-weight:700; }.news-pumpkin.is-found button { transform:translateY(2%) rotate(5deg); animation:pumpkin-found .52s ease both; }.news-pumpkin.is-found p { opacity:1; transform:none; }.news-pumpkin.is-found .pumpkin-spark { opacity:1; }@keyframes pumpkin-found { 0% { transform:translateY(42%) rotate(0); } 48% { transform:translateY(-7%) rotate(-6deg); } 72% { transform:translateY(4%) rotate(6deg); } 100% { transform:translateY(2%) rotate(5deg); } }@keyframes pumpkin-spark { 0%,100% { opacity:0; transform:scale(.5) rotate(0); } 45% { opacity:1; transform:scale(1.15) rotate(20deg); } }
.about-section { min-height:760px; color:white; background:transparent; display:flex; justify-content:flex-end; align-items:center; position:relative; overflow:hidden; }
.about-copy { z-index:1; width:min(580px,55vw); }.about-copy .section-heading h2 { font-size:clamp(42px,5.6vw,80px); }.about-copy .lead { margin:50px 0 24px; font-size:clamp(24px,3vw,38px); line-height:1.7; font-weight:500; }.about-copy>p:last-child { line-height:2.1; font-size:14px; letter-spacing:.08em; }
.program-section { background:transparent; }.section-intro { margin:26px 0 48px auto; max-width:570px; line-height:2; font-size:15px; font-weight:700; }
.program-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; perspective:1400px; }.program-card { min-width:0; aspect-ratio:4/5; transition:transform .28s cubic-bezier(.2,.75,.25,1); }.program-card:hover { transform:translateY(-9px) rotate(-1.2deg); }.program-card:nth-child(2):hover { transform:translateY(-9px) rotate(1deg); }.program-card-button { width:100%; height:100%; padding:0; border:0; background:none; color:inherit; cursor:pointer; perspective:1400px; }.program-card-inner { position:relative; display:block; width:100%; height:100%; transform-style:preserve-3d; transition:transform .72s cubic-bezier(.2,.75,.2,1); }.program-card.is-flipped .program-card-inner { transform:rotateY(180deg); }.program-card-face { position:absolute; inset:0; display:block; overflow:hidden; border:7px solid #f6e4b9; border-radius:8px; box-shadow:0 17px 35px rgba(42,13,4,.42),inset 0 0 0 2px rgba(77,31,14,.25); backface-visibility:hidden; }.program-card-front img { width:100%; height:100%; object-fit:cover; }.program-card-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(17,5,3,.2),transparent 45%,rgba(22,6,3,.82)); }.program-top { position:absolute; z-index:2; left:17px; right:17px; top:16px; display:flex; justify-content:space-between; color:#fff4cf; font-size:8px; letter-spacing:.14em; font-weight:900; }.program-front-copy { position:absolute; z-index:2; left:18px; right:18px; bottom:20px; color:white; text-align:left; }.program-front-copy b { display:block; font:400 clamp(27px,2.65vw,42px)/.94 "Kranky",cursive; letter-spacing:.025em; }.program-front-copy small { display:block; margin-top:9px; font-size:13px; font-weight:800; }.program-card-back { padding:34px 30px; color:#3d2116; text-align:left; background:linear-gradient(135deg,#f8e8bd,#e5c991); transform:rotateY(180deg); }.program-card-back::before { content:""; position:absolute; inset:12px; border:1px solid rgba(91,45,21,.4); pointer-events:none; }.program-back-kicker { display:block; font-size:8px; letter-spacing:.18em; font-weight:900; }.program-card-back>b { display:block; margin-top:34px; font:400 clamp(28px,3vw,46px)/.95 "Kranky",cursive; }.program-card-back>small { display:block; margin-top:9px; font-size:14px; font-weight:800; }.program-back-text { display:block; margin-top:25px; font-size:12px; line-height:1.9; font-weight:700; }.program-facts { display:grid; grid-template-columns:52px 1fr; gap:10px; margin-top:22px; padding-top:16px; border-top:1px solid rgba(76,38,20,.4); }.program-facts i { font-size:7px; letter-spacing:.15em; font-style:normal; }.program-facts strong { font-size:10px; letter-spacing:.06em; }.program-turn-back { position:absolute; right:25px; bottom:24px; font-size:9px; opacity:.65; }.program-card.is-locked .program-card-button { cursor:default; }.program-card.is-locked .program-card-front img { filter:saturate(.55) brightness(.58); }.program-card.is-locked .program-front-copy { opacity:.28; }.program-keyhole { position:absolute; z-index:3; left:50%; top:50%; width:46px; height:62px; transform:translate(-50%,-50%); animation:keyhole-glow 1.7s ease-in-out infinite; }.program-keyhole::before { content:""; position:absolute; left:50%; top:0; width:30px; height:30px; transform:translateX(-50%); border-radius:50%; background:#ffbd36; }.program-keyhole::after { content:""; position:absolute; left:50%; top:22px; width:15px; height:34px; transform:translateX(-50%); clip-path:polygon(50% 0,100% 100%,0 100%); background:#ffbd36; }.program-keyhole i { position:absolute; z-index:2; left:50%; top:8px; width:12px; height:14px; transform:translateX(-50%); border-radius:50% 50% 35% 35%; background:#35130b; }.program-card-button:focus-visible { outline:3px solid #ffd352; outline-offset:6px; border-radius:8px; }.program-card.is-flipped:hover { transform:translateY(-9px) rotate(.5deg); }@keyframes keyhole-glow { 0%,100% { opacity:.65; filter:drop-shadow(0 0 7px #ff8a00); } 50% { opacity:1; filter:drop-shadow(0 0 20px #ffd05b); } }
.program-secret-hint { position:absolute; z-index:4; left:50%; top:64%; transform:translateX(-50%); padding:7px 11px; color:#fff1ba; border:1px solid rgba(255,225,132,.65); border-radius:999px; background:rgba(29,8,5,.72); font-size:9px; font-weight:900; letter-spacing:.1em; white-space:nowrap; animation:secret-hint-breathe 2s ease-in-out infinite; }
.program-secret-message { position:absolute; z-index:6; left:50%; top:50%; width:min(78%,250px); padding:18px 14px; color:#3b170c; border:3px double #74300f; border-radius:50% 48% 52% 46%; background:#fff0be; box-shadow:0 8px 0 rgba(61,19,5,.35),0 0 28px rgba(255,179,39,.8); font-size:12px; font-weight:800; line-height:1.65; text-align:center; opacity:0; transform:translate(-50%,-40%) scale(.35) rotate(-8deg); transition:opacity .24s,transform .52s cubic-bezier(.2,.9,.22,1.25); pointer-events:none; }
.program-secret-message b { display:block; margin-bottom:4px; font:400 25px/1 "Kranky",cursive; color:#7c250d; }
.program-secret-sparks { position:absolute; z-index:7; left:50%; top:40%; width:72%; color:#ffd04d; font-size:24px; text-align:center; opacity:0; transform:translate(-50%,-50%) scale(.5); pointer-events:none; }
.program-card.is-whispering .program-keyhole { animation:keyhole-unlock .62s cubic-bezier(.2,.8,.2,1) both; }
.program-card.is-whispering .program-secret-hint { opacity:0; }
.program-card.is-whispering .program-secret-message { opacity:1; transform:translate(-50%,-50%) scale(1) rotate(-1deg); }
.program-card.is-whispering .program-secret-sparks { animation:secret-sparks 1.1s ease-out both; }
@keyframes secret-hint-breathe { 0%,100% { opacity:.7; transform:translateX(-50%) scale(.96); } 50% { opacity:1; transform:translateX(-50%) scale(1.04); } }
@keyframes keyhole-unlock { 0% { transform:translate(-50%,-50%) rotate(0) scale(1); } 32% { transform:translate(-50%,-50%) rotate(-13deg) scale(1.18); } 65% { transform:translate(-50%,-50%) rotate(12deg) scale(1.28); opacity:1; } 100% { transform:translate(-50%,-50%) rotate(0) scale(.25); opacity:0; } }
@keyframes secret-sparks { 0% { opacity:0; transform:translate(-50%,-20%) scale(.4); } 35% { opacity:1; } 100% { opacity:0; transform:translate(-50%,-100%) scale(1.6) rotate(12deg); } }
.access-section { background:transparent; color:white; }.access-layout { margin-top:50px; display:grid; grid-template-columns:1.25fr .75fr; gap:6vw; align-items:center; }.map-card { height:460px; position:relative; overflow:hidden; background:#f3e9ca; border:10px solid #ff6b00; color:var(--ink); text-shadow:none; transform:rotate(-1deg); }.map-card iframe { width:100%; height:100%; border:0; display:block; }.access-caption { color:var(--yellow); font-size:10px; letter-spacing:.2em; font-weight:900; }.access-copy h3 { font:400 clamp(40px,4.2vw,62px)/.92 "Kranky",cursive; letter-spacing:.025em; }.access-copy dl { border-top:1px solid rgba(255,255,255,.6); }.access-copy dl div { display:grid; grid-template-columns:90px 1fr; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.6); }.access-copy dt { color:var(--yellow); font-size:11px; font-weight:800; }.access-copy dd { margin:0; font-size:13px; }.note { font-size:10px; color:rgba(255,255,255,.75); line-height:1.8; }
.program-page-corner { position:absolute; z-index:4; right:-1px; bottom:-1px; width:64px; height:64px; border-radius:8px 0 0; background:linear-gradient(135deg,rgba(86,38,17,.2) 0 47%,#f7e6bc 49% 70%,#c98a48 100%); filter:drop-shadow(-5px -5px 5px rgba(21,5,1,.28)); transform-origin:100% 100%; animation:page-corner-wave 2.2s ease-in-out infinite; }.program-flip-hint { position:absolute; z-index:5; right:16px; bottom:72px; display:flex; align-items:center; gap:6px; padding:7px 10px; border:1px solid rgba(255,245,216,.7); border-radius:999px; color:#fff8df; background:rgba(35,10,5,.68); font-size:9px; font-weight:800; letter-spacing:.04em; backdrop-filter:blur(3px); }.program-flip-hint i { display:inline-block; font:400 16px/1 sans-serif; animation:flip-hint-turn 1.8s ease-in-out infinite; }@keyframes page-corner-wave { 0%,65%,100% { transform:scale(1); } 78% { transform:scale(.82) rotate(-5deg); } 88% { transform:scale(1.08) rotate(2deg); } }@keyframes flip-hint-turn { 0%,65%,100% { transform:rotate(0); } 85% { transform:rotate(180deg); } }
.chapter-guide img { filter:sepia(1) saturate(5) brightness(1.45) drop-shadow(0 0 5px #ff8a16) drop-shadow(0 0 12px rgba(255,177,47,.95)); }
.chapter-guide-flock { position:absolute; inset:0; overflow:visible; pointer-events:none; }
.chapter-guide-flock img { position:absolute; left:22px; top:50%; width:32px; height:22px; object-fit:contain; opacity:0; animation:none; }
.chapter-guide-flock img:nth-child(2) { left:34px; width:25px; }
.chapter-guide-flock img:nth-child(3) { left:15px; width:20px; }
.chapter-guide.is-departing { pointer-events:none; background:rgba(255,174,42,.88); box-shadow:0 0 0 8px rgba(255,125,21,.18),0 0 32px rgba(255,126,17,.7); }
.chapter-guide.is-departing .chapter-guide-leader { animation:chapter-bat-depart .5s cubic-bezier(.45,.02,.78,.45) forwards; }
.chapter-guide.is-departing .chapter-guide-flock img:nth-child(1) { animation:chapter-flock-depart .48s .06s cubic-bezier(.42,.02,.8,.42) forwards; }
.chapter-guide.is-departing .chapter-guide-flock img:nth-child(2) { animation:chapter-flock-depart .44s .12s cubic-bezier(.42,.02,.8,.42) forwards; }
.chapter-guide.is-departing .chapter-guide-flock img:nth-child(3) { animation:chapter-flock-depart .4s .17s cubic-bezier(.42,.02,.8,.42) forwards; }
.chapter-guide.is-departing>span,.chapter-guide.is-departing>i { animation:chapter-guide-copy-away .36s ease forwards; }
@keyframes chapter-bat-depart { 0% { opacity:1; transform:translateY(2px) rotate(-4deg) scale(1); } 28% { transform:translate(-12px,-8px) rotate(7deg) scale(.9); } 100% { opacity:0; transform:translate(-190px,115px) rotate(-18deg) scale(1.65); filter:blur(2px) sepia(1) saturate(5) brightness(1.45) drop-shadow(0 0 12px #ff8a16); } }
@keyframes chapter-flock-depart { 0% { opacity:0; transform:translate(0,-50%) scale(.35); } 16% { opacity:.95; } 100% { opacity:0; transform:translate(-155px,92px) rotate(-13deg) scale(1.2); } }
@keyframes chapter-guide-copy-away { to { opacity:.18; transform:translateX(-12px); } }
.history-section { min-height:900px; background:transparent; overflow:hidden; }.magic-library { position:relative; margin-top:70px; padding:55px 5% 0; isolation:isolate; }.library-glow { position:absolute; z-index:-1; left:50%; bottom:45px; width:80%; height:75%; transform:translateX(-50%); background:radial-gradient(ellipse at center bottom,rgba(255,167,39,.35),transparent 67%); filter:blur(18px); pointer-events:none; }.book-row { min-height:440px; display:flex; align-items:flex-end; justify-content:center; gap:clamp(12px,2vw,28px); perspective:1100px; }.magic-book { position:relative; width:clamp(116px,14vw,180px); color:#fff5d7; transition:transform .35s ease,filter .35s ease; }.magic-book:nth-child(2) { transform:rotate(-1.5deg); }.magic-book:nth-child(3) { transform:rotate(1.2deg); }.magic-book:hover,.magic-book[open] { transform:translateY(-22px) rotate(0); filter:drop-shadow(0 18px 18px rgba(28,8,3,.42)); }.magic-book summary { height:clamp(300px,34vw,410px); padding:23px 15px; display:flex; flex-direction:column; align-items:center; list-style:none; border:3px solid rgba(45,15,8,.8); border-radius:9px 9px 3px 3px; cursor:pointer; text-align:center; box-shadow:inset 9px 0 rgba(255,255,255,.07),inset -8px 0 rgba(25,5,3,.18),0 8px 0 #4a1c0d,7px 12px 16px rgba(39,9,2,.35); }.magic-book summary::-webkit-details-marker { display:none; }.magic-book.orange summary { background:linear-gradient(90deg,#ae310f,#e35a18 19%,#bd3510 83%,#7b200d); }.magic-book.purple summary { background:linear-gradient(90deg,#4e1b16,#913b33 19%,#662620 83%,#381310); }.magic-book.green summary { background:linear-gradient(90deg,#17392e,#356c50 19%,#214c3a 83%,#112b23); }.book-status { font-size:8px; letter-spacing:.18em; font-weight:900; }.magic-book summary strong { margin:auto 0 16px; font:700 clamp(30px,4vw,48px)/1 "Corben",serif; }.magic-book summary h3 { margin:0; min-height:64px; font:400 clamp(20px,2.2vw,31px)/1.05 "Kranky",cursive; letter-spacing:.04em; writing-mode:vertical-rl; }.magic-book summary i { width:36px; height:36px; margin-top:auto; display:grid; place-items:center; border-radius:50%; color:#5a1809; background:#e7ad35; border:2px solid #6b290d; box-shadow:0 0 0 4px rgba(255,185,44,.22); font-style:normal; }.book-page { position:absolute; z-index:8; left:50%; bottom:35px; width:min(620px,70vw); min-height:330px; padding:58px 58px 42px; transform:translate(-50%,24px) rotateX(-8deg) scale(.92); transform-origin:bottom; color:#3c2116; background:linear-gradient(90deg,#d9c39a,#f5e8c9 8%,#fff3d3 49%,#ead5ad 50%,#fff2d2 55%,#e0c79d); border:8px solid #5a2814; border-radius:7px 16px 16px 7px; box-shadow:0 25px 45px rgba(26,6,2,.55),inset 0 0 50px rgba(97,48,18,.18); opacity:0; pointer-events:none; animation:open-book .55s cubic-bezier(.16,.78,.22,1) forwards; }.book-page::after { content:""; position:absolute; left:50%; top:0; bottom:0; width:2px; background:rgba(84,46,25,.18); box-shadow:0 0 14px rgba(54,25,10,.2); }.book-page>span,.book-page small { font-size:9px; letter-spacing:.2em; font-weight:900; }.book-page h3 { width:46%; margin:25px 0 18px; font:400 clamp(30px,4vw,48px)/.98 "Kranky",cursive; letter-spacing:.04em; }.book-page p { width:45%; margin:0 0 28px auto; font-size:13px; line-height:2; font-weight:700; }.book-page small { display:block; width:45%; margin-left:auto; }.book-page em { position:absolute; right:28px; bottom:18px; font-size:9px; font-style:normal; opacity:.55; }.future-book { width:clamp(70px,8vw,105px); height:clamp(230px,27vw,330px); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; color:rgba(255,247,220,.5); border:2px dashed rgba(255,247,220,.38); border-radius:8px 8px 2px 2px; background:rgba(48,13,8,.18); }.future-book span { font:400 52px/1 "Kranky",cursive; }.future-book small { font-size:7px; letter-spacing:.15em; writing-mode:vertical-rl; }.wooden-shelf { position:relative; z-index:-1; height:42px; background:linear-gradient(#703418,#3a160b 45%,#1b0b07); border:4px solid #2a1008; box-shadow:0 18px 22px rgba(28,7,2,.5),inset 0 5px rgba(255,190,70,.12); }.wooden-shelf::before,.wooden-shelf::after { content:""; position:absolute; top:34px; width:38px; height:95px; background:linear-gradient(90deg,#2d1008,#663017,#291008); border:3px solid #210b06; }.wooden-shelf::before { left:8%; }.wooden-shelf::after { right:8%; }@keyframes open-book { to { opacity:1; transform:translate(-50%,-12px) rotateX(0) scale(1); } }
.closing { min-height:640px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:white; text-align:center; background:transparent; text-shadow:none; }.closing>p:first-child { font-size:10px; letter-spacing:.35em; font-weight:900; color:var(--yellow); }.closing-logo { width:min(700px,75vw); transform:rotate(-2deg); }.closing-logo img { display:block; width:100%; max-height:480px; object-fit:contain; }.closing-ja { margin-top:55px; font-size:18px; font-weight:800; letter-spacing:.2em; }
footer { padding:70px max(5vw,24px) 25px; background:transparent; color:white; border-top:1px solid rgba(255,255,255,.55); text-shadow:none; }.footer-brand { display:flex; flex-direction:column; align-items:flex-start; gap:9px; font:400 38px/1 "Kranky",cursive; letter-spacing:.03em; }.footer-brand small { display:block; margin:0; font:700 7px Arial,sans-serif; letter-spacing:.2em; }.footer-links { margin:50px 0; display:flex; gap:28px; font-size:10px; font-weight:800; letter-spacing:.14em; }.footer-bottom { padding-top:20px; border-top:1px solid rgba(255,255,255,.4); display:flex; justify-content:space-between; color:rgba(255,255,255,.72); font-size:9px; }
.magic-book { z-index:1; }
.magic-book[open] { z-index:20; }
.book-row:has(.magic-book[open])::before { content:""; position:absolute; z-index:10; inset:-10%; background:rgba(13,5,3,.2); cursor:not-allowed; }
.book-row:has(.magic-book[open]) .magic-book:not([open]) summary,
.book-row:has(.magic-book[open]) .future-book { pointer-events:none; }
.book-row:has(.magic-book[open]) .magic-book[open] summary { pointer-events:auto; }
.history-section { display:block; }
.history-section>.section-heading { text-align:center; }
.history-section>.section-intro { max-width:620px; margin:28px auto 0; text-align:center; }
.history-section>.magic-library { width:100%; }
.about-section { justify-content:center; text-align:center; }
.about-copy { width:min(700px,82vw); }
.about-copy>p:last-child { max-width:660px; margin-left:auto; margin-right:auto; }
.program-section>.section-heading,.access-section>.section-heading { text-align:center; }
.program-section>.section-intro { max-width:620px; margin:28px auto 48px; text-align:center; }
.book-page figure { grid-column:2; grid-row:1/3; width:100%; height:clamp(132px,14vw,178px); margin:0; overflow:hidden; align-self:start; border:5px solid #f6e9c8; outline:1px solid rgba(83,41,19,.35); transform:rotate(1.2deg); box-shadow:0 5px 12px rgba(65,28,10,.24); }
.book-page figure img { width:100%; height:100%; display:block; object-fit:cover; }
.book-page figure~p { padding-top:0; font-size:12px; line-height:1.75; }
.book-close { position:absolute; z-index:3; top:14px; right:16px; width:38px; height:38px; display:grid; place-items:center; padding:0; color:#4f2718; border:1px solid rgba(79,39,24,.42); border-radius:50%; background:rgba(255,245,215,.72); box-shadow:0 3px 10px rgba(54,24,10,.16); cursor:pointer; pointer-events:auto; transition:transform .28s cubic-bezier(.2,.8,.2,1),background .28s,box-shadow .28s,color .28s; }
.book-close span { position:relative; display:block; width:16px; height:16px; transition:transform .28s cubic-bezier(.2,.8,.2,1); }
.book-close span::before,.book-close span::after { content:""; position:absolute; left:50%; top:50%; width:17px; height:2px; border-radius:2px; background:currentColor; transform-origin:center; }
.book-close span::before { transform:translate(-50%,-50%) rotate(45deg); }
.book-close span::after { transform:translate(-50%,-50%) rotate(-45deg); }
.book-close:hover,.book-close:focus-visible { color:#fff7df; background:#8e2c13; box-shadow:0 0 0 5px rgba(214,102,35,.18),0 5px 14px rgba(54,24,10,.3); outline:none; transform:scale(1.1); }
.book-close:hover span,.book-close:focus-visible span { transform:rotate(90deg); }
.book-close:active { transform:scale(.9); }
.shelf-pagination { position:absolute; z-index:40; left:50%; bottom:2.3%; display:flex; align-items:center; gap:14px; transform:translateX(-50%); color:#f5d992; }
.shelf-pagination button { width:38px; height:38px; padding:0; color:inherit; border:1px solid currentColor; border-radius:50%; background:rgba(30,10,5,.68); cursor:pointer; transition:transform .22s,background .22s,color .22s; }
.shelf-pagination button:hover:not(:disabled),.shelf-pagination button:focus-visible { color:#321207; background:#f5d992; outline:none; transform:scale(1.1); }
.shelf-pagination button:disabled { opacity:.25; cursor:default; }
.shelf-pagination span { min-width:108px; display:flex; flex-direction:column; gap:3px; text-align:center; font-size:9px; font-weight:900; letter-spacing:.15em; }
.shelf-pagination span b { font:900 8px/1 Arial,sans-serif; letter-spacing:.22em; }
.shelf-pagination span small { font:700 8px/1 Arial,sans-serif; letter-spacing:.12em; opacity:.72; }
.shelf-pagination.is-single button { visibility:hidden; }
.archive-gate { width:auto; height:auto; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:0; color:#d5a452; border:0; background:transparent; cursor:pointer; text-shadow:0 2px 4px #150704; transition:color .3s,filter .3s,transform .3s; }
.archive-gate span { font:400 42px/1 "Kranky",cursive; }
.archive-gate small { font:900 7px/1.35 Arial,sans-serif; letter-spacing:.16em; writing-mode:vertical-rl; }
.archive-gate:hover,.archive-gate:focus-visible { color:#ffe1a0; filter:drop-shadow(0 0 12px rgba(255,172,40,.85)); outline:none; transform:translateY(-7px); }
@media (min-width:801px) {
  .magic-library { width:min(1180px,100%); aspect-ratio:1672/941; margin:70px auto 0; padding:0; background:url('halloween-antique-bookshelf.webp') center/contain no-repeat; }
  .magic-library { -webkit-mask-image:radial-gradient(ellipse 75% 75% at center,black 68%,rgba(0,0,0,.92) 76%,rgba(0,0,0,.45) 90%,transparent 100%); mask-image:radial-gradient(ellipse 75% 75% at center,black 68%,rgba(0,0,0,.92) 76%,rgba(0,0,0,.45) 90%,transparent 100%); }
  .library-smoke { position:absolute; z-index:30; inset:-3%; pointer-events:none; background:radial-gradient(ellipse 70% 67% at center,transparent 68%,rgba(255,117,18,.08) 78%,rgba(255,137,29,.28) 91%,rgba(255,159,44,.52) 100%); filter:blur(13px); mix-blend-mode:screen; }
  .library-glow,.wooden-shelf { display:none; }
  .book-row { position:absolute; inset:19% 17% 11% 19%; min-height:0; display:grid; grid-template-columns:1.12fr 1.05fr 1.2fr .62fr; gap:2.5%; align-items:stretch; perspective:none; }
  .magic-book,.magic-book:nth-child(2),.magic-book:nth-child(3),.magic-book:hover,.magic-book[open] { position:static; width:auto; transform:none; filter:none; }
  .magic-book summary { position:relative; height:100%; padding:12% 8% 9%; border:0; border-radius:0; background:transparent!important; box-shadow:none; color:#f6d88d; text-shadow:0 2px 3px #180905,0 0 8px rgba(0,0,0,.75); transition:transform .3s ease,filter .3s ease; }
  .magic-book summary:hover,.magic-book[open] summary { transform:translateY(-9px) scale(1.018); filter:drop-shadow(0 10px 7px rgba(0,0,0,.5)); }
  .book-status { position:absolute; top:4%; left:0; right:0; margin:0; }
  .magic-book summary strong { position:absolute; top:12%; left:0; right:0; margin:0; font:400 clamp(23px,2.8vw,39px)/1 "Kranky",cursive; letter-spacing:.035em; }
  .magic-book summary h3 { position:absolute; top:30%; bottom:18%; left:50%; min-height:0; max-height:none; margin:0; transform:translateX(-50%); overflow:hidden; font-size:clamp(15px,1.55vw,23px); line-height:1; }
  .magic-book summary i { width:31px; height:31px; margin-bottom:4%; background:#c99437; }
  .book-page { left:50%; bottom:13%; width:min(650px,62vw); height:clamp(340px,34vw,405px); min-height:0; padding:44px 44px 34px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:auto 1fr auto auto; column-gap:44px; align-items:start; overflow:hidden; }
  .book-page>span { grid-column:1; grid-row:1; }
  .book-page h3 { grid-column:1; grid-row:2/5; width:100%; margin:24px 0 0; }
  .book-page p { grid-column:2; grid-row:3; width:100%; margin:14px 0 10px; text-wrap:pretty; }
  .book-page small { grid-column:2; grid-row:4; width:100%; margin:0; }
  .future-book,.archive-gate { width:auto; height:auto; border:0; background:transparent; color:#d5a452; text-shadow:0 2px 4px #150704; }
}
@media (max-width:800px) {
  body::before { background-image:url('storybook-intro-background.webp'); background-position:center 48%; }
  .history-section { display:block; }
  .book-page figure { position:relative; right:auto; top:auto; width:100%; height:170px; margin:22px 0 18px; transform:rotate(.5deg); }
  .book-page figure~p { padding-top:0; }
  .intro-paper { background-image:url('storybook-intro-background.webp'); background-position:center 48%; }
  .intro-logo-reveal img { width:min(76vw,480px); }.intro-logo-reveal::before { width:92vw; }
  .site-header { height:68px; }.site-header nav { display:none; }.mini-logo { width:76px; height:58px; }.eyebrow { top:92px; }.hero { padding-top:100px; }.hero-logo { width:92vw; }.hero-copy { margin-top:24px; }.event-meta { width:94%; display:grid; grid-template-columns:1fr; }.event-meta div { padding:12px 10px; justify-content:center; border-right:0; border-bottom:1px solid rgba(255,241,205,.42); }.event-meta div:last-child { border-bottom:0; }
  .section { padding:78px 22px; }.section-heading h2 { font-size:13vw; }.section-heading>span { display:block; margin:10px 0 0; }.news-section,.access-layout { grid-template-columns:1fr; }.news-list { margin-top:45px; }.news-item { grid-template-columns:80px 1fr 24px; gap:10px; padding:16px 0; }.news-item .tag { grid-column:2; grid-row:1; }.news-item h3 { grid-column:1/3; margin:3px 0; }.news-item .arrow { grid-column:3; grid-row:1/3; }.about-section { min-height:auto; }.about-copy { width:100%; }.about-copy .section-heading { margin-top:0; }.about-copy .section-heading h2 { font-size:13.5vw; }.program-grid { grid-template-columns:1fr; gap:28px; }.program-visual { height:190px; }.map-card { height:340px; }.history-section { min-height:auto; overflow:visible; }.magic-library { margin-top:42px; padding:15px 0 0; }.book-row { min-height:0; display:grid; gap:13px; perspective:none; }.magic-book,.future-book { width:100%; transform:none!important; }.magic-book:hover,.magic-book[open] { transform:none; }.magic-book summary { height:88px; padding:12px 18px; display:grid; grid-template-columns:70px 1fr 32px; grid-template-rows:auto 1fr; text-align:left; border-radius:6px; }.book-status { grid-column:1/3; }.magic-book summary strong { margin:0; font:400 23px/1 "Kranky",cursive; letter-spacing:.035em; }.magic-book summary h3 { min-height:0; margin:0; align-self:center; font-size:25px; writing-mode:horizontal-tb; }.magic-book summary i { width:28px; height:28px; margin:0; grid-column:3; grid-row:1/3; align-self:center; }.book-page { position:relative; left:auto; bottom:auto; width:100%; min-height:310px; margin:12px 0 25px; padding:38px 28px; transform:none; border-width:5px; animation:open-book-mobile .45s ease forwards; }.book-page h3,.book-page p,.book-page small { width:100%; }.book-page p { margin:22px 0; }.book-page::after { display:none; }.book-page em { right:20px; }.future-book { height:68px; flex-direction:row; }.future-book span { font-size:36px; }.future-book small { writing-mode:horizontal-tb; }.shelf-pagination { position:relative; left:auto; bottom:auto; width:max-content; margin:22px auto 0; transform:none; }.wooden-shelf { height:30px; }.wooden-shelf::before,.wooden-shelf::after { display:none; }.closing { min-height:540px; padding:40px 20px; }.closing-logo { width:94vw; }.footer-bottom { gap:18px; flex-direction:column; }
  .news-pumpkin { left:auto; right:-5px; bottom:-68px; width:132px; }.news-pumpkin p { left:auto; right:72%; bottom:68%; width:175px; }.news-pumpkin button { transform:translateY(45%); }
  .foreground-branch { opacity:.25; width:130px; }.branch-left { left:-92px; }.branch-right { right:-92px; }.story-bat-one { left:5%; }.story-bat-two { display:none; }.chapter-guide { right:10px; top:auto; bottom:18px; grid-template-columns:40px auto 16px; padding:6px 9px 6px 5px; }.chapter-guide img { width:40px; }.chapter-guide small { display:none; }.chapter-guide b { font-size:14px; }
}
@keyframes open-book-mobile { from { opacity:0; transform:translateY(-12px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; }.storybook-intro,.storybook-foreground { display:none; } }
.news-pumpkin { bottom:20px; }
@media (max-width:800px) { .news-pumpkin { bottom:8px; } }

.castle-window-resident { position:absolute; z-index:6; right:clamp(16px,7vw,110px); top:clamp(150px,24%,220px); width:clamp(72px,8vw,112px); pointer-events:none; }
.castle-window-resident button { position:relative; width:100%; aspect-ratio:.66; display:block; padding:0; border:0; background:none; cursor:pointer; pointer-events:auto; filter:drop-shadow(0 10px 12px rgba(30,7,3,.42)); transition:transform .45s cubic-bezier(.18,.82,.2,1),filter .35s; }
.castle-window-resident button:hover,.castle-window-resident button:focus-visible,.castle-window-resident.is-speaking button { transform:translateY(-6px) rotate(2deg); filter:drop-shadow(0 0 11px rgba(255,169,42,.95)) drop-shadow(0 10px 12px rgba(30,7,3,.42)); outline:none; }
.castle-window-glow { position:absolute; inset:10% 4% 4%; border-radius:52% 52% 10% 10%; background:radial-gradient(circle at 50% 40%,#ffd65a 0 20%,#f47b18 55%,#401108 100%); box-shadow:0 0 0 5px #32140d,0 0 0 8px #9b4a1d,inset 0 0 14px #351008,0 0 22px rgba(255,151,30,.5); animation:castle-window-breathe 2.8s ease-in-out infinite; }
.castle-window-arch { --resident-y:17%; position:absolute; inset:2% -12% 4%; overflow:hidden; border-radius:50% 50% 9% 9%; }
.castle-window-arch img { position:absolute; left:50%; bottom:-31%; width:126%; max-width:none; transform:translateX(-50%) translateY(var(--resident-y)); transition:transform .55s cubic-bezier(.18,.82,.2,1); animation:window-resident-arrive .5s cubic-bezier(.18,.82,.2,1) both; }
.castle-window-arch.resident-pumpkin { --resident-y:8%; }
.castle-window-arch.resident-pumpkin img { width:118%; bottom:-8%; }
.castle-window-arch.resident-ghost { --resident-y:19%; }
.castle-window-arch.resident-ghost img { width:92%; bottom:-22%; }
.castle-window-resident button:hover .castle-window-arch img,.castle-window-resident button:focus-visible .castle-window-arch img,.castle-window-resident.is-speaking .castle-window-arch img { transform:translateX(-50%) translateY(calc(var(--resident-y) - 20%)); }
.castle-window-arch i { position:absolute; left:0; right:0; bottom:0; height:14%; border-top:3px solid #b36327; background:linear-gradient(#7b3218,#2b100b); box-shadow:0 -3px 8px rgba(31,7,3,.45); }
.castle-window-spark { position:absolute; right:-16%; top:3%; color:#ffd65a; font-size:clamp(16px,2vw,27px); text-shadow:0 0 10px #ff8b18; animation:castle-window-spark 1.9s ease-in-out infinite; }
.castle-window-year { position:absolute; z-index:3; left:50%; bottom:-3px; transform:translateX(-50%); padding:3px 7px; color:#fff1bd; border-radius:999px; background:#35120b; font:900 8px/1 Arial,sans-serif; letter-spacing:.12em; box-shadow:0 0 10px rgba(255,157,34,.45); }
.castle-window-resident p { position:absolute; right:86%; top:1%; width:max-content; max-width:240px; margin:0; padding:11px 14px; color:#3d180d; border:2px solid #692710; border-radius:15px 15px 3px 15px; background:#fff0c7; box-shadow:5px 7px 0 rgba(65,20,8,.24); font-size:13px; font-weight:800; line-height:1.4; text-align:left; opacity:0; transform:translate(8px,8px) scale(.9); transform-origin:right bottom; transition:opacity .28s,transform .38s cubic-bezier(.18,.82,.2,1); }
.castle-window-resident p small { display:block; margin-top:4px; font-size:10px; font-weight:700; white-space:nowrap; }
.castle-window-resident.is-speaking p { opacity:1; transform:translate(0,0) scale(1); }
@keyframes castle-window-breathe { 0%,100% { opacity:.78; filter:brightness(.9); } 50% { opacity:1; filter:brightness(1.18); } }
@keyframes castle-window-spark { 0%,100% { opacity:.25; transform:scale(.7) rotate(0); } 50% { opacity:1; transform:scale(1.12) rotate(18deg); } }
@keyframes window-resident-arrive { 0% { opacity:0; filter:blur(5px); transform:translateX(-50%) translateY(65%) scale(.72); } 70% { opacity:1; } 100% { opacity:1; filter:blur(0); transform:translateX(-50%) translateY(var(--resident-y)) scale(1); } }
@media (max-width:800px) {
  .castle-window-resident { right:3px; top:120px; width:70px; }
  .castle-window-resident p { right:70%; top:12%; max-width:185px; font-size:11px; }
  .castle-window-resident p small { font-size:9px; white-space:normal; }
}
@media (prefers-reduced-motion:reduce) {
  .castle-window-glow,.castle-window-spark { animation:none; }
}

.future-book { position:relative; z-index:50; padding:0; font:inherit; cursor:pointer; transition:color .3s,filter .3s,transform .3s; }
.future-book.is-awake { z-index:60; }
.book-row:has(.magic-book[open]) .future-book { z-index:0; }
.future-book>em { position:absolute; z-index:100; right:calc(100% + 18px); top:32%; width:210px; padding:14px 16px; color:#3d1a0e; border:2px solid #6b2b13; border-radius:17px 17px 3px 17px; background:#fff0c2; box-shadow:5px 7px 0 rgba(53,15,5,.32),0 0 24px rgba(255,167,34,.62); font-size:11px; font-style:normal; font-weight:800; line-height:1.7; text-align:left; text-shadow:none; opacity:0; transform:translate(12px,10px) scale(.78); transform-origin:right center; transition:opacity .25s,transform .4s cubic-bezier(.2,.85,.25,1.2); pointer-events:none; isolation:isolate; }
.future-book>em b { display:block; color:#8a2d10; font:400 19px/1 "Kranky",cursive; letter-spacing:.06em; }
.future-book>i { position:absolute; top:28%; left:50%; color:#ffd45c; font-size:22px; font-style:normal; opacity:0; transform:translateX(-50%); }
.future-book:hover,.future-book:focus-visible,.future-book.is-awake { color:#f5d992; filter:drop-shadow(0 0 12px rgba(255,172,40,.85)); outline:none; transform:translateY(-7px); }
.future-book.is-awake>em { opacity:1; transform:none; }
.future-book.is-awake>i { animation:future-book-spark 1.3s ease-out infinite; }
@keyframes future-book-spark { 0% { opacity:0; transform:translate(-50%,12px) scale(.4) rotate(0); } 35% { opacity:1; } 100% { opacity:0; transform:translate(-50%,-42px) scale(1.25) rotate(30deg); } }
@media (max-width:800px) {
  .future-book>em { right:12px; top:auto; bottom:calc(100% + 12px); width:min(240px,78vw); }
}

.program-section { position:relative; overflow:hidden; }
.closing { position:relative; overflow:hidden; }
.tiny-resident { position:absolute; z-index:8; width:clamp(64px,7vw,98px); pointer-events:none; }
.tiny-resident button { position:relative; width:100%; height:120px; padding:0; border:0; background:none; cursor:pointer; pointer-events:auto; filter:drop-shadow(0 8px 7px rgba(34,8,3,.4)); transition:transform .42s cubic-bezier(.18,.82,.2,1),filter .3s; }
.tiny-resident img { position:absolute; display:block; width:100%; max-width:none; transition:transform .48s cubic-bezier(.18,.82,.2,1); }
.tiny-resident button>span { position:absolute; right:2px; top:5px; color:#ffd45b; font-size:20px; opacity:.45; text-shadow:0 0 10px #ff7a12; animation:tiny-resident-spark 2s ease-in-out infinite; }
.tiny-resident p { position:absolute; width:max-content; max-width:210px; margin:0; padding:9px 12px; color:#3b170c; border:2px solid #6a2a12; border-radius:14px 14px 3px 14px; background:#fff0c4; box-shadow:4px 5px 0 rgba(57,17,6,.28); font-size:11px; font-weight:900; opacity:0; transform:translate(8px,8px) scale(.85); transition:opacity .25s,transform .38s cubic-bezier(.18,.82,.2,1.2); pointer-events:none; }
.tiny-resident.is-found p { opacity:1; transform:none; }
.tiny-resident-ghost { right:-38px; top:42%; }
.tiny-resident-ghost img { bottom:-34px; transform:translateY(45%); }
.tiny-resident-ghost p { right:76%; top:5px; }
.tiny-resident-ghost button:hover img,.tiny-resident-ghost button:focus-visible img,.tiny-resident-ghost.is-found img { transform:translate(-24px,12%); }
.tiny-resident-cat { left:-30px; bottom:68px; }
.tiny-resident-cat img { bottom:-48px; transform:translateY(46%); }
.tiny-resident-cat p { left:75%; top:0; border-radius:14px 14px 14px 3px; }
.tiny-resident-cat button:hover img,.tiny-resident-cat button:focus-visible img,.tiny-resident-cat.is-found img { transform:translate(22px,16%); }
.tiny-resident button:hover,.tiny-resident button:focus-visible,.tiny-resident.is-found button { filter:drop-shadow(0 0 9px rgba(255,173,44,.9)) drop-shadow(0 8px 7px rgba(34,8,3,.4)); outline:none; }
@keyframes tiny-resident-spark { 0%,100% { opacity:.2; transform:scale(.65) rotate(0); } 50% { opacity:1; transform:scale(1.05) rotate(18deg); } }
@media (max-width:800px) {
  .tiny-resident { width:62px; }
  .tiny-resident-ghost { right:-31px; top:48%; }
  .tiny-resident-cat { left:-25px; bottom:35px; }
  .tiny-resident p { max-width:165px; font-size:10px; }
}


.access-section { position:relative; overflow:hidden; padding-bottom:180px; }
.graveyard-reveal { --grave-progress:0; position:absolute; z-index:8; left:clamp(8px,3vw,50px); bottom:-8px; width:clamp(120px,15vw,210px); pointer-events:none; transform:translateY(calc(var(--grave-progress) * 72%)); opacity:calc(1 - var(--grave-progress)); transition:opacity .12s linear; }
.graveyard-reveal.is-gone button { pointer-events:none; }
.graveyard-reveal button { position:relative; display:block; width:100%; padding:0; border:0; background:none; cursor:pointer; pointer-events:auto; filter:drop-shadow(0 10px 11px rgba(37,8,3,.4)); transition:transform .38s cubic-bezier(.18,.82,.2,1),filter .3s; }
.graveyard-reveal button:hover,.graveyard-reveal button:focus-visible,.graveyard-reveal.is-found button { transform:translateY(-9px) rotate(-2deg); filter:drop-shadow(0 0 11px rgba(255,173,47,.85)) drop-shadow(0 10px 11px rgba(37,8,3,.4)); outline:none; }
.graveyard-reveal img { display:block; width:100%; }
.graveyard-reveal button>span { position:absolute; right:4%; top:8%; color:#ffe06a; font-size:24px; text-shadow:0 0 9px #ff8418; opacity:.35; animation:grave-spark 1.8s ease-in-out infinite; }
.graveyard-reveal p { position:absolute; left:82%; bottom:48%; width:max-content; max-width:230px; margin:0; padding:11px 14px; color:#3e190e; border:2px solid #682710; border-radius:4px 15px 15px; background:#fff0c7; box-shadow:5px 7px 0 rgba(65,20,8,.24); font-size:13px; font-weight:800; line-height:1.4; opacity:0; transform:translate(-8px,8px) scale(.9); transform-origin:left bottom; transition:opacity .28s,transform .38s cubic-bezier(.18,.82,.2,1); }
.graveyard-reveal p small { display:block; margin-top:4px; font-size:10px; white-space:nowrap; }
.graveyard-reveal.is-found p { opacity:1; transform:none; }
@keyframes grave-spark { 0%,100% { opacity:.2; transform:scale(.7) rotate(0); } 50% { opacity:1; transform:scale(1.08) rotate(20deg); } }
@media (max-width:800px) {
  .access-section { padding-bottom:145px; }
  .graveyard-reveal { left:-8px; width:126px; }
  .graveyard-reveal p { left:76%; bottom:45%; max-width:175px; font-size:11px; }
  .graveyard-reveal p small { font-size:9px; white-space:normal; }
}
@media (prefers-reduced-motion:reduce) {
  .graveyard-reveal { transform:none; opacity:1; }
  .graveyard-reveal button>span { animation:none; }
}

.moon-secret { position:absolute; z-index:4; left:clamp(86px,13vw,205px); top:clamp(90px,10vh,130px); width:clamp(150px,19vw,275px); aspect-ratio:1; pointer-events:none; }
.moon-secret button { position:absolute; inset:0; width:100%; padding:0; border:0; border-radius:50%; background:transparent; cursor:pointer; pointer-events:auto; transition:filter .4s,transform .4s; }
.moon-secret button:hover,.moon-secret button:focus-visible,.moon-secret.is-open button { filter:drop-shadow(0 0 18px rgba(255,209,104,.9)); transform:scale(1.035); outline:none; }
.moon-secret-ring { position:absolute; inset:7%; border:1px solid rgba(255,238,190,.28); border-radius:50%; background:radial-gradient(circle,rgba(255,231,164,.16) 0 50%,rgba(255,186,65,.08) 67%,transparent 76%); box-shadow:inset 0 0 42px rgba(255,223,143,.22),0 0 32px rgba(255,191,69,.34),0 0 68px rgba(255,144,27,.18); animation:moon-secret-pulse 5.4s ease-in-out infinite; }
.moon-secret-spark { position:absolute; right:12%; top:14%; color:#fff1b0; font-size:18px; opacity:.18; text-shadow:0 0 10px #ff9a25; animation:moon-secret-twinkle 2.4s ease-in-out infinite; }
.moon-secret-bats { position:absolute; inset:0; opacity:0; visibility:hidden; }
.moon-secret-bats img { --secret-index:0; --secret-x:0px; --secret-y:-120px; --secret-rotate:0deg; position:absolute; left:45%; top:48%; width:clamp(28px,4vw,55px); transform:translate(-50%,-50%) scale(.15); filter:sepia(1) saturate(2.8) brightness(.55); }
.moon-secret.is-open .moon-secret-bats { opacity:1; visibility:visible; }
.moon-secret.is-open .moon-secret-bats img { animation:moon-secret-bat 1.15s cubic-bezier(.16,.76,.24,1) calc(var(--secret-index) * .1s) both; }
.moon-secret p { position:absolute; left:72%; top:63%; width:max-content; max-width:270px; margin:0; padding:11px 15px; color:#3e190e; border:2px solid #682710; border-radius:4px 15px 15px; background:#fff0c7; box-shadow:5px 7px 0 rgba(65,20,8,.24); font-size:13px; font-weight:800; line-height:1.4; opacity:0; transform:translate(-9px,9px) scale(.92); transition:opacity .3s .25s,transform .42s .25s cubic-bezier(.18,.82,.2,1); }
.moon-secret p small { display:block; margin-top:4px; font-size:10px; white-space:nowrap; }
.moon-secret.is-open p { opacity:1; transform:none; }
@keyframes moon-secret-pulse { 0%,100% { opacity:.68; transform:scale(.97); filter:blur(.2px); } 50% { opacity:.94; transform:scale(1.025); filter:blur(.8px); } }
@keyframes moon-secret-twinkle { 0%,100% { opacity:.12; transform:scale(.7) rotate(0); } 50% { opacity:.55; transform:scale(1.05) rotate(18deg); } }
@keyframes moon-secret-bat { 0% { opacity:0; transform:translate(-50%,-50%) scale(.15) rotate(-18deg); } 30% { opacity:1; } 100% { opacity:0; transform:translate(calc(-50% + var(--secret-x)),calc(-50% + var(--secret-y))) scale(.9) rotate(var(--secret-rotate)); } }
@media (max-width:800px) {
  .moon-secret { left:5vw; top:100px; width:38vw; max-width:180px; }
  .moon-secret p { left:42%; top:80%; max-width:205px; font-size:11px; }
  .moon-secret p small { font-size:9px; white-space:normal; }
}
@media (prefers-reduced-motion:reduce) {
  .moon-secret-ring,.moon-secret-spark { animation:none; }
  .moon-secret.is-open .moon-secret-bats img { animation:none; opacity:.65; }
}

@media (max-width:800px) {
  .archive-gate { width:100%; height:68px; flex-direction:row; transform:none!important; }
  .archive-gate small { writing-mode:horizontal-tb; }
}

/* Responsive finishing: keep the illustrated composition readable between desktop and phone. */
@media (min-width:801px) and (max-width:1100px) {
  .site-header { padding-inline:3vw; }
  .site-header nav { gap:1.45vw; font-size:9px; }
  .section { padding:92px 5vw; }
  .program-grid { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:850px; margin-inline:auto; }
  .program-card:nth-child(3) { grid-column:1/-1; width:min(410px,100%); justify-self:center; }
  .program-front-copy b { font-size:clamp(30px,4vw,42px); }
  .access-layout { grid-template-columns:1fr; gap:45px; max-width:850px; margin-inline:auto; }
  .map-card { height:440px; }
  .access-copy { width:min(620px,100%); margin-inline:auto; }
  .about-copy { width:min(660px,76vw); }
  .book-page { width:min(650px,76vw); }
  .chapter-guide { right:14px; }
}

@media (max-width:800px) {
  body { overflow-x:hidden; }
  .section { scroll-margin-top:60px; }
  .section-heading h2 { overflow-wrap:anywhere; }
  .section-intro { margin:22px auto 34px; font-size:13px; line-height:1.9; text-align:center; }
  .hero { min-height:100svh; padding-inline:18px; }
  .hero-copy { font-size:18px; line-height:1.65; }
  .event-meta { max-width:430px; }
  .event-meta div { min-width:0; }
  .event-meta strong { font-size:12px; overflow-wrap:anywhere; }
  .news-section { gap:0; padding-bottom:145px; }
  .news-item h3 { font-size:12px; line-height:1.65; }
  .about-section { padding-top:125px; }
  .about-copy .lead { margin:34px 0 20px; font-size:clamp(22px,7vw,30px); line-height:1.65; }
  .about-copy>p:last-child { font-size:12px; line-height:2; }
  .program-card { width:min(100%,430px); justify-self:center; aspect-ratio:4/5.15; }
  .program-card-back { padding:27px 24px; }
  .program-card-back>b { margin-top:25px; font-size:34px; }
  .program-back-text { margin-top:18px; line-height:1.75; }
  .program-facts { margin-top:16px; }
  .access-layout { gap:34px; }
  .map-card { width:calc(100% + 12px); height:clamp(280px,78vw,360px); margin-left:-6px; border-width:6px; }
  .access-copy h3 { font-size:clamp(38px,13vw,54px); overflow-wrap:anywhere; }
  .access-copy dl div { grid-template-columns:76px minmax(0,1fr); gap:10px; }
  .access-copy dd { font-size:11px; line-height:1.7; }
  .magic-library { width:100%; }
  .book-row { grid-template-columns:minmax(0,1fr); }
  .magic-book,.future-book,.archive-gate { min-width:0; }
  .magic-book summary { grid-template-columns:62px minmax(0,1fr) 32px; }
  .magic-book summary h3 { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .book-page { overflow:hidden; }
  .book-page h3 { padding-right:36px; font-size:clamp(30px,10vw,43px); overflow-wrap:anywhere; }
  .book-page p { font-size:11px; line-height:1.8; overflow-wrap:anywhere; }
  .shelf-pagination span { min-width:92px; }
  .chapter-guide { max-width:calc(100vw - 20px); }
  .castle-window-resident p,.news-pumpkin p,.graveyard-reveal p,.tiny-resident p,.moon-secret p { overflow-wrap:anywhere; }
  .footer-links { flex-wrap:wrap; }
}

@media (max-width:390px) {
  .section { padding-inline:16px; }
  .program-card-face { border-width:5px; }
  .program-front-copy { left:14px; right:14px; bottom:16px; }
  .program-front-copy b { font-size:28px; }
  .book-page { padding:34px 20px; }
  .book-close { top:10px; right:10px; }
}

/* Motion rhythm: quick navigation, soft discoveries, calm card and book opening. */
.storybook-foreground { transition-duration:var(--motion-reveal); }
.chapter-guide { transition:background var(--motion-fast),transform .12s linear,box-shadow var(--motion-fast); }
.program-card { transition-duration:var(--motion-fast); }
.program-card-inner { transition-duration:var(--motion-open); transition-timing-function:var(--motion-ease); }
.magic-book,.magic-book summary,.future-book,.archive-gate { transition-duration:var(--motion-reveal); transition-timing-function:var(--motion-ease); }
.book-page { animation-duration:var(--motion-open); animation-timing-function:var(--motion-ease); }
.news-pumpkin button,.castle-window-arch img,.tiny-resident img { transition-duration:var(--motion-reveal); transition-timing-function:var(--motion-ease); }
.news-pumpkin p,.castle-window-resident p,.graveyard-reveal p,.tiny-resident p,.moon-secret p,.future-book>em { transition-duration:var(--motion-fast),var(--motion-reveal); transition-timing-function:ease,var(--motion-playful); }
.graveyard-reveal button,.castle-window-resident button,.tiny-resident button,.moon-secret button { transition-duration:var(--motion-reveal); transition-timing-function:var(--motion-ease); }
.program-page-corner { animation-duration:2.8s; }
.program-flip-hint i { animation-duration:2.4s; }
.pumpkin-spark,.castle-window-spark,.tiny-resident button>span,.graveyard-reveal button>span { animation-duration:2.6s; }
.program-keyhole,.program-secret-hint { animation-duration:2.3s; }

/* NEWS detail — a loose page from the same Halloween picture book. */
.news-item { transition:background var(--motion-fast),padding var(--motion-fast); }
.news-item .tag,.news-detail-title .tag { color:#fff8e5; border-color:rgba(255,248,229,.88); background:rgba(43,12,6,.78); box-shadow:0 2px 8px rgba(28,7,3,.35); text-shadow:none; }
.news-item:hover,.news-item:focus-visible { padding-inline:12px; background:rgba(255,244,214,.1); outline:none; }
.news-item:hover .arrow,.news-item:focus-visible .arrow { transform:translateX(6px); }
.news-item .arrow { transition:transform var(--motion-fast) var(--motion-ease); }
.news-detail-page { min-height:100svh; color:#fff8e5; }
.news-detail-header { background:linear-gradient(180deg,rgba(29,9,5,.82),rgba(29,9,5,.12),transparent); }
.news-detail { width:min(980px,calc(100% - 48px)); margin:0 auto; padding:150px 0 100px; }
.news-detail-back { display:inline-flex; align-items:center; gap:12px; margin-bottom:70px; font:900 9px/1 Arial,sans-serif; letter-spacing:.18em; }
.news-detail-back span { width:34px; height:34px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; transition:transform var(--motion-fast),background var(--motion-fast); }
.news-detail-back:hover span,.news-detail-back:focus-visible span { color:#321207; background:#ffd064; transform:translateX(-5px); }
.news-detail-back:focus-visible { outline:none; }
.news-detail-title { width:min(760px,100%); margin:0 auto 55px; text-align:center; }
.news-detail-title>p { margin:0 0 25px; color:#ffd15c; font:900 9px/1 Arial,sans-serif; letter-spacing:.28em; }
.news-detail-title>div { display:flex; justify-content:center; align-items:center; gap:18px; }
.news-detail-title time { font:800 11px/1 Arial,sans-serif; letter-spacing:.1em; }
.news-detail-title h1 { margin:34px 0 22px; font-size:clamp(30px,4.2vw,58px); line-height:1.45; font-weight:700; letter-spacing:.05em; text-wrap:balance; }
.news-detail-title strong { display:block; color:#fff0ba; font-size:clamp(15px,1.7vw,20px); line-height:1.9; font-weight:700; }
.news-detail-paper { position:relative; width:min(760px,100%); margin:0 auto; padding:70px clamp(34px,7vw,82px) 52px; overflow:hidden; color:#3c2116; background:linear-gradient(100deg,#d8c092 0,#fff1cc 8%,#f9e9c4 56%,#ddc397 100%); border:7px solid #5b2713; border-radius:5px 18px 18px 5px; box-shadow:0 30px 60px rgba(32,7,2,.48),inset 0 0 55px rgba(91,45,18,.17); }
.news-detail-paper::before { content:""; position:absolute; inset:15px; border:1px solid rgba(101,53,25,.22); border-radius:2px 11px 11px 2px; pointer-events:none; }
.news-detail-body { position:relative; }
.news-detail-body p { margin:0 0 27px; font-size:15px; line-height:2.25; font-weight:500; letter-spacing:.055em; }
.news-detail-paper aside { position:relative; margin-top:45px; padding:25px 28px; border:1px solid rgba(97,45,20,.42); background:rgba(255,247,221,.42); }
.news-detail-paper aside small { color:#9c3c16; font:900 8px/1 Arial,sans-serif; letter-spacing:.2em; }
.news-detail-paper aside p { margin:12px 0 0; font-size:12px; line-height:1.9; font-weight:700; }
.news-detail-sign { margin:40px 0 0; font:400 24px/1 "Kranky",cursive; letter-spacing:.06em; text-align:right; }
.news-detail-nav { width:min(760px,100%); margin:55px auto 0; display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.news-detail-nav>a { min-height:100px; display:flex; flex-direction:column; justify-content:center; gap:10px; padding:20px; border-top:1px solid rgba(255,248,226,.7); border-bottom:1px solid rgba(255,248,226,.35); transition:background var(--motion-fast),padding var(--motion-fast); }
.news-detail-nav>a:last-child { text-align:right; }
.news-detail-nav>a:hover,.news-detail-nav>a:focus-visible { padding-inline:27px; background:rgba(45,13,7,.72); outline:none; }
.news-detail-nav small { color:#ffd05c; font:900 7px/1 Arial,sans-serif; letter-spacing:.2em; }
.news-detail-nav span { font-size:12px; line-height:1.65; font-weight:700; }
@media (max-width:800px) {
  .news-detail { width:min(100% - 32px,680px); padding:110px 0 70px; }
  .news-detail-back { margin-bottom:45px; }
  .news-detail-title { margin-bottom:38px; }
  .news-detail-title h1 { font-size:clamp(27px,8vw,40px); line-height:1.55; }
  .news-detail-title strong { font-size:14px; }
  .news-detail-paper { padding:52px 27px 38px; border-width:5px; }
  .news-detail-body p { font-size:13px; line-height:2.05; }
  .news-detail-paper aside { padding:21px 20px; }
  .news-detail-nav { grid-template-columns:1fr; gap:10px; }
  .news-detail-nav>a:last-child { text-align:left; }
}

/* 404 — a missing page somewhere beyond the Halloween night. */
.not-found-page { position:relative; min-height:100svh; overflow:hidden; display:grid; place-items:center; padding:120px 24px 70px; color:#fff8e5; text-align:center; isolation:isolate; }
.not-found-page::before { content:""; position:absolute; z-index:-1; inset:0; background:radial-gradient(circle at 50% 42%,rgba(255,174,44,.3),transparent 31%),linear-gradient(180deg,rgba(25,7,4,.08),rgba(20,5,3,.58)); }
.not-found-header { background:linear-gradient(180deg,rgba(27,8,5,.78),transparent); }
.not-found-content { width:min(720px,100%); }
.not-found-kicker { margin:0 0 4px; color:#ffd45b; font:900 9px/1 Arial,sans-serif; letter-spacing:.3em; }
.not-found-content h1 { margin:0; color:#fff8e5; font:400 clamp(150px,24vw,310px)/.82 "Kranky",cursive; letter-spacing:.01em; text-shadow:8px 10px 0 rgba(73,22,9,.72),0 0 32px rgba(255,134,22,.45); }
.not-found-message { width:min(560px,92%); margin:48px auto; padding:21px 24px; border-top:1px solid rgba(255,240,203,.65); border-bottom:1px solid rgba(255,240,203,.65); background:rgba(45,13,7,.48); backdrop-filter:blur(4px); }
.not-found-message strong { display:block; font-size:clamp(18px,2.4vw,26px); line-height:1.65; letter-spacing:.08em; }
.not-found-message p { margin:13px 0 0; font-size:12px; line-height:1.9; font-weight:700; letter-spacing:.06em; }
.not-found-home { width:max-content; max-width:100%; margin:0 auto; display:grid; grid-template-columns:64px auto 24px; align-items:center; gap:12px; padding:9px 15px 9px 9px; color:#fff8df; border:1px solid rgba(255,244,207,.8); border-radius:999px; background:radial-gradient(circle at 40px 50%,rgba(255,151,31,.72) 0,rgba(255,116,16,.34) 20%,transparent 36%),rgba(36,10,6,.78); box-shadow:0 10px 28px rgba(28,6,3,.35); text-align:left; transition:transform var(--motion-fast),background var(--motion-fast),color var(--motion-fast),box-shadow var(--motion-fast); }
.not-found-home img { width:64px; height:40px; object-fit:contain; filter:brightness(0) drop-shadow(0 0 3px #ffb43b) drop-shadow(0 0 10px rgba(255,112,12,.95)); animation:guide-bat-fly 1.3s ease-in-out infinite; transition:filter var(--motion-fast); }
.not-found-home span { display:flex; flex-direction:column; gap:4px; font-size:13px; font-weight:800; letter-spacing:.08em; }
.not-found-home small { color:#ffd45b; font:900 6px/1 Arial,sans-serif; letter-spacing:.18em; }
.not-found-home i { font-size:20px; font-style:normal; transition:transform var(--motion-fast); }
.not-found-home:hover,.not-found-home:focus-visible { color:#321207; background:#ffd065; box-shadow:0 0 0 7px rgba(255,161,31,.18),0 10px 28px rgba(28,6,3,.35); outline:none; transform:translateY(-4px); }
.not-found-home:hover small,.not-found-home:focus-visible small { color:#6d250d; }
.not-found-home:hover img,.not-found-home:focus-visible img { filter:brightness(0) saturate(100%) invert(17%) sepia(48%) saturate(1354%) hue-rotate(343deg) brightness(91%); }
.not-found-home:hover i,.not-found-home:focus-visible i { transform:translateX(5px); }
.not-found-bats { position:absolute; z-index:-1; inset:0; pointer-events:none; }
.not-found-bats img { position:absolute; width:clamp(50px,7vw,96px); filter:drop-shadow(0 8px 8px rgba(19,4,2,.45)); animation:bat-flutter .22s ease-in-out infinite alternate; }
.not-found-bats img:nth-child(1) { left:10%; top:28%; transform:rotate(-14deg); }
.not-found-bats img:nth-child(2) { right:12%; top:34%; width:clamp(38px,5vw,70px); transform:rotate(12deg); }
.not-found-bats img:nth-child(3) { right:23%; bottom:12%; width:clamp(32px,4vw,58px); transform:rotate(-8deg); }
@media (max-width:800px) {
  .not-found-page { padding:105px 16px 50px; }
  .not-found-content h1 { font-size:clamp(130px,52vw,210px); }
  .not-found-message { margin-top:32px; padding:18px 15px; }
  .not-found-message strong { font-size:17px; }
  .not-found-home { grid-template-columns:48px auto 18px; gap:8px; padding:7px 11px 7px 7px; }
  .not-found-home img { width:48px; height:34px; }
  .not-found-home span { font-size:11px; }
  .not-found-bats img:nth-child(1) { left:3%; top:20%; }
  .not-found-bats img:nth-child(2) { right:3%; top:27%; }
}
