/* ===================== GRAND LUXE — hitam & emas champagne ===================== */
:root{
  --bg:#0c0907;--fg:#eee4cf;--accent:#d9b865;--gold-hi:#f6e6b0;--gold-lo:#9c7430;--on-accent:#1a1206;
  --card:rgba(217,184,101,.05);
  --head:'Cinzel',Georgia,serif;--serif:'Cormorant Garamond',Georgia,serif;--script:'Pinyon Script','Great Vibes',cursive;
  --bg-ov:rgba(8,6,4,.86);
  --cover-bg:linear-gradient(180deg,rgba(8,5,3,.62) 0,rgba(8,5,3,.06) 26%,rgba(8,5,3,.34) 48%,rgba(8,5,3,.9) 78%,#080503 100%);
  --fxmove:lxDust;--pva:lxArch;--pvd:1.8s;--pve:cubic-bezier(.65,0,.25,1);--cva:lxCard;--cvd:1.3s;--cve:cubic-bezier(.2,.8,.2,1);
  --gold-grad:linear-gradient(100deg,#a97c33 8%,#f8e9b8 36%,#c99a45 58%,#f4de9f 84%);
}
body{font:400 1.14rem/1.75 var(--serif);color:var(--fg);background:var(--bg)}
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cpath d='M32 2L62 32L32 62L2 32Z' fill='none' stroke='%23d9b865' stroke-opacity='.075'/%3E%3Cpath d='M32 14L50 32L32 50L14 32Z' fill='none' stroke='%23d9b865' stroke-opacity='.05'/%3E%3Ccircle cx='32' cy='32' r='1.2' fill='%23d9b865' fill-opacity='.12'/%3E%3C/svg%3E") center/64px 64px,radial-gradient(ellipse at 50% -8%,rgba(160,115,40,.26),transparent 58%),radial-gradient(ellipse at 50% 120%,rgba(120,70,20,.2),transparent 60%)}
h1,h2,h3{font-weight:500}

/* ---------- COVER ---------- */
.cover,.cover.clear{background:none;flex-direction:column;align-items:center;justify-content:flex-start;padding:0;overflow-x:hidden;overflow-y:auto;
  transition:transform 1.7s cubic-bezier(.7,0,.2,1),opacity 1.4s ease .2s,filter 1.5s ease,visibility 0s 1.7s}
.cover::before{content:"";position:fixed;inset:0;z-index:-1;background:var(--cover-img,none) center 22%/cover no-repeat;animation:lxKen 28s ease-in-out infinite alternate}
.cover::after{content:"";position:fixed;inset:0;z-index:-1;background:var(--cover-bg)}
body.opened .cover{transform:scale(1.14);opacity:0;filter:blur(7px);visibility:hidden}
.cover .inner{width:100%;max-width:560px;margin:auto auto 0;padding:170px 28px max(46px,env(safe-area-inset-bottom));position:relative;z-index:2;transition:transform 1.1s ease,opacity .9s ease}
body.opened .cover .inner{transform:translateY(-36px);opacity:0}
.cover .inner>*{animation:none;opacity:0}
.cover .inner>.kicker{animation:lxFadeUp 1.4s .5s cubic-bezier(.2,.8,.2,1) both}
.cover .inner>h1{animation:lxName 2.2s .85s cubic-bezier(.2,.8,.2,1) both}
.cover .inner>p:not(.kicker):not(.to){animation:lxFadeUp 1.4s 1.5s cubic-bezier(.2,.8,.2,1) both}
.cover .inner>.to{animation:lxFadeUp 1.4s 1.85s cubic-bezier(.2,.8,.2,1) both}
.cover #openBtn{animation:lxFadeUp 1.3s 2.3s cubic-bezier(.2,.8,.2,1) both,lxPulse 2.8s 3.8s ease-in-out infinite}

.cover .kicker{display:flex;align-items:center;justify-content:center;gap:14px;font:500 .68rem var(--head);letter-spacing:.38em;text-transform:uppercase;color:var(--accent)}
.cover .kicker::before,.cover .kicker::after{content:"";width:34px;height:1px;background:linear-gradient(90deg,transparent,var(--accent))}
.cover .kicker::after{transform:scaleX(-1)}
.cover h1{font:400 clamp(3.7rem,19vw,6.2rem)/.98 var(--script);margin:.12em 0 .06em;color:#f8ecd2;text-shadow:0 6px 36px #000,0 0 40px rgba(217,184,101,.25);letter-spacing:0;overflow-wrap:normal}
.cover h1 .amp{display:block;font-size:.5em;line-height:1.1;margin:.04em 0;color:var(--accent);animation:lxPop 1.6s 1.6s cubic-bezier(.2,.8,.2,1) both}
.cover .inner>p:not(.kicker):not(.to){display:flex;align-items:center;justify-content:center;gap:0;font:500 .8rem/1.6 var(--head);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-hi);margin-top:8px;padding-left:.2em}
.cover .to{position:relative;margin:30px auto 24px;padding-top:26px;max-width:340px;font:500 .8rem var(--head);letter-spacing:.3em;text-transform:uppercase;color:#d8ccb2;line-height:1.7}
.cover .to::before{content:"";position:absolute;top:0;left:50%;width:7px;height:7px;margin-left:-3.5px;border:1px solid var(--accent);transform:rotate(45deg)}
.cover .to::after{content:"";position:absolute;top:3px;left:50%;width:170px;height:1px;margin-left:-85px;background:linear-gradient(90deg,transparent,rgba(217,184,101,.6) 30%,transparent 38%,transparent 62%,rgba(217,184,101,.6) 70%,transparent);}
.cover .to b{display:block;margin-top:8px;font:600 1.6rem/1.25 var(--serif);letter-spacing:.04em;text-transform:none;color:var(--gold-hi);overflow-wrap:anywhere}

/* bingkai ganda + sudut ornamen */
.lx-frame{position:fixed;inset:14px;z-index:1;pointer-events:none;border:1px solid rgba(217,184,101,.55);animation:lxFrame 2.4s .2s cubic-bezier(.2,.8,.2,1) both}
.lx-frame::before{content:"";position:absolute;inset:7px;border:1px solid rgba(217,184,101,.22)}
.lx-frame .c{position:absolute;width:54px;height:54px;color:var(--accent);animation:lxFade 2s 1s both}
.lx-frame .c svg{display:block;width:100%;height:100%}
.lx-frame .tl{top:-1px;left:-1px}.lx-frame .tr{top:-1px;right:-1px;transform:scaleX(-1)}.lx-frame .bl{bottom:-1px;left:-1px;transform:scaleY(-1)}.lx-frame .br{bottom:-1px;right:-1px;transform:scale(-1,-1)}
/* monogram */
.lx-mono{position:absolute;top:max(54px,calc(env(safe-area-inset-top) + 40px));left:50%;width:92px;height:92px;margin-left:-46px;z-index:2;color:var(--accent);display:grid;place-items:center;animation:lxPop 1.8s .4s cubic-bezier(.2,.8,.2,1) both}
.lx-mono svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.lx-mono .r1{transform-origin:50% 50%;animation:lxSpin 40s linear infinite}
.lx-mono span{display:flex;align-items:baseline;gap:3px;font:500 1.25rem var(--head);color:var(--gold-hi);letter-spacing:.04em}
.lx-mono i{font:400 1.3rem var(--script);color:var(--accent)}

/* tombol emas berkilau */
.btn{position:relative;overflow:hidden;min-height:50px;padding:13px 28px;border:1px solid var(--gold-hi);border-radius:2px;background:var(--gold-grad);background-size:200% 100%;color:var(--on-accent);font:600 .72rem var(--head);letter-spacing:.22em;text-transform:uppercase;box-shadow:0 8px 30px rgba(0,0,0,.5),0 0 24px rgba(217,184,101,.22);transition:transform .35s,box-shadow .35s,background-position .8s}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 32%,rgba(255,255,255,.6) 50%,transparent 68%);transform:translateX(-130%);animation:lxSweep 4.2s 2s ease-in-out infinite;pointer-events:none}
@media (hover:hover){.btn:hover{transform:translateY(-2px);background-position:100% 0;box-shadow:0 12px 36px rgba(0,0,0,.6),0 0 34px rgba(217,184,101,.4)}}
.btn.alt{background:transparent;color:var(--accent);border:1px solid var(--accent);box-shadow:none}
.btn.sm{min-height:42px;padding:9px 22px;font-size:.66rem}

/* ---------- HERO setelah dibuka ---------- */
.lx-hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 20px 96px;overflow:hidden}
.lx-stage{position:relative;width:min(66vw,280px);margin:14px auto 58px}
.lx-orbit{position:absolute;left:50%;top:50%;width:140%;height:auto;aspect-ratio:400/520;transform:translate(-50%,-50%);color:var(--accent);overflow:visible;pointer-events:none;animation:lxFade 2.4s 1.8s both}
.lx-orbit .o1{transform-origin:200px 260px;animation:lxSpin 90s linear infinite}
.lx-arch{position:relative;margin:0;aspect-ratio:3/4.3;padding:9px;border:1px solid var(--accent);border-radius:999px 999px 6px 6px;outline:1px solid rgba(217,184,101,.38);outline-offset:9px;box-shadow:0 36px 80px rgba(0,0,0,.8),0 0 70px rgba(217,184,101,.2)}
.lx-arch img{display:block;width:100%;height:100%;object-fit:cover;border-radius:999px 999px 3px 3px}
body.opened .lx-arch{animation:lxGate 2.4s .9s cubic-bezier(.65,0,.25,1) both}
body.opened .lx-arch img{animation:lxZoomOut 3.6s .9s cubic-bezier(.2,.8,.2,1) both}
.lx-k{font:500 .74rem var(--head);letter-spacing:.55em;text-transform:uppercase;color:var(--accent);padding-left:.55em}
.lx-nm{margin:10px 0 6px;padding:.08em .3em .16em;font:400 clamp(3.6rem,17vw,5.6rem)/1 var(--script);background:var(--gold-grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:lxShine 8s linear infinite;filter:drop-shadow(0 4px 22px rgba(0,0,0,.7))}
.lx-nm em{display:block;font-style:normal;font-size:.5em;line-height:1.1}
.lx-dt{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:12px;font:500 1rem var(--head);letter-spacing:.34em;color:var(--gold-hi)}
.lx-dt span{width:clamp(28px,12vw,60px);height:1px;background:linear-gradient(90deg,transparent,var(--accent))}.lx-dt span:last-child{transform:scaleX(-1)}
.lx-dt b{font-weight:500;padding-left:.34em}
.lx-scroll{position:absolute;left:50%;bottom:26px;width:1px;height:46px;margin-left:-.5px;background:linear-gradient(var(--accent),transparent)}
.lx-scroll i{position:absolute;left:-2px;top:0;width:5px;height:5px;border-radius:50%;background:var(--gold-hi);box-shadow:0 0 10px var(--accent);animation:lxScroll 2.4s ease-in-out infinite}
.lx-k,.lx-nm,.lx-dt,.lx-scroll{opacity:0}
body.opened .lx-k{animation:lxFadeUp 1.6s 1.9s cubic-bezier(.2,.8,.2,1) both}
body.opened .lx-nm{animation:lxFadeUp 1.8s 2.1s cubic-bezier(.2,.8,.2,1) forwards,lxShine 8s 2s linear infinite}
body.opened .lx-dt{animation:lxFadeUp 1.6s 2.4s cubic-bezier(.2,.8,.2,1) both}
body.opened .lx-scroll{animation:lxFade 1.6s 3.2s both}

/* ---------- SECTION ---------- */
.sec{position:relative;padding:58px 22px}
.sec::before{content:"";display:block;width:200px;height:16px;margin:0 auto 38px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='16' viewBox='0 0 200 16'%3E%3Cpath d='M0 8H84M116 8H200' stroke='%23d9b865' stroke-opacity='.6'/%3E%3Cpath d='M100 1.5L106.5 8L100 14.5L93.5 8Z' fill='none' stroke='%23d9b865'/%3E%3Ccircle cx='88' cy='8' r='1.6' fill='%23d9b865'/%3E%3Ccircle cx='112' cy='8' r='1.6' fill='%23d9b865'/%3E%3C/svg%3E") center/contain no-repeat}
.sec h2{font:500 .96rem/1.6 var(--head);letter-spacing:.34em;text-transform:uppercase;padding-left:.34em;margin-bottom:28px;background:var(--gold-grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:lxShine 9s linear infinite}
.sec h2::after{content:"";display:block;width:140px;height:1px;margin:20px auto 0;background:linear-gradient(90deg,transparent,var(--accent),transparent);transition:width 1.8s .35s cubic-bezier(.2,.8,.2,1)}
.js .sec.rv:not(.in) h2::after{width:0}
.js .rv{transform:translateY(42px);filter:blur(5px);transition:opacity 1.3s ease,transform 1.3s cubic-bezier(.2,.8,.2,1),filter 1.3s ease}
.js .rv.in{filter:none}
.intro{font-size:1.18rem;font-style:italic;color:#e3d8c0}
.dayline{font:500 .95rem var(--head);letter-spacing:.2em;color:var(--gold-hi)}
.sec p{color:#e7dcc4}

/* kartu: bingkai tipis + kurung sudut */
.card{position:relative;padding:38px 26px;background:linear-gradient(160deg,rgba(217,184,101,.1),rgba(217,184,101,.02) 70%);border:1px solid rgba(217,184,101,.55);border-radius:3px;box-shadow:0 24px 60px rgba(0,0,0,.55),inset 0 0 50px rgba(217,184,101,.04)}
.card::before{content:"";position:absolute;inset:6px;pointer-events:none;background:
 linear-gradient(var(--accent),var(--accent)) 0 0/18px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) 0 0/1px 18px no-repeat,
 linear-gradient(var(--accent),var(--accent)) 100% 0/18px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) 100% 0/1px 18px no-repeat,
 linear-gradient(var(--accent),var(--accent)) 0 100%/18px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) 0 100%/1px 18px no-repeat,
 linear-gradient(var(--accent),var(--accent)) 100% 100%/18px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) 100% 100%/1px 18px no-repeat}
.card h3{font:500 1.15rem var(--head);letter-spacing:.3em;text-transform:uppercase;padding-left:.3em;color:var(--accent);margin-bottom:12px}
.card p b{font-weight:600;color:var(--gold-hi)}
.card.quote{border:0;background:none;box-shadow:none;padding:6px 4px}
.card.quote::before{position:static;display:block;inset:auto;width:9px;height:9px;margin:0 auto 30px;background:none;content:"";border:1px solid var(--accent);transform:rotate(45deg);box-shadow:0 0 14px rgba(217,184,101,.6)}
.quote .q{font:italic 400 1.42rem/1.7 var(--serif);color:#f4ead3}
.quote .qref{margin-top:18px}.quote .qref b{font:500 .76rem var(--head);letter-spacing:.38em;text-transform:uppercase;color:var(--accent)}

/* tanggal besar */
.bigdate{gap:clamp(14px,6vw,34px)}
.bigdate span{font:500 clamp(3rem,15vw,5.2rem)/1 var(--serif);background:var(--gold-grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:lxShine 7s linear infinite}
.bigdate .m{font:500 clamp(1.1rem,5vw,1.6rem)/1 var(--head);border-color:var(--accent);letter-spacing:.3em;padding:6px clamp(12px,5vw,26px) 6px calc(clamp(12px,5vw,26px) + .3em)}
.dow{font:500 .8rem var(--head);letter-spacing:.5em;color:var(--accent);padding-left:.5em}

/* mempelai: foto lengkung berbingkai ganda */
.person+.person{margin-top:14px}
.pf{width:min(68vw,258px);aspect-ratio:3/4.2;margin:0 auto 40px;padding:9px;background:transparent;border:1px solid var(--accent);border-radius:999px 999px 5px 5px;outline:1px solid rgba(217,184,101,.3);outline-offset:9px;box-shadow:0 34px 70px rgba(0,0,0,.75),0 0 60px rgba(217,184,101,.14)}
.person .nm{font:600 clamp(1.45rem,6.4vw,1.85rem)/1.3 var(--serif);letter-spacing:.07em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:6px}
.person p{color:#d8ccb3;max-width:440px;margin-left:auto;margin-right:auto}
.amp.big{font:400 4.2rem/1 var(--script);color:var(--accent);margin:22px 0 18px;text-shadow:0 0 30px rgba(217,184,101,.4)}
.ig{margin-top:14px;padding:7px 20px;border:1px solid rgba(217,184,101,.5);border-radius:2px;font:500 .72rem var(--head);letter-spacing:.2em;text-transform:none;color:var(--accent);transition:background .3s,color .3s}
@media (hover:hover){.ig:hover{background:var(--accent);color:var(--on-accent)}}

/* hitung mundur: cincin emas */
.countdown{gap:clamp(8px,3vw,16px);margin-top:12px}
.countdown div{flex:1;max-width:80px;padding:0;aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle,rgba(217,184,101,.14),transparent 72%);border:1px solid var(--accent);box-shadow:0 0 0 4px rgba(217,184,101,.07),0 10px 30px rgba(0,0,0,.5)}
.countdown b{font:500 clamp(1.25rem,6vw,1.65rem)/1 var(--head);color:var(--gold-hi)}
.countdown span{margin-top:5px;font:500 .5rem var(--head);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);padding-left:.2em}

/* kisah cinta: lengkung / oval / daun bergantian */
.story{margin-bottom:56px}
.story img{width:min(78vw,320px);max-width:none;max-height:none;aspect-ratio:4/5;margin:0 auto 26px;padding:8px;background:transparent;border:1px solid var(--accent);box-shadow:0 30px 64px rgba(0,0,0,.7),0 0 50px rgba(217,184,101,.12);object-fit:cover}
.story:nth-of-type(3n+1) img{border-radius:999px 999px 6px 6px}
.story:nth-of-type(3n+2) img{border-radius:50%;aspect-ratio:1/1.2}
.story:nth-of-type(3n) img{border-radius:170px 6px 170px 6px}
.story h3{font:500 1.1rem var(--head);letter-spacing:.3em;text-transform:uppercase;padding-left:.3em;color:var(--accent);margin-bottom:12px}
.story p{color:#e0d5bc}

/* galeri: bentuk elegan bergantian */
.gal{grid-template-columns:repeat(2,1fr);gap:16px 14px;align-items:start;padding:4px 2px 54px}
.gal img,.gal img:first-child,.gal img:last-child:nth-child(even){grid-column:auto;grid-row:auto;height:auto;max-height:none;padding:4px;background:transparent;border:1px solid rgba(217,184,101,.7);box-shadow:0 18px 40px rgba(0,0,0,.6)}
.gal img:nth-child(4n+1){aspect-ratio:3/4.2;border-radius:999px 999px 4px 4px}
.gal img:nth-child(4n+2){aspect-ratio:1/1.1;border-radius:6px 100px 6px 100px;margin-top:38px}
.gal img:nth-child(4n+3){aspect-ratio:1/1.22;border-radius:50%}
.gal img:nth-child(4n){aspect-ratio:3/4.2;border-radius:4px 4px 999px 999px;margin-top:38px}
.js .gal img.gi.in,.js .gal img.gi:first-child.in{animation:lxGal 1.5s var(--d,0s) cubic-bezier(.2,.8,.2,1) backwards}

/* hadiah, form, ucapan */
.rek{font:500 1.5rem var(--head);letter-spacing:.1em;color:var(--gold-hi)}
.attn{background:rgba(217,184,101,.06);border:1px solid rgba(217,184,101,.25);border-radius:2px;font-style:italic;color:#d6cab0}
input,select,textarea{background:rgba(255,255,255,.05);color:var(--fg);border:1px solid rgba(217,184,101,.4);border-radius:2px;font-family:var(--serif);font-size:17px}
input::placeholder,textarea::placeholder{color:#a79d88}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold-hi);box-shadow:0 0 0 3px rgba(217,184,101,.18)}
select option{color:#222;background:#fff}
.wish{background:rgba(217,184,101,.05);border:1px solid rgba(217,184,101,.18);border-radius:2px}
.wish b{font:500 .82rem var(--head);letter-spacing:.14em;color:var(--accent)}
.wish small{color:#b8ad96}
.wcount{font:500 .72rem var(--head);letter-spacing:.3em;text-transform:uppercase;color:var(--accent)}
.closing{padding-bottom:50px}
.closing h2{font-size:1rem}
.closing .nm{padding:.05em .3em .12em;display:inline-block;font:400 clamp(3.4rem,15vw,4.6rem)/1.1 var(--script);background:var(--gold-grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:lxShine 8s linear infinite}
.closing .nm .amp{-webkit-text-fill-color:transparent}
footer{font:500 .68rem var(--head);letter-spacing:.34em;text-transform:uppercase;color:var(--accent);opacity:.85}
.credit{letter-spacing:.06em;text-transform:none;font:400 .8rem var(--serif);color:#b8ad96}
.musicbtn{background:var(--gold-grad);border:1px solid var(--gold-hi);box-shadow:0 8px 24px rgba(0,0,0,.6),0 0 20px rgba(217,184,101,.3)}
.toast{border:1px solid rgba(217,184,101,.4)}

/* ===================== ANIMASI ===================== */
@keyframes lxKen{from{transform:scale(1) translateY(0)}to{transform:scale(1.16) translateY(-2%)}}
@keyframes lxFade{from{opacity:0}to{opacity:1}}
@keyframes lxFadeUp{from{opacity:0;transform:translateY(26px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes lxName{0%{opacity:0;transform:translateY(34px) scale(1.07);filter:blur(14px)}60%{filter:blur(0)}100%{opacity:1;transform:none;filter:none}}
@keyframes lxPop{0%{opacity:0;transform:scale(.4) rotate(-14deg)}100%{opacity:1;transform:none}}
@keyframes lxFrame{from{opacity:0;clip-path:inset(50% 50% 50% 50%)}to{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes lxShine{from{background-position:0 0}to{background-position:-220% 0}}
@keyframes lxSweep{0%,55%{transform:translateX(-130%)}100%{transform:translateX(130%)}}
@keyframes lxSpin{to{transform:rotate(360deg)}}
@keyframes lxPulse{0%,100%{box-shadow:0 8px 30px rgba(0,0,0,.5),0 0 0 0 rgba(217,184,101,.38)}60%,100%{box-shadow:0 8px 30px rgba(0,0,0,.5),0 0 0 12px rgba(217,184,101,0)}}
@keyframes lxGate{0%{opacity:1;clip-path:inset(100% 0 0 0);filter:brightness(2.2)}100%{opacity:1;clip-path:inset(-160px -160px -160px -160px);filter:none}}
@keyframes lxZoomOut{from{transform:scale(1.4)}to{transform:scale(1)}}
@keyframes lxScroll{0%{transform:translateY(0);opacity:0}25%{opacity:1}100%{transform:translateY(42px);opacity:0}}
@keyframes lxArch{0%{opacity:1;clip-path:inset(100% 0 0 0);filter:brightness(2) drop-shadow(0 0 22px #d9b865)}70%{filter:brightness(1.25)}100%{opacity:1;clip-path:inset(-160px -160px -160px -160px);filter:none}}
@keyframes lxCard{0%{opacity:0;transform:translateY(34px) scale(.97);filter:blur(5px)}100%{opacity:1;transform:none;filter:none}}
@keyframes lxGal{0%{opacity:0;transform:translateY(40px) scale(.9);filter:blur(8px) brightness(1.8)}100%{opacity:1;transform:none;filter:none}}
@keyframes lxDust{0%{opacity:0;transform:translate(0,105vh) scale(.4)}12%{opacity:.9}50%{opacity:.5;transform:translate(24px,50vh) scale(1) rotate(90deg)}85%{opacity:.85}100%{opacity:0;transform:translate(-20px,-10vh) scale(.5) rotate(200deg)}}
.fx span{top:0;color:var(--gold-hi);text-shadow:0 0 10px var(--accent)}
.pvjs .pf.pv-in{animation:lxArch 1.8s var(--d,0s) cubic-bezier(.65,0,.25,1) backwards}
.pvjs .story img.pv-in{animation:lxArch 1.8s var(--d,0s) cubic-bezier(.65,0,.25,1) backwards}
@media (min-width:700px){
  .sec{max-width:680px}
  .lx-frame{inset:22px}
  .gal{gap:22px 18px}
}
@media (max-height:640px){.cover .inner{padding-top:150px}.lx-mono{transform:scale(.8);top:46px}}
@media (prefers-reduced-motion:reduce){
  .cover .inner>*,.lx-k,.lx-nm,.lx-dt,.lx-scroll{opacity:1!important;filter:none!important}
  body.opened .cover{transform:none;filter:none}
  .js .rv{filter:none}
}
