:root{
  --violet:#4b116f;
  --fond:#f6f2ea;
  --header-h:76px;
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}
body{margin:0;background:var(--fond);color:var(--violet);font-family:"Poppins",Arial,sans-serif;font-size:17px;line-height:1.65;overflow-x:hidden}
a{color:inherit}
.skip-link{position:fixed;left:16px;top:-60px;z-index:1000;background:var(--fond);padding:10px 16px;border:2px solid var(--violet)}
.skip-link:focus{top:10px}
.site-header{height:var(--header-h);position:fixed;inset:0 0 auto;z-index:100;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 max(24px,calc((100vw - var(--max))/2));background:rgba(246,242,234,.93);border-bottom:1px solid rgba(75,17,111,.16);backdrop-filter:blur(14px);transition:box-shadow .25s}
.site-header.scrolled{box-shadow:0 10px 35px rgba(75,17,111,.08)}
.brand{display:flex;align-items:center;gap:10px;width:max-content;text-decoration:none;font-weight:900;letter-spacing:-.04em}
.brand-crop{display:block;position:relative;width:52px;height:41px;overflow:hidden;background:var(--violet);border-radius:4px}
.brand-crop img{position:absolute;width:105px;max-width:none;left:-48px;top:-20px}
.brand-word{font-size:14px;line-height:1}.brand-word small{display:block;font-size:7px;letter-spacing:.02em}
nav{display:flex;gap:30px;font-size:13px;font-weight:600}
nav a{text-decoration:none;position:relative}
nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:var(--violet);transition:right .2s}
nav a:hover:after{right:0}
.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:56px;padding:13px 24px;border:1px solid var(--violet);border-radius:999px;background:var(--violet);color:var(--fond);font-size:13px;font-weight:700;text-decoration:none;letter-spacing:.01em;transition:transform .2s,background .2s,color .2s}
.button:hover{transform:translateY(-2px);background:transparent;color:var(--violet)}
.button:focus-visible,.text-link:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--fond);outline-offset:3px;box-shadow:0 0 0 5px var(--violet)}
.button-small{justify-self:end;min-height:44px;padding:9px 18px}
.menu-button,.mobile-menu{display:none}
section{position:relative;isolation:isolate}
.light{background:var(--fond);color:var(--violet)}
.violet{background:var(--violet);color:var(--fond);overflow:hidden}
.hero{min-height:100svh;padding:calc(var(--header-h) + 80px) max(24px,calc((100vw - var(--max))/2)) 70px;display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center}
.hero-copy{max-width:990px}
.eyebrow{margin:0 0 20px;font-size:11px;line-height:1.2;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.hero h1,.section-copy h2,.section-top h2,.movement h2,.invitation h2,.tickets h2,.closing h2{font-weight:800;letter-spacing:-.055em;text-wrap:balance}
.hero h1{max-width:1050px;margin:0;font-size:clamp(3.15rem,7.4vw,7rem);line-height:.95}
.hero h1 span,.statement h2 span,.closing h2 span{font-weight:400}
.lead{max-width:690px;margin:34px 0 0;font-size:clamp(1rem,1.6vw,1.28rem);line-height:1.65}
.hero-actions{display:flex;align-items:center;gap:28px;margin-top:40px}
.text-link{font-size:13px;font-weight:700;text-underline-offset:5px}
.hero-note{align-self:end;margin-bottom:30px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.hero-note .line{display:block;width:100%;height:1px;margin-bottom:15px;background:var(--violet)}
.hero-index{position:absolute;right:max(24px,calc((100vw - var(--max))/2));top:110px;font-size:11px;font-weight:700;letter-spacing:.12em}
.vertical-word{position:absolute;right:10px;top:50%;margin:0;writing-mode:vertical-rl;font-size:10px;letter-spacing:.45em;opacity:.34}
.statement{min-height:820px;padding:130px max(24px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:170px 1fr 220px;gap:45px;align-items:center}
.section-number{font-size:clamp(8rem,17vw,15rem);font-weight:900;line-height:.7;opacity:.08}
.section-copy{max-width:800px}
.section-copy h2{margin:0 0 36px;font-size:clamp(2.8rem,6vw,5.8rem);line-height:1}
.section-copy>p{max-width:660px;margin:0 0 18px;font-size:clamp(1rem,1.4vw,1.2rem)}
.section-copy>p:last-child{font-weight:700;font-size:1.25rem}
.margin-note{align-self:end;padding-left:18px;border-left:1px solid var(--fond);font-size:12px;line-height:1.6}
.halo{position:absolute;z-index:-1;border-radius:50%;background:rgba(246,242,234,.32);filter:blur(80px);pointer-events:none}
.halo-one{width:520px;height:520px;right:-210px;top:40px}
.threshold{padding:140px max(24px,calc((100vw - var(--max))/2))}
.section-grid{display:grid;grid-template-columns:1fr 1.55fr;gap:80px}
.section-label{display:flex;flex-direction:column}
.big-mark{font-size:clamp(12rem,30vw,28rem);font-weight:900;line-height:.75;letter-spacing:-.13em;opacity:.08}
.threshold .section-copy h2{font-size:clamp(2.7rem,5.3vw,5rem)}
blockquote{margin:55px 0 0;padding:24px 0;border-top:1px solid var(--violet);border-bottom:1px solid var(--violet);font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.45;font-weight:600}
.experience{padding:130px max(24px,calc((100vw - var(--max))/2))}
.section-top{display:grid;grid-template-columns:1fr 2fr;gap:50px;align-items:start}
.section-top h2{max-width:850px;margin:0;font-size:clamp(2.7rem,5.4vw,5rem);line-height:1.02}
.experience-list{margin-top:100px;border-top:1px solid rgba(246,242,234,.38)}
.experience-list article{display:grid;grid-template-columns:90px 1fr 1fr;gap:40px;align-items:start;padding:38px 0;border-bottom:1px solid rgba(246,242,234,.38)}
.experience-list span{font-size:12px;letter-spacing:.1em}
.experience-list h3{margin:0;font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.25}
.experience-list p{max-width:500px;margin:0}
.halo-two{width:430px;height:430px;left:18%;bottom:-250px}
.movement{padding:130px max(24px,calc((100vw - var(--max))/2))}
.movement-intro{display:grid;grid-template-columns:1fr 2fr;gap:50px}
.movement h2{margin:0;font-size:clamp(2.8rem,5vw,4.8rem);line-height:1}
.verbs{margin-top:100px;border-top:1px solid var(--violet)}
.verb{display:grid;grid-template-columns:70px 1fr;align-items:center;padding:23px 0;border-bottom:1px solid var(--violet)}
.verb span{font-size:11px;font-weight:700}
.verb strong{font-size:clamp(2rem,5vw,5.2rem);line-height:1.1;letter-spacing:-.045em}
.editorial-quote{max-width:930px;margin:130px auto 0;text-align:center}
.quote-mark{display:block;height:100px;font-size:170px;line-height:1;font-weight:900;opacity:.18}
.editorial-quote p{margin:0;font-size:clamp(1.55rem,3.2vw,3rem);line-height:1.32;font-weight:600;letter-spacing:-.03em}
.invitation{padding:130px max(24px,calc((100vw - var(--max))/2))}
.invitation-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:100px;align-items:end}
.invitation h2{margin:0;font-size:clamp(2.8rem,5.7vw,5.3rem);line-height:1}
.invitation-grid>div{font-size:1.05rem}
.accent-line{margin-top:40px;padding-top:22px;border-top:1px solid var(--fond);font-weight:700}
.halo-three{width:500px;height:500px;right:10%;top:-330px}
.tickets{padding:130px max(24px,calc((100vw - var(--max))/2))}
.tickets-head{display:grid;grid-template-columns:.7fr 1.5fr .8fr;gap:45px;align-items:start}
.tickets-head h2{margin:0;font-size:clamp(2.6rem,4.7vw,4.5rem);line-height:1.04}
.tickets-head>p:last-child{margin:8px 0 0;padding-top:15px;border-top:1px solid var(--violet);font-size:12px;font-weight:600}
.ticket-list{margin-top:90px;border-top:2px solid var(--violet)}
.ticket{display:grid;grid-template-columns:1fr .5fr auto;gap:30px;align-items:center;padding:40px 0;border-bottom:1px solid var(--violet)}
.ticket>div{display:grid;grid-template-columns:55px 1fr;align-items:center}
.ticket-num{font-size:11px;font-weight:700}
.ticket h3{margin:0;font-size:clamp(1.5rem,3vw,2.8rem);letter-spacing:-.04em}
.tag{grid-column:2;margin-top:8px;width:max-content;padding:4px 10px;border:1px solid var(--violet);border-radius:999px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.price{margin:0;font-size:clamp(1.55rem,3vw,2.5rem);font-weight:800;white-space:nowrap}
.price small{font-size:11px;letter-spacing:.06em}
.capacity-note{display:flex;align-items:center;gap:12px;margin:36px 0 0;font-size:13px;font-weight:700}
.capacity-note span{width:8px;height:8px;border-radius:50%;background:var(--violet);animation:pulse 2s infinite}
.closing{min-height:720px;padding:140px max(24px,calc((100vw - var(--max))/2)) 50px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.closing h2{max-width:1100px;margin:0 0 45px;font-size:clamp(3rem,6.3vw,6rem);line-height:1}
.button-light{background:var(--fond);border-color:var(--fond);color:var(--violet)}
.button-light:hover{background:transparent;color:var(--fond)}
.closing-meta{position:absolute;left:max(24px,calc((100vw - var(--max))/2));right:max(24px,calc((100vw - var(--max))/2));bottom:35px;display:flex;justify-content:space-between;padding-top:15px;border-top:1px solid rgba(246,242,234,.38);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.halo-four{width:700px;height:450px;top:18%;left:50%;transform:translateX(-50%);opacity:.48}
footer{display:grid;grid-template-columns:1fr 1fr auto;gap:40px;align-items:center;padding:60px max(24px,calc((100vw - var(--max))/2)) 24px;background:var(--fond);font-size:12px}
.footer-brand{font-size:18px;font-weight:900;line-height:1;text-decoration:none;letter-spacing:-.04em}
.footer-brand span{display:block;font-size:8px}
footer>p{text-align:center}
footer>a:last-of-type{font-weight:700}
.copyright{grid-column:1/-1;margin-top:30px;padding-top:18px;border-top:1px solid rgba(75,17,111,.2);text-align:left;font-size:10px}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-visible{opacity:1;transform:none}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(75,17,111,.12)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.capacity-note span{animation:none}}
@media(max-width:900px){
  :root{--header-h:68px}
  body{font-size:16px}
  .site-header{grid-template-columns:1fr auto auto;gap:10px;padding:0 18px}
  .brand-word,nav,.site-header>.button{display:none}
  .menu-button{display:flex;width:44px;height:44px;border:1px solid var(--violet);border-radius:50%;background:transparent;flex-direction:column;justify-content:center;gap:6px;padding:0 12px}
  .menu-button span{display:block;height:1px;background:var(--violet)}
  .mobile-menu{position:absolute;display:none;top:68px;left:0;right:0;padding:25px 20px 30px;background:var(--fond);border-bottom:1px solid var(--violet)}
  .mobile-menu.open{display:grid;gap:18px}
  .mobile-menu a{font-size:20px;font-weight:700;text-decoration:none}
  .hero{min-height:auto;padding:130px 24px 70px;display:block}
  .hero h1{font-size:clamp(3.15rem,14vw,5.4rem)}
  .hero-note{margin:70px 0 0;width:160px}
  .hero-index{top:96px;right:24px}
  .vertical-word{display:none}
  .statement{min-height:auto;padding:100px 24px;display:block}
  .section-number{position:absolute;right:20px;top:90px}
  .margin-note{margin:70px 0 0;max-width:280px}
  .threshold,.experience,.movement,.invitation,.tickets{padding:100px 24px}
  .section-grid,.section-top,.movement-intro,.invitation-grid,.tickets-head{grid-template-columns:1fr;gap:35px}
  .big-mark{font-size:12rem}
  .section-label{height:160px;overflow:hidden}
  .experience-list{margin-top:65px}
  .experience-list article{grid-template-columns:45px 1fr;gap:18px;padding:30px 0}
  .experience-list p{grid-column:2}
  .verbs{margin-top:65px}
  .editorial-quote{margin-top:90px}
  .invitation-grid{align-items:start}
  .ticket-list{margin-top:65px}
  .ticket{grid-template-columns:1fr auto;padding:34px 0}
  .ticket .button{grid-column:1/-1;width:100%}
  .tickets-head>p:last-child{max-width:280px}
  .closing{min-height:700px;padding:110px 24px 120px}
  .closing-meta{left:24px;right:24px;bottom:26px;flex-direction:column;gap:5px}
  footer{grid-template-columns:1fr auto;padding:45px 24px 24px}
  footer>p:not(.copyright){grid-column:1/-1;grid-row:2;text-align:left}
}
@media(max-width:520px){
  .hero-actions{align-items:flex-start;flex-direction:column}
  .hero .button{width:100%}
  .statement .section-copy h2{font-size:clamp(2.65rem,13vw,4rem)}
  .ticket{grid-template-columns:1fr}
  .ticket .price,.ticket .button{grid-column:1}
  .ticket>div{grid-template-columns:40px 1fr}
}