:root{--black: #0a0a0d;--black-2: #101015;--paper: #f6f1ea;--ink: #1a1418;--pink: #e8437f;--pink-soft: #f4a9c6;--pink-pale: #f7dce6;--gold: #c8a24a;--gold-line: rgba(200, 162, 74, .55);--white: #f4eff0;--dim: rgba(244, 239, 240, .62);--ceremony-a: #fbf5f4;--ceremony-b: #f3d7e0;--serif-latin: "Cormorant Garamond", serif;--serif-jp: "Shippori Mincho", serif;--ui: "Zen Kaku Gothic New", sans-serif;--tabbar-h: 62px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:#000;color:var(--white);font-family:var(--ui);font-weight:300;-webkit-font-smoothing:antialiased}.app{position:relative;max-width:468px;margin:0 auto;background:var(--black);box-shadow:0 0 90px #e8437f1a;overflow-x:clip}.info-label,.section-heading,.hero-name-sub,.timeline-heading,.photo-catch{font-family:var(--serif-latin);font-weight:600}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;pointer-events:none;transition:opacity .7s ease}.splash.reveal{opacity:0}.splash-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(160deg,var(--ceremony-a) 30%,var(--ceremony-b))}.splash-center{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:26px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.splash.pop .splash-center{transform:scale(1.05)}.splash-logo{display:flex;flex-direction:column;align-items:center;gap:16px}.splash-script{font-family:var(--serif-latin);font-size:46px;font-weight:300;font-style:italic;line-height:1;letter-spacing:.04em;color:#40323a}.splash.pop .splash-script,.splash.dark .splash-script,.splash.reveal .splash-script{animation:scriptSpin 1.05s cubic-bezier(.3,1.2,.45,1) forwards}@keyframes scriptSpin{0%{transform:rotate(0) scale(1)}60%{transform:rotate(360deg) scale(1.14)}to{transform:rotate(360deg) scale(1.07)}}.splash-title{font-family:var(--serif-latin);font-size:12px;font-weight:600;letter-spacing:.44em;text-indent:.44em;color:#9a7f88;transition:transform 1.05s ease,opacity .95s ease}.splash.pop .splash-title,.splash.dark .splash-title,.splash.reveal .splash-title{transform:translateY(-26px);opacity:0}.splash.pop .splash-bar,.splash.dark .splash-bar,.splash.reveal .splash-bar{opacity:0;transition:opacity .45s ease}.splash-bar{width:140px;height:1px;background:#40323a2e;overflow:hidden}.splash-bar-fill{height:100%;width:0;background:var(--pink);animation:barfill linear forwards}@keyframes barfill{to{width:100%}}.crackers{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;overflow:hidden}.crackers i{position:absolute;opacity:0}.splash.pop .crackers i,.splash.dark .crackers i,.splash.reveal .crackers i{animation:crack 1s cubic-bezier(.16,.68,.35,1) forwards}@keyframes crack{0%{transform:translate(0) rotate(0) scale(.5);opacity:1}65%{transform:translate(var(--tx),var(--ty)) rotate(var(--r)) scale(1);opacity:1}to{transform:translate(var(--tx),calc(var(--ty) + 80px)) rotate(calc(var(--r) * 1.35)) scale(1);opacity:0}}.pop-ring{position:absolute;top:76%;width:14px;height:14px;border:2px solid rgba(200,162,74,.8);border-radius:50%;opacity:0}.pop-ring.left{left:10%}.pop-ring.right{left:90%}.splash.pop .pop-ring,.splash.dark .pop-ring,.splash.reveal .pop-ring{animation:popring .55s ease-out forwards}@keyframes popring{0%{transform:translate(-50%,-50%) scale(.4);opacity:1}to{transform:translate(-50%,-50%) scale(4.2);opacity:0}}.splash-iris{position:absolute;z-index:4;left:50%;top:46%;width:175vmax;height:175vmax;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;box-shadow:0 0 110px 70px #050507f7,0 0 0 200vmax #050507;transition:width 1.3s cubic-bezier(.65,0,.3,1),height 1.3s cubic-bezier(.65,0,.3,1)}.splash.dark .splash-iris,.splash.reveal .splash-iris{width:0;height:0}.splash.dark .splash-center,.splash.reveal .splash-center{transition:transform 1.35s cubic-bezier(.55,0,.3,1),opacity 1.2s ease,filter 1.2s ease;transform:rotate(-10deg) scale(.82);opacity:0;filter:blur(6px)}.splash-bg{transition:transform 1.5s cubic-bezier(.55,0,.3,1),filter 1.5s ease}.splash.dark .splash-bg,.splash.reveal .splash-bg{transform:scale(1.14) rotate(3.5deg);filter:brightness(.45) saturate(1.2)}.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:54px 22px calc(var(--tabbar-h) + 42px);overflow:hidden}.hero-glow{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 92% 52% at 50% -12%,rgba(232,67,127,.24),transparent 60%),radial-gradient(ellipse 55% 38% at 88% 104%,rgba(200,162,74,.1),transparent 66%);pointer-events:none}.hero-card-wrap{perspective:950px;display:flex;flex-direction:column;align-items:center;gap:16px}.hero-card{position:relative;width:min(78vw,320px);aspect-ratio:3 / 4;border-radius:3px;border:1px solid var(--gold-line);overflow:hidden;transform-style:preserve-3d;transition:transform .15s ease-out;box-shadow:0 34px 64px #0009;touch-action:pan-y}.hero-layer{position:absolute;top:-30px;right:-30px;bottom:-30px;left:-30px;transition:transform .15s ease-out}.hero-bg{background:linear-gradient(#0a0a0d1f,#0a0a0d52),url(/hero-toast.jpg) center / cover no-repeat}.hero-front{pointer-events:none}.hero-shine{position:absolute;top:-40%;left:-60%;width:90%;height:180%;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.14) 50%,transparent 60%);animation:shine 6s ease-in-out infinite}@keyframes shine{0%,55%,to{transform:translate(0)}75%{transform:translate(210%)}}.confetti{position:absolute;top:-12px;background:var(--pink-soft);opacity:.8;animation:confetti-fall 6.5s linear infinite}.confetti.gold{background:var(--gold);border-radius:50%}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0);opacity:0}12%{opacity:.8}to{transform:translateY(560px) rotate(540deg);opacity:0}}.hero-card-text{position:absolute;left:0;right:0;bottom:0;padding:20px 18px 18px;text-align:center;background:linear-gradient(transparent,#0a0a0dd9 58%)}.hero-monogram{font-family:var(--serif-latin);font-style:italic;font-size:22px;color:var(--gold);display:block;margin-bottom:2px}.hero-name{font-family:var(--serif-latin);font-size:25px;font-weight:300;letter-spacing:.2em;text-indent:.2em;white-space:nowrap}.hero-name-sub{font-size:9px;letter-spacing:.42em;text-indent:.42em;color:var(--pink-soft);margin-top:7px}.gyro-btn{border:1px solid var(--gold-line);background:transparent;color:var(--gold);font-family:var(--ui);font-size:11px;letter-spacing:.04em;padding:9px 18px}.hero-meta{position:relative;width:min(78vw,320px);border-top:1px solid var(--gold-line);padding-top:20px;display:flex;flex-direction:column;gap:4px}.hero-date{font-family:var(--serif-latin);font-size:40px;font-weight:300;letter-spacing:.04em;line-height:1}.hero-date span{font-size:15px;letter-spacing:.2em;color:var(--pink);margin-left:8px}.hero-open{font-family:var(--serif-latin);font-size:15px;letter-spacing:.12em;color:var(--dim);margin-top:4px}.hero-venue{font-family:var(--serif-jp);font-weight:500;font-size:15px;letter-spacing:.08em;color:var(--white)}.hero-chip{align-self:flex-start;margin-top:10px;font-family:var(--serif-latin);font-size:11px;font-weight:600;letter-spacing:.34em;text-indent:.34em;color:var(--pink);border:1px solid var(--pink);padding:6px 15px}.scroll-hint{position:absolute;bottom:calc(var(--tabbar-h) + 12px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:7px;font-family:var(--serif-latin);font-size:10px;letter-spacing:.36em;text-indent:.36em;color:#f4eff073}.scroll-hint i{width:1px;height:30px;background:linear-gradient(var(--pink),transparent);animation:hint 1.7s ease-in-out infinite}@keyframes hint{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}to{transform:scaleY(0);transform-origin:bottom}}.timeline{position:relative}.timeline-stage{position:sticky;top:0;height:100svh;overflow:hidden;background:radial-gradient(ellipse 74% 48% at 50% 42%,rgba(232,67,127,.09),transparent 70%),#050507}.timeline-spot{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 58% 36% at 50% 44%,rgba(255,255,255,.055),transparent 70%);pointer-events:none}.timeline-heading{position:absolute;top:36px;left:26px;font-size:13px;letter-spacing:.42em;color:var(--gold)}.timeline-item{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%) scale(.5);opacity:0;text-align:center;width:86%;will-change:transform,opacity,filter}.timeline-tag{display:inline-block;font-family:var(--serif-latin);font-size:12px;font-weight:600;letter-spacing:.42em;text-indent:.42em;color:var(--gold);padding-bottom:6px;border-bottom:1px solid var(--gold-line);margin-bottom:20px}.timeline-time{display:block;font-family:var(--serif-latin);font-size:74px;font-weight:300;line-height:1;letter-spacing:.02em;color:var(--white)}.timeline-title{font-family:var(--serif-jp);font-size:25px;font-weight:700;letter-spacing:.1em;margin-top:16px;color:var(--white)}.timeline-desc{font-size:13px;letter-spacing:.06em;color:var(--dim);margin-top:12px}.timeline-dots{position:absolute;bottom:calc(var(--tabbar-h) + 26px);left:50%;transform:translate(-50%);display:flex;gap:12px}.timeline-dots i{width:5px;height:5px;border-radius:50%;background:#f4eff029;transition:background .3s,transform .3s}.timeline-dots i.on{background:var(--pink);transform:scale(1.3)}.info{position:relative;padding:78px 22px calc(var(--tabbar-h) + 52px);background:linear-gradient(#050507,var(--black-2));display:flex;flex-direction:column;gap:18px}.section-heading{display:flex;align-items:baseline;gap:12px;font-size:22px;letter-spacing:.14em;color:var(--white);padding-bottom:14px;margin-bottom:6px;border-bottom:1px solid var(--gold-line)}.section-idx{font-size:15px;color:var(--gold)}[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1)}[data-reveal].in{opacity:1;transform:none}.info-card{background:var(--paper);color:var(--ink);border-radius:4px;padding:26px 24px;box-shadow:0 16px 34px #0000006b}.info-card.pink{background:linear-gradient(150deg,#fbe4ec,#f7cfe0)}.info-card.help{background:var(--black);color:var(--white);border:1px solid var(--gold-line)}.info-label{display:inline-block;font-size:12px;letter-spacing:.32em;text-indent:.32em;color:var(--gold);padding-bottom:8px;margin-bottom:14px;border-bottom:1px solid var(--gold-line)}.info-label.gold{color:var(--gold)}.info-title{font-family:var(--serif-jp);font-size:21px;font-weight:700;letter-spacing:.05em;margin-bottom:10px}.info-body{font-size:14px;line-height:1.9;font-weight:300}.info-body.pre{white-space:pre-line}.info-sub{font-size:12px;line-height:1.85;color:#1a141899;margin-top:10px}.info-card.help .info-sub{color:var(--dim)}.info-map-btn{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding:14px 18px;background:var(--ink);color:var(--paper);text-decoration:none;font-size:13px;letter-spacing:.08em;border-radius:3px}.info-map-btn .arrow{width:20px;height:20px}.fee-rows{display:flex;flex-direction:column}.fee-row{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;font-size:14px}.fee-row strong{font-family:var(--serif-latin);font-size:30px;font-weight:300;letter-spacing:.02em;color:var(--pink)}.help-list{list-style:none;display:flex;flex-direction:column;margin:6px 0 14px}.help-list li{display:flex;align-items:baseline;gap:16px;padding:15px 2px;border-top:1px solid rgba(200,162,74,.22)}.help-list li:last-child{border-bottom:1px solid rgba(200,162,74,.22)}.help-no{font-family:var(--serif-latin);font-size:20px;font-weight:600;color:var(--gold);min-width:26px}.help-text{font-family:var(--serif-jp);font-weight:500;font-size:15.5px;letter-spacing:.04em}.help-text em{display:block;font-family:var(--ui);font-style:normal;font-weight:300;font-size:11.5px;letter-spacing:.04em;color:var(--dim);margin-top:3px}.photo{position:relative;padding:90px 24px calc(var(--tabbar-h) + 76px);text-align:center;background:radial-gradient(ellipse 100% 56% at 50% 0%,rgba(200,162,74,.2),transparent 55%),linear-gradient(162deg,#26101c,#4f1029 46%,#7d1540);overflow:hidden}.photo:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 82% 80%,rgba(244,169,198,.22),transparent 45%);pointer-events:none}.photo-inner{position:relative}.photo-catch{font-size:12px;letter-spacing:.42em;text-indent:.42em;color:var(--gold)}.photo-title{font-family:var(--serif-jp);font-size:27px;font-weight:800;letter-spacing:.02em;line-height:1.3;margin:16px 0 22px;color:var(--white)}.photo-sub{font-family:var(--serif-jp);font-weight:500;font-size:14px;line-height:2;color:#f4eff0db}.photo-btn{position:relative;display:block;width:100%;margin-top:30px;padding:20px 16px;border:1px solid rgba(244,169,198,.6);border-radius:3px;font-family:var(--ui);font-size:15px;font-weight:500;letter-spacing:.08em;color:#fff;background:#e8437f24;cursor:pointer;overflow:hidden;animation:breathe 3.4s ease-in-out infinite}.photo-btn:after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.22),transparent);animation:sweep 3.4s ease-in-out infinite}@keyframes breathe{0%,to{box-shadow:0 0 #e8437f00;border-color:#f4a9c680}50%{box-shadow:0 8px 40px #e8437f73;border-color:var(--pink-soft)}}@keyframes sweep{0%,60%,to{left:-70%}80%{left:130%}}.photo-note{margin-top:18px;font-size:13px;color:var(--gold);animation:fadein .4s ease}@keyframes fadein{0%{opacity:0;transform:translateY(6px)}}.shutter-flash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#fff;animation:flash .45s ease-out forwards;pointer-events:none}@keyframes flash{0%{opacity:0}15%{opacity:1}to{opacity:0}}.connecting{position:fixed;top:0;right:0;bottom:0;left:0;z-index:89;display:grid;place-items:center;background:#050508e6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.connecting span{font-size:12px;letter-spacing:.2em;color:var(--white);margin-top:74px}.connecting-spinner{position:absolute;width:40px;height:40px;border-radius:50%;border:1px solid rgba(232,67,127,.25);border-top-color:var(--pink);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:min(100%,468px);height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);z-index:80;display:grid;grid-template-columns:repeat(4,1fr);background:#0a0a0dd1;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid rgba(200,162,74,.28)}.tab{border:none;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#f4eff06b;font-family:var(--ui);cursor:pointer;transition:color .25s}.tab.active{color:var(--pink)}.tab-icon{width:21px;height:21px;display:block}.tab-icon svg{width:100%;height:100%;display:block}.tab-label{font-size:9px;letter-spacing:.04em}.grain{position:fixed;top:-50%;right:-50%;bottom:-50%;left:-50%;width:200%;height:200%;z-index:70;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain .6s steps(1) infinite}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-6%,4%)}40%{transform:translate(4%,-6%)}60%{transform:translate(-4%,-4%)}80%{transform:translate(6%,6%)}to{transform:translate(0)}}.vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;pointer-events:none;background:radial-gradient(ellipse 78% 68% at 50% 46%,transparent 60%,rgba(0,0,0,.55) 100%)}.dust{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;overflow:hidden}.dust span{position:absolute;border-radius:50%;background:#f4a9c6bf;box-shadow:0 0 4px #f4a9c680;opacity:0;animation:floatUp linear infinite}.dust span.gold{background:#c8a24ad9;box-shadow:0 0 5px #c8a24a99}@keyframes floatUp{0%{transform:translateY(24px) scale(.7);opacity:0}15%{opacity:.9}85%{opacity:.6}to{transform:translate(var(--drift, 0),-130px) scale(1);opacity:0}}.hero-aurora{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;filter:blur(46px);pointer-events:none}.hero-aurora .blob{position:absolute;border-radius:50%;mix-blend-mode:screen}.hero-aurora .b1{width:380px;height:380px;background:radial-gradient(circle,rgba(232,67,127,.55),transparent 70%);top:-12%;left:-18%;animation:drift1 20s ease-in-out infinite}.hero-aurora .b2{width:340px;height:340px;background:radial-gradient(circle,rgba(125,21,64,.7),transparent 70%);bottom:-14%;right:-20%;animation:drift2 24s ease-in-out infinite}.hero-aurora .b3{width:240px;height:240px;background:radial-gradient(circle,rgba(200,162,74,.4),transparent 70%);top:42%;left:46%;animation:drift3 28s ease-in-out infinite}@keyframes drift1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,40px) scale(1.15)}}@keyframes drift2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-40px,-30px) scale(1.2)}}@keyframes drift3{0%,to{transform:translate(-50%) scale(1);opacity:.4}50%{transform:translate(-50%,-40px) scale(1.3);opacity:.65}}.hero-card-wrap,.hero-meta,.scroll-hint,.photo-inner{position:relative;z-index:2}.hero-card-text .hero-monogram,.hero-card-text .hero-name,.hero-card-text .hero-name-sub,.hero-meta>*{opacity:0;animation:rise .9s cubic-bezier(.22,1,.36,1) forwards}.hero-card-text .hero-monogram{animation-delay:4.45s}.hero-card-text .hero-name{animation-delay:4.6s}.hero-card-text .hero-name-sub{animation-delay:4.77s}.hero-meta>*:nth-child(1){animation-delay:4.9s}.hero-meta>*:nth-child(2){animation-delay:5s}.hero-meta>*:nth-child(3){animation-delay:5.1s}.hero-meta>*:nth-child(4){animation-delay:5.2s}@keyframes rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.hero-chip{position:relative;overflow:hidden}.hero-chip:after{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.5),transparent);animation:sweep 5s ease-in-out infinite;animation-delay:5.5s}.timeline-spot{animation:spotDrift 14s ease-in-out infinite}@keyframes spotDrift{0%,to{transform:translate(0)}50%{transform:translate(6%,-4%)}}.clock{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);width:min(92vw,430px);height:auto;z-index:0;pointer-events:none}.timeline-item{z-index:2}.clock-ring{fill:none;stroke:#c8a24a29;stroke-width:.6}.clock-prog{fill:none;stroke:var(--pink);stroke-width:1.1;stroke-linecap:round;opacity:.75;filter:drop-shadow(0 0 3px rgba(232,67,127,.6))}.clock-tick{stroke:#c8a24a59;stroke-width:.7}.clock-hand{stroke:#c8a24a8c;stroke-linecap:round}.clock-hand.hour{stroke-width:1.6}.clock-hand.min{stroke-width:.9;stroke:#c8a24a66}.clock-dot{fill:var(--gold);opacity:.7}.foil{background:linear-gradient(115deg,#a8853b 30%,#eeddad 47%,#c8a24a 53%,#f7ecc9 60%,#a8853b 75%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:foilShift 4.5s ease-in-out infinite}@keyframes foilShift{0%,to{background-position:0% 0}50%{background-position:100% 0}}.dresscode-img{display:block;width:min(220px,62%);margin:-8px auto 6px}.divider-img{display:block;width:min(260px,72%);margin:0 auto 10px;opacity:.95}.spark-burst{position:fixed;z-index:95;pointer-events:none}.spark-burst i{position:absolute;left:-1px;top:-10px;width:2px;height:10px;border-radius:1px;background:linear-gradient(var(--gold),transparent);transform:rotate(var(--a)) translateY(-7px);transform-origin:1px 10px;animation:sparkfly .55s ease-out forwards}@keyframes sparkfly{to{transform:rotate(var(--a)) translateY(-30px) scaleY(.35);opacity:0}}@media(prefers-reduced-motion:reduce){.grain,.dust span,.hero-aurora .blob,.timeline-spot,.hero-chip:after,.foil,.crackers i,.pop-ring{animation:none}.splash-iris,.splash-center,.splash-bg,.splash-title,.splash-bar{transition:none}.splash-script{animation:none}.hero-card-text .hero-monogram,.hero-card-text .hero-name,.hero-card-text .hero-name-sub,.hero-meta>*{opacity:1;animation:none}.hero-shine,.confetti,.photo-btn,.photo-btn:after,.scroll-hint i{animation:none}[data-reveal]{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
