:root{
  --black:#070605;
  --char:#16120b;
  --gold:#f5c542;
  --gold-deep:#b8860b;
  --amber:#e8891c;
  --cream:#fff4dc;
  --muted:#cdbf9f;
  --line:rgba(245,197,66,.35);
  --metal:linear-gradient(100deg,#a8740c 0%,#ffe9a3 20%,#f5c542 36%,#9c6a10 54%,#ffd76a 72%,#fff3c4 82%,#c8901c 100%);
  --display:'Anton',Impact,sans-serif;
  --body:'Manrope',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--black)}
body{min-width:1180px;background:var(--black);color:var(--cream);font-family:var(--body);font-size:17px;line-height:1.55;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}

/* ---------- shared type ---------- */
.gold{background-image:var(--metal);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.sheen{background-image:linear-gradient(110deg,transparent 42%,rgba(255,255,255,.95) 50%,transparent 58%),var(--metal);background-size:300% 100%,220% 100%;background-repeat:no-repeat,repeat;animation:sheen 5.5s ease-in-out infinite}
@keyframes sheen{0%{background-position:160% 0,0 0}55%,100%{background-position:-60% 0,100% 0}}
.big{font-family:var(--display);font-weight:400;font-size:clamp(64px,7vw,118px);line-height:.95;letter-spacing:.01em;text-transform:uppercase}
.lede{max-width:640px;color:var(--muted);font-size:19px;margin-top:22px}
.kicker{font-family:var(--display);letter-spacing:.3em;color:var(--muted);font-size:26px}
.sec-head{position:relative;z-index:4;padding:0 7vw}
.sec-head.center{text-align:center}

/* ---------- particles ---------- */
#sparks{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:40;mix-blend-mode:screen}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:40px;padding:16px 4vw;transition:background .4s,box-shadow .4s}
/* the delivered hero art is bright behind the links — keep a soft bar under them at the top too */
.nav::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,6,5,.88),rgba(7,6,5,.55) 60%,transparent);transition:opacity .4s}
.nav.solid::before{opacity:0}
.nav.solid{background:rgba(7,6,5,.86);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line)}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--display);font-size:26px;letter-spacing:.04em}
.brand img{width:34px;height:34px;border-radius:50%;border:2px solid var(--gold);box-shadow:0 0 14px rgba(245,197,66,.5)}
.nav nav{display:flex;gap:30px;margin-left:auto}
.nav nav a{font-weight:800;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);transition:color .25s}
.nav nav a:hover{color:var(--gold)}

