:root{--paper:#fffefa;--white:#fff;--ink:#252a29;--muted:#58605c;--gold:#ffdf35;--pale:#fff6c3;--stone:#f1f2ed;--serif:'Newsreader',Georgia,serif;--sans:'Instrument Sans',Arial,sans-serif;--gutter:clamp(20px,5vw,80px);--max:1400px;--ease:cubic-bezier(.2,.65,.25,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 var(--sans);-webkit-font-smoothing:antialiased}body.dialog-open{overflow:hidden}h1,h2,h3,p,figure,dl,dd{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.025em;line-height:1.1;text-wrap:balance}h1{font-size:clamp(42px,4.6vw,72px)}h2{font-size:clamp(30px,3vw,44px)}h3{font-size:26px}p+p{margin-top:18px}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{background:none;border:0;padding:0;cursor:pointer}button,a,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}img{display:block;width:100%;height:auto;object-fit:cover}figure{min-width:0}address{font-style:normal}input,select{min-width:0;max-width:100%;border-radius:0}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid currentColor;outline-offset:5px}::selection{background:var(--gold);color:var(--ink)}[hidden]{display:none!important}.wrap{width:calc(100% - var(--gutter)*2);max-width:var(--max);margin-inline:auto}.lead{font-size:22px;line-height:1.55}.small{font-size:14px;color:var(--muted)}.skip{position:fixed;top:12px;left:12px;padding:12px 20px;background:var(--gold);z-index:20;transform:translateY(-180%)}.skip:focus{transform:none}.text-link{display:inline-flex;align-items:center;gap:20px;min-height:44px;font-weight:500}.text-link span,.button span,.directory-link span{transition:transform .2s}.text-link:hover span,.button:hover span,.directory-link:hover span{transform:translate(3px,-3px)}.plain span{display:none}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;min-height:54px;padding:15px 22px;font-size:16px;font-weight:500;transition:background .2s,color .2s}.gold{background:var(--gold)}.gold:hover{background:#f4cf1c}.dark{background:var(--ink);color:var(--white)}.dark:hover{background:#424944}.button:active,button:active{transform:translateY(1px)}
.site-header{background:var(--white);border-top:5px solid var(--gold)}.header-inner{display:flex;align-items:center;gap:36px;min-height:108px;padding:20px var(--gutter);max-width:1600px;margin:auto}.brand{display:inline-flex;align-items:center;gap:14px;flex-shrink:0;font-family:var(--serif);font-size:25px;line-height:1.1;letter-spacing:-.02em}.owl{width:44px;height:44px;overflow:hidden;background:#151515;flex-shrink:0}.owl img{width:44px;height:70px;max-width:none;object-fit:fill;transform:translateY(-1px)}.desktop-nav{display:flex;align-items:center;gap:30px;margin-left:auto;font-size:15px}.desktop-nav>a,.desktop-nav>button{display:flex;align-items:center;min-height:44px}.desktop-nav>a:hover,.desktop-nav>button:hover{color:#75600c}.header-tools{display:flex;align-items:center;gap:22px;font-size:15px}.header-tools>button,.language-switch{min-height:44px;display:flex;align-items:center;gap:10px}.header-tools>.search-open{min-width:30px;justify-content:center}.menu-lines{display:block;width:23px;height:12px;border-top:2px solid currentColor;border-bottom:2px solid currentColor}.language-switch{font-size:14px}
.home-opening{position:relative;isolation:isolate;min-height:calc(100svh - 113px);display:flex;align-items:center;background:#25312b;color:var(--white)}.opening-film{position:absolute;inset:0;z-index:-2;overflow:hidden}.opening-film video{width:100%;height:100%;object-fit:cover;object-position:58% 50%}.home-opening::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.56);z-index:-1;pointer-events:none}.opening-content{padding-block:70px 110px;position:relative;min-height:inherit;display:flex;align-items:center}.opening-copy{max-width:760px;padding:0}.opening-copy h1{font-size:clamp(54px,6vw,100px);line-height:1.02;letter-spacing:-.035em;color:var(--white)}.title-line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}.title-line>span{display:block}.opening-copy p{font-size:19px;line-height:1.6;margin-top:28px;max-width:540px}.opening-copy .button{margin-top:30px;color:var(--ink);min-height:58px}.film-caption{position:absolute;bottom:26px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px}.film-caption button{display:flex;align-items:center;gap:12px;min-height:44px;padding:4px 0 4px 16px;font-size:13px}.film-icon{font-size:18px;min-width:22px;text-align:center}.opening-copy a:focus-visible,.film-caption button:focus-visible{outline-color:var(--gold)}.school-stages{padding:64px 0 0;background:var(--white);position:relative}.anchor-target{position:absolute;top:0}.stages-intro{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-bottom:36px}.stages-intro p{max-width:450px;font-size:16px}.stage-panels{display:flex;gap:16px}.stage-panel{position:relative;flex:1;min-width:0;transition:flex .55s var(--ease)}.stage-picture{height:300px;overflow:hidden;background:var(--stone)}.stage-picture img{height:100%;object-position:50% 45%;filter:grayscale(1);transition:filter .6s,transform .7s var(--ease)}.stage-panel:hover{flex:1.25}.stage-panel:hover img,.stage-panel:focus-visible img{filter:grayscale(0);transform:scale(1.025)}.stage-content{position:relative;padding:22px 18px 20px 0}.stage-content h3{font-size:clamp(23px,1.85vw,30px);line-height:1.12;padding-right:15px}.stage-content p{font-size:13px;line-height:1.5;color:var(--muted);margin-top:12px;max-width:180px}.stage-content>span{position:absolute;right:0;top:22px;font-size:19px}.home-directory{display:grid;grid-template-columns:.8fr 2fr;gap:10%;padding-block:56px 68px}.home-directory h2{font-size:32px}.home-directory>div{display:grid;grid-template-columns:1fr 1fr;gap:18px 40px}.directory-link{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:44px;font-size:17px}.philosophy{background:var(--pale)}.philosophy-layout{display:grid;grid-template-columns:.8fr 2fr;gap:10%;padding-block:70px}.philosophy-layout>div{max-width:820px}.philosophy-layout p+p{margin-top:25px;font-size:17px}.home-location{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center;padding-block:80px}.home-location h2{margin-bottom:24px}.home-location p{max-width:560px}.home-location .text-link{margin-top:20px}.location-addresses{background:var(--stone);padding:35px;display:grid;gap:28px}.location-addresses h3{font-family:var(--sans);font-size:17px;font-weight:500;letter-spacing:0}.location-addresses p{font-size:16px;margin-top:9px}
footer{background:var(--white);padding:56px 0 0;border-top:5px solid var(--gold)}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:8%}.footer-brand .brand{margin-bottom:24px}.footer-brand address{font-size:15px;margin-bottom:16px}.footer-brand>a:not(.brand){display:block;min-height:30px;font-size:15px}.footer-grid nav h2{font-family:var(--sans);font-size:16px;font-weight:500;letter-spacing:0;margin:4px 0 22px}.footer-link{display:flex;font-size:15px;margin-bottom:10px;min-height:27px}.footer-link span{display:none}.footer-bottom{display:flex;justify-content:space-between;gap:30px;padding-block:38px 28px;font-size:13px;color:var(--muted)}footer a:hover{text-decoration:underline;text-underline-offset:5px}
.senior-nav{position:sticky;top:0;z-index:3;background:var(--pale)}.senior-nav>div{display:flex;gap:32px;overflow-x:auto;padding-block:16px;scrollbar-width:thin}.senior-nav a{display:flex;align-items:center;min-height:32px;white-space:nowrap;font-size:15px}.senior-nav [aria-current]{font-weight:500;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:9px}.page-content{padding-bottom:72px;min-height:45svh}.compact-title{padding-block:42px 32px}.compact-title h1{font-size:clamp(42px,4.5vw,66px)}.compact-title p{margin-top:14px;font-size:18px;max-width:740px}.senior-overview{display:grid;grid-template-columns:1.15fr .85fr;gap:9%;align-items:start}.senior-overview .lead{font-size:21px;max-width:730px}.senior-overview figure img{height:330px;object-position:50% 50%}.programme-facts{display:grid;grid-template-columns:1fr;gap:14px;margin-top:27px}.programme-facts>div{display:flex;gap:30px;align-items:baseline}.programme-facts dt{font-size:14px;color:var(--muted);width:100px;flex-shrink:0}.programme-facts dd{font-size:16px}.overview-notes{display:grid;grid-template-columns:1fr 1fr;gap:9%;padding-top:50px}.overview-notes h2{font-size:28px;margin-bottom:18px}.overview-notes p{font-size:16px;max-width:650px}.topic-layout{display:grid;grid-template-columns:.8fr 1.7fr;gap:10%;align-items:start}.topic-intro{font-size:18px;max-width:370px}.topic-list{min-width:0}.topic{background:var(--white);margin-bottom:14px}.topic>summary{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:21px 24px;cursor:pointer;list-style:none;background:var(--stone);transition:background .2s}.topic>summary::-webkit-details-marker{display:none}.topic>summary h2{font-size:25px;letter-spacing:-.01em}.topic>summary>span{font-size:25px;line-height:1;transition:transform .2s}.topic[open]>summary{background:var(--pale)}.topic[open]>summary>span{transform:rotate(45deg)}.topic-content{padding:26px 24px 30px;font-size:16px}.topic-content>p{max-width:820px}.topic-content .text-link{margin-top:20px}.topic-content h3{font-size:28px}.topic[open]>.topic-content{animation:topic-enter .35s var(--ease-out)}.section-extra{margin-top:24px}.table-scroll{max-width:100%;overflow-x:auto;scrollbar-width:thin;margin:26px 0}table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.5;min-width:520px}th,td{text-align:left;vertical-align:top;padding:13px 11px;border-bottom:1px solid #c7cec5}th{font-weight:500}thead{background:var(--stone)}tbody tr:nth-child(even){background:#f8f8f2}tbody th{min-width:145px}.campus-gallery{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:30px}.campus-gallery figure:first-child{grid-column:1/-1}.campus-gallery img{aspect-ratio:4/3}.campus-gallery figcaption{font-size:13px;margin-top:10px}.document-links{display:flex;flex-direction:column;gap:12px;margin-top:22px}.resource-link{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:15px;padding:20px;background:var(--stone)}.resource-link>small{font-size:13px}.resource-link:hover{background:var(--pale)}.fee-estimator{background:var(--stone);padding:28px;margin-top:28px}.fee-estimator h3{margin-bottom:16px}.fee-estimator p{font-size:15px}.planner-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-block:26px}.planner-fields>div:last-child{grid-column:1/-1}label{display:block;font-size:15px;margin-bottom:10px}select,input[type=search]{width:100%;border:1px solid #9da89d;min-height:52px;padding:12px 14px;background:var(--white);font-size:16px}.planner-total{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-block:24px}.planner-total span{font-size:16px}.planner-total output{font-family:var(--serif);font-size:35px;white-space:nowrap}.faq{padding:18px 0}.faq>summary{display:flex;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;font-size:17px}.faq>summary::-webkit-details-marker{display:none}.faq[open]>summary>span{transform:rotate(45deg)}.faq p{margin-top:18px}.contact-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:26px}.information-page{max-width:940px}.information-page{overflow-wrap:anywhere}.information-intro{font-size:20px;margin:0 0 35px}.information-page>section{margin-top:34px}.information-page h2{font-size:28px;margin-bottom:18px}.information-page p{font-size:16px}.stage-overview{display:grid;grid-template-columns:1.1fr .9fr;gap:10%;align-items:start}.stage-overview>div{max-width:680px}.stage-overview figure img{height:350px;object-position:50% 45%}.stage-overview .text-link{margin-top:25px}.journey-overview>.lead{max-width:850px;font-size:21px;margin-bottom:32px}.journey-list{list-style:none;padding:0 0 0 30px;margin:0;border-left:5px solid var(--gold)}.journey-list li{display:grid;grid-template-columns:1fr 1.4fr auto;gap:5%;align-items:center;position:relative;padding-block:25px}.journey-list li::before{content:'';position:absolute;left:-41px;top:42px;width:17px;height:17px;border-radius:50%;background:var(--gold)}.journey-stage h2{font-size:27px;margin-bottom:8px}.journey-stage span{font-size:14px;color:var(--muted)}.journey-list li>p{font-size:16px;max-width:650px}.journey-link{font-size:15px;min-height:44px;display:flex;gap:20px;align-items:center}.journey-finish{display:grid;grid-template-columns:1fr 1.3fr auto;gap:5%;align-items:center;background:var(--pale);padding:32px;margin-top:30px}.journey-finish h2{font-size:28px}.journey-finish p{font-size:16px}.journey-finish .button{white-space:nowrap}
dialog{border:0;padding:0;color:var(--ink);background:var(--paper);max-width:none;max-height:none}dialog::backdrop{background:rgba(20,25,20,.6)}.menu-dialog{inset:0;width:100%;height:100dvh;margin:0;overflow:auto;border-top:5px solid var(--gold)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px var(--gutter)}.dialog-top>button{display:flex;align-items:center;gap:18px;min-height:44px;font-size:16px}.dialog-top>button>span{font-size:30px;line-height:1}.menu-body{padding:30px var(--gutter) 60px;display:grid;grid-template-columns:1.2fr 1fr;gap:12%;max-width:1500px;margin:auto}.menu-body h2{font:500 17px/1.4 var(--sans);margin-bottom:30px;letter-spacing:0}.menu-stage{margin-bottom:24px}.menu-stage>a{font-family:var(--serif);font-size:clamp(28px,3vw,44px);line-height:1.1;display:flex;justify-content:space-between;gap:28px}.menu-stage small{display:block;font-size:13px;margin-top:8px;color:var(--muted)}.menu-secondary nav{display:flex;flex-direction:column;gap:18px}.menu-link{display:flex;align-items:center;justify-content:space-between;gap:30px;font-size:20px;min-height:36px}.menu-link:hover,.menu-stage>a:hover{color:#75600c}.menu-secondary form{margin-top:36px}.menu-search{display:flex}.menu-search input{flex:1}.menu-search button{background:var(--gold);width:56px;flex-shrink:0}.menu-contact{display:flex;flex-direction:column;gap:10px;margin-top:26px;font-size:15px}.language-links{display:flex;gap:24px;margin-top:10px}.search-dialog{width:min(1000px,100%);height:90dvh;margin:auto;overflow:auto;border-top:5px solid var(--gold)}.search-body{padding:22px var(--gutter) 65px}.search-body h2{font-size:40px;margin-bottom:28px}.search-field .small{margin-top:14px}.search-status{font-size:15px;margin-top:25px}.search-results{margin-top:24px}.search-result{display:block;padding:22px;background:var(--stone);margin-bottom:12px}.search-result h3{font-size:26px;margin-bottom:10px}.search-result p{font-size:15px}.search-result small{display:block;font-size:13px;margin-top:12px;color:var(--muted)}.search-result:hover{background:var(--pale)}mark{background:var(--gold);color:var(--ink)}.search-page{padding-block:50px 80px;max-width:1000px}.search-page h1{font-size:48px;margin-bottom:32px}.browse-pages{padding-top:40px}.browse-pages h2{font-size:28px;margin-bottom:24px}.browse-pages>a{display:flex;max-width:620px;justify-content:space-between;margin-bottom:8px}.not-found{max-width:850px;padding:80px var(--gutter)}.not-found h1{font-size:44px;margin-block:25px}.not-found .button{margin:25px 25px 0 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes topic-enter{from{opacity:.65;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:1150px){.desktop-nav{display:none}.header-tools{margin-left:auto}.stage-picture{height:250px}.stage-content h3{font-size:25px}.stage-content p{font-size:12px}.opening-copy h1{font-size:clamp(54px,7vw,80px)}.journey-finish{grid-template-columns:1fr 1.5fr}.journey-finish .button{grid-column:2;justify-self:start}.topic-layout{grid-template-columns:.7fr 1.6fr;gap:7%}}
@media(max-width:850px){.stages-intro{display:block}.stages-intro p{margin-top:18px}.stage-panels{flex-wrap:wrap;gap:24px 18px}.stage-panel{flex:auto;width:calc(33.333% - 12px)}.stage-panel:hover{flex:auto}.stage-panel:nth-last-child(-n+2){width:calc(50% - 9px)}.stage-picture{height:220px}.home-directory{grid-template-columns:1fr;gap:25px}.philosophy-layout{grid-template-columns:1fr;gap:28px}.home-location{gap:7%}.senior-overview{gap:6%}.senior-overview figure img{height:300px}.programme-facts>div{display:block}.programme-facts dt{margin-bottom:4px}.topic-layout{grid-template-columns:1fr;gap:28px}.topic-intro{max-width:720px}.journey-list li{grid-template-columns:1fr 1.3fr;gap:20px 35px}.journey-link{grid-column:2}.footer-grid{gap:6%}}
@media(max-width:760px){body{font-size:16px}.header-inner{min-height:88px;padding-block:17px;gap:16px}.brand{font-size:21px;gap:11px}.owl{width:35px;height:35px}.owl img{width:35px;height:56px}.header-tools{gap:20px}.header-tools .menu-open>span:last-child{display:none}.header-tools>.search-open{min-width:22px}.home-opening{min-height:calc(100svh - 93px);min-height:calc(100dvh - 93px);align-items:center}.opening-content{padding-block:70px 120px}.opening-copy{padding:0;max-width:100%}.opening-copy h1{font-size:clamp(34px,9.8vw,65px);line-height:1.04}.opening-copy p{font-size:17px;margin-top:22px;max-width:420px}.opening-copy .button{margin-top:26px;min-height:54px}.opening-film video{object-position:55% 50%}.film-caption{bottom:22px;font-size:11px;gap:15px}.film-caption button{font-size:12px;gap:8px;padding-left:5px}.film-icon{font-size:17px}.film-control-label{max-width:105px;text-align:left;line-height:1.4}.school-stages{padding-top:42px}.stages-intro{padding-bottom:28px}.stages-intro h2{font-size:34px}.stages-intro p{font-size:16px;margin-top:14px}.stage-panels{gap:20px 16px}.stage-panel,.stage-panel:nth-last-child(-n+2){width:calc(50% - 8px)}.stage-panel:last-child{width:100%}.stage-picture{height:190px}.stage-panel:last-child .stage-picture{height:240px}.stage-content{padding:16px 16px 8px 0}.stage-content h3{font-size:27px}.stage-content p{font-size:13px;max-width:none;margin-top:9px}.stage-content>span{top:15px;font-size:18px}.home-directory{padding-block:40px 48px}.home-directory h2{font-size:30px}.home-directory>div{gap:14px 25px}.directory-link{font-size:15px;align-items:flex-start}.directory-link span{margin-top:3px;flex-shrink:0}.philosophy-layout{padding-block:48px;gap:24px}.philosophy-layout h2{font-size:34px}.philosophy-layout .lead{font-size:21px}.philosophy-layout p+p{font-size:16px}.home-location{display:block;padding-block:48px}.home-location h2{font-size:34px}.location-addresses{margin-top:30px;padding:28px}.location-addresses h3{font-size:16px}.footer-grid{grid-template-columns:1fr 1fr;gap:34px 24px}.footer-brand{grid-column:1/-1}.footer-grid nav h2{font-size:15px}.footer-link{font-size:14px}.footer-bottom{display:block;padding-block:30px 24px;font-size:12px}.footer-bottom>a{display:block;margin-top:15px}.senior-nav>div{width:100%;padding:12px 20px;gap:25px}.senior-nav a{font-size:14px}.page-content{padding-bottom:45px}.compact-title{padding-block:30px 26px}.compact-title h1{font-size:42px}.compact-title p{font-size:16px;margin-top:12px}.senior-overview{display:flex;flex-direction:column;gap:26px}.senior-overview .lead{font-size:19px}.senior-overview figure{width:100%}.senior-overview figure img{height:240px}.programme-facts{gap:13px;margin-top:22px}.programme-facts>div{display:flex;gap:20px}.programme-facts dt{width:85px;flex-shrink:0;font-size:13px}.programme-facts dd{font-size:14px}.overview-notes{display:block;padding-top:30px}.overview-notes>section+section{margin-top:28px}.overview-notes h2{font-size:28px;margin-bottom:14px}.topic-layout{gap:25px}.topic-intro{font-size:16px}.topic>summary{padding:20px}.topic>summary h2{font-size:25px}.topic-content{padding:24px 20px;font-size:16px}.topic-content h3{font-size:26px}.campus-gallery{grid-template-columns:1fr;gap:24px}.campus-gallery figure:first-child{grid-column:auto}.fee-estimator{padding:23px 18px}.planner-fields{grid-template-columns:1fr}.planner-fields>div:last-child{grid-column:auto}.planner-total{display:block}.planner-total output{display:block;margin-top:10px;font-size:38px}.resource-link{padding:20px 16px}.resource-link>span:first-child{min-width:180px;flex:1}.resource-link>small{order:3;flex-basis:100%}.faq>summary{font-size:17px}.information-page{overflow-wrap:anywhere}.information-intro{font-size:18px}.information-page>section{margin-top:28px}.information-page h2{font-size:27px}.stage-overview{display:flex;flex-direction:column;gap:28px}.stage-overview figure{width:100%}.stage-overview figure img{height:270px}.journey-overview>.lead{font-size:19px;margin-bottom:20px}.journey-list{padding-left:24px}.journey-list li{display:block;padding-block:22px}.journey-list li::before{left:-35px;top:35px}.journey-stage h2{font-size:28px}.journey-stage span{font-size:13px}.journey-list li>p{margin-top:16px}.journey-link{margin-top:14px;display:inline-flex}.journey-finish{display:block;padding:28px 24px}.journey-finish h2{font-size:30px}.journey-finish p{margin-top:18px}.journey-finish .button{margin-top:24px}.menu-body{display:block;padding-top:20px;padding-bottom:45px}.dialog-top{padding-block:20px}.menu-body h2{font-size:16px;margin-bottom:25px}.menu-stage>a{font-size:32px}.menu-stage{margin-bottom:24px}.menu-secondary{padding-top:30px}.menu-secondary nav{gap:14px}.menu-link{font-size:18px;min-height:40px}.search-dialog{width:100%;height:100dvh;inset:0;margin:0}.search-body{padding-top:22px}.search-body h2{font-size:34px}.dialog-top>span{font-size:16px}.search-page{padding-block:35px 55px}.search-page h1{font-size:40px}.search-result h3{font-size:26px}.search-field .small{font-size:13px}.not-found{padding:55px 24px}}
@media(max-width:374px){.brand{font-size:18px;gap:9px}.owl{width:31px;height:31px}.owl img{width:31px;height:49px}.header-tools{gap:16px}.opening-copy h1{font-size:34px}.opening-copy p{font-size:16px}.opening-copy p br{display:none}.stage-picture{height:160px}.stage-content h3{font-size:24px}.stage-content p{font-size:12px}.stage-panel:last-child .stage-picture{height:200px}.home-directory>div{grid-template-columns:1fr}.compact-title h1{font-size:37px}.programme-facts>div{display:block}.programme-facts dd{font-size:15px}.footer-grid{grid-template-columns:1fr}.footer-brand{grid-column:auto}.menu-stage>a{font-size:28px}.dialog-top{gap:14px}.dialog-top>button{gap:10px;font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* A single motion system: native navigation, staged entrances and gentle feedback. */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--ease-soft:cubic-bezier(.33,1,.68,1);--motion-ui:240ms;--motion-reveal:780ms}
@view-transition{navigation:none}
.button{transition:transform 160ms var(--ease-out),background-color 200ms ease,color 200ms ease}.button:active{transform:scale(.98)}
.desktop-nav>a,.footer-link,.menu-link,.senior-nav a{transition:color 200ms ease,text-decoration-color 200ms ease}
@keyframes page-leave{to{opacity:0}}
@keyframes page-enter{from{opacity:0}to{opacity:1}}
@keyframes programme-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes menu-enter{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){dialog[open]>.dialog-top{animation:menu-enter 320ms var(--ease-out) both}dialog[open]>.menu-body,dialog[open]>.search-body{animation:programme-enter 420ms var(--ease-out) both}.dialog-top{animation-delay:30ms}.menu-body,.search-body{animation-delay:65ms}}
@supports(animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.philosophy-layout>div{animation:philosophy-settle linear both;animation-timeline:view();animation-range:entry 0% entry 70%}@keyframes philosophy-settle{from{transform:translateY(18px);opacity:.75}to{transform:none;opacity:1}}}}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.home-opening video{animation:none}}

/* Brand entrance: quick, optional and independent of the full film download. */
body.intro-active{overflow:hidden}.site-intro{position:fixed;inset:0;z-index:40;background:var(--paper);display:grid;place-items:center;cursor:default}.intro-wordmark{text-align:center;padding:30px}.intro-owl{display:block;width:48px;height:48px;overflow:hidden;margin:0 auto 30px;background:var(--ink)}.intro-owl img{width:48px;height:76px;max-width:none;object-fit:fill}.intro-wordmark p{font:400 clamp(38px,5.4vw,76px)/1.03 var(--serif);letter-spacing:-.035em}.intro-wordmark p>span{color:#aa8b09}.intro-track{width:150px;height:2px;background:#e5e3d9;margin:38px auto 0;overflow:hidden}.intro-track>span{display:block;height:100%;background:var(--ink);transform-origin:left}.website-credits{padding-bottom:28px;font-size:12px;color:var(--muted)}.website-credits p{font-size:12px}.website-credits p>span{color:var(--ink)}.website-credits small{display:block;font-size:11px;margin-top:8px}.desktop-nav>a,.desktop-nav>button{position:relative}.desktop-nav>a::after,.desktop-nav>button::after{content:"";position:absolute;bottom:4px;left:0;right:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform 400ms var(--ease-out)}.desktop-nav>a:hover::after,.desktop-nav>button:hover::after,.desktop-nav>a:focus-visible::after,.desktop-nav>button:focus-visible::after{transform:scaleX(1);transform-origin:left}.menu-stage>a>span{transition:transform 400ms var(--ease-out)}.menu-stage>a:hover>span{transform:translate(4px,-4px)}.stage-panel{transition:flex 750ms var(--ease-out)}.stage-picture img{transition:filter 750ms ease,transform 1.2s var(--ease-soft)}.stage-panel:hover img{transform:scale(1.045)}.home-directory .directory-link{transition:color 250ms ease}.home-directory .directory-link:hover{color:#7b650a}.film-caption button{transition:opacity 200ms ease}.film-caption button:hover{opacity:1;text-decoration:underline;text-underline-offset:5px}.topic>summary{transition:background-color 300ms ease}.topic>summary>span{transition:transform 300ms var(--ease-out)}
@media(max-width:760px){.intro-owl{margin-bottom:24px;width:42px;height:42px}.intro-owl img{width:42px;height:66px}.intro-track{margin-top:30px;width:125px}.website-credits{font-size:11px;padding-bottom:25px;max-width:none}.website-credits p{font-size:12px;line-height:1.8}.website-credits small{font-size:10px;max-width:310px;line-height:1.6}}
@media(prefers-reduced-motion:reduce){.site-intro{display:none!important}.desktop-nav>a::after,.desktop-nav>button::after{transition:none}.stage-panel:hover img{transform:none}}

/* Phone composition: generous touch targets, safe areas and compact imagery. */
.site-header{padding-top:env(safe-area-inset-top,0px)}
.opening-film picture,.opening-film video{position:absolute;inset:0;width:100%;height:100%}
.opening-film picture img{width:100%;height:100%;object-fit:cover;object-position:58% 50%}
@media(max-width:760px){
 :root{--gutter:max(18px,env(safe-area-inset-left,0px),env(safe-area-inset-right,0px))}
 html{scroll-padding-top:0}
 .topic{scroll-margin-top:76px}
 .header-inner{min-height:80px;padding-block:12px;gap:8px}
 .header-inner .brand{font-size:20px;gap:10px}
 .header-inner .owl{width:33px;height:33px}
 .header-inner .owl img{width:33px;height:53px}
 .header-tools{gap:0}
 .header-tools>button,.header-tools>.search-open,.header-tools>.language-switch{min-width:44px;min-height:44px;justify-content:center}
 .home-opening{min-height:calc(100svh - 85px - env(safe-area-inset-top,0px))}
 .opening-content{padding-block:48px calc(102px + env(safe-area-inset-bottom,0px))}
 .opening-copy h1{font-size:clamp(34px,9.7vw,64px)}
 .opening-copy p{line-height:1.6;max-width:390px}
 .opening-copy .button{min-height:54px;padding-inline:20px}
 .opening-film picture img{object-position:55% 50%}
 .film-caption{bottom:calc(18px + env(safe-area-inset-bottom,0px));align-items:center}
 .film-caption>span{max-width:58%;line-height:1.5}
 .film-caption button{min-width:44px;min-height:44px;flex-shrink:0}
 .stage-picture,.stage-panel:last-child .stage-picture{height:auto;aspect-ratio:4/3}
 .stage-panel:last-child .stage-picture{aspect-ratio:16/9}
 .stage-picture img{height:100%;filter:none}
 .stage-content{padding-block:15px 6px}
 .stage-content h3{font-size:24px;line-height:1.15}
 .stage-content p{font-size:13px;line-height:1.55}
 .stage-content>span{top:15px}
 .home-directory>div{grid-template-columns:1fr;gap:0}
 .directory-link{align-items:center;min-height:52px;font-size:17px}
 .directory-link span{margin-top:0}
 .location-addresses{padding:24px}
 .senior-nav>div{padding:8px var(--gutter);gap:20px;scroll-padding-inline:var(--gutter);overscroll-behavior-inline:contain}
 .senior-nav a{min-height:44px;font-size:14px}
 .senior-nav [aria-current]{text-underline-offset:8px}
 .topic>summary{padding:18px;min-height:64px;gap:16px}
 .topic>summary h2{font-size:24px}
 .topic-content{padding:22px 18px 26px}
 .topic-content .fee-estimator{margin-inline:-6px;padding:22px 14px}
 .table-scroll{overscroll-behavior-inline:contain}
 table[data-columns="2"],table[data-columns="3"]{min-width:0;table-layout:fixed;font-size:13px}
 table[data-columns="2"] :is(th,td),table[data-columns="3"] :is(th,td){padding:12px 7px;min-width:0;overflow-wrap:anywhere}
 .footer-grid{grid-template-columns:1fr 1fr;gap:28px 18px}
 .footer-brand{grid-column:1/-1}
 .footer-link,.footer-brand>a:not(.brand){min-height:44px;align-items:center;margin-bottom:0;line-height:1.45}
 .footer-brand>a:not(.brand){display:flex}
 .footer-grid nav h2{margin-bottom:14px;min-height:44px;display:flex;align-items:center}
 .footer-bottom>a{min-height:44px;display:flex;align-items:center;margin-top:6px}
 .website-credits{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
 .menu-dialog,.search-dialog{overscroll-behavior:contain;scroll-padding-top:100px}
 .dialog-top{position:sticky;top:0;z-index:2;background:var(--paper);padding-block:calc(14px + env(safe-area-inset-top,0px)) 14px}
 .dialog-top .brand{font-size:20px;gap:10px}
 .dialog-top>button{min-width:72px;min-height:44px;justify-content:flex-end}
 .menu-body{padding-top:14px;padding-bottom:calc(30px + env(safe-area-inset-bottom,0px))}
 .menu-body h2{margin-bottom:16px}
 .menu-stage{margin-bottom:17px}
 .menu-stage>a{font-size:29px;min-height:44px;align-items:center}
 .menu-stage small{margin-top:2px}
 .menu-secondary{padding-top:22px}
 .menu-secondary nav{gap:2px}
 .menu-link,.menu-contact>a,.language-links>a{min-height:44px;display:flex;align-items:center}
 .menu-contact{gap:0}
 .language-links{margin-top:8px}
 .search-body{padding-bottom:calc(36px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:374px){
 .header-inner .language-switch{display:none}
 .header-inner .brand,.dialog-top .brand{font-size:19px}
 .opening-copy p{font-size:16px}
 .stage-content h3{font-size:22px}
 .intro-wordmark{padding-inline:18px}
 .intro-wordmark p{font-size:35px}
}
@media(hover:none),(pointer:coarse){
 .stage-picture img{filter:none}
 .stage-panel:hover img{transform:none}
 .stage-panel:hover{flex-grow:1}
}
@media(max-height:520px) and (min-width:600px) and (max-width:1000px){
 .header-inner{min-height:68px;padding-block:10px}
 .header-inner .brand{font-size:20px}
 .home-opening{min-height:calc(100svh - 73px - env(safe-area-inset-top,0px))}
 .opening-content{padding-block:26px calc(70px + env(safe-area-inset-bottom,0px))}
 .opening-copy{max-width:none;width:100%;display:grid;grid-template-columns:1.15fr 1fr;gap:18px 7%;align-items:center}
 .opening-copy h1{grid-row:1/3;font-size:clamp(36px,5.8vw,52px)}
 .opening-copy p{margin:0;font-size:15px}
 .opening-copy .button{margin:0;justify-self:start;min-height:48px;padding-block:11px;font-size:15px;gap:28px}
 .film-caption{bottom:calc(10px + env(safe-area-inset-bottom,0px))}
}

/* Compact programme browsing and legible secondary information. */
.programme-select{display:none}.application-enquiry{margin-top:22px}.website-credits small{font-size:12px;line-height:1.65}.table-scroll td,.table-scroll th{font-size:14px}.programme-select select{font:inherit;color:var(--ink);border:1px solid var(--line);background:var(--paper);border-radius:0;min-height:48px;padding:10px 36px 10px 14px;width:100%}.programme-select label{display:block;font-size:13px;margin-bottom:8px}
@media(max-width:760px){.programme-select.is-enhanced{display:block;padding-top:20px;padding-bottom:4px}.programme-select.is-enhanced+nav{display:none}.website-credits small{font-size:12px;max-width:34em}.table-scroll td,.table-scroll th{font-size:14px}.compact-title{padding-top:30px}.fee-estimator .small{font-size:13px}}

/* Director revision: a compact prospectus within the established yellow/white system. */
.topic-sidebar{position:sticky;top:94px;align-self:start}.topic-index{display:flex;flex-direction:column;gap:3px;margin-top:28px}.topic-index a{display:block;padding:10px 0;font-size:14px;line-height:1.45;max-width:29ch;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:5px;transition:text-decoration-color 180ms ease}.topic-index a:hover,.topic-index a:focus-visible{ text-decoration-color:currentColor}.programme-points{padding-left:21px;margin:20px 0 0;max-width:760px}.programme-points li{padding-left:4px;margin:12px 0;line-height:1.65}.programme-points li::marker{color:#927715}.overview-notes .programme-points{font-size:15px}.topic-links{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:14px}.topic-links .text-link{font-size:14px;line-height:1.4;min-height:44px;margin-top:4px}.topic-media{margin-top:28px}.topic-media img{width:100%;aspect-ratio:16/9;object-fit:cover}.topic-media figcaption{font-size:13px;line-height:1.5;margin-top:10px;color:var(--muted)}.campus-gallery{grid-template-columns:1fr 1fr;gap:22px 18px}.campus-gallery figure:first-child{grid-column:auto}.campus-gallery img{aspect-ratio:3/2;object-fit:cover}.campus-gallery figcaption{font-size:13px;line-height:1.5}.student-resources{margin-top:24px}.student-resource{display:grid;grid-template-columns:1fr auto;gap:8px 20px;align-items:center;background:var(--pale);padding:22px 24px;min-height:104px}.student-resource strong{font:400 30px/1.1 var(--serif)}.student-resource>span:not(.resource-arrow){grid-row:2;max-width:44ch;font-size:14px}.student-resource .resource-arrow{grid-column:2;grid-row:1/3;font-size:27px;transition:transform 250ms var(--ease-out)}.student-resource:hover .resource-arrow{transform:translate(3px,-3px)}.alumni-opening{display:grid;grid-template-columns:1.15fr .85fr;gap:9%;align-items:center}.alumni-opening .lead{max-width:29ch}.alumni-opening figure img{width:100%;height:220px;object-fit:cover;object-position:50% 45%}.alumni-editorial{display:grid;grid-template-columns:1fr 1fr;gap:38px 9%;padding-top:48px}.alumni-editorial h2{font-size:30px;margin-bottom:18px}.alumni-editorial p{font-size:17px;max-width:50ch}.alumni-editorial .alumni-community{grid-column:1/-1;background:var(--pale);padding:28px 32px;margin-top:6px}.alumni-community h2{font-size:25px}.alumni-community p{max-width:74ch;font-size:15px}.student-utility{font-size:14px}.student-utility>span{font-size:13px}
@media(max-width:1020px){.senior-nav>div{gap:23px}.senior-nav a{font-size:14px}}
@media(max-width:760px){.topic-sidebar{position:static}.topic-index{display:none}.programme-points{padding-left:18px;margin-top:18px}.programme-points li{margin:11px 0}.topic-media{margin-top:22px}.topic-media img{aspect-ratio:3/2}.topic-links{gap:8px}.campus-gallery{grid-template-columns:1fr 1fr;gap:20px 12px}.campus-gallery img{aspect-ratio:4/3}.campus-gallery figcaption{font-size:12px}.student-resource{padding:22px 18px}.alumni-opening{grid-template-columns:1fr;gap:25px}.alumni-opening .lead{max-width:30ch;font-size:20px}.alumni-opening figure img{height:190px}.alumni-editorial{grid-template-columns:1fr;gap:32px;padding-top:34px}.alumni-editorial h2{font-size:28px;margin-bottom:15px}.alumni-editorial .alumni-community{grid-column:auto;padding:24px 20px}.alumni-community h2{font-size:24px}.alumni-community p{font-size:15px}.overview-notes .programme-points{font-size:15px}}
@media(prefers-reduced-motion:reduce){.student-resource:hover .resource-arrow{transform:none}.topic-index a{transition:none}}

.faq-group>header{padding:21px 24px;background:var(--stone)}.faq-group>header h2{font-size:25px;letter-spacing:-.01em}@media(max-width:760px){.faq-group>header{padding:20px 18px}.faq-group>header h2{font-size:24px}}

/* Information architecture: one topic menu, one reading area, stable section spacing. */
.senior-nav>div{gap:26px;align-items:center;padding-block:12px}
.programme-name{font-size:16px;font-weight:500;white-space:nowrap;margin-right:auto;padding-right:22px}
.senior-nav a{min-height:38px;font-size:14px}
.senior-content>.compact-title{padding-block:42px 38px}
.senior-content>.compact-title h1{font-size:clamp(40px,4.2vw,62px)}
.senior-content>.compact-title p{max-width:70ch;font-size:17px;line-height:1.6}
.topic-browser{display:grid;grid-template-columns:250px minmax(0,1fr);column-gap:7%;align-items:start}
.topic-menu{position:sticky;top:86px;display:flex;flex-direction:column;gap:23px;padding:2px 0 20px}
.topic-group>p{font-size:14px;font-weight:500;line-height:1.45;margin-bottom:8px}
.topic-group>a{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:9px 12px;font-size:15px;line-height:1.5;transition:background-color 180ms ease}
.topic-group>a>span{flex-shrink:0;opacity:0;transition:opacity 180ms ease,transform 180ms ease}
.topic-group>a:hover,.topic-group>a:focus-visible{background:var(--stone)}
.topic-group>a[aria-current]{background:var(--pale);font-weight:500}
.topic-group>a[aria-current]>span,.topic-group>a:hover>span,.topic-group>a:focus-visible>span{opacity:1}
.topic-group>a:hover>span{transform:translate(2px,-2px)}
.topic-reading{min-width:0;max-width:850px}
.topic-chooser{display:none}
.topic-panel{scroll-margin-top:88px;padding:0 0 48px}
.topic-panel+.topic-panel{padding-top:48px}
.is-enhanced .topic-panel{padding-top:0;padding-bottom:12px}
.topic-panel>h2{font-size:clamp(29px,2.6vw,38px);line-height:1.15;margin-bottom:23px;max-width:30ch}
.topic-panel-content{font-size:17px;line-height:1.65}
.topic-panel-content>p{max-width:69ch}
.topic-panel-content .programme-points{max-width:68ch;margin-top:22px}
.topic-panel-content .programme-points li{margin:12px 0}
.topic-panel-content .topic-links{margin-top:24px}
.topic-panel-content .topic-links .text-link{font-size:15px}
.topic-panel-content h3{font-size:27px}
.topic-panel-content .topic-media{margin-top:30px;max-width:680px}
.topic-panel-content .topic-media img{aspect-ratio:16/9}
.curriculum-table{background:var(--stone);margin-top:28px;padding:0 22px 22px}
.curriculum-table:not([open]){padding-bottom:0}
.curriculum-table>summary{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:60px;font-size:16px;font-weight:500;cursor:pointer;list-style:none}
.curriculum-table>summary::-webkit-details-marker{display:none}
.curriculum-table>summary>span{font-size:23px;transition:transform 180ms ease}
.curriculum-table[open]>summary>span{transform:rotate(45deg)}
.curriculum-table .table-scroll{margin:6px 0 20px}
.curriculum-table table{background:var(--white)}
.topic-panel .faq{background:var(--stone);padding:19px 22px;margin-bottom:12px}
.topic-panel .faq>summary{align-items:center;gap:20px}
.topic-panel .faq p{font-size:16px;max-width:65ch}
.programme-directory{display:grid;grid-template-columns:250px minmax(0,1fr);column-gap:7%;padding-top:56px}
.programme-directory h2{font-size:30px;align-self:start}
.programme-directory>div{display:flex;flex-direction:column;gap:10px}
.programme-directory a{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 24px;background:var(--stone);font:400 25px/1.2 var(--serif);transition:background-color 200ms ease}
.programme-directory a:hover,.programme-directory a:focus-visible{background:var(--pale)}
.programme-directory small{display:block;font:400 15px/1.5 var(--sans);margin-top:8px;max-width:60ch}
.programme-directory a>span:last-child{font:400 23px/1 var(--sans);flex-shrink:0;transition:transform 200ms ease}
.programme-directory a:hover>span:last-child{transform:translate(3px,-3px)}
.overview-notes{gap:18px;padding-top:36px}
.overview-note{align-self:start;background:var(--stone);padding:0 22px}
.overview-note>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px;cursor:pointer;list-style:none}
.overview-note>summary::-webkit-details-marker{display:none}
.overview-note>summary h2{font-size:25px;margin:0}
.overview-note>summary>span{font-size:24px;transition:transform 180ms ease}
.overview-note[open]>summary>span{transform:rotate(45deg)}
.overview-note>div{padding:0 0 24px}
.overview-note>div>.text-link{margin-top:15px;font-size:15px}
.home-directory h2,.philosophy-layout h2{align-self:start}
@media(min-width:851px){.stage-panel,.stage-panel:hover{flex:1 1 0}.stage-content h3{font-size:clamp(23px,1.85vw,29px)}}
@media(max-width:1100px){
 .programme-name{padding-right:6px}.senior-nav>div{gap:20px}.senior-nav a{font-size:13px}
 .topic-browser,.programme-directory{grid-template-columns:220px minmax(0,1fr);column-gap:5%}
 .topic-group>a{font-size:14px}
}
@media(max-width:850px){
 .topic-browser,.programme-directory{grid-template-columns:190px minmax(0,1fr);column-gap:4%}
 .programme-name{display:none}.senior-nav>div{gap:23px}
 .topic-panel-content{font-size:16px}.topic-panel>h2{font-size:30px}
 .topic-group>a{padding-inline:9px;font-size:14px}
}
@media(max-width:760px){
 .senior-content>.compact-title{padding-block:25px 28px}
 .senior-content>.compact-title h1{font-size:38px;line-height:1.08}
 .senior-content>.compact-title p{font-size:16px;line-height:1.6;margin-top:13px}
 .programme-select.is-enhanced{padding-top:18px;padding-bottom:0}
 .programme-select label{font-size:14px;font-weight:500;margin-bottom:7px}
 .topic-browser{grid-template-columns:minmax(0,1fr);gap:26px}
 .topic-menu{position:static;gap:18px}
 .is-enhanced>.topic-menu{display:none}
 .is-enhanced .topic-chooser{display:block;margin-bottom:28px}
 .topic-chooser label{font-size:14px;margin-bottom:7px}
 .topic-chooser select{font-size:16px;background:var(--stone);border:0;min-height:52px;padding:12px}
 .topic-panel{scroll-margin-top:18px}
 .topic-panel>h2{font-size:29px;line-height:1.15;margin-bottom:20px;max-width:24ch}
 .topic-panel-content{font-size:16px;line-height:1.65}
 .topic-panel-content .programme-points{margin-top:18px}
 .topic-panel-content .programme-points li{margin:11px 0}
 .curriculum-table{padding-inline:16px;margin-top:24px}
 .curriculum-table>summary{font-size:15px;min-height:62px}
 .topic-panel .faq{padding:18px 16px}
 .programme-directory{display:block;padding-top:36px}
 .programme-directory h2{max-width:none;font-size:29px;margin-bottom:24px}
 .programme-directory a{padding:20px;font-size:24px}
 .programme-directory small{font-size:14px}
 .senior-overview .lead{font-size:17px;line-height:1.65}
 .overview-notes{display:grid;grid-template-columns:1fr;gap:12px;padding-top:26px}
 .overview-note{padding-inline:18px}
 .overview-note>summary{min-height:68px}
 .overview-note>summary h2{font-size:24px}
 .topic-panel-content .campus-gallery{grid-template-columns:1fr;gap:25px}
 .topic-panel-content .campus-gallery img{aspect-ratio:16/10}
}
@media(max-width:374px){
 .senior-content>.compact-title h1{font-size:34px}
 .topic-panel>h2{font-size:27px}
 .stage-content h3{font-size:20px}
}
@media(prefers-reduced-motion:reduce){
 .topic-group>a,.topic-group>a>span,.curriculum-table>summary>span,.programme-directory a,.programme-directory a>span:last-child{transition:none}
 .topic-group>a:hover>span,.programme-directory a:hover>span:last-child{transform:none}
}

.storage-banner {
  position: fixed;
  inset: auto 1rem 1rem;
  margin-inline: auto;
  width: min(42rem, calc(100% - 2rem));
  z-index: 999;
  background: #fff;
  color: #182421;
  border: 1px solid #c4cac5;
  border-top: 4px solid #ffdf35;
  box-shadow: 0 8px 36px #0003;
  padding: 1rem;
}
.storage-banner[hidden] { display: none; }
.storage-banner p { margin: .5rem 0; }
.storage-banner a { text-decoration: underline; }
.storage-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.storage-actions button {
  flex: 1 1 10rem;
  min-height: 44px;
  padding: .6rem;
  border: 1px solid #182421;
  background: #fff;
  color: #182421;
  cursor: pointer;
}
footer > button { margin: 1rem; padding: .6rem 1rem; cursor: pointer; }

@media (max-width: 760px) {
  .programme-select, .topic-reading, .topic-panel-content { min-width: 0; }
  .programme-select select, .topic-chooser select {
    display: block;
    width: 100%;
    min-height: 52px;
    font-size: 16px;
    padding-inline: 12px 32px;
    border: 1px solid var(--line);
    border-radius: 4px;
  }
  .site-header .header-tools button, .site-header .language-switch {
    min-height: 44px;
  }
  .footer-grid, .menu-body, .contact-grid, .topic-panel-content {
    overflow-wrap: anywhere;
  }
  .table-scroll { max-width: 100%; overflow-x: auto; }
  .storage-banner { max-height: 55dvh; overflow: auto; }
}
@media (max-width: 380px) {
  .storage-banner { inset-inline: .5rem; width: calc(100% - 1rem); }
  .storage-actions button { flex-basis: 8rem; }
}

.inline-picker { border: 1px solid var(--line); border-radius: 6px; background: var(--paper); }
.inline-picker summary {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; min-height: 52px; padding: 12px 14px; cursor: pointer;
}
.inline-picker summary::-webkit-details-marker { display: none; }
.inline-picker summary::after { content: '⌄'; flex: none; }
.inline-picker[open] summary::after { transform: rotate(180deg); }
.inline-picker > div { max-height: min(42dvh, 20rem); overflow: auto; border-top: 1px solid var(--line); }
.inline-picker button { display: block; width: 100%; text-align: start; padding: 12px 14px; min-height: 48px; }
.inline-picker button[aria-current="true"] { background: var(--gold); }
@media (max-width: 760px) {
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}

/* Cinematic prospectus. The underlying document remains a normal, readable page. */
:root{--cinema-ink:#202725;--cinema-paper:#fffefa;--cinema-space:clamp(64px,7vw,112px)}
/* Leave the upper frame open for the campus film and shade the text area. */
.home-opening {
  min-height: calc(100svh - 113px);
  overflow: clip;
  background: var(--cinema-ink);
}
.home-opening::before {
  background:
    linear-gradient(0deg, rgb(13 18 15 / .83), transparent 78%),
    linear-gradient(90deg, rgb(13 18 15 / .71), rgb(13 18 15 / .16) 76%);
}
.opening-film { inset: -3%; transform: scale(1.02); }
.opening-content {
  width: calc(100% - 2 * clamp(22px, 6vw, 100px));
  max-width: 1440px;
  padding-block: clamp(96px, 19svh, 220px) 104px;
  align-items: end;
}
.opening-copy { width: 100%; max-width: 100%; }
.opening-copy h1 {
  font-size: clamp(52px, 7.65vw, 128px);
  line-height: .99;
  letter-spacing: -.042em;
}
.opening-copy .title-line {
  display: block;
  width: fit-content;
  padding-bottom: .18em;
  margin-bottom: -.13em;
}
.opening-copy p {
  max-width: 53ch;
  font-size: clamp(16px, 1.3vw, 20px);
  line-height: 1.55;
  margin-top: 23px;
}
.hero-explore {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 48px;
  margin-top: 24px;
  padding: 0 17px;
  background: var(--gold);
  color: var(--ink);
  font-size: 15px;
  font-weight: 500;
  transition: background-color 200ms ease;
}
.hero-explore>span {
  display: grid;
  place-items: center;
  transition: transform 240ms var(--ease-out);
}
.hero-explore:hover, .hero-explore:focus-visible { background: #ffe970; }
.hero-explore:hover>span, .hero-explore:focus-visible>span { transform: translateY(3px); }
.film-caption {
  bottom: 19px;
  min-height: 44px;
  font-size: 13px;
}
.film-caption button {
  min-width: 104px;
  justify-content: flex-end;
  padding: 0;
}
.cinematic-stages{padding-top:var(--cinema-space);background:var(--paper)}
.cinematic-stages .stages-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:10%;align-items:end;padding-bottom:38px}
.cinematic-stages .stages-intro h2{font-size:clamp(37px,4.1vw,62px);max-width:15ch}
.cinematic-stages .stages-intro p{font-size:17px;max-width:38ch;margin:0 0 4px}
.stage-shortcuts{display:flex;flex-wrap:wrap;gap:8px 30px;padding-bottom:30px}
.stage-shortcuts a{min-height:44px;display:flex;align-items:center;font-size:14px;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:3px;text-underline-offset:9px;transition:text-decoration-color 180ms ease}
.stage-shortcuts a:hover,.stage-shortcuts a:focus-visible,.stage-shortcuts [aria-current]{text-decoration-color:var(--gold)}
.stage-experience{position:relative}
.stage-screen{display:none}
.stage-chapter{display:grid;grid-template-columns:1.2fr 1fr;gap:10%;align-items:center;padding-block:35px;scroll-margin-top:36px}
.stage-inline{overflow:hidden}
.stage-inline img{width:100%;aspect-ratio:4/3;object-fit:cover}
.stage-inline figcaption{font-size:12px;line-height:1.5;margin-top:12px;color:var(--muted)}
.stage-chapter h3{font-size:clamp(36px,3.4vw,52px);line-height:1.08;max-width:13ch}
.stage-chapter-copy>.stage-duration{font-size:14px;color:var(--muted);margin-top:20px}
.stage-chapter-copy>p:not(.stage-duration){font-size:18px;line-height:1.65;max-width:36ch;margin-top:20px}
.stage-chapter .stage-action{font-size:15px;margin-top:24px;gap:22px}
.stage-action>span{display:inline-block;transition:transform 240ms var(--ease-out)}
.stage-action:hover>span{transform:translate(4px,-4px)}
.stage-visual{position:absolute;inset:0;overflow:hidden;background:var(--stone)}
.stage-visual img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.stage-visual figcaption{position:absolute;left:0;bottom:0;max-width:90%;background:var(--paper);padding:14px 24px 8px 0;font-size:14px;line-height:1.5}
@media(min-width:901px){
 .stage-experience.is-enhanced{display:grid;grid-template-columns:1.2fr 1fr;gap:10%;align-items:start}
 .is-enhanced>.stage-screen{display:block;position:sticky;top:50px;align-self:start;height:min(74svh,780px);min-height:430px;margin-top:24px}
 .stage-screen-images{position:absolute;inset:0}
 .is-enhanced .stage-chapter{display:flex;min-height:64svh;padding-block:60px;align-items:center}
 .is-enhanced .stage-inline{display:none}
 .is-enhanced .stage-chapter:first-child{min-height:76svh}
 .is-enhanced .stage-chapter:last-child{min-height:76svh}
}
.home-directory{padding-block:var(--cinema-space)}
.home-directory h2{font-size:clamp(32px,3vw,46px)}
.home-directory>div{gap:8px 45px}
.home-directory .directory-link{font-size:18px;min-height:54px}
.philosophy{background:var(--cinema-ink);color:var(--white)}
.philosophy-layout{padding-block:var(--cinema-space)}
.philosophy-layout h2{font-size:clamp(34px,3.5vw,52px);max-width:14ch}
.philosophy-layout .lead{font-size:23px;line-height:1.6;max-width:60ch}
.philosophy-layout p+p{font-size:16px;max-width:66ch}
.home-location{padding-block:var(--cinema-space)}
.location-addresses{padding:36px;background:var(--stone)}
.senior-nav{background:var(--white)}
.senior-nav [aria-current]{text-decoration-color:var(--gold)}
.senior-hero{position:relative;isolation:isolate;overflow:clip;min-height:490px;display:flex;align-items:end;color:var(--white);background:var(--cinema-ink)}
.senior-hero>figure{position:absolute;inset:0;z-index:-2;overflow:hidden}
.senior-hero>figure img{width:100%;height:100%;object-position:50% 46%}
.senior-hero::before{content:'';position:absolute;inset:0;background:rgba(12,19,16,.62);z-index:-1}
.senior-hero>.wrap{padding-block:70px 60px}
.senior-hero h1{font-size:clamp(58px,6vw,88px);line-height:1.02}
.senior-hero p{font-size:19px;max-width:45ch;margin-top:23px;line-height:1.6}
.senior-hero .button{margin-top:28px;color:var(--ink)}
.senior-hero .button:focus-visible{outline-color:var(--white)}
.senior-overview{grid-template-columns:1.25fr 1fr;gap:10%;padding-block:50px 15px}
.senior-overview>.lead{font-size:20px;line-height:1.65;max-width:60ch}
.senior-overview .programme-facts{margin-top:0;gap:18px}
.senior-content>.compact-title{padding-block:46px 40px}
.topic-panel-content .topic-media{max-width:none;overflow:hidden}
.topic-panel-content .topic-media img{aspect-ratio:16/10}
.campus-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 16px}
.campus-gallery figure:first-child{grid-column:1/-1}
.campus-gallery figure:first-child img{aspect-ratio:16/8}
.campus-gallery img{aspect-ratio:4/3}
.topic-group>a{transition:background-color 180ms ease,color 180ms ease}
.topic-group>a[aria-current]{background:var(--pale)}
.button,.resource-link,.student-resource{transition:background-color 200ms ease,color 200ms ease,transform 160ms var(--ease-out)}
.button:hover{transform:translateY(-2px)}
.button:active{transform:translateY(0) scale(.98)}
.language-switch{text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:3px;text-underline-offset:8px;transition:text-decoration-color 180ms ease}
.language-switch:hover,.language-switch:focus-visible{text-decoration-color:var(--gold)}
.topic-menu{top:86px}
@view-transition{navigation:auto}
::view-transition-old(root){animation:cinema-out 180ms ease both}
::view-transition-new(root){animation:cinema-in 320ms var(--ease-out) both}
@keyframes cinema-out{to{opacity:0}}
@keyframes cinema-in{from{opacity:0}to{opacity:1}}
@supports(animation-timeline:scroll()){
 @media(prefers-reduced-motion:no-preference) and (min-width:901px){
  .opening-film{animation:cinema-depth linear both;animation-timeline:scroll(root);animation-range:0px 100svh}
  @keyframes cinema-depth{from{transform:translateY(0) scale(1.02)}to{transform:translateY(5%) scale(1.07)}}
 }
}
@supports(animation-timeline:view()){
 @media(prefers-reduced-motion:no-preference) and (min-width:901px){
  .topic-panel-content .topic-media img,.senior-hero>figure img{animation:photographic-depth linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
  @keyframes photographic-depth{from{transform:scale(1.04) translateY(-1%)}to{transform:scale(1.04) translateY(1%)}}
 }
}
@media(max-width:1100px){.stage-chapter h3{font-size:40px}.stage-chapter-copy>p:not(.stage-duration){font-size:17px}.stage-shortcuts{gap:6px 23px}}
@media(max-width:900px){
 .cinematic-stages .stages-intro{grid-template-columns:1fr;gap:22px}
 .cinematic-stages .stages-intro h2{max-width:20ch;font-size:46px}
 .stage-shortcuts{padding-bottom:15px}
 .stage-chapter{grid-template-columns:1.1fr 1fr;gap:7%;padding-block:30px}
 .stage-chapter h3{font-size:36px}
 .stage-inline img{aspect-ratio:3/4}
 .senior-overview{gap:6%}
 .senior-hero{min-height:430px}
}
@media(max-width:760px){
 :root{--cinema-space:58px}
 .home-opening {
   min-height: calc(100svh - 85px - env(safe-area-inset-top, 0px));
 }
 .home-opening::before {
   background: linear-gradient(0deg, rgb(13 18 15 / .89), rgb(13 18 15 / .66) 48%, rgb(13 18 15 / .12) 95%);
 }
 .opening-content {
   min-height: inherit;
   padding-block: clamp(70px, 20svh, 160px) calc(82px + env(safe-area-inset-bottom, 0px));
 }
 .opening-copy h1 { font-size: clamp(34px, 10.5vw, 70px); }
 .opening-copy p { margin-top: 20px; max-width: 32ch; }
 .hero-explore { margin-top: 20px; }
 .film-caption { bottom: calc(10px + env(safe-area-inset-bottom, 0px)); font-size: 12px; }
 .film-caption button { font-size: 12px; }
 .cinematic-stages .stages-intro{gap:20px;padding-bottom:26px}
 .cinematic-stages .stages-intro h2{font-size:36px;max-width:17ch}
 .cinematic-stages .stages-intro p{font-size:16px;max-width:35ch}
 .stage-shortcuts{gap:4px 22px;padding-bottom:20px}
 .stage-shortcuts a{font-size:14px}
 .stage-chapter{display:flex;flex-direction:column;align-items:stretch;gap:26px;padding-block:24px 34px;scroll-margin-top:20px}
 .stage-inline img{aspect-ratio:4/3}
 .stage-inline figcaption{font-size:12px;margin-top:9px}
 .stage-chapter-copy{padding-bottom:7px}
 .stage-chapter h3{font-size:34px;max-width:none}
 .stage-chapter-copy>.stage-duration{margin-top:13px;font-size:13px}
 .stage-chapter-copy>p:not(.stage-duration){font-size:16px;max-width:40ch;margin-top:17px}
 .stage-chapter .stage-action{margin-top:16px;font-size:15px}
 .home-directory>div{gap:2px}
 .home-directory .directory-link{font-size:17px;min-height:52px}
 .philosophy-layout{gap:27px}
 .philosophy-layout h2{font-size:34px;max-width:none}
 .philosophy-layout .lead{font-size:21px;line-height:1.65}
 .philosophy-layout p+p{font-size:16px}
 .location-addresses{padding:28px}
 .senior-hero{min-height:400px}
 .senior-hero>.wrap{padding-block:48px 38px}
 .senior-hero h1{font-size:55px}
 .senior-hero p{font-size:17px;max-width:30ch;margin-top:21px}
 .senior-hero .button{margin-top:25px;font-size:15px;min-height:52px}
 .senior-overview{display:grid;grid-template-columns:1fr;gap:27px;padding-block:32px 0}
 .senior-overview>.lead{font-size:17px;line-height:1.65}
 .senior-overview .programme-facts{gap:14px}
 .senior-content>.compact-title{padding-block:28px}
 .campus-gallery,.topic-panel-content .campus-gallery{grid-template-columns:1fr;gap:27px}
 .campus-gallery figure:first-child{grid-column:auto}
 .campus-gallery img,.campus-gallery figure:first-child img{aspect-ratio:4/3}
}
@media(max-width:374px){
 .opening-copy h1{font-size:32px}
 .opening-copy p{font-size:15px}
 .cinematic-stages .stages-intro h2{font-size:31px}
 .stage-chapter h3{font-size:31px}
 .senior-hero h1{font-size:49px}
}
@media(prefers-reduced-motion:reduce){
 @view-transition{navigation:none}
 .opening-film{transform:none;animation:none}
 .button:hover,.hero-explore:hover>span,.hero-explore:focus-visible>span,.stage-action:hover>span{transform:none}
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}
@media(hover:none){.button:hover,.hero-explore:hover>span,.stage-action:hover>span{transform:none}}

/* Draw controls independently of the device emoji font. */
.line-icon{display:block;width:1em;height:1em;flex:none}
.film-icon{display:inline-grid;place-items:center;width:16px;height:16px}
.film-icon::before{content:"";width:0;height:0;border-block:5px solid transparent;border-left:8px solid currentColor}
[aria-pressed="true"]>.film-icon::before{width:8px;height:11px;border:0;border-inline:2px solid currentColor}
@media(max-width:760px){
 .menu-dialog .dialog-top{padding-block:14px}
 .menu-dialog .menu-body{padding-block:16px 28px}
 .menu-dialog .menu-body h2{font-size:12px;letter-spacing:.11em;text-transform:uppercase;margin-bottom:8px}
 .menu-dialog .menu-stage{position:relative;padding:9px 0 10px;border-bottom:1px solid #25282224}
 .menu-dialog .menu-stage a{font-size:clamp(19px,5.8vw,24px);line-height:1.15;min-height:32px;padding:0}
 .menu-dialog .menu-stage a>span{font-size:17px;display:grid;place-items:center;width:28px;height:28px;background:none;box-shadow:none}
 .menu-dialog .menu-stage small{font-size:12px;line-height:1.25;margin-top:1px}
 .menu-dialog .menu-secondary{margin-top:14px}
 .menu-dialog .menu-secondary a{min-height:44px;font-size:15px}
 .cinematic-stages{padding-top:44px}
 .cinematic-stages .stages-intro h2{font-size:clamp(29px,8.4vw,40px);text-wrap:balance}
 .stage-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;padding-bottom:22px}
 .stage-shortcuts a{border-bottom:1px solid #25282224;font-size:13px;line-height:1.25;padding:7px 0;justify-content:space-between;gap:4px}
 .stage-shortcuts a::after{content:"";border:solid currentColor;border-width:0 1px 1px 0;width:5px;height:5px;transform:rotate(45deg);flex:none;margin-right:3px}
 .stage-inline img{aspect-ratio:16/8}
 .stage-chapter h3{font-size:clamp(26px,7.4vw,34px)}
}

/* Homepage and Senior High opening hierarchy. */
.opening-copy h1 { font-size: clamp(48px, 6.85vw, 112px); }
@media (max-width: 760px) {
  .opening-copy h1 { font-size: clamp(31px, 9.5vw, 62px); }
}
.senior-intro { background: #242b27; color: #fffefa; padding-block: clamp(36px, 7vw, 90px); }
.senior-intro h1 { color: inherit; font-size: clamp(52px, 9vw, 120px); line-height: .97; margin: 10px 0 20px; }
.senior-intro p:last-child { max-width: 52ch; font-size: clamp(17px, 2vw, 23px); }
.senior-kicker { color: var(--gold); }
.senior-highlights { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; padding-block: 24px; }
.senior-highlight { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fff5bb; padding: 14px 17px; }
.menu-secondary .menu-fees { font-size: .86rem; }
#curriculum .programme-points { columns: 2; column-gap: 28px; }
#curriculum .programme-points li { break-inside: avoid; }
.contact-layout { padding-bottom: clamp(44px, 8vw, 100px); }
.contact-direct, .contact-building { padding: 24px; background: #f7f4eb; margin-bottom: 14px; }
.contact-direct a { display: inline-block; margin: 8px 20px 0 0; text-decoration: underline; }
.contact-campuses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.contact-campus { padding: clamp(18px, 3vw, 32px); background: #f7f4eb; }
.contact-campus h2, .contact-direct h2, .contact-building h2 { font-size: clamp(26px, 3vw, 38px); margin-bottom: 12px; }
.contact-campus a { text-decoration: underline; }
.contact-campus button { margin-top: 12px; padding: 10px 16px; min-height: 44px; background: var(--gold); }
.contact-campus iframe { width: 100%; height: 280px; border: 0; margin-top: 14px; }
@media (max-width: 620px) {
  .senior-highlights, .contact-campuses { grid-template-columns: 1fr; }
}

.senior-sections { margin-block: clamp(24px, 5vw, 68px); }
.senior-section-group {
  display: grid;
  grid-template-columns: minmax(200px, 1fr) minmax(0, 2fr);
  gap: clamp(24px, 5vw, 80px);
  border-top: 1px solid #25282232;
  padding-block: clamp(26px, 5vw, 66px);
}
.senior-section-group h2 { font-size: clamp(30px, 4vw, 54px); }
.senior-section h3 { font-size: clamp(24px, 3vw, 34px); margin-bottom: 12px; }
.senior-section + .senior-section { margin-top: 30px; }
.senior-section .campus-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 760px) {
  .senior-section-group { grid-template-columns: 1fr; }
}

/* The overview reads as a short set of groups. Subpages keep their reading layout. */
.senior-sections-compact { margin-block: 22px 42px; }
.senior-sections-compact .senior-section-group {
  display: block;
  padding-block: clamp(22px, 3vw, 38px);
}
.senior-sections-compact .senior-section-group h2 {
  margin-bottom: 20px;
  font-size: clamp(29px, 3.4vw, 46px);
}
.senior-sections-compact .senior-section-group > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px clamp(20px, 4vw, 54px);
}
.senior-sections-compact .senior-section { margin: 0; }
.senior-sections-compact .senior-section h3 { font-size: clamp(20px, 2.4vw, 28px); margin-bottom: 6px; }
.senior-sections-compact .senior-section p { margin-block: 5px; }
.senior-sections-compact .programme-points { margin-block: 8px; }
.senior-sections-compact .programme-points li { margin-block: 4px; }
.senior-sections-compact #campus { grid-column: 1 / -1; }
.senior-sections-compact #campus .campus-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 620px) {
  .senior-sections-compact .senior-section-group > div { grid-template-columns: 1fr; gap: 16px; }
  .senior-sections-compact #campus .campus-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* A brief curtain of light frames the opening; the poster stays visible. */
.home-opening::after {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: var(--gold);
  transform-origin: left;
  pointer-events: none;
  opacity: 0;
}
html.is-route-loading::before {
  content: "";
  position: fixed;
  inset: 0 auto auto 0;
  width: 32%;
  height: 3px;
  z-index: 1000;
  background: var(--gold);
  pointer-events: none;
  opacity: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .home-opening::after { animation: opening-light 650ms var(--ease-out) both; }
  html.is-route-loading::before { animation: route-loading 950ms 180ms ease-in-out infinite both; }
}
@keyframes opening-light {
  from { opacity: 1; transform: scaleX(0); }
  68% { opacity: 1; transform: scaleX(1); }
  to { opacity: 0; transform: scaleX(1); }
}
@keyframes route-loading {
  from { opacity: 1; transform: translateX(-100%); }
  to { opacity: 1; transform: translateX(313%); }
}

@media (max-width: 760px) {
  .programme-directory a, .stage-shortcuts a { min-height: 44px; }
  .film-caption button { min-height: 44px; }
  .contact-campus, .senior-section, .programme-directory a { min-width: 0; overflow-wrap: anywhere; }
  .senior-section .campus-gallery figcaption { font-size: 12px; }
}
@media (max-width: 760px) and (prefers-reduced-motion: no-preference) {
  .home-opening::after { animation-duration: 360ms; }
}

/* On phones and tablets, the school stages form a single in-place preview. */
.stage-chapter[hidden] { display: none; }
.has-stage-preview {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 5px;
  padding-bottom: 14px;
}
.has-stage-preview a {
  min-height: 48px;
  padding: 8px 12px;
  justify-content: center;
  text-align: center;
  background: var(--stone);
  border: 1px solid transparent;
  text-decoration: none;
  transition: background-color 160ms ease;
}
.has-stage-preview a[aria-current="true"] { background: var(--gold); color: var(--ink); }
.has-stage-preview a::after { content: none; }
.has-stage-preview + .stage-experience .stage-chapter {
  background: var(--stone);
  padding: clamp(14px, 3vw, 24px);
  gap: clamp(16px, 3vw, 30px);
}
.has-stage-preview + .stage-experience .stage-inline img { aspect-ratio: 16 / 9; }
.has-stage-preview + .stage-experience .stage-duration { margin-top: 8px; }
.has-stage-preview + .stage-experience .stage-chapter-copy > p:not(.stage-duration) { margin-top: 10px; }
.has-stage-preview + .stage-experience .stage-action { min-height: 44px; margin-top: 10px; }
@media (max-width: 760px) {
  .has-stage-preview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .has-stage-preview a:last-child { grid-column: 1 / -1; }
  .has-stage-preview a { justify-content: flex-start; text-align: left; }
  .has-stage-preview + .stage-experience .stage-chapter h3 { max-width: none; }
  .has-stage-preview + .stage-experience .stage-inline figcaption { margin-top: 6px; }
}
@media (max-width: 760px) and (prefers-reduced-motion: no-preference) {
  dialog[open] > .dialog-top { animation: none; }
  dialog[open] > .menu-body, dialog[open] > .search-body {
    animation: phone-dialog-enter 200ms var(--ease-out) both;
  }
}
@keyframes phone-dialog-enter {
  from { opacity: .8; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 760px) {
  .storage-banner {
    padding: 12px;
    line-height: 1.4;
    font-size: 14px;
  }
  .storage-banner p { margin: 5px 0; }
  .storage-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin-top: 8px;
  }
  .storage-actions button { padding: 6px; line-height: 1.2; }
}

@media (max-width: 900px) and (max-height: 500px) and (orientation: landscape) {
  .opening-content { padding-block: 32px 68px; }
  .opening-copy h1 { font-size: clamp(32px, 6.2vw, 50px); }
  .opening-copy p { margin-top: 12px; max-width: 54ch; }
  .hero-explore { margin-top: 12px; }
  .film-caption { bottom: 8px; }
}

/* Senior High programme index. Each entry is a complete link. */
.programme-directory {
  display: block;
  padding-block: clamp(20px, 3.2vw, 46px) clamp(14px, 2vw, 24px);
}

.programme-directory h2 {
  margin: 0 0 clamp(16px, 2.2vw, 28px);
  font-size: clamp(28px, 3.3vw, 46px);
}

.programme-directory > .programme-directory-links {
  display: grid;
  grid-template-columns: minmax(0, 1.16fr) minmax(0, 1fr);
  grid-template-rows: repeat(2, minmax(110px, auto));
  gap: 8px;
}

.programme-directory a.programme-entry {
  gap: clamp(12px, 2vw, 28px);
  padding: clamp(16px, 2.1vw, 28px);
  min-height: 84px;
  background: var(--stone);
  font-size: clamp(23px, 2.7vw, 34px);
  overflow-wrap: normal;
  transition: none;
}

.programme-directory .programme-entry > span:first-child {
  min-width: 0;
  overflow-wrap: break-word;
}

.programme-directory .programme-entry small {
  margin-top: 5px;
  font-size: 15px;
  line-height: 1.45;
}

.programme-directory a.programme-entry-featured {
  grid-row: span 2;
  background: var(--pale);
  font-size: clamp(28px, 3.8vw, 48px);
}

.programme-directory .programme-entry > .programme-entry-arrow {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--paper);
  transform: none;
  transition: none;
}

.programme-directory .programme-entry-featured > .programme-entry-arrow {
  background: var(--gold);
}

.programme-directory .programme-entry:hover > .programme-entry-arrow {
  transform: none;
}

.programme-directory .programme-entry:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: -4px;
}

@media (hover: hover) and (pointer: fine) {
  .programme-directory .programme-entry:hover {
    background: var(--pale);
  }
  .programme-directory .programme-entry-featured:hover {
    background: #fff0a3;
  }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .programme-directory .programme-entry {
    transition: background-color 160ms ease-out;
  }
  .programme-directory .programme-entry-arrow svg {
    transition: transform 160ms ease-out;
  }
  .programme-directory .programme-entry:hover .programme-entry-arrow svg {
    transform: translateX(3px);
  }
}

@media (max-width: 760px) {
  .programme-directory > .programme-directory-links {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: none;
  }
  .programme-directory .programme-entry-featured {
    grid-row: auto;
  }
}

/* The same four programme links are visible at every width. */
.senior-nav { border-bottom: 1px solid var(--line); }
.senior-nav > div { padding-block: 0; }
.senior-nav a {
  min-height: 48px;
  border-bottom: 2px solid transparent;
  text-decoration: none;
}
.senior-nav a[aria-current="page"] { border-bottom-color: var(--gold); text-decoration: none; }
.senior-nav a:focus-visible { outline-offset: -3px; }

.senior-intro {
  padding-block: clamp(18px, 4.2vw, 56px);
  background: var(--stone);
  color: var(--ink);
}
.senior-intro-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(22px, 5vw, 72px);
}
.senior-intro h1 {
  margin: 0 0 12px;
  font-size: clamp(52px, 7.5vw, 104px);
}
.senior-intro-copy p:last-child {
  max-width: 36ch;
  font-size: clamp(17px, 2vw, 22px);
  line-height: 1.48;
}
.senior-intro-facts {
  margin: 0;
  border-inline-start: 3px solid var(--gold);
  padding-inline-start: 20px;
}
.senior-intro-facts > div + div { margin-top: 8px; }
.senior-intro-facts dt { font-size: 12px; font-weight: 600; color: var(--muted); }
.senior-intro-facts dd { margin: 0; font-size: 15px; line-height: 1.4; }
.senior-page-index {
  display: flex;
  flex-wrap: wrap;
  column-gap: 22px;
  margin-top: 18px;
}
.senior-page-index a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  border-bottom: 1px solid var(--line);
  font-size: 14px;
}
.senior-page-index a:hover { border-color: var(--ink); }
.senior-sections-compact [id] { scroll-margin-top: 16px; }

@media (max-width: 760px) {
  .senior-nav { position: static; }
  .senior-nav > div {
    width: calc(100% - var(--gutter) * 2);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2px;
    padding: 0;
    overflow: visible;
  }
  .senior-nav a {
    min-height: 48px;
    padding: 6px 3px;
    justify-content: center;
    text-align: center;
    line-height: 1.15;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .senior-intro-layout { grid-template-columns: 1fr; gap: 14px; }
  .senior-intro h1 { font-size: clamp(43px, 13vw, 70px); }
  .senior-intro-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px 12px;
    padding-inline-start: 12px;
  }
  .senior-intro-facts > div + div { margin-top: 0; }
  .senior-intro-facts > div:last-child { grid-column: 1 / -1; }
  .senior-intro-facts dd { font-size: 14px; }
  .programme-directory a.programme-entry { min-height: 72px; padding: 12px 14px; }
  .programme-directory a.programme-entry-featured { font-size: clamp(25px, 6.5vw, 32px); }
  .programme-directory .programme-entry small { font-size: 14px; }
}

@media (max-width: 350px) {
  .senior-nav > div { grid-template-columns: .95fr 1.08fr 1.18fr .95fr; }
  .senior-nav a { padding-inline: 2px; font-size: 12px; }
}
