/* ==========================================================================
   AYA YOUTH — House Lights
   Design system · v1.0 · September 2026
   Surfaces: house (near-black) · velvet (oxblood) · bone (paper)
   Type:     Ibarra Real Nova (headings, logo lockup) · Plus Jakarta Sans (text)
   ========================================================================== */

/* ---------- Fonts ---------- */
@font-face{font-family:"Plus Jakarta Sans";src:url("../fonts/jakarta-var.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Ibarra Real Nova";src:url("../fonts/ibarra-var.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  --house:#0D0B0B; --house-2:#161212; --house-3:#221C1C;
  --velvet:#46101A; --velvet-deep:#2B0A10; --velvet-lift:#6A1727; --velvet-ink:#1F070B;
  --bone:#FFFFFF; --bone-2:#F4F3F1; --bone-3:#E6E4E0;
  --ink:#000000; --ink-2:#333333;
  --ash:#666666; --ash-d:#A0A0A0;
  --lamp:#FFE3AE;

  --sans:"Plus Jakarta Sans","Helvetica Neue",Arial,sans-serif;
  --serif:"Ibarra Real Nova","Iowan Old Style",Georgia,"Times New Roman",serif;

  --gutter:clamp(20px,4vw,64px);
  --col-gap:clamp(14px,2vw,32px);
  --max:1720px;
  --header-h:84px;

  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-curtain:cubic-bezier(.77,0,.18,1);
  --dur:.9s;

  /* section theme defaults (bone) */
  --bg:var(--bone); --fg:var(--ink); --fg-2:var(--ash); --rule:rgba(21,17,17,.14); --rule-strong:rgba(21,17,17,.55);
  color-scheme:light;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);background:var(--bone)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bone);color:var(--ink);font-family:var(--sans);font-size:16.5px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-kerning:normal;font-variant-ligatures:common-ligatures;font-feature-settings:"kern","liga","calt";overflow-x:clip}
img,picture,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p,figure,blockquote{margin:0}
hr{border:0;border-top:1px solid var(--rule);margin:0}
address{font-style:normal}
::selection{background:var(--velvet);color:var(--bone)}
:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;top:12px;left:12px;z-index:200;background:var(--bone);color:var(--ink);padding:.6em 1em;transform:translateY(-200%);transition:transform .2s}
.skip:focus{transform:none}

/* ---------- Surfaces ---------- */
[data-theme="bone"]{--bg:var(--bone);--fg:var(--ink);--fg-2:var(--ash);--rule:rgba(21,17,17,.14);--rule-strong:rgba(21,17,17,.55);background:var(--bg);color:var(--fg)}
[data-theme="paper"]{--bg:var(--bone-2);--fg:var(--ink);--fg-2:var(--ash);--rule:rgba(21,17,17,.14);--rule-strong:rgba(21,17,17,.55);background:var(--bg);color:var(--fg)}
[data-theme="house"]{--bg:var(--house);--fg:#fff;--fg-2:rgba(255,255,255,.66);--rule:rgba(255,255,255,.16);--rule-strong:rgba(255,255,255,.6);background:var(--bg);color:var(--fg)}
[data-theme="velvet"]{--bg:var(--bone-2);--fg:var(--ink);--fg-2:var(--ash);--rule:rgba(21,17,17,.14);--rule-strong:rgba(21,17,17,.55);background:var(--bg);color:var(--fg)}

/* ---------- Layout ---------- */
.wrap{padding-inline:var(--gutter);max-width:var(--max);margin-inline:auto;width:100%}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap)}
.section{padding-block:clamp(56px,7vw,104px);position:relative}
.section--tight{padding-block:clamp(40px,5vw,72px)}
.section--flush-top{padding-top:0}
.rule{border-top:1px solid var(--rule)}
.rule--strong{border-top:1px solid var(--rule-strong)}

/* Column helpers */
.c1-4{grid-column:1/5}.c1-5{grid-column:1/6}.c1-6{grid-column:1/7}.c1-7{grid-column:1/8}.c1-8{grid-column:1/9}.c1-9{grid-column:1/10}.c1-13{grid-column:1/13}
.c2-7{grid-column:2/8}.c2-8{grid-column:2/9}.c2-12{grid-column:2/12}.c3-11{grid-column:3/12}.c3-12{grid-column:3/13}.c4-12{grid-column:4/13}.c4-13{grid-column:4/13}
.c5-12{grid-column:5/12}.c5-13{grid-column:5/13}.c6-13{grid-column:6/13}.c7-13{grid-column:7/13}.c8-13{grid-column:8/13}.c9-13{grid-column:9/13}
@media (max-width:900px){.grid>[class*="c"],.dindex__head>*,.editorial>*,.quote>*{grid-column:1/-1}.grid{row-gap:clamp(24px,5vw,40px)}.dindex__head{row-gap:20px}}

/* ---------- Typography ---------- */
.display,.display-2,.display-3{display:block;font-family:var(--sans);font-weight:700;line-height:.94;letter-spacing:-.035em;text-wrap:balance;font-feature-settings:"kern","liga"}
.display{font-size:clamp(46px,7.2vw,120px)}
.display-2{font-size:clamp(38px,5.4vw,88px)}
.display-3{font-size:clamp(30px,3.8vw,60px)}
.display strong,.display-2 strong,.display-3 strong{font-weight:800}
.display em,.display-2 em,.display-3 em,.h2 em,.h3 em,.mega__title em,.bill__name em,.dlist__name em{font-family:inherit;font-style:normal;font-weight:inherit;font-size:inherit;letter-spacing:inherit}
.h2{display:block;font-family:var(--sans);font-weight:700;font-size:clamp(30px,3.5vw,56px);line-height:1;letter-spacing:-.03em;text-wrap:balance}
.h3{font-family:var(--sans);font-weight:600;font-size:clamp(20px,1.8vw,27px);line-height:1.15;letter-spacing:-.02em;text-wrap:balance}
.h4{font-family:var(--sans);font-weight:600;font-size:clamp(16px,1.2vw,19px);line-height:1.25;letter-spacing:-.01em}
.voice{font-family:var(--sans);font-weight:500;font-size:clamp(22px,2.5vw,38px);line-height:1.22;letter-spacing:-.025em;text-wrap:pretty}
.voice--sm{font-size:clamp(18px,1.6vw,24px);line-height:1.3}
.lede{font-size:clamp(18px,1.45vw,22px);line-height:1.5;font-weight:360;text-wrap:pretty;max-width:38em}
.body{max-width:36em;text-wrap:pretty}
.body p+p{margin-top:1.1em}
.body a,.prose a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.16em;text-decoration-color:var(--rule-strong)}
.body a:hover,.prose a:hover{text-decoration-color:currentColor}
.small{font-size:14px;line-height:1.5}
.muted{color:var(--fg-2)}
.label{font-family:var(--sans);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;line-height:1.3;font-feature-settings:"kern","tnum"}
.label--serif{font-family:var(--sans);text-transform:none;letter-spacing:0;font-size:14.5px;font-weight:400;color:var(--fg-2)}
.num{font-family:var(--sans);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1}
.num--giant{font-size:clamp(120px,22vw,360px);line-height:.8;letter-spacing:-.03em}
.tnum{font-feature-settings:"tnum"}
.prose{max-width:62ch;text-wrap:pretty}
.prose p{margin:0 0 1.1em}
.prose h2,.prose h3{margin:2.2em 0 .7em}
.prose ul{padding-left:1.1em;list-style:disc;margin:0 0 1.2em}
.prose li{margin:.35em 0}
.eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:clamp(20px,3vw,40px)}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.7}
.eyebrow .label{opacity:.85}

