/* Visual layer: explicit stacking keeps the moving light above the page background. */
:root{--bg:#0b1425;--panel:#162238;--accent:#f0b992;--muted:#b0baca}
body{isolation:isolate;background:transparent;overflow-x:clip}
body>header,body>main,body>footer{position:relative;z-index:1}
.ambient{z-index:0;background:linear-gradient(145deg,#0b1425,#10213a 55%,#171c30);contain:strict}
.ambient:before{content:'';position:absolute;inset:0;background-image:radial-gradient(#f9d8b74a .7px,transparent .9px);background-size:67px 67px;opacity:.2;mask-image:linear-gradient(transparent,#000,transparent)}
.ambient:after{content:'';position:absolute;inset:-40%;background:conic-gradient(from 20deg at 54% 50%,transparent 0deg,#6985c62b 30deg,transparent 66deg,#c4936b22 170deg,transparent 215deg,#587ba42d 300deg,transparent 350deg);filter:blur(55px);animation:aurora-turn 55s linear infinite}
.ambient i{width:85vw;height:85vw;left:-35vw;top:-35vw;background:radial-gradient(ellipse,#658fce60,transparent 65%);filter:blur(15px);animation:light-drift 16s ease-in-out infinite alternate}
.ambient i+i{width:80vw;height:80vw;right:-32vw;bottom:-40vw;left:auto;top:auto;background:radial-gradient(ellipse,#d58e5860,transparent 62%);animation:light-drift 21s ease-in-out -11s infinite alternate-reverse}
.ambient .light-third{position:absolute;width:55vw;height:55vw;left:25%;top:15%;border-radius:50%;background:radial-gradient(ellipse,#8064a536,transparent 65%);animation:light-drift 19s ease-in-out -7s infinite alternate}
.pointer-light{position:absolute;inset:0;background:radial-gradient(420px circle at var(--pointer-x,70%) var(--pointer-y,25%),#ccad8520,transparent 75%);transition:opacity .4s}
@keyframes aurora-turn{to{transform:rotate(360deg)}}
@keyframes light-drift{0%{transform:translate(-3vw,-5vh) scale(.85)}100%{transform:translate(23vw,19vh) scale(1.25)}}
header{border-bottom:1px solid #ffffff13;height:94px}.brand-icon{background:linear-gradient(140deg,#ffe2be,#dc9872);box-shadow:0 0 35px #d59d7030;transform:rotate(-7deg)}
header .outline{border-color:#e5d5c02b;background:#ffffff04;backdrop-filter:blur(12px)}
main{max-width:1280px}.intro{position:relative;grid-template-columns:1.1fr 1fr;min-height:590px;gap:12px;padding:30px 0 35px}
.intro>div:first-child{z-index:2}.intro .eyebrow{display:flex;align-items:center;gap:12px;letter-spacing:2.4px;font-size:9px}.intro .eyebrow:before{content:'';display:block;height:1px;width:30px;background:var(--accent)}
h1{font-size:clamp(49px,5.4vw,76px);line-height:1.07;letter-spacing:-2.7px;margin-bottom:26px}h1 em{background:linear-gradient(100deg,#ffe1b9,#d7987c 40%,#f7dbbc 75%);background-clip:text;-webkit-background-clip:text;color:transparent}
.lead{font-size:15px;color:#b8c0cc}.primary{position:relative;overflow:hidden;background:linear-gradient(120deg,#f6ccaa,#e5a77f);box-shadow:0 6px 25px #040a1730,inset 0 1px #fff7;transition:transform .25s,box-shadow .25s}
.primary:after{content:'';position:absolute;inset:-100%;background:linear-gradient(105deg,transparent 43%,#fff5 50%,transparent 57%);transform:translateX(-55%);transition:transform .65s;pointer-events:none}.primary:hover:after{transform:translateX(55%)}
.art{height:480px;perspective:1100px;overflow:visible!important;transform-style:preserve-3d}
.art:before{inset:12%;border-radius:50%;background:radial-gradient(circle,#deaf7d36,transparent 68%);filter:blur(20px)}
.sculpture{position:absolute;inset:-5%;width:110%;height:110%;overflow:visible;animation:sculpture-float 11s ease-in-out infinite alternate;filter:drop-shadow(0 22px 30px #01071480)}
.sculpture .ribbon-back{opacity:.65}.sculpture .glint{stroke-dasharray:60 1100;animation:ribbon-glint 13s linear infinite}
@keyframes sculpture-float{from{transform:translateY(-9px) rotate(-5deg)}to{transform:translateY(12px) rotate(5deg)}}
@keyframes ribbon-glint{to{stroke-dashoffset:-1160}}
.orbit{border-color:#dbc29b32;width:470px;height:350px;transform:rotate(-28deg)}.orbit.two{border-style:dashed;border-color:#e6ba8e25;width:420px;height:430px;transform:rotate(22deg)}
.ticket{width:265px;min-height:320px;padding:35px 25px 23px;border-radius:130px 130px 15px 15px;background:linear-gradient(135deg,#fff0d6 5%,#e9b38f 52%,#c78969);border:1px solid #fff5;color:#263246;box-shadow:0 35px 65px #03091780,inset 0 2px 2px #ffffffe0,inset -10px -8px 30px #864b2b25;transform:rotate(-9deg);animation:invitation-float 8s ease-in-out infinite alternate;isolation:isolate;overflow:hidden;transition:filter .35s}
.ticket:after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(170px circle at var(--art-x,30%) var(--art-y,20%),#ffffff95,transparent 75%);mix-blend-mode:soft-light;pointer-events:none;z-index:1}
.ticket>span{font-size:8px;letter-spacing:3px;margin:25px 0 23px}.ticket>strong{font-size:60px;line-height:.99;letter-spacing:-3px;text-shadow:0 1px #ffe8d3}.ticket-foot{font-size:6px;letter-spacing:.7px;margin-top:28px}
@keyframes invitation-float{from{translate:0 -6px;rotate:-1deg}to{translate:0 8px;rotate:2deg}}
.date-stamp{right:10px;top:55px;width:97px;height:97px;background:linear-gradient(135deg,#e0def3,#9baed4);border:1px solid #fff7;box-shadow:0 15px 40px #0005,inset 0 1px #fff9;z-index:3;animation:invitation-float 10s ease-in-out -4s infinite alternate}
.spark{left:6%;top:55px;font-size:47px;color:#f5d4a1;text-shadow:0 0 30px #dfa56c60}.spark.s2{right:3%;bottom:58px;font-size:53px;color:#c2cdeb}
.floating-note{position:absolute;bottom:37px;left:0;z-index:4;display:flex;align-items:center;gap:13px;padding:16px 20px;border:1px solid #e6d9be36;background:linear-gradient(130deg,#243952cc,#182538dd);box-shadow:0 18px 36px #030a1c66;backdrop-filter:blur(18px);border-radius:13px;transform:rotate(-5deg);animation:invitation-float 9s ease-in-out -3s infinite alternate;color:#fbf0de}
.floating-note>span{font-size:25px;color:var(--accent)}.floating-note small{display:block;font-size:8px;letter-spacing:1.6px;color:#b4bfd1;margin-bottom:5px}.floating-note strong{font-family:'Playfair Display',Georgia;font-size:19px;font-weight:500}
.section-top{margin-top:15px;margin-bottom:27px}.section-top h2{font-size:36px}.filters{background:#0c172b66;border-color:#ffffff17;backdrop-filter:blur(15px)}.filters .active{background:#3e5269;box-shadow:inset 0 1px #ffffff12}
.cards{gap:26px}.card{position:relative;background:linear-gradient(145deg,#273b5266,#152439bb);backdrop-filter:blur(18px);border:1px solid #ffffff25;border-radius:19px;box-shadow:0 14px 35px #02091630;transition:transform .3s,border-color .3s,box-shadow .3s;transform-style:preserve-3d}
.card:after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(300px circle at var(--card-x,50%) var(--card-y,0%),#e6c59c24,transparent 70%);opacity:0;transition:opacity .3s}
.card-art{height:225px;background-color:#a27969}.card-art.peach{background:radial-gradient(ellipse at 25% 5%,#ffefd3,transparent 50%),conic-gradient(from 130deg at 70% 70%,#8e5148,#dda984,#f8ddad,#bc7967,#8e5148)}
.card-art.lilac{background:radial-gradient(ellipse at 25% 5%,#f3eaff,transparent 50%),conic-gradient(from 130deg at 70% 70%,#4b5183,#a4a6ce,#e2cee7,#6d76a7,#4b5183)}
.card-art.olive{background:radial-gradient(ellipse at 25% 5%,#ecf1cf,transparent 50%),conic-gradient(from 130deg at 70% 70%,#325854,#8aafa0,#d6dab5,#5f8d78,#325854)}
.card-art:before{border:1px solid #fff6;width:310px;height:310px;transform:translate(110px,65px);box-shadow:0 0 0 18px #fff1,0 0 0 40px #fff1,0 0 0 69px #fff1;opacity:.5}.card-art:after{border:1px solid #fff8;width:170px;height:170px;transform:translate(-110px,-75px);box-shadow:0 0 0 25px #fff1;opacity:.35}.big-art{font-size:83px;color:#243447;text-shadow:0 1px #ffffff60}.big-art small{font-size:12px;letter-spacing:5px;margin-top:-2px}.badge{top:17px;left:17px;background:#12203499;color:#fff2df;backdrop-filter:blur(8px);border:1px solid #ffebd133;font-size:8px;letter-spacing:1px;padding:7px 10px}.card-body{padding:24px}.card h3{font-size:25px;line-height:1.25}.card-bottom{border-color:#ffffff12}.arrow{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#ffffff08;font-size:19px;transition:background .3s,transform .3s}
.bottom-note{position:relative;border-color:#d7c29d29;background:linear-gradient(100deg,#c3936430,#263b551c 50%,#8494b514);backdrop-filter:blur(14px);padding:31px;border-radius:16px;margin-top:48px;overflow:hidden}.bottom-note:after{content:'✧';position:absolute;right:5%;font-size:120px;opacity:.055;transform:rotate(20deg)}.bottom-note>span{font-size:50px;text-shadow:0 0 30px #edb38d55}footer{align-items:center;gap:20px;flex-wrap:wrap}.motion-toggle{border:1px solid #ffffff25;border-radius:20px;padding:8px 13px;background:#ffffff06;color:var(--muted);font-size:10px;display:flex;align-items:center;gap:8px}.motion-toggle:before{content:'';width:5px;height:5px;background:#e5b081;border-radius:50%;box-shadow:0 0 8px #e5b081}.motion-toggle[aria-pressed=true]:before{background:#8792a1;box-shadow:none}
dialog{background:linear-gradient(140deg,#26354a,#142035 75%);border-color:#e9d4b736;box-shadow:0 40px 100px #0009}.tabs{scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.detail-hero{background:linear-gradient(130deg,#ffdfb5,#daa080)!important}.detail-hero.lilac{background:linear-gradient(130deg,#e2d7ee,#9ca8d0)!important}.detail-hero.olive{background:linear-gradient(130deg,#dce1b6,#90b4a0)!important}.post,.wish,.guest-row{background:#ffffff04;border-color:#ffffff14}.close{background:#10213722;color:#fff;border:1px solid #ffffff20;backdrop-filter:blur(10px)}
@media(hover:hover) and (pointer:fine){.card:hover{transform:perspective(950px) translateY(-8px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));border-color:#f6ca9990;box-shadow:0 25px 55px #03091470,0 0 28px #deb17a12}.card:hover:after{opacity:1}.card:hover .arrow{background:#e6b18322;transform:rotate(8deg)}.art:hover .ticket{filter:brightness(1.07);transform:rotate(-4deg) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));box-shadow:0 40px 75px #03091780,0 0 65px #e6b67b20,inset 0 2px 2px #fff}.primary:hover{transform:translateY(-3px);box-shadow:0 12px 30px #d69b6130}.outline:hover{background:#ffffff0b;box-shadow:0 0 18px #e8c7a210}}
@media(max-width:900px){.intro{grid-template-columns:1.15fr 1fr}.art{scale:.85;transform-origin:center right}.floating-note{left:-15px}.intro .eyebrow{letter-spacing:1.6px}}
@media(max-width:760px){header{height:auto;min-height:82px}main{padding:0 23px}.intro{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:45px 0 0;min-height:0}.intro .eyebrow{font-size:8px;letter-spacing:1.35px;gap:8px}.intro .eyebrow:before{width:16px;flex-shrink:0}h1{font-size:clamp(42px,11.8vw,64px);letter-spacing:-1.9px;line-height:1.08}.lead{font-size:13px}.art{height:365px;width:100%;max-width:380px;scale:1;margin:12px auto 16px;transform-origin:center}.sculpture{inset:0;width:100%;height:100%}.ticket{width:220px;min-height:273px;border-radius:115px 115px 13px 13px;padding:25px 20px 20px}.ticket>span{font-size:7px;letter-spacing:2.1px;margin:19px 0 22px}.ticket>strong{font-size:51px}.ticket-foot{margin-top:20px;font-size:5px}.orbit{width:310px;height:260px}.orbit.two{width:280px;height:310px}.date-stamp{width:79px;height:79px;right:0;top:26px;font-size:8px}.date-stamp b{font-size:18px}.spark{left:0;top:44px;font-size:33px}.spark.s2{right:-3px;bottom:32px;font-size:35px}.floating-note{left:0;bottom:20px;padding:12px 15px;gap:10px}.floating-note small{font-size:7px}.floating-note strong{font-size:16px}.floating-note>span{font-size:20px}.section-top{margin-top:5px;gap:20px}.section-top h2{font-size:30px}.cards{grid-template-columns:1fr}.card{display:block;border-radius:17px}.card-art{height:205px;min-height:0}.card-body{padding:22px}.card h3{font-size:25px}.big-art{font-size:78px}.big-art small{font-size:11px}.card-bottom{font-size:11px}.badge{font-size:8px;left:15px;top:15px}.ambient i{width:180vw;height:180vw;top:-30vw;left:-80vw;filter:none}.ambient i+i{width:150vw;height:150vw;right:-70vw;bottom:-20vw}.ambient:after{filter:blur(30px)}.bottom-note{margin-top:30px;padding:22px}.bottom-note h3{font-size:21px}footer{padding:0 23px 25px}.motion-toggle{margin-right:auto}.filters{max-width:100%;overflow:auto}.filters button{padding:9px 12px;font-size:12px}.pointer-light{display:none}}
body.motion-paused .ambient *,body.motion-paused .ambient:after,body.motion-paused .art *{animation-play-state:paused!important}body.motion-paused .pointer-light{opacity:0}
@media(prefers-reduced-motion:reduce){.ambient *,.ambient:after,.art *{animation:none!important}.pointer-light{display:none}.card,.ticket,.primary,.card img{transition:none!important}.card:hover,.art:hover .ticket,.primary:hover{transform:none!important}.card:after,.primary:after{display:none}}

html{overflow-x:clip}body.page-hidden .ambient *,body.page-hidden .ambient:after,body.page-hidden .art *{animation-play-state:paused!important}