/* ---------- buttons ---------- */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;padding:17px 30px;border-radius:6px;font-family:var(--display);font-size:19px;letter-spacing:.12em;transition:transform .25s,box-shadow .25s,border-color .25s}
.btn svg{width:18px;height:18px;fill:currentColor}
.btn::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);transform:skewX(-20deg);transition:left .6s ease}
.btn:hover{transform:translateY(-3px)}
.btn:hover::after{left:130%}
.btn-x{background:#0b0906;color:var(--cream);border:2px solid var(--gold);box-shadow:inset 0 0 0 1px rgba(0,0,0,.6)}
.btn-x:hover{box-shadow:0 0 0 1px var(--gold),0 0 26px rgba(245,197,66,.55)}
.btn-copy{background:var(--metal);background-size:180% 100%;color:#1a1105;border:2px solid #ffe9a3;box-shadow:0 8px 30px rgba(245,197,66,.35)}
.btn-copy:hover{box-shadow:0 0 0 2px #fff3c4,0 10px 40px rgba(245,197,66,.65)}
.btn-buy{background:linear-gradient(180deg,#ffb347,#e8891c 60%,#b9620c);color:#1a0d02;border:2px solid #ffc978}
.btn-buy:hover{box-shadow:0 0 0 2px #ffd9a0,0 10px 36px rgba(232,137,28,.6)}
.btn-sm{padding:11px 20px;font-size:15px}

/* ---------- lattice + diamonds ---------- */
.lattice{position:absolute;inset:-40px;z-index:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cpath d='M60 4 116 60 60 116 4 60Z' fill='none' stroke='%23f5c542' stroke-opacity='.07' stroke-width='1.5'/%3E%3Cpath d='M60 40 80 60 60 80 40 60Z' fill='%23f5c542' fill-opacity='.035'/%3E%3C/svg%3E");
  transition:transform .3s ease-out}
.lattice.soft{opacity:.7}
.dia{position:absolute;display:block;border:2px solid rgba(245,197,66,.16);background:linear-gradient(135deg,rgba(140,106,30,.22),rgba(40,28,8,.05));transform:rotate(45deg);animation:spin 40s linear infinite}
.dia::after{content:"";position:absolute;inset:22%;border:2px solid rgba(245,197,66,.14);background:rgba(140,106,30,.12)}
.d1{width:360px;height:360px;left:4%;top:16%;animation-duration:70s}
.d2{width:150px;height:150px;left:40%;top:6%;animation-duration:38s;animation-direction:reverse}
.d3{width:90px;height:90px;left:30%;bottom:12%;animation-duration:26s}
.d4{width:220px;height:220px;right:4%;bottom:8%;animation-duration:55s;animation-direction:reverse}
.d5{width:60px;height:60px;right:34%;top:12%;animation-duration:20s}
@keyframes spin{to{transform:rotate(405deg)}}

/* ---------- hero ---------- */
.hero{position:relative;height:100vh;min-height:760px;overflow:hidden;
  background:radial-gradient(60% 70% at 72% 40%,rgba(232,137,28,.28),transparent 70%),radial-gradient(40% 50% at 20% 70%,rgba(245,197,66,.08),transparent 70%),var(--black)}
.hero-plate{position:absolute;inset:0;z-index:1;transition:transform .35s ease-out}
.hero-plate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center}
.plate-sweep{position:absolute;inset:0;pointer-events:none;mix-blend-mode:overlay;
  background:linear-gradient(105deg,transparent 40%,rgba(255,240,190,.75) 48%,rgba(255,255,255,.9) 50%,rgba(255,240,190,.75) 52%,transparent 60%);background-size:250% 100%;background-repeat:no-repeat;animation:platesweep 7s ease-in-out 1.2s infinite;opacity:0}
@keyframes platesweep{0%{background-position:150% 0;opacity:1}40%{background-position:-50% 0;opacity:1}41%,100%{opacity:0;background-position:-50% 0}}
.glint{position:absolute;width:46px;height:46px;pointer-events:none;
  background:radial-gradient(circle,#fff 0 6%,rgba(255,240,180,.8) 12%,transparent 40%),linear-gradient(0deg,transparent 47%,#fff 50%,transparent 53%),linear-gradient(90deg,transparent 47%,#fff 50%,transparent 53%);
  transform:translate(-50%,-50%) scale(0);animation:glint 4.6s ease-in-out infinite;mix-blend-mode:screen}
.hero-plate .g1{left:80.5%;top:14%}
.hero-plate .g2{left:70%;top:26%}
@keyframes glint{0%,70%,100%{transform:translate(-50%,-50%) scale(0) rotate(0)}80%{transform:translate(-50%,-50%) scale(1.2) rotate(45deg)}90%{transform:translate(-50%,-50%) scale(.3) rotate(90deg)}}
.hero-scrim{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(7,6,5,.92) 0%,rgba(7,6,5,.7) 30%,rgba(7,6,5,0) 52%),linear-gradient(0deg,var(--black) 0%,transparent 16%)}
.hero-copy{position:relative;z-index:5;height:100%;display:flex;flex-direction:column;justify-content:center;padding:70px 0 40px 6vw;max-width:720px}
.hero-title{font-family:var(--display);font-weight:400;font-size:clamp(64px,10.4vh,110px);line-height:.93;letter-spacing:.01em;color:var(--cream);text-shadow:0 4px 30px rgba(0,0,0,.6)}
.hero-title .ln{display:block;opacity:0;transform:translateY(40px);filter:blur(8px);animation:lineIn .9s cubic-bezier(.2,.8,.2,1) forwards}
.hero-title .ln:nth-child(1){animation-delay:.25s}
.hero-title .ln:nth-child(2){animation-delay:.55s}
.hero-title .ln:nth-child(3){animation-delay:.85s}
@keyframes lineIn{60%{text-shadow:0 0 40px rgba(245,197,66,.8)}to{opacity:1;transform:none;filter:none;text-shadow:0 4px 30px rgba(0,0,0,.6)}}
.hero-title i.g{font-style:normal;background-image:var(--metal);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 14px rgba(245,197,66,.45))}
.acro{display:flex;align-items:center;gap:14px;margin-top:22px;font-family:var(--display);font-size:30px;letter-spacing:.2em;color:var(--muted);opacity:0;animation:fadeUp .8s 1.2s forwards}
.acro b{font-weight:400;color:var(--gold)}
.ticker{font-family:var(--display);font-size:46px;letter-spacing:.05em;margin-left:22px;padding-left:24px;border-left:2px solid var(--line);line-height:1}
.tagline{font-family:var(--display);font-size:34px;letter-spacing:.03em;margin-top:18px;color:var(--cream);opacity:0;animation:fadeUp .8s 1.4s forwards}
.support{max-width:540px;color:var(--muted);margin-top:8px;opacity:0;animation:fadeUp .8s 1.55s forwards}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

.ca-frame{position:relative;margin-top:22px;padding:14px 20px 14px;max-width:600px;background:linear-gradient(180deg,rgba(22,18,11,.92),rgba(7,6,5,.92));border:1px solid var(--gold);border-radius:8px;box-shadow:inset 0 0 0 4px rgba(7,6,5,.9),inset 0 0 0 5px rgba(245,197,66,.3),0 10px 40px rgba(0,0,0,.5)}
.hero .ca-frame,.hero .actions{opacity:0;animation:fadeUp .8s 1.7s forwards}
.ca-label{display:block;font-weight:800;font-size:11px;letter-spacing:.24em;color:var(--gold);margin-bottom:4px}
.ca{display:block;font-family:var(--mono);font-weight:700;font-size:17px;color:var(--cream);word-break:break-all;letter-spacing:.02em}
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:18px}

.scroll-cue{position:absolute;z-index:6;left:50%;bottom:26px;transform:translateX(-50%);font-family:var(--display);letter-spacing:.32em;font-size:15px;color:var(--gold);display:flex;flex-direction:column;align-items:center;gap:6px;opacity:.9}
.scroll-cue span{font-size:22px;animation:bob 1.8s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(8px)}}

/* ---------- transitions ---------- */
.trail{position:relative;height:150px;display:flex;justify-content:center}
.trail::before{content:"";width:2px;height:100%;background:linear-gradient(180deg,transparent,var(--gold),transparent);opacity:.55}
.trail span{position:absolute;top:0;left:50%;width:10px;height:10px;margin-left:-5px;background:var(--gold);transform:rotate(45deg);box-shadow:0 0 20px var(--gold);animation:trail 2.6s ease-in-out infinite}
@keyframes trail{0%{top:0;opacity:0}20%{opacity:1}100%{top:140px;opacity:0}}
.speed{position:relative;height:120px;overflow:hidden;
  background:repeating-linear-gradient(180deg,transparent 0 7px,rgba(245,197,66,.0) 7px 9px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent)}
.speed::before,.speed::after{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(180deg,transparent 0 9px,rgba(245,197,66,.5) 9px 10px,transparent 10px 23px,rgba(255,240,200,.35) 23px 24px,transparent 24px 37px);
  -webkit-mask-image:repeating-linear-gradient(90deg,#000 0 160px,transparent 160px 300px,#000 300px 380px,transparent 380px 520px);
  animation:speed .7s linear infinite}
.speed::after{animation-duration:1.1s;opacity:.6;transform:translateY(5px)}
@keyframes speed{from{-webkit-mask-position:0 0}to{-webkit-mask-position:-520px 0}}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}
.zoom{transform:scale(var(--z,1.12));transform-origin:var(--fo,50% 50%);will-change:transform}
img.fb{object-position:var(--fp,50% 50%);scale:var(--fz,1)}

/* ---------- guardian ---------- */
.guardian{position:relative;padding:60px 0 120px;overflow:hidden}
.guardian .sec-head{text-align:center}
.guardian .lede{margin:22px auto 0}
.g-stage{position:relative;width:1240px;height:760px;margin:40px auto 0}
.g-glow{position:absolute;left:50%;top:50%;width:900px;height:900px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(245,197,66,.4),rgba(232,137,28,.18) 40%,transparent 68%);animation:pulse 5s ease-in-out infinite}
@keyframes pulse{50%{transform:translate(-50%,-50%) scale(1.07);opacity:.8}}
.floaters i{position:absolute;width:26px;height:26px;border:2px solid rgba(245,197,66,.5);transform:rotate(45deg);animation:float 9s ease-in-out infinite}
.floaters i:nth-child(1){left:8%;top:10%}.floaters i:nth-child(2){left:86%;top:14%;width:40px;height:40px;animation-delay:-2s}
.floaters i:nth-child(3){left:14%;top:84%;animation-delay:-4s}.floaters i:nth-child(4){left:90%;top:80%;width:18px;height:18px;animation-delay:-6s}
.floaters i:nth-child(5){left:30%;top:4%;width:14px;height:14px;background:rgba(245,197,66,.4)}.floaters i:nth-child(6){left:70%;top:94%;width:16px;height:16px;background:rgba(245,197,66,.4);animation-delay:-3s}
@keyframes float{50%{translate:0 -24px;rotate:30deg}}
.g-fig{position:absolute;left:50%;top:0;width:560px;height:750px;margin-left:-280px;display:flex;align-items:flex-end;justify-content:center}
.g-fig img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 20px 60px rgba(0,0,0,.6))}
/* logo fallback: gold-rimmed medallion */
.co{position:absolute;width:300px;z-index:3}
.co b{display:block;font-family:var(--display);font-weight:400;font-size:30px;letter-spacing:.06em;color:var(--gold)}
.co span{color:var(--cream);font-size:17px}
.co-line{position:absolute;top:22px;height:2px;width:150px;background:linear-gradient(90deg,var(--gold),rgba(245,197,66,.2));transform:scaleX(0);transition:transform 1s .4s cubic-bezier(.2,.8,.2,1)}
.co-line::after{content:"";position:absolute;top:-4px;width:10px;height:10px;background:var(--gold);transform:rotate(45deg);box-shadow:0 0 12px var(--gold)}
.co-l{text-align:right;transform:translateX(-60px)}
.co-l .co-line{left:calc(100% + 18px);transform-origin:left}
.co-l .co-line::after{right:-4px}
.co-r{transform:translateX(60px)}
.co-r .co-line{right:calc(100% + 18px);transform-origin:right;background:linear-gradient(270deg,var(--gold),rgba(245,197,66,.2))}
.co-r .co-line::after{left:-4px}
.co.in{transform:none}
.co.in .co-line{transform:scaleX(1)}
.co-1{left:0;top:130px}
.co-2{left:0;top:480px}
.co-3{right:0;top:190px}
.co-4{right:0;top:540px}