/* ---------- Buttons & links ---------- */
.btn{--pad:.95em 1.35em;display:inline-flex;align-items:center;gap:.7em;padding:var(--pad);border:1px solid var(--rule-strong);font-family:var(--sans);font-size:15px;letter-spacing:-.01em;font-weight:600;line-height:1;position:relative;isolation:isolate;overflow:hidden;transition:color .45s var(--ease-out),border-color .45s var(--ease-out)}
.btn::before{content:"";position:absolute;inset:0;background:var(--fg);transform:translateY(101%);transition:transform .55s var(--ease-out);z-index:-1}
.btn:hover::before,.btn:focus-visible::before{transform:none}
.btn:hover,.btn:focus-visible{color:var(--bg);border-color:var(--fg)}
.btn .arrow{width:15px;height:15px;flex:none;transition:transform .45s var(--ease-out)}
.btn:hover .arrow{transform:translateX(4px)}
.btn--solid{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.btn--solid::before{background:var(--velvet)}
.btn--solid:hover,.btn--solid:focus-visible{color:var(--bone);border-color:var(--velvet)}
[data-theme="velvet"] .btn--solid::before{background:var(--bone)}
[data-theme="velvet"] .btn--solid:hover{color:var(--velvet);border-color:var(--bone)}
.btn--velvet{background:var(--velvet);color:var(--bone);border-color:var(--velvet)}
.btn--velvet::before{background:var(--bone)}
.btn--velvet:hover,.btn--velvet:focus-visible{color:var(--velvet);border-color:var(--bone)}
.link{display:inline-flex;align-items:center;gap:.5em;font-family:var(--sans);font-size:15.5px;letter-spacing:-.01em;font-weight:600;position:relative;padding-bottom:.3em}
.link::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(1);transform-origin:right;transition:transform .5s var(--ease-out)}
.link:hover::after{transform:scaleX(0);transform-origin:right;animation:relink .7s var(--ease-out) forwards}
@keyframes relink{0%{transform:scaleX(0);transform-origin:right}50%{transform:scaleX(0);transform-origin:left}100%{transform:scaleX(1);transform-origin:left}}
.link .arrow{width:14px;height:14px}
.arrow{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Header ---------- */
.header{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--header-h);display:flex;flex-direction:column;color:var(--bone);transition:color .5s var(--ease-out),background-color .5s var(--ease-out),transform .6s var(--ease-out)}
.header__main{flex:1;display:flex;align-items:center}
.header.is-hidden{transform:translateY(-100%)}
.header.is-ink{color:var(--ink)}
.header.is-open{color:var(--bone)!important}
.header__inner{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px}
.brand{display:inline-flex;align-items:center;gap:14px;line-height:1}
.brand__mark{width:24px;height:52px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 852' width='384' height='852'%3E%3Cpath fill='currentColor' fill-rule='evenodd' d='M 177.162 2.305 C 176.045 3.650, 172.432 13.593, 150.015 77 C 143.501 95.425, 133.140 124.675, 126.989 142 C 113.895 178.885, 105.960 201.474, 94.495 234.500 C 89.913 247.700, 83.669 265.603, 80.621 274.285 C 68.333 309.274, 55.822 328.652, 37.769 340.653 C 29.766 345.974, 22.859 348.567, 12.841 350.013 C 2.138 351.558, 1.286 351.812, 0.574 353.669 C -0.476 356.403, 2.031 357.840, 10 359.071 C 28.022 361.854, 39.348 370.071, 54.699 391.500 C 65.632 406.763, 141.691 532.181, 148.807 546.682 L 151.350 551.864 123.734 634.682 C 108.545 680.232, 90.885 733.622, 84.488 753.327 C 71.627 792.945, 66.260 806.695, 59.264 817.954 C 49.114 834.287, 38.820 841.776, 22.850 844.443 C 18.759 845.127, 16.485 847.215, 17.357 849.487 C 17.863 850.808, 23.896 851, 64.846 851 C 105.998 851, 111.913 850.810, 113.042 849.450 C 115.139 846.922, 112.431 845.343, 103 843.596 C 92.598 841.668, 87.660 838.522, 84.063 831.535 C 81.914 827.358, 81.461 824.942, 81.156 816.020 C 80.584 799.303, 82.265 791.837, 96.753 746.750 L 104.385 723 156.595 723 L 208.804 723 209.955 726.250 C 210.587 728.038, 215.327 741.667, 220.487 756.537 C 225.646 771.408, 232.390 790.523, 235.473 799.015 C 241.472 815.541, 242.872 823.099, 241.129 829.542 C 238.830 838.036, 231.450 842.197, 215.559 843.961 C 205.847 845.039, 202.665 846.687, 204.958 849.450 C 206.099 850.825, 214.647 851, 280.500 851 C 345.002 851, 354.917 850.805, 355.989 849.513 C 358.290 846.741, 356.358 845.344, 348.342 843.982 C 336.971 842.050, 327.866 837.099, 321.783 829.542 C 316.171 822.570, 309.949 810.712, 304.182 796 C 295.938 774.968, 216.179 546.995, 215.274 541.875 C 214.789 539.135, 218.195 532.429, 237.301 498.500 C 254.903 467.242, 279.627 428.747, 297.196 405.247 C 315.974 380.129, 331.308 366.456, 345.677 362.018 C 349.367 360.878, 357.931 359.582, 365.800 358.971 C 381.955 357.718, 383 357.471, 383 354.911 C 383 352.413, 380.399 351.389, 370.673 350.059 C 355.752 348.020, 343.334 340.273, 334.771 327.663 C 327.664 317.197, 324.466 309.161, 296.299 231 C 291.047 216.425, 284.298 197.750, 281.302 189.500 C 278.306 181.250, 270.080 158.300, 263.022 138.500 C 238.562 69.876, 214.969 4.493, 214.129 3 C 212.936 0.881, 178.876 0.240, 177.162 2.305 M 165 61.468 C 165 62.276, 162.770 69.138, 160.044 76.718 C 154.697 91.587, 145.328 118.092, 125.658 174 C 118.789 193.525, 111.781 213.299, 110.084 217.941 C 108.388 222.584, 107 226.747, 107 227.191 C 107 227.636, 133.550 228, 166 228 C 198.450 228, 225 227.817, 225 227.594 C 225 227.371, 221.374 216.909, 216.942 204.344 C 212.510 191.780, 200.800 158.325, 190.920 130 C 181.040 101.675, 171.616 74.877, 169.978 70.450 C 168.340 66.022, 167 61.859, 167 61.200 C 167 60.540, 166.550 60, 166 60 C 165.450 60, 165 60.661, 165 61.468 M 102.894 239.750 C 98.094 252.250, 84.454 293.163, 82.879 299.784 C 78.773 317.050, 80.953 334.143, 88.243 341.821 C 94.514 348.427, 98.119 349.337, 120.500 349.960 C 131.500 350.266, 141.063 350.877, 141.750 351.318 C 143.576 352.487, 143.277 355.782, 141.245 356.869 C 140.280 357.385, 136.885 358.290, 133.700 358.878 C 125.500 360.394, 121.087 362.749, 119.258 366.584 C 117.911 369.410, 117.879 370.496, 119.023 374.583 C 119.797 377.347, 136.416 406.163, 159.004 443.906 C 180.265 479.433, 200.099 512.878, 203.080 518.228 C 206.061 523.579, 208.789 527.966, 209.142 527.978 C 209.495 527.990, 214.055 520.237, 219.275 510.750 C 231.147 489.175, 250.390 456.717, 264.481 434.500 C 284.177 403.448, 289.279 389.350, 285.511 376.390 C 283.463 369.346, 277.529 362.842, 271.497 361.030 C 269.299 360.369, 258.725 359.450, 248 358.987 C 237.275 358.524, 227.713 357.839, 226.750 357.465 C 224.719 356.677, 224.434 353.701, 226.250 352.237 C 226.938 351.682, 231.207 350.737, 235.738 350.137 C 246.952 348.652, 253.517 345.277, 256.051 339.696 C 258.356 334.620, 258.490 327.725, 256.453 319 C 255.619 315.425, 248.988 295.520, 241.718 274.766 L 228.500 237.033 166.225 237.016 L 103.950 237 102.894 239.750 M 154.714 570.683 C 154.446 571.133, 143.788 603.174, 131.030 641.887 C 118.271 680.600, 107.597 712.887, 107.309 713.637 C 106.872 714.776, 114.943 715, 156.500 715 C 203.445 715, 206.175 714.903, 205.518 713.250 C 204.136 709.774, 178.694 637.049, 167.352 604.153 C 160.970 585.644, 155.625 570.358, 155.475 570.183 C 155.324 570.009, 154.981 570.234, 154.714 570.683'/%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 852' width='384' height='852'%3E%3Cpath fill='currentColor' fill-rule='evenodd' d='M 177.162 2.305 C 176.045 3.650, 172.432 13.593, 150.015 77 C 143.501 95.425, 133.140 124.675, 126.989 142 C 113.895 178.885, 105.960 201.474, 94.495 234.500 C 89.913 247.700, 83.669 265.603, 80.621 274.285 C 68.333 309.274, 55.822 328.652, 37.769 340.653 C 29.766 345.974, 22.859 348.567, 12.841 350.013 C 2.138 351.558, 1.286 351.812, 0.574 353.669 C -0.476 356.403, 2.031 357.840, 10 359.071 C 28.022 361.854, 39.348 370.071, 54.699 391.500 C 65.632 406.763, 141.691 532.181, 148.807 546.682 L 151.350 551.864 123.734 634.682 C 108.545 680.232, 90.885 733.622, 84.488 753.327 C 71.627 792.945, 66.260 806.695, 59.264 817.954 C 49.114 834.287, 38.820 841.776, 22.850 844.443 C 18.759 845.127, 16.485 847.215, 17.357 849.487 C 17.863 850.808, 23.896 851, 64.846 851 C 105.998 851, 111.913 850.810, 113.042 849.450 C 115.139 846.922, 112.431 845.343, 103 843.596 C 92.598 841.668, 87.660 838.522, 84.063 831.535 C 81.914 827.358, 81.461 824.942, 81.156 816.020 C 80.584 799.303, 82.265 791.837, 96.753 746.750 L 104.385 723 156.595 723 L 208.804 723 209.955 726.250 C 210.587 728.038, 215.327 741.667, 220.487 756.537 C 225.646 771.408, 232.390 790.523, 235.473 799.015 C 241.472 815.541, 242.872 823.099, 241.129 829.542 C 238.830 838.036, 231.450 842.197, 215.559 843.961 C 205.847 845.039, 202.665 846.687, 204.958 849.450 C 206.099 850.825, 214.647 851, 280.500 851 C 345.002 851, 354.917 850.805, 355.989 849.513 C 358.290 846.741, 356.358 845.344, 348.342 843.982 C 336.971 842.050, 327.866 837.099, 321.783 829.542 C 316.171 822.570, 309.949 810.712, 304.182 796 C 295.938 774.968, 216.179 546.995, 215.274 541.875 C 214.789 539.135, 218.195 532.429, 237.301 498.500 C 254.903 467.242, 279.627 428.747, 297.196 405.247 C 315.974 380.129, 331.308 366.456, 345.677 362.018 C 349.367 360.878, 357.931 359.582, 365.800 358.971 C 381.955 357.718, 383 357.471, 383 354.911 C 383 352.413, 380.399 351.389, 370.673 350.059 C 355.752 348.020, 343.334 340.273, 334.771 327.663 C 327.664 317.197, 324.466 309.161, 296.299 231 C 291.047 216.425, 284.298 197.750, 281.302 189.500 C 278.306 181.250, 270.080 158.300, 263.022 138.500 C 238.562 69.876, 214.969 4.493, 214.129 3 C 212.936 0.881, 178.876 0.240, 177.162 2.305 M 165 61.468 C 165 62.276, 162.770 69.138, 160.044 76.718 C 154.697 91.587, 145.328 118.092, 125.658 174 C 118.789 193.525, 111.781 213.299, 110.084 217.941 C 108.388 222.584, 107 226.747, 107 227.191 C 107 227.636, 133.550 228, 166 228 C 198.450 228, 225 227.817, 225 227.594 C 225 227.371, 221.374 216.909, 216.942 204.344 C 212.510 191.780, 200.800 158.325, 190.920 130 C 181.040 101.675, 171.616 74.877, 169.978 70.450 C 168.340 66.022, 167 61.859, 167 61.200 C 167 60.540, 166.550 60, 166 60 C 165.450 60, 165 60.661, 165 61.468 M 102.894 239.750 C 98.094 252.250, 84.454 293.163, 82.879 299.784 C 78.773 317.050, 80.953 334.143, 88.243 341.821 C 94.514 348.427, 98.119 349.337, 120.500 349.960 C 131.500 350.266, 141.063 350.877, 141.750 351.318 C 143.576 352.487, 143.277 355.782, 141.245 356.869 C 140.280 357.385, 136.885 358.290, 133.700 358.878 C 125.500 360.394, 121.087 362.749, 119.258 366.584 C 117.911 369.410, 117.879 370.496, 119.023 374.583 C 119.797 377.347, 136.416 406.163, 159.004 443.906 C 180.265 479.433, 200.099 512.878, 203.080 518.228 C 206.061 523.579, 208.789 527.966, 209.142 527.978 C 209.495 527.990, 214.055 520.237, 219.275 510.750 C 231.147 489.175, 250.390 456.717, 264.481 434.500 C 284.177 403.448, 289.279 389.350, 285.511 376.390 C 283.463 369.346, 277.529 362.842, 271.497 361.030 C 269.299 360.369, 258.725 359.450, 248 358.987 C 237.275 358.524, 227.713 357.839, 226.750 357.465 C 224.719 356.677, 224.434 353.701, 226.250 352.237 C 226.938 351.682, 231.207 350.737, 235.738 350.137 C 246.952 348.652, 253.517 345.277, 256.051 339.696 C 258.356 334.620, 258.490 327.725, 256.453 319 C 255.619 315.425, 248.988 295.520, 241.718 274.766 L 228.500 237.033 166.225 237.016 L 103.950 237 102.894 239.750 M 154.714 570.683 C 154.446 571.133, 143.788 603.174, 131.030 641.887 C 118.271 680.600, 107.597 712.887, 107.309 713.637 C 106.872 714.776, 114.943 715, 156.500 715 C 203.445 715, 206.175 714.903, 205.518 713.250 C 204.136 709.774, 178.694 637.049, 167.352 604.153 C 160.970 585.644, 155.625 570.358, 155.475 570.183 C 155.324 570.009, 154.981 570.234, 154.714 570.683'/%3E%3C/svg%3E") no-repeat center/contain;flex:none}
.brand__rule{width:1px;height:46px;background:currentColor;opacity:.5}
.brand__word{display:flex;flex-direction:column;gap:3px;font-family:var(--serif);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:13.5px;line-height:1.05}
.brand__word small{font-family:var(--sans);font-weight:600;font-size:9px;letter-spacing:.42em;opacity:.9;margin-top:2px}
.header__center{display:flex;align-items:center;justify-content:center;gap:0}
.seats{display:flex;gap:5px;align-items:center}
.seats i{width:4px;height:4px;background:currentColor;opacity:.22;transition:opacity .35s}
.seats i.on{opacity:.95}
.header__right{display:flex;justify-content:flex-end;align-items:center;gap:8px}
.nav{display:flex;align-items:center;gap:6px}
.nav__item{position:relative}
.nav__btn{display:inline-flex;align-items:center;gap:.5em;padding:.9em .9em;font-size:15px;letter-spacing:-.01em;font-weight:600;line-height:1;position:relative}
.nav__btn::after{content:"";position:absolute;left:.95em;right:.95em;bottom:.55em;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}
.nav__btn:hover::after,.nav__btn[aria-expanded="true"]::after,.nav__item.is-current .nav__btn::after{transform:scaleX(1)}
.nav__apply{--fill:var(--bone);--fill-text:var(--house);margin-left:16px;padding:.85em 1.25em;border:1px solid currentColor;font-size:15px;letter-spacing:-.01em;font-weight:600;line-height:1;position:relative;overflow:hidden;isolation:isolate;transition:color .4s,border-color .4s}
.nav__apply::before{content:"";position:absolute;inset:0;background:var(--fill);transform:translateY(101%);transition:transform .5s var(--ease-out);z-index:-1}
.nav__apply:hover::before,.nav__apply:focus-visible::before{transform:none}
.nav__apply:hover,.nav__apply:focus-visible{color:var(--fill-text);border-color:var(--fill)}
.header.is-ink .nav__apply{--fill:var(--ink);--fill-text:var(--bone)}
.header.is-open .nav__apply{--fill:var(--bone);--fill-text:var(--velvet)}
.burger{display:none;width:44px;height:44px;place-items:center;position:relative}
.burger span{position:absolute;left:11px;width:22px;height:1.5px;background:currentColor;transition:transform .5s var(--ease-out),opacity .3s}
.burger span:nth-child(1){top:17px}.burger span:nth-child(2){top:23px}.burger span:nth-child(3){top:29px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ---------- Mega menu (the curtain) ---------- */
.mega{position:fixed;inset:0 0 auto 0;z-index:90;background:var(--velvet);color:var(--bone);clip-path:inset(0 0 100% 0);transition:clip-path .75s var(--ease-curtain),visibility 0s linear .75s;visibility:hidden;padding-top:var(--header-h);--bg:var(--velvet);--fg:var(--bone);--fg-2:rgba(239,233,221,.66);--rule:rgba(239,233,221,.18);--rule-strong:rgba(239,233,221,.6)}
.mega::before{content:"";position:absolute;inset:0;background:url("../img/seats-velvet-1600.jpg?v=dc20af5a0763") center/cover no-repeat;opacity:.16;mix-blend-mode:luminosity;pointer-events:none}
.mega::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,10,16,.2),rgba(43,10,16,.75));pointer-events:none}
.mega.is-open{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path .8s var(--ease-curtain),visibility 0s}
.mega__inner{position:relative;z-index:1;padding-block:clamp(36px,4.5vw,64px) clamp(28px,3.5vw,48px);border-top:1px solid var(--rule)}
.mega__panel{display:none;grid-template-columns:5fr 4fr 3fr;gap:clamp(24px,4vw,72px);align-items:start}
.mega__panel.is-active{display:grid}
.mega__title{font-weight:700;font-size:clamp(36px,4.2vw,68px);line-height:.96;letter-spacing:-.035em;margin-bottom:.4em}

