:root{color-scheme:dark;--cream:#f4f4e9;--gold:#f2b13b;--ink:#122623;font-size:16px}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--cream);background:#132522}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button{touch-action:manipulation}.room{height:100svh;height:100dvh;position:relative;isolation:isolate;overflow:hidden}.scene{position:absolute;inset:-15px;background:#223e38 url('room.jpg') center/cover no-repeat;z-index:-3;transform:translate(var(--mx,0px),var(--my,0px)) scale(1.025);transition:transform .8s ease-out}.shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#081b18d9,transparent 83%),linear-gradient(0deg,#081b18e8,transparent 54%,#07161355)}header{position:absolute;top:0;left:0;width:100%;padding:28px 4%;display:flex;justify-content:space-between;align-items:center}.wordmark{position:relative;padding:0 0 0 36px;text-align:left;font-size:30px;font-weight:600;letter-spacing:-1.4px}.brand-icon{position:absolute;left:0;top:6px;font-size:26px;color:var(--gold)}.brand-caption{display:block;font-size:9px;letter-spacing:1.6px;margin-top:3px;font-weight:400}.top-right{display:flex;align-items:center;gap:28px;font-size:12px;letter-spacing:1.6px}.menu-button{border:1px solid #ffffff40;background:#10272233;backdrop-filter:blur(18px);padding:13px 20px;border-radius:32px;letter-spacing:0;font-size:14px}.menu-button span{margin-left:18px}.intro{position:absolute;left:6%;top:24%;width:76%;pointer-events:none}.intro button{pointer-events:auto}.eyebrow{font-size:12px;letter-spacing:1.8px;color:var(--gold);margin:0 0 26px}h1{font-weight:500;letter-spacing:-.065em;margin:0;line-height:.92}h1>span{display:block;font-size:clamp(26px,3vw,48px);font-weight:300;letter-spacing:-.035em;margin-bottom:8px}h1 em{display:block;font-size:clamp(65px,9vw,142px);font-weight:500;font-style:normal;letter-spacing:-.055em}.title-dot{color:var(--gold)}.subtitle{font-size:clamp(15px,1.3vw,20px);font-weight:300;letter-spacing:.04em;margin:24px 0 0;color:#e8e9d9}.invitation{font-size:clamp(20px,1.8vw,27px);font-weight:400;line-height:1.35;letter-spacing:-.025em;margin:38px 0 24px}.invitation>span{color:#c4ccc3}.facts{display:flex;gap:26px;margin:0 0 25px}.facts>div{display:flex;align-items:baseline;gap:7px}.facts strong{font-size:22px;font-weight:500;letter-spacing:-1px}.facts strong span{font-size:18px}.facts>div>span{font-size:12px;color:#ced6cc}.primary{padding:14px 22px;border-radius:40px;background:var(--cream);color:#162d27;font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:30px;transition:background .25s,transform .25s}.primary:hover{background:var(--gold);transform:translateY(-2px)}.primary span{font-size:24px;font-weight:300}.equipment{font-size:12px;color:#c5cec3;margin-top:16px}.hotspot{position:absolute;display:flex;align-items:center;gap:12px;padding:10px;transform:translate(calc(var(--mx,0px)*.6),calc(var(--my,0px)*.6));text-align:left}.point{display:grid;place-items:center;border:1px solid #ffffff90;background:#eaf2e518;backdrop-filter:blur(8px);border-radius:50%;width:44px;height:44px;flex-shrink:0;font-size:24px;font-weight:200;box-shadow:0 0 0 7px #f4f4e90a;transition:background .25s,transform .35s}.tag{font-size:14px;font-weight:500;line-height:1.4;text-shadow:0 1px 8px #000,0 1px 18px #000;padding:6px 0}.tag small{display:block;font-size:9px;font-weight:400;letter-spacing:1.3px;color:#e9e8d9;margin-bottom:4px}.hotspot:hover .point{background:var(--cream);color:var(--ink);transform:rotate(90deg)}.memories{left:67%;top:20%}.clock{left:47%;top:10%}.table{left:71%;top:72%}.door{left:43%;top:76%}footer{position:absolute;bottom:0;left:0;width:100%;padding:20px 4%;display:flex;align-items:center;gap:22px;color:#c9d3c8;font-size:12px}footer p{margin:0;font-size:12px;font-weight:300}footer nav{display:flex;gap:20px;margin-left:auto}footer button{padding:9px 0;font-size:12px;transition:color .2s}footer button:hover{color:white}.crosshair{color:var(--gold);font-size:24px;vertical-align:middle;margin-right:10px}.image-note{font-size:10px;opacity:.6}
dialog{width:min(1040px,calc(100% - 64px));height:min(760px,88dvh);max-height:88dvh;padding:0;border:1px solid #c5d9cc35;border-radius:30px;background:#17362eeF;color:var(--cream);box-shadow:0 32px 130px #0008;overflow:hidden;backdrop-filter:blur(40px)}dialog[open]{display:grid;grid-template-columns:30% 70%;animation:arrive .4s cubic-bezier(.2,.7,.2,1)}dialog::backdrop{background:#06151088;backdrop-filter:blur(12px)}@keyframes arrive{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}.modal-art{position:relative;background:linear-gradient(0deg,#092c24b0,transparent 70%),url('room.jpg') 62% center/auto 100%;margin:12px 0 12px 12px;border-radius:20px;overflow:hidden}.modal-art span{position:absolute;bottom:30px;left:25px;right:20px;font-size:25px;font-weight:300;line-height:1.12;letter-spacing:-1px;text-shadow:0 1px 8px #0009}.modal-content{display:flex;flex-direction:column;min-height:0;min-width:0}.modal-top{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:20px 25px 12px 38px;font-size:10px;letter-spacing:1.8px;color:#bfcec2}.modal-top button{font-size:17px;color:var(--cream);width:40px;height:40px;background:#ffffff0d;border:1px solid #ffffff20;border-radius:50%}.modal-top button:hover{background:#ffffff20}.modal-body{padding:16px 42px 32px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8ba89955 transparent;min-height:0;flex:1}.modal-body .eyebrow{color:var(--gold);margin:4px 0 22px;font-size:10px;letter-spacing:1.8px}.modal-body h2{font-size:clamp(32px,3.6vw,52px);font-weight:400;line-height:1.02;margin:0 0 28px;letter-spacing:-2px}.modal-body h3{font-size:21px;font-weight:500;letter-spacing:-.6px;margin:28px 0 10px;color:var(--cream)}.modal-body p,.modal-body li{font-size:16px;line-height:1.7;font-weight:300;color:#cbd9cf}.modal-body strong{color:#f0f2e7;font-weight:500}.modal-body .lead{font-size:22px;line-height:1.45;letter-spacing:-.4px;color:#e6ecdf;font-weight:300}.modal-body ul{padding-left:20px}.modal-body li{padding:4px 0}.modal-body .note{padding:20px 23px;background:#ffffff08;border:1px solid #ffffff16;border-radius:18px;font-size:15px}.modal-body .primary{margin-top:12px}.modal-nav{flex-shrink:0;display:flex;justify-content:space-between;gap:3px;margin:0 26px 20px;padding:6px;border-radius:30px;background:#061f1966}.modal-nav button{font-size:12px;padding:11px 14px;border-radius:24px;color:#bbccc1}.modal-nav button:hover{color:white;background:#ffffff0b}.modal-nav button[aria-current=page]{background:#dce7d9;color:#17362e}.day{padding:22px 0;border-top:1px solid #ffffff1c}.day h3{margin:0 0 14px;font-size:27px;display:flex;align-items:center;gap:15px}.day p{margin:12px 0}.day span{display:inline-grid;place-items:center;width:55px;height:30px;border-radius:20px;background:#f2b13b18;font-size:10px;letter-spacing:1px;color:var(--gold)}.modal-body details{border-bottom:1px solid #ffffff20;padding:20px 0}.modal-body summary{cursor:pointer;font-size:18px;line-height:1.4;letter-spacing:-.3px}.modal-body details p{margin-bottom:2px}.menu-grid{display:grid;gap:8px}.menu-grid button{text-align:left;padding:15px 20px;color:#e8eee1;background:#ffffff05;border:1px solid #ffffff0c;border-radius:16px;font-size:20px;font-weight:300;letter-spacing:-.5px;transition:background .2s}.menu-grid button:hover{background:#ffffff13}.motion-off .scene,.motion-off .hotspot{transform:none;transition:none}
@media(min-width:901px) and (max-height:750px){.intro{top:20%}.eyebrow{margin-bottom:18px}h1 em{font-size:8vw}.invitation{margin:23px 0 16px;font-size:22px}.facts{margin-bottom:18px}.subtitle{margin-top:18px}.equipment{margin-top:10px}.clock{top:11%}.door{left:49%}}
@media(max-width:1100px) and (min-width:901px){.table{left:68%}.facts{gap:20px}.facts>div{flex-direction:column;gap:3px}footer p,.image-note{display:none}.intro{width:90%}}
@media(max-width:900px){header{padding:22px 6%}.top-right>span{display:none}.intro{top:22%;width:88%}.shade{background:linear-gradient(90deg,#071b17bc,#071b1725),linear-gradient(0deg,#071b17 0%,transparent 70%)}h1>span{font-size:30px}h1 em{font-size:11.7vw}.subtitle{font-size:16px;margin-top:20px}.invitation{font-size:24px;margin:28px 0 22px}.facts{gap:24px}.facts>div{flex-direction:column;gap:3px}.facts>div>span{font-size:12px}.hotspots{position:absolute;bottom:86px;left:6%;right:6%;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}.hotspot{position:static;transform:none;padding:4px;gap:10px}.point{width:36px;height:36px;font-size:20px;box-shadow:none}.tag{font-size:14px}.tag small{display:none}footer{padding:12px 6%;gap:8px}footer p,.image-note{display:none}footer nav{margin:0;justify-content:space-between;width:100%;gap:12px}.scene{background-position:60% center}.equipment{font-size:12px;max-width:240px;line-height:1.5}dialog{width:calc(100% - 36px);grid-template-columns:24% 76%}.modal-art span{font-size:22px;left:18px}.modal-body{padding-left:28px;padding-right:28px}.modal-top{padding-left:28px}}
@media(max-width:600px){header{padding-top:22px}.wordmark{font-size:28px}.brand-caption{font-size:8px}.menu-button{padding:11px 16px}.intro{top:20%}.eyebrow{font-size:10px;letter-spacing:1.4px;margin-bottom:22px}h1>span{font-size:28px;margin-bottom:8px}h1 em{font-size:12.2vw;letter-spacing:-.055em}.subtitle{font-size:14px;margin-top:18px;letter-spacing:0}.invitation{font-size:23px;margin:30px 0 23px}.facts{gap:25px;margin-bottom:22px}.facts strong{font-size:22px}.primary{padding:13px 20px}.hotspots{gap:8px 6px;bottom:74px}.tag{font-size:13px}.point{width:30px;height:30px;font-size:18px}.hotspot{gap:8px}dialog{width:calc(100% - 24px);height:90dvh;max-height:90dvh;border-radius:26px}dialog[open]{display:flex}.modal-art{display:none}.modal-content{width:100%}.modal-top{padding:14px 20px 4px}.modal-top>span{font-size:9px}.modal-body{padding:20px 24px 24px}.modal-body h2{font-size:37px;letter-spacing:-1.8px}.modal-body .lead{font-size:21px}.modal-nav{margin:0 12px 12px}.modal-nav button{font-size:11px;padding:10px 12px}.modal-body .eyebrow{font-size:9px}.equipment{max-width:none}}
@media(max-width:900px) and (max-height:740px){.intro{top:16%}.eyebrow{margin-bottom:15px}.invitation{font-size:20px;margin:20px 0 16px}.facts{margin-bottom:16px}.equipment{margin-top:10px}.hotspots{bottom:65px}.subtitle{margin-top:13px}.primary{padding:10px 18px}}
@media(max-width:600px) and (max-height:630px){header{padding:15px 6%}.brand-caption{display:none}.intro{top:100px}.intro .eyebrow{display:none}h1>span{font-size:23px}h1 em{font-size:12vw}.invitation{display:none}.subtitle{margin-top:12px}.facts{margin:19px 0 16px;gap:24px}.equipment{font-size:11px;max-width:245px}.hotspots{bottom:56px;gap:2px}.tag{font-size:12px}.point{width:26px;height:26px}.hotspot{padding:4px 0}.facts>div>span{font-size:11px}footer button{font-size:11px}}
@media(max-height:500px){header{padding:12px 4%}.brand-caption{display:none}.intro{top:80px;left:4%;width:60%}.intro .eyebrow,.invitation,.equipment{display:none}h1>span{font-size:21px;margin-bottom:5px}h1 em{font-size:7.5vw}.subtitle{font-size:14px;margin-top:12px}.facts{margin:15px 0;gap:22px}.facts>div{flex-direction:row;align-items:baseline;gap:5px}.facts strong{font-size:20px}.facts>div>span{font-size:10px}.primary{padding:8px 18px}.hotspots{left:68%;right:2%;top:88px;bottom:60px;display:flex;flex-direction:column;justify-content:space-around;gap:0}.hotspot{position:static;padding:3px}.tag small{display:none}.tag{font-size:12px;padding:4px 0}.point{width:27px;height:27px;font-size:18px}.top-right>span,footer p,.image-note{display:none}footer{padding:8px 4%}footer nav{margin-left:auto;width:auto;gap:22px}.modal-art{display:none}dialog[open]{display:flex}.modal-content{width:100%}.modal-top{padding:8px 22px}.modal-body{padding-top:6px}.modal-nav{margin-bottom:10px}.modal-body h2{font-size:34px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}.scene,.hotspot{transform:none!important}}
/* Third edition: editorial title, quiet beacons, concise information surfaces. */
header{justify-content:flex-end}.intro{top:50%;transform:translateY(-46%);width:48%;max-width:730px;pointer-events:auto}h1{font:400 clamp(46px,5.7vw,96px)/.98 Georgia,serif;letter-spacing:-3px}h1 em{display:inline;font:italic 400 1em/.98 Georgia,serif;letter-spacing:-3px}.subtitle{font:italic clamp(18px,1.7vw,27px)/1.4 Georgia,serif;color:var(--gold);margin:20px 0 0;letter-spacing:0}.rule{width:46px;height:1px;background:var(--gold);margin:24px 0}.invitation{font:17px/1.6 Georgia,serif;letter-spacing:0;color:#e8e5d9;margin:17px 0}.facts{display:flex;gap:25px;margin:24px 0}.facts>div{display:flex;flex-direction:column;gap:0;border-right:1px solid #f5eedf44;padding-right:25px}.facts>div:last-child{border:0;padding:0}.facts strong{font:36px/1 Georgia,serif;letter-spacing:0}.facts strong span{font:18px Georgia,serif}.facts>div>span{font-size:12px;margin-top:9px;color:#d6d9cc}.equipment{max-width:none}.point{position:relative;overflow:visible}.point::before,.point::after{content:'';position:absolute;inset:-5px;border:1px solid #ffffffb3;border-radius:50%;pointer-events:none;animation:quiet-pulse 6.8s ease-in-out infinite}.point::after{inset:-10px;border-color:#f2b13b40;animation-delay:.25s}.hotspot:nth-child(2) .point::before,.hotspot:nth-child(2) .point::after{animation-delay:1.2s}.hotspot:nth-child(3) .point::before,.hotspot:nth-child(3) .point::after{animation-delay:2.4s}.hotspot:nth-child(4) .point::before,.hotspot:nth-child(4) .point::after{animation-delay:3.6s}@keyframes quiet-pulse{0%,100%{opacity:.15;transform:scale(.96)}50%{opacity:.6;transform:scale(1.12)}}.motion-off .point::before,.motion-off .point::after{animation:none;opacity:.2}.hotspot:hover .point::before,.hotspot:hover .point::after{animation-play-state:paused}
dialog{width:90vw;max-width:1440px;height:86dvh;max-height:86dvh;background:linear-gradient(135deg,#17372dde,#102c24c9);backdrop-filter:blur(26px) saturate(.8);border:1px solid #c5d9cc42;border-radius:28px}dialog[open]{display:flex;grid-template-columns:none}dialog::backdrop{background:#06151050;backdrop-filter:blur(5px)}.modal-content{width:100%}.modal-top{padding:20px 30px 8px 5%;font-size:11px}.modal-body{padding:15px 5% 35px}.modal-body h2{font-size:clamp(32px,3.7vw,55px);margin-bottom:22px;letter-spacing:-1.7px}.modal-body .lead{max-width:800px;font-size:clamp(19px,1.8vw,25px);line-height:1.45;margin:0 0 26px}.modal-body p{font-weight:400}.modal-body h3{font-size:23px}.modal-nav{align-self:center;width:min(520px,90%);margin:0 0 20px}.modal-nav button{font-size:14px}.overview-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:36px 0;padding:28px 0;border-top:1px solid #ffffff28;border-bottom:1px solid #ffffff28}.overview-stats>div{display:flex;flex-direction:column;gap:12px;padding-right:20px}.overview-stats strong{font-size:42px;font-weight:400;letter-spacing:-1px}.overview-stats span{font-size:14px;color:#cbd9cf}.overview-bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:start;margin:0 0 15px}.overview-bottom p{margin:0;font-size:18px}.outcome{border-left:1px solid #f2b13b55;padding-left:25px}.outcome>span{display:block;color:var(--gold);font-size:11px;letter-spacing:1.4px;margin-bottom:7px}.topic-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin:34px 0 24px}.topic{padding:24px;border-radius:20px;background:#ffffff05;border:1px solid #ffffff20}.topic-number{font-size:14px;color:var(--gold)}.topic h3{margin:24px 0 14px}.topic p{margin:0;font-size:16px;line-height:1.65}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.location-grid .topic{padding:26px}.location-grid .topic h3{margin-top:15px}.modal-body .note{margin:25px 0;padding:20px 24px;max-width:880px;background:#ffffff09}.note p{margin:8px 0 0}.schedule-meta{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.schedule-meta p{margin:0;font-size:16px}.status-pill{display:inline-block;border:1px solid #f2b13b44;border-radius:24px;padding:10px 15px;font-size:13px;color:#e9d5ac;background:#cba96a09}.calendar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.calendar-day{border:1px solid #ffffff28;border-radius:18px;overflow:hidden;background:#ffffff05}.calendar-heading{padding:20px;background:#f2b13b0b;border-bottom:1px solid #ffffff22}.calendar-heading>span{font-size:10px;letter-spacing:2px;color:#e9d5ac}.calendar-heading>strong{display:block;font-size:44px;font-weight:300;letter-spacing:-2px;margin:4px 0 18px}.calendar-heading h3{font-size:19px;margin:0;letter-spacing:-.5px}.calendar-slot{padding:20px;min-height:135px}.calendar-slot+.calendar-slot{border-top:1px solid #ffffff1c}.calendar-slot>span{font-size:10px;letter-spacing:1px;color:var(--gold)}.calendar-slot p{font-size:15px;line-height:1.5;margin:12px 0 0}.teacher-bio{max-width:720px;margin-top:35px}.teacher-bio>p:not(.lead){font-size:20px;line-height:1.7}.teacher-bio .status-pill{margin-top:22px}.checklist{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;padding:0!important;max-width:820px;margin:30px 0}.checklist li{display:flex;align-items:center;gap:12px;font-size:18px}.checklist li::before{content:'✓';color:var(--gold);font-size:16px}.faq-list{max-width:980px}.faq-list summary{font-size:20px}.menu-grid{grid-template-columns:1fr 1fr;gap:14px;max-width:1000px}.menu-grid button{padding:23px}
@media(min-width:901px) and (max-height:750px){.intro{top:50%;transform:translateY(-43%)}h1{font-size:clamp(46px,5.3vw,76px)}.eyebrow{margin-bottom:15px}.subtitle{margin-top:12px}.rule{margin:15px 0}.invitation{margin:10px 0}.facts{margin:17px 0}.facts strong{font-size:30px}.calendar-slot{padding:16px;min-height:115px}.calendar-heading{padding:15px}.calendar-heading>strong{font-size:35px;margin-bottom:10px}.modal-body h2{font-size:40px}}
@media(max-width:1100px){.topic-grid{grid-template-columns:1fr 1fr}.calendar{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-slot{min-height:110px}.calendar-heading>strong{font-size:36px;margin-bottom:10px}}
@media(max-width:900px){.intro{width:80%;top:43%;transform:translateY(-46%)}h1{font-size:clamp(46px,8vw,72px)}h1 em{font-size:1em}.subtitle{font-size:21px}.invitation{font-size:17px}.facts{margin:22px 0}.facts>div{gap:0}.facts strong{font-size:30px}.rule{margin:18px 0}.overview-stats strong{font-size:34px}.overview-stats{gap:18px}.overview-bottom{grid-template-columns:1fr;gap:22px}.outcome{padding-left:20px}.schedule-meta{align-items:flex-start;flex-direction:column;gap:10px}dialog{width:94vw;height:90dvh;max-height:90dvh}.modal-body{padding-left:5%;padding-right:5%}}
@media(max-width:600px){.intro{top:105px;transform:none;width:90%}h1{font-size:clamp(43px,11.2vw,64px);letter-spacing:-2px}h1 em{letter-spacing:-2px}.subtitle{font-size:18px;margin-top:14px}.invitation{font-size:16px;margin:0}.facts{gap:19px;margin:20px 0}.facts>div{padding-right:19px}.facts strong{font-size:30px}.facts>div>span{font-size:11px}.equipment{font-size:12px}.modal-top{padding:13px 18px 5px}.modal-top>span{font-size:9px}.modal-body{padding:15px 22px 24px}.modal-body h2{font-size:34px;letter-spacing:-1.2px}.modal-body .eyebrow{font-size:10px}.modal-body .lead{font-size:19px}.overview-stats{grid-template-columns:1fr;gap:20px;margin:25px 0;padding:22px 0}.overview-stats>div{flex-direction:row;align-items:center;gap:18px;padding:0}.overview-stats strong{font-size:28px;min-width:94px}.overview-stats span{font-size:13px;max-width:150px}.overview-bottom p{font-size:16px}.topic-grid,.location-grid{grid-template-columns:1fr;gap:12px;margin-top:22px}.topic{padding:20px}.topic h3{margin:12px 0}.topic p{font-size:16px}.calendar{grid-template-columns:1fr;gap:18px}.calendar-day{display:grid;grid-template-columns:74px 1fr}.calendar-heading{grid-row:span 2;padding:16px 10px;border-right:1px solid #ffffff22;border-bottom:0;display:flex;flex-direction:column;align-items:center}.calendar-heading h3{font-size:12px;writing-mode:vertical-rl;margin-top:14px;letter-spacing:1px}.calendar-heading>strong{font-size:36px;margin:8px 0}.calendar-slot{padding:17px;min-height:0}.calendar-slot p{margin-top:7px;font-size:16px}.calendar-slot>span{font-size:11px}.modal-nav button{font-size:12px;padding:10px}.modal-nav{width:calc(100% - 24px);margin-bottom:12px}.checklist{grid-template-columns:1fr;gap:10px}.checklist li{font-size:16px}.menu-grid{grid-template-columns:1fr;gap:10px}.menu-grid button{padding:17px 20px}.faq-list summary{font-size:18px}.teacher-bio{margin-top:20px}.teacher-bio>p:not(.lead){font-size:18px}}
@media(max-width:900px) and (max-height:750px){.intro{top:90px;transform:none}.invitation,.rule{display:none}h1{font-size:clamp(40px,9vw,58px)}.facts{margin:16px 0}.equipment{margin-top:9px}.subtitle{margin-top:10px}}
@media(max-width:600px) and (max-height:630px){.intro{top:80px}.intro .eyebrow{display:none}.facts{gap:15px}.facts>div{padding-right:15px}.facts strong{font-size:26px}.equipment{max-width:245px;font-size:11px}}
@media(max-height:500px){.intro{top:75px;left:4%;width:53%;transform:none}.intro .eyebrow,.invitation,.rule,.equipment{display:none}h1{font-size:40px;letter-spacing:-1px}h1 em{font-size:1em;letter-spacing:-1px}.subtitle{font-size:16px;margin-top:8px}.facts{margin:12px 0;gap:18px}.facts>div{flex-direction:column;gap:0;padding-right:18px}.facts strong{font-size:24px}.facts>div>span{font-size:10px;margin-top:5px}.primary{padding:8px 18px}.modal-top{padding-top:8px}.modal-body{padding-top:6px}.calendar{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-day{display:block}.calendar-heading h3{writing-mode:horizontal-tb;font-size:17px}.calendar-heading{display:block}}
@media(prefers-reduced-motion:reduce){.point::before,.point::after{animation:none!important;opacity:.2}}
@media(max-width:600px){.calendar-day{display:block}.calendar-heading{display:flex;flex-direction:row;align-items:baseline;gap:10px;padding:14px 18px;border-right:0;border-bottom:1px solid #ffffff22}.calendar-heading>strong{font-size:30px;margin:0}.calendar-heading h3{writing-mode:horizontal-tb;font-size:17px;margin:0 0 0 auto;letter-spacing:-.3px}}
#modal-title:focus{outline:none}
/* A viewport-sized top-layer host lets VLibras remain visible and interactive.
   The visual panel retains its original dimensions and independent scrolling. */
#modal{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;inset:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;backdrop-filter:none;box-shadow:none;overflow:visible;animation:none;transform:none}
#modal[open]{display:flex;align-items:center;justify-content:center}
#modal>.modal-content{width:90vw;max-width:1440px;height:86dvh;max-height:86dvh;flex-shrink:0;border:1px solid #c5d9cc42;border-radius:28px;background:linear-gradient(135deg,#17372dde,#102c24c9);backdrop-filter:blur(26px) saturate(.8);box-shadow:0 32px 130px #0008;overflow:hidden;animation:arrive .4s cubic-bezier(.2,.7,.2,1)}
:root{--vlibras-btn-focus-visible-outline:2px solid #f4f4e9;--vlibras-btn-focus-visible-shadow:0 0 0 5px #17372d}
@media(max-width:900px){#modal>.modal-content{width:94vw;height:90dvh;max-height:90dvh}}
@media(prefers-reduced-motion:reduce){#modal>.modal-content{animation:none}}
/* Poster typography: locally hosted high-contrast Didone serif. */
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/bodoni-moda.ttf') format('truetype')}
.intro{width:48%;max-width:780px;top:50%;transform:translateY(-45%)}.title-lockup{container-type:inline-size;color:#f2f0e9;width:100%}.course-label{display:flex;align-items:center;gap:5cqw;font:400 3.25cqw/1.4 'Bodoni Moda',Georgia,serif;letter-spacing:.43em;margin:0 0 3.3cqw}.course-label::after{content:'';display:block;width:15cqw;height:1px;background:#f2f0e97a}.intro h1{font:400 13.3cqw/.99 'Bodoni Moda',Didot,serif;letter-spacing:-.065em;margin:0;text-transform:uppercase}.intro h1>span{display:block;font:inherit;letter-spacing:inherit;margin:0;white-space:nowrap}.intro .subtitle{font:400 4.25cqw/1.35 'Bodoni Moda',Georgia,serif;letter-spacing:.12em;color:#f2f0e9;white-space:nowrap;margin:1.6cqw 0 0}.course-place{font:400 3.5cqw/1.4 'Bodoni Moda',Georgia,serif;text-align:right;margin:2.8cqw 2cqw 0 0;letter-spacing:0}.intro .rule{margin:22px 0 17px}.intro .invitation{font-size:16px}.intro .facts{margin:22px 0;gap:26px}.intro .facts>div{padding-right:26px}.intro .facts strong{font-size:34px}.intro .facts strong span{font-size:20px}.intro>.primary{background:#f2b13b;color:#223125;box-shadow:0 4px 24px #f2b13b15}.intro>.primary:hover{background:#ffc45f;box-shadow:0 5px 25px #f2b13b25}.point{border-color:#f2b13bc9;color:#f5bc55;background:#41391f30;box-shadow:0 0 0 6px #f2b13b10}.point::before{border-color:#f2b13bb0;animation-duration:3.6s}.point::after{border-color:#ffffff99;animation-duration:3.6s}.hotspot:nth-child(2) .point::before,.hotspot:nth-child(2) .point::after{animation-delay:.6s}.hotspot:nth-child(3) .point::before,.hotspot:nth-child(3) .point::after{animation-delay:1.2s}.hotspot:nth-child(4) .point::before,.hotspot:nth-child(4) .point::after{animation-delay:1.8s}@keyframes quiet-pulse{0%,100%{opacity:.23;transform:scale(.98)}50%{opacity:.82;transform:scale(1.16)}}.hotspot:hover .point{background:#f2b13b;color:#233127}
@media(min-width:901px) and (max-height:750px){.intro{width:46%;transform:translateY(-43%)}.intro .rule{margin:13px 0}.intro .invitation{margin:9px 0;font-size:15px}.intro .facts{margin:15px 0}.intro .facts strong{font-size:28px}.course-place{margin-top:2cqw}.intro .equipment{margin-top:10px}}
@media(max-width:900px){.intro{width:76%;max-width:620px;top:44%;transform:translateY(-46%)}.intro .rule{margin:18px 0}.intro .facts{margin:20px 0}.course-label{font-size:3.3cqw}.course-place{font-size:3.8cqw}}
@media(max-width:600px){.intro{width:88%;top:105px;transform:none}.course-label{font-size:3.6cqw;letter-spacing:.36em;margin-bottom:4cqw;gap:4cqw}.intro h1{font-size:13.3cqw}.intro .subtitle{font-size:4.25cqw;letter-spacing:.11em}.course-place{font-size:4.2cqw;margin-top:3.7cqw}.intro .facts{gap:20px;margin:20px 0}.intro .facts>div{padding-right:20px}.intro .facts strong{font-size:30px}.intro .facts strong span{font-size:17px}.intro .invitation{font-size:16px}}
@media(max-width:900px) and (max-height:750px){.intro{top:85px;transform:none}.intro .invitation,.intro .rule{display:none}.intro .facts{margin:22px 0 16px}.intro .equipment{margin-top:10px}}
@media(max-width:600px) and (max-height:630px){.intro{top:70px}.intro .facts{margin:18px 0 13px;gap:19px}.intro .facts>div{padding-right:19px}.intro .facts strong{font-size:26px}.intro .equipment{font-size:11px}}
@media(max-height:500px){.intro{top:65px;width:49%;left:4%;transform:none}.course-label{font-size:2.8cqw;margin-bottom:1cqw}.intro h1{font-size:12cqw}.intro .subtitle{font-size:3.8cqw;margin-top:1cqw}.course-place{font-size:3.5cqw;margin-top:1cqw}.intro .facts{margin:12px 0;gap:18px}.intro .facts strong{font-size:23px}.intro .facts strong span{font-size:15px}.intro .facts>div{padding-right:18px}.intro .facts>div>span{font-size:10px}.intro .equipment{display:none}}
/* Match the poster's full-width title and subtitle without colliding serifs. */
.intro h1{font-size:14.6cqw;letter-spacing:-.025em}.intro .subtitle{font-size:4.8cqw;letter-spacing:.16em}.course-place{margin-right:2cqw}
@media(max-width:600px){.intro h1{font-size:14.6cqw}.intro .subtitle{font-size:4.8cqw;letter-spacing:.15em}}
@media(max-height:500px){.intro h1{font-size:12cqw}.intro .subtitle{font-size:3.9cqw;letter-spacing:.16em}}
/* Exact supplied poster pixels; scale the lockup as one undistorted asset.
   Reserve the former text footprint to keep surrounding controls in place. */
.title-lockup{position:relative;aspect-ratio:1 / .52538}
.poster-identity{display:block;width:100%;height:auto;max-width:100%;pointer-events:none;user-select:none}
.identity-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
@media(min-width:901px) and (max-height:750px){.title-lockup{aspect-ratio:1 / .51738}}
@media(max-width:900px){.title-lockup{aspect-ratio:1 / .53098}}
@media(max-width:600px){.title-lockup{aspect-ratio:1 / .55608}}
@media(max-height:500px){.title-lockup{aspect-ratio:1 / .38795}.poster-identity{width:78.6%}}

/* Real-text poster lockup: one fluid composition, confined to the doorway. */
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/bodoni-moda-500.ttf') format('truetype')}
@font-face{font-family:'Bodoni Moda';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/bodoni-moda-italic.ttf') format('truetype')}
.course-identity{width:min(34vw,100%);container-type:inline-size;color:#EFECE5;font-family:'Bodoni Moda','Bodoni 72',Didot,'Libre Bodoni','Bodoni MT',serif;white-space:nowrap}
.course-identity p{padding:0;margin:0}
.course-identity .course-eyebrow{font:400 5.1cqw/1 'Bodoni Moda','Bodoni 72',Didot,'Libre Bodoni','Bodoni MT',serif;letter-spacing:.32em;text-transform:lowercase;margin:0 0 2.3cqw}
.intro .course-title{font:500 17.5cqw/1 'Bodoni Moda','Bodoni 72',Didot,'Libre Bodoni','Bodoni MT',serif;letter-spacing:-.055em;transform:scaleX(.89);transform-origin:left center;text-transform:uppercase;margin:0;width:109.89%;color:inherit}
.intro .course-title>span{display:block;font:inherit;letter-spacing:inherit;margin:0;white-space:nowrap}
.course-identity .course-subtitle{font:italic 400 7.8cqw/1 'Bodoni Moda','Bodoni 72',Didot,'Libre Bodoni','Bodoni MT',serif;letter-spacing:.015em;margin:1.8cqw 0 0}
.course-identity .course-location{font:400 4.6cqw/1 'Bodoni Moda','Bodoni 72',Didot,'Libre Bodoni','Bodoni MT',serif;letter-spacing:.14em;text-align:right;margin:6cqw 0 0}
@media(max-width:900px){.course-identity{width:min(34vw,100%)}}
@media(max-width:600px){.course-identity{width:100%}}
@media(max-height:500px){.course-identity{width:min(32vw,100%)}}
@media(min-width:901px) and (max-height:750px){
 .course-identity{width:min(34vw,57dvh,100%)}
 .title-lockup{aspect-ratio:auto;height:min(23.8vw,40dvh)}
}

/* Clear course facts and individually responsive beacons. */
.intro .facts{margin:18px 0 26px;gap:32px}
.intro .facts>div{padding-right:32px}
.intro .facts strong{font-size:clamp(34px,2.7vw,42px);line-height:1}
.intro .facts strong span{font-size:.72em;margin-left:1px}
.intro .facts>div>span{font-size:14px;margin-top:9px;color:#e3e6da}
.hotspot{transform:none}
.point{translate:var(--hx,0px) var(--hy,0px);transition:background .25s,transform .35s}
.motion-off .point{translate:none}
@media(max-width:600px){.intro .facts{gap:23px;margin:18px 0 25px}.intro .facts>div{padding-right:23px}.intro .facts strong{font-size:34px}.intro .facts>div>span{font-size:13px}}
@media(max-height:500px){.intro .facts{margin:14px 0 20px;gap:22px}.intro .facts>div{padding-right:22px}.intro .facts strong{font-size:28px}.intro .facts>div>span{font-size:12px;margin-top:7px}}
@media(prefers-reduced-motion:reduce){.point{translate:none!important}}
@media(min-width:601px) and (min-height:501px){.intro{top:17dvh;transform:none}}
.intro>.rule{display:block}
@media(max-height:500px){.intro{top:55px}.intro>.rule{margin:8px 0}.intro .facts{margin:8px 0 14px}}

/* Scene annotations travel and drag as single units. */
.hotspot{translate:var(--hx,0px) var(--hy,0px);user-select:none}
.point,.motion-off .point{translate:none}
.tag{font-size:16px}.tag small{font-size:10px;letter-spacing:1.35px}
.draggable{cursor:grab}.draggable:active,.draggable.dragging{cursor:grabbing}
.draggable.dragging .point{transform:none;background:#f2b13b;color:#233127}
.draggable.dragging .point::before,.draggable.dragging .point::after{animation-play-state:paused}
@media(max-width:900px){.hotspot{translate:none}.draggable{cursor:pointer}.tag{font-size:15px}}
@media(max-height:500px){.tag{font-size:14px}}

/* Audio reading stays next to the official Libras access button, including modals. */
#audio-access-root{position:fixed;right:10px;top:calc(50vh + 30px);transition:top .5s ease;z-index:2147483640;color:#fff;font:14px/1.45 'Helvetica Neue',Helvetica,Arial,sans-serif}
#audio-toggle{display:grid;place-items:center;width:40px;height:40px;border-radius:8px;padding:0;background:#2f80ed;color:#fff;position:relative;box-shadow:0 2px 10px #0002}
#audio-toggle:hover{background:#438ff3}
#audio-toggle svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#audio-toggle svg path:first-child{fill:currentColor;stroke:none}
#audio-toggle[aria-expanded=true]{background:#2468c9}
.audio-tooltip{position:absolute;right:49px;padding:9px 13px;border-radius:8px;background:#1351b4;color:white;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;font-size:13px}
#audio-toggle:hover .audio-tooltip,#audio-toggle:focus-visible .audio-tooltip{opacity:1;visibility:visible}
#audio-controls{position:absolute;right:50px;top:0;width:min(265px,calc(100vw - 76px));padding:15px 17px;border:1px solid #ffffff32;border-radius:15px;background:#12332ff2;backdrop-filter:blur(20px);box-shadow:0 10px 40px #0005;color:#f4f4e9}
#audio-controls[hidden]{display:none}
.audio-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.audio-heading strong{font-size:14px;font-weight:500}
#audio-close{font-size:24px;line-height:1;padding:3px 6px}
#audio-status{font-size:13px;line-height:1.5;color:#d9e3db;margin:10px 0 15px}
.audio-actions{display:flex;gap:8px}.audio-actions button{border-radius:20px;background:#ffffff12;padding:8px 14px;font-size:13px;border:1px solid #ffffff25}.audio-actions button:hover{background:#ffffff26}.audio-actions button:disabled{opacity:.45;cursor:default}
@media(max-height:450px){#audio-controls{top:auto;bottom:0}}

/* Six equal information points and a compact scene-motion switch. */
.guide{left:76%;top:39%}.conversation{left:75%;top:56%}
.hotspot:nth-child(5) .point::before,.hotspot:nth-child(5) .point::after{animation-delay:2.4s}
.hotspot:nth-child(6) .point::before,.hotspot:nth-child(6) .point::after{animation-delay:3s}
.hotspot-description{position:absolute;top:calc(100% + 3px);left:65px;width:235px;padding:10px 13px;border:1px solid #f2b13b30;border-radius:12px;background:#102c25eF;backdrop-filter:blur(12px);color:#eceede;font-size:13px;line-height:1.5;font-weight:400;opacity:0;visibility:hidden;pointer-events:none;translate:0 -4px;transition:opacity .2s,translate .2s,visibility .2s;z-index:3}
.hotspot:hover,.hotspot:focus-visible{z-index:4}
.hotspot:hover .hotspot-description,.hotspot:focus-visible .hotspot-description{opacity:1;visibility:visible;translate:0 0}
.hotspot.dragging .hotspot-description{opacity:0;visibility:hidden}
.motion-control{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:12px;color:#d9e2d6}
#motion{display:inline-flex;align-items:center;gap:9px;padding:7px 0;font-size:12px;border-radius:20px}
.switch-track{display:block;width:36px;height:21px;border:1px solid #f2b13b77;background:#f2b13b40;border-radius:20px;padding:3px;transition:background .2s,border-color .2s}
.switch-thumb{display:block;width:13px;height:13px;border-radius:50%;background:#f2b13b;transform:translateX(15px);transition:transform .2s,background .2s}
#motion[aria-checked=false] .switch-track{background:#ffffff0b;border-color:#ffffff40}
#motion[aria-checked=false] .switch-thumb{transform:translateX(0);background:#b6c7bb}
.motion-state{min-width:57px;text-align:left}
@media(min-width:901px) and (max-width:1100px){.guide{left:66%;top:39%}.conversation{left:72%;top:56%}.hotspot-description{left:12px;width:205px}}
@media(max-width:900px){.hotspots{grid-template-columns:1fr 1fr;gap:6px 14px}.hotspot{min-height:40px}.hotspot-description{display:none}.motion-control{margin:0 0 0 auto}.image-note{display:none}}
@media(max-width:600px){.hotspots{gap:5px 8px;bottom:66px}.hotspot{padding:4px 0;gap:8px}.tag{font-size:14px}.motion-control{margin:0 auto;gap:10px;font-size:12px}footer{justify-content:center}.motion-state{min-width:54px}}
@media(max-width:600px) and (max-height:750px){.intro{top:76px}.intro .facts{margin:12px 0 19px}.intro>.rule{margin:10px 0}.hotspots{bottom:58px;gap:3px 8px}.hotspot{min-height:38px}.tag{font-size:13px}}
@media(max-height:500px){.hotspots{top:65px;bottom:52px}.hotspot{min-height:0;padding:3px 0}.hotspot-description{display:none}.tag{font-size:13px}.motion-control{margin-left:auto;margin-right:0}.intro{top:55px}}
@media(max-width:600px) and (max-height:630px){
 .intro{top:64px}.course-identity{width:min(100%,44dvh)}.title-lockup{aspect-ratio:auto}
 .intro .facts strong{font-size:28px}.intro .facts>div>span{font-size:12px;margin-top:7px}
 .intro .facts{margin:10px 0 17px}.intro>.rule{margin:9px 0}
}

/* Sunflower and woven-chair amber: warm accents and a single course-facts row. */
:root{--gold:#f2b13b}
.course-identity .course-eyebrow,.course-identity .course-subtitle{color:var(--gold)}
.intro .facts{display:grid;grid-template-columns:1.05fr .82fr .72fr 1.45fr;width:min(100%,37vw);gap:clamp(10px,1vw,16px);align-items:start}
.intro .facts>div{padding-right:clamp(8px,.8vw,13px);min-width:0;white-space:nowrap}
.intro .facts>div:last-child{padding-right:0}
.intro .facts .course-territory strong{font:400 clamp(20px,1.8vw,28px)/1.25 'Bodoni Moda','Bodoni 72',Didot,serif;margin-top:3px}
.intro .facts .course-territory>span{margin-top:9px}
@media(max-width:900px){.intro .facts{width:min(100%,540px)}}
@media(max-width:600px){
 .intro .facts{width:100%;gap:9px;grid-template-columns:1fr .8fr .75fr 1.45fr}
 .intro .facts>div{padding-right:9px}.intro .facts strong{font-size:28px}
 .intro .facts>div>span{font-size:12px;margin-top:8px}
 .intro .facts .course-territory strong{font-size:19px;margin-top:2px;line-height:1.25}
 .intro .facts .course-territory>span{font-size:11px;margin-top:8px}
}
@media(max-height:500px){.intro .facts{width:100%;gap:10px}.intro .facts>div{padding-right:10px}.intro .facts strong{font-size:26px}.intro .facts .course-territory strong{font-size:19px;margin-top:1px}.intro .facts .course-territory>span{font-size:11px;margin-top:7px}}
/* The location now belongs to the facts; close its former space in the title. */
.title-lockup{aspect-ratio:auto;height:auto}

.intro .facts .course-territory strong{font-size:clamp(19px,1.65vw,26px);margin-top:5px}
@media(max-width:600px){.intro .facts .course-territory strong{font-size:16px;margin-top:5px}}
@media(max-height:500px){.intro .facts .course-territory strong{font-size:16px;margin-top:5px}}

/* Editorial invitation: a single, clear action in the title's serif family. */
.intro>.primary{font:500 clamp(19px,1.5vw,23px)/1.2 'Bodoni Moda','Bodoni 72',Didot,serif;letter-spacing:.015em;padding:16px 30px;min-width:205px;justify-content:center;gap:0}
.intro>.rule{margin:clamp(28px,2.3vw,36px) 0 20px}
@media(max-width:600px){.intro>.rule{margin:17px 0 12px}.intro>.primary{font-size:20px;padding:14px 27px;min-width:195px}}
@media(max-width:600px) and (max-height:630px){.intro>.rule{margin:13px 0 10px}.intro>.primary{font-size:19px;padding:12px 26px;min-width:185px}}
@media(max-height:500px){.intro>.rule{margin:10px 0 8px}.intro>.primary{font-size:19px;padding:10px 25px;min-width:180px}}

/* Institutional credits share the title's left edge and visual width. */
.institutional-logos{position:absolute;left:6%;bottom:7dvh;width:27.2vw;pointer-events:none}
.institutional-logos img{display:block;width:107.08%;height:auto;max-width:none;margin-left:-4.46%}
@media(max-width:900px) and (min-height:501px){.institutional-logos{width:70.4%;bottom:214px}}
@media(max-width:600px) and (max-height:750px) and (min-height:501px){.institutional-logos{bottom:200px}}
@media(max-height:500px){.institutional-logos{left:4%;width:25.6vw;bottom:20px}}
@media(min-width:901px) and (max-height:750px){.institutional-logos{width:min(27.2vw,45.6dvh);bottom:3dvh}}
/* Compact facts with centered pairs and equal space at each divider. */
.intro .facts{display:flex;width:max-content;max-width:100%;gap:0;align-items:stretch}
.intro .facts>div{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 14px;gap:0;min-width:0}
.intro .facts>div:first-child{padding-left:0}
.intro .facts>div:last-child{padding-left:14px;padding-right:0}
.intro .facts strong{font-size:clamp(27px,2.1vw,32px);letter-spacing:-.025em;line-height:1}
.intro .facts>div>span{font-size:12px;margin-top:7px}
.intro .facts .course-territory strong{font:400 clamp(16px,1.3vw,19px)/1.2 'Bodoni Moda','Bodoni 72',Didot,serif;margin-top:0}
.intro>.primary{font:500 16px/1.3 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:0}
@media(max-width:600px){.intro .facts>div{padding:0 10px}.intro .facts>div:last-child{padding-left:10px}.intro .facts strong{font-size:26px}.intro .facts>div>span{font-size:11px}.intro .facts .course-territory strong{font-size:15px}.intro>.primary{font-size:15px}}
@media(max-height:500px){.intro .facts strong{font-size:25px}.intro .facts>div>span{font-size:11px}.intro .facts .course-territory strong{font-size:15px}.intro>.primary{font-size:15px}}
/* True bold weight and more breathing room between the title's letters. */
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/bodoni-moda-700.ttf') format('truetype')}
.intro .course-title{font-weight:700;font-size:15.5cqw;letter-spacing:-.02em}
/* Shadows follow the glyphs; there is no background surface behind the text. */
.intro .course-title{text-shadow:0 0 20px rgba(0,0,0,.42),0 0 40px rgba(0,0,0,.3);color:#f8f6ef}
.course-identity .course-eyebrow,.course-identity .course-subtitle{text-shadow:0 0 14px rgba(0,0,0,.32),0 0 28px rgba(0,0,0,.22)}
.course-identity .course-subtitle{text-shadow:0 0 20px rgba(0,0,0,.42),0 0 40px rgba(0,0,0,.3)}

/* Smaller centers, three full-size waves, independent rhythms for every link. */
.point{--core:34px;--wave-one:44px;--wave-two:54px;--wave-three:64px;width:var(--core);height:var(--core);font-size:19px;box-shadow:none}
.point::before,.point::after{content:none}
.point .plus{line-height:1}
.ripple{position:absolute;left:50%;top:50%;translate:-50% -50%;border:1px solid #ffffffb3;border-radius:50%;pointer-events:none;animation:quiet-pulse var(--pulse-duration) ease-in-out infinite;animation-delay:var(--pulse-start)}
.ripple-one{width:var(--wave-one);height:var(--wave-one);animation-delay:var(--pulse-start)}
.ripple-two{width:var(--wave-two);height:var(--wave-two);animation-delay:var(--pulse-start);border-color:#ffffff99}
.ripple-three{width:var(--wave-three);height:var(--wave-three);border-color:#ffffff80}
.memories{--pulse-duration:3.6s;--pulse-start:0s}
.clock{--pulse-duration:3.6s;--pulse-start:-.6s}
.table{--pulse-duration:3.6s;--pulse-start:-1.2s}
.door{--pulse-duration:3.6s;--pulse-start:-1.8s}
.guide{--pulse-duration:3.6s;--pulse-start:-2.4s}
.conversation{--pulse-duration:3.6s;--pulse-start:-3s}
.hotspot:hover .ripple,.hotspot:focus-visible .ripple,.draggable.dragging .ripple{animation-play-state:paused}
.motion-off .ripple{animation:none;opacity:.2}
.tag{text-transform:none;letter-spacing:0}
@media(max-width:900px){.point{--core:28px;--wave-one:36px;--wave-two:46px;--wave-three:56px;font-size:17px}}
@media(max-width:600px){.point{--core:24px;--wave-one:30px;--wave-two:40px;--wave-three:50px;font-size:15px}}
@media(max-width:600px) and (max-height:630px){.point{--core:20px;--wave-one:26px;--wave-two:36px;--wave-three:46px;font-size:13px}}
@media(max-height:500px){.point{--core:21px;--wave-one:27px;--wave-two:37px;--wave-three:47px;font-size:14px}}
/* Keep the unchanged outer waves clear of the shorter labels. */
.hotspot{gap:22px}
@media(max-width:900px){.hotspot{gap:20px}}
@media(max-width:600px){.hotspot{gap:18px}}
@media(max-height:500px){.hotspot{gap:18px}}
/* Give the location a little more presence within the compact facts row. */
.intro .facts .course-territory strong{font-size:clamp(18px,1.5vw,22px)}
@media(max-width:600px){.intro .facts .course-territory strong{font-size:17px}}
@media(max-height:500px){.intro .facts .course-territory strong{font-size:17px}}
/* Course registration keeps the existing dialog's scroll and scene visible. */
.registration-intro{max-width:640px;font-size:15px;line-height:1.65;color:#eee9da;margin:12px 0 20px}
.registration-caption{font-size:14px;color:var(--gold,#f2b13b);margin:8px 0 18px}
#course-registration{max-width:900px}.registration-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}.registration-wide{grid-column:1/-1}
.registration-field{min-width:0;border:0;padding:0;margin:0}.registration-field>label,.registration-field>legend{display:block;font:500 15px/1.5 'Helvetica Neue',Helvetica,Arial,sans-serif;color:#f5f1e7;margin-bottom:7px}
.registration-field input:not([type=checkbox]),.registration-field textarea,.registration-field select{display:block;width:100%;box-sizing:border-box;border:1px solid #d7e0cb66;border-radius:12px;padding:12px 14px;background:#09271dda;color:#fffdf3;font:400 16px/1.5 'Helvetica Neue',Helvetica,Arial,sans-serif;outline-offset:3px}
.registration-field textarea{resize:vertical;min-height:95px}.registration-field input::placeholder{color:#e3e5d6a6}.registration-field input:focus,.registration-field textarea:focus,.registration-field select:focus{outline:2px solid #f2b13b;border-color:#f2b13b}
.field-help{color:#dfdfd1;font:400 13px/1.55 'Helvetica Neue',Helvetica,Arial,sans-serif;margin:4px 0 10px}.registration-options{display:flex;flex-direction:column;gap:4px}.registration-options label,.registration-consent label{font:400 14px/1.6 'Helvetica Neue',Helvetica,Arial,sans-serif;color:#f3efe3}.registration-consent{margin:24px 0 10px;max-width:760px}.registration-consent label{display:flex;align-items:flex-start;gap:10px}.registration-consent input,.registration-options input{width:18px;height:18px;flex:none;accent-color:#f2b13b;margin-top:3px}.registration-consent a{display:inline-block;color:#ffc465;margin:9px 0 0 28px;text-underline-offset:3px}.registration-feedback{font-size:14px;line-height:1.6;color:#ffd08c;min-height:1.5em}.registration-submit{font:500 16px/1.4 'Helvetica Neue',Helvetica,Arial,sans-serif;margin-top:4px}.registration-submit:disabled{opacity:.6;cursor:wait}.registration-success{max-width:640px;padding:22px 0;outline:none}.registration-success>span{display:grid;place-items:center;width:44px;height:44px;border:1px solid #f2b13b;border-radius:50%;color:#f2b13b;font-size:24px}.registration-success h3{font-size:30px;margin:18px 0 10px}.registration-success p{font-size:17px;line-height:1.7}
@media(max-width:600px){.registration-grid{grid-template-columns:1fr;gap:16px}.registration-intro{font-size:14px}.registration-field>label,.registration-field>legend{font-size:14px}}

/* Multiple-choice disclosures follow the same vertical reading flow. */
.modal-body .registration-multiselect{padding:0;border:1px solid #d7e0cb66;border-radius:12px;background:#09271dda;overflow:hidden}
.registration-multiselect>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;cursor:pointer;list-style:none;font:400 16px/1.5 'Helvetica Neue',Helvetica,Arial,sans-serif;color:#fffdf3}
.registration-multiselect>summary::-webkit-details-marker{display:none}.registration-multiselect>summary:focus-visible{outline:2px solid #f2b13b;outline-offset:-3px;border-radius:12px}
.registration-multiselect .selection-label{min-width:0;overflow-wrap:anywhere}.selection-arrow{flex:none;color:#f2b13b;font-size:22px;line-height:1;transition:transform .18s}.registration-multiselect[open] .selection-arrow{transform:rotate(180deg)}
.registration-multiselect[open]>summary{border-bottom:1px solid #d7e0cb33}.registration-multiselect .registration-options{padding:8px}
.registration-options label{display:flex;align-items:flex-start;gap:10px;padding:9px 7px;border-radius:7px;cursor:pointer;overflow-wrap:anywhere}.registration-options label:hover{background:#ffffff0a}.registration-options input:focus-visible{outline:2px solid #f2b13b;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.selection-arrow{transition:none}}

#modal[data-panel="enroll"] .modal-nav{display:none}#modal[data-panel="enroll"] .modal-body{padding-bottom:32px}.modal-nav[hidden],.modal-top>span[hidden]{display:none}.modal-nav{flex-wrap:nowrap;width:calc(100% - 48px);max-width:1100px;gap:4px;justify-content:center;overflow-x:auto;scrollbar-width:thin}.modal-nav button{white-space:nowrap;flex:0 0 auto;font-size:clamp(12px,1vw,14px);padding:11px clamp(9px,1vw,14px)}.course-purpose{max-width:740px;font-size:16px;line-height:1.7}.registration-intro{margin-bottom:24px}

.gate-intro{font-size:15px;line-height:1.6;margin:0 0 24px;color:#eee9da}#registration-gate{max-width:900px}#registration-gate .registration-field .field-help{font-size:15px;line-height:1.7;margin:8px 0 14px}#registration-gate .registration-field>label{font-size:18px}#registration-gate .registration-grid{gap:30px}.registration-intro[hidden]{display:none}
#modal .modal-top{justify-content:flex-end}
#modal .modal-body .eyebrow{font-size:20px}
@media(max-width:900px){.modal-nav{justify-content:flex-start;width:calc(100% - 24px)}}

/* Compact circular navigation keeps the reading area clear. */
#modal .modal-top{gap:24px;align-items:center}
.modal-pager{display:flex;align-items:center;gap:12px;margin-left:auto}
.modal-pager[hidden]{display:none}
#panel-label{min-width:145px;text-align:center;font:500 14px/1.3 'Helvetica Neue',Helvetica,Arial,sans-serif;color:#f5f1e7}
.modal-pager button{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:var(--gold);font-size:25px;line-height:1;transition:background .18s,transform .18s}
.modal-pager button:hover{background:transparent;transform:scale(1.08)}
.modal-pager button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(max-width:600px){#modal .modal-top{gap:14px}.modal-pager{gap:5px}#panel-label{min-width:120px;font-size:13px}.modal-pager button{width:34px;height:34px;font-size:23px}}
@media(prefers-reduced-motion:reduce){.modal-pager button{transition:none}}

#modal .modal-pager button{background:transparent;border:0;border-radius:0;box-shadow:none}
.modal-pager svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Biography uses the shared content margins rather than a narrow fixed column. */
#modal[data-panel="teacher"] .teacher-bio{width:100%;max-width:none}
#modal[data-panel="teacher"] .teacher-bio>p{text-align:justify;text-align-last:left;hyphens:auto;overflow-wrap:break-word;margin:0 0 1.35em}

/* Registration heading shares the section labels' visual hierarchy. */
#modal[data-panel="enroll"] #modal-title{font:400 20px/1.4 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:1.8px;text-transform:uppercase;color:var(--gold);margin:4px 0 22px}
.registration-field select{appearance:none;-webkit-appearance:none;padding-right:48px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f2b13b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 9 7 7 7-7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 17px center;background-size:20px 20px}
.registration-multiselect>summary{padding-right:17px}
.registration-multiselect .selection-arrow{display:block;width:20px;height:20px;flex:none;font-size:0;border:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f2b13b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 9 7 7 7-7'/%3E%3C/svg%3E") center/20px 20px no-repeat}

/* Slightly stronger floating labels, with compact viewport adjustments. */
.tag{font-size:18px}
@media(max-width:900px){.tag{font-size:17px}}
@media(max-width:600px){.tag{font-size:16px}}
@media(max-width:600px) and (max-height:750px){.tag{font-size:15px}}
@media(max-height:500px){.tag{font-size:15px}}

.course-description{font-size:17px;line-height:1.7;max-width:1000px}.course-description p{margin:0 0 18px}
.learning-grid ul{margin:0;padding-left:19px;font-size:16px;line-height:1.65}.learning-grid li+li{margin-top:9px}.learning-grid li::marker{color:var(--gold)}
.course-result{margin:22px 0}.course-result>span{color:var(--gold);font-size:12px;letter-spacing:1.5px}.course-result p{font-size:19px;line-height:1.5;margin:9px 0}.course-purpose{margin-bottom:25px}
@media(max-width:600px){.course-description{font-size:16px}.learning-grid ul{font-size:15px}}

/* A shared label width keeps the chevrons close and stable across sections. */
#modal .modal-pager{gap:2px}
.panel-label-slot{display:grid;align-items:center;justify-items:center}
#modal #panel-label,.panel-label-measure{grid-area:1/1;min-width:0;font:400 14px/1.4 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:1.8px;text-transform:uppercase;white-space:nowrap}
.panel-label-measure{visibility:hidden;pointer-events:none}
#modal .modal-pager button{width:34px}
@media(max-width:600px){#modal .modal-top{gap:8px}#modal .modal-pager{gap:0}#modal .modal-pager button{width:30px}}

#modal .modal-pager{gap:0}
#modal .modal-pager button{width:28px}

/* Identical arrow columns and a centered label sized by all section names. */
#modal .modal-pager{display:grid;grid-template-columns:28px max-content 28px;gap:4px}
.panel-label-slot{position:relative;justify-items:stretch}
.panel-label-measure{padding:0 2px}
#modal #panel-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;text-indent:0;width:100%;padding:0}

#modal .modal-pager[hidden]{display:none}

#modal #panel-label,.panel-label-measure{letter-spacing:1px}

/* One shared rule makes the registration and section headings identical. */
#modal .modal-body .eyebrow,#modal[data-panel="enroll"] #modal-title{font:400 20px/1.4 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:1.8px;text-transform:uppercase;color:var(--gold);margin:4px 0 22px}

/* Editorial programme echoes the home page's serif type and amber details. */
#modal[data-panel="schedule"] #modal-title{font:400 clamp(34px,3.8vw,58px)/1.12 'Bodoni Moda',Didot,serif;letter-spacing:-.025em;max-width:1000px}
.program-deck{font:italic clamp(18px,1.6vw,23px)/1.5 'Bodoni Moda',Didot,serif;color:var(--gold);margin:0 0 30px;max-width:820px}
.program-entry{display:grid;grid-template-columns:100px 1fr 1.15fr 1.15fr;gap:26px;align-items:center;border-top:1px solid #f5f1e735;padding:23px 0}
.program-date{display:flex;flex-direction:column;align-items:flex-start}.program-date strong{font:400 56px/1 'Bodoni Moda',Didot,serif;color:var(--gold)}.program-date>span{font-size:9px;letter-spacing:1.5px;margin-top:7px}
.program-chapter>span{font-size:9px;letter-spacing:1.6px;color:#e4e7dd88}.program-chapter h3{font:400 clamp(24px,2vw,32px)/1.2 'Bodoni Moda',Didot,serif;margin:8px 0 0}
.program-session>span{font-size:10px;letter-spacing:1px;color:var(--gold)}.program-session p{font-size:16px;line-height:1.55;margin:10px 0 0;max-width:330px}
.program-colophon{display:flex;gap:28px;flex-wrap:wrap;border-top:1px solid #f5f1e735;padding-top:20px;font-size:12px;color:#e6e8dcaa}
@media(max-width:900px){.program-entry{grid-template-columns:75px 1fr 1fr;gap:20px}.program-chapter{grid-column:2/4}.program-date{grid-row:span 2}.program-session p{font-size:15px}}
@media(max-width:600px){.program-entry{grid-template-columns:62px 1fr;gap:18px;padding:22px 0}.program-chapter{grid-column:2}.program-date{grid-row:span 3}.program-date strong{font-size:44px}.program-session{grid-column:2}.program-chapter h3{font-size:27px}.program-session p{margin-top:6px}.program-colophon{gap:12px 20px}.program-deck{margin-bottom:24px}}

/* About the course shares the programme's editorial rhythm. */
#modal[data-panel="about"] #modal-title{font:400 clamp(34px,3.8vw,58px)/1.12 'Bodoni Moda',Didot,serif;letter-spacing:-.025em;max-width:1000px}
#modal .about-deck{font:italic clamp(19px,1.6vw,23px)/1.5 'Bodoni Moda',Didot,serif;color:var(--gold);max-width:920px;margin:0 0 30px}
.about-opening{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:34px}
#modal .about-opening p{font-size:17px;line-height:1.75;margin:0;max-width:none}
.about-entry{display:grid;grid-template-columns:100px 1fr 2.3fr;gap:26px;align-items:start;border-top:1px solid #f5f1e735;padding:27px 0}
.about-number{font:400 48px/1 'Bodoni Moda',Didot,serif;color:var(--gold)}
#modal .about-entry h3{font:400 clamp(25px,2vw,32px)/1.25 'Bodoni Moda',Didot,serif;margin:0}
#modal .about-entry p{font-size:17px;line-height:1.7;margin:0;max-width:none}
.about-colophon{display:flex;gap:50px;border-top:1px solid #f5f1e735;padding:26px 0}
.about-colophon>div{display:flex;align-items:center;gap:15px}
.about-colophon strong{font:400 36px/1 'Bodoni Moda',Didot,serif;color:var(--gold)}
.about-colophon span{font-size:14px;line-height:1.5;color:#e6e8dcbb}
#modal .about-purpose{font-size:16px;line-height:1.65;max-width:950px;margin:0 0 26px}
@media(max-width:900px){.about-opening{gap:28px}.about-entry{grid-template-columns:65px 1fr 1.7fr;gap:20px}.about-colophon{gap:25px;flex-wrap:wrap}}
@media(max-width:600px){.about-opening{grid-template-columns:1fr;gap:18px;margin-bottom:28px}.about-entry{grid-template-columns:48px 1fr;gap:14px;padding:24px 0}.about-number{font-size:38px;grid-row:span 2}.about-entry p{grid-column:2}#modal .about-opening p,#modal .about-entry p{font-size:16px}.about-colophon{gap:22px}.about-colophon>div{gap:12px}.about-colophon strong{font-size:32px}.about-colophon span{font-size:13px}}

/* Shared editorial language for the remaining information panels. */
#modal[data-panel="syllabus"] #modal-title,#modal[data-panel="place"] #modal-title,#modal[data-panel="teacher"] #modal-title,#modal[data-panel="faq"] #modal-title{font:400 clamp(34px,3.8vw,58px)/1.12 'Bodoni Moda',Didot,serif;letter-spacing:-.025em;max-width:1000px}
#modal[data-panel="syllabus"] .lead,#modal[data-panel="place"] .lead,#modal .registration-intro,#modal .gate-intro{font:italic clamp(19px,1.6vw,23px)/1.5 'Bodoni Moda',Didot,serif;color:var(--gold);max-width:920px;margin:0 0 30px}
.editorial-sequence{display:block;margin:32px 0}
#modal .editorial-sequence .topic{display:grid;grid-template-columns:100px 1fr 2.3fr;gap:26px;align-items:start;background:none;border:0;border-top:1px solid #f5f1e735;border-radius:0;padding:27px 0}
#modal .editorial-sequence .topic-number{font:400 48px/1 'Bodoni Moda',Didot,serif;color:var(--gold)}
#modal .editorial-sequence h3{font:400 clamp(25px,2vw,32px)/1.25 'Bodoni Moda',Didot,serif;margin:0}
#modal .editorial-sequence p,#modal .editorial-sequence ul{font-size:17px;line-height:1.7;margin:0;max-width:none}
#modal .editorial-sequence ul{padding-left:18px}
#modal[data-panel="syllabus"] .note,#modal[data-panel="place"] .note{background:none;border:0;border-top:1px solid #f5f1e735;border-radius:0;padding:25px 0;font-size:17px;line-height:1.7}
#modal[data-panel="syllabus"] .note strong,#modal[data-panel="place"] .note strong{display:inline-block;font:400 26px/1.3 'Bodoni Moda',Didot,serif;margin-bottom:12px;color:var(--gold)}
#modal .editorial-biography{max-width:1100px;margin-top:32px}
#modal .editorial-biography>p{font-size:18px;line-height:1.8;padding-bottom:28px;margin-bottom:28px;border-bottom:1px solid #f5f1e735}
#modal .editorial-biography>p:first-child{font-size:20px;color:#f4f4e9}
#modal .faq-list{margin-top:30px}
#modal .faq-list details{background:none;border:0;border-top:1px solid #f5f1e735;border-radius:0;padding:0;margin:0}
#modal .faq-list summary{display:grid;grid-template-columns:70px 1fr;gap:24px;align-items:center;font:400 clamp(24px,2vw,30px)/1.35 'Bodoni Moda',Didot,serif;padding:23px 0;list-style:none}
#modal .faq-list summary::-webkit-details-marker{display:none}
.faq-number{font:400 38px/1 'Bodoni Moda',Didot,serif;color:var(--gold)}
#modal .faq-list details[open] summary{color:var(--gold)}
#modal .faq-list details p{margin:0 0 25px 94px;font-size:17px;line-height:1.75;max-width:950px}
#modal[data-panel="enroll"] #registration-gate,#modal[data-panel="enroll"] #course-registration{max-width:1000px}
#modal[data-panel="enroll"] .registration-grid{gap:0}
#modal[data-panel="enroll"] .registration-field{border-top:1px solid #f5f1e735;padding:24px 0}
#modal[data-panel="enroll"] .registration-field>label,#modal[data-panel="enroll"] .registration-field>legend{font:400 23px/1.4 'Bodoni Moda',Didot,serif;margin-bottom:13px}
#modal[data-panel="enroll"] .registration-field .field-help{font-size:16px;line-height:1.7;margin:0 0 16px}
@media(max-width:900px){#modal .editorial-sequence .topic{grid-template-columns:65px 1fr 1.7fr;gap:20px}}
@media(max-width:600px){#modal .editorial-sequence .topic{grid-template-columns:48px 1fr;gap:14px;padding:24px 0}#modal .editorial-sequence .topic-number{font-size:38px;grid-row:span 2}#modal .editorial-sequence p,#modal .editorial-sequence ul{grid-column:2;font-size:16px}#modal .editorial-biography>p{font-size:16px;line-height:1.75}#modal .editorial-biography>p:first-child{font-size:18px}#modal .faq-list summary{grid-template-columns:40px 1fr;gap:14px;font-size:24px}.faq-number{font-size:32px}#modal .faq-list details p{margin-left:54px;font-size:16px}#modal[data-panel="enroll"] .registration-field>label,#modal[data-panel="enroll"] .registration-field>legend{font-size:21px}}