/* ---------- meaning ---------- */
.meaning{position:relative;padding:40px 0 60px}
.meaning-intro{text-align:center;padding:40px 0 20px}
.meaning-intro .big{font-size:180px;line-height:1}
.lp{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4vw;min-height:100vh;padding:5vh 7vw}
.lp-rev .lp-text{order:2}
.lp-text{position:relative}
.lp-letter{display:block;font-family:var(--display);font-size:min(52vh,460px);line-height:.82;filter:drop-shadow(0 0 40px rgba(245,197,66,.25))}
.lp-text h3{font-family:var(--display);font-weight:400;font-size:84px;letter-spacing:.06em;line-height:1;margin-top:10px}
.lp-text p{font-size:26px;color:var(--muted);margin-top:12px}
.lp-art{position:relative;height:84vh;max-height:860px;aspect-ratio:4/5;justify-self:center;overflow:hidden;border-radius:6px;border:1px solid var(--line);box-shadow:0 0 0 8px rgba(7,6,5,1),0 0 0 9px rgba(245,197,66,.25),0 40px 100px rgba(0,0,0,.7)}
.lp-art img{width:100%;height:100%;object-fit:cover}
.spot{position:absolute;inset:0;background:radial-gradient(45% 40% at 50% 30%,rgba(255,230,160,.18),transparent 70%),linear-gradient(0deg,rgba(7,6,5,.5),transparent 30%);pointer-events:none}
.streak{position:absolute;left:-50%;top:0;width:200%;height:6px;background:linear-gradient(90deg,transparent,#fff3c4 45%,#fff 50%,#fff3c4 55%,transparent);box-shadow:0 0 30px 8px rgba(245,197,66,.6);transform:rotate(-28deg) translateY(-200px);animation:streak 4.5s ease-in-out infinite;mix-blend-mode:screen}
@keyframes streak{0%{transform:rotate(-28deg) translate(-40%,900px);opacity:0}15%{opacity:1}55%{transform:rotate(-28deg) translate(30%,-200px);opacity:0}100%{opacity:0}}
.assemble{position:relative;display:flex;justify-content:center;gap:4vw;padding:14vh 0 10vh;overflow:hidden}
.assemble span{font-family:var(--display);font-size:min(34vh,300px);line-height:1;opacity:0;transform:translate(var(--x),var(--y)) scale(.6);transition:transform 1.1s cubic-bezier(.2,.9,.25,1.05),opacity .8s;filter:drop-shadow(0 0 30px rgba(245,197,66,.35))}
.assemble span:nth-child(2){transition-delay:.12s}.assemble span:nth-child(3){transition-delay:.24s}.assemble span:nth-child(4){transition-delay:.36s}
.assemble.in span{opacity:1;transform:none}
.assemble::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 40%,rgba(255,246,210,.75) 50%,transparent 60%);background-size:300% 100%;background-position:150% 0;opacity:0;mix-blend-mode:screen}
.assemble.in::after{animation:flash 1.4s 1.3s ease-out forwards}
@keyframes flash{0%{opacity:1;background-position:150% 0}100%{opacity:0;background-position:-50% 0}}