.mega__desc{max-width:34em;color:var(--fg-2);font-size:15.5px;line-height:1.55}
.mega__links{display:flex;flex-direction:column;border-top:1px solid var(--rule)}
.mega__links a{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"num name" "num meta";column-gap:18px;row-gap:4px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--rule);font-weight:500;font-size:clamp(16px,1.25vw,19px);letter-spacing:-.01em;line-height:1.2;transition:padding .35s var(--ease-out),color .3s}
.mega__links a>span:nth-child(2){grid-area:name}
.mega__links a .num{grid-area:num;font-size:12px;color:var(--fg-2);letter-spacing:.1em;font-family:var(--sans);font-weight:500}
.mega__links a .meta{grid-area:meta;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-2);font-weight:500}
.mega__links a:hover{padding-left:10px;color:var(--lamp)}
.mega__aside{display:flex;flex-direction:column;gap:18px}
.mega__figure{aspect-ratio:4/5;overflow:hidden;position:relative;background:var(--velvet-deep)}
.mega__figure picture{position:absolute;inset:0}
.mega__figure img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.02);transform:scale(1.04);transition:transform 1.2s var(--ease-out)}
.mega.is-open .mega__figure img{transform:none}
.mega__aside .label{color:var(--fg-2)}
.mega__aside .voice--sm{font-size:clamp(16px,1.25vw,20px);font-weight:500}
.mega__foot{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;padding:16px 0 0;border-top:1px solid var(--rule);margin-top:clamp(24px,3vw,44px);color:var(--fg-2);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.mega__foot a:hover{color:var(--lamp)}
.mega-scrim{position:fixed;inset:0;z-index:80;background:rgba(13,11,11,.55);opacity:0;pointer-events:none;transition:opacity .6s}
.mega-scrim.is-on{opacity:1;pointer-events:auto}
/* mobile menu */
.mobile{position:fixed;inset:0;z-index:95;background:var(--velvet);color:var(--bone);clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease-curtain),visibility 0s linear .8s;visibility:hidden;overflow:auto;padding:calc(var(--header-h) + 8px) var(--gutter) 48px;-webkit-overflow-scrolling:touch}
.mobile.is-open{clip-path:inset(0);visibility:visible;transition:clip-path .85s var(--ease-curtain),visibility 0s}
.mobile__group{border-top:1px solid var(--rule)}
.mobile__group:last-of-type{border-bottom:1px solid var(--rule)}
.mobile__group>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:18px 0;font-weight:700;font-size:clamp(28px,7.5vw,44px);line-height:1;letter-spacing:-.03em;cursor:pointer}
.mobile__group>summary::-webkit-details-marker{display:none}
.mobile__group>summary svg{width:22px;height:22px;transition:transform .4s var(--ease-out)}
.mobile__group[open]>summary svg{transform:rotate(45deg)}
.mobile__group ul{padding:0 0 18px;display:flex;flex-direction:column;gap:12px}
.mobile__group ul a{font-size:18px;font-weight:500;color:rgba(239,233,221,.8)}
.mobile__group ul a:hover{color:var(--lamp)}
.mobile__cta{margin-top:28px;display:flex;flex-direction:column;gap:16px}
.mobile__foot{margin-top:40px;color:var(--fg-2);font-size:12px;letter-spacing:.12em;text-transform:uppercase;display:flex;flex-direction:column;gap:10px}

/* ---------- Hero with follow-spot ---------- */
.hero{position:relative;min-height:100svh;display:grid;align-items:end;overflow:hidden;background:var(--house);color:var(--bone);--sx:70%;--sy:45%}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media picture{position:absolute;inset:0}
.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
.hero__media .dim{filter:brightness(.22) saturate(.85)}
.hero__media .lit{filter:brightness(.98) saturate(.95);-webkit-mask-image:radial-gradient(circle 30vmax at var(--sx) var(--sy),#000 0%,rgba(0,0,0,.72) 32%,rgba(0,0,0,.18) 62%,transparent 100%);mask-image:radial-gradient(circle 30vmax at var(--sx) var(--sy),#000 0%,rgba(0,0,0,.72) 32%,rgba(0,0,0,.18) 62%,transparent 100%)}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,11,11,.35) 0%,rgba(13,11,11,0) 30%,rgba(13,11,11,.15) 70%,rgba(13,11,11,.85) 100%);pointer-events:none}
.hero__grain{position:absolute;inset:-50%;z-index:1;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:200px;mix-blend-mode:screen}
.hero__content{position:relative;z-index:2;width:100%;padding-top:calc(var(--header-h) + 4vh);padding-bottom:clamp(24px,3.5vw,48px)}
.hero__cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:clamp(22px,3vw,40px)}
.hero__hint{position:absolute;right:var(--gutter);bottom:clamp(24px,3vw,44px);z-index:3;display:flex;align-items:center;gap:12px;color:rgba(239,233,221,.55);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.hero__hint i{width:1px;height:44px;background:currentColor;position:relative;overflow:hidden;opacity:.6}
.hero__hint i::after{content:"";position:absolute;inset:0;background:var(--bone);transform:translateY(-100%);animation:drop 2.4s var(--ease-out) infinite}
@keyframes drop{0%{transform:translateY(-100%)}60%{transform:translateY(100%)}100%{transform:translateY(100%)}}
@media (hover:none){.hero{--sx:60%;--sy:40%}}
@media (max-height:780px) and (min-width:901px){.bill__content{padding-top:calc(var(--header-h) + 2vh);padding-bottom:18px}.bill__eyebrow{margin-bottom:10px}.bill__name{font-size:clamp(36px,4.4vw,68px)}.bill__name--statement{font-size:clamp(28px,3.3vw,50px)}.bill__kind{font-size:clamp(17px,1.5vw,22px);margin-top:8px}.bill__when{margin-top:14px;padding-top:12px}.bill__program{margin-top:10px}.bill .hero__cta{margin-top:16px}.bill__rail{margin-top:18px}.bill__tab{padding:12px 0 0}}
@media (max-width:900px){.hero__hint{display:none}}

/* generic facts list (theme-aware) */
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 32px;border-top:1px solid var(--rule);padding-top:18px;margin:0}
.facts div{display:flex;flex-direction:column;gap:6px}
.facts .label{color:var(--fg-2)}
.facts strong{font-weight:500;font-size:clamp(16px,1.25vw,19px);line-height:1.3}
.facts dd{margin:0}

/* ── Home hero ── */
.bill{align-items:end;grid-template-columns:minmax(0,100%);--bill-dur:8000ms}
.bill__content{min-width:0;padding-top:calc(var(--header-h) + 8vh);padding-bottom:clamp(44px,7vh,88px)}
.bill__media .dim{filter:brightness(.6) saturate(.92)}
.bill__media .lit{-webkit-mask-image:radial-gradient(circle 34vmax at var(--sx) var(--sy),#000 0%,rgba(0,0,0,.7) 30%,rgba(0,0,0,.18) 60%,transparent 100%);mask-image:radial-gradient(circle 34vmax at var(--sx) var(--sy),#000 0%,rgba(0,0,0,.7) 30%,rgba(0,0,0,.18) 60%,transparent 100%)}
.bill__media::after{background:linear-gradient(90deg,rgba(13,11,11,.72) 0%,rgba(13,11,11,.42) 42%,rgba(13,11,11,.08) 100%),linear-gradient(180deg,rgba(13,11,11,.25) 0%,rgba(13,11,11,0) 30%,rgba(13,11,11,.55) 100%)}
.bill__fig{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.04);transition:opacity 1.1s var(--ease-out),transform 1.1s var(--ease-out)}
.bill__fig.is-active{opacity:1;transform:scale(1);transition:opacity 1.1s var(--ease-out),transform 9s linear}
.bill__slides{display:grid;max-width:min(72%,980px)}
.bill__slide{grid-area:1/1;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s,visibility 0s .5s}
.bill__slide.is-active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .6s .15s,visibility 0s}
.bill__slide>*{opacity:0;transform:translateY(14px);transition:opacity .9s var(--ease-out),transform 1s var(--ease-out)}
.bill__slide.is-active>*{opacity:1;transform:none}
.bill__slide.is-active>:nth-child(2){transition-delay:.1s}.bill__slide.is-active>:nth-child(3){transition-delay:.2s}.bill__slide.is-active>:nth-child(4){transition-delay:.3s}
.bill__label{color:rgba(239,233,221,.7);margin:0 0 clamp(18px,2.4vh,28px)}
.bill__name{font-family:var(--sans);font-weight:700;font-size:clamp(44px,6.6vw,108px);line-height:.96;letter-spacing:-.04em;margin:0;max-width:11em;text-wrap:balance}
.bill__sub{max-width:36em;margin-top:clamp(18px,2.4vh,28px);font-size:clamp(16px,1.25vw,19px);line-height:1.5;color:rgba(239,233,221,.82);text-wrap:pretty}
.bill__links{display:flex;flex-wrap:wrap;gap:14px clamp(28px,3vw,44px);margin-top:clamp(26px,3.6vh,40px)}
.tlink{display:inline-flex;align-items:center;gap:10px;font-size:clamp(16px,1.2vw,18px);font-weight:600;letter-spacing:-.01em;line-height:1.2;padding-bottom:8px;position:relative;color:var(--bone)}
.tlink::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;opacity:.4;transition:opacity .35s}
.tlink .arrow{width:16px;height:16px;flex:none;transition:transform .45s var(--ease-out)}
.tlink:hover::after,.tlink:focus-visible::after{opacity:1}
.tlink:hover .arrow{transform:translateX(5px)}
.bill__rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 clamp(16px,2vw,32px);border-top:1px solid rgba(239,233,221,.22);margin-top:clamp(32px,6vh,64px)}
.bill__tab{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"num name" "num meta";column-gap:12px;row-gap:3px;align-items:baseline;text-align:left;padding:16px 0 0;color:rgba(239,233,221,.5);background:none;border:0;cursor:pointer;font:inherit;transition:color .35s}
.bill__tab .num{grid-area:num;font-size:12px;letter-spacing:.06em;color:inherit}
.bill__tab-name{grid-area:name;font-weight:600;font-size:clamp(14px,1.05vw,16px);letter-spacing:-.01em;color:inherit}
.bill__tab-meta{grid-area:meta;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.bill__tab:hover,.bill__tab:focus-visible{color:rgba(239,233,221,.85)}
.bill__tab.is-active,.bill__tab.is-active .num,.bill__tab.is-active .bill__tab-name{color:var(--bone)}
.bill__tab::after{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:var(--bone);transform:scaleX(0);transform-origin:left}
.bill__tab.is-active::after{animation:billbar var(--bill-dur) linear forwards}
.bill.is-paused .bill__tab::after{animation-play-state:paused}
@keyframes billbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.bill__tab:focus-visible{outline:1px solid var(--bone);outline-offset:6px}
@media (max-height:780px) and (min-width:901px){.bill__content{padding-top:calc(var(--header-h) + 4vh);padding-bottom:36px}.bill__name{font-size:clamp(40px,5.6vw,84px)}.bill__sub{margin-top:14px}.bill__links{margin-top:22px}.bill__rail{margin-top:24px}}
@media (prefers-reduced-motion:reduce){.bill__fig{transition:opacity .4s;transform:none}.bill__slide>*{transition:none;opacity:1;transform:none}.bill__tab.is-active::after{animation:none;transform:scaleX(1)}}
@media (max-width:900px){.bill__content{padding-top:calc(var(--header-h) + 42svh);padding-bottom:40px}.bill__media::after{background:linear-gradient(180deg,rgba(13,11,11,.3) 0%,rgba(13,11,11,.1) 35%,rgba(13,11,11,.82) 70%,rgba(13,11,11,.92) 100%)}.bill__slides{max-width:none}.bill__name{font-size:clamp(36px,10vw,56px)}.bill__links{flex-direction:column;gap:16px}.bill__rail{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr);overflow-x:auto;scrollbar-width:none;margin-left:calc(-1*var(--gutter));margin-right:calc(-1*var(--gutter));padding:0 var(--gutter)}.bill__rail::-webkit-scrollbar{display:none}}

