@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--ink:#352c49;--muted:#746c82;--purple:#775ba5;--lavender:#ede7f7;--cream:#fcfaf7;--line:#e5deed;--pink:#f6e5ee}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'Be Vietnam Pro',sans-serif;font-size:14px;line-height:1.7}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ab79d4;outline-offset:4px}button{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2{font-family:'Playfair Display',Georgia,serif;line-height:1.16;letter-spacing:-1.8px}h2{font-size:42px;font-weight:500}h2 em{color:var(--purple);font-weight:500}p{color:var(--muted)}.topbar{height:88px;max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px;padding:0 24px}.brand{font-size:23px;font-weight:800;letter-spacing:-1px}.brand-icon{color:var(--purple);margin-right:8px}.brand-dot{color:#bb8db6}.topbar nav{display:flex;gap:32px;font-size:12px;font-weight:500}.topbar nav a:hover{color:var(--purple)}.share{border:1px solid var(--line);border-radius:30px;background:transparent;padding:9px 17px;font-size:11px}main{max-width:1152px;margin:auto}.intro-line{display:flex;gap:18px;align-items:center;padding:28px 0 24px;font-size:10px;letter-spacing:1.7px;color:var(--muted)}.intro-line span:last-child{letter-spacing:0;font-size:11px}.tiny-star{color:#af92ba;font-size:18px}.opening{display:grid;grid-template-columns:1fr 1fr;gap:76px;align-items:center;padding-bottom:40px}.portrait{height:620px;position:relative;border-radius:180px 180px 14px 14px;overflow:hidden;background:#c7b3d2}.portrait:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#24192dd9);pointer-events:none}.portrait>img{width:100%;height:100%;object-fit:cover;object-position:42% center}.portrait-label{position:absolute;bottom:36px;left:34px;color:#fff;z-index:1}.portrait-label>span{font-size:9px;letter-spacing:3px;opacity:.8}.portrait-label strong{font-family:'Playfair Display',serif;display:block;font-size:31px;font-weight:500;margin-top:8px}.photo-tag{position:absolute;top:35px;right:20px;writing-mode:vertical-rl;color:#fff9;font-size:9px;letter-spacing:3px}.eyebrow{font-size:9px;letter-spacing:2.1px;color:var(--purple);font-weight:600;display:inline-block}.welcome h1{font-size:74px;margin:18px 0 20px;font-weight:500;letter-spacing:-3px}.welcome h1>span{display:block;font-style:italic;color:var(--purple)}.sparkle{display:inline-block;font-size:38px;margin-left:27px;vertical-align:top;transform:rotate(12deg);color:#bc9bc8}.welcome-copy{font-size:13px;line-height:1.9}.promise{display:flex;gap:17px;margin:19px 0 27px;font-size:10px;color:#7d6898}.connect{scroll-margin-top:24px}.section-mini{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.5px;margin-bottom:12px}.section-mini>span:last-child{font-family:Georgia,serif;font-style:italic;letter-spacing:0;color:var(--muted);font-size:12px}.contact{display:flex;align-items:center;gap:15px;border-radius:12px;padding:16px 20px;margin-bottom:10px;transition:transform .2s,box-shadow .2s}.contact:hover,.donate-card:hover{transform:translateY(-3px);box-shadow:0 8px 22px #49315c12}.primary{background:var(--purple);color:white;box-shadow:0 6px 18px #775ba51f}.contact strong,.donate-card strong{display:block;font-size:13px;font-weight:600}.contact small,.donate-card small{display:block;font-size:10px;opacity:.75;margin-top:2px}.app-icon{display:grid;place-items:center;background:#ffffff24;width:34px;height:34px;border-radius:10px;font-size:20px;font-weight:800}.arrow{margin-left:auto;font-size:19px;font-weight:400}.discord{background:var(--lavender)}.discord .app-icon{background:white;color:var(--purple)}.social-row{display:flex;justify-content:space-between;margin-top:16px;font-size:10px;color:var(--muted)}.social-row a:hover{text-decoration:underline}.donate-section{display:grid;grid-template-columns:1fr 1.18fr;gap:55px;background:#f1eaf6;border:1px solid #e8dfef;border-radius:18px;padding:42px 45px;margin:8px 0 80px;position:relative;overflow:hidden}.donate-intro{position:relative;padding-right:75px}.donate-intro h2{font-size:35px;margin:12px 0 15px}.donate-intro p{font-size:11px}.sticker{object-fit:contain;width:95px;height:95px}.donate-sticker{position:absolute;bottom:0;right:0;transform:rotate(-10deg)}.donate-methods{display:flex;flex-direction:column;gap:10px}.donate-card{width:100%;border:1px solid #e8deee;background:#fffdfd;display:flex;align-items:center;gap:15px;padding:16px 20px;text-align:left;border-radius:12px;transition:transform .2s,box-shadow .2s}.payment-logo{display:grid;place-content:center;width:37px;height:37px;background:#eee5f3;border-radius:10px;color:var(--purple);font-size:24px;line-height:1}.momo-logo{background:#ae246c;color:white;font-size:12px;font-weight:800;text-align:center;line-height:.9;letter-spacing:1px}.bank-logo{background:#e4eedf;color:#397543;font-style:italic;font-family:Georgia,serif;font-weight:bold}.donate-note{font-size:9px;margin-top:2px;text-align:center}.section{margin-bottom:80px}.section-heading{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:30px}.section-heading h2{margin-top:14px}.section-heading p{font-size:11px}.section-aside{padding-bottom:4px}.handmade{font-size:9px;display:block;color:var(--purple);margin-top:16px;letter-spacing:.7px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service{padding:27px 26px 20px;border:1px solid var(--line);border-radius:14px;position:relative;display:flex;flex-direction:column;min-height:262px;background:#fffdfb}.service-icon{color:var(--purple);font-size:29px;line-height:1;display:block;margin-bottom:24px}.service-number{position:absolute;top:25px;right:25px;font-size:10px;color:#b4a8c3}.service h3{font-size:15px;letter-spacing:-.3px;margin-bottom:10px;font-weight:600}.service p{font-size:11px;line-height:1.9;margin-bottom:24px}.service button{display:flex;justify-content:space-between;width:100%;border:0;border-top:1px solid var(--line);background:transparent;padding:13px 0 0;margin-top:auto;color:var(--purple);font-size:10px;font-weight:600}.service-special{background:#eee8f4;padding-top:95px}.service-special .sticker{position:absolute;right:18px;top:5px;width:100px;height:100px}.process{display:flex;align-items:center;justify-content:center;gap:34px;padding:22px 16px;border-bottom:1px solid var(--line);font-size:10px;color:var(--muted)}.process b{font-weight:400;color:#a294ae;margin-right:9px;font-family:Georgia,serif;font-size:15px}.process i{font-style:normal;color:#b7a7c6}.cosplay{padding-top:8px}.gallery{display:grid;grid-template-columns:1.45fr 1fr 1fr;grid-template-rows:220px 220px;gap:13px}.gallery button{padding:0;border:0;background:#e2d9e9;overflow:hidden;border-radius:10px;position:relative}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery button:hover img{transform:scale(1.045)}.gallery-main{grid-row:span 2}.gallery-main img{object-position:43% center}.gallery-main>span{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#1c1226c7);padding:60px 22px 22px;color:white;text-align:left;font-family:'Playfair Display',serif;font-size:24px}.gallery-main small{font-family:'Be Vietnam Pro',sans-serif;display:block;font-size:9px;letter-spacing:1px;margin-top:4px}.faq{display:grid;grid-template-columns:1fr 1.65fr;gap:65px;border-top:1px solid var(--line);padding-top:54px}.faq h2{font-size:36px;margin-top:13px}.faq .sticker{margin-top:20px}.faq-list details{border-bottom:1px solid var(--line);padding:19px 0}.faq-list details:first-child{padding-top:0}.faq-list summary{cursor:pointer;font-size:12px;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:15px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';color:var(--purple);font-size:20px;font-weight:400}.faq-list details[open] summary:after{content:'−'}.faq-list details p{font-size:11px;line-height:1.9;padding-top:13px}.closing{text-align:center;border-top:1px solid var(--line);padding:38px 20px 45px}.closing>span{font-size:25px;color:var(--purple)}.closing p{font-size:11px;margin:12px 0 8px}.closing a{font-family:'Playfair Display',serif;font-size:23px;color:var(--purple);font-style:italic}footer{max-width:1152px;margin:auto;display:flex;flex-wrap:wrap;gap:15px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:24px 0 30px;color:var(--muted);font-size:9px}footer .brand{font-size:19px;color:var(--ink)}footer small{width:100%;text-align:center;font-size:9px;color:#93899d}.mobile-bar{display:none}dialog{border:1px solid #e5d9ee;border-radius:22px;background:var(--cream);padding:28px;width:min(520px,calc(100% - 30px));max-height:88dvh;color:var(--ink);box-shadow:0 30px 100px #25163155}dialog::backdrop{background:#23162d99;backdrop-filter:blur(6px)}body:has(dialog[open]){overflow:hidden}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:17px}.dialog-heading button{border:0;background:#eee5f4;border-radius:50%;width:32px;height:32px;font-size:22px}.dialog-heading .eyebrow{font-size:8px}dialog h2{font-size:29px;letter-spacing:-.8px;margin-bottom:22px}dialog p{font-size:12px}dialog .qr{width:245px;margin:0 auto 18px;border-radius:10px}dialog .recipient{background:#f0eaf5;padding:15px;border-radius:12px;margin:15px 0;display:flex;justify-content:space-between;align-items:center;gap:15px}.recipient strong{display:block;font-size:18px;letter-spacing:1px}.recipient small{font-size:10px}.copy-small{border:1px solid #d7c8e3;border-radius:8px;background:white;padding:8px 12px;font-size:11px}.full-button,.dialog-actions a{border:0;border-radius:10px;padding:13px 16px;display:block;background:var(--purple);color:white;font-size:12px;font-weight:500;text-align:center;width:100%}.dialog-actions{display:flex;gap:10px;margin-top:12px}.dialog-actions a{background:var(--lavender);color:var(--purple)}.form-note{font-size:10px!important;margin:13px 0;color:var(--muted)}label{font-size:11px;display:block;margin-bottom:14px}input,textarea,select{display:block;width:100%;margin-top:7px;border:1px solid #ded3e7;border-radius:9px;background:white;color:var(--ink);padding:11px 12px;font-size:12px}textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.text-button{border:0;background:none;color:var(--purple);font-size:11px;padding:10px 0}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);background:#3d2d4f;color:white;border-radius:30px;max-width:90%;padding:12px 24px;font-size:12px;z-index:20;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}#photo-dialog{max-width:96vw;width:auto;background:#160f1d;padding:0;border:0;overflow:hidden}#large-photo{max-height:82dvh;max-width:90vw;object-fit:contain}.photo-close,.photo-nav{position:absolute;border:1px solid #ffffff44;color:white;background:#271a3b99;border-radius:50%;z-index:2;display:grid;place-items:center}.photo-close{right:12px;top:12px;width:38px;height:38px;font-size:26px}.photo-nav{top:48%;height:42px;width:42px;font-size:30px}.prev{left:12px}.next{right:12px}#photo-count{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);color:white;background:#271a3b99;border-radius:20px;padding:3px 13px;font-size:11px}
@media(min-width:1400px){.opening{gap:95px}.portrait{height:650px}.welcome h1{font-size:82px}}@media(max-width:1200px){main,footer{margin-left:35px;margin-right:35px}.opening{gap:45px}.portrait{height:590px}.welcome h1{font-size:68px}.donate-section{gap:30px;padding:35px}.intro-line{font-size:9px}}@media(max-width:850px){.topbar{height:72px}.topbar nav{gap:18px;font-size:10px}.opening{gap:28px}.portrait{height:550px;border-radius:130px 130px 12px 12px}.welcome h1{font-size:56px}.promise{gap:9px;font-size:8px}.contact{padding:13px}.contact strong{font-size:11px}.contact small{font-size:9px}.welcome-copy{font-size:11px}.social-row{font-size:9px;gap:12px}.donate-section{gap:22px;padding:27px}.donate-intro{padding-right:20px}.donate-intro h2{font-size:29px}.donate-sticker{position:relative;height:75px;width:75px;margin-left:auto}.donate-card{padding:14px}.donate-card strong{font-size:11px}.donate-card small{font-size:9px}.section-heading h2{font-size:35px}.service{padding:23px 19px 17px}.service h3{font-size:13px}.gallery{grid-template-rows:180px 180px}.process{gap:15px;font-size:9px}.faq{gap:35px}.service-special{padding-top:95px}}@media(max-width:620px){html{scroll-padding-top:20px}body{font-size:13px}.topbar{height:68px;padding:0 20px}.brand{font-size:21px}.topbar nav{display:none}.share{font-size:10px;padding:7px 13px}main,footer{margin-left:20px;margin-right:20px}.intro-line{padding:21px 0 18px;font-size:8px;letter-spacing:1.3px;gap:12px}.intro-line span:last-child{display:none}.opening{display:flex;flex-direction:column;gap:25px;padding-bottom:24px}.portrait{width:100%;height:315px;border-radius:140px 140px 12px 12px}.portrait>img{object-position:center 40%}.portrait-label{bottom:22px;left:24px}.portrait-label strong{font-size:25px;margin-top:3px}.portrait-label>span{font-size:8px}.photo-tag{top:50px;font-size:8px}.welcome{width:100%}.welcome>.eyebrow{font-size:8px}.welcome h1{font-size:53px;margin:9px 0 12px}.welcome h1>span{display:inline;margin-left:12px}.sparkle{font-size:24px;margin-left:8px}.welcome-copy{font-size:12px}.promise{font-size:9px;gap:18px;margin:15px 0 22px}.contact{padding:15px 17px}.contact strong{font-size:13px}.contact small{font-size:10px}.social-row{font-size:10px;margin:14px 0 8px}.section-mini{font-size:8px}.donate-section{display:block;padding:25px 21px;margin:10px 0 50px;border-radius:15px}.donate-intro{padding:0 70px 23px 0}.donate-intro .eyebrow{font-size:7px;letter-spacing:1.2px}.donate-intro h2{font-size:31px;margin:10px 0 12px}.donate-intro p{font-size:10px}.donate-sticker{position:absolute;right:-4px;bottom:20px;width:85px;height:85px}.donate-card{padding:14px}.donate-card strong{font-size:12px}.donate-card small{font-size:9px}.donate-note{font-size:8px;margin-top:5px}.section{margin-bottom:50px}.section-heading{display:block;margin-bottom:22px}.section-heading h2{font-size:35px;margin:10px 0 17px}.section-heading p{font-size:10px}.handmade{font-size:8px;margin-top:13px}.service-grid{grid-template-columns:1fr 1fr;gap:11px}.service{padding:20px 15px 14px;min-height:262px}.service-icon{font-size:25px;margin-bottom:20px}.service-number{right:15px;top:20px;font-size:8px}.service h3{font-size:12px;line-height:1.6}.service p{font-size:10px;line-height:1.8;margin-bottom:18px}.service button{font-size:9px}.service-special{padding-top:88px}.service-special .sticker{width:85px;height:85px;right:10px;top:5px}.process{padding:20px 0;gap:8px;font-size:8px;align-items:flex-start}.process span{flex:1}.process b{display:block;font-size:16px;margin-bottom:5px}.process i{padding-top:20px}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:300px 165px 165px;gap:10px}.gallery-main{grid-column:span 2;grid-row:span 1}.gallery-main img{object-position:center 30%}.gallery-main>span{font-size:24px;padding:50px 20px 17px}.faq{display:block;padding-top:30px}.faq>div:first-child{position:relative;margin-bottom:25px}.faq h2{font-size:33px}.faq .sticker{position:absolute;right:15px;bottom:0;height:90px;width:90px;margin:0}.faq-list summary{font-size:11px}.faq-list details{padding:17px 0}.closing{padding:30px 5px}.closing a{font-size:21px}footer{padding-bottom:100px;font-size:8px;gap:10px}footer .brand{font-size:18px}footer small{font-size:8px}.mobile-bar{position:fixed;bottom:0;left:0;right:0;display:flex;gap:10px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:#fcfaf7ee;backdrop-filter:blur(15px);border-top:1px solid var(--line);z-index:5}.mobile-bar a{border-radius:10px;text-align:center;padding:12px;font-size:11px;background:var(--purple);color:white;flex:2}.mobile-bar a:last-child{flex:1;color:var(--purple);background:var(--lavender)}.toast{bottom:90px;font-size:11px}dialog{padding:23px 20px}dialog h2{font-size:26px}.dialog-actions a{font-size:11px}.form-row{gap:10px}#large-photo{max-width:96vw}.photo-nav{height:34px;width:34px}.photo-close{width:32px;height:32px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