/* ---------- shield ---------- */
.shield-sec{position:relative;min-height:120vh;padding:110px 0 80px;overflow:hidden;background:radial-gradient(50% 50% at 50% 58%,rgba(245,197,66,.16),transparent 70%)}
.shield-bg{position:absolute;inset:0;z-index:0}
.shield-bg img{width:100%;height:100%;object-fit:cover;opacity:.55}
.shield-bg::after{content:"";position:absolute;inset:0;background:radial-gradient(40% 46% at 50% 60%,transparent,rgba(7,6,5,.85) 90%),linear-gradient(180deg,var(--black),transparent 20%,transparent 80%,var(--black))}
.shield-sec .sec-head{text-align:center}
.shield-sec .lede{margin:18px auto 0;text-align:center}
.shield-stage{position:relative;z-index:3;width:1100px;height:660px;margin:30px auto 0;perspective:1400px}
.beam{position:absolute;left:50%;top:-20%;width:280px;height:140%;margin-left:-140px;background:linear-gradient(90deg,transparent,rgba(255,236,170,.22),transparent);transform:rotate(20deg);filter:blur(6px);animation:beam 6s ease-in-out infinite}
@keyframes beam{0%,100%{transform:rotate(26deg) translateX(-260px);opacity:.3}50%{transform:rotate(14deg) translateX(260px);opacity:1}}
.shield-wrap{position:absolute;left:50%;top:10px;width:520px;height:600px;margin-left:-260px;transform-style:preserve-3d;transform:rotateY(var(--ry,70deg)) scale(var(--ss,.75));filter:drop-shadow(0 30px 70px rgba(245,197,66,.35)) drop-shadow(0 20px 40px rgba(0,0,0,.7))}
.shield-wrap img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.png-beam{position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.8) 50%,transparent 60%);background-size:300% 100%;animation:platesweep 4.2s ease-in-out infinite;-webkit-mask:url(assets/shield.png) center/contain no-repeat;mask:url(assets/shield.png) center/contain no-repeat;mix-blend-mode:screen}
.shield-wrap .s1{left:12%;top:12%}
.shield-wrap .s2{left:84%;top:16%;animation-delay:2.1s}
.ticks i{position:absolute;left:var(--l);top:var(--t);width:44px;height:44px;opacity:0;transform:scale(0)}
.ticks i::before{content:"";position:absolute;left:10px;top:4px;width:16px;height:28px;border:solid var(--gold);border-width:0 6px 6px 0;transform:rotate(45deg);filter:drop-shadow(0 0 8px rgba(245,197,66,.7))}
.shield-stage.in .ticks i{animation:tick 3.6s var(--d) ease-in-out infinite}
@keyframes tick{0%{opacity:0;transform:scale(0) rotate(-20deg)}15%,60%{opacity:1;transform:scale(1) rotate(0)}80%,100%{opacity:0;transform:scale(.6) translateY(-20px)}}
.chip{position:absolute;z-index:4;padding:12px 20px;border:1px solid var(--gold);border-radius:999px;background:rgba(7,6,5,.82);font-family:var(--display);font-size:20px;letter-spacing:.1em;color:var(--cream);box-shadow:0 0 24px rgba(245,197,66,.2)}
.chip em{font-style:normal;color:var(--gold)}
.c1{left:0;top:110px}
.c2{right:0;top:290px}
.c3{left:40px;top:480px}

