:root{--ink:#090708;--cream:#f5e7c6;--gold:#dca94a;--rose:#a82855;--muted:#aa9e8b}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;background:var(--ink);color:var(--cream);font-family:Georgia,"Times New Roman",serif;overflow-x:hidden}
button,a{font:inherit}
.grain{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}
.opening{min-height:100svh;position:relative;display:grid;place-items:end center;isolation:isolate;overflow:hidden}
.opening-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 28%;z-index:-2;filter:saturate(.85) contrast(1.08)}
.opening-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,3,5,.15),rgba(5,3,5,.4) 35%,#090708 96%),linear-gradient(90deg,rgba(7,4,5,.25),transparent)}
.opening-copy{width:min(94%,760px);padding:12vh 24px 11vh;text-align:center;text-shadow:0 2px 20px #000}
.eyebrow{text-transform:uppercase;letter-spacing:.24em;font-family:Arial,sans-serif;font-size:.72rem;color:var(--gold);font-weight:700}
h1{font-weight:400;font-size:clamp(4rem,15vw,8.5rem);line-height:.76;margin:.3em 0 .25em;letter-spacing:-.055em}
h1 span{color:var(--gold);font-style:italic}
.prologue{font-size:clamp(1.1rem,4vw,1.4rem);font-style:italic;margin:0 auto 1.8rem;max-width:28rem}
.house-motto{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem 1.25rem;margin:-.6rem auto 1.4rem;font-style:italic;color:#e8d7b8;font-size:.9rem}
.music-card{display:flex;flex-direction:column;gap:.3rem;border:1px solid rgba(220,169,74,.45);background:rgba(7,5,6,.72);backdrop-filter:blur(10px);padding:1rem 1.2rem;margin:0 auto 1.2rem;max-width:330px}
.music-card span{font:700 .65rem Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.music-card strong{font-weight:400}
.music-card a,.honey-message a{color:var(--gold);font:700 .75rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.12em;text-decoration:none;margin-top:.3rem}
.primary{border:1px solid var(--gold);color:var(--ink);background:var(--gold);padding:1rem 1.4rem;text-transform:uppercase;letter-spacing:.15em;font:700 .76rem Arial,sans-serif;cursor:pointer;box-shadow:0 12px 40px rgba(0,0,0,.28)}
.primary:active{transform:translateY(1px)}
.scroll-hint{position:absolute;bottom:1.4rem;font:700 .65rem Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#d7ccb5}
.counters{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #30251c;border-bottom:1px solid #30251c;background:#0d0a0b}
.counter{padding:clamp(2rem,6vw,4rem) 1rem;text-align:center;border-right:1px solid #30251c}
.counter:last-child{border-right:0}
.counter b{display:block;font-size:clamp(2.5rem,8vw,5.5rem);font-weight:400;color:var(--gold);line-height:1}
.counter span,.counter small{display:block}
.counter span{font-style:italic;margin:.7rem 0}
.counter small{font:700 .62rem Arial,sans-serif;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}
.chapter{max-width:1060px;margin:auto;padding:clamp(5rem,12vw,10rem) clamp(1.4rem,7vw,6rem)}
.letter{text-align:center;max-width:850px}
h2{font-size:clamp(2.5rem,8vw,5rem);line-height:.98;font-weight:400;letter-spacing:-.035em;margin:.2em 0 .5em}
.chapter p,.chant-copy p,.finale-copy>p{font-size:clamp(1.08rem,2.2vw,1.35rem);line-height:1.72;color:#d9cfbc}
.letter .lead{font-size:1.5rem;color:var(--gold);font-style:italic}
.signature{margin-top:2rem;color:var(--gold);font-style:italic;font-size:1.25rem}
.manifesto{padding:clamp(5rem,12vw,9rem) 7vw;background:#e9dbc0;color:var(--ink);text-align:center}
.manifesto .eyebrow{color:#8f5728}.manifesto blockquote{font-size:clamp(2.5rem,9vw,6.5rem);line-height:.95;margin:.65em auto .2em;max-width:1100px;font-style:italic;color:#34151c}.manifesto>p:not(.eyebrow){max-width:720px;margin:1rem auto 4rem;font-size:1.2rem;line-height:1.7;color:#5b4433}
.section-heading{max-width:850px;margin:0 auto 3rem;text-align:center}.section-heading>p:not(.eyebrow){color:var(--muted);font-size:1.1rem;line-height:1.6}
.admiration{padding:clamp(5rem,11vw,9rem) 7vw;background:radial-gradient(circle at 50% 0,#26121a,#090708 48%)}
.admiration-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#4b3026;max-width:1100px;margin:auto;border:1px solid #4b3026}
.admiration-grid article{background:#0d090a;padding:2rem}.admiration-grid b{color:var(--gold);font:700 .65rem Arial,sans-serif;letter-spacing:.18em}.admiration-grid h3{font-size:1.8rem;font-weight:400;margin:.55rem 0}.admiration-grid p{color:#bdb19f;line-height:1.6}
.gallery{padding:clamp(5rem,10vw,8rem) 5vw;background:#e9dbc0;color:var(--ink);text-align:center}
.gallery .eyebrow{color:#8f5728}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;max-width:1200px;margin:auto}.gallery-card{margin:0;background:#f7eddc;padding:.35rem;box-shadow:0 10px 24px #4a321e24;animation:frameIn .5s ease both}.gallery-card img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:#cdbb9d}.gallery-card img.failed{opacity:.18}.secondary{margin-top:2.5rem;border:1px solid #7d4e27;background:transparent;color:#4b2d1c;padding:1rem 1.4rem;text-transform:uppercase;letter-spacing:.13em;font:700 .72rem Arial,sans-serif;cursor:pointer}
.gratitude{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2rem,7vw,6rem);align-items:center;max-width:1200px}
.gratitude-photo{position:relative}
.gratitude-photo img{width:100%;max-height:720px;object-fit:cover;display:block;box-shadow:24px 24px 0 #251416}
.gratitude-photo span{position:absolute;bottom:1rem;left:1rem;right:1rem;background:rgba(7,5,6,.82);padding:.9rem;font-style:italic;text-align:center}
.charter{padding:clamp(5rem,11vw,9rem) 7vw;background:#120b0d}.charter ol{list-style:none;margin:0 auto;padding:0;max-width:960px;border-top:1px solid #4b3026}.charter li{display:grid;grid-template-columns:70px 1fr;gap:1rem;padding:1.5rem 0;border-bottom:1px solid #4b3026}.charter li>span{font-size:2rem;color:var(--gold);font-style:italic}.charter li p{margin:0;color:#bdb19f;line-height:1.65}.charter li strong{display:block;color:var(--cream);font-size:1.2rem;font-weight:400;margin-bottom:.3rem}
.open-when{padding:clamp(5rem,11vw,9rem) 7vw;background:#e9dbc0;color:var(--ink)}.open-when .eyebrow{color:#8f5728}.note-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:1100px;margin:auto}.note{border:1px solid #9f7b50;background:#f5e8cf;padding:1.5rem;text-align:left;cursor:pointer;min-height:160px}.note h3{font-size:1.45rem;font-weight:400;margin:.2rem 0}.note p{display:none;line-height:1.6;color:#604a36}.note.open{background:#fff8ea}.note.open p{display:block}.note small{font:700 .65rem Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#8f5728}
.videos{padding:7rem 7vw;background:linear-gradient(180deg,#12090d,#090708);text-align:center}
.videos h2{max-width:750px;margin:.2em auto .8em}
.video-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;max-width:1100px;margin:auto}
.video-grid video{width:100%;aspect-ratio:9/16;object-fit:cover;border:1px solid #5c3d2c;background:#000}
.video-wrap{position:relative}.video-wrap p{color:var(--muted);font-style:italic;font-size:.9rem}.video-error{display:none;position:absolute;inset:35% 1rem auto;background:#090708dd;padding:1rem;color:var(--cream);border:1px solid var(--gold);cursor:pointer}.video-wrap.failed .video-error{display:block}
.future{padding:clamp(5rem,11vw,9rem) 7vw;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,7vw,6rem);align-items:center;background:#0b0809}.future-photo img{width:100%;max-height:760px;object-fit:cover;display:block;box-shadow:-20px 20px 0 #28131a}.future-copy p{color:#cfc3b0;font-size:1.1rem;line-height:1.7}
.chant{padding:clamp(5rem,10vw,9rem) 7vw;background:radial-gradient(circle at 25% 20%,#2b1520,#0a0809 55%);display:grid;grid-template-columns:.75fr 1.2fr;gap:clamp(2rem,7vw,6rem);align-items:center}
.chant-copy{max-width:450px}
.chant img{width:100%;max-width:760px;margin:auto;box-shadow:0 30px 80px rgba(0,0,0,.6);border:1px solid rgba(220,169,74,.35)}
.finale{min-height:100svh;position:relative;display:grid;place-items:center;text-align:center;background:url('assets/photos/photo-33.webp') center/cover no-repeat;isolation:isolate}
.finale-shade{position:absolute;inset:0;background:rgba(7,4,5,.72);backdrop-filter:blur(2px);z-index:-1}
.finale-copy{max-width:850px;padding:6rem 1.4rem}
.finale-copy h2{font-size:clamp(2.3rem,7vw,4.8rem)}
.honey{margin-top:1.5rem}
.honey-message{max-height:0;opacity:0;overflow:hidden;transition:.8s ease;display:flex;flex-direction:column;align-items:center}
.honey-message.open{max-height:600px;opacity:1;padding-top:3rem}
.honey-message span{font-size:4rem}
.honey-message p{font-size:1.25rem;font-style:italic;margin:1rem 0 .4rem}
.honey-message strong{font-size:clamp(2.8rem,11vw,5.5rem);color:var(--gold);font-weight:400}
.honey-message small{font-size:1.3rem;margin:.8rem 0 1rem}
.song-player{position:fixed;width:1px;height:1px;left:0;bottom:0;opacity:.01;pointer-events:none;border:0}
.song-control{position:fixed;right:1rem;bottom:max(1rem,env(safe-area-inset-bottom));z-index:90;border:1px solid rgba(220,169,74,.65);background:rgba(9,7,8,.9);color:var(--gold);padding:.7rem .9rem;font:700 .68rem Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 8px 30px #0008}
.trailer{position:fixed;inset:0;background:#000;z-index:100;overflow:hidden}
.trailer[hidden]{display:none}
.trailer-stage,.trailer-frame{position:absolute;inset:0}
.trailer-frame{display:grid;place-items:center;isolation:isolate;animation:frameIn .8s ease both}
.trailer-frame img,.trailer-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.trailer-frame:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.72)),radial-gradient(circle,transparent,#0009)}
.trailer-text{text-align:center;padding:2rem;max-width:900px;text-shadow:0 3px 30px #000}
.trailer-text small{display:block;color:var(--gold);font:700 .7rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.3em;margin-bottom:1rem}
.trailer-text strong{display:block;font-weight:400;font-size:clamp(2.8rem,11vw,7rem);line-height:.95}
.skip{position:absolute;right:1rem;top:max(1rem,env(safe-area-inset-top));z-index:3;color:#fff;background:#0007;border:1px solid #ffffff55;padding:.65rem 1rem;font:700 .65rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.14em}
.trailer-progress{position:absolute;left:0;right:0;top:0;height:3px;background:#ffffff20;z-index:3}
.trailer-progress i{display:block;height:100%;width:0;background:var(--gold);transition:width .2s linear}
@keyframes frameIn{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}
@media(max-width:760px){.counters{grid-template-columns:1fr}.counter{border-right:0;border-bottom:1px solid #30251c}.gratitude,.chant,.future{grid-template-columns:1fr}.admiration-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr)}.note-grid{grid-template-columns:1fr}.video-grid{grid-template-columns:repeat(2,1fr)}.chant-copy{text-align:center;margin:auto}.opening-copy{padding-bottom:13vh}.gratitude-photo img{box-shadow:14px 14px 0 #251416}.future-photo img{box-shadow:-12px 12px 0 #28131a}.manifesto>p:not(.eyebrow){margin-bottom:3rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
