/* Immersive school editorial: bold photo stage, kinetic reveals, and pointer-reactive cards. */
:root{--motion-spring:cubic-bezier(.2,.9,.2,1);--motion-ink:#15253b;--motion-red:#ad3c2c;--motion-gold:#e7bb72}
html{scroll-padding-top:108px}
body{background:#f3efe6}
.topline{height:28px;background:#111b2b;color:#d9e2ef;letter-spacing:.16em}
.scroll-progress{position:fixed;z-index:10001;inset:0 auto auto 0;width:100%;height:4px;transform:scaleX(var(--page-progress,0));transform-origin:left center;background:linear-gradient(90deg,#e9ad54,#fff0bd 45%,#568bd0);box-shadow:0 0 16px rgba(230,182,101,.72);pointer-events:none}

/* Floating glass navigation now reads as a distinct layer over the page. */
.nav{position:sticky;top:12px;width:min(1380px,calc(100% - 40px));height:76px;min-height:76px;margin:12px auto -88px;padding:10px 22px;border:1px solid rgba(255,255,255,.76);border-radius:24px;background:rgba(246,248,251,.64);-webkit-backdrop-filter:blur(30px) saturate(175%);backdrop-filter:blur(30px) saturate(175%);box-shadow:0 18px 56px rgba(6,18,36,.2),inset 0 1px rgba(255,255,255,.9);isolation:isolate;overflow:visible;transition:transform .45s var(--motion-spring),background .35s ease,box-shadow .35s ease}
.nav.is-scrolled{transform:translateY(4px);background:rgba(246,248,251,.82);box-shadow:0 22px 62px rgba(6,18,36,.25),inset 0 1px rgba(255,255,255,.95)}
.nav:before{content:"";position:absolute;z-index:1;inset:0;border-radius:inherit;clip-path:inset(0 round 24px);pointer-events:none;opacity:0;background:radial-gradient(250px circle at var(--glare-x,50%) var(--glare-y,50%),rgba(255,255,255,.95),rgba(255,255,255,.2) 48%,transparent 78%);transition:opacity .18s ease}
.nav.glare-active:before,.nav:focus-within:before{opacity:1}
.nav>*{position:relative;z-index:2}.nav .seal{width:50px;height:50px;filter:drop-shadow(0 3px 5px rgba(21,55,97,.22))}.brand strong{font-size:17px}.nav-cta{border-radius:14px!important;padding:13px 19px!important;background:#174b87!important;box-shadow:0 8px 22px rgba(23,75,135,.24);transition:transform .3s var(--motion-spring),box-shadow .3s ease!important}.nav-cta:hover{transform:translateY(-3px) scale(1.035);box-shadow:0 15px 30px rgba(23,75,135,.32)}
.nav .links a{position:relative;padding:11px 3px;transition:color .25s ease,translate .25s var(--motion-spring)}.nav .links a:after{content:"";position:absolute;left:0;right:0;bottom:3px;height:2px;border-radius:4px;background:linear-gradient(90deg,#e4ad62,#174b87);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--motion-spring)}.nav .links a:hover:after,.nav .links a.is-active:after{transform:scaleX(1)}.nav .links a.is-active{color:#174b87;font-weight:700}
.hero .button,.nav .nav-cta{translate:var(--mag-x,0px) var(--mag-y,0px);transition:translate .25s var(--motion-spring),transform .25s var(--motion-spring),box-shadow .25s ease,background .25s ease}

/* Cinematic full-bleed image replaces the small framed hero image. */
.hero{isolation:isolate;width:100%;max-width:none;min-height:min(850px,calc(100svh - 28px));margin:0;padding:clamp(150px,22vh,230px) max(6vw,calc((100vw - 1320px)/2)) 74px;overflow:hidden;background:#111b2b;color:#fff}
.hero:before{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:radial-gradient(ellipse 460px 360px at var(--hero-glow-x,78%) var(--hero-glow-y,26%),rgba(93,143,201,.34),transparent 74%),linear-gradient(90deg,rgba(9,18,31,.97) 0%,rgba(9,18,31,.86) 34%,rgba(9,18,31,.36) 68%,rgba(9,18,31,.08) 100%),linear-gradient(0deg,rgba(9,18,31,.56),transparent 38%);transition:background-position .12s linear}
.hero:after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;opacity:.42;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.09) 48%,transparent 58%);mix-blend-mode:screen}
.hero-grid{position:relative;z-index:3;display:block;max-width:760px}.hero-grid>div:first-child{max-width:740px}.hero-art{position:absolute;z-index:0;inset:0;width:100%;height:100%;margin:0;display:block;overflow:hidden;background:#18273a;filter:none}
.hero-photo{object-position:center 46%;filter:brightness(.76) saturate(1.12);transform:scale(1.08) translate3d(0,var(--hero-parallax,0px),0);animation:campus-photo-drift 18s ease-in-out infinite alternate;will-change:transform}
.hero-photo-inset{z-index:2;right:clamp(24px,6vw,92px);top:24%;width:clamp(170px,19vw,270px);height:clamp(130px,17vw,230px);border:8px solid rgba(250,248,242,.92);border-radius:18px;box-shadow:0 28px 80px rgba(0,0,0,.45);transform:rotate(5deg);animation:campus-photo-float 5.8s ease-in-out infinite alternate}
.hero-art:after{z-index:3;left:auto;right:clamp(24px,6vw,92px);bottom:calc(24% - 38px);padding:10px 15px;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:rgba(15,27,44,.46);backdrop-filter:blur(14px);color:#fff;letter-spacing:.14em}
.hero .eyebrow{color:#f0c583;letter-spacing:.24em}.hero .eyebrow:before{width:48px;height:2px;background:#e6b665;box-shadow:0 0 18px #e6b665}
.hero h1{margin:36px 0 28px;font-size:clamp(68px,9vw,132px);line-height:1.08;letter-spacing:-.075em;text-shadow:0 8px 38px rgba(0,0,0,.22)}.hero h1 .rb-accent{color:#f0c583;text-shadow:0 0 46px rgba(240,197,131,.34)}
.hero h1 .rb-glyph{filter:blur(14px);transform:translate3d(0,38px,0) rotateX(35deg);transition:opacity .7s ease-out,filter .8s ease-out,transform .95s var(--motion-spring);transition-delay:var(--glyph-delay,0ms)}
.hero h1.motion-ready .rb-glyph{filter:blur(0);transform:translate3d(0,0,0) rotateX(0)}
.hero p{max-width:510px;color:rgba(245,247,250,.8);font:16px/2.05 var(--serif)}.hero-actions{gap:18px;margin-top:38px}.hero .button{position:relative;overflow:hidden;padding:18px 25px;border-radius:14px;background:#e6b665;color:#17243a;font-weight:700;box-shadow:0 12px 34px rgba(230,182,101,.32)}.hero .button:hover{background:#f0c983;transform:translateY(-5px) scale(1.035);box-shadow:0 20px 45px rgba(230,182,101,.4)}.hero .text-link{color:#fff;border-color:rgba(255,255,255,.5);padding-bottom:7px}.hero .hero-index{z-index:3;bottom:26px;border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.72)}
@keyframes campus-photo-drift{from{transform:scale(1.08) translate3d(calc(-1.2% + var(--hero-mx,0px)),var(--hero-parallax,0px),0)}to{transform:scale(1.17) translate3d(calc(1.2% + var(--hero-mx,0px)),var(--hero-parallax,0px),0)}}
@keyframes campus-photo-float{from{transform:translate3d(0,-10px,0) rotate(4deg)}to{transform:translate3d(0,10px,0) rotate(6deg)}}
@keyframes hero-entrance{from{opacity:0;transform:translate3d(0,44px,0) scale(.96);filter:blur(9px)}to{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}}
.hero .eyebrow,.hero p,.hero-actions,.hero-index{animation:hero-entrance .95s var(--motion-spring) both}.hero .eyebrow{animation-delay:.05s}.hero p{animation-delay:.58s}.hero-actions{animation-delay:.72s}.hero-index{animation-delay:.9s}

/* Oversized staggered entrances and 3D interaction for editorial cards. */
.js-motion .reveal{opacity:0;filter:blur(9px);transform:perspective(900px) translate3d(0,72px,0) rotateX(7deg) scale(.94);transition:opacity .72s ease-out,filter .85s ease-out,transform 1s var(--motion-spring);will-change:opacity,filter,transform}
.js-motion .reveal.visible{opacity:1;filter:blur(0);transform:perspective(900px) translate3d(0,0,0) rotateX(0) scale(1)}
.profile-tiles.visible .profile-tile{transform:translate3d(0,0,0) rotateX(0)}
.story,.gallery-card,.profile-tile{position:relative;transform-style:preserve-3d;transition:transform .55s var(--motion-spring),box-shadow .45s ease,border-color .35s ease;will-change:transform}
.story:after,.gallery-card:after,.profile-tile:after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;border-radius:inherit;background:radial-gradient(260px circle at var(--tilt-x,50%) var(--tilt-y,50%),rgba(255,255,255,.4),transparent 68%);transition:opacity .25s ease}
.story:hover,.gallery-card:hover,.profile-tile:hover{z-index:5;box-shadow:0 34px 75px rgba(12,27,49,.24)}.story:hover:after,.gallery-card:hover:after,.profile-tile:hover:after{opacity:1}
.story{border-radius:24px;min-height:380px;padding:40px;box-shadow:0 20px 55px rgba(15,29,48,.12)}.story:first-child{background:linear-gradient(135deg,#174b87,#122a4c 75%)}.story-small{background:linear-gradient(145deg,#f2e5cc,#e6d4b6)}.story h3{font-size:clamp(28px,3vw,38px)}.story-graphic{display:block;width:280px;height:280px;border-color:rgba(255,255,255,.22);transform:translate3d(0,0,-10px)}.story-graphic:before,.story-graphic:after{border-color:rgba(255,255,255,.16)}.graphic-star{display:block;animation:star-pulse 2.8s ease-in-out infinite}.story-small .glyph{opacity:.72;text-shadow:0 12px 28px rgba(62,50,31,.16)}
@keyframes star-pulse{50%{transform:scale(1.8);box-shadow:0 0 36px 14px rgba(230,182,101,.5)}}
.profile-tile{border-radius:22px!important;background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(220,231,244,.75))!important;box-shadow:0 14px 38px rgba(34,58,93,.1)!important}.profile-tile b{font-size:32px!important}.profile-tiles .profile-tile{transform:translate3d(0,46px,0) rotateX(12deg) scale(.9)}
.gallery-card{border-radius:24px!important;box-shadow:0 20px 48px rgba(18,39,69,.14)!important}.gallery-card img{transform:scale(1.02);transition:transform .95s var(--motion-spring)!important}.gallery-card:hover img{transform:scale(1.12) rotate(.5deg)!important}.gallery-caption{transform:translate3d(0,18px,0);transition:transform .45s var(--motion-spring)}.gallery-card:hover .gallery-caption{transform:translate3d(0,0,0)}
.wall-section{position:relative;overflow:hidden;background:radial-gradient(ellipse at 85% 12%,rgba(64,110,166,.24),transparent 34%),linear-gradient(135deg,#0e1b2e,#1b2d43 62%,#101b2b);padding:132px 0}.wall-section:before{content:"";position:absolute;width:55vw;height:55vw;right:-20vw;top:4%;border:1px solid rgba(214,177,114,.2);border-radius:50%;box-shadow:0 0 0 50px rgba(214,177,114,.035),0 0 0 100px rgba(214,177,114,.025);animation:ring-turn 45s linear infinite;pointer-events:none}.wall-frame{border:1px solid rgba(255,255,255,.3);border-radius:30px;box-shadow:0 42px 110px rgba(0,0,0,.4);transform:perspective(1200px) rotateX(2deg);transition:transform .65s var(--motion-spring),box-shadow .65s ease}.wall-frame:hover{transform:perspective(1200px) rotateX(0) translateY(-8px);box-shadow:0 56px 130px rgba(0,0,0,.5)}
@keyframes ring-turn{to{transform:rotate(360deg)}}
.satellite-shell{border-radius:32px!important;box-shadow:0 34px 100px rgba(25,54,94,.2)!important;transform:perspective(1200px) rotateX(1deg);transition:transform .6s var(--motion-spring),box-shadow .5s ease}.satellite-shell:hover{transform:perspective(1200px) rotateX(0) translateY(-6px);box-shadow:0 42px 110px rgba(25,54,94,.24)!important}
.life-item{transition:padding .35s var(--motion-spring),background .35s ease,transform .4s var(--motion-spring);border-radius:14px;padding-left:16px;padding-right:16px}.life-item:hover{padding-left:30px;padding-right:28px;background:rgba(255,255,255,.72);transform:translateX(8px)}.life-item .arrow{transition:transform .35s var(--motion-spring)}.life-item:hover .arrow{transform:translate(5px,-5px) scale(1.35)}
.quote{position:relative;overflow:hidden;background:radial-gradient(ellipse at center,#fafcff,#dde8f5 70%,#c9d9eb)}.quote:before,.quote:after{content:"";position:absolute;left:50%;top:50%;width:min(70vw,800px);aspect-ratio:1;border:1px solid rgba(23,75,135,.1);border-radius:50%;transform:translate(-50%,-50%);animation:quote-orbit 28s linear infinite;pointer-events:none}.quote:after{width:min(54vw,620px);animation-direction:reverse}.quote .wrap{position:relative;z-index:1}.quote-mark{animation:quote-mark 2.5s ease-in-out infinite alternate}
@keyframes quote-orbit{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes quote-mark{to{transform:translateY(-16px) scale(1.12);text-shadow:0 18px 32px rgba(23,75,135,.18)}}

@media(max-width:800px){.topline{height:26px}.nav{width:calc(100% - 22px);height:64px;min-height:64px;margin:8px auto -72px;padding:6px 12px;border-radius:20px}.nav>.links{top:calc(100% + 8px);border-radius:0 0 20px 20px}.hero{min-height:calc(100svh - 26px);padding:150px 24px 70px}.hero-grid{max-width:100%}.hero-grid>div:first-child{max-width:100%}.hero h1{font-size:clamp(58px,14vw,94px);margin:28px 0 22px}.hero p{max-width:430px;font-size:14px}.hero-photo{object-position:57% center}.hero-photo-inset{top:auto;right:20px;bottom:72px;width:34vw;height:26vw;border-width:5px;border-radius:12px}.hero-art:after{right:20px;bottom:calc(72px + 26vw + 8px);font-size:8px}.hero-index{left:24px;right:24px;bottom:24px;font-size:8px}.story{min-height:340px;padding:30px}.story-graphic{width:220px;height:220px}.wall-section{padding:90px 0}.wall-frame{height:70vh;min-height:480px;border-radius:22px;transform:none}.wall-frame:hover{transform:translateY(-3px)}.gallery-card:hover img{transform:scale(1.04)!important}.quote:before{width:95vw}.quote:after{width:72vw}}
@media(prefers-reduced-motion:reduce){.hero-photo,.hero-photo-inset,.story-graphic,.wall-section:before,.quote:before,.quote:after,.quote-mark{animation:none!important}.hero-photo{transform:scale(1.04)!important}.hero-photo-inset{transform:rotate(3deg)!important}.hero .eyebrow,.hero p,.hero-actions,.hero-index{animation:none!important}.hero h1 .rb-glyph{filter:none!important;transform:none!important;transition:opacity .15s ease!important}.js-motion .reveal,.js-motion .reveal.visible{opacity:1!important;filter:none!important;transform:none!important;transition:opacity .15s ease!important}.story,.gallery-card,.profile-tile,.wall-frame,.satellite-shell,.life-item,.nav{transition:none!important;transform:none!important}.gallery-card img{transition:none!important;transform:none!important}.story:after,.gallery-card:after,.profile-tile:after{display:none}}

/* Chapter navigation inspired by Project Kylin: fixed index, native scrolling, cinematic handoff. */
body{padding-bottom:90px}
.chapter-dock{position:fixed;z-index:40;left:50%;bottom:14px;transform:translateX(-50%);width:min(860px,calc(100% - 40px));display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(255,255,255,.48);border-radius:18px;overflow:hidden;background:rgba(13,27,44,.76);box-shadow:0 18px 54px rgba(8,20,36,.24);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3)}
.chapter-dock a{position:relative;min-height:62px;display:grid;grid-template-columns:34px 1fr;grid-template-rows:1fr 1fr;align-items:center;padding:9px 15px;color:rgba(255,255,255,.72);border-right:1px solid rgba(255,255,255,.16);transition:color .2s ease,background-color .2s ease}
.chapter-dock a:last-child{border-right:0}.chapter-dock a small{grid-row:1/3;font:700 19px/1 'DM Mono',monospace;color:rgba(255,255,255,.4);transition:color .2s ease}.chapter-dock a span{align-self:end;font:600 12px/1.25 var(--sans)}.chapter-dock a i{position:absolute;left:0;right:0;bottom:0;height:3px;background:#edbd70;transform:scaleX(0);transform-origin:left;transition:transform .24s cubic-bezier(.23,1,.32,1)}
.chapter-dock a:hover,.chapter-dock a.is-active{color:white;background:rgba(255,255,255,.1)}.chapter-dock a.is-active small{color:#edbd70}.chapter-dock a.is-active i{transform:scaleX(1)}
.chapter-counter{position:fixed;z-index:39;right:22px;top:50%;transform:translateY(-50%);display:flex;gap:6px;align-items:baseline;padding:10px 12px;border:1px solid rgba(255,255,255,.35);border-radius:12px;background:rgba(13,27,44,.68);color:rgba(255,255,255,.58);font:11px 'DM Mono',monospace;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.chapter-counter span{color:#edbd70;font-size:18px;font-weight:700}.chapter-counter b{font-weight:400;opacity:.65}
.chapter-curtain{position:fixed;z-index:80;inset:0;display:grid;grid-template-rows:1fr 1fr;pointer-events:none;visibility:hidden}.chapter-curtain span{display:block;background:#14243a;transform:scaleY(0);transition:transform .28s cubic-bezier(.77,0,.175,1);will-change:transform}.chapter-curtain span:first-child{transform-origin:top}.chapter-curtain span:last-child{transform-origin:bottom}.chapter-curtain.is-active{visibility:visible}.chapter-curtain.is-active span{transform:scaleY(1)}.chapter-curtain.is-leaving span{transform:scaleY(0);transition-duration:.32s;transition-timing-function:cubic-bezier(.23,1,.32,1)}
@media(max-width:800px){.chapter-dock{bottom:max(8px,env(safe-area-inset-bottom));width:calc(100% - 20px);border-radius:15px}.chapter-dock a{min-height:56px;grid-template-columns:26px 1fr;padding:8px 9px}.chapter-dock a small{font-size:15px}.chapter-dock a span{font-size:11px}.chapter-counter{top:82px;right:12px;transform:none;padding:7px 9px;border-radius:10px}.chapter-counter span{font-size:15px}body{padding-bottom:74px}}
@media(prefers-reduced-motion:reduce){.chapter-curtain{display:none}.chapter-dock a,.chapter-dock a i,.chapter-dock a small{transition:none}}