/* ---------- universe ---------- */
.universe{position:relative;padding-top:80px}
.universe .sec-head{padding-bottom:60px}
.scene{position:relative;height:100vh;min-height:720px;overflow:hidden;margin:0}
.scene + .scene{border-top:1px solid rgba(245,197,66,.18)}
.scene img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scene::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(20deg,rgba(7,6,5,.9) 0%,rgba(7,6,5,.45) 30%,transparent 55%),linear-gradient(0deg,rgba(7,6,5,.5),transparent 25%)}
/* scene-3 / scene-5: art is bright all the way to the left edge behind the caption */
.scene--bright::after{background:linear-gradient(20deg,rgba(7,6,5,.95) 0%,rgba(7,6,5,.82) 26%,rgba(7,6,5,.3) 48%,transparent 62%),linear-gradient(0deg,rgba(7,6,5,.75),transparent 34%)}
.scene figcaption{position:absolute;z-index:3;left:6vw;bottom:9vh;max-width:760px}
.scene .no{display:block;font-family:var(--mono);font-weight:700;font-size:15px;letter-spacing:.3em;color:var(--gold)}
.scene .ttl{display:block;font-family:var(--display);font-size:26px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.scene q{display:block;font-family:var(--display);font-size:clamp(54px,5.6vw,92px);line-height:1;margin-top:10px;color:var(--cream);text-shadow:0 6px 30px rgba(0,0,0,.7);quotes:"“" "”"}
.scene q::before,.scene q::after{color:var(--gold)}
.scene-speed{position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:screen;opacity:.5;
  background:repeating-conic-gradient(from 0deg at 70% 45%,rgba(255,236,170,.0) 0deg 4deg,rgba(255,236,170,.22) 4deg 4.6deg,rgba(255,236,170,0) 4.6deg 9deg);
  -webkit-mask-image:radial-gradient(circle at 70% 45%,transparent 18%,#000 60%);animation:spd 1.2s steps(3) infinite}
@keyframes spd{50%{opacity:.25}}
.snow{position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:radial-gradient(2px 2px at 20px 30px,#ffe9a3,transparent),radial-gradient(1.5px 1.5px at 90px 120px,#fff3c4,transparent),radial-gradient(2.5px 2.5px at 160px 60px,#f5c542,transparent),radial-gradient(1.5px 1.5px at 230px 170px,#ffe9a3,transparent),radial-gradient(2px 2px at 300px 90px,#fff,transparent);
  background-size:320px 220px;animation:snow 9s linear infinite;opacity:.8}
@keyframes snow{to{background-position:60px 660px}}

/* ---------- rules ---------- */
.rules{position:relative;display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);gap:6vw;align-items:center;padding:140px 7vw;overflow:hidden}
.portrait{position:relative;z-index:2;aspect-ratio:4/5;max-height:86vh;overflow:hidden;border-radius:6px;border:1px solid var(--gold);box-shadow:0 0 0 10px var(--black),0 0 0 11px rgba(245,197,66,.3),0 0 90px rgba(245,197,66,.25)}
.portrait img{width:100%;height:100%;object-fit:cover}
.rules-list{position:relative;z-index:2}
.rules-list .big{margin-bottom:30px}
.rule{position:relative;padding:22px 0 26px}
.rule h3{font-family:var(--display);font-weight:400;font-size:46px;letter-spacing:.05em;line-height:1}
.rule p{color:var(--muted);font-size:20px;margin-top:6px}
.uline{position:absolute;left:0;bottom:0;width:100%;height:2px;background:linear-gradient(90deg,var(--gold),#fff3c4 30%,var(--gold-deep) 70%,transparent);transform:scaleX(0);transform-origin:left;transition:transform 1.3s .3s cubic-bezier(.6,.05,.2,1)}
.rule.in .uline{transform:scaleX(1)}

/* ---------- finale ---------- */
.finale{position:relative;height:100vh;min-height:780px;overflow:hidden;display:flex;align-items:center}
.finale-bg{position:absolute;inset:0}
.finale-bg img{width:100%;height:100%;object-fit:cover}
.finale-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(7,6,5,.95) 0%,rgba(7,6,5,.78) 34%,rgba(7,6,5,.05) 62%),linear-gradient(180deg,var(--black),transparent 18%,transparent 82%,var(--black))}
.finale .snow{z-index:2}
.finale-copy{position:relative;z-index:3;padding-left:7vw;max-width:780px}
.finale-title{font-family:var(--display);font-weight:400;font-size:clamp(70px,11vh,118px);line-height:.95}
.finale-title .ln{display:block}
.big-ticker{display:inline-block;font-size:64px;margin:18px 0 0;padding:0;border:0}
.finale .tagline{opacity:1;animation:none;margin-top:6px}

/* ---------- footer ---------- */
.foot{text-align:center;padding:70px 20px 80px;border-top:1px solid rgba(245,197,66,.2);background:linear-gradient(180deg,var(--black),#0e0b06)}
.foot-shield{width:44px;height:50px;margin:0 auto 14px;filter:drop-shadow(0 0 16px rgba(245,197,66,.5))}
.foot-line{font-family:var(--display);font-size:26px;letter-spacing:.06em}
.foot-note{max-width:640px;margin:14px auto 0;font-size:13px;color:#8d826b}
.visits{display:inline-flex;align-items:center;gap:10px;margin-top:18px;padding:9px 20px;border:1px solid var(--line);border-radius:999px;background:rgba(22,18,11,.7);font-family:var(--display);font-size:16px;letter-spacing:.16em;color:var(--muted)}
.visits b{font-weight:400;color:var(--gold)}
.visits .dot{width:9px;height:9px;background:var(--gold);transform:rotate(45deg);box-shadow:0 0 10px var(--gold);animation:vdot 2.4s ease-in-out infinite}
@keyframes vdot{50%{opacity:.35;box-shadow:0 0 2px var(--gold)}}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:36px;z-index:60;display:flex;align-items:center;gap:12px;padding:14px 24px;border:1px solid var(--gold);border-radius:999px;background:rgba(10,8,5,.95);box-shadow:0 0 40px rgba(245,197,66,.45);font-family:var(--display);font-size:20px;letter-spacing:.1em;color:var(--gold);transform:translate(-50%,30px);opacity:0;visibility:hidden;transition:.35s}
.toast svg{width:24px;height:28px}
.toast.show{transform:translate(-50%,0);opacity:1;visibility:visible}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv,.hero-title .ln,.acro,.tagline,.support,.hero .ca-frame,.hero .actions,.assemble span{opacity:1!important;transform:none!important;filter:none!important}
  .zoom{transform:none}
  #sparks{display:none}
}