/* ── Playbill (calendar of upcoming recitals) ── */
.playbill{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-strong)}
.playbill__row{display:grid;grid-template-columns:2fr 5fr 3fr 2fr;gap:var(--col-gap);align-items:start;padding:clamp(22px,2.6vw,36px) 0;border-bottom:1px solid var(--rule)}
.playbill__date{display:flex;flex-direction:column;gap:2px}
.playbill__day{font-family:var(--sans);font-weight:700;font-size:clamp(36px,3.6vw,56px);line-height:.9;letter-spacing:-.04em;font-variant-numeric:lining-nums tabular-nums}
.playbill__month{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-2);margin-top:6px}
.playbill__what .h3{font-size:clamp(22px,2.1vw,32px)}
.playbill__kind{font-weight:500;font-size:clamp(15px,1.15vw,18px);letter-spacing:-.01em;margin-top:6px;color:var(--fg)}
.playbill__program{color:var(--fg-2);font-size:15px;margin-top:8px}
.playbill__where{display:flex;flex-direction:column;gap:4px;font-size:15px;color:var(--fg-2);line-height:1.5;padding-top:.5em}
.playbill__where span:first-child{color:var(--fg)}
.playbill__cta{justify-self:end;margin-top:.55em}
@media (max-width:900px){.playbill__row{grid-template-columns:auto 1fr;grid-template-areas:"date what" "date where" "date cta";column-gap:20px;row-gap:10px}.playbill__date{grid-area:date;min-width:64px}.playbill__what{grid-area:what}.playbill__where{grid-area:where;padding-top:0}.playbill__cta{grid-area:cta;justify-self:start;margin-top:4px}}

/* ── Notice row (calendar placeholder while nothing is announced) ── */
.notice{display:grid;grid-template-columns:2fr 10fr;gap:var(--col-gap);align-items:start;border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule);padding:clamp(24px,3vw,40px) 0}
.notice__num{font-weight:700;font-size:clamp(20px,2vw,30px);line-height:1;letter-spacing:-.03em;color:var(--fg-2);padding-top:.1em}
.notice__body{max-width:44em}
.notice__body p{color:var(--fg-2);margin-top:10px;font-size:clamp(15px,1.15vw,17px)}
@media (max-width:900px){.notice{grid-template-columns:1fr;gap:12px}}

/* page hero (subpages) */
.phero{position:relative;min-height:min(86svh,880px);display:grid;align-items:end;overflow:hidden;background:var(--house);color:var(--bone);--sx:68%;--sy:42%}
.phero--short{min-height:min(62svh,640px)}
.phero .hero__content{padding-top:calc(var(--header-h) + 10vh)}
.phero .display{font-size:clamp(40px,6.2vw,100px)}
.phero__crumb{display:flex;gap:1.2em;align-items:center;color:rgba(239,233,221,.62);margin-bottom:clamp(24px,4vh,48px)}
.phero__crumb a:hover{color:var(--bone)}
.phero__crumb .sep{opacity:.5}
.phero__lede{max-width:34em;color:rgba(239,233,221,.86);font-size:clamp(18px,1.5vw,23px);line-height:1.45;margin-top:clamp(18px,2.5vw,30px);text-wrap:pretty}

/* ---------- Figures ---------- */
.frame{position:relative;overflow:hidden;background:var(--house-3)}
.frame>picture{position:absolute;inset:0}
.frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%);transition:transform 1.6s var(--ease-out)}
.frame--4x5{aspect-ratio:4/5}.frame--3x4{aspect-ratio:3/4}.frame--3x2{aspect-ratio:3/2}.frame--16x9{aspect-ratio:16/9}.frame--1x1{aspect-ratio:1/1}.frame--21x9{aspect-ratio:21/9}.frame--5x7{aspect-ratio:5/7}
.frame--lamp::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle 42% at var(--mx,50%) var(--my,50%),rgba(255,227,174,.22),transparent 70%);opacity:0;transition:opacity .6s;mix-blend-mode:screen}
.frame--lamp:hover::after{opacity:1}
.frame--lamp:hover img{transform:scale(1.035)}
.caption{display:flex;justify-content:space-between;gap:18px;margin-top:12px;font-size:12px;letter-spacing:.06em;color:var(--fg-2);line-height:1.5}
.caption b{font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:10.5px}
.bleed-r{margin-right:calc(var(--gutter) * -1)}
.bleed-l{margin-left:calc(var(--gutter) * -1)}
.bleed{margin-inline:calc(var(--gutter) * -1)}
.bleed-r .caption{padding-right:var(--gutter)}.bleed-l .caption{padding-left:var(--gutter)}.bleed .caption{padding-inline:var(--gutter)}
@media (max-width:900px){.bleed-r,.bleed-l{margin:0}.bleed-r .caption,.bleed-l .caption{padding:0}}

/* ---------- Reveals (JS only) ---------- */
.js [data-reveal]{--d:0ms;opacity:0;transform:translateY(18px);transition:opacity 1s var(--ease-out) var(--d),transform 1.1s var(--ease-out) var(--d)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-reveal="sweep"]{opacity:1;transform:none;clip-path:inset(-0.25em 100% -0.3em -0.1em);transition:clip-path 1.15s var(--ease-out) var(--d)}
.js [data-reveal="sweep"].is-in{clip-path:inset(-0.25em -1em -0.3em -0.2em)}
.js [data-reveal="frame"]{opacity:1;transform:none;clip-path:inset(0 0 100% 0);transition:clip-path 1.2s var(--ease-out) var(--d)}
.js [data-reveal="frame"] img{transform:scale(1.14);transition:transform 1.8s var(--ease-out) var(--d)}
.js [data-reveal="frame"].is-in{clip-path:inset(0)}
.js [data-reveal="frame"].is-in img{transform:scale(1)}
.js [data-reveal="frame"].frame--lamp:hover img{transform:scale(1.035)}
.js [data-reveal="line"]{opacity:1;transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease-out) var(--d)}
.js [data-reveal="line"].is-in{transform:none}
@media (prefers-reduced-motion:reduce){.js [data-reveal]{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}.js [data-reveal="frame"] img{transform:none!important}}

/* ---------- Statement block ---------- */
.statement{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);row-gap:clamp(28px,4vw,56px);align-items:start}
.statement__label{grid-column:1/3}
.statement__voice{grid-column:3/11}
.statement__voice .voice{font-size:clamp(26px,3vw,46px);line-height:1.15;letter-spacing:-.03em;font-weight:600;text-wrap:balance}
.statement__voice .voice u{text-decoration:none;background:linear-gradient(currentColor,currentColor) no-repeat 0 92%/100% 1px}
.statement__body{grid-column:7/12}
@media (max-width:900px){.statement__label,.statement__voice,.statement__body{grid-column:1/-1}}

/* ---------- Discipline index (home) ---------- */
.dindex{position:relative}
.dindex__head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);align-items:end;margin-bottom:clamp(28px,4vw,56px)}
.dindex__list{border-top:1px solid var(--rule-strong)}
.drow{display:grid;grid-template-columns:.8fr 5fr 4fr 1.2fr;align-items:center;gap:var(--col-gap);padding:clamp(22px,2.8vw,40px) 0;border-bottom:1px solid var(--rule);position:relative;color:inherit;transition:color .4s}
.drow .num{font-size:clamp(20px,1.8vw,28px);color:var(--fg-2)}
.drow__name{font-weight:700;font-size:clamp(30px,4.2vw,68px);line-height:.95;letter-spacing:-.035em;transition:transform .7s var(--ease-out),color .4s}
.drow__desc{font-size:clamp(15px,1.15vw,17.5px);color:var(--fg-2);max-width:24em;line-height:1.5}
.drow__meta{display:flex;flex-direction:column;gap:4px;align-items:flex-end;text-align:right;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-2);font-weight:600}
.drow__meta .arrow{width:18px;height:18px;margin-top:8px;transition:transform .6s var(--ease-out)}
.drow:hover .drow__name{transform:translateX(14px)}
.drow:hover .drow__meta .arrow{transform:translateX(6px)}
.drow:hover{color:var(--fg)}
@media (max-width:900px){.drow{grid-template-columns:auto 1fr;grid-template-areas:"num name" "desc desc" "meta meta"}.drow .num{grid-area:num}.drow__name{grid-area:name;font-size:clamp(40px,11vw,64px)}.drow__desc{grid-area:desc;max-width:none}.drow__meta{grid-area:meta;flex-direction:row;justify-content:space-between;align-items:center}.drow__meta .arrow{margin:0}}

/* ---------- Program components (numbered ledger) ---------- */
.ledger{border-top:1px solid var(--rule-strong)}
.ledger__row{display:grid;grid-template-columns:1fr 4fr 6fr;gap:var(--col-gap);padding:clamp(22px,2.6vw,36px) 0;border-bottom:1px solid var(--rule);align-items:baseline}
.ledger__row .num{font-size:clamp(28px,2.6vw,40px);color:var(--fg-2)}
.ledger__row .h3{font-size:clamp(20px,1.8vw,27px)}
.ledger__row p{color:var(--fg-2);max-width:34em;font-size:clamp(15px,1.1vw,17px)}
.ledger__row p a,.tile p a,.step p a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.16em;color:var(--fg)}
@media (max-width:900px){.ledger__row{grid-template-columns:auto 1fr;grid-template-areas:"num title" "body body"}.ledger__row .num{grid-area:num}.ledger__row .h3{grid-area:title}.ledger__row p{grid-area:body}}

/* ---------- Manifesto list ---------- */
.manifesto{display:flex;flex-direction:column;border-top:1px solid var(--rule-strong)}
.manifesto li{display:grid;grid-template-columns:auto 1fr;gap:clamp(18px,3vw,40px);align-items:baseline;padding:clamp(16px,2vw,26px) 0;border-bottom:1px solid var(--rule);font-weight:500;letter-spacing:-.01em;font-size:clamp(18px,1.75vw,27px);line-height:1.25;text-wrap:pretty}
.manifesto li .num{font-size:.62em;color:var(--fg-2);font-family:var(--sans);letter-spacing:.08em;font-weight:500;min-width:2.2em}

/* ---------- Cards / tiles ---------- */
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--col-gap)}
.tile{position:relative;padding:clamp(22px,2.2vw,32px) 0 0;border-top:1px solid var(--rule-strong);display:flex;flex-direction:column;gap:14px;min-height:100%}
.tile .label{color:var(--fg-2)}
.tile .h3{font-size:clamp(22px,1.9vw,30px)}
.tile p{color:var(--fg-2);font-size:15.5px;line-height:1.5;text-wrap:pretty}
.tile .link{margin-top:auto;align-self:flex-start}
.tiles--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1100px){.tiles,.tiles--3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.tiles{grid-template-columns:1fr}}

/* ---------- Steps (journey) ---------- */
.steps{counter-reset:step;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--col-gap);border-top:1px solid var(--rule-strong)}
.step{padding-top:clamp(18px,2vw,28px);position:relative;display:flex;flex-direction:column;gap:12px}
.step::before{counter-increment:step;content:counter(step,decimal-leading-zero);font-family:var(--sans);font-weight:700;letter-spacing:-.03em;font-size:clamp(34px,3.2vw,52px);line-height:1;color:var(--fg-2)}
.step .h4{letter-spacing:-.01em}
.step p{color:var(--fg-2);font-size:14.5px;line-height:1.5}
.steps--4{grid-template-columns:repeat(4,minmax(0,1fr))}.steps--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:1100px){.steps,.steps--4{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.steps,.steps--4{grid-template-columns:1fr 1fr}}

/* ---------- Big numeral feature ---------- */
.feature-num{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,64px);align-items:end}
.feature-num .num--giant{color:var(--fg);opacity:.92}
.feature-num__text{padding-bottom:.25em}

