:root { --ink:#101019; --red:#c5332d; --blue:#075b93; --water:#061c3b; --paper:#f3f0e8; --yellow:#f1d83d; --serif:"DM Serif Display", Georgia, serif; --sans:Manrope, Arial, sans-serif; --mono:"DM Mono", monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
.skip-link { position:absolute; left:1rem; top:-5rem; z-index:20; background:#fff; padding:.6rem; }.skip-link:focus { top:1rem; }
/* Keyboard focus is as clear as every hover treatment, without a visual band. */
:where(a[href], button, input, select, textarea, [tabindex]):focus-visible { outline:3px solid var(--red); outline-offset:4px; box-shadow:0 0 0 2px var(--paper); }
.topbar :where(a[href], button):focus-visible,.menu-canvas :where(a[href], button):focus-visible,.program-v2 :where(a[href], button):focus-visible,.courses-v2 :where(a[href], button):focus-visible,.event-hero :where(a[href], button):focus-visible,.event-facts :where(a[href], button):focus-visible,.course-method :where(a[href], button):focus-visible,.company-text :where(a[href], button):focus-visible,.company-timeline :where(a[href], button):focus-visible,.venue-details :where(a[href], button):focus-visible,.archive-map :where(a[href], button):focus-visible,.archive-callout :where(a[href], button):focus-visible,.archive-season-hero :where(a[href], button):focus-visible,.archive-show-hero :where(a[href], button):focus-visible,.archive-show-facts :where(a[href], button):focus-visible,.archive-show-links :where(a[href], button):focus-visible { outline-color:var(--yellow); box-shadow:0 0 0 2px var(--ink); }
.topbar { position:absolute; top:0; left:0; right:0; z-index:10; color:var(--paper); mix-blend-mode:normal; }.topbar nav { position:relative; }
.topbar-on-paper,.topbar[data-header-tone="dark"] { color:var(--ink); }.topbar[data-header-tone="light"] { color:var(--paper); }
.wordmark { display:block; width:6rem; height:2.05rem; overflow:hidden; font-size:0; line-height:0; }.wordmark:after { content:""; display:block; width:100%; height:100%; background:url("assets/brand/viartisti-mark-original.svg") center/contain no-repeat; }.wordmark-dot { display:none; }
.nav-desktop a, .menu-button { font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }.menu-button { color:inherit; border:1px solid currentColor; background:transparent; padding:.55rem .75rem; }.menu-button span { color:var(--yellow); }
.menu-canvas { color:var(--paper); background:var(--ink); }.menu-canvas .offcanvas-body a { font:clamp(2.5rem,7vw,5rem)/.94 var(--serif); margin-bottom:.6rem; }.menu-canvas .offcanvas-body a:hover { color:var(--yellow); }
.hero-v2 { min-height:100svh; color:var(--paper); position:relative; isolation:isolate; overflow:hidden; background:var(--water); }
.hero-art, .hero-art:after { position:absolute; inset:0; }.hero-art { z-index:-2; }.hero-art:after { content:""; background:linear-gradient(90deg,rgba(4,10,30,.88) 0%,rgba(4,10,30,.51) 48%,rgba(4,10,30,.1) 100%),linear-gradient(0deg,rgba(5,18,43,.6),transparent 45%); }.hero-art img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.9) contrast(1.04); transform:scale(1.04); }
.water-glow { position:absolute; z-index:-1; width:50vw; height:50vw; min-width:500px; min-height:500px; border:1px solid rgba(83,220,255,.35); border-radius:50%; top:28%; right:-12%; box-shadow:0 0 90px rgba(23,167,255,.33), inset 0 0 80px rgba(23,167,255,.15); mix-blend-mode:screen; }
.hero-inner { position:relative; z-index:2; }.eyebrow { text-transform:uppercase; font:500 .67rem/1.3 var(--mono); letter-spacing:.08em; }.hero-kicker:before, .eyebrow-red:before { content:""; display:inline-block; width:.6rem; height:.6rem; background:var(--yellow); margin-right:.5rem; }.eyebrow-red:before { background:var(--red); }
.hero-title { margin:0; font:clamp(5.4rem,14vw,13rem)/.66 var(--serif); letter-spacing:-.07em; }.hero-title span,.hero-title em { display:block; }.hero-title em { color:var(--yellow); margin-left:10vw; }.hero-lead { max-width:28rem; font-size:clamp(1rem,1.6vw,1.42rem); line-height:1.35; }.round-link { width:7.4rem; aspect-ratio:1; border-radius:50%; display:flex; align-items:center; justify-content:center; text-align:center; background:var(--red); color:#fff; font:500 .65rem/1.35 var(--mono); text-transform:uppercase; letter-spacing:.03em; transition:transform .3s ease; }.round-link:hover { transform:rotate(10deg) scale(1.07); }.round-link span { color:var(--yellow); font-size:1.3rem; display:block; }.season-year { color:var(--yellow); font:clamp(5rem,12vw,10rem)/.75 var(--serif); letter-spacing:-.07em; }.season-year span { color:var(--red); }.hero-side-note { display:inline-block; text-align:left; font:500 .68rem/1.4 var(--mono); text-transform:uppercase; }.hero-caption { position:absolute; bottom:1rem; right:1.2rem; z-index:2; display:flex; gap:1.5rem; font:400 .56rem var(--mono); text-transform:uppercase; letter-spacing:.05em; }.flight-path { position:absolute; inset:auto 0 0 auto; width:70vw; height:82vh; z-index:1; overflow:visible; }.flight-path path { fill:none; stroke:var(--yellow); stroke-width:2; stroke-dasharray:6 12; opacity:.65; }
.manifesto-section { padding:clamp(5rem,12vw,10rem) 0 0; overflow:hidden; background:var(--paper); }.manifesto-title { margin:0; font:clamp(3.8rem,9.3vw,9rem)/.78 var(--serif); letter-spacing:-.07em; }.manifesto-title em { color:var(--red); }.manifesto-copy { max-width:22rem; font-size:1.05rem; line-height:1.55; }.text-link { display:inline-block; border-bottom:1px solid currentColor; padding-bottom:.25rem; font:700 .7rem var(--mono); text-transform:uppercase; letter-spacing:.04em; }.text-link span { color:var(--red); }.word-river { margin-top:clamp(3rem,8vw,6rem); overflow:hidden; white-space:nowrap; color:var(--red); font:clamp(3rem,8vw,8rem)/.8 var(--serif); letter-spacing:-.05em; }.word-river span { display:inline-block; padding-bottom:.3em; }
.program-v2 { padding:clamp(5rem,10vw,9rem) 0; color:var(--paper); background:var(--ink); }.program-intro { max-width:14rem; line-height:1.5; }.mono-label { margin-top:3rem; font:500 .65rem var(--mono); text-transform:uppercase; color:var(--yellow); }.program-track { display:flex; overflow-x:auto; gap:1rem; padding-bottom:1rem; scrollbar-color:var(--yellow) var(--ink); }.poster-card-item { flex:0 0 min(68vw,19rem); min-height:30rem; }.poster-card { width:100%; min-height:100%; padding:1.25rem; display:flex; flex-direction:column; position:relative; overflow:hidden; color:var(--ink); }.poster-card:after { content:""; position:absolute; z-index:0; inset:auto 0 0; height:38%; pointer-events:none; background:linear-gradient(0deg,rgba(8,10,19,.64),rgba(8,10,19,0)); }.poster-card img { position:absolute; bottom:0; left:0; width:100%; height:48%; object-fit:cover; mix-blend-mode:multiply; opacity:.85; transition:transform .7s cubic-bezier(.2,.7,.2,1); }.poster-card:is(:hover,:focus-visible) img { transform:scale(1.08); }.poster-card h3 { position:relative; margin:.7rem 0 auto; z-index:1; font:clamp(2.4rem,4vw,4rem)/.82 var(--serif); letter-spacing:-.06em; }.poster-date,.poster-kind { position:relative; z-index:1; font:500 .6rem var(--mono); text-transform:uppercase; letter-spacing:.05em; }.poster-kind { margin:0; color:var(--paper); text-shadow:0 1px 10px rgba(0,0,0,.9); }.poster-red { color:var(--paper); background:var(--red); }.poster-blue { background:#59b9d5; }.poster-paper { background:#ddd5c3; }.poster-yellow { background:var(--yellow); }
.program-card-pages { display:flex; gap:1.25rem; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:1rem; scrollbar-color:var(--yellow) var(--ink); }.program-track-page { flex:0 0 100%; display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); overflow:visible; scroll-snap-align:start; }.program-track-page .poster-card-item { min-width:0; min-height:27rem; }.programme-swipe-hint { margin:.25rem 0 0; font:500 .6rem var(--mono); text-transform:uppercase; letter-spacing:.05em; color:var(--yellow); }
.courses-v2 { position:relative; padding:clamp(6rem,14vw,12rem) 0; overflow:hidden; color:#fff; background:var(--red); }.courses-image { position:absolute; inset:0; opacity:.21; }.courses-image:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,var(--red),transparent); }.courses-image img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.15); }.courses-v2 h2,.footer-v2 h2 { margin:0; font:clamp(4rem,10vw,9rem)/.77 var(--serif); letter-spacing:-.07em; }.courses-v2 h2 em,.footer-v2 h2 em { color:var(--yellow); }.courses-v2 p:not(.eyebrow) { max-width:22rem; line-height:1.55; }.round-link-light { background:var(--yellow); color:var(--ink); margin-top:1rem; }
.footer-v2 { padding:clamp(5rem,10vw,8rem) 0 3rem; background:var(--paper); }.footer-v2 p:not(.eyebrow) { line-height:1.65; }.footer-logo { display:block; width:clamp(10rem,17vw,14rem); height:auto; margin-top:2.5rem; }
.home-newsletter { position:relative; overflow:hidden; padding:clamp(5rem,11vw,9rem) 0; color:var(--paper); background:var(--ink); }.home-newsletter:before { content:""; position:absolute; top:-20vw; right:-8vw; width:48vw; min-width:32rem; aspect-ratio:1; border:1px solid rgba(241,216,61,.48); border-radius:50%; box-shadow:0 0 0 3.5rem rgba(7,91,147,.35),0 0 10rem rgba(7,91,147,.38); }.home-newsletter .container-fluid { position:relative; }.home-newsletter h2 { max-width:8ch; margin:0; font:clamp(4.2rem,10vw,10rem)/.75 var(--serif); letter-spacing:-.08em; }.home-newsletter h2 em { color:var(--yellow); }.home-newsletter__lead { max-width:27rem; margin:0 0 1.5rem; font-size:1.05rem; line-height:1.6; }.home-newsletter .acym_module { max-width:36rem; }.home-newsletter .acym_module_form { display:grid; grid-template-columns:minmax(0,1fr) 5.7rem; gap:1rem; align-items:end; font-family:var(--sans); }.home-newsletter .acym_form { min-width:0; }.home-newsletter .acym_form .onefield { margin:0; }.home-newsletter .acym_form label { display:none; }.home-newsletter .acym_form input[type="email"],.home-newsletter .acym_form input[type="text"] { width:100%; min-height:4.25rem; padding:.9rem 0; border:0; border-bottom:1px solid rgba(243,240,232,.75); border-radius:0; outline:0; background:transparent; color:var(--paper); font:600 1.05rem var(--sans); }.home-newsletter .acym_form input::placeholder { color:rgba(243,240,232,.72); }.home-newsletter .acysubbuttons { margin:0; }.home-newsletter .subbutton { width:5.7rem; height:5.7rem; padding:.6rem; border:0; border-radius:50%; background:var(--red); color:var(--paper); font:700 .6rem/1.25 var(--mono); letter-spacing:.04em; text-transform:uppercase; transition:transform .3s ease,background .3s ease,color .3s ease; }.home-newsletter .subbutton:is(:hover,:focus-visible) { transform:rotate(10deg) scale(1.07); background:var(--yellow); color:var(--ink); }.home-newsletter .fieldacyterms,.home-newsletter .fieldacytracking,.home-newsletter .acym_lists,.home-newsletter .acym_posttext { grid-column:1 / -1; }.home-newsletter .fieldacyterms label,.home-newsletter .fieldacytracking label,.home-newsletter .acym_lists label { display:inline; font-size:.73rem; line-height:1.55; }.home-newsletter .fieldacyterms input,.home-newsletter .fieldacytracking input,.home-newsletter .acym_lists input { width:auto; min-height:auto; margin-right:.35rem; accent-color:var(--yellow); }.home-newsletter .acym_module_success,.home-newsletter .acym_module_error { grid-column:1 / -1; padding:.75rem 1rem!important; border:1px solid currentColor; background:transparent!important; color:var(--paper)!important; font-size:.85rem; }
@media (max-width:991px) { .topbar { mix-blend-mode:normal; }.hero-title em { margin-left:5vw; }.hero-caption { display:none; }.flight-path { width:120vw; right:-35vw; }.water-glow { right:-40vw; }.program-track { margin-right:-1rem; }.courses-v2 h2 { margin-bottom:2.5rem; } }
@media (max-width:767px) { .home-newsletter:before { right:-16rem; top:-5rem; min-width:27rem; }.home-newsletter .acym_module_form { grid-template-columns:1fr; }.home-newsletter .acysubbuttons { margin-top:.25rem; }.home-newsletter .subbutton { width:100%; height:auto; min-height:3.7rem; border-radius:0; } }
@media (max-width:991px) { .program-track-page { display:flex; gap:1rem; margin-right:0; padding-right:1rem; }.program-track-page .poster-card-item { flex:0 0 min(68vw,19rem); min-height:30rem; } }
@media (prefers-reduced-motion:reduce) { *,*:before,*:after { animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; scroll-behavior:auto!important; } }

/* Studio 02: inner pages */
.inner-header { background:var(--paper); color:var(--ink); position:relative; z-index:5; }.inner-header-dark { color:var(--paper); background:var(--ink); }.inner-header-over { position:absolute; inset:0 0 auto; background:transparent; color:var(--paper); }.inner-menu { border-bottom:1px solid currentColor; padding-bottom:.2rem; font:700 .67rem var(--mono); text-transform:uppercase; letter-spacing:.04em; }.nav-desktop a { padding-bottom:.18rem; }.nav-desktop .active { color:var(--red); border-bottom:1px solid currentColor; }
.season-hero { min-height:70svh; padding:clamp(5rem,12vw,9rem) 0 3rem; position:relative; overflow:hidden; isolation:isolate; color:var(--paper); background:var(--water); }.season-hero:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(4,10,30,.94),rgba(4,10,30,.28)),linear-gradient(0deg,rgba(4,10,30,.55),transparent); }.season-hero-art { position:absolute; inset:0; z-index:-2; }.season-hero-art img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.88) contrast(1.05); }.season-hero-content h1 { margin:0; font:clamp(5rem,13vw,12rem)/.69 var(--serif); letter-spacing:-.075em; }.season-hero-content h1 em { color:var(--yellow); margin-left:9vw; }.season-hero-copy { max-width:20rem; font-size:1.1rem; line-height:1.45; }.mono-light { font:500 .65rem/1.6 var(--mono); text-transform:uppercase; letter-spacing:.05em; color:var(--yellow); }
.season-intro { padding:clamp(5rem,10vw,9rem) 0; scroll-margin-top:5.6rem; }.season-intro h2,.event-story h2,.course-intro h2,.course-method h2,.company-text h2 { margin:0; font:clamp(3.7rem,8vw,8.3rem)/.78 var(--serif); letter-spacing:-.07em; }.season-intro h2 em,.event-story h2 em,.course-intro h2 em,.course-method h2 em,.company-text h2 em { color:var(--red); }.season-intro .col-lg-4 p { max-width:25rem; font-size:1.08rem; line-height:1.55; }
.venue-hero { min-height:78svh; position:relative; isolation:isolate; display:flex; align-items:end; overflow:hidden; color:var(--paper); background:var(--ink); }.venue-hero:after { content:"39"; position:absolute; z-index:-1; right:-.08em; bottom:-.22em; color:rgba(241,216,61,.77); font:clamp(16rem,40vw,42rem)/.68 var(--serif); letter-spacing:-.14em; }.venue-hero:before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(5,9,19,.9) 0%,rgba(5,9,19,.44) 55%,rgba(5,9,19,.18)); }.venue-hero-photo { position:absolute; inset:0; z-index:-2; }.venue-hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center; filter:grayscale(1) contrast(1.16); }.venue-hero .container-fluid { padding-bottom:clamp(3rem,7vw,6rem); }.venue-hero h1 { margin:.8rem 0 0; font:clamp(4.7rem,11vw,11rem)/.7 var(--serif); letter-spacing:-.08em; }.venue-hero h1 em { color:var(--yellow); }.venue-hero .col-lg-3 p { max-width:22rem; margin:0; font-size:1.06rem; line-height:1.55; }.venue-photo-credit { position:absolute; right:1rem; bottom:1rem; z-index:1; margin:0; font:500 .55rem var(--mono); text-transform:uppercase; letter-spacing:.04em; }.venue-photo-credit a { border-bottom:1px solid currentColor; }.venue-intro { padding:clamp(5rem,10vw,9rem) 0; }.venue-intro h2,.venue-details h2 { margin:0; font:clamp(3.9rem,9vw,9rem)/.77 var(--serif); letter-spacing:-.07em; }.venue-intro h2 em,.venue-details h2 em { color:var(--red); }.venue-intro .col-lg-4 p { max-width:27rem; font-size:1.08rem; line-height:1.6; }.venue-stripes { display:grid; grid-template-columns:repeat(3,1fr); min-height:20rem; }.venue-stripe { padding:1.25rem; display:flex; flex-direction:column; justify-content:space-between; }.venue-stripe:nth-child(1) { background:var(--red); color:var(--paper); }.venue-stripe:nth-child(2) { background:var(--yellow); }.venue-stripe:nth-child(3) { color:var(--paper); background:var(--water); }.venue-stripe span { font:500 .62rem var(--mono); text-transform:uppercase; letter-spacing:.04em; }.venue-stripe strong { font:clamp(2.8rem,5.2vw,5.8rem)/.78 var(--serif); letter-spacing:-.07em; }.venue-stripe p { max-width:17rem; margin:0; line-height:1.5; }.venue-details { padding:clamp(5rem,10vw,9rem) 0; color:var(--paper); background:var(--ink); }.venue-details h2 em { color:var(--yellow); }.venue-details .col-lg-4>p { max-width:25rem; line-height:1.65; }.venue-facts { margin-top:3rem; border-top:1px solid rgba(243,240,232,.45); }.venue-fact { display:grid; grid-template-columns:12rem 1fr; gap:1rem; padding:1.2rem 0; border-bottom:1px solid rgba(243,240,232,.3); }.venue-fact dt { color:var(--yellow); font:500 .62rem var(--mono); text-transform:uppercase; letter-spacing:.04em; }.venue-fact dd { margin:0; font-size:1.06rem; line-height:1.5; }.venue-fact .text-link { font-size:.65rem; }.venue-note { padding:clamp(4rem,8vw,7rem) 0; background:var(--paper); }.venue-note p:last-child { max-width:48rem; margin:1rem 0 0; font-size:1.05rem; line-height:1.65; }.venue-note strong { color:var(--red); }
.calendar { padding:0 0 clamp(5rem,10vw,9rem); background:var(--paper); }.calendar-tools { padding:1.1rem 0; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); display:flex; justify-content:space-between; align-items:center; gap:1rem; }.filter-group { display:flex; flex-wrap:wrap; gap:.45rem; }.filter-group button { appearance:none; border:1px solid var(--ink); background:transparent; padding:.38rem .55rem; font:600 .59rem var(--mono); text-transform:uppercase; letter-spacing:.04em; }.filter-group button.active { background:var(--ink); color:var(--paper); }.schedule-row { min-height:7.2rem; display:grid; grid-template-columns:6.5rem 1fr auto; align-items:center; gap:1rem; padding:1rem 0; border-bottom:1px solid rgba(16,16,25,.35); transition:padding .35s ease, background .35s ease; }.schedule-row:hover { padding-left:.75rem; padding-right:.75rem; background:rgba(239,63,54,.08); }.schedule-date { margin:0; font:clamp(1.8rem,3vw,3rem)/.75 var(--serif); letter-spacing:-.06em; }.schedule-date span { font:600 .57rem var(--mono); text-transform:uppercase; letter-spacing:.04em; }.schedule-row h3 { margin:.25rem 0; font:clamp(1.5rem,2.8vw,3rem)/.9 var(--serif); letter-spacing:-.05em; }.schedule-row h3 a:hover { color:var(--red); }.schedule-place { margin:0; color:#50515b; font:500 .62rem var(--mono); text-transform:uppercase; letter-spacing:.03em; }.schedule-arrow { color:var(--red); font-size:1.5rem; }.schedule-featured { grid-template-columns:6.5rem 1fr 9rem auto; }.schedule-featured img { height:5.3rem; width:100%; object-fit:cover; filter:saturate(.7) contrast(1.15); }
.event-hero { min-height:82svh; position:relative; isolation:isolate; overflow:hidden; color:var(--paper); background:var(--ink); }.event-hero:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(9,10,15,.9) 0%,rgba(9,10,15,.38) 55%,rgba(9,10,15,.06)); }.event-hero--no-image { min-height:68svh; background:var(--red); }.event-hero--no-image:after { background:linear-gradient(135deg,rgba(16,16,25,.22),transparent 55%),repeating-linear-gradient(90deg,transparent 0,transparent 9vw,rgba(243,240,232,.09) 9vw,rgba(243,240,232,.09) calc(9vw + 1px)); }.event-hero--no-image h1 { max-width:11ch; }.event-hero-photo { position:absolute; inset:0; z-index:-2; }.event-hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.7) contrast(1.15); }.event-hero-copy { padding-top:clamp(7rem,14vh,10rem); }.event-hero h1 { margin:1rem 0 0; font:clamp(4.6rem,10vw,10rem)/.7 var(--serif); letter-spacing:-.075em; }.event-hero h1 em { color:var(--yellow); }.event-small-title { font:italic clamp(1.3rem,2vw,2.2rem) var(--serif); margin:1.8rem 0 0 14vw; }.event-facts { padding:clamp(3rem,7vw,6rem) 0; color:var(--paper); background:var(--ink); }.fact-main { font:clamp(1.5rem,2.6vw,2.8rem)/.93 var(--serif); letter-spacing:-.04em; }.fact-main span { color:var(--yellow); }.ticket-pending { display:inline-block; border:0; border-radius:0; padding:1rem; color:var(--ink); background:var(--yellow); font:600 .65rem/1.4 var(--mono); text-align:left; text-transform:uppercase; opacity:.58; cursor:not-allowed; }.event-story { padding:clamp(5rem,11vw,10rem) 0; }.event-lead { font-size:1.25rem; line-height:1.5; }.event-credits { font:500 .72rem/1.6 var(--mono); text-transform:uppercase; }.event-image-break { position:relative; overflow:hidden; background:var(--red); }.event-image-break img { width:100%; height:min(67vw,46rem); object-fit:cover; display:block; mix-blend-mode:multiply; filter:contrast(1.1); }.event-image-break p { margin:0; padding:1rem 1.5rem; color:var(--paper); font:500 .6rem var(--mono); text-transform:uppercase; }.next-event { padding:clamp(4rem,9vw,7rem) 0; background:var(--yellow); }.next-event a { display:grid; grid-template-columns:11rem 1fr auto; gap:1rem; align-items:end; border-bottom:1px solid var(--ink); padding-bottom:.6rem; }.next-event span { font:500 .64rem var(--mono); text-transform:uppercase; }.next-event strong { font:clamp(2.6rem,6vw,6rem)/.8 var(--serif); letter-spacing:-.07em; }.next-event i { color:var(--red); font-size:2rem; font-style:normal; }
.event-additional-copy { margin-top:1.35rem; font-size:1rem; line-height:1.6; }.event-additional-copy p { margin:0 0 1rem; }.event-additional-copy p:last-child { margin-bottom:0; }
.topbar[data-header-tone="light"] .nav-desktop a,.topbar[data-header-tone="light"] .menu-button { color:var(--paper); }.topbar[data-header-tone="dark"] .nav-desktop a,.topbar[data-header-tone="dark"] .menu-button { color:var(--ink); }.topbar .nav-desktop .active > a,.topbar .nav-desktop .active { color:var(--red); }
.company-hero { min-height:82svh; padding:clamp(7rem,16vw,13rem) 0 clamp(5rem,10vw,8rem); position:relative; isolation:isolate; display:flex; align-items:flex-end; overflow:hidden; color:var(--paper); background:var(--ink); }.company-hero:before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(4,10,30,.88),rgba(4,10,30,.3) 58%,rgba(4,10,30,.08)); }.company-hero-photo { position:absolute; inset:0; z-index:-2; }.company-hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center 35%; filter:grayscale(1) contrast(1.12); }.company-hero .container-fluid { position:relative; z-index:1; }.company-hero h1 { color:var(--paper); }.company-hero h1 em { color:var(--yellow); }.company-hero .hero-aside { max-width:25rem; color:var(--paper); font-size:1.06rem; line-height:1.55; }
.event-season-navigation { padding:clamp(4rem,9vw,7rem) 0; background:#ddd5c3; }.event-season-navigation .season-index { display:grid; grid-template-columns:1fr 1.35fr 1fr; border:1px solid var(--ink); }.season-index-card { min-height:22rem; padding:1.3rem; display:flex; flex-direction:column; color:var(--ink); background:var(--paper); transition:transform .35s ease; }.season-index-card:hover { color:var(--ink); transform:translateY(-.5rem); }.season-index-card--previous { background:#59b9d5; }.season-index-card--next { color:var(--paper); background:var(--red); }.season-index-card--edge { color:rgba(16,16,25,.56); background:rgba(243,240,232,.45); }.season-index-card small,.season-index-card span { font:500 .63rem var(--mono); text-transform:uppercase; letter-spacing:.05em; }.season-index-card strong { margin:auto 0; font:clamp(2.3rem,4.4vw,4.6rem)/.8 var(--serif); letter-spacing:-.07em; }.season-index-center { min-height:22rem; padding:1.3rem; display:flex; flex-direction:column; justify-content:space-between; border-left:1px solid var(--ink); border-right:1px solid var(--ink); }.season-index-center b { color:var(--red); font:clamp(5rem,10vw,10rem)/.7 var(--serif); letter-spacing:-.1em; }.season-index-center p { max-width:18rem; margin:0; font-size:.9rem; line-height:1.5; }
.courses-hero { min-height:86svh; position:relative; isolation:isolate; display:flex; align-items:flex-end; color:var(--paper); overflow:hidden; background:var(--red); }.courses-hero:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(14,15,25,.86),rgba(239,63,54,.18)); }.courses-hero-image { position:absolute; inset:0; z-index:-2; }.courses-hero-image img { width:100%; height:100%; object-fit:cover; object-position:center; filter:grayscale(1) contrast(1.22); mix-blend-mode:multiply; }.courses-hero-content { padding-bottom:clamp(3rem,8vw,6rem); }.courses-hero h1 { margin:.8rem 0 1rem; font:clamp(4.3rem,10vw,10rem)/.72 var(--serif); letter-spacing:-.075em; }.courses-hero h1 em { color:var(--yellow); }.courses-hero-content>p:last-child { max-width:28rem; font-size:1.1rem; }.course-intro { padding:clamp(5rem,11vw,9rem) 0; }.course-intro .col-lg-4>p { font-size:1.08rem; line-height:1.55; }.course-presentation { padding-top:1rem; border-top:1px solid var(--ink); font:500 .7rem/1.55 var(--mono); text-transform:uppercase; }.course-grid { padding:0 0 clamp(5rem,10vw,8rem); }.course-card { min-height:32rem; padding:1.4rem; display:flex; flex-direction:column; color:var(--ink); }.course-card-yellow { background:var(--yellow); }.course-card-blue { background:#62bbd5; }.course-card-red { color:var(--paper); background:var(--red); }.course-id,.course-age,.course-card>div p { font:500 .62rem/1.5 var(--mono); text-transform:uppercase; letter-spacing:.03em; }.course-id { color:var(--red); }.course-card-red .course-id { color:var(--yellow); }.course-card h3 { margin:.9rem 0 auto; font:clamp(3.2rem,5vw,5rem)/.77 var(--serif); letter-spacing:-.07em; }.course-teachers { border-top:1px solid currentColor; padding-top:.65rem; }.course-method { padding:clamp(4rem,9vw,8rem) 0; color:var(--paper); background:var(--ink); }.course-method img { width:100%; max-height:35rem; object-fit:cover; filter:contrast(1.08); }.course-method .col-lg-6 p:last-child { max-width:29rem; margin-top:1.8rem; line-height:1.6; }.enrolment { padding:clamp(5rem,10vw,9rem) 0; color:var(--paper); background:var(--red); }.enrolment h2 { margin:0; font:clamp(4.1rem,10vw,9.5rem)/.77 var(--serif); letter-spacing:-.07em; }
.company-hero { padding:clamp(7rem,16vw,13rem) 0 clamp(5rem,10vw,8rem); color:var(--ink); background:var(--paper); }.company-hero h1 { margin:1.4rem 0 0; font:clamp(4.2rem,10vw,10rem)/.73 var(--serif); letter-spacing:-.075em; }.company-hero h1 em { color:var(--red); }.company-hero .col-lg-3 p { font-size:1.06rem; line-height:1.55; }.company-portrait-grid { padding:0 0 clamp(5rem,10vw,9rem); }.company-portrait-grid figure { margin:0; }.company-portrait-grid img { width:100%; aspect-ratio:.76; object-fit:cover; filter:grayscale(1) contrast(1.1); transition:filter .4s ease; }.company-portrait-grid figure:hover img { filter:none; }.company-portrait-grid figcaption { padding-top:.5rem; font:500 .62rem var(--mono); text-transform:uppercase; }.company-text { padding:clamp(5rem,11vw,9rem) 0; color:var(--paper); background:var(--ink); }.company-text .col-lg-4 p { font-size:1.05rem; line-height:1.6; }.company-values { padding:clamp(5rem,10vw,8rem) 0; background:var(--yellow); }.value-number { color:var(--red); font:clamp(2.5rem,5vw,5rem)/.9 var(--serif); }.company-values h3 { font:clamp(2rem,3.5vw,3.8rem)/.85 var(--serif); letter-spacing:-.05em; }
@media (max-width:767px) { .calendar-tools { align-items:flex-start; flex-direction:column; }.schedule-row,.schedule-featured { grid-template-columns:3.7rem 1fr auto; }.schedule-featured img { display:none; }.next-event a { grid-template-columns:1fr auto; }.next-event strong { grid-column:1/-1; grid-row:1; }.next-event span { grid-row:2; }.event-hero { min-height:76svh; }.season-hero { min-height:67svh; }.season-hero-content h1 em { margin-left:5vw; }.event-facts .col-md-3 { border-bottom:1px solid rgba(255,255,255,.2); padding-bottom:1rem; }.course-card { min-height:24rem; }.company-hero h1 { font-size:4.8rem; }.event-season-navigation .season-index { grid-template-columns:1fr; }.season-index-center { min-height:auto; border-left:0; border-right:0; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }.season-index-card { min-height:16rem; } }

.event-body { max-width:31rem; line-height:1.65; }
.event-credits { padding-top:1.2rem; border-top:1px solid currentColor; }

.company-statement { padding:clamp(4.5rem,9vw,8rem) 0; background:var(--paper); }.company-statement .col-lg-4 p { max-width:28rem; font-size:1.05rem; line-height:1.65; }.company-lead { max-width:52rem; margin:1rem 0 0; font:clamp(1.7rem,3vw,3.25rem)/1.15 var(--serif); letter-spacing:-.035em; }.company-portrait-grid figcaption { display:flex; justify-content:space-between; gap:.8rem; }.company-portrait-grid figcaption span { color:var(--red); }.person-card { min-height:30rem; display:flex; flex-direction:column; justify-content:space-between; color:var(--paper); background:var(--red); padding:1.4rem; }.person-card-name { font:clamp(3.5rem,6vw,6rem)/.78 var(--serif); letter-spacing:-.07em; }.person-card figcaption { margin-top:auto; }.company-timeline { padding:clamp(5rem,10vw,9rem) 0; color:var(--paper); background:var(--ink); }.timeline-row { display:grid; grid-template-columns:10rem 1fr; align-items:baseline; gap:1rem; padding:1.35rem 0; border-top:1px solid rgba(243,240,232,.35); }.timeline-row:last-child { border-bottom:1px solid rgba(243,240,232,.35); }.timeline-row span { color:var(--yellow); font:clamp(1.8rem,3vw,3rem)/.8 var(--serif); }.timeline-row p { max-width:48rem; margin:0; font-size:clamp(1.05rem,1.6vw,1.5rem); line-height:1.3; }
.archive-header { color:var(--ink); background:var(--yellow); position:relative; z-index:5; }.archive-header .nav-desktop .active { color:var(--red); }.archive-hero { min-height:73svh; padding:clamp(6rem,15vw,12rem) 0 clamp(3rem,7vw,6rem); color:var(--ink); background:var(--yellow); position:relative; overflow:hidden; }.archive-hero:after { content:"ARCH"; position:absolute; right:-.08em; bottom:-.22em; color:rgba(239,63,54,.2); font:clamp(13rem,34vw,35rem)/.7 var(--serif); letter-spacing:-.12em; pointer-events:none; }.archive-hero h1 { margin:1rem 0 0; position:relative; z-index:1; font:clamp(4.5rem,11vw,11rem)/.71 var(--serif); letter-spacing:-.08em; }.archive-hero h1 em { color:var(--red); }.archive-hero .col-lg-3 p { position:relative; z-index:1; max-width:22rem; font-size:1.06rem; line-height:1.55; }.archive-year { position:absolute; z-index:1; right:2rem; bottom:2rem; margin:0; color:var(--red); font:clamp(2.4rem,5vw,5rem)/.8 var(--serif); letter-spacing:-.07em; }.archive-manifesto { padding:clamp(5rem,11vw,9rem) 0; }.archive-manifesto h2,.archive-callout h2 { margin:0; font:clamp(3.9rem,9vw,9rem)/.77 var(--serif); letter-spacing:-.07em; }.archive-manifesto h2 em,.archive-callout h2 em { color:var(--red); }.archive-manifesto .col-lg-4 p { max-width:28rem; line-height:1.6; }.archive-map { padding:clamp(4rem,8vw,7rem) 0; color:var(--paper); background:var(--ink); }.archive-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.2); }.archive-card { min-height:22rem; padding:1.2rem; display:flex; flex-direction:column; color:var(--ink); transition:transform .4s cubic-bezier(.2,.8,.2,1); }.archive-card:hover { transform:translateY(-.6rem) rotate(-1deg); }.archive-card span,.archive-card em { font:500 .6rem var(--mono); font-style:normal; text-transform:uppercase; letter-spacing:.04em; }.archive-card strong { margin:auto 0 .8rem; font:clamp(2.2rem,4vw,4.6rem)/.8 var(--serif); letter-spacing:-.07em; }.archive-card i { align-self:flex-end; font-style:normal; font-size:1.8rem; }.archive-card-red { background:var(--red); color:var(--paper); }.archive-card-blue { background:#59b9d5; }.archive-card-paper { background:var(--paper); }.archive-card-yellow { background:var(--yellow); }.archive-listing { padding:clamp(4rem,10vw,9rem) 0; }.archive-category { display:grid; grid-template-columns:2fr 1fr; gap:3rem; align-items:end; padding:2rem 0; border-top:1px solid var(--ink); }.archive-category:last-child { border-bottom:1px solid var(--ink); }.archive-category h2 { margin:0; font:clamp(2.8rem,6vw,6.2rem)/.78 var(--serif); letter-spacing:-.07em; }.archive-category p:last-child { margin:0; max-width:28rem; line-height:1.6; }.archive-callout { padding:clamp(5rem,11vw,9rem) 0; color:var(--paper); background:var(--red); }.archive-callout h2 em { color:var(--yellow); }.archive-callout>div>p:last-child { max-width:29rem; margin-top:1.5rem; font-size:1.08rem; line-height:1.6; }
@media (max-width:767px) { .timeline-row,.archive-category { grid-template-columns:1fr; gap:.7rem; }.person-card { min-height:22rem; }.archive-grid { grid-template-columns:1fr 1fr; }.archive-card { min-height:15rem; }.archive-hero:after { font-size:17rem; }.archive-year { right:1rem; }.company-lead { font-size:1.8rem; } }
@media (max-width:767px) { .venue-stripes { grid-template-columns:1fr; }.venue-stripe { min-height:16rem; }.venue-fact { grid-template-columns:1fr; gap:.35rem; }.venue-hero:after { font-size:19rem; }.venue-photo-credit { left:1rem; right:auto; } }

/* Archivio: proof of the cascading path season → show. */
.archive-season-hero { min-height:78svh; position:relative; isolation:isolate; display:flex; align-items:end; overflow:hidden; color:var(--paper); background:var(--water); }.archive-season-hero:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(3,15,35,.92),rgba(3,15,35,.2)),linear-gradient(0deg,rgba(3,15,35,.56),transparent 55%); }.archive-season-image { position:absolute; inset:0; z-index:-2; }.archive-season-image img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.2); }.archive-season-hero .container-fluid { padding-bottom:clamp(3rem,7vw,6rem); }.archive-season-hero h1 { margin:.8rem 0 0; font:clamp(4.7rem,11vw,11rem)/.7 var(--serif); letter-spacing:-.08em; }.archive-season-hero h1 em { color:var(--yellow); }.archive-season-hero .col-lg-3>p:first-child { max-width:22rem; font-size:1.08rem; line-height:1.55; }.archive-source { margin-top:2rem; color:var(--yellow); font:500 .6rem/1.4 var(--mono); text-transform:uppercase; letter-spacing:.04em; }.archive-season-year { position:absolute; z-index:1; right:2.3rem; top:6.5rem; margin:0; text-align:right; color:rgba(241,216,61,.85); font:clamp(2.6rem,5.4vw,5.8rem)/.72 var(--serif); letter-spacing:-.08em; }.archive-season-note { padding:clamp(5rem,11vw,9rem) 0; }.archive-season-note h2,.archive-show-story h2 { margin:0; font:clamp(3.9rem,8vw,8.5rem)/.78 var(--serif); letter-spacing:-.075em; }.archive-season-note h2 em,.archive-show-story h2 em { color:var(--red); }.archive-season-note .col-lg-4 p { max-width:29rem; line-height:1.65; }.archive-program { padding:0 0 clamp(5rem,10vw,9rem); }.archive-program-bar { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 0; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }.archive-program-bar span { font:500 .6rem var(--mono); text-transform:uppercase; letter-spacing:.04em; }.archive-event-list>li { display:grid; grid-template-columns:5rem minmax(0,1fr) clamp(5rem,10vw,10rem) auto; gap:1.5rem; align-items:center; padding:1.35rem 0; border-bottom:1px solid rgba(16,16,25,.3); }.archive-event-index { color:var(--red); font:clamp(2.2rem,4vw,4.5rem)/.8 var(--serif); letter-spacing:-.07em; }.archive-event-list h3 { margin:.35rem 0 0; font:clamp(2.5rem,5vw,5.7rem)/.78 var(--serif); letter-spacing:-.075em; }.archive-event-list h3 a:hover { color:var(--red); }.archive-event-list h3 em { color:var(--red); }.archive-event-credit { max-width:42rem; margin:.65rem 0 0; color:#575862; font:500 .6rem/1.55 var(--mono); text-transform:uppercase; letter-spacing:.035em; }.archive-event-thumb { display:block; overflow:hidden; aspect-ratio:1.34; background:#d8d4c9; }.archive-event-thumb img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .45s cubic-bezier(.2,.8,.2,1); }.archive-event-list>li:hover .archive-event-thumb img { transform:scale(1.06); }.archive-event-status { margin-top:.5rem; font:500 .58rem var(--mono); text-transform:uppercase; letter-spacing:.04em; color:#6b6b70; }.archive-event-featured { padding-left:1rem!important; padding-right:1rem!important; color:var(--paper); background:var(--red); }.archive-event-featured .archive-event-index { color:var(--yellow); }.archive-event-featured .event-kind,.archive-event-featured .archive-event-credit { color:var(--yellow); }.archive-arrow { color:var(--yellow); font-size:2rem; }.archive-season-next { padding:clamp(5rem,11vw,9rem) 0; color:var(--paper); background:var(--red); }.archive-season-next h2 { margin:0; font:clamp(4rem,10vw,9rem)/.76 var(--serif); letter-spacing:-.08em; }.archive-season-next h2 em { color:var(--yellow); }
.archive-show-hero { min-height:77svh; position:relative; isolation:isolate; display:flex; align-items:end; overflow:hidden; color:var(--paper); background:var(--ink); }.archive-show-hero:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(5,7,16,.94),rgba(5,7,16,.25)),linear-gradient(0deg,rgba(5,7,16,.55),transparent 60%); }.archive-show-photo { position:absolute; inset:0; z-index:-2; }.archive-show-photo img { width:100%; height:100%; object-fit:cover; filter:saturate(.72) contrast(1.14); }.archive-show-copy { padding-bottom:clamp(3rem,8vw,6rem); }.archive-show-copy h1 { margin:.7rem 0 1.2rem; font:clamp(6rem,15vw,15rem)/.67 var(--serif); letter-spacing:-.09em; }.archive-show-copy h1 span { color:var(--yellow); }.archive-show-copy>p:last-child { font:italic clamp(1.3rem,2vw,2.1rem) var(--serif); }.archive-show-year { position:absolute; right:2rem; top:6.3rem; margin:0; color:var(--yellow); font:clamp(3rem,6vw,6rem)/.75 var(--serif); letter-spacing:-.08em; }.archive-show-facts { padding:clamp(4rem,8vw,7rem) 0; color:var(--paper); background:var(--ink); }.archive-show-facts .fact-main { margin:1rem 0 0; }.archive-show-facts .col-md-4>p:last-child { margin:1rem 0 0; line-height:1.65; }.archive-show-story { padding:clamp(5rem,11vw,9rem) 0; }.archive-show-lead { font-size:1.25rem; line-height:1.55; }.archive-show-story .col-lg-4>p:last-child { line-height:1.65; }.archive-show-gallery { padding:0 0 clamp(5rem,10vw,9rem); }.archive-show-gallery img { width:100%; min-height:32rem; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.1); }.archive-credits { padding:1rem 0; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); font:500 .7rem/1.65 var(--mono); text-transform:uppercase; }.archive-asset-note { margin:2rem 0 0; color:#575862; font-size:.88rem; line-height:1.55; }.archive-show-links { padding:clamp(4rem,8vw,7rem) 0; color:var(--paper); background:var(--red); }.archive-show-links a { display:grid; grid-template-columns:12rem 1fr auto; gap:1rem; align-items:end; padding:1rem 0; border-bottom:1px solid rgba(255,255,255,.65); }.archive-show-links span { font:500 .63rem var(--mono); text-transform:uppercase; letter-spacing:.04em; }.archive-show-links strong { font:clamp(2.2rem,5vw,5.5rem)/.8 var(--serif); letter-spacing:-.07em; }.archive-show-links i { color:var(--yellow); font-size:2rem; font-style:normal; }
@media (max-width:767px) { .archive-season-year,.archive-show-year { right:1rem; }.archive-season-year { top:5rem; }.archive-event-list>li { grid-template-columns:3.4rem minmax(0,1fr) auto; gap:.8rem; }.archive-event-thumb { display:none; }.archive-arrow { grid-column:3; grid-row:1; align-self:start; }.archive-program-bar { align-items:flex-start; flex-direction:column; }.archive-show-gallery img { min-height:22rem; }.archive-show-links a { grid-template-columns:1fr auto; }.archive-show-links strong { grid-column:1/-1; grid-row:1; }.archive-show-links span { grid-row:2; } }

/* Archive rows deliberately share the calm, uniform programme-list treatment. */
.archive-event-list>li.archive-event-featured { padding:1.35rem 0!important; color:var(--ink); background:transparent; }
.archive-event-list>li.archive-event-featured .archive-event-index,
.archive-event-list>li.archive-event-featured .event-kind,
.archive-event-list>li.archive-event-featured .archive-event-credit,
.archive-event-list>li .archive-arrow { color:var(--red); }
.archive-event-list>li { grid-template-columns:5rem minmax(0,1fr) minmax(0,200px) 2rem!important; }
.archive-event-thumb { width:200px!important; min-width:0; max-width:200px!important; height:150px; justify-self:end; }
.archive-event-thumb img { width:200px!important; max-width:100%!important; height:150px!important; object-fit:cover; }

/* The archive list borrows the current-season programme rhythm: compact rows,
   readable titles and a quiet image column. */
.archive-event-list>li { grid-template-columns:6.5rem minmax(0,1fr) 9rem auto!important; min-height:7.2rem; gap:1rem; padding:1rem 0; }
.archive-event-index { font:clamp(1.8rem,3vw,3rem)/.75 var(--serif); letter-spacing:-.06em; }
.archive-event-list h3 { margin:.25rem 0; font:clamp(1.5rem,2.8vw,3rem)/.9 var(--serif); letter-spacing:-.05em; }
.archive-event-credit { margin:0; color:#50515b; font:500 .62rem/1.35 var(--mono); text-transform:uppercase; letter-spacing:.03em; }
.archive-event-thumb { width:9rem!important; max-width:9rem!important; height:5.3rem; }
.archive-event-thumb img { width:9rem!important; height:5.3rem!important; }
.archive-arrow { font-size:1.5rem; }
@media (max-width:767px) { .archive-event-list>li { grid-template-columns:3.7rem minmax(0,1fr) auto!important; }.archive-event-thumb { display:none; } }

/* Historical show pages keep their editorial scale below the current season's
   full-screen event treatment. */
.archive-show-copy h1 { font:clamp(3.6rem,8vw,8.2rem)/.76 var(--serif); letter-spacing:-.075em; }
.archive-show-story h2 { font:clamp(2.8rem,5.4vw,5.5rem)/.82 var(--serif); letter-spacing:-.06em; }
.archive-show-lead { font-size:1.08rem; line-height:1.6; }
.archive-show-facts .fact-main,
.archive-show-facts .col-md-4 > .fact-main {
  margin:1rem 0 0;
  font:clamp(1.5rem,2.6vw,2.8rem)/.93 var(--serif);
  letter-spacing:-.04em;
}
/* This deliberately outranks the generic final-paragraph rule above. */
.archive-show-facts .col-md-4 > p.fact-main:last-child { line-height:.93; }
.archive-season-nav { padding:0 0 clamp(4rem,8vw,7rem); background:var(--paper); }
.archive-season-nav__grid { display:grid; grid-template-columns:1fr 1fr 1fr; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }
.archive-season-nav a { min-height:10rem; padding:1.2rem; display:flex; flex-direction:column; justify-content:space-between; color:var(--ink); }
.archive-season-nav a + a { border-left:1px solid rgba(16,16,25,.35); }
.archive-season-nav a:hover { color:var(--paper); background:var(--red); }
.archive-season-nav span { font:500 .6rem var(--mono); text-transform:uppercase; letter-spacing:.04em; }
.archive-season-nav strong { max-width:15rem; font:clamp(1.55rem,2.6vw,3rem)/.86 var(--serif); letter-spacing:-.05em; }
.archive-season-nav__index { align-items:center; text-align:center; background:#ddd5c3; }
.archive-season-nav__next { text-align:right; align-items:flex-end; }
@media (max-width:767px) { .archive-show-copy h1 { font-size:3.8rem; }.archive-show-story h2 { font-size:3rem; }.archive-season-nav__grid { grid-template-columns:1fr; }.archive-season-nav a + a { border-left:0; border-top:1px solid rgba(16,16,25,.35); }.archive-season-nav a { min-height:7.5rem; }.archive-season-nav__next { text-align:left; align-items:flex-start; } }

.archive-show-nav { padding:0 0 clamp(4rem,8vw,7rem); color:var(--paper); background:var(--ink); }
.archive-show-nav__grid { display:grid; grid-template-columns:1fr 1fr 1fr; border-top:1px solid rgba(243,240,232,.55); border-bottom:1px solid rgba(243,240,232,.55); }
.archive-show-nav a { min-height:10rem; padding:1.2rem; display:flex; flex-direction:column; justify-content:space-between; color:var(--paper); }
.archive-show-nav a + a { border-left:1px solid rgba(243,240,232,.35); }
.archive-show-nav a:hover { color:var(--ink); background:var(--yellow); }
.archive-show-nav span { font:500 .6rem var(--mono); text-transform:uppercase; letter-spacing:.04em; }
.archive-show-nav strong { max-width:15rem; font:clamp(1.55rem,2.6vw,3rem)/.86 var(--serif); letter-spacing:-.05em; }
.archive-show-nav__index { align-items:center; text-align:center; color:var(--ink)!important; background:var(--red); }
.archive-show-nav__next { text-align:right; align-items:flex-end; }
@media (max-width:767px) { .archive-show-nav__grid { grid-template-columns:1fr; }.archive-show-nav a + a { border-left:0; border-top:1px solid rgba(243,240,232,.35); }.archive-show-nav a { min-height:7.5rem; }.archive-show-nav__next { text-align:left; align-items:flex-start; } }

/* Joomla integration: these keep the rendered shell identical to Studio 02. */
body.viartisti-site { font-family:var(--sans); }
.wordmark img { display:block; width:100%; height:100%; object-fit:contain; object-position:left center; }
.nav-desktop .mod-menu { display:flex; align-items:center; gap:1.5rem; margin:0; padding:0; list-style:none; }
.nav-desktop .mod-menu a { font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.nav-desktop .mod-menu .active > a { color:var(--red); border-bottom:1px solid currentColor; }
.site-menu-canvas .mod-menu { margin:0; padding:0; list-style:none; }
.site-menu-canvas .mod-menu a { display:block; margin-bottom:.6rem; font:clamp(2.5rem,7vw,5rem)/.94 var(--serif); }
.site-menu-canvas .mod-menu a:hover { color:var(--yellow); }
.site-breadcrumbs { display:none; }
.site-main { min-height:40vh; }
.site-main .com-content-article,.site-main .blog { max-width:none; margin:0; padding:0; }
.footer-v2 .small { font:500 .62rem/1.5 var(--mono); letter-spacing:.03em; }

/* Hero alignment: the introductory composition ends on the same baseline as venue and courses. */
.season-hero { min-height:78svh; padding:0; display:flex; align-items:flex-end; }
.season-hero-content { width:100%; padding-bottom:clamp(3rem,7vw,6rem); }

/* A programme card is one complete first-screen scene: image, title and practical details. */
.event-hero { min-height:100svh; display:flex; align-items:stretch; }
.event-hero--no-image { min-height:100svh; }
.event-hero-frame { width:100%; min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end; }
.event-hero-copy { padding:0 0 clamp(.9rem,2vw,1.8rem); }
.event-facts { margin:0; padding:clamp(1.1rem,2.6vw,2.5rem) 0 clamp(1.2rem,3vw,3rem); background:transparent; }
.event-hero .event-facts { text-shadow:0 2px 18px rgba(5,6,12,.9); }
.event-hero .event-hero-photo img { object-position:center 64%; }
.event-facts .fact-main { margin-bottom:0; }
.event-facts .col-md-3:nth-child(3) .fact-main { font:500 clamp(.68rem,1vw,.9rem)/1.42 var(--mono); letter-spacing:.01em; }

@media (max-width:767px) {
  .season-hero { min-height:72svh; }
  .season-hero-content { padding-bottom:2rem; }
  .event-hero, .event-hero--no-image, .event-hero-frame { min-height:100svh; }
  .event-hero-copy { padding-top:5.5rem; }
  .event-facts { padding-top:1rem; padding-bottom:1.2rem; }
}

/* Existing com_content data mapped onto the approved Studio 02 page grammar. */
.vi-article__header { min-height:82svh; position:relative; isolation:isolate; display:flex; align-items:flex-end; overflow:hidden; color:var(--paper); background:var(--ink); }
.vi-article__header::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(9,10,15,.9) 0%,rgba(9,10,15,.38) 55%,rgba(9,10,15,.06)); }
.vi-article__header.has-hero::after { content:""; position:absolute; inset:0; z-index:-2; background-image:var(--vi-hero); background-position:center var(--vi-hero-y,50%); background-size:cover; filter:saturate(.7) contrast(1.15); }
.vi-season .vi-article__header { min-height:70svh; padding:clamp(5rem,12vw,9rem) 0 3rem; background:var(--water); }
.vi-season .vi-article__header::before { background:linear-gradient(90deg,rgba(4,10,30,.94),rgba(4,10,30,.28)),linear-gradient(0deg,rgba(4,10,30,.55),transparent); }
.vi-article__header-inner { width:100%; padding-bottom:clamp(3rem,7vw,6rem); }
.vi-article__header h1 { max-width:12ch; margin:.8rem 0 0; font:clamp(4.6rem,10vw,10rem)/.7 var(--serif); letter-spacing:-.075em; }
.vi-season .vi-article__header h1 { font-size:clamp(5rem,13vw,12rem); line-height:.69; }
.vi-season .vi-article__header h1 em { display:block; margin-left:9vw; color:var(--yellow); }
.vi-article__date,.vi-article__meta,.vi-article__header .eyebrow { font:500 .65rem/1.6 var(--mono); text-transform:uppercase; letter-spacing:.05em; }
.vi-article__date { color:var(--yellow); margin:1rem 0 0; }.vi-article__meta { margin:1.2rem 0 0; }
.vi-article__content { padding:clamp(5rem,11vw,10rem) 0; }.vi-prose { max-width:48rem; font-size:1.08rem; line-height:1.65; }.vi-prose h2 { margin:2rem 0 1rem; font:clamp(3.2rem,7vw,7rem)/.8 var(--serif); letter-spacing:-.07em; }.vi-prose h3 { font:clamp(2rem,4vw,4rem)/.85 var(--serif); letter-spacing:-.05em; }
.vi-show .vi-article__content { background:var(--paper); }.vi-show .vi-prose { margin-left:auto; }.vi-ticket { margin:2rem 0 0 auto; max-width:30rem; padding:1.2rem; color:var(--ink); background:var(--yellow); }
.vi-season .vi-article__content { padding-top:0; }.vi-season .vi-prose { max-width:25rem; margin-left:auto; padding:clamp(5rem,10vw,9rem) 0; }
.vi-season-programme { padding:clamp(5rem,10vw,9rem) 0; background:var(--paper); }.vi-section-heading { max-width:80rem; margin:0 auto 2rem; padding:0 1.5rem; }.vi-section-heading h2 { margin:.7rem 0 0; font:clamp(3.7rem,8vw,8.3rem)/.78 var(--serif); letter-spacing:-.07em; }
.vi-show-grid { max-width:80rem; display:block; margin:auto; padding:0 1.5rem; }.vi-show-card { display:grid; grid-template-columns:6.5rem 1fr 9rem auto; gap:1rem; align-items:center; min-height:7.2rem; padding:1rem 0; color:var(--ink); border-bottom:1px solid rgba(16,16,25,.35); }.vi-show-card__image { order:2; height:5.3rem; background-size:cover; background-position:center; }.vi-show-card__body { display:contents; }.vi-show-card__body .eyebrow { grid-column:1; grid-row:1; font:clamp(1.8rem,3vw,3rem)/.75 var(--serif); letter-spacing:-.06em; }.vi-show-card__body strong { grid-column:2; font:clamp(1.5rem,2.8vw,3rem)/.9 var(--serif); letter-spacing:-.05em; }.vi-show-card__body > span:not(.eyebrow):not(.vi-show-card__arrow) { grid-column:2; font:500 .62rem var(--mono); text-transform:uppercase; }.vi-show-card__arrow { grid-column:4; color:var(--red); font-size:1.5rem; }
@media (max-width:767px) { .vi-show-card { grid-template-columns:3.7rem 1fr auto; }.vi-show-card__image { display:none; }.vi-show-card__arrow { grid-column:3; }.vi-show .vi-prose { margin-left:0; } }

/* Accessibility pass: parity between pointer and keyboard, and AA-safe small text. */
.round-link:is(:hover,:focus-visible) { transform:rotate(10deg) scale(1.07); }
.round-link span { color:inherit; }
.round-link .link-arrow { color:inherit; }
.footer-v2 .footer-contact-link { display:table; margin-top:.8rem; color:var(--ink); }
.footer-v2 .footer-contact-link .link-arrow { color:inherit; }
.footer-legal { display:flex; flex-wrap:wrap; gap:.55rem 1rem; margin:1.35rem 0 0; }
.footer-legal .text-link,.footer-legal__preferences { color:var(--ink); font:500 .62rem/1.45 var(--mono); letter-spacing:.03em; text-transform:uppercase; }
.footer-legal__preferences { padding:0; border:0; border-bottom:1px solid currentColor; background:transparent; cursor:pointer; }
.footer-legal :is(.text-link,.footer-legal__preferences):is(:hover,:focus-visible) { color:var(--red); }
.company-portrait-grid .section-head h2 { margin-bottom:30px; }
.schedule-row[hidden] { display:none!important; }
.schedule-row:focus-within { padding-left:.75rem; padding-right:.75rem; background:rgba(197,51,45,.1); }
.season-index-card:focus-visible { color:inherit; transform:translateY(-.5rem); }
.topbar[data-header-tone="light"] .nav-desktop .active > a { color:var(--yellow); }
.topbar[data-header-tone="dark"] .nav-desktop .active > a { color:var(--red); }
.courses-v2 .text-warning,.course-card-red .course-id,.archive-event-featured .event-kind { color:var(--paper)!important; }
.enrolment .text-warning { color:var(--paper)!important; }
.footer-v2 h2 em { color:var(--red); }
.season-index-card--edge { color:rgba(16,16,25,.72); }
.menu-canvas .mod-menu { margin:0; padding:0; list-style:none; }
.menu-canvas .mod-menu a { display:block; }
.footer-credit { margin:1.25rem 0 0; font:500 .62rem/1.5 var(--mono); letter-spacing:.03em; text-transform:uppercase; }
.footer-credit a { border-bottom:1px solid currentColor; }
.footer-credit a:is(:hover,:focus-visible) { color:var(--red); }

/* Motion language: arrows turn only when their parent is an actual interactive control. */
.link-arrow,.schedule-arrow { display:inline-block; font-family:var(--mono),ui-monospace,monospace; font-variant-emoji:text; transform-origin:center; transition:transform .36s cubic-bezier(.2,.8,.2,1),color .28s ease; }
:is(a,button):is(:hover,:focus-visible) .link-arrow { transform:rotate(-.25turn) translateX(.08em); }
.round-link .link-arrow { display:block; }

/* The cursor is deliberately unavailable to touch, keyboard and reduced-motion users. */
.site-cursor { display:none; }
@media (min-width:992px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .has-custom-cursor,
  .has-custom-cursor :is(a,button,input,select,textarea,summary,[role="button"]) { cursor:none!important; }
  .site-cursor { position:fixed; z-index:9999; display:block; inset:0 auto auto 0; color:var(--paper); mix-blend-mode:difference; pointer-events:none; opacity:0; transition:opacity .18s ease; }
  .site-cursor.is-visible { opacity:1; }
  .site-cursor__dot,.site-cursor__ring { position:absolute; top:0; left:0; border-radius:50%; will-change:transform; }
  .site-cursor__dot { width:.48rem; height:.48rem; background:currentColor; }
  .site-cursor__ring { width:2.25rem; height:2.25rem; border:1px solid currentColor; transition:width .3s ease,height .3s ease,border-color .3s ease,background .3s ease; }
  .site-cursor.is-link .site-cursor__ring { width:3.8rem; height:3.8rem; color:var(--yellow); background:rgba(239,63,54,.15); }
}
@media (max-width:767px) {
  /* The supplied hero is landscape: keep the dolphin, not its empty left margin, in the mobile crop. */
  .hero-art img { object-position:88% 48%; transform:scale(1.01); }
  .menu-canvas .offcanvas-body nav, .menu-canvas .mod-menu, .menu-canvas .mod-menu li { min-width:0; }
  .menu-canvas .mod-menu { display:block; }
  .menu-canvas .mod-menu li { display:block; }
  .menu-canvas .mod-menu a { display:inline-block; inline-size:fit-content; max-inline-size:12ch; white-space:normal; overflow-wrap:normal; word-break:normal; hyphens:none; }
  .event-hero-copy { padding-left:1.25rem; padding-right:1.25rem; }
}
@media (forced-colors:active) {
  :where(a[href], button, input, select, textarea, [tabindex]):focus-visible { outline:3px solid CanvasText; outline-offset:4px; box-shadow:none; }
}
