:root{--ink:#171717;--paper:#f4f0e8;--white:#fff;--orange:#f28c18;--grey:#6c6c6c;--line:#d8d0c2;--deep:#262626}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Montserrat,Arial,sans-serif}a{color:inherit}
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;min-height:88px;padding:10px clamp(18px,4vw,58px);background:rgba(244,240,232,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;text-decoration:none;min-width:0}.anniversary-logo{display:block;width:min(390px,40vw);height:62px;object-fit:contain;object-position:left center;mix-blend-mode:multiply}
.site-header nav{display:flex;align-items:center;gap:24px}.site-header nav a{text-decoration:none;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.nav-cta{border:1px solid var(--orange);padding:10px 14px;color:#b55e00}.menu-btn{display:none}
.hero{min-height:78vh;display:grid;grid-template-columns:1.08fr .92fr}.hero-copy{padding:clamp(60px,9vw,125px) clamp(24px,6vw,88px);display:flex;flex-direction:column;justify-content:center}.kicker{text-transform:uppercase;letter-spacing:.22em;font-size:11px;color:#b55e00;font-weight:700}
.hero h1{font:600 clamp(58px,9vw,132px)/.84 Playfair Display;margin:24px 0}.hero h1 em{color:var(--orange);font-weight:500}.hero p{max-width:700px;font-size:18px;line-height:1.7}
.hero-art{position:relative;min-height:540px;background:var(--deep);overflow:hidden}.hero-art>img{width:100%;height:100%;object-fit:cover;filter:grayscale(18%);transform:scale(1.01)}.hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.75))}
.hero-overlay{position:absolute;left:clamp(24px,4vw,58px);right:24px;bottom:42px;z-index:2;color:#fff}.hero-overlay span{font:500 clamp(28px,4vw,54px)/1.02 Playfair Display}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-block;text-decoration:none;padding:14px 18px;background:var(--orange);color:#171717;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.09em;border:0}.btn.alt{background:transparent;color:var(--ink);border:1px solid var(--ink)}.btn.dark{background:var(--ink);color:#fff}
.section{padding:90px clamp(20px,5vw,72px)}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:36px}.section h2{font:600 clamp(38px,5vw,72px) Playfair Display;margin:0}.section-head p{max-width:520px;line-height:1.7;color:var(--grey)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card{background:#fff;border:1px solid var(--line);text-decoration:none;transition:.25s;display:flex;flex-direction:column;overflow:hidden}.card:hover{transform:translateY(-5px);box-shadow:0 18px 45px rgba(0,0,0,.08)}
.card-media{aspect-ratio:4/3;background:var(--deep);overflow:hidden;display:grid;place-items:center;color:#fff}.card-media img{width:100%;height:100%;object-fit:cover;transition:.45s}.card:hover .card-media img{transform:scale(1.035)}.placeholder{padding:25px;text-align:center;font:italic 28px Playfair Display}.card-body{padding:25px}.meta{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#b55e00;font-weight:800}.card h3{font:600 29px/1.05 Playfair Display;margin:12px 0}.card p{color:var(--grey);line-height:1.6;font-size:14px}.card-foot{margin-top:auto;padding:0 25px 24px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#b55e00}
.band{background:var(--deep);color:#fff;padding:38px clamp(20px,5vw,72px);display:grid;grid-template-columns:repeat(4,1fr);gap:25px;border-top:5px solid var(--orange)}.band strong{display:block;font:600 34px Playfair Display}.band span{font-size:11px;text-transform:uppercase;letter-spacing:.11em;color:#d7d7d7}
.detail-hero{min-height:62vh;display:grid;grid-template-columns:1fr 1fr}.detail-image{background:#222;min-height:450px}.detail-image img{width:100%;height:100%;object-fit:cover}.detail-image .placeholder{height:100%;display:grid;place-items:center;color:#fff}.detail-copy{padding:clamp(50px,7vw,100px);display:flex;flex-direction:column;justify-content:center}.detail-copy h1{font:600 clamp(46px,6vw,90px)/.95 Playfair Display;margin:18px 0}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:30px}.fact{background:var(--paper);padding:18px}.fact small{display:block;color:#b55e00;text-transform:uppercase;letter-spacing:.12em;font-weight:800;margin-bottom:7px}
.content-grid{display:grid;grid-template-columns:1.5fr .7fr;gap:70px}.copy h2{font:600 44px Playfair Display}.copy p{line-height:1.85;color:#39362f}.sidebox{border-top:4px solid var(--orange);background:#fff;padding:28px;height:max-content}.sidebox h3{font:600 28px Playfair Display}.notice{background:#fff2df;border-left:4px solid var(--orange);padding:16px;font-size:13px;line-height:1.6;margin:18px 0}
.schedule{width:100%;border-collapse:collapse;background:#fff}.schedule th,.schedule td{text-align:left;padding:16px;border-bottom:1px solid var(--line);vertical-align:top}.schedule th{background:var(--deep);color:#fff;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.page-title{padding:85px clamp(20px,5vw,72px) 35px}.page-title h1{font:600 clamp(52px,7vw,100px) Playfair Display;margin:0}
footer{padding:45px clamp(20px,5vw,72px);background:var(--deep);color:#fff;display:flex;justify-content:space-between;gap:30px;line-height:1.7;font-size:13px;border-top:5px solid var(--orange)}
@media(max-width:980px){.anniversary-logo{width:min(320px,55vw)}.grid{grid-template-columns:1fr 1fr}.hero,.detail-hero,.content-grid{grid-template-columns:1fr}.hero-art{min-height:470px}.band{grid-template-columns:1fr 1fr}.site-header nav{display:none}.site-header nav.open{display:flex;position:absolute;top:88px;left:0;right:0;background:var(--paper);padding:24px;flex-direction:column;border-bottom:1px solid var(--line)}.menu-btn{display:block;border:0;background:transparent;font-weight:800}.schedule-wrap{overflow:auto}}
@media(max-width:620px){.site-header{min-height:74px}.anniversary-logo{width:245px;height:50px}.site-header nav.open{top:74px}.grid{grid-template-columns:1fr}.hero h1{font-size:64px}.hero-art{min-height:390px}.section{padding:65px 18px}.section-head{display:block}.band{grid-template-columns:1fr}.facts{grid-template-columns:1fr}footer{flex-direction:column}.detail-copy{padding:42px 22px}.page-title{padding-left:18px}}


/* Choreographic motion layer */
:root{--mx:0;--my:0}
.hero h1,.page-title h1,.section h2,.detail-copy h1{overflow:visible}
.glyph{display:inline-block;will-change:transform,opacity;animation:glyphRise .9s cubic-bezier(.18,.8,.2,1) both;animation-delay:calc(var(--i)*18ms)}
.hero h1 .glyph:nth-child(3n){animation-name:glyphSway}
.hero h1 em .glyph{animation-duration:1.15s}
@keyframes glyphRise{0%{opacity:0;transform:translateY(34px) rotate(4deg)}100%{opacity:1;transform:none}}
@keyframes glyphSway{0%{opacity:0;transform:translateY(40px) rotate(-7deg) scale(.94)}60%{transform:translateY(-4px) rotate(2deg) scale(1.02)}100%{opacity:1;transform:none}}

.hero-copy{transform:translate(calc(var(--mx)*-5px),calc(var(--my)*-5px));transition:transform .35s ease-out}
.hero-overlay{transform:translate(calc(var(--mx)*8px),calc(var(--my)*8px));transition:transform .3s ease-out}
.hero-art:before{content:"";position:absolute;width:44%;aspect-ratio:1;border:1px solid rgba(255,255,255,.24);border-radius:50%;left:12%;top:15%;z-index:2;transform:translate(calc(var(--mx)*18px),calc(var(--my)*18px));transition:transform .3s ease-out;pointer-events:none}
.hero-art:after{transition:opacity .4s ease}

.reveal{opacity:0;transform:translateY(34px) rotate(.35deg);transition:opacity .8s cubic-bezier(.18,.8,.2,1),transform .8s cubic-bezier(.18,.8,.2,1)}
.reveal.is-visible{opacity:1;transform:none}
.grid .card:nth-child(2n).reveal{transform:translateY(44px) rotate(-.45deg)}
.grid .card:nth-child(2n).reveal.is-visible{transform:none}

.card-media img,.detail-image img,.hero-art>img{will-change:transform;transition:transform .55s cubic-bezier(.18,.8,.2,1),filter .45s ease}
.card:hover .card-media img{transform:scale(1.06) rotate(.35deg)}
.card:hover h3{transform:translateX(6px)}
.card h3{transition:transform .35s cubic-bezier(.18,.8,.2,1)}
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn:before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.22);transform:translateX(-110%) skewX(-18deg);transition:transform .55s ease;z-index:-1}
.btn:hover:before{transform:translateX(110%) skewX(-18deg)}

.motion-cursor{position:fixed;left:-14px;top:-14px;width:28px;height:28px;border:1px solid rgba(242,140,24,.8);border-radius:50%;pointer-events:none;z-index:9999;mix-blend-mode:difference;transition:width .22s ease,height .22s ease,left .22s ease,top .22s ease,background .22s ease;will-change:transform}
.motion-cursor.active{left:-24px;top:-24px;width:48px;height:48px;background:rgba(242,140,24,.22)}
@media(pointer:coarse){.motion-cursor{display:none}}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
  .motion-cursor{display:none!important}
}

.hero-overlay small{display:block;margin-top:14px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.75)}
