:root{color-scheme:dark;--gold:#edcd91;--muted:#a7bdd4;--bg:#031329}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#010811;color:#f5f1e8;font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:16px;line-height:1.6}button,input{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid #8ccfff;outline-offset:4px}.invitation{width:100%;max-width:500px;height:100%;height:100dvh;margin:auto;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 110% 25%,#10558877,transparent 65%),#031329;box-shadow:0 0 90px #0b2b46}.ambient{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden}.ambient:before{content:"";position:absolute;inset:-60%;background:linear-gradient(125deg,transparent 46%,#247aff10 48%,#72cbff29 49%,transparent 51%);animation:light 12s ease-in-out infinite}.ambient:after{content:"";position:absolute;inset:20px;border:1px solid #d8b57925;border-top:0;border-bottom:0;pointer-events:none}header{position:absolute;top:0;left:0;right:0;z-index:10;height:80px;padding:calc(23px + env(safe-area-inset-top)) 27px 10px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:17px;color:var(--gold)}.brandmark{width:30px;height:32px;overflow:hidden;position:relative;border-radius:7px}.brandmark img{position:absolute;width:438px;max-width:none;left:-21px;top:-18px}.quick-rsvp{font-size:12px;letter-spacing:1px;color:#d3dfee}.panel{position:absolute;inset:0;overflow:hidden;opacity:0;transform:translateY(100%);transition:transform .72s cubic-bezier(.22,.75,.15,1),opacity .65s;pointer-events:none;visibility:hidden;background:radial-gradient(ellipse at 120% 20%,#0a568855,transparent 65%),#031329}.panel.passed{transform:translateY(-35%)}.panel.active{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto;z-index:2}.page-inner{height:100%;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:none;padding:calc(101px + env(safe-area-inset-top)) 34px calc(85px + env(safe-area-inset-bottom));position:relative;z-index:2}.page-inner::-webkit-scrollbar{display:none}.hero-art{position:absolute;left:0;right:0;bottom:0;height:37%;background:linear-gradient(180deg,#031329 0%,#03132950 38%,#031329a0 85%,#031329 100%),url('assets/poster.png') center bottom/100% auto;opacity:.85;animation:cinema 14s ease-in-out infinite}.hero .page-inner{text-align:center;padding-top:calc(132px + env(safe-area-inset-top))}.eyebrow{font-size:10px;letter-spacing:3px;color:#afc3d7;margin:0 0 32px}.salutation{font-size:14px;letter-spacing:3px;color:#d8c59e;margin:0 0 17px}h1{font-size:clamp(64px,19vw,90px);font-family:"STKaiti","KaiTi","Songti SC","SimSun",serif;font-weight:500;line-height:1.25;letter-spacing:5px;margin:0;background:linear-gradient(130deg,#fff4d6,#e6bd77 65%,#fcebc6);background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(0 5px 18px #0005)}.english-title{font-size:11px;letter-spacing:3px;color:#d7bd91;margin:13px 0 20px}.fine-line{width:44px;height:1px;background:var(--gold);margin:22px auto}.hero-title{font-family:"Songti SC","SimSun",serif;font-size:26px;letter-spacing:2px;font-weight:500;margin:0 0 15px;line-height:1.5}.theme{color:#c2d2e3;font-size:14px;letter-spacing:1px;line-height:1.9;margin:0}.hero-date{margin:27px auto 0;display:flex;align-items:center;justify-content:center;gap:17px}.hero-date strong{font:43px/1 Georgia,serif}.hero-date strong span{font-size:26px;color:var(--gold)}.hero-date>div{font-size:12px;line-height:1.9;text-align:left}.hero-date>div span{color:#b5c4d4}.hero-motto{font-family:SimSun,serif;color:#e5d0ac;font-size:17px;letter-spacing:2px;margin:33px 0 0}.chapter{font-size:10px;letter-spacing:2px;color:#afc3d7;display:block;margin-bottom:19px}h2{font-family:"Songti SC","SimSun",serif;font-size:31px;font-weight:500;line-height:1.6;letter-spacing:1px;margin:0 0 14px}em{font-style:normal;color:var(--gold)}.section-heading p{font-size:13px;color:var(--muted);margin:0}.features{margin-top:26px}.features article{display:flex;align-items:center;gap:13px;padding:18px 0;border-bottom:1px solid #b7cbe12b}.feature-num{font:13px Georgia,serif;color:var(--gold)}h3{font-size:17px;font-weight:500;margin:0 0 4px}.features p{font-size:12px;color:var(--muted);margin:0}.symbol{margin-left:auto;color:var(--gold);font-size:27px}.mini-scene{height:105px;margin:18px -34px 0;background:linear-gradient(180deg,#031329,transparent 45%,#031329),url('assets/poster.png') center 81%/100% auto}.page-quote{text-align:center;color:#d9c39d;font-size:13px;letter-spacing:1px;margin:13px 0 0}.timeline{padding:0;margin:25px 0 0;list-style:none}.timeline li{display:flex;gap:25px;position:relative;padding-bottom:20px}.timeline time{font:20px/1.5 Georgia,serif;color:var(--gold);width:52px;flex-shrink:0}.timeline li:before{content:"";position:absolute;left:63px;top:10px;width:5px;height:5px;border:1px solid var(--gold);border-radius:50%}.timeline li:after{content:"";position:absolute;left:66px;top:21px;bottom:0;border-left:1px solid #8196ac55}.timeline li:last-child:after{display:none}.timeline li:last-child{padding-bottom:0}.timeline h3{font-size:15px;letter-spacing:.4px}.timeline p{font-size:12px;color:var(--muted);margin:0}.attend h2{font-size:27px;white-space:nowrap}.event-summary{border-top:1px solid #d0af7750;border-bottom:1px solid #d0af7750;padding:12px 0;margin:15px 0 19px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:3px}.event-summary strong{font:24px Georgia,serif;color:var(--gold)}.event-summary small{font:11px sans-serif;color:#b4c6d7}.event-summary>span{font-size:11px}.event-summary p{width:100%;font-size:12px;margin:5px 0 0;color:var(--muted)}.registration h3{display:none}.registration label{display:block;font-size:14px;margin:11px 0 6px;color:#dbe4ee}.registration input{width:100%;height:46px;background:#0e2a4566;border:1px solid #647f9955;border-radius:3px;color:white;padding:10px 12px;font-size:16px;outline:none}.registration input:focus{border-color:var(--gold);box-shadow:0 0 0 1px #eaca8833}.registration input::placeholder{font-size:12px;color:#859eb7}.privacy{font-size:11px;line-height:1.7;color:#9cb1c7;margin:15px 0}.submit-button{display:flex;justify-content:space-between;padding:12px 18px;width:100%;border:0;background:linear-gradient(110deg,#f5dfb6,#d6ad6e);color:#182c41;font-size:15px;font-weight:600;border-radius:3px}.submit-button:disabled{opacity:.6;cursor:default}#formStatus{font-size:13px;color:var(--gold);margin:8px 0;line-height:1.7}#formStatus.error{color:#ffbba9}.poster-link{display:block;margin:17px auto 0;background:none;border:0;border-bottom:1px solid #bca67966;padding:3px 0;font-size:12px;color:#cabb9f}.page-nav{position:absolute;z-index:12;bottom:0;left:0;right:0;height:calc(65px + env(safe-area-inset-bottom));padding:0 29px env(safe-area-inset-bottom);display:flex;align-items:center;gap:14px;background:linear-gradient(0deg,#031329 45%,#031329ed 78%,#03132900)}.page-nav button{background:none;border:0;color:#d4c09c;min-width:28px;min-height:36px;font-size:14px}.page-nav button:disabled{opacity:.25}.pager{display:flex;gap:6px}.pager button{width:5px;height:5px;min-width:5px;min-height:5px;padding:0;border-radius:50%;background:#a5bdd45c;position:relative}.pager button:before{content:"";position:absolute;inset:-12px -4px}.pager button[aria-current]{background:var(--gold);box-shadow:0 0 10px #eacc7a55}#next{margin:auto;font-size:11px;letter-spacing:2px;white-space:nowrap;padding:0}#next span{display:inline-block;margin-left:4px;animation:hint 1.8s ease-in-out infinite}#pageNumber{font-size:10px;letter-spacing:1px;color:#8095ad}.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .75s ease,transform .75s ease;transition-delay:0s}.js .active .reveal{opacity:1;transform:translateY(0);transition-delay:var(--delay,0ms)}dialog{width:94%;max-width:480px;max-height:90dvh;padding:0;background:#031329;border:1px solid #c4ad7b66;color:white;overscroll-behavior:contain}dialog::backdrop{background:#000c;backdrop-filter:blur(8px)}dialog img{display:block;width:100%}dialog p{text-align:center;font-size:12px}.close{position:sticky;float:right;top:10px;z-index:2;margin:10px 10px -50px 0;background:#031329dd;border:1px solid #abc7d666;color:white;border-radius:50%;width:38px;height:38px;font-size:24px}@keyframes light{50%{transform:translateX(15%)}}@keyframes cinema{50%{transform:scale(1.04)}}@keyframes hint{50%{transform:translateY(-5px)}}@media(min-width:600px){body{display:flex;align-items:center}.invitation{height:min(94dvh,900px);aspect-ratio:9/16;max-width:min(500px,53dvh);border:1px solid #567a9740;border-radius:5px}.hero .page-inner{padding-top:128px}}@media(max-height:740px){.hero .page-inner{padding-top:105px}.eyebrow{margin-bottom:20px}.salutation{margin-bottom:12px}h1{font-size:70px}.english-title{margin:10px 0}.fine-line{margin:17px auto}.hero-title{font-size:24px}.hero-date{margin-top:20px}.hero-motto{margin-top:20px}.page-inner{padding-top:90px}h2{font-size:28px;margin-bottom:10px}.chapter{margin-bottom:12px}.features{margin-top:15px}.features article{padding:14px 0}.mini-scene{height:65px;margin-top:14px}.timeline{margin-top:20px}.timeline li{padding-bottom:16px}.event-summary{margin:10px 0}.registration label{margin-top:8px}.registration input{height:42px}.privacy{margin:10px 0}.attend h2{font-size:25px}}@media(max-width:360px){.page-inner{padding-left:27px;padding-right:27px}header{padding-left:25px;padding-right:25px}.brand{font-size:15px}.quick-rsvp{font-size:11px}.attend h2{font-size:24px}.features p{font-size:11px}.event-summary>span{font-size:10px}.page-nav{padding-left:24px;padding-right:24px;gap:9px}#pageNumber{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal{transform:none}}
.mini-scene{height:70px}.page-quote{display:none}

header{gap:10px}.header-actions{display:flex;align-items:center;gap:11px}.quick-rsvp{font-size:11px}.music-toggle{display:flex;align-items:center;justify-content:center;gap:3px;flex-shrink:0;width:32px;height:32px;border:1px solid #dabe8880;border-radius:50%;background:#071d34aa;backdrop-filter:blur(8px);color:var(--gold);padding:7px}.music-toggle i{width:2px;height:10px;background:var(--gold);transform:scaleY(.45);transition:transform .3s}.music-toggle.playing i{animation:equalizer .9s ease-in-out infinite alternate}.music-toggle i:nth-child(2){animation-delay:-.3s}.music-toggle i:nth-child(3){animation-delay:-.6s}.music-hint{position:absolute;right:27px;top:calc(68px + env(safe-area-inset-top));font-size:10px;letter-spacing:1px;color:#d9c397;pointer-events:none;transition:opacity 1s}.music-hint.quiet{opacity:0;transition-delay:2s}
.panel{background-image:linear-gradient(180deg,#03132955,#03132988 44%,#03132922),url('assets/future-city.png');background-size:cover;background-position:center}.hero-art{inset:0;height:100%;background:linear-gradient(180deg,#03132900 0%,#03132922 35%,#03132900 75%,#03132966 100%),url('assets/future-city.png') center/cover;opacity:1;animation:cityDrift 20s ease-in-out infinite alternate}.hero .page-inner{text-shadow:0 2px 15px #000b}.hero-motto{color:#f3d8a8}.ambient:after{border-color:#d8b57920}.ambient:before{opacity:.7}.vision{background-position:38% center}.agenda{background-position:60% bottom}.attend{background-position:center bottom}.vision .features{background:linear-gradient(110deg,#031329c9,#082a436e);padding:0 15px;margin-left:-10px;margin-right:-10px;border:1px solid #8bbdd92b;backdrop-filter:blur(5px)}.vision .mini-scene{background:linear-gradient(180deg,#03132900,#03132900);height:55px}.agenda .timeline{background:linear-gradient(100deg,#031329da,#03132999);padding:15px 12px 12px;margin-left:-12px;margin-right:-12px;border-left:1px solid #d7b87d55;backdrop-filter:blur(5px)}.timeline li{padding-bottom:17px}.attend .registration{padding:12px 14px 14px;margin-left:-14px;margin-right:-14px;background:linear-gradient(110deg,#031329dd,#06243bc9);border:1px solid #7fb0d244;backdrop-filter:blur(7px);border-radius:5px}.registration input{background:#071b30c9}.event-summary{background:#03132988;padding:12px 10px;margin-left:-10px;margin-right:-10px;backdrop-filter:blur(4px)}.page-nav{background:linear-gradient(0deg,#031329e8 40%,#031329aa 78%,transparent)}.section-heading{text-shadow:0 2px 10px #0008}.poster-link{background:#031329aa;padding:4px 10px}.panel:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 18% 80%,#cbedff55 0 1px,transparent 2px),radial-gradient(circle at 77% 68%,#ffdda94d 0 1px,transparent 2px),radial-gradient(circle at 89% 42%,#cbedff66 0 1px,transparent 2px);background-size:180px 250px,260px 380px,330px 270px;animation:starFloat 18s linear infinite;z-index:1;opacity:.65}@keyframes equalizer{to{transform:scaleY(1.2)}}@keyframes cityDrift{to{transform:scale(1.045) translateY(-.5%)}}@keyframes starFloat{to{background-position:0 -250px,0 -380px,0 -270px}}@media(max-width:360px){header{gap:6px;padding-left:24px;padding-right:24px}.header-actions{gap:7px}.quick-rsvp{font-size:10px}.brand{font-size:14px;gap:5px}.music-toggle{width:30px;height:30px}.music-hint{right:24px}.timeline li{padding-bottom:14px}.attend .registration{padding-top:8px}}@media(prefers-reduced-motion:reduce){.panel:after,.hero-art,.music-toggle.playing i{animation:none}}
.hero .hero-title{font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:25px;font-weight:600;letter-spacing:1px;color:#fffaf0;text-shadow:0 2px 4px #00101f,0 0 12px #00101f}.hero .theme{display:table;margin:0 auto;padding:9px 17px;border:1px solid #b2c9e52b;border-radius:4px;background:#031426cf;color:#f2f7ff;font-size:15px;font-weight:500;letter-spacing:1px;line-height:1.9;text-shadow:none;backdrop-filter:blur(4px)}.hero .hero-date>div{color:#fff;text-shadow:0 1px 3px #000}.hero .hero-date>div span{color:#edf4fc}.hero .hero-motto{font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-weight:500;font-size:16px;text-shadow:0 2px 4px #000,0 0 10px #031329}@media(max-width:360px){.hero .hero-title{font-size:23px}.hero .theme{font-size:14px}}
/* Bright gold title: suppress inherited shadow inside transparent glyphs. */
.hero h1{font-weight:700;color:#ffda75;-webkit-text-fill-color:#ffda75;background:none;text-shadow:none;filter:drop-shadow(0 2px 3px #001022) drop-shadow(0 0 12px #ffc85c40)}
@supports ((-webkit-background-clip:text) or (background-clip:text)){.hero h1{background:linear-gradient(160deg,#fff8db 0%,#ffe9a3 24%,#ffd166 48%,#ffedb3 67%,#efb943 100%);background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent}}
