@font-face{font-family:Bebas;src:url('assets/bebas-neue.woff') format('woff');font-weight:100 900;font-display:swap}
@font-face{font-family:Tilda;src:url('assets/tilda-sans.woff2') format('woff2');font-weight:250 1000;font-display:swap}

/* Shared rhythm: one content width, one spacing scale, three chapter surfaces. */
:root{
  --red:#cc222c;--black:#101010;--white:#fff;--paper:#f1f1ef;
  --muted:#aaa;--line:#383838;--ease:cubic-bezier(.2,.75,.2,1);
  --gutter:clamp(22px,4.45vw,80px);--page-edge:max(var(--gutter),calc((100vw - 1440px)/2));
  --section-space:clamp(72px,7.2vw,112px);--block-space:clamp(32px,4vw,64px);
  --header-height:76px;--heading-size:clamp(64px,7vw,108px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 24px)}
body{margin:0;background:var(--black);color:var(--white);font:17px/1.5 Tilda,Arial,sans-serif}
button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:Bebas,'Arial Narrow',sans-serif;font-weight:400;line-height:1;letter-spacing:-.012em}
h2{font-size:var(--heading-size)}h3{font-size:40px}em{color:var(--red);font-style:normal}p{max-width:57ch}
:where(button,a,input,select,summary,[tabindex]):focus-visible{outline:3px solid #f07479;outline-offset:5px}
::selection{background:var(--red);color:white}[hidden]{display:none!important}
.skip-link{position:fixed;top:-80px;left:20px;z-index:100;background:white;color:black;padding:14px}.skip-link:focus{top:10px}
.scroll-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;z-index:90;pointer-events:none}