/* ---------- Season / event rows ---------- */
.events{border-top:1px solid var(--rule-strong)}
.event{display:grid;grid-template-columns:2fr 5fr 3fr 2fr;gap:var(--col-gap);align-items:baseline;padding:clamp(20px,2.4vw,32px) 0;border-bottom:1px solid var(--rule)}
.event__when{font-weight:600;letter-spacing:-.01em;font-size:clamp(16px,1.3vw,19px)}
.event__what .h3{font-size:clamp(20px,1.9vw,30px)}
.event__what p{color:var(--fg-2);font-size:15px;margin-top:6px;max-width:30em}
.event__where{font-size:14px;color:var(--fg-2);line-height:1.5}
.event__cta{justify-self:end}
@media (max-width:900px){.event{grid-template-columns:1fr;gap:8px}.event__cta{justify-self:start}}

/* ---------- Requirement spec ---------- */
.spec{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rule-strong);border-left:1px solid var(--rule)}
.spec__cell{padding:clamp(20px,2.2vw,32px) clamp(16px,1.8vw,28px);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:10px;min-height:100%;position:relative}
.spec__cell .label{color:var(--fg-2)}
.spec__cell .h3{font-size:clamp(24px,2.2vw,34px)}
.spec__cell .time{font-weight:700;letter-spacing:-.03em;font-size:clamp(26px,2.6vw,40px);line-height:1}
.spec__cell p{color:var(--fg-2);font-size:14.5px;line-height:1.5}
.spec__cell .link{margin-top:auto;align-self:flex-start;padding-top:12px}
@media (max-width:1000px){.spec{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.spec{grid-template-columns:1fr}}

/* ---------- Two-column editorial ---------- */
.editorial{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);row-gap:clamp(32px,5vw,72px);align-items:start}
.editorial__media{grid-column:1/7}
.editorial__text{grid-column:8/13;display:flex;flex-direction:column;gap:clamp(20px,2.5vw,32px)}
.editorial--flip .editorial__media{grid-column:7/13;grid-row:1}
.editorial--flip .editorial__text{grid-column:1/6;grid-row:1}
.editorial .h2{font-size:clamp(34px,4vw,60px)}
@media (max-width:900px){.editorial__media,.editorial__text,.editorial--flip .editorial__media,.editorial--flip .editorial__text{grid-column:1/-1;grid-row:auto}}

/* ---------- Program grid (image cards) ---------- */
.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.6vw,40px) var(--col-gap)}
.pcard{display:flex;flex-direction:column;gap:14px;color:inherit;height:100%}
.pcard .frame{aspect-ratio:4/3}
.pcard__meta{display:flex;justify-content:space-between;gap:12px;color:var(--fg-2)}
.pcard .h3{font-size:clamp(21px,1.75vw,27px);transition:color .3s}
.pcard p{color:var(--fg-2);font-size:15px;line-height:1.5;text-wrap:pretty;flex:1}
.pcard .link{margin-top:auto;align-self:flex-start}
.pcard:hover .h3{color:var(--velvet)}
[data-theme="house"] .pcard:hover .h3,[data-theme="velvet"] .pcard:hover .h3{color:var(--lamp)}
@media (max-width:1000px){.pgrid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.pgrid{grid-template-columns:1fr}}

/* ---------- Discipline cards (black) ---------- */
/* ── Discipline list (home) ── */
.dlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-strong)}
.dlist__row{--x:clamp(16px,1.6vw,24px);display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"num name meta" "num desc meta";column-gap:clamp(18px,2.2vw,32px);row-gap:8px;align-items:baseline;padding:clamp(22px,2.4vw,34px) var(--x);margin-inline:calc(-1*var(--x));border-bottom:1px solid var(--rule);color:var(--fg);position:relative;isolation:isolate;transition:color .35s}
.dlist__row::before{content:"";position:absolute;inset:0 0 -1px 0;background:var(--house);z-index:-1;transform:scaleY(0);transform-origin:top;transition:transform .45s var(--ease-out)}
.dlist__row:hover,.dlist__row:focus-visible{color:var(--bone)}
.dlist__row:hover::before,.dlist__row:focus-visible::before{transform:none;transform-origin:bottom}
.dlist__num{grid-area:num;font-size:12px;letter-spacing:.06em;font-weight:500;color:var(--fg-2);min-width:1.6em;transition:color .35s}
.dlist__name{grid-area:name;font-weight:700;font-size:clamp(28px,3vw,46px);line-height:1;letter-spacing:-.035em;transition:transform .5s var(--ease-out)}

.dlist__desc{grid-area:desc;color:var(--fg-2);font-size:15px;line-height:1.5;max-width:34em;transition:color .35s}
.dlist__meta{grid-area:meta;display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--fg-2);white-space:nowrap;align-self:start;padding-top:.6em;transition:color .35s}
.dlist__meta .arrow{width:14px;height:14px;transition:transform .5s var(--ease-out)}
.dlist__row:hover .dlist__num,.dlist__row:hover .dlist__desc,.dlist__row:hover .dlist__meta{color:rgba(239,233,221,.72)}
.dlist__row:hover .dlist__name{transform:translateX(6px)}
.dlist__row:hover .dlist__meta .arrow{transform:translateX(5px)}
.sticky-col{position:sticky;top:calc(var(--header-h) + 24px)}
@media (max-width:900px){.dlist__row{grid-template-columns:auto 1fr;grid-template-areas:"num name" "num desc" "num meta";row-gap:10px}.dlist__meta{padding-top:0}.sticky-col{position:static}}
@media (prefers-reduced-motion:reduce){.dlist__row::before{transition:none}.dlist__name,.dlist__meta .arrow{transition:none}}

/* ---------- Discipline grid ---------- */
.dgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--col-gap)}
.dcard{display:flex;flex-direction:column;gap:14px;color:inherit}
.dcard .frame{aspect-ratio:4/5}
.dcard__head{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--rule-strong);padding-top:14px}
.dcard__name{font-weight:700;font-size:clamp(22px,2vw,32px);line-height:1;letter-spacing:-.03em;transition:color .3s}
.dcard__num{color:var(--fg-2);font-size:14px;font-weight:500}
.dcard p{color:var(--fg-2);font-size:14.5px;line-height:1.5}
.dcard__meta{display:flex;justify-content:space-between;gap:10px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-2);font-weight:600}
.dcard:hover .dcard__name{color:var(--velvet)}
[data-theme="house"] .dcard:hover .dcard__name{color:var(--lamp)}
@media (max-width:900px){.dgrid{grid-template-columns:1fr 1fr}}

/* ---------- Quote ---------- */
.quote{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap)}
.quote blockquote{grid-column:2/11}
.quote .voice{font-size:clamp(28px,3.6vw,58px);hanging-punctuation:first}
.quote figcaption{grid-column:2/11;margin-top:clamp(18px,2vw,28px);display:flex;gap:14px;align-items:center}
.quote figcaption::before{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
@media (max-width:900px){.quote blockquote,.quote figcaption{grid-column:1/-1}}

/* ---------- Marquee (used once, footer band) ---------- */
.band{overflow:hidden;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:18px 0;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.band__track{display:inline-flex;gap:3.5em;animation:slide 48s linear infinite;font-weight:700;font-size:clamp(22px,3vw,44px);letter-spacing:-.03em;line-height:1;color:var(--fg-2)}
.band__track span{display:inline-flex;align-items:center;gap:3.5em}
.band__track i{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.6}
@keyframes slide{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.band__track{animation:none}}

/* ---------- Apply band ---------- */
.applyband{position:relative;overflow:hidden}
.applyband__grid{display:grid;grid-template-columns:7fr 5fr;gap:clamp(32px,5vw,80px);align-items:end}
.applyband .display-2{font-size:clamp(46px,7vw,120px)}
@media (max-width:900px){.applyband__grid{grid-template-columns:1fr}}

/* ---------- Forms ---------- */
.form{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.4vw,32px) var(--col-gap)}
.form .full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:10px}
.field label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--fg-2)}
.field label b{color:var(--velvet);font-weight:600}
.field input,.field select,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--rule-strong);padding:10px 0 12px;font:inherit;font-size:17px;color:var(--fg);border-radius:0;transition:border-color .3s}
.field select{-webkit-appearance:none;appearance:none;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'><path d='M2 5l5 5 5-5' fill='none' stroke='%23151111' stroke-width='1.4'/></svg>") no-repeat right center;padding-right:24px;cursor:pointer}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-bottom-color:var(--velvet);border-bottom-width:1.5px}
.field .hint{font-size:13px;color:var(--fg-2);line-height:1.45}
.check{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;font-size:15px;line-height:1.5;color:var(--fg-2)}
.check input{width:18px;height:18px;margin:3px 0 0;accent-color:var(--velvet)}
.form__foot{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between;padding-top:8px}
.form__status{font-size:14px;color:var(--fg-2)}
@media (max-width:700px){.form{grid-template-columns:1fr}}

/* ---------- FAQ / details ---------- */
.faq{border-top:1px solid var(--rule-strong)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:clamp(16px,2.5vw,36px);align-items:baseline;padding:clamp(18px,2vw,26px) 0;font-weight:500;letter-spacing:-.01em;font-size:clamp(17px,1.6vw,24px);line-height:1.25}
.faq summary::-webkit-details-marker{display:none}
.faq summary .num{font-size:14px;color:var(--fg-2);font-family:var(--sans);letter-spacing:.08em;font-weight:500}
.faq summary svg{width:18px;height:18px;transition:transform .45s var(--ease-out);align-self:center}
.faq details[open] summary svg{transform:rotate(45deg)}
.faq .answer{padding:0 0 clamp(20px,2.4vw,32px);color:var(--fg-2);max-width:60ch;margin-left:calc(14px + clamp(16px,2.5vw,36px) + 1.6em)}
.faq .answer p+p{margin-top:.8em}
@media (max-width:700px){.faq .answer{margin-left:0}}

/* ---------- Pagination between disciplines ---------- */
.pager{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--rule-strong)}
.pager a{display:flex;flex-direction:column;gap:10px;padding:clamp(28px,3.5vw,52px) 0;position:relative}
.pager a+a{text-align:right;align-items:flex-end;border-left:1px solid var(--rule);padding-left:var(--col-gap)}
.pager .label{color:var(--fg-2)}
.pager .name{font-weight:700;font-size:clamp(26px,3.4vw,54px);line-height:.98;letter-spacing:-.035em;transition:transform .6s var(--ease-out)}
.pager a:hover .name{transform:translateX(10px)}
.pager a+a:hover .name{transform:translateX(-10px)}

/* ---------- Footer ---------- */
.footer{position:relative;background:var(--house);color:var(--bone);overflow:hidden;border-top:1px solid rgba(239,233,221,.12)}
.footer__top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);row-gap:40px;padding-block:clamp(56px,7vw,104px) clamp(40px,5vw,72px);border-bottom:1px solid var(--rule)}
.footer__brand{grid-column:1/5;display:flex;flex-direction:column;gap:24px}
.footer__brand p{color:var(--ash-d);max-width:26em;font-size:15px;line-height:1.55}
.footer__col{display:flex;flex-direction:column;gap:12px}
.footer__col .label{color:var(--ash-d);margin-bottom:8px}
.footer__col a{font-size:15px;color:rgba(239,233,221,.86);width:fit-content;position:relative}
.footer__col a::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}
.footer__col a:hover::after{transform:scaleX(1);transform-origin:left}
.footer__col--1{grid-column:6/8}.footer__col--2{grid-column:8/10}.footer__col--3{grid-column:10/13}
.footer__word{padding-block:clamp(24px,4vw,56px) 0;overflow:hidden}
.footer__word .display{font-size:clamp(64px,13vw,220px);line-height:.84;color:var(--bone);opacity:.98;white-space:nowrap;letter-spacing:-.045em;margin-left:-.03em;font-weight:700}
.footer__word .display em{color:var(--ash-d)}
.footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;padding-block:22px clamp(24px,3vw,40px);color:var(--ash-d);font-size:12.5px;letter-spacing:.04em;border-top:1px solid var(--rule)}
.footer__bottom a:hover{color:var(--bone)}
@media (max-width:1100px){.footer__brand{grid-column:1/13}.footer__col--1{grid-column:1/5}.footer__col--2{grid-column:5/9}.footer__col--3{grid-column:9/13}}
@media (max-width:640px){.footer__col--1,.footer__col--2,.footer__col--3{grid-column:1/13}}

