:root{--paper:#f6f0e6;--ink:#60462c;--gold:#ad8150;--line:#c8ad87}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#e8dfd1;color:var(--ink);font-family:'Noto Serif SC','Songti SC',serif}main{max-width:640px;margin:auto;background:var(--paper);overflow:hidden;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.045' filter='url(%23n)'/%3E%3C/svg%3E")}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}section{position:relative;padding:80px 30px}.hero{min-height:100svh;display:flex;align-items:center;flex-direction:column;justify-content:center;text-align:center;padding:70px 30px 60px}.frame{position:absolute;inset:20px;border:1px solid var(--line);pointer-events:none}.brand{position:relative;margin-bottom:42px}.number{font-family:Didot,'Bodoni MT','Times New Roman',serif;font-size:94px;line-height:.95;letter-spacing:-8px;color:#a57a41;text-shadow:0 1px 0 #ffefd2}.club{font-family:Georgia,serif;font-size:21px;letter-spacing:10px;padding-left:10px;margin:13px 0}.rainbow{width:92px;height:3px;background:linear-gradient(90deg,#ed3045,#ff9d39,#f4d34b,#54ae79,#4caae0,#7f48bc);margin:14px auto 18px}.brand-cn{font-size:30px;letter-spacing:12px;padding-left:12px}.eyebrow{font-family:Arial,sans-serif;font-size:10px;letter-spacing:3px;color:var(--gold);line-height:1.8;margin:0 0 26px}h1{font-size:35px;font-weight:400;line-height:1.65;letter-spacing:5px;margin:0}h2{font-size:31px;font-weight:400;line-height:1.65;letter-spacing:3px;margin:0 0 26px}.intro{font-size:13px;letter-spacing:4px;margin:22px 0 30px}.primary{border:1px solid var(--gold);color:var(--ink);background:transparent;padding:14px 35px;letter-spacing:3px;font-size:13px;position:relative;z-index:2}.primary span{margin-left:25px}.scroll{color:var(--gold);font-size:10px;letter-spacing:3px;text-decoration:none;margin-top:34px}.scroll span{display:block;font-size:20px;margin-top:10px;animation:down 2s infinite}.arc{position:absolute;width:460px;height:460px;border:1px solid #d4b992;border-radius:50%;right:-360px;bottom:60px;pointer-events:none}.music{position:fixed;right:max(18px,calc((100vw - 640px)/2 + 18px));top:calc(18px + env(safe-area-inset-top));z-index:9;border:1px solid #c8ad8790;background:#f6f0e6e8;backdrop-filter:blur(10px);border-radius:30px;padding:9px 13px;color:var(--ink);font-size:16px}.music span{font-size:10px;margin-left:4px}.music[aria-pressed=true]{box-shadow:0 0 0 4px #c8ad8720}.progress{position:fixed;top:0;left:0;height:2px;background:var(--gold);z-index:10;width:0}.story{text-align:center}.body-copy{font-size:13px;line-height:2.3;color:#7c6854;letter-spacing:1px}.mood{margin:38px 0 0;position:relative;text-align:left}.mood img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}.mood figcaption{font-size:9px;color:#9c8871;margin-top:10px;letter-spacing:1px}.image-word{position:absolute;bottom:48px;left:20px;font-family:Georgia,serif;font-style:italic;color:white;font-size:43px}.vows{background:#eee5d7;padding-top:64px;padding-bottom:45px}.vow{padding:30px 0;border-bottom:1px solid #c8ad8755}.vow:last-child{border:0}.vow span{font:9px Arial,sans-serif;letter-spacing:2px;color:var(--gold)}.vow h2{margin:12px 0;font-size:32px}.vow p{font-size:12px;line-height:2;letter-spacing:1px;margin:0;color:#7c6854}.event{text-align:center}.date{font-family:Georgia,serif;font-size:25px;margin:45px 0 5px;letter-spacing:2px}.date span{color:var(--line);padding:0 4px}.time{font-family:Didot,Georgia,serif;font-size:76px;line-height:1.25;color:#9c7040}.event-label{font-size:10px;letter-spacing:4px;margin:5px 0 36px;color:var(--gold)}.location{padding:25px 0;border-top:1px solid #c8ad8766;border-bottom:1px solid #c8ad8766}.location span{font-size:10px;letter-spacing:4px;color:var(--gold)}.location p{font-size:18px;line-height:1.8;letter-spacing:2px;margin:14px 0 0}.actions{display:flex;gap:12px;margin:25px 0}.actions button{flex:1;background:transparent;border:1px solid var(--line);padding:13px 5px;font-size:12px;color:var(--ink)}.poster-link{background:none;border:0;color:var(--gold);font-size:12px;margin:12px 0 40px}footer p{font-size:11px;letter-spacing:2px}footer small{font:9px Arial,sans-serif;letter-spacing:3px;color:var(--gold)}dialog{border:0;background:var(--paper);padding:15px;max-width:440px;width:92%;max-height:90svh;overflow:auto}dialog::backdrop{background:#302418bc;backdrop-filter:blur(5px)}dialog img{width:100%;display:block}dialog button{position:sticky;top:0;float:right;border:0;background:#f6f0e6e8;color:var(--ink);font-size:26px;width:36px;height:36px}dialog a{display:block;text-align:center;padding:18px;color:var(--ink);font-size:13px}#toast{position:fixed;bottom:35px;left:50%;transform:translateX(-50%);background:#60462cf2;color:white;padding:12px 20px;font-size:12px;border-radius:3px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:20;white-space:nowrap}.reveal{opacity:0;transform:translateY(25px);transition:opacity .9s,transform .9s}.reveal.visible{opacity:1;transform:none}@keyframes down{50%{transform:translateY(5px)}}@media(min-width:600px){section{padding-left:65px;padding-right:65px}h1{font-size:43px}h2{font-size:38px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.scroll span{animation:none}}

.registration{text-align:left;margin:40px 0;padding:35px 0;border-top:1px solid #c8ad8766}.registration h2{font-size:27px}.registration label{display:block;font-size:12px;margin:20px 0 9px}.registration input:not([type=checkbox]){width:100%;border:1px solid var(--line);background:#ffffff50;padding:14px;color:var(--ink);font:16px serif;border-radius:0}.registration .consent{display:flex;align-items:flex-start;gap:9px;line-height:1.9;font-size:11px;color:#7c6854}.consent input{flex-shrink:0;margin-top:4px;accent-color:var(--gold)}.registration .primary{width:100%;margin-top:15px}.registration button:disabled{opacity:.55;cursor:wait}#registrationStatus{font-size:12px;line-height:1.8;min-height:24px}
