body.home-view #home.academy-night-home{position:relative;isolation:isolate;display:block;width:100%;height:max(640px,calc(100svh - var(--hero-header-height,100px)));min-height:0;max-height:none;padding:0;margin:0;background:#111;overflow:hidden}
#home.academy-night-home:before,#home.academy-night-home:after{display:none!important}
.academy-night-art{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:55% 45%;filter:grayscale(1);image-rendering:pixelated;z-index:-2}
.academy-night-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0004,transparent 40%,#0001 70%,#000b)}
.academy-night-title{position:absolute;top:9%;left:7%;max-width:80%;color:#d0d0d0;text-shadow:3px 3px #141414}
.academy-night-title>span,.academy-night-caption>span{font:10px/1.5 'Academy Pixel',monospace;letter-spacing:2px;color:#a5a5a5}
.academy-night-title h1{font:clamp(28px,4vw,58px)/1.3 'Academy Pixel',monospace;letter-spacing:-1px;margin:12px 0}
.academy-night-title p{font:12px/1.7 'Academy Pixel',monospace;margin:0;color:#ababab}
.academy-night-birds{position:absolute;inset:0;pointer-events:none}
.academy-raven{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100px;height:110px;padding:8px;background:none;border:0;color:#ddd;pointer-events:auto;cursor:pointer;animation:raven-flight 12s ease-in-out infinite;touch-action:manipulation}
.academy-raven svg{width:64px;height:40px;overflow:visible;filter:drop-shadow(2px 3px 0 #0007)}
.raven-0{left:20%;top:34%}.raven-1{right:12%;top:19%;animation-delay:-4s}.raven-2{left:52%;top:46%;animation-delay:-8s}
.raven-wing{transform-origin:32px 24px;animation:raven-flap .8s steps(2,end) infinite}
.raven-bubble{position:relative;display:block;white-space:nowrap;padding:8px 10px;background:#1a1a1a;border:2px solid #8b8b8b;box-shadow:3px 3px #0b0b0b;font:11px/1.3 'Academy Pixel',monospace;color:#ddd;animation:raven-chat 7s ease-in-out infinite}
.raven-bubble:after{content:'';position:absolute;left:calc(50% - 4px);bottom:-6px;width:8px;height:8px;background:#1a1a1a;border-right:2px solid #8b8b8b;border-bottom:2px solid #8b8b8b;transform:rotate(45deg)}
.raven-1 .raven-bubble{animation-delay:-2s}.raven-2 .raven-bubble{animation-delay:-4s}
.academy-raven:hover,.academy-raven:focus-visible{animation-play-state:paused}.academy-raven:focus-visible{outline:2px solid #bbb;outline-offset:4px;border-radius:6px}.academy-raven:focus-visible .raven-bubble,.academy-raven:hover .raven-bubble{opacity:1;animation:none}
.academy-night-caption{position:absolute;bottom:5%;left:7%;right:7%;display:flex;align-items:center;justify-content:space-between;gap:16px}
.academy-night-enter{display:flex;align-items:center;justify-content:center;gap:20px;min-height:48px;border:1px solid #727272;background:#141414d9;color:#ccc;padding:14px 20px;font:12px/1.5 'Academy Pixel',monospace;box-shadow:3px 3px #0006;cursor:pointer;transition:background .2s}
.academy-night-enter:hover{background:#333}.academy-night-enter:focus-visible{outline:2px solid #ddd;outline-offset:4px}
body.home-view .academy-build-footer{filter:grayscale(1)}
@keyframes raven-flight{0%,100%{transform:translate(-18px,0)}50%{transform:translate(24px,-16px)}}@keyframes raven-flap{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.4)}}@keyframes raven-chat{0%,10%,90%,100%{opacity:0;transform:translateY(5px)}20%,80%{opacity:1;transform:translateY(0)}}
@media(max-width:700px){body.home-view #home.academy-night-home{height:max(620px,calc(100svh - var(--hero-header-height,100px)))}.academy-night-art{object-position:59% center}.academy-night-title{top:6%;left:6%;max-width:88%}.academy-night-title h1{font-size:clamp(25px,7.8vw,42px)}.academy-night-title p{font-size:10px}.raven-0{left:8%;top:30%}.raven-1{right:5%;top:18%}.raven-2{left:43%;top:49%}.academy-night-caption{left:6%;right:6%;bottom:4%;flex-direction:column;align-items:stretch;gap:12px}.academy-night-caption>span{text-align:center;font-size:8px}.academy-night-enter{width:100%}.academy-raven{width:88px}.academy-night-title>span{font-size:9px}}
@media(max-height:500px) and (orientation:landscape){body.home-view #home.academy-night-home{height:520px}}
@media(prefers-reduced-motion:reduce){.academy-raven,.raven-wing,.raven-bubble{animation:none}.raven-bubble{opacity:1}.academy-night-enter{transition:none}}
body:not(.home-view) .academy-raven,body:not(.home-view) .raven-wing,body:not(.home-view) .raven-bubble{animation-play-state:paused}
body.home-view .back-to-top{display:none!important}
/* A scenery-only entrance; course content lives on its own routes. */
body.home-view main>[id]:not(#home){display:none!important}
#home[hidden]{display:none!important}
body.home-view #home.academy-night-home{background:#000}
.academy-night-art{filter:grayscale(1) brightness(.66) contrast(1.12);mask-image:linear-gradient(transparent 0%,#000 46%,#000 100%);-webkit-mask-image:linear-gradient(transparent 0%,#000 46%,#000 100%)}
.academy-night-shade{background:linear-gradient(#0008,transparent 50%,#0005)}
body.home-view .academy-build-footer{display:none}
.academy-clouds{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.academy-clouds i{position:absolute;left:-260px;top:10%;width:240px;height:46px;background:#383838;opacity:.42;clip-path:polygon(0 48%,12% 48%,12% 25%,25% 25%,25% 0,57% 0,57% 22%,74% 22%,74% 45%,90% 45%,90% 66%,100% 66%,100% 100%,0 100%);animation:academy-cloud-drift 65s linear infinite;box-shadow:inset 0 -12px #222}
.academy-clouds i:nth-child(2){top:22%;width:180px;height:30px;animation-duration:82s;animation-delay:-38s;opacity:.27}.academy-clouds i:nth-child(3){top:3%;animation-duration:95s;animation-delay:-70s;opacity:.22}.academy-clouds i:nth-child(4){top:35%;width:210px;height:34px;animation-duration:75s;animation-delay:-17s;opacity:.24}
.academy-night-birds{z-index:2;overflow:hidden}
.academy-raven{left:-130px;right:auto;top:17%;width:110px;height:112px;animation:academy-bird-flight 24s linear infinite;will-change:transform}
.academy-raven.raven-1{left:-130px;right:auto;top:31%;animation-duration:30s;animation-delay:-13s}.academy-raven.raven-2{left:-130px;right:auto;top:43%;animation-duration:27s;animation-delay:-21s}
.academy-raven svg{filter:drop-shadow(1px 1px 0 #aaa) drop-shadow(-1px -1px 0 #666)}
.raven-bubble{padding:12px 16px;background:#c3c3c3;color:#191919;border:0;box-shadow:none;font-size:10px;clip-path:polygon(0 25%,10% 25%,10% 10%,25% 10%,25% 0,70% 0,70% 10%,90% 10%,90% 25%,100% 25%,100% 75%,90% 75%,90% 88%,60% 88%,50% 100%,45% 88%,10% 88%,10% 75%,0 75%);animation:raven-chat 6s ease-in-out infinite;line-height:1.4}
.raven-bubble:after{display:none}
.academy-raven.is-circling{left:var(--circle-x)!important;top:var(--circle-y)!important;animation:academy-bird-circle 1.35s linear 1!important;z-index:5}
.academy-raven.is-circling .raven-bubble{animation:none;opacity:1}
@keyframes academy-cloud-drift{from{transform:translateX(0)}to{transform:translateX(calc(100vw + 520px))}}
@keyframes academy-bird-flight{0%{transform:translate(0,0)}25%{transform:translate(calc(25vw + 65px),-14px)}50%{transform:translate(calc(50vw + 130px),8px)}75%{transform:translate(calc(75vw + 195px),-10px)}100%{transform:translate(calc(100vw + 260px),0)}}
@keyframes academy-bird-circle{0%,100%{transform:translate(0,0)}25%{transform:translate(32px,-30px)}50%{transform:translate(0,-60px)}75%{transform:translate(-32px,-30px)}}
@media(prefers-reduced-motion:reduce){.academy-clouds i{animation:none;left:12%}.academy-clouds i:nth-child(2){left:66%}.academy-raven{animation:none;left:10%}.academy-raven.raven-1{animation:none;left:65%}.academy-raven.raven-2{animation:none;left:38%}.academy-raven.is-circling{animation:none!important}}

/* Restore the clean, sequential academy entrance. */
main>[hidden]{display:none!important}
.academy-night-art{filter:grayscale(1) brightness(1.12) contrast(1.02);mask-image:linear-gradient(#000b,#000 35%);-webkit-mask-image:linear-gradient(#000b,#000 35%)}
.academy-night-shade{background:linear-gradient(#0001,transparent 65%,#0003)}
.academy-raven svg{filter:none;width:64px;height:40px}
.academy-raven svg path{fill:#111}
.academy-raven{animation-duration:25s;top:16%}
.academy-raven.raven-1{top:28%;animation-duration:33s;animation-delay:-15s}
.academy-raven.raven-2{top:39%;animation-duration:29s;animation-delay:-23s}
.raven-wing{animation:raven-flap .65s steps(3,end) infinite;transform-origin:32px 24px}
@keyframes raven-flap{0%,100%{transform:scaleY(1)}50%{transform:scaleY(-.5)}}
@media(prefers-reduced-motion:reduce){.raven-wing{animation:none}}

/* Extend the portrait landscape beyond mobile browser controls. */
@media(max-width:1024px) and (orientation:portrait){
 body.home-view #home.academy-night-home{height:max(640px,calc(100vh - var(--academy-header-height,140px) + 140px + env(safe-area-inset-bottom,0px)));min-height:640px;max-height:none}
 @supports(height:100lvh){body.home-view #home.academy-night-home{height:max(640px,calc(100lvh - var(--academy-header-height,140px) + clamp(100px,18svh,180px) + env(safe-area-inset-bottom,0px)))}}
 .academy-night-art{object-position:59% top}
 body.home-view main{padding-bottom:0;margin-bottom:0}
 body.home-view>footer.utility-footer{height:0;min-height:0;margin:0;padding:0}
}
@media(max-width:1024px) and (orientation:landscape){body.home-view #home.academy-night-home{height:max(460px,calc(100lvh - var(--academy-header-height,90px) + 80px));max-height:none}.academy-night-art{object-position:55% center}}

/* Dedicated high-contrast scholar bird for the welcome dialog. */
.academy-welcome .welcome-bird{display:grid;place-items:center;width:116px;height:108px;margin:0 auto 8px;flex-shrink:0;background:radial-gradient(ellipse,#ffffff12,transparent 70%);filter:none}
.academy-welcome .welcome-bird svg.welcome-scholar{display:block;width:108px;height:99px;overflow:visible;image-rendering:pixelated;filter:drop-shadow(0 3px 0 #0008)}
.academy-welcome .welcome-scholar .scholar-cap{transform-origin:48px 30px;animation:scholar-cap-nod 4s steps(4,end) infinite}
@keyframes scholar-cap-nod{0%,75%,100%{transform:rotate(0)}85%{transform:rotate(-4deg)}92%{transform:rotate(3deg)}}
@media(max-width:420px){.academy-welcome .welcome-bird{width:104px;height:96px}.academy-welcome .welcome-bird svg.welcome-scholar{width:96px;height:88px}}
@media(prefers-reduced-motion:reduce){.academy-welcome .welcome-scholar .scholar-cap{animation:none}}
/* A moonlit academy welcome, with a hovering scholar guide. */
body dialog.academy-welcome{width:min(560px,calc(100% - 24px));max-width:560px;max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:0 22px 22px;border:1px solid #505050;border-radius:8px;background:#101010;box-shadow:0 32px 100px #000b,inset 0 0 0 4px #ffffff03;scrollbar-width:thin;scrollbar-color:#454545 #101010}
body dialog.academy-welcome[open]{gap:0}
.academy-welcome::backdrop{background:#000a;backdrop-filter:blur(5px)}
body .academy-welcome .welcome-close{top:12px;right:12px;z-index:3;width:40px;height:40px;border-radius:5px;background:#111d;border-color:#555}
.academy-welcome .welcome-bird{position:relative;isolation:isolate;width:calc(100% + 44px);height:168px;min-height:168px;margin:0 -22px 0;overflow:hidden;animation:none;background:#171717;border-bottom:1px solid #343434}
.academy-welcome .welcome-bird:before{content:'';position:absolute;inset:0;z-index:-2;background:url('academy-night.jpeg') center 34%/cover;filter:grayscale(1) brightness(.75);image-rendering:pixelated}
.academy-welcome .welcome-bird:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#0004,#10101010 40%,#101010)}
.academy-welcome .welcome-bird svg.welcome-scholar{width:160px;height:126px;overflow:visible;filter:drop-shadow(0 6px 4px #0008);animation:scholar-hover 3.2s ease-in-out infinite}
.welcome-flight-wing{transform-box:view-box;transform-origin:48px 48px;animation:scholar-wingbeat .8s steps(4,end) infinite}
.welcome-flight-wing.wing-far{animation-delay:-.08s}
.academy-welcome .welcome-scholar .scholar-cap{animation:scholar-cap-nod 5s steps(4,end) infinite}
body .academy-welcome .welcome-bubble{padding:22px 0 18px;border:0;border-radius:0;background:none}
.academy-welcome .welcome-bubble:before{display:none}
.academy-welcome .welcome-eyebrow{display:block;font:9px/1.6 'Academy Pixel',monospace;letter-spacing:1.5px;text-align:center;color:#929292}
body .academy-welcome h2{font:clamp(19px,4.5vw,25px)/1.5 'Academy Pixel',monospace;text-align:center;letter-spacing:-.5px;margin:12px auto 18px;max-width:420px;text-wrap:balance}
body .academy-welcome p{color:#b5b5b5;font-size:13px;line-height:1.8;margin:12px 0}
.academy-welcome .welcome-milestones{gap:8px;margin-top:22px;padding-top:18px;border-color:#333}
.academy-welcome .welcome-milestones>div{padding:12px 4px;background:#191919;border:1px solid #343434;border-radius:4px;gap:8px}
.academy-welcome .welcome-milestones small{color:#aaa}
body .academy-welcome .welcome-start{width:64px;height:48px;min-height:48px;border-radius:5px;background:#242424;border-color:#606060;box-shadow:inset 0 0 0 3px #151515;margin:0 auto}
body .academy-welcome .welcome-start:hover{background:#333;border-color:#b0b0b0}
@keyframes scholar-hover{0%,100%{transform:translateY(4px)}50%{transform:translateY(-5px)}}
@keyframes scholar-wingbeat{0%,100%{transform:scaleY(1)}50%{transform:scaleY(-.45)}}
@media(max-width:380px){body dialog.academy-welcome{padding:0 16px 18px}.academy-welcome .welcome-bird{width:calc(100% + 32px);margin:0 -16px;height:144px;min-height:144px}.academy-welcome .welcome-bird svg.welcome-scholar{width:144px;height:112px}.academy-welcome .welcome-milestones{gap:5px}.academy-welcome .welcome-milestones>div>span:not(.chapter-badge){font-size:10px}body .academy-welcome h2{font-size:19px}}
@media(max-height:600px){.academy-welcome .welcome-bird{height:120px;min-height:120px}.academy-welcome .welcome-bird svg.welcome-scholar{width:130px;height:100px}body .academy-welcome .welcome-bubble{padding-top:16px}}
@media(prefers-reduced-motion:reduce){.academy-welcome .welcome-bird svg.welcome-scholar,.academy-welcome .welcome-flight-wing,.academy-welcome .welcome-scholar .scholar-cap{animation:none}}
.academy-welcome:not([open]) .welcome-flight-wing,.academy-welcome:not([open]) svg.welcome-scholar,.academy-welcome:not([open]) .scholar-cap{animation-play-state:paused}
/* Final home sizing: single-screen desktop, extended mobile scene. */
html:has(body.home-view){background:#000!important;background-image:none!important}
body.home-view{margin:0;background:#000}
body.home-view main{height:auto;min-height:0;margin:0;padding:0}
body.home-view>footer.utility-footer{height:0;min-height:0;margin:0;padding:0;border:0}
body.home-view #home.academy-night-home{height:max(240px,calc(100vh - var(--academy-header-height,100px)));min-height:0;max-height:none;overflow:hidden;background:#000}
@supports(height:100dvh){body.home-view #home.academy-night-home{height:max(240px,calc(100dvh - var(--academy-header-height,100px)))}}
body.home-view .academy-night-art{object-position:55% center;width:100%;height:100%}
body.home-view .academy-night-shade{background:linear-gradient(#0001,transparent 65%,#0004)}
@media(max-width:767px),(max-width:1024px) and (pointer:coarse){
 body.home-view #home.academy-night-home{height:max(820px,calc(150vh - var(--academy-header-height,140px) + env(safe-area-inset-bottom,0px)));min-height:0}
 @supports(height:100svh){body.home-view #home.academy-night-home{height:max(820px,calc(150svh - var(--academy-header-height,140px) + env(safe-area-inset-bottom,0px)))}}
 body.home-view .academy-night-art{object-position:59% top}
 body.home-view .academy-night-shade{background:linear-gradient(#0001,transparent 65%,#000 100%)}
 .academy-raven{top:12%}.academy-raven.raven-1{top:23%}.academy-raven.raven-2{top:34%}
}
@media(max-width:1024px) and (pointer:coarse) and (orientation:landscape){body.home-view #home.academy-night-home{height:max(580px,calc(145svh - var(--academy-header-height,90px)))}body.home-view .academy-night-art{object-position:55% center}}
@media(min-width:768px) and (pointer:fine){body.home-view>header{position:relative}body.home-view #home.academy-night-home{height:var(--mobile-home-height,calc(100dvh - var(--academy-header-height,100px)))}}

/* One shared speaking turn, including hover and reduced-motion modes. */
#home .academy-raven .raven-bubble{animation:none!important;opacity:0!important;visibility:hidden!important;transform:none!important;transition:none!important}
#home .academy-raven.is-speaking .raven-bubble{opacity:1!important;visibility:visible!important}