/* ---------- Cursor lamp ---------- */
.lamp{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;pointer-events:none;z-index:60;background:radial-gradient(circle,rgba(255,227,174,.16),rgba(255,227,174,.05) 40%,transparent 70%);mix-blend-mode:screen;opacity:0;transition:opacity .6s;will-change:transform}
.lamp.is-on{opacity:1}
@media (hover:none),(prefers-reduced-motion:reduce){.lamp{display:none}}

/* ---------- Curtain (page load) ---------- */
.curtain{position:fixed;inset:0;z-index:300;background:var(--velvet);pointer-events:none;transform-origin:top;transform:scaleY(1);transition:transform 1.1s var(--ease-curtain) .05s}
.curtain::after{content:"";position:absolute;inset:0;background:url("../img/seats-velvet-1600.jpg?v=dc20af5a0763") center/cover no-repeat;opacity:.18;mix-blend-mode:luminosity}
.js.is-ready .curtain{transform:scaleY(0)}
.no-js .curtain,html:not(.js) .curtain{display:none}
@media (prefers-reduced-motion:reduce){.curtain{display:none}}
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .32s ease-in both}
::view-transition-new(root){animation:vt-in .55s var(--ease-out) both}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- Utilities ---------- */
.flex{display:flex}.between{justify-content:space-between}.center{align-items:center}.wrap-gap{gap:14px 22px;flex-wrap:wrap;align-items:center}
.mt-1{margin-top:clamp(16px,2vw,28px)}.mt-2{margin-top:clamp(28px,4vw,56px)}.mt-3{margin-top:clamp(48px,7vw,104px)}
.mb-1{margin-bottom:clamp(16px,2vw,28px)}.mb-2{margin-bottom:clamp(28px,4vw,56px)}.mb-3{margin-bottom:clamp(48px,7vw,104px)}
.maxw-s{max-width:30em}.maxw-m{max-width:40em}
.vtext{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-2);font-weight:600}
.sticky{position:sticky;top:calc(var(--header-h) + 24px)}
.nowrap{white-space:nowrap}

/* ---------- Responsive header ---------- */
@media (max-width:1280px){.nav__btn{padding:.9em .6em;font-size:11px;letter-spacing:.12em}.seats{display:none}}
@media (max-width:960px){.nav{display:none}.burger{display:grid}.header__inner{grid-template-columns:1fr auto}.header__center{display:none}.header{--header-h:68px}.brand__mark{height:38px;width:17px}.brand__rule{height:34px}.brand__word{font-size:11.5px}.brand__word small{font-size:8px}}
@media (min-width:961px){.mobile{display:none}}

/* ---------- Print ---------- */