/* Navigation stays available throughout the long teacher roster. */
.header{height:var(--header-height);padding:0 var(--page-edge);display:flex;align-items:center;justify-content:space-between;gap:28px;border-bottom:1px solid var(--line);background:#101010f5;position:sticky;top:0;z-index:40;backdrop-filter:blur(14px)}
.brand{display:block;flex-shrink:0;width:158px}.brand img{width:100%;height:auto}
.desktop-nav{display:flex;gap:28px;font-size:14px}.desktop-nav a{position:relative;padding:12px 0;color:#bbb;transition:color .2s}
.desktop-nav a:after{content:'';position:absolute;bottom:4px;left:0;width:100%;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.desktop-nav a:hover,.desktop-nav a[aria-current]{color:#fff}.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{transform:scaleX(1)}
.header-actions{display:flex;align-items:center;gap:18px}.header-cta{display:inline-flex;align-items:center;min-height:42px;border-bottom:1px solid #666;font-size:14px;white-space:nowrap;transition:border-color .2s}.header-cta:hover{border-color:var(--red)}
.menu-toggle{display:none;background:transparent;width:44px;height:44px;padding:10px}.menu-toggle span{display:block;width:24px;height:2px;background:white;margin:6px 0;transition:transform .3s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}
.mobile-menu{position:fixed;inset:var(--header-height) 0 auto;background:var(--black);z-index:39;padding:12px var(--gutter) 28px;border-bottom:2px solid var(--red);box-shadow:0 30px 50px #0008;max-height:calc(100dvh - var(--header-height));overflow:auto}
.mobile-menu a{display:flex;justify-content:space-between;align-items:center;font:36px/1.2 Bebas;padding:12px 0;border-bottom:1px solid var(--line)}.mobile-menu span{font:12px Tilda;color:var(--red)}

/* Common chapter anatomy. */
.section{position:relative;padding:var(--section-space) var(--page-edge)}
.light{background:var(--white);color:var(--black);--line:#d3d3d1;--muted:#6e6e6e}
.section-top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:var(--block-space);position:relative}
.section-top:after{content:'';position:absolute;bottom:-1px;left:0;width:48px;height:3px;background:var(--red)}
.chapter-label{display:flex;align-items:center;gap:20px}.chapter-number{font:38px/1 Bebas;color:var(--red)}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:.12em;line-height:1.5}.small-caption{font-size:12px;color:var(--muted)}
.section-heading,.about-intro,.hotel-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,29%);align-items:end;gap:var(--block-space);margin-bottom:var(--block-space)}
.section-note{font-size:17px;line-height:1.5;color:var(--muted);max-width:34ch;padding-bottom:4px}.section-note p{margin-top:20px}
.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid currentColor;padding:10px 0;background:none;font-size:14px;font-weight:600;transition:color .25s}.text-link:hover{color:var(--red)}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:58px;padding:17px 22px;font-size:15px;font-weight:600;border:1px solid transparent;transition:background .25s,transform .25s,color .25s;position:relative}
.button span{font-size:28px;line-height:1}.red{background:var(--red);color:#fff}.red:hover{background:#ad1821}.white{background:#fff;color:var(--black)}.white:hover{background:#e8e8e8}
@media(hover:hover){.button:hover{transform:translateY(-2px)}}

/* The opening poster: oversize type, one red event ticket and a moving frame. */
.hero-showcase{--hero-zoom:1.04;--hero-spread:2%;--hero-drift:0px;padding:28px var(--page-edge) 0;overflow:hidden}
.hero-kicker{display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.12em;font-weight:600;color:#bbb}.status-dot{display:inline-block;width:6px;height:6px;margin-right:8px;background:var(--red);border-radius:50%;box-shadow:0 0 0 4px #cc222c25}
.hero-heading{display:grid;grid-template-columns:minmax(0,1fr) 240px;align-items:end;gap:40px;margin:34px 0 34px}.hero-title-wrap>.eyebrow{font-size:10px;color:#aaa;margin-bottom:18px}
.hero-showcase h1{font-size:clamp(82px,8.7vw,140px);line-height:.92;letter-spacing:-.018em}
.hero-title-line{display:block;overflow:visible;padding:3px 0 5px}.hero-title-line>span{display:block;animation:hero-type-rise 1.1s var(--ease) both}.hero-title-accent{color:var(--red)}.hero-title-accent>span{animation-delay:.12s}
.hero-intro{padding-bottom:8px;animation:fade-up 1s var(--ease) both .35s}.hero-intro p{font-size:17px;color:#ccc}.hero-intro>a{display:inline-block;font-size:12px;color:#aaa;margin-top:22px;padding:8px 0;border-bottom:1px solid #484848}.hero-intro>a:hover{color:#fff}
.hero-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(285px,27%);background:#171717}
.hero-film{position:relative;min-width:0;overflow:hidden;aspect-ratio:1.95}
.hero-aperture{position:absolute;inset:0;overflow:hidden;clip-path:inset(0 var(--hero-spread));animation:hero-frame-open 1.4s var(--ease) both .1s}
.hero-shot{width:100%;height:100%;transform:translateY(var(--hero-drift)) scale(var(--hero-zoom));transform-origin:50% 45%}
.hero-shot img{width:100%;height:100%;object-fit:cover;object-position:center 28%;animation:hero-camera 16s ease-in-out infinite alternate;transform-origin:55% 40%}
.hero-film:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0006,transparent 22%,transparent 65%,#0009)}
.hero-film-top{position:absolute;z-index:1;left:26px;right:26px;top:22px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.15em;color:#fff9;pointer-events:none}
.hero-atmosphere{position:absolute;z-index:1;left:26px;bottom:24px;display:flex;align-items:center;gap:12px;font-size:12px}.play-small{border:1px solid #fffa;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;font-size:10px;padding-left:2px;transition:background .25s}.hero-atmosphere:hover .play-small{background:var(--red)}
.hero-event{background:var(--red);padding:28px;display:flex;flex-direction:column;position:relative;z-index:2}
.hero-event-top{font-size:10px;letter-spacing:.1em;border-bottom:1px solid #ffffff50;padding-bottom:22px}
.hero-event-date{margin:26px 0 22px;container-type:inline-size}.hero-event-date strong{display:block;font:28cqw/.95 Bebas;letter-spacing:-.02em;white-space:nowrap}.hero-event-date>span{display:block;font-size:11px;letter-spacing:.13em;margin-top:10px}
.hero-event-place{font-size:23px;line-height:1.3;margin-bottom:26px}.hero-event-place>span{display:block;font-size:14px;color:#fffd;margin-top:5px}.hero-event .button{margin-top:auto;min-height:56px;padding:15px 18px;font-size:13px;gap:12px;width:100%}
.hero-controls{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:20px}.hero-signature{font-size:9px;letter-spacing:.1em;color:#888}
.hero-showcase.is-outside .hero-shot img{animation-play-state:paused}
.ticker{overflow:hidden;background:var(--red);padding:14px 0 11px}.ticker-track{display:flex;width:max-content;animation:ticker var(--ticker-duration,30s) linear infinite}.ticker-group{display:flex;flex:0 0 auto}.ticker-unit{flex:0 0 auto;font:36px/1.1 Bebas;white-space:nowrap;display:flex;align-items:center;gap:32px;padding-right:32px}.ticker b{font:32px/1 Tilda;font-weight:400}

/* About: calm prose, panoramic photography, three readable principles. */
.about-intro{align-items:center}.about-intro .lead{font-size:16px;line-height:1.6;color:#727272;max-width:40ch}.about-intro .text-link{margin-top:22px}
.about-photo{position:relative;background:var(--black);color:white;overflow:hidden;--scene-progress:.5}
.about-photo-frame{overflow:hidden;aspect-ratio:4.9;clip-path:inset(0 calc((1 - var(--scene-progress)) * 2%))}
.about-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transform:scale(1.04) translateY(calc((var(--scene-progress) - .5) * 10px));transition:filter .6s}
.photo-caption{display:flex;justify-content:flex-end;padding:14px 20px;font-size:10px;letter-spacing:.1em;color:#aaa}
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:var(--block-space)}
.pillars article{position:relative;padding:0 30px 0 0;border-right:1px solid #d3d3d1}.pillars article:last-child{border:0}.pillar-number{font-size:11px;color:#888;display:block;margin-bottom:20px;letter-spacing:.06em}.pillars h3{font-size:52px;margin-bottom:14px}.pillars p{font-size:16px;color:#6e6e6e;max-width:29ch}

/* Teachers: a roster, with a pinned direction switch and consistent card rhythm. */
.teachers{border-top:1px solid #292929}
.season-label{color:#ddd;border:1px solid #555;padding:10px 12px;font-size:10px;letter-spacing:.09em;display:inline-block}
.teachers-toolbar{position:sticky;top:var(--header-height);z-index:10;background:#101010f5;backdrop-filter:blur(12px);border-bottom:1px solid #444;padding:8px 0 0;display:flex}
.tabs{display:flex;width:440px;max-width:100%}.tabs button{flex:1;background:none;color:#aaa;position:relative;text-align:left;font-size:22px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 28px 20px 0}.tabs button+button{padding-left:28px}.tabs button span{font-size:12px;color:#aaa}.tabs button[aria-selected=true]{color:white}.tabs button:after{content:'';height:3px;background:var(--red);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0);transform-origin:left;transition:transform .3s}.tabs button[aria-selected=true]:after{transform:scaleX(1)}
.teachers-meta{display:flex;justify-content:space-between;gap:20px;margin:22px 0;color:#aaa;font-size:12px}
.teacher-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 24px}
.teacher-card{background:#191919;min-width:0;transition:box-shadow .3s;position:relative}.teacher-card:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .4s}.teacher-card:hover:after{transform:scaleX(1)}
.teacher-portrait{aspect-ratio:4/4.7;position:relative;overflow:hidden;background:#222}.teacher-portrait>img{width:100%;height:100%;object-fit:cover;object-position:center 28%;filter:grayscale(1);transition:filter .5s,transform .8s var(--ease)}
@media(hover:hover){.teacher-card:hover .teacher-portrait>img{filter:grayscale(0);transform:scale(1.035)}}
.teacher-card-number{position:absolute;top:14px;left:14px;font-size:10px;letter-spacing:.08em;color:#fff;background:#101010ab;padding:5px 7px}.pair-photo-label{display:none}
.portrait-placeholder{display:grid;place-items:center;background:#222}.portrait-initials{font:100px/1 Bebas;color:#555}.portrait-note{position:absolute;left:16px;bottom:16px;font-size:10px;color:#aaa}
.teacher-card-info{padding:22px 20px}.teacher-dates{font-size:11px;color:#aaa;margin-bottom:12px;letter-spacing:.02em}.teacher-dates.limited-dates{color:#f58a90}.teacher-card h3{font-size:34px;line-height:1.04;min-height:71px}.teacher-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #383838;padding-top:16px;margin-top:18px}.teacher-card-bottom p{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px}.teacher-card-bottom strong{font-size:20px;font-weight:500;white-space:nowrap}.teacher-card-bottom p>span{font-size:11px;color:#aaa}
.teacher-book{display:grid;place-items:center;min-height:42px;padding:9px 12px;border:1px solid #555;font:12px/1.2 Tilda;text-align:center;white-space:nowrap;transition:background .25s,border-color .25s}.teacher-book:hover{background:var(--red);border-color:var(--red)}
.teacher-duo{grid-column:span 2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}.teacher-duo .teacher-portrait{grid-column:span 2;aspect-ratio:8/4.7}.teacher-duo .teacher-portrait>img{object-position:center 24%}.teacher-duo .teacher-card-info:last-child{border-left:1px solid #383838}
.teachers-bottom{margin-top:32px}.teachers-bottom p{font-size:12px;color:#aaa}

/* Schedule: a compact continuous timeline rather than another full-width table. */
.program-layout{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(40px,6vw,96px);align-items:start}
.program .section-heading{display:block;position:sticky;top:calc(var(--header-height) + 32px);margin:0}.program h2{font-size:clamp(58px,5.9vw,92px)}.program .section-note{margin-top:30px;max-width:34ch}
.program-bar{padding:0 0 24px;border-bottom:1px solid #222}.program-bar>div{display:flex;flex-direction:column;gap:7px}.program-bar strong{font-size:12px;letter-spacing:.06em}.program-bar span{font-size:12px;color:#777}
.schedule-row{position:relative;display:grid;grid-template-columns:116px 1fr;align-items:center;gap:8px 24px;padding:20px 16px 20px 25px;border-bottom:1px solid #d8d8d6;min-height:72px}.schedule-row:before{content:'';position:absolute;left:0;top:30px;width:5px;height:5px;background:#aaa;border-radius:50%}.schedule-time{font-size:13px;font-variant-numeric:tabular-nums;color:#727272;white-space:nowrap}.schedule-name{font-size:19px;font-weight:500;line-height:1.3}.schedule-type{display:none}.schedule-row.featured{background:#cc222c08}.schedule-row.featured:before{background:var(--red)}.schedule-row.featured .schedule-name{color:var(--red)}
.schedule-foot{margin-top:28px}.schedule-foot p{font-size:12px;color:#777}.schedule-foot .text-link{margin-top:16px;font-size:13px}

/* Pricing gets a separate surface and two easy-to-compare ticket panels. */
.pricing{background:var(--paper);border-top:1px solid #d3d3d1}
.pricing-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:24px}.pricing-controls>span{font-size:11px;letter-spacing:.1em;font-weight:500}
.duration-switch{display:flex;padding:4px;background:#e1e1df;gap:3px}.duration-switch button{background:none;color:#626262;font-size:15px;padding:12px 32px;min-height:48px;transition:background .25s,color .25s}.duration-switch button[aria-pressed=true]{background:var(--black);color:white}
.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.price-card{padding:clamp(28px,3.3vw,48px);display:flex;flex-direction:column;background:#fff;border:1px solid #d3d3d1;min-width:0}.price-card-featured{background:var(--red);color:#fff;border-color:var(--red)}
.price-card-top{display:flex;justify-content:space-between;gap:16px;font-size:10px;letter-spacing:.08em;padding-bottom:24px;border-bottom:1px solid #d3d3d1}.price-card-top>span:last-child{opacity:.65}.price-card-featured .price-card-top{border-color:#ffffff50}
.price-card h3{font-size:clamp(56px,5.3vw,82px);line-height:1;margin:30px 0 20px}.price-card h3 .program-plus{font-family:Arial,sans-serif;font-size:.78em;font-weight:400;line-height:1;vertical-align:.04em}
.price-card>p{font-size:16px;color:#707070}.price-card-featured>p{color:#fffd}.package-price{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap;margin:32px 0 18px}.package-price strong{font:clamp(64px,5.5vw,86px)/1 Bebas;white-space:nowrap;letter-spacing:-.01em}.package-price>span{font-size:14px;opacity:.7}
.price-value{display:flex;align-items:start;flex-direction:column;gap:14px;margin-bottom:30px;font-size:17px;min-height:76px}.price-value>span{font-weight:500}.price-value strong{font-size:11px;font-weight:600;line-height:1.4;border:1px solid currentColor;padding:9px 12px}.price-value strong.best{background:var(--red);border-color:var(--red);color:white}.price-card-featured .price-value strong.best{background:#fff;border-color:#fff;color:#111}
.price-includes{display:flex;flex-direction:column;gap:12px;font-size:15px;margin-bottom:32px;min-height:64px}.price-includes span:before{content:'•';margin-right:12px;opacity:.65}.price-card .button{width:100%;margin-top:auto}.pricing-note{font-size:12px;color:#777;margin-top:28px;max-width:none}

/* Atmosphere is the editorial break: asymmetric images, then moving outlined type. */
.moments{overflow:hidden;padding-bottom:0}.moments-grid{display:grid;grid-template-columns:1.5fr 1fr;grid-template-rows:260px 260px;gap:24px}.moment{background:#222;position:relative;overflow:hidden;padding:0;width:100%;display:block;text-align:left;min-width:0}.moment-main{grid-row:span 2;--scene-progress:.5}.moment img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:filter .6s,scale .8s var(--ease)}.moment-main img{transform:translateY(calc((var(--scene-progress) - .5) * 32px)) scale(1.07)}.moment:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#000b);pointer-events:none}.moment-caption{position:absolute;bottom:24px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;gap:16px;z-index:2;font-size:12px}.moment-caption>span:first-child{font-size:10px;letter-spacing:.1em}
.play-circle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:88px;height:88px;border:1px solid #fffa;border-radius:50%;display:grid;place-items:center;padding-left:5px;font-size:21px;z-index:2;background:#ffffff14;transition:background .3s,scale .3s}.play-circle.small{width:58px;height:58px;font-size:14px}
@media(hover:hover){.moment:hover img{filter:grayscale(0);scale:1.03}.moment:hover .play-circle{background:var(--red);border-color:var(--red);scale:1.06}}
.kinetic-brand{--scene-progress:.5;position:relative;margin:64px calc(-1 * var(--page-edge)) 0;overflow:hidden;border-top:1px solid #333;padding:26px 0 14px;white-space:nowrap;pointer-events:none}
.kinetic-brand>span{display:block;width:max-content;font:clamp(110px,20.5vw,370px)/.9 Bebas;letter-spacing:-.015em;color:transparent;-webkit-text-stroke:1px #777;transform:translateX(calc((var(--scene-progress) - .5) * -12vw));margin-left:4vw}
.kinetic-brand i{display:inline-block;font: .7em/1 Tilda;color:var(--red);-webkit-text-stroke:0;font-style:normal;vertical-align:.08em;transform:rotate(calc(var(--scene-progress) * 70deg))}

/* Practical information returns to calm surfaces. */
.location-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:var(--block-space);align-items:center}.location-art{position:relative;min-height:460px;background:#e8e8e6;overflow:hidden}.location-art iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.location-info h2{font-size:var(--heading-size)}.location-info dl{margin:32px 0 24px}.location-info dl>div{display:grid;grid-template-columns:76px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid #dededc}.location-info dt{font-size:10px;color:#777;padding-top:4px;letter-spacing:.06em}.location-info dd{margin:0;font-size:18px}
.hotel{background:var(--paper);border-top:1px solid #d3d3d1}.hotel-wordmark{display:block;font-size:11px;font-weight:600;letter-spacing:.12em;margin-bottom:14px}.hotel-description p{font-size:16px;color:#707070;line-height:1.5;max-width:37ch}.hotel-toolbar{display:flex;align-items:center;gap:24px;padding:24px 0;border-top:1px solid #ccc}.hotel-tariff{font-size:17px;font-weight:500}.hotel-tariff>span{display:inline-block;margin-left:20px;font-size:12px;color:#707070;font-weight:400}.hotel-rooms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.hotel-room{min-width:0;background:#fff;border:1px solid #d3d3d1;display:flex;flex-direction:column}.hotel-room-photo{display:flex;flex-direction:column;position:relative;min-width:0;background:#e9e9e9}
.room-gallery-track{display:flex;width:100%;aspect-ratio:16/11;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab;min-height:0}.room-gallery-track::-webkit-scrollbar{display:none}.room-gallery-track:focus-visible{outline:3px solid var(--red);outline-offset:-3px}.room-gallery-track.is-dragging{scroll-snap-type:none;cursor:grabbing;user-select:none}.room-gallery-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}.room-gallery-slide img{display:block;width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none}
.room-gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;height:44px;flex-shrink:0;padding:0 12px;background:var(--black);color:white}.room-gallery-count{font-size:10px;font-variant-numeric:tabular-nums;letter-spacing:.08em;white-space:nowrap;color:#ccc}.room-gallery-dots{display:flex;align-items:center}.room-gallery-dot{display:grid;place-items:center;background:none;width:26px;height:44px;padding:0;flex-shrink:0}.room-gallery-dot:after{content:'';width:6px;height:6px;background:#888;border-radius:4px;transition:width .2s,background .2s}.room-gallery-dot[aria-pressed=true]:after{width:16px;background:var(--red)}.room-gallery-dot:focus-visible{outline-offset:-4px}.room-number{pointer-events:none;position:absolute;top:16px;left:16px;display:grid;place-items:center;width:34px;height:34px;background:#fff;font-size:11px;letter-spacing:.06em}
.hotel-room-body{padding:28px;display:flex;flex-direction:column;flex:1}.hotel-room h3{font-size:46px}.hotel-room-top p{font-size:14px;color:#707070;margin-top:8px}.room-rates{container-type:inline-size;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;border-top:1px solid #dededc;margin:24px 0 0;padding-top:22px}.room-rates>div+div{border-left:1px solid #dededc;padding-left:20px}.room-rates dt{font-size:12px;color:#707070;margin-bottom:10px}.room-rates dd{margin:0;font:clamp(32px,15cqw,46px)/1.05 Bebas;white-space:nowrap}.room-rate-unit{font-size:11px;color:#777;margin-top:12px}.room-book{display:flex;align-items:center;justify-content:center;min-height:52px;padding:14px 16px;background:var(--black);color:#fff;font-size:13px;font-weight:600;margin-top:26px;text-align:center;transition:background .25s}.room-book:hover{background:var(--red)}.hotel-foot{display:flex;justify-content:space-between;align-items:start;gap:32px;margin-top:28px;font-size:12px;color:#707070;line-height:1.5}.hotel-foot p{max-width:62ch}.hotel-foot>span{text-align:right}
.faq{border-top:1px solid #d3d3d1}.faq-layout{display:grid;grid-template-columns:1fr 1.25fr;gap:var(--block-space);align-items:start}.faq-list{border-top:1px solid #222}.faq details{border-bottom:1px solid #d3d3d1}.faq summary{list-style:none;cursor:pointer;padding:26px 0;font-size:20px;display:flex;align-items:center;justify-content:space-between;gap:24px}.faq summary::-webkit-details-marker{display:none}.faq summary span{font-family:Arial,sans-serif;color:var(--red);font-size:28px;line-height:1;transition:transform .3s}.faq details[open] summary span{transform:rotate(45deg)}.faq details p{color:#6e6e6e;font-size:16px;margin:0 36px 26px 0;line-height:1.6}

/* Registration is the final red poster, with two separate forms. */
.join{background:var(--red);--line:#ffffff60}.join .chapter-number{color:#fff}.join .section-top:after{background:#fff}.join-top>span:last-child{font-size:11px;letter-spacing:.08em}.join-body{display:grid;grid-template-columns:minmax(0,1fr) 260px;align-items:end;gap:48px;margin-bottom:var(--block-space)}.join h2{font-size:clamp(90px,10vw,156px);line-height:.99}.join h2>span{color:transparent;-webkit-text-stroke:1px white}.registration-intro{font-size:18px;color:#fffe;line-height:1.5;max-width:30ch;padding-bottom:8px}
.registration-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:36px}.registration-card{padding:40px;background:#fff;color:#111;display:flex;flex-direction:column;scroll-margin-top:0;transition:box-shadow .3s;min-width:0}.registration-card:target{box-shadow:0 0 0 3px #fff,0 0 0 7px #111}.registration-card-top{display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.08em;padding-bottom:24px;border-bottom:1px solid #d3d3d1}.registration-card-top>span:last-child{color:#777}.registration-card h3{font-size:68px;margin:30px 0 24px}.registration-card>p{font-size:17px;color:#666;max-width:37ch;margin-bottom:32px}.registration-form-link{background:#111;color:white;margin-top:auto;width:100%;font-size:14px}.registration-form-link[href]:hover{background:var(--red)}.registration-form-link[aria-disabled=true]{background:#efefef;color:#777;cursor:default;transform:none}.registration-hotel{background:#141414;color:#fff}.registration-hotel .registration-card-top{border-color:#444}.registration-hotel>p{color:#aaa}.registration-hotel .registration-form-link{background:#fff;color:#111}.registration-hotel .registration-form-link[href]:hover{background:#e5e5e5}.registration-hotel .registration-form-link[aria-disabled=true]{background:#272727;color:#aaa}.join-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px}.join-bottom p{font-size:14px;color:#fffd}.join-bottom>span{font-size:11px;letter-spacing:.1em}
.partners{padding-top:56px;padding-bottom:56px;border-bottom:1px solid #333}.partners>.eyebrow{color:#aaa}.partners>div{display:flex;justify-content:space-between;align-items:center;gap:40px;margin-top:32px;color:#c1c1c1}.partners>div>span{font-size:24px;font-weight:600;letter-spacing:-.03em}.partners small{display:block;font-size:10px;font-weight:400;letter-spacing:.15em;margin-top:3px}.partner-praktika{font-style:italic}
.footer{padding:64px var(--page-edge) 28px}.footer-top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:48px}.footer-top>div{display:flex;flex-direction:column;align-items:start}.footer-top .eyebrow{color:#aaa;margin-bottom:14px}.contact-phone{font-size:27px}.footer-top a[href^=mailto]{font-size:15px;color:#bbb;margin-top:10px}.footer-top p{font-size:15px;color:#aaa}.footer-top .text-link{font-size:13px;margin-top:14px}.footer-bottom{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #333;margin-top:56px;padding-top:24px;font-size:10px;color:#aaa;letter-spacing:.05em}

/* Media viewer and motion fallbacks. */
dialog{border:0;max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 30px 120px #0007}dialog::backdrop{background:#000b;backdrop-filter:blur(6px)}.dialog-close{position:absolute;right:16px;top:10px;background:none;color:inherit;font:32px Tilda;width:44px;height:44px;z-index:5}#media-dialog{width:min(1100px,calc(100% - 32px));padding:56px 20px 20px;background:#101010;color:white}#media-content iframe{display:block;width:100%;height:min(70dvh,600px);border:0}#media-content img{max-height:72dvh;width:100%;object-fit:contain}#media-content p{margin:14px auto 0;text-align:center;font-size:12px;color:#aaa}#media-content a{text-decoration:underline}.noscript-note{padding:30px}
.js-motion .reveal{opacity:0;translate:0 24px;transition:opacity .75s var(--ease),translate .75s var(--ease)}.js-motion .reveal.is-visible{opacity:1;translate:0 0}.js-motion .pillars article:nth-child(2){transition-delay:.08s}.js-motion .pillars article:nth-child(3){transition-delay:.16s}
.motion-paused *{animation-play-state:paused!important}.motion-paused .reveal{opacity:1;translate:none;transition:none}.motion-paused,.motion-paused body{scroll-behavior:auto}.motion-paused .hero-title-line>span,.motion-paused .hero-intro{animation:none;opacity:1;transform:none}.motion-paused .hero-aperture{animation:none;clip-path:none}.motion-paused .hero-shot,.motion-paused .hero-shot img,.motion-paused .about-photo img,.motion-paused .moment-main img,.motion-paused .kinetic-brand>span,.motion-paused .kinetic-brand i{transform:none}.motion-paused .about-photo-frame{clip-path:none}
@keyframes ticker{to{transform:translateX(-50%)}}
@keyframes hero-type-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes fade-up{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@keyframes hero-frame-open{from{clip-path:inset(0 42%)}to{clip-path:inset(0 var(--hero-spread))}}
@keyframes hero-camera{from{transform:scale(1)}to{transform:scale(1.035)}}

/* Tablet: preserve the same rhythm, adapt the grids. */
@media(max-width:1100px){
  :root{--heading-size:76px}
  .desktop-nav{gap:18px;font-size:12px}.header{gap:20px}.brand{width:145px}
  .hero-heading{grid-template-columns:minmax(0,1fr) 200px;gap:28px}.hero-showcase h1{font-size:8.7vw}.hero-intro p{font-size:15px}.hero-intro>a{font-size:10px}.hero-event{padding:24px}.hero-stage{grid-template-columns:minmax(0,1fr) 275px}.hero-film{aspect-ratio:auto;min-height:370px}
  .section-heading,.about-intro,.hotel-heading{grid-template-columns:minmax(0,1fr) 260px;gap:36px}.section-note{font-size:16px}
  .teacher-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 20px}.teacher-card-info{padding:20px 16px}.teacher-card h3{font-size:32px}.teacher-card-bottom strong{font-size:18px}.teacher-book{font-size:11px;padding:9px 10px}
  .program-layout{gap:40px;grid-template-columns:.85fr 1.15fr}.program h2{font-size:64px}.schedule-row{grid-template-columns:106px 1fr;gap:16px;padding-right:8px}.schedule-name{font-size:17px}.schedule-time{font-size:12px}
  .moments-grid{grid-template-rows:220px 220px;gap:20px}.location-grid{gap:36px}.location-art{min-height:430px}.location-info h2{font-size:72px}
  .hotel-rooms{gap:18px}.room-gallery-dot{width:24px}.hotel-room-body{padding:22px}.hotel-room h3{font-size:42px}.room-rates{gap:14px}.room-rates>div+div{padding-left:14px}
  .join-body{grid-template-columns:minmax(0,1fr) 220px;gap:28px}.join h2{font-size:10vw}.registration-intro{font-size:16px}.registration-card{padding:30px}.registration-card h3{font-size:60px}.registration-card>p{font-size:16px}.contact-phone{font-size:23px}.partners>div>span{font-size:20px}
}
@media(min-width:761px) and (max-width:950px){
  .desktop-nav{display:none}.menu-toggle{display:block}.teacher-card-bottom{flex-direction:column;align-items:stretch}.teacher-book{width:100%}.program-layout{grid-template-columns:1fr}.program .section-heading{position:static;display:grid;grid-template-columns:1fr 250px;gap:30px}.program .section-note{margin:0}.program h2{font-size:72px}.schedule-row{grid-template-columns:150px 1fr;padding:20px 24px}.schedule-name{font-size:19px}.hotel-rooms{grid-template-columns:1fr}.hotel-room{display:grid;grid-template-columns:1.15fr 1fr}.hotel-room-photo{min-height:100%}.room-gallery-track{position:absolute;inset:0 0 44px;aspect-ratio:auto}.room-gallery-controls{position:absolute;bottom:0;left:0;right:0}.hotel-room-body{padding:28px}
}
@media(min-width:761px) and (max-height:850px){
  .hero-heading{margin:26px 0}.hero-showcase h1{font-size:clamp(76px,7.2vw,118px)}.hero-film{aspect-ratio:auto;min-height:370px}.hero-stage{min-height:370px}.hero-event{padding:24px}.hero-event-date{margin:20px 0}.hero-event-place{margin-bottom:20px}.hero-title-wrap>.eyebrow{margin-bottom:14px}
}

/* Mobile: 64px chapter spacing, 32px inner spacing, no sticky text or cropped headings. */
@media(max-width:760px){
  :root{--gutter:22px;--section-space:64px;--block-space:32px;--header-height:72px;--heading-size:clamp(52px,13vw,76px)}
  body{font-size:16px}.header{gap:12px}.brand{width:130px}.desktop-nav{display:none}.menu-toggle{display:block}.header-actions{gap:12px}.header-cta{font-size:12px;border:0}.section-top{padding-bottom:20px;gap:16px}.chapter-label{gap:14px}.chapter-number{font-size:30px}.eyebrow{font-size:9px;letter-spacing:.09em}.section-top .small-caption{display:none}
  .section-heading,.about-intro,.hotel-heading{grid-template-columns:1fr;gap:24px}.section-note{font-size:15px;max-width:39ch}.section-note p{margin-top:14px}.text-link{font-size:13px}.button{font-size:14px;min-height:54px}
  .hero-showcase{padding-top:22px}.hero-kicker{font-size:8px;letter-spacing:.04em;gap:10px}.hero-kicker>span:last-child{font-size:7px}.hero-heading{display:block;margin:30px 0 26px}.hero-title-wrap>.eyebrow{font-size:8px;letter-spacing:.06em;margin-bottom:16px}.hero-showcase h1{font-size:13.3vw;line-height:.98;letter-spacing:-.015em}.hero-title-line{padding:1px 0 3px}.hero-intro{display:none}.hero-stage{display:flex;flex-direction:column}.hero-film{min-height:0;aspect-ratio:1.5;flex-shrink:0}.hero-shot img{object-position:center}.hero-film-top{top:16px;left:16px;right:16px;font-size:7px}.hero-atmosphere{left:16px;bottom:16px;font-size:10px;gap:10px}.play-small{width:30px;height:30px;font-size:8px}.hero-event{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:18px;padding:22px}.hero-event-top{display:none}.hero-event-date{margin:0}.hero-event-date>span{font-size:9px;letter-spacing:.08em;margin-top:7px}.hero-event-place{font-size:20px;margin:0;padding-left:18px;border-left:1px solid #ffffff60}.hero-event-place>span{font-size:12px;margin-top:3px}.hero-event .button{grid-column:1/-1;min-height:50px;font-size:12px;padding:13px 16px}.hero-controls{min-height:58px}.hero-signature{display:none}.ticker{padding:12px 0 9px}.ticker-unit{font-size:29px;gap:24px;padding-right:24px}.ticker b{font-size:24px}
  .about-intro .lead{font-size:15px;line-height:1.6;max-width:42ch}.about-intro .text-link{margin-top:16px}.about-photo-frame{aspect-ratio:1.8;clip-path:none}.about-photo img{transform:none}.photo-caption{font-size:9px;padding:12px 14px}.pillars{gap:16px}.pillars article{padding-right:14px}.pillar-number{font-size:10px;margin-bottom:14px}.pillars h3{font-size:36px;margin-bottom:10px}.pillars p{font-size:12px;line-height:1.5}
  .season-label{font-size:9px;padding:9px 11px}.teachers-toolbar{padding-top:2px}.tabs{width:100%}.tabs button{font-size:19px;padding:16px 22px 18px 0}.tabs button+button{padding-left:22px}.tabs button span{font-size:12px}.teachers-meta{font-size:11px;margin:20px 0}.teacher-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}.teacher-portrait{aspect-ratio:4/5}.teacher-duo .teacher-portrait{aspect-ratio:1.65}.teacher-duo .teacher-portrait>img{object-position:center 20%}.teacher-card-number{top:10px;left:10px;font-size:9px;padding:4px 5px}.teacher-card-info{padding:16px 12px}.teacher-dates{font-size:10px;letter-spacing:0;margin-bottom:10px}.teacher-card h3{font-size:27px;line-height:1.08;min-height:59px}.teacher-card-bottom{flex-direction:column;align-items:stretch;gap:12px;padding-top:13px;margin-top:14px}.teacher-card-bottom strong{font-size:19px}.teacher-card-bottom p>span{font-size:10px}.teacher-book{width:100%;min-height:42px;padding:10px 6px;font-size:11px}.teachers-bottom{margin-top:24px}.teachers-bottom p{font-size:11px}.portrait-initials{font-size:70px}
  .program-layout{grid-template-columns:1fr;gap:32px}.program .section-heading{position:static;display:block}.program h2{font-size:var(--heading-size)}.program .section-note{margin-top:24px;max-width:39ch}.program-bar{padding-bottom:20px}.program-bar strong{font-size:11px}.program-bar span{font-size:11px}.schedule-row{grid-template-columns:96px 1fr;gap:12px;padding:18px 8px 18px 15px;min-height:68px}.schedule-row:before{width:4px;height:4px;top:29px}.schedule-name{font-size:16px}.schedule-time{font-size:11px}.schedule-foot{margin-top:24px}.schedule-foot p{font-size:11px}.schedule-foot .text-link{font-size:12px}
  .pricing-controls{align-items:stretch;flex-direction:column;gap:16px;margin-bottom:24px}.pricing-controls>span{font-size:10px}.duration-switch button{flex:1;padding:11px 16px;font-size:14px}.price-grid{grid-template-columns:1fr;gap:24px}.price-card{padding:28px}.price-card-top{font-size:9px;gap:10px;padding-bottom:22px}.price-card h3{font-size:clamp(54px,13vw,72px);margin:26px 0 18px}.price-card>p{font-size:15px}.package-price{margin:28px 0 18px;gap:16px}.package-price strong{font-size:68px}.package-price>span{font-size:13px}.price-value{font-size:16px;min-height:0;margin-bottom:28px}.price-value strong{font-size:10px;padding:9px 10px}.price-includes{font-size:14px;min-height:0;margin-bottom:28px}.price-card .button{font-size:13px}.pricing-note{font-size:11px;margin-top:24px}
  .moments-grid{grid-template-columns:1fr 1fr;grid-template-rows:330px 210px;gap:14px}.moment-main{grid-column:span 2;grid-row:span 1}.moment-caption{bottom:16px;left:16px;right:16px;font-size:10px;flex-wrap:wrap;gap:8px}.moment-caption>span:first-child{font-size:9px}.moment:not(.moment-main) .moment-caption>span:last-child{display:none}.play-circle{width:66px;height:66px;font-size:17px}.play-circle.small{width:44px;height:44px;font-size:11px}.kinetic-brand{margin-top:40px;padding:28px 0 20px}.kinetic-brand>span{font-size:24vw;margin-left:5vw}
  .location-grid{grid-template-columns:1fr;gap:32px}.location-art{min-height:340px;order:2}.location-info{order:1}.location-info h2{font-size:var(--heading-size)}.location-info dl{margin:26px 0 20px}.location-info dl>div{grid-template-columns:68px 1fr;gap:14px;padding:14px 0}.location-info dd{font-size:16px}.location-info dt{font-size:9px}
  .hotel-wordmark{font-size:10px;margin-bottom:12px}.hotel-description p{font-size:15px}.hotel-toolbar{padding:22px 0}.hotel-tariff{font-size:16px}.hotel-tariff>span{display:block;margin:6px 0 0;font-size:12px}.hotel-rooms{grid-template-columns:1fr;gap:28px}.hotel-room-body{padding:26px}.hotel-room h3{font-size:44px}.room-gallery-dot{width:26px}.room-gallery-track{aspect-ratio:16/11}.room-rates{margin-top:24px;padding-top:20px;gap:20px}.room-rates>div+div{padding-left:20px}.room-book{margin-top:24px}.hotel-foot{display:block;font-size:11px;margin-top:24px}.hotel-foot>span{display:block;text-align:left;margin-top:10px}
  .faq-layout{grid-template-columns:1fr;gap:32px}.faq-heading h2 br{display:none}.faq summary{font-size:17px;padding:22px 0}.faq details p{font-size:15px;margin-right:20px;margin-bottom:22px}
  .join-top>span:last-child{font-size:8px;letter-spacing:.04em;white-space:nowrap}.join-top .eyebrow{max-width:14ch}.join-body{grid-template-columns:1fr;gap:24px;margin-bottom:32px}.join h2{font-size:clamp(66px,16vw,112px);line-height:1.04}.registration-intro{font-size:15px;max-width:37ch;padding:0}.registration-grid{grid-template-columns:1fr;gap:24px;margin-bottom:28px}.registration-card{padding:28px;scroll-margin-top:0}.registration-card-top{font-size:9px;gap:12px;padding-bottom:22px}.registration-card h3{font-size:58px;margin:26px 0 20px}.registration-card>p{font-size:15px;margin-bottom:28px}.registration-form-link{font-size:12px;padding:16px}.join-bottom p{font-size:12px}.join-bottom>span{font-size:9px;max-width:120px;text-align:right}
  .partners{padding-top:40px;padding-bottom:40px}.partners>div{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:28px}.partners>div>span{font-size:19px}.footer{padding-top:48px;padding-bottom:24px}.footer-top{grid-template-columns:1fr;gap:32px}.footer-top .brand{width:150px}.contact-phone{font-size:28px}.footer-bottom{margin-top:40px;font-size:9px;gap:16px;flex-wrap:wrap}.footer-bottom>span:nth-child(2){display:none}.footer-top .text-link{margin-top:12px}
}
@media(max-width:375px){
  :root{--gutter:18px;--heading-size:49px}.header-actions{gap:8px}.brand{width:120px}.hero-kicker{font-size:7px}.hero-kicker>span:last-child{font-size:6px}.hero-event{padding:20px;gap:16px}.hero-event-place{font-size:18px;padding-left:14px}.hero-event-place>span{font-size:11px}.hero-title-wrap>.eyebrow{font-size:7px}.chapter-label{gap:12px}.eyebrow{font-size:8px}.pillars{gap:12px}.pillars article{padding-right:10px}.pillars h3{font-size:32px}.pillars p{font-size:11px}.teacher-grid{gap:20px 12px}.teacher-card-info{padding:14px 10px}.teacher-card h3{font-size:24px;min-height:54px}.teacher-dates{font-size:9px}.teacher-card-bottom strong{font-size:17px}.schedule-row{grid-template-columns:91px 1fr;gap:10px}.schedule-name{font-size:15px}.price-card,.registration-card{padding:24px}.price-card h3{font-size:54px}.package-price strong{font-size:62px}.price-card .button{font-size:12px}.hotel-room-body{padding:24px}.join h2{font-size:16.5vw}.registration-card h3{font-size:53px}.registration-form-link{font-size:11px}.moment-caption{left:12px;right:12px}.moment-caption>span:first-child{font-size:8px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;translate:none}.hero-aperture,.about-photo-frame{clip-path:none}.hero-shot,.hero-shot img,.hero-title-line>span,.hero-intro,.about-photo img,.moment-main img,.kinetic-brand>span,.kinetic-brand i{transform:none!important;opacity:1}
}

/* Vector icons remain monochrome in iOS; no emoji/font substitution. */
.icon{display:inline-block;width:1em;height:1em;flex:none;vertical-align:middle}
.button .icon-arrow{width:28px;height:28px;display:block}
.play-small .icon-play,.play-circle .icon-play{width:1em;height:1em}
.ticker b{display:flex;align-items:center}
.kinetic-brand .icon-star{width:.65em;height:.65em;stroke:none}
.footer-bottom .icon-up{width:16px;height:16px;margin-left:5px}
@media(max-width:760px){.hero-controls{display:none}.hero-showcase{padding-bottom:24px}}
