@import url('data:text/css,');

:root{
  --bg:#061713;
  --bg2:#0a2420;
  --ink:#f8f1df;
  --muted:#cfc2a4;
  --gold:#d9b66e;
  --gold2:#f0d79a;
  --line:rgba(231,199,128,.28);
  --glass:rgba(10,31,27,.62);
  --shadow:0 34px 90px rgba(0,0,0,.34);
  --serif:Georgia,'Times New Roman',serif;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;min-width:320px;color:var(--ink);font-family:var(--sans);background:
radial-gradient(circle at 50% -20%,rgba(53,105,83,.22),transparent 38%),
linear-gradient(180deg,#071b17 0%,#04110f 54%,#071a16 100%);
overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:
linear-gradient(90deg,rgba(217,182,110,.03) 1px,transparent 1px),
linear-gradient(rgba(217,182,110,.025) 1px,transparent 1px);
background-size:64px 64px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 85%)}
::selection{background:rgba(217,182,110,.28);color:#fff8e8}
a{color:inherit}
svg{display:block}
#three-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.95}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.11;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='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.34'/%3E%3C/svg%3E");mix-blend-mode:soft-light}
.ambient{position:fixed;border-radius:50%;filter:blur(90px);pointer-events:none;z-index:0;opacity:.32}
.a1{width:28rem;height:28rem;right:-9rem;top:18%;background:#264f42}
.a2{width:24rem;height:24rem;left:-10rem;bottom:10%;background:#5b4521;opacity:.19}
main{position:relative;z-index:2}
.section{position:relative;min-height:100svh;display:grid;place-items:center;padding:96px 24px}
.frame{position:fixed;inset:0;z-index:4;pointer-events:none}
.frame:before{content:"";position:absolute;inset:16px;border:1px solid rgba(226,192,117,.16)}
.corner{position:absolute;width:150px;height:150px;fill:none;stroke:rgba(223,188,113,.38);stroke-width:1.15;vector-effect:non-scaling-stroke}
.tl{top:24px;left:24px}.tr{top:24px;right:24px;transform:rotate(90deg)}.br{right:24px;bottom:24px;transform:rotate(180deg)}.bl{left:24px;bottom:24px;transform:rotate(270deg)}
.hero{min-height:100svh;text-align:center;padding-top:72px;padding-bottom:72px}
.hero-inner{width:min(880px,100%);margin:auto;display:flex;flex-direction:column;align-items:center}
.eyebrow{display:flex;align-items:center;gap:16px;color:var(--gold2);font-size:.72rem;letter-spacing:.38em;font-weight:650;margin-bottom:22px}
.eyebrow span{width:58px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.eyebrow span:last-child{background:linear-gradient(90deg,var(--gold),transparent)}
.eyebrow b{font-weight:600}
.jubilee{position:relative;display:grid;place-items:center;margin:0 auto -4px}
.age{font-family:var(--serif);font-size:clamp(9rem,26vw,18rem);line-height:.74;letter-spacing:-.08em;font-weight:500;color:transparent;background:linear-gradient(118deg,#8d6a2c 4%,#e7c77f 28%,#fff0ba 48%,#b98f40 67%,#f1d995 88%);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 20px 32px rgba(0,0,0,.26))}
.age:after{content:"95";position:absolute;inset:0;color:transparent;-webkit-text-stroke:1px rgba(255,241,190,.17);filter:blur(.35px)}
.age-label{margin-top:10px;color:var(--gold2);font-size:.72rem;font-weight:700;letter-spacing:.7em;padding-left:.7em}
.spark{position:absolute;width:20px;height:20px;fill:var(--gold2);opacity:.72;filter:drop-shadow(0 0 10px rgba(239,207,139,.4))}
.sa{left:-28px;top:18%;animation:twinkle 3.2s ease-in-out infinite}.sb{right:-26px;bottom:18%;width:13px;height:13px;animation:twinkle 4.1s 1s ease-in-out infinite}
@keyframes twinkle{0%,100%{transform:scale(.65) rotate(0);opacity:.25}50%{transform:scale(1.08) rotate(45deg);opacity:.9}}
h1,h2{font-family:var(--serif);font-weight:500}
.hero h1{font-size:clamp(2.65rem,7vw,5rem);line-height:.98;margin:24px 0 12px;letter-spacing:-.035em}
.hero-kicker{margin:0;color:var(--muted);font-size:clamp(.92rem,2vw,1.08rem);letter-spacing:.08em}
.ornament-divider{display:flex;align-items:center;gap:9px;margin:30px 0 24px}
.ornament-divider span{width:72px;height:1px;background:linear-gradient(90deg,transparent,var(--line))}
.ornament-divider span:last-child{background:linear-gradient(90deg,var(--line),transparent)}
.ornament-divider i{width:5px;height:5px;border:1px solid var(--gold);transform:rotate(45deg)}
.ornament-divider b{width:9px;height:9px;border:1px solid var(--gold2);transform:rotate(45deg);box-shadow:0 0 18px rgba(230,197,123,.3)}
.hero-welcome{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,4vw,2.45rem);margin:0 0 8px;color:#f6e5b7}
.hero-sub{max-width:540px;margin:0;color:#d6cbb0;line-height:1.7;font-size:.98rem}
.scroll-cue{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;color:rgba(244,229,190,.58);font-size:.62rem;text-transform:uppercase;letter-spacing:.3em}
.scroll-cue i{width:1px;height:36px;background:linear-gradient(var(--gold),transparent);animation:scrollline 2s ease-in-out infinite}
@keyframes scrollline{0%,100%{transform:scaleY(.45);transform-origin:top;opacity:.25}50%{transform:scaleY(1);opacity:.8}}
.glass-card{position:relative;width:min(760px,100%);padding:clamp(34px,6vw,74px);border:1px solid rgba(227,195,125,.22);border-radius:28px;background:linear-gradient(145deg,rgba(12,40,34,.74),rgba(7,25,22,.52));backdrop-filter:blur(24px) saturate(125%);-webkit-backdrop-filter:blur(24px) saturate(125%);box-shadow:var(--shadow);overflow:hidden}
.glass-card:before,.glass-card:after{content:"";position:absolute;width:130px;height:130px;border:1px solid rgba(224,189,114,.15);transform:rotate(45deg)}
.glass-card:before{left:-82px;top:-82px}.glass-card:after{right:-82px;bottom:-82px}
.mini-label{color:var(--gold);font-size:.68rem;font-weight:700;letter-spacing:.28em}
.invitation-card{text-align:center}
.invitation-card h2,.section-title h2{font-size:clamp(2.05rem,5vw,3.7rem);line-height:1.06;letter-spacing:-.035em;margin:15px auto 28px}
.invitation-card p{max-width:620px;margin:0 auto 20px;color:#ded4bd;font-size:clamp(1rem,2vw,1.12rem);line-height:1.9}
.invitation-card strong{color:#f4e3b6;font-weight:600}
.invitation-card blockquote{margin:34px auto 0;padding-top:28px;border-top:1px solid var(--line);font-family:var(--serif);font-style:italic;color:#f0d79a;font-size:clamp(1.25rem,3vw,1.7rem);line-height:1.5}
.event-section{padding-inline:24px}
.event-wrap{width:min(1050px,100%);margin:auto}
.section-title{text-align:center;margin-bottom:46px}
.section-title h2{margin-bottom:0}
.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.event-card{min-height:270px;border:1px solid rgba(224,191,119,.19);border-radius:22px;padding:32px 25px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(155deg,rgba(18,54,46,.6),rgba(5,20,17,.42));backdrop-filter:blur(16px);box-shadow:0 20px 55px rgba(0,0,0,.2);transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .45s,background .45s}
.event-card:hover{transform:translateY(-8px);border-color:rgba(230,197,125,.42);background:linear-gradient(155deg,rgba(24,66,56,.72),rgba(7,25,21,.48))}
.icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;margin-bottom:23px;border:1px solid rgba(228,193,117,.25);background:rgba(217,182,110,.055)}
.icon svg{width:23px;height:23px;fill:none;stroke:#e7c77f;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.event-card>span{font-size:.64rem;letter-spacing:.26em;color:#baaa8b;margin-bottom:12px}
.event-card>strong{font-family:var(--serif);font-weight:500;color:#f6e9c7;font-size:1.65rem;line-height:1.2}
.event-card>small{color:#a99f8b;font-size:.88rem;margin-top:8px;line-height:1.5}
.countdown-section{min-height:70svh}
.countdown-card{width:min(820px,100%);text-align:center;padding:48px 30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(90deg,transparent,rgba(14,48,40,.35),transparent)}
.countdown{display:flex;align-items:center;justify-content:center;gap:clamp(10px,3vw,24px);margin-top:26px}
.countdown div{min-width:90px;display:flex;flex-direction:column;gap:5px}
.countdown strong{font-family:var(--serif);font-size:clamp(2.3rem,7vw,4.8rem);font-weight:500;color:#f4dfab;font-variant-numeric:tabular-nums;line-height:1}
.countdown span{font-size:.67rem;color:#a99d83;letter-spacing:.16em;text-transform:uppercase}
.countdown i{width:4px;height:4px;border-radius:50%;background:var(--gold);opacity:.6}
.finale{min-height:92svh;text-align:center}
.finale-inner{position:relative;width:min(780px,100%);padding:60px 20px}
.finale-spark{width:24px;height:24px;fill:var(--gold2);margin:0 auto 24px;animation:twinkle 3.4s ease-in-out infinite}
.finale h2{font-size:clamp(3rem,8vw,6.6rem);line-height:.96;letter-spacing:-.045em;margin:20px 0;color:transparent;background:linear-gradient(120deg,#f9e7b6,#c99d4f,#f0d794);-webkit-background-clip:text;background-clip:text}
.finale-inner>p:not(.mini-label){font-family:var(--serif);font-style:italic;color:#d6c39a;font-size:1.4rem}
.signature{display:inline-block;margin-top:44px;padding:12px 32px;border-top:1px solid rgba(225,190,116,.23);color:#9f947d;font-size:.67rem;letter-spacing:.23em;text-transform:uppercase}
.reveal{opacity:1;transform:none;filter:none}.enhanced .reveal{opacity:0;transform:translateY(24px) scale(.988);filter:blur(6px);transition:opacity .9s ease,transform 1s cubic-bezier(.2,.75,.2,1),filter .9s ease}
.reveal.visible{opacity:1;transform:none;filter:none}
.hero .reveal:nth-child(2){transition-delay:.08s}.hero .reveal:nth-child(3){transition-delay:.15s}.hero .reveal:nth-child(4){transition-delay:.22s}.hero .reveal:nth-child(5){transition-delay:.28s}.hero .reveal:nth-child(6){transition-delay:.34s}.hero .reveal:nth-child(7){transition-delay:.4s}
@media(max-width:760px){
 .section{padding:78px 18px}.frame:before{inset:9px}.corner{width:86px;height:86px}.tl{top:14px;left:14px}.tr{top:14px;right:14px}.bl{bottom:14px;left:14px}.br{bottom:14px;right:14px}
 .hero{padding-top:52px}.hero-inner{padding:0 6px}.eyebrow{font-size:.62rem;gap:10px}.eyebrow span{width:34px}.age{font-size:clamp(8rem,44vw,12.5rem)}
 .event-grid{grid-template-columns:1fr}.event-card{min-height:190px;padding:27px 22px}.section-title{margin-bottom:28px}
 .countdown-card{padding:38px 8px}.countdown{gap:8px}.countdown div{min-width:60px}.countdown span{font-size:.56rem;letter-spacing:.08em}
 .countdown i{width:3px;height:3px}.glass-card{border-radius:22px}.scroll-cue{bottom:24px}
}
@media(max-width:390px){.countdown div{min-width:52px}.countdown strong{font-size:2.05rem}.hero-sub{font-size:.9rem}.age{font-size:8rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.spark,.scroll-cue i{animation:none}.reveal{opacity:1;transform:none;filter:none;transition:none}.event-card{transition:none}}

/* --- Qonys toi v3: refined jubilee, ambient audio control --- */
.jubilee{
  position:relative;
  width:min(72vw,300px);
  aspect-ratio:1;
  margin:12px auto 18px;
  display:grid;
  place-items:center;
  border-radius:50%;
  isolation:isolate;
  background:
    radial-gradient(circle at 50% 42%,rgba(255,238,184,.105),transparent 38%),
    radial-gradient(circle at 50% 55%,rgba(36,86,70,.23),rgba(5,24,20,.08) 68%,transparent 70%);
  border:1px solid rgba(234,202,132,.2);
  box-shadow:
    0 28px 60px rgba(0,0,0,.22),
    inset 0 0 55px rgba(220,181,100,.045);
}
.jubilee::before{
  content:"";
  position:absolute;
  inset:13px;
  border-radius:50%;
  border:1px solid rgba(236,204,136,.21);
  box-shadow:inset 0 0 0 8px rgba(218,180,103,.018);
  pointer-events:none;
}
.jubilee::after{
  content:"";
  position:absolute;
  inset:27px;
  border-radius:50%;
  border:1px dashed rgba(236,204,136,.16);
  pointer-events:none;
  animation:medallion-spin 58s linear infinite;
}
@keyframes medallion-spin{to{transform:rotate(360deg)}}
.jubilee-halo{
  position:absolute;
  inset:42px;
  z-index:-1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(225,191,116,.1),rgba(10,42,35,.02) 62%,transparent 72%);
  box-shadow:0 0 54px rgba(210,171,89,.075);
}
.age{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
  transform:translateY(-8px);
  font-family:"Bodoni 72",Didot,"Iowan Old Style",Georgia,"Times New Roman",serif;
  font-size:clamp(8.4rem,29vw,12.6rem);
  font-weight:400;
  font-variant-numeric:lining-nums;
  font-feature-settings:"lnum" 1,"kern" 1;
  line-height:.78;
  letter-spacing:-.035em;
  color:transparent;
  background:linear-gradient(115deg,#a77b31 4%,#e8c875 25%,#fff1bd 47%,#d1a44d 68%,#f6dfa0 89%);
  -webkit-background-clip:text;
  background-clip:text;
  filter:drop-shadow(0 11px 20px rgba(0,0,0,.2));
}
.age:after{content:none}
.age-nine{display:inline-block;transform:translateX(.015em)}
.age-five{display:inline-block;transform:translateX(-.015em)}
.age-rule{
  position:absolute;
  z-index:3;
  left:50%;
  bottom:39px;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:10px;
  color:#f0d99d;
  font-size:.69rem;
  font-weight:700;
  letter-spacing:.47em;
  padding-left:.47em;
  white-space:nowrap;
}
.age-rule i{
  width:26px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(238,207,139,.65));
}
.age-rule i:last-child{background:linear-gradient(90deg,rgba(238,207,139,.65),transparent)}
.jubilee .spark{z-index:4}
.jubilee .sa{left:17%;top:26%;width:15px;height:15px}
.jubilee .sb{right:16%;bottom:29%;width:10px;height:10px}
.hero h1{margin-top:16px}

.music-toggle{
  position:fixed;
  right:max(18px,env(safe-area-inset-right));
  bottom:max(18px,env(safe-area-inset-bottom));
  z-index:40;
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding:10px 15px 10px 13px;
  border:1px solid rgba(232,199,126,.24);
  border-radius:999px;
  color:#f2ddb0;
  background:rgba(5,27,22,.76);
  -webkit-backdrop-filter:blur(18px) saturate(125%);
  backdrop-filter:blur(18px) saturate(125%);
  box-shadow:0 12px 34px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,255,255,.025);
  font:600 .68rem/1 var(--sans);
  letter-spacing:.09em;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:transform .25s ease,border-color .25s ease,background .25s ease,opacity .25s ease;
}
.music-toggle:active{transform:scale(.96)}
.music-toggle.needs-gesture{animation:music-pulse 2.4s ease-in-out infinite}
.music-toggle.is-muted{opacity:.68}
@keyframes music-pulse{
  0%,100%{box-shadow:0 12px 34px rgba(0,0,0,.24),0 0 0 0 rgba(227,193,117,0)}
  50%{box-shadow:0 12px 34px rgba(0,0,0,.24),0 0 0 8px rgba(227,193,117,.055)}
}
.music-bars{
  width:18px;
  height:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2px;
}
.music-bars i{
  display:block;
  width:2px;
  height:5px;
  border-radius:3px;
  background:#e9cb86;
  transform-origin:center;
  animation:music-bar 1.15s ease-in-out infinite;
}
.music-bars i:nth-child(2){height:10px;animation-delay:-.35s}
.music-bars i:nth-child(3){height:7px;animation-delay:-.7s}
.music-toggle.needs-gesture .music-bars i,
.music-toggle.is-muted .music-bars i{animation-play-state:paused;opacity:.55}
@keyframes music-bar{0%,100%{transform:scaleY(.55)}50%{transform:scaleY(1.35)}}

@media(max-width:760px){
  .jubilee{width:min(72vw,286px);margin-top:8px;margin-bottom:12px}
  .age{font-size:clamp(7.7rem,34vw,10.8rem);transform:translateY(-7px)}
  .age-rule{bottom:36px;font-size:.62rem;gap:8px}
  .age-rule i{width:20px}
  .hero h1{margin-top:14px}
  .music-toggle{right:15px;bottom:calc(18px + env(safe-area-inset-bottom));padding:10px 13px}
  .music-label{max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
@media(max-height:720px) and (max-width:760px){
  .jubilee{width:min(62vw,240px)}
  .age{font-size:clamp(6.7rem,30vw,9rem)}
  .age-rule{bottom:30px}
  .hero h1{font-size:2.45rem;margin-top:10px}
}
@media(prefers-reduced-motion:reduce){
  .jubilee::after,.music-toggle,.music-bars i{animation:none!important}
}