/* ── components (bases) ── */
.ogrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--col-gap)}
.ocard{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:#000;color:#fff}
.ocard picture{position:absolute;inset:0}
.ocard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%);transition:transform 1.4s var(--ease-out)}
.ocard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02) 35%,rgba(0,0,0,.72) 100%)}
.ocard__body{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:clamp(18px,2vw,28px);display:flex;flex-direction:column;gap:8px}
.ocard__meta{font-size:12px;color:rgba(255,255,255,.85)}
.ocard__name{line-height:1.05}
.ocard__link{display:inline-block;align-self:flex-start;padding-bottom:3px;margin-top:6px;transition:border-color .3s}
/* Bring the lower-stage performers into the Voice card’s visible area. */
.ocard--voice img{top:auto;bottom:0;height:200%}
@media (max-width:520px){.ocard--voice img{height:100%}.ocard--dance img{top:-10%;height:120%;object-fit:contain;object-position:100% 50%;-webkit-mask-image:linear-gradient(90deg,transparent 33%,#000 52%);mask-image:linear-gradient(90deg,transparent 33%,#000 52%)}}
.ocard:hover img{transform:scale(1.04)}
.ocard:hover .ocard__link{border-bottom-color:#fff}
@media (max-width:900px){.ogrid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ogrid{grid-template-columns:1fr}.ocard{aspect-ratio:4/3}}
.band-img{position:relative;color:#fff;background:#000;overflow:hidden}
.band-img>picture{position:absolute;inset:0}
.band-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
.band-img__inner{position:relative;z-index:1;padding:clamp(40px,6vw,96px) clamp(24px,5vw,80px);max-width:46em;display:flex;flex-direction:column;gap:clamp(16px,2vw,24px);justify-content:flex-end}
.band-img p{color:rgba(255,255,255,.88);font-size:clamp(16px,1.2vw,18px);max-width:36em;text-wrap:pretty}
.railwrap{position:relative}
.rail__nav{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}
.rail__btns{display:flex;gap:8px}
.rail__btn{display:grid;place-items:center;background:transparent;color:#000;cursor:pointer;transition:background-color .25s,color .25s,opacity .25s}
.rail__btn .arrow{width:16px;height:16px}
.rail__btn:hover{background:#000;color:#fff}
.rail__btn[disabled]{opacity:.3;cursor:default;background:transparent;color:#000}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2*var(--col-gap))/3);grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
.rail::-webkit-scrollbar{display:none}
.rail>*{scroll-snap-align:start}
@media (max-width:900px){.rail{grid-auto-columns:calc((100% - var(--col-gap))/2)}}
@media (max-width:600px){.rail{grid-auto-columns:86%}}
.circle{position:absolute;right:var(--gutter);bottom:clamp(40px,7vh,84px);z-index:3;aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.8);color:#fff;display:grid;place-items:center;text-align:center;padding:14px;text-transform:uppercase;line-height:1.35;transition:background-color .35s,color .35s,border-color .35s,transform .6s var(--ease-out)}
.circle:hover{background:#fff;color:#000;border-color:#fff;transform:scale(1.04)}
@media (max-width:900px){.circle{display:none}}

/* ═══════════════════════════════════════════════════════════════════════
   SKIN · after orchestremetropolitain.com — white pages, serif uppercase
   headings, light geometric sans, transparent header with a large logo,
   black mega panel with photographic instruments, pill buttons, circle CTA.
   ═══════════════════════════════════════════════════════════════════════ */
:root{--radius:0px;--hair:rgba(0,0,0,.14);--header-h:108px;--gutter:clamp(20px,4.2vw,64px)}
body{font-size:16px;font-weight:400;color:#000;background:#fff;line-height:1.6}
.curtain,.lamp,.hero__grain,.hero__hint,.mega::before,.mega::after,.mega-scrim,.eyebrow,.statement__label,.brand__rule,.footer__word{display:none!important}
.statement__voice{grid-column:1/10}.statement__body{grid-column:1/8}
@media (max-width:900px){.statement__voice,.statement__body{grid-column:1/-1}}
.num{font-family:var(--serif);font-weight:400;letter-spacing:0}
@media (min-width:901px){.statement{row-gap:clamp(20px,2.5vw,36px)}}
.statement__voice .voice u{background:none}
.js [data-reveal]{transform:translateY(10px);transition:opacity .7s var(--ease-out) var(--d),transform .8s var(--ease-out) var(--d)}
.section{padding-block:clamp(64px,8vw,128px)}
.section--tight{padding-block:clamp(40px,5vw,72px)}
[data-theme="paper"]{--bg:#fff;background:#fff}
[data-theme="house"]{--fg:#fff;--fg-2:rgba(255,255,255,.62);--rule:rgba(255,255,255,.18);--rule-strong:rgba(255,255,255,.6)}

/* ── type: serif headings (uppercase for the big ones), light sans text ── */
.display,.display-2,.display-3,.h2,.mega__title,.bill__name,.dlist__name,.drow__name,.pager .name,.playbill__day,.notice__num,.footer__word .display{font-family:var(--serif);font-weight:400;letter-spacing:.005em}
.display{font-size:clamp(40px,6vw,96px);line-height:1;text-transform:uppercase}
.display-2{font-size:clamp(34px,4.6vw,72px);line-height:1.02;text-transform:uppercase}
.display-3{font-size:clamp(28px,3.2vw,48px);line-height:1.08}
.h2{font-size:clamp(30px,3.9vw,60px);line-height:1.04;text-transform:uppercase;letter-spacing:.01em}
.h3{font-family:var(--serif);font-weight:400;font-size:clamp(21px,1.8vw,27px);line-height:1.2;letter-spacing:0}
.h4{font-family:var(--serif);font-weight:400;font-size:clamp(18px,1.3vw,21px);line-height:1.25;letter-spacing:0}
.display em,.display-2 em,.display-3 em,.h2 em,.h3 em,.mega__title em,.bill__name em,.dlist__name em{font:inherit;letter-spacing:inherit}
.voice{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.5vw,38px);line-height:1.28;letter-spacing:0}
.statement__voice .voice{font-size:clamp(26px,2.8vw,42px);line-height:1.25;letter-spacing:0;font-weight:400}
.voice--sm{font-size:clamp(18px,1.5vw,22px)}
.lede{font-size:clamp(16px,1.2vw,19px);line-height:1.55;font-weight:400}
.body,.body p{font-size:16px;line-height:1.65}
.muted{color:var(--fg-2)}
.label{font-family:var(--sans);font-size:13px;letter-spacing:.02em;text-transform:uppercase;font-weight:500;line-height:1.3}
.label--serif{font-family:var(--sans);font-size:14px;text-transform:none;color:var(--fg-2)}
.num,.ledger__row .num,.manifesto li .num,.dlist__num,.faq summary .num,.mega__links a .num{font-family:var(--sans);font-size:12px;letter-spacing:.04em;font-weight:500;color:var(--fg-2)}
.step::before{font-family:var(--serif);font-weight:400;letter-spacing:0;font-size:clamp(30px,3vw,44px)}
.spec__cell .time{font-family:var(--serif);font-weight:400;letter-spacing:0;font-size:clamp(30px,3vw,46px)}
.event__when{font-family:var(--sans);font-size:13px;text-transform:uppercase;letter-spacing:.02em;font-weight:500}
.playbill__day{font-size:clamp(40px,4vw,64px);line-height:.95}
.playbill__month{letter-spacing:.02em}
.playbill__kind{font-family:var(--sans);font-size:13px;text-transform:uppercase;letter-spacing:.02em;font-weight:500;color:var(--fg-2)}
.notice__num{font-size:clamp(22px,2.2vw,32px)}
.mega__title{display:none}

/* ── header: desktop navigation; compact mobile toggle ── */
.header{position:fixed;inset:0 0 auto 0;height:var(--header-h);background:transparent;color:#fff;transition:color .4s,background-color .4s,transform .4s}
.header.is-hidden{transform:none}
.header.is-ink{color:#000}
.header.is-ink.is-scrolled{background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.header.is-open{color:#fff!important;background:#000!important;-webkit-backdrop-filter:none;backdrop-filter:none}
.header__main{align-items:center}
.header__inner{grid-template-columns:auto 1fr auto;gap:clamp(20px,3vw,48px);align-items:center}
.brand{gap:14px}
.brand__mark{width:24px;height:53px}
.brand__word{font-size:13px;gap:4px;letter-spacing:.14em}
.brand__word small{font-size:8.5px;letter-spacing:.42em;margin-top:2px}
.nav{justify-content:center}
.nav__list{display:flex;align-items:center;gap:clamp(18px,2.4vw,36px);list-style:none;margin:0;padding:0}
.nav__btn{padding:.5em 0;font-size:15px;font-weight:400;letter-spacing:0;gap:.45em}
.nav__btn .chev{width:10px;height:10px;opacity:.7;stroke-width:1.4}
.nav__btn::after{left:0;right:0;bottom:0;height:1px;background:currentColor;opacity:.9}
.header__right{gap:18px}
.nav__apply{margin:0;padding:.75em 1.1em;border:1px solid currentColor;border-radius:200px;background:transparent;color:inherit;font-size:12px;font-weight:500;letter-spacing:.01em;overflow:hidden;transition:background-color .3s,color .3s}
.nav__apply::before{display:none}
.nav__apply:hover,.nav__apply:focus-visible{background:currentColor;border-color:currentColor}
.nav__apply:hover{color:#000}
.header.is-ink .nav__apply:hover{color:#fff}
.header.is-ink .nav__apply:hover,.header.is-ink .nav__apply:focus-visible{background:#000;border-color:#000}
.header:not(.is-ink) .nav__apply:hover,.header:not(.is-ink) .nav__apply:focus-visible{background:#fff;border-color:#fff;color:#000}
.burger{display:none;width:44px;height:44px}
.burger span{left:12px;width:20px;height:1.2px}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:22px}.burger span:nth-child(3){top:28px}
@media (max-width:1100px){.nav__list{gap:16px}.nav__btn{font-size:14px}}
@media (max-width:960px){:root{--header-h:80px}.nav,.nav__apply{display:none}.burger{display:grid}.header__inner{grid-template-columns:1fr auto}.brand__mark{width:20px;height:44px}.brand__word{font-size:11.5px}.brand__word small{font-size:8px}}

/* ── mega: one uninterrupted photographic instrument, compact editorial captions ── */
.mega-scrim{display:block!important;background:rgba(0,0,0,.48)}
.mega{background:#000;color:#fff;--bg:#000;--fg:#fff;--fg-2:rgba(255,255,255,.62);--rule:rgba(255,255,255,.14);--rule-strong:rgba(255,255,255,.6);clip-path:inset(0 0 100% 0);opacity:1;transform:none;transition:clip-path .65s var(--ease-curtain),visibility 0s linear .65s;padding-top:0;min-height:0;max-height:100svh;overflow:auto;overscroll-behavior:contain;box-shadow:none}
.mega.is-open{clip-path:inset(0);transition:clip-path .7s var(--ease-curtain),visibility 0s}
.mega__inner{padding:0;border-top:0;width:100%;max-width:none;margin:0}
.mega__panel{grid-template-columns:minmax(300px,27%) 1fr;gap:0;min-height:clamp(600px,calc(510px + 9vw),660px);border-right:0;align-items:stretch}
.mega__left{border-right:1px solid var(--rule);padding:calc(var(--header-h) + 40px) clamp(24px,2.6vw,42px) 48px calc(var(--gutter) + 8px);display:flex;flex-direction:column;justify-content:center;gap:0}
.mega__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:clamp(16px,1.4vw,22px)}
.mega__list a{font-family:var(--serif);font-size:clamp(20px,1.6vw,24px);line-height:1.25;color:#fff;transition:opacity .3s}
.mega__list a:hover{opacity:.6}
/* The image and captions form one compact editorial column. */
.mega__feature{min-width:0;padding:calc(var(--header-h) + 40px) var(--gutter) 48px clamp(36px,4.2vw,72px);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:28px}
.instrument{position:relative;flex:none;width:min(100%,660px);height:clamp(220px,18vw,260px);background:#191919;mask-image:var(--instrument);mask-size:contain;mask-repeat:no-repeat;mask-position:center;-webkit-mask-image:var(--instrument);-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center}
/* Mask sources are embedded in the generated instrument-masks.css. */
.instrument--tuba{scale:1.07}
.instrument>picture,.instrument img{position:absolute;inset:0;width:100%;height:100%}
.instrument img{object-fit:cover;object-position:var(--pos,50% 50%)}
/* Keep the silhouette legible against the supplied photograph's black stage. */
.instrument--violin img{mix-blend-mode:screen}
.mega__promos{list-style:none;margin:0;padding:0;width:min(100%,760px);min-height:106px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3vw,44px);align-items:start}
.promo{display:flex;flex-direction:column;padding:0}
.promo+.promo{border:0;padding:0}
.promo__link{display:flex;flex-direction:column;gap:10px;color:#fff;align-items:flex-start}
.promo__sur{font-size:13px;text-transform:uppercase;letter-spacing:.02em;color:rgba(255,255,255,.85);font-weight:500}
.promo__title{font-family:var(--serif);font-size:clamp(24px,2.05vw,31px);line-height:1.12;text-transform:uppercase;letter-spacing:.01em}
@media (max-height:680px) and (min-width:961px){.mega__panel{min-height:580px}.mega__left,.mega__feature{padding-top:calc(var(--header-h) + 24px);padding-bottom:32px}.mega__list{gap:16px}.mega__list a{font-size:20px}.mega__feature{gap:24px}.instrument{height:220px}}
@media (max-width:960px){.mega{display:none}}
/* mobile / full menu: black */
.mobile{background:#000;color:#fff;--bg:#000;--fg:#fff;--fg-2:rgba(255,255,255,.65);--rule:rgba(255,255,255,.2);overscroll-behavior:contain;padding-bottom:max(48px,env(safe-area-inset-bottom));clip-path:none;opacity:0;transform:translateY(-8px);transition:opacity .3s,transform .4s var(--ease-out),visibility 0s linear .4s}
.mobile.is-open{opacity:1;transform:none;transition:opacity .3s,transform .4s var(--ease-out),visibility 0s}
.mobile__group>summary{font-family:var(--serif);font-weight:400;font-size:clamp(28px,4vw,40px);letter-spacing:0}
.mobile__group ul a{font-weight:400;font-size:17px}
.mobile__cta .btn{border-radius:200px;border-color:#fff;color:#fff;background:transparent}
.mobile__cta .btn--solid{background:#fff;color:#000}
.mobile__cta .btn--solid:hover,.mobile__cta .btn--solid:focus-visible{background:transparent;color:#fff}

/* ── buttons & links: pills and uppercase text links ── */
.btn{border-radius:200px;border:1px solid currentColor;padding:.95em 1.6em;font-size:13px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;transition:background-color .25s,color .25s,border-color .25s}
.btn::before{display:none}
.btn:hover,.btn:focus-visible{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.btn--solid,.btn--velvet{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.btn--solid:hover,.btn--solid:focus-visible,.btn--velvet:hover,.btn--velvet:focus-visible{background:transparent;color:var(--fg)}
.btn .arrow{width:13px;height:13px}
.link{font-family:var(--sans);font-size:13px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;padding-bottom:3px;border-bottom:1px solid currentColor;transition:opacity .25s}
.link::after{display:none}
.link:hover{opacity:.55;color:inherit}
.link .arrow{width:12px;height:12px}
.tlink{font-size:13px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;padding-bottom:3px}
.tlink::after{height:1px;opacity:.7}
.tlink .arrow{width:13px;height:13px}
.circle{width:clamp(140px,12vw,190px);border-color:rgba(255,255,255,.8);font-size:13px;letter-spacing:.02em;font-weight:500}
.circle span{max-width:9em}

/* ── imagery ── */
.frame{border-radius:0;background:var(--bone-2)}
.frame--lamp::after{display:none}
.frame--lamp:hover img{transform:scale(1.025)}
.js [data-reveal="frame"] img{transform:none}
.frame__tag{position:absolute;left:0;bottom:0;z-index:1;padding:8px 12px;border-radius:0;background:#fff;color:#000;font-size:12px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;line-height:1}

/* ── home hero: photo under the transparent header, serif season title, pill + circle ── */
.hero{min-height:min(100svh,1100px);background:#000}
.hero__media .dim{filter:brightness(.82) saturate(.95)}
.hero__media .lit{display:none}
.bill__media::after{background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,0) 30%,rgba(0,0,0,0) 55%,rgba(0,0,0,.6) 100%)}
.bill__content{padding-top:calc(var(--header-h) + 4vh);padding-bottom:clamp(48px,8vh,96px)}
.bill__slides{max-width:min(82%,1360px)}
.bill__label{font-size:13px;letter-spacing:.02em;color:rgba(255,255,255,.85);font-weight:500;margin-bottom:clamp(14px,2vh,22px)}
.bill__name{color:#fff;font-family:var(--serif);font-weight:400;text-transform:uppercase;letter-spacing:.01em;line-height:1;font-size:clamp(40px,5.6vw,92px);max-width:12em}
.bill__name--season{font-size:clamp(56px,8.4vw,140px);letter-spacing:.005em;line-height:.98;max-width:none}
.bill__sub{color:rgba(255,255,255,.9);font-size:clamp(15px,1.15vw,18px);max-width:34em;margin-top:clamp(16px,2.4vh,26px)}
.bill__links{align-items:center;gap:14px 26px;margin-top:clamp(24px,3.4vh,36px)}
.bill .btn{border-color:#fff;color:#fff;background:transparent}
.bill .btn:hover{background:#fff;color:#000}
.bill .btn--solid{background:transparent;color:#fff}
.tlink{color:#fff}
@media (max-width:900px){.bill__content{padding-top:clamp(36vh,42svh,52vh)}.bill__links{align-items:flex-start}.bill__name--season{font-size:clamp(48px,13vw,80px)}}
@media (max-height:780px) and (min-width:901px){.bill__content{padding-top:calc(var(--header-h) + 2vh);padding-bottom:40px}.bill__name--season{font-size:clamp(48px,7vw,104px)}}

/* ── subpage hero ── */
.phero{min-height:min(72svh,760px)}
.phero--short{min-height:min(52svh,520px)}
.phero .hero__content{padding-top:calc(var(--header-h) + 6vh);padding-bottom:clamp(40px,6vh,72px)}
.phero .display{color:#fff;font-size:clamp(36px,5.4vw,88px)}
.phero .hero__media .dim{filter:brightness(.72) saturate(.95)}
.phero .hero__media .lit{display:none}
.phero .hero__media::after{background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,0) 35%,rgba(0,0,0,.6) 100%)}
.phero__crumb{color:rgba(255,255,255,.8);margin-bottom:clamp(14px,2.5vh,24px);text-transform:uppercase;letter-spacing:.02em;font-size:13px;font-weight:500}
.phero__crumb a:hover{color:#fff;text-decoration:underline;text-underline-offset:.2em}
.phero__lede{color:rgba(255,255,255,.9);font-size:clamp(16px,1.25vw,19px)}

/* ── cards ── */
.pgrid{gap:clamp(28px,3.2vw,48px) var(--col-gap)}
.pcard{gap:12px}
.pcard .frame{aspect-ratio:3/2}
.pcard__meta{display:none}
.pcard .h3{font-size:clamp(22px,1.9vw,28px)}
.pcard p{font-size:15px;color:var(--fg-2)}
.pcard:hover .h3{opacity:.6;color:inherit}
.pcard:hover .frame img{transform:scale(1.025)}
.rail__nav .link{border-bottom-width:1px}
.rail__btn{width:48px;height:48px;border-radius:50%;border:1px solid #000}
.ogrid{gap:var(--col-gap)}
.ocard{border-radius:0}
.ocard::after{background:linear-gradient(180deg,rgba(0,0,0,.02) 35%,rgba(0,0,0,.72) 100%)}
.ocard__meta{font-size:12px;text-transform:uppercase;letter-spacing:.02em}
.ocard__name{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.1vw,32px);letter-spacing:.005em;text-transform:uppercase}
.ocard__link{font-size:12px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid rgba(255,255,255,.7)}
/* image band */
.band-img{border-radius:0}
.band-img img{filter:brightness(.55) saturate(.9)}
.band-img__inner{min-height:clamp(380px,46vw,600px)}
.band-img .h2{color:#fff}
.band-img .label{color:rgba(255,255,255,.8)}
.band-img .btn{border-color:#fff;color:#fff;background:transparent}
.band-img .btn:hover{background:#fff;color:#000}
/* apply band */
.applyband{background:#000;color:#fff}
.applyband .display-2{color:#fff;text-transform:uppercase;font-size:clamp(38px,4.6vw,72px);line-height:1.02}
.applyband .step .h4{color:#fff}
.applyband .step p{color:rgba(255,255,255,.7)}
.applyband .steps{border-top-color:rgba(255,255,255,.5)}
.applyband .step::before{color:rgba(255,255,255,.55)}
.applyband .btn{border-color:#fff;color:#fff;background:transparent}
.applyband .btn:hover{background:#fff;color:#000}
.applyband .btn--solid{background:#fff;color:#000}
.applyband .btn--solid:hover{background:transparent;color:#fff}
/* lists */
.ledger__row .num{padding-top:.45em}
.manifesto li{font-weight:400;font-size:clamp(17px,1.25vw,20px)}
.dlist__name{font-size:clamp(26px,2.8vw,42px);text-transform:uppercase;letter-spacing:.01em;font-weight:400}
.dlist__row::before{background:#000}
.drow__name{font-size:clamp(28px,4vw,64px);text-transform:uppercase;font-weight:400}
.pager .name{font-size:clamp(24px,3vw,48px);text-transform:uppercase;font-weight:400}
.field input,.field select,.field textarea{font-family:var(--sans);font-size:16px}
.field label{letter-spacing:.02em}

/* ── footer: black, large lockup ── */
.footer{border-top:0;background:#000;color:#fff}
.footer__top{padding-block:clamp(64px,8vw,120px) clamp(40px,5vw,72px)}
.footer .brand__mark{width:28px;height:62px}
.footer .brand__word{font-size:14px}
.footer__brand p{font-size:15px;color:rgba(255,255,255,.7)}
.footer__col .label{color:rgba(255,255,255,.55)}
.footer__col a{color:rgba(255,255,255,.9);font-size:15px}
.footer__col a::after{display:none}
.footer__col a:hover{opacity:.6}
.footer__bottom{border-top:1px solid rgba(255,255,255,.16);font-size:12.5px}


/* ═══════════════════════════════════════════════════════════════════════
   MOTION · pinned heroes that the page scrolls over, a footer the page
   lifts off, selective photograph exits, staggered reveals, and
   hover behaviours on every interactive element. Overrides the skin above.
   ═══════════════════════════════════════════════════════════════════════ */
/* Full-width scenes remain rectangular; the next section naturally covers the pinned hero. */
main{position:relative;z-index:1}
main>.hero,main>.phero{position:sticky;top:0;z-index:0}
main>:not(.hero):not(.phero){position:relative;z-index:1;background-color:var(--bg,#fff)}
.hero .hero__content,.phero .hero__content,.hero .hero__media,.phero .hero__media{transform:none;opacity:1;clip-path:none;will-change:auto;transition:none}
.footer{position:sticky;bottom:0;z-index:0}
@media (max-width:960px){main>.hero,main>.phero{position:relative}.footer{position:relative}}
/* Only standalone editorial photographs iris out. JS supplies a smoothed progress value;
   a second CSS transition would lag behind it and restart on every scroll frame. */
.frame.xr{background:transparent}
.frame.xr>picture{clip-path:circle(calc(78% * (1 - var(--xp,0))) at 50% 50%);opacity:calc(1 - var(--xp,0) * .15);transition:none}
.xr .frame__tag{opacity:calc(1 - var(--xp,0) * 2.5);transition:none}
/* Linked cards retain their full rectangular hit area, title and CTA. */
.ocard.exit-soft>picture,.pcard.exit-soft .frame{transform:translate3d(0,calc(var(--ep,0) * -12px),0) scale(calc(1 - var(--ep,0) * .025));transform-origin:50% 100%;opacity:calc(1 - var(--ep,0) * .16);transition:none}
.ocard.exit-soft:is(:hover,:focus-within)>picture,.pcard.exit-soft:is(:hover,:focus-within) .frame{transform:none;opacity:1;transition:transform .35s var(--ease-out),opacity .35s}
/* reveals: text rises out of a mask, paragraphs and rows follow one another, photographs settle from a slight zoom */
.js [data-reveal]{transform:translateY(26px);transition:opacity .9s var(--ease-out) var(--d),transform 1.1s var(--ease-out) var(--d)}
.js [data-reveal="sweep"]{opacity:1;transform:translateY(.28em);clip-path:inset(-.25em -1em 100% -.2em);transition:clip-path 1s var(--ease-out) var(--d),transform 1.1s var(--ease-out) var(--d)}
.js [data-reveal="sweep"].is-in{transform:none;clip-path:inset(-.25em -1em -.35em -.2em)}
.js [data-reveal]:not([data-reveal="sweep"],[data-reveal="frame"],[data-reveal="line"],.is-in)>:where(p,li,.ledger__row,.step,.event,.playbill__row,.spec__cell,.pcard,.ocard,.dcard,details,.field){opacity:0;transform:translateY(18px)}
.js [data-reveal]>:where(p,li,.ledger__row,.step,.event,.playbill__row,.spec__cell,.pcard,.ocard,.dcard,details,.field){transition:opacity .8s var(--ease-out),transform .9s var(--ease-out)}
.js [data-reveal].is-in>:nth-child(1){transition-delay:calc(var(--d) + 40ms)}.js [data-reveal].is-in>:nth-child(2){transition-delay:calc(var(--d) + 130ms)}.js [data-reveal].is-in>:nth-child(3){transition-delay:calc(var(--d) + 220ms)}.js [data-reveal].is-in>:nth-child(4){transition-delay:calc(var(--d) + 310ms)}.js [data-reveal].is-in>:nth-child(5){transition-delay:calc(var(--d) + 400ms)}.js [data-reveal].is-in>:nth-child(6){transition-delay:calc(var(--d) + 490ms)}.js [data-reveal].is-in>:nth-child(7){transition-delay:calc(var(--d) + 580ms)}.js [data-reveal].is-in>:nth-child(8){transition-delay:calc(var(--d) + 670ms)}.js [data-reveal].is-in>:nth-child(n+9){transition-delay:calc(var(--d) + 760ms)}
.js [data-reveal="frame"]{clip-path:inset(100% 0 0 0);transition:clip-path 1.3s var(--ease-out) var(--d)}
.js [data-reveal="frame"] img{transform:scale(1.12);transition:transform 2s var(--ease-out) var(--d)}
.js [data-reveal="frame"].is-in{clip-path:inset(0)}
.js [data-reveal="frame"].is-in img{transform:none}
/* mega menu: rows and promos arrive one after another when a panel opens */
@keyframes megaIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.mega.is-open .mega__panel.is-active .mega__list li{animation:megaIn .8s var(--ease-out) both;animation-delay:calc(160ms + var(--i,0) * 45ms)}
.mega.is-open .mega__panel.is-active .instrument{animation:megaIn .8s var(--ease-out) both;animation-delay:100ms}
.mega.is-open .mega__panel.is-active .promo{animation:megaIn .75s var(--ease-out) both;animation-delay:calc(180ms + var(--k,0) * 80ms)}
.mega__list a{position:relative;display:inline-block;padding-bottom:2px;transition:opacity .35s,transform .5s var(--ease-out)}
.mega__list a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-out)}
.mega__list a:hover,.mega__list a:focus-visible{opacity:1;transform:translateX(8px)}
.mega__list a:hover::after,.mega__list a:focus-visible::after{transform:scaleX(1);transform-origin:left}
.mega__list:hover a:not(:hover){opacity:.45}
.mega__promos:hover .promo:not(:hover) .promo__link{opacity:.55}
.promo__link{transition:opacity .4s}
.promo__title{position:relative;display:inline-block}
.promo__title::after{content:"";position:absolute;left:0;bottom:-.08em;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease-out)}
.promo__link:hover .promo__title::after{transform:scaleX(1);transform-origin:left}
/* buttons: the fill sweeps across */
.btn{--btn-fill:var(--fg);--btn-ink:var(--bg);position:relative;isolation:isolate;overflow:hidden;background:transparent;color:inherit;transition:color .45s var(--ease-out),border-color .45s}
.btn::before{content:"";display:block;position:absolute;inset:-1px;z-index:-1;background:var(--btn-fill);border-radius:inherit;transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease-out)}
.btn:hover,.btn:focus-visible{background:transparent;color:var(--btn-ink)}
.btn:hover::before,.btn:focus-visible::before{transform:scaleX(1)}
.btn .arrow{transition:transform .45s var(--ease-out)}
.btn:hover .arrow{transform:translateX(4px)}
.btn--solid,.btn--velvet{background:transparent;color:var(--btn-ink)}
.btn--solid::before,.btn--velvet::before{transform:scaleX(1);transform-origin:right}
.btn--solid:hover,.btn--solid:focus-visible,.btn--velvet:hover,.btn--velvet:focus-visible{background:transparent;color:var(--btn-fill)}
.btn--solid:hover::before,.btn--solid:focus-visible::before,.btn--velvet:hover::before,.btn--velvet:focus-visible::before{transform:scaleX(0);transform-origin:right}
.bill .btn,.band-img .btn,.applyband .btn,.mobile__cta .btn{--btn-fill:#fff;--btn-ink:#000;border-color:#fff;color:#fff;background:transparent}
.bill .btn:hover,.band-img .btn:hover,.applyband .btn:hover,.mobile__cta .btn:hover{background:transparent;color:#000}
.bill .btn--solid{color:#fff}.bill .btn--solid::before{transform:scaleX(0);transform-origin:left}.bill .btn--solid:hover{color:#000}.bill .btn--solid:hover::before{transform:scaleX(1)}
.applyband .btn--solid,.mobile__cta .btn--solid,.band-img .btn--solid{color:#000}
.applyband .btn--solid:hover,.mobile__cta .btn--solid:hover,.band-img .btn--solid:hover{color:#fff;background:transparent}
/* text links: the underline leaves to the right and returns from the left */
@keyframes underlineOut{0%{transform:scaleX(1);transform-origin:right}45%{transform:scaleX(0);transform-origin:right}50%{transform:scaleX(0);transform-origin:left}100%{transform:scaleX(1);transform-origin:left}}
.link,.tlink{position:relative;border-bottom:0;padding-bottom:3px;transition:none;opacity:1}
.link::after,.tlink::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;opacity:1;transform:none;display:block}
.link:hover,.tlink:hover{opacity:1;color:inherit}
.link:hover::after,.tlink:hover::after,.pcard:hover .link::after,.ocard:hover .ocard__link::after{animation:underlineOut .8s var(--ease-out)}
.link .arrow,.tlink .arrow,.ocard__link .arrow{transition:transform .45s var(--ease-out)}
.link:hover .arrow,.tlink:hover .arrow,.pcard:hover .link .arrow{transform:translateX(5px)}
/* cards */
.pcard .frame img{transition:transform 1.4s var(--ease-out)}
.pcard:hover .frame img{transform:scale(1.06)}
.pcard .h3{transition:transform .5s var(--ease-out),opacity .4s}
.pcard:hover .h3{opacity:1;transform:translateX(6px)}
.pcard .frame__tag{transition:transform .5s var(--ease-out)}
.pcard:hover .frame__tag{transform:translateY(-4px)}
.ocard img{transition:transform 1.4s var(--ease-out)}
.ocard:hover img{transform:scale(1.07)}
.ocard::after{transition:opacity .5s}
.ocard:hover::after{opacity:.85}
.ocard__body{transition:transform .5s var(--ease-out)}
.ocard:hover .ocard__body{transform:translateY(-6px)}
.ocard__link{position:relative;border-bottom:0;padding-bottom:3px}
.ocard__link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;opacity:.7}
.ocard:hover .ocard__link::after{opacity:1}
/* rows and lists */
.ledger__row,.playbill__row,.event,.manifesto li,.steps .step{transition:background-color .4s,transform .5s var(--ease-out)}
.ledger__row:hover,.playbill__row:hover,.event:hover{background-color:rgba(0,0,0,.025);box-shadow:-16px 0 0 rgba(0,0,0,.025),16px 0 0 rgba(0,0,0,.025)}
[data-theme="house"] .ledger__row:hover,[data-theme="house"] .playbill__row:hover,[data-theme="house"] .event:hover{background-color:rgba(255,255,255,.05);box-shadow:-16px 0 0 rgba(255,255,255,.05),16px 0 0 rgba(255,255,255,.05)}
.ledger__row .h3,.playbill__what .h3{transition:transform .5s var(--ease-out)}
.ledger__row:hover .h3,.playbill__row:hover .h3{transform:translateX(6px)}
.rail__btn{transition:background-color .35s,color .35s,border-color .35s,transform .35s var(--ease-out)}
.rail__btn:not([disabled]):hover{background:#000;color:#fff;transform:scale(1.06)}
.footer__col a{position:relative;transition:opacity .3s}
.footer__col a::after{display:block;content:"";position:absolute;left:0;bottom:-2px;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}
.footer__col a:hover{opacity:1}
.footer__col a:hover::after{transform:scaleX(1);transform-origin:left}
.nav__btn{transition:opacity .3s}
.nav__list:hover .nav__btn:not(:hover):not([aria-expanded="true"]){opacity:.55}
.nav__apply .arrow{display:none}
@media (prefers-reduced-motion:reduce){.hero .hero__content,.phero .hero__content,.hero .hero__media,.phero .hero__media{transform:none!important;opacity:1!important}.js [data-reveal]>*{opacity:1!important;transform:none!important}.mega .mega__list li,.mega .promo,.mega .instrument{animation:none!important}.mega,.mega.is-open,.mobile,.mobile.is-open{transition:none!important}.frame.xr>picture{clip-path:none!important;opacity:1!important}.exit-soft>picture,.pcard.exit-soft .frame{transform:none!important;opacity:1!important;transition:none!important}}

@media print{.header,.mega,.mobile,.lamp,.curtain,.hero__hint,.footer__word{display:none!important}body{background:#fff;color:#000}a[href^="http"]::after{content:" (" attr(href) ")";font-size:.8em}}
