:root{
  --ink:#221e1b;
  --muted:#7d756e;
  --line:#e8dfd6;
  --paper:#fcf9f5;
  --card:#fffdf9;
  --brand:#b34f5c;
  --brand-dark:#9f3f4c;
  --rose:#f6e9e8;
  --green:#58b66c;
  --shadow:0 7px 20px rgba(73,53,39,.08);
  --serif:"Cike Serif","Cike Serif Full","Source Han Serif SC","Noto Serif SC",serif;
  --sans:"Cike Sans","Cike Sans Full","Source Han Sans SC","Noto Sans SC",sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{min-height:100%;background:#eee9e3}
body{margin:0;min-height:100%;background:#eee9e3;color:var(--ink);font-family:var(--sans);font-size:14px;font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
img{display:block;max-width:100%}
#app{width:100%;min-height:100dvh;background:var(--paper)}
.page{min-height:100dvh;padding:0 16px calc(92px + env(safe-area-inset-bottom));position:relative;background:radial-gradient(circle at 90% 2%,rgba(231,217,201,.16),transparent 30%),var(--paper)}
.sub-page{padding-bottom:calc(34px + env(safe-area-inset-bottom))}
.has-action-dock{padding-bottom:205px}
.has-bottom-action{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;position:relative}
.inner-topbar{position:sticky;top:0;z-index:20;margin:0 -16px;padding:0 16px;background:rgba(252,249,245,.94);backdrop-filter:blur(16px)}
.brand-name,.page-title{font-family:var(--serif);font-size:21px;font-weight:700;letter-spacing:.08em}
.page-title{position:absolute;left:50%;transform:translateX(-50%);font-family:var(--sans);font-size:18px;letter-spacing:.03em;white-space:nowrap}
.top-icon{width:38px;height:42px;padding:8px;border:0;background:transparent;display:grid;place-items:center}
.points-pill{height:32px;padding:0 12px;border:1px solid #ddd1c6;border-radius:17px;background:rgba(255,255,255,.55);display:flex;align-items:center;gap:3px;color:var(--brand);font-family:var(--serif)}
.points-pill .icon{width:18px;height:18px}
.hero{text-align:center;padding:18px 8px 10px}
.hero h1{font-family:var(--serif);font-size:25px;line-height:1.45;margin:0 0 9px;letter-spacing:.08em}
.hero p{font-family:var(--serif);font-size:13px;color:#776f68;margin:0}
.tabs{height:55px;display:flex;align-items:center;justify-content:space-between;gap:18px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{border:0;background:transparent;padding:16px 4px;color:#534d48;white-space:nowrap;position:relative}
.tab.active{color:var(--brand);font-weight:700}
.tab.active:after{content:"";position:absolute;height:2px;border-radius:2px;background:var(--brand);left:2px;right:2px;bottom:7px}
.template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 11px}
.template-card{border-radius:10px;background:var(--card);overflow:hidden;border:1px solid #eee7df;box-shadow:0 4px 12px rgba(43,34,28,.07)}
.template-card>button{width:100%;border:0;background:transparent;padding:0;text-align:left}
.template-card img{width:100%;aspect-ratio:1/1.12;object-fit:cover}
.template-meta{padding:9px 10px 10px}
.template-meta h3{font-family:var(--serif);font-size:16px;margin:0 0 2px;letter-spacing:.03em}
.template-meta small{color:#8a8179}
.template-meta p{display:flex;justify-content:space-between;align-items:center;margin:4px 0 0;color:var(--brand);font-family:var(--serif);font-size:15px}
.card-points{display:flex;align-items:center;gap:2px}.card-points .icon{width:17px;height:17px}
.ongoing-pill{width:calc(100% - 62px);min-height:48px;margin:14px auto -2px;padding:0 40px;border:0;border-radius:25px;background:linear-gradient(135deg,#bc5864,#a84451);box-shadow:0 6px 16px #9b455030;color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--serif);position:sticky;bottom:78px;z-index:12}
.ongoing-pill .spark{font-size:18px}.ongoing-pill .icon{position:absolute;right:17px}
.bottom-nav{position:fixed;z-index:30;bottom:0;left:0;right:0;height:78px;padding-bottom:env(safe-area-inset-bottom);background:rgba(255,253,249,.96);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);backdrop-filter:blur(16px)}
.nav-item{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#504b46;font-size:11px}
.nav-item.active{color:var(--brand);font-weight:700}.nav-item .icon{width:24px;height:24px}
.nav-item.active .icon-home:before,.nav-item.active .icon-image:before{color:var(--brand)}
.detail-heading{padding:10px 2px 8px}
.detail-heading h1{font-family:var(--serif);font-size:28px;letter-spacing:.05em;margin:0 0 7px}
.detail-heading p{font-family:var(--serif);font-size:14px;line-height:1.7;color:#5f5751;margin:0;max-width:95%}
.feature-strip{display:flex;justify-content:space-between;gap:7px;border-top:1px solid transparent;padding:12px 0 15px;font-size:12px}
.feature-strip span{display:flex;align-items:center;gap:3px;white-space:nowrap}.feature-strip .icon{width:18px;height:18px}
.detail-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding-bottom:8px}
.photo-button{border:0;background:transparent;padding:0;position:relative;overflow:hidden;border-radius:9px}
.detail-gallery .photo-button{aspect-ratio:1.18/1}
.photo-button img{width:100%;height:100%;object-fit:cover}
.action-dock{position:fixed;z-index:25;bottom:0;left:0;right:0;background:rgba(255,252,248,.97);border-top:1px solid var(--line);padding:14px 16px calc(11px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(66,49,37,.07);backdrop-filter:blur(18px)}
.detail-actions{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:9px}
.detail-actions>p{grid-column:1/-1;text-align:center;color:#a39b93;font-size:11px;margin:0}.detail-actions>p .icon{width:14px;height:14px;vertical-align:-2px;transform:scale(.65)}
.pay-choice{height:58px;border:1px solid var(--line);border-radius:8px;background:#fffdfb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-family:var(--serif)}
.pay-choice small{font-family:var(--sans)}.pay-choice strong{font-size:18px;font-weight:500}
.points-choice{flex-direction:row;gap:5px}.points-choice .icon{width:18px}
.primary-btn,.secondary-btn,.wechat-login{height:56px;border-radius:9px;padding:0 16px;font-size:16px;letter-spacing:.03em}
.primary-btn{border:1px solid var(--brand);background:linear-gradient(135deg,#bb5864,#aa4653);color:#fff;box-shadow:0 7px 16px #a8495420}
.secondary-btn{border:1px solid var(--brand);background:rgba(255,255,255,.25);color:var(--brand)}
.primary-btn:disabled,.secondary-btn:disabled{background:#e9e2de;border-color:#e9e2de;color:#a69d96;box-shadow:none;cursor:not-allowed}
.summary-card{width:100%;min-height:86px;padding:10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.54);display:flex;align-items:center;gap:11px;text-align:left;margin:4px 0 14px}
.summary-card img{width:66px;height:66px;border-radius:9px;object-fit:cover}.summary-card>span:nth-child(2){display:flex;flex-direction:column;gap:5px;flex:1}.summary-card strong{font-family:var(--serif);font-size:15px}.summary-card small{color:#968d84}.summary-card>.icon{width:20px}
.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:14px}.mode-switch.single-option{grid-template-columns:1fr}.mode-switch button{height:43px;border:0;border-radius:8px;background:#f4f0eb;color:#6a625c}.mode-switch button.active{background:#fff;border:1px solid var(--brand);color:var(--brand)}
.upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.upload-slot{height:205px;border:1px dashed #ded2c7;border-radius:9px;background:#fdfbf8;position:relative;overflow:hidden}
.upload-slot input{position:absolute;inset:0;z-index:5;width:100%;height:100%;opacity:0}.upload-slot img{width:100%;height:100%;object-fit:cover}
.slot-label{position:absolute;z-index:3;left:11px;top:10px;font-family:var(--serif)}.has-image .slot-label{color:#fff;text-shadow:0 1px 5px #0008}
.slot-hint{position:absolute;left:0;right:0;bottom:28px;text-align:center;color:#9d948c;font-size:12px}.slot-add{position:absolute;right:9px;bottom:8px;width:24px;height:24px;border-radius:50%;background:#77716d;color:#fff;display:grid;place-items:center;font-size:20px;line-height:20px}
.photo-guide{position:absolute;left:50%;top:50%;width:78px;height:112px;transform:translate(-50%,-48%);opacity:.55}
.photo-guide:before{content:"";position:absolute;width:41px;height:49px;left:18px;top:1px;border:1.4px solid #bdaea3;border-radius:50% 50% 47% 47%;box-shadow:-9px -6px 0 -8px #bdaea3}
.photo-guide:after{content:"";position:absolute;width:75px;height:58px;left:1px;bottom:0;border:1.4px solid #bdaea3;border-radius:55% 55% 12% 12%;border-bottom-color:transparent}
.pose-1 .photo-guide{transform:translate(-48%,-48%) rotate(-7deg)}.pose-2 .photo-guide:before{transform:translateY(7px) rotate(12deg)}.pose-3 .photo-guide:before{transform:translateY(-6px) rotate(-15deg)}
.upload-slot.checked:after{content:"✓";position:absolute;z-index:6;right:9px;bottom:9px;width:27px;height:27px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:700}
.guide-link,.text-btn,.share-link,.refresh{border:0;background:transparent;color:var(--brand)}
.guide-link{display:block;margin:11px auto 3px;padding:8px}.guide-link .icon{width:14px;height:14px;vertical-align:-3px}.text-btn{display:block;margin:2px auto;padding:7px}
.consent{display:flex;align-items:flex-start;gap:7px;color:#8f867f;font-size:11px;line-height:1.5;margin:12px 0 3px}.consent input,.login-consent input{appearance:none;width:17px;height:17px;flex:0 0 17px;border:1px solid #98918a;border-radius:50%;margin:0}.consent input:checked,.login-consent input:checked{background:var(--brand);border-color:var(--brand);box-shadow:inset 0 0 0 4px #fff}
.bottom-action{position:fixed;z-index:25;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--paper) 72%,transparent)}
.bottom-action>button{width:100%}
.generation-page{text-align:center;padding-bottom:35px}.generation-page .summary-card{text-align:left}.generation-page h1,.full-generation-page h1,.completed-page h1,.preview-pay-page h1{font-family:var(--serif);font-size:24px;letter-spacing:.06em}
.trial-art-wrap{width:88%;aspect-ratio:1/.9;margin:27px auto -5px;overflow:hidden;mask-image:radial-gradient(ellipse 50% 48% at center,#000 55%,transparent 100%)}.trial-art{width:100%;height:100%;object-fit:cover}
.generation-page h1{margin:2px 0 28px}
.steps{display:flex;justify-content:space-between;position:relative;margin:0 7px 29px}.steps:before{content:"";position:absolute;top:9px;left:12%;right:12%;height:1px;background:#ded7d0}
.step{width:31%;position:relative;color:#a59d96;font-size:12px}.step span{display:block;width:18px;height:18px;margin:0 auto 9px;border-radius:50%;background:#ddd8d2;border:4px solid var(--paper);box-shadow:0 0 0 1px #ded7d0}
.step.done{color:#6c655e}.step.done span{background:#c6bfb5}.step.active{color:var(--brand);font-weight:600}.step.active span{background:var(--brand);box-shadow:0 0 0 2px var(--brand),inset 0 0 0 4px var(--paper)}
.generation-copy{font-family:var(--serif);line-height:1.9;color:#67605a}.roomy-btn{display:block;width:88%;margin:28px auto 0}.refresh{margin-top:24px;color:#978e86;font-size:12px}
.locked-preview{display:block;width:100%;aspect-ratio:1.1/1;margin:12px 0 20px;border:0;padding:0;border-radius:12px;overflow:hidden;position:relative}.locked-preview img{width:100%;height:100%;object-fit:cover;filter:saturate(.9)}.ai-label{position:absolute;right:12px;bottom:12px;padding:8px 10px;background:#24211db0;color:#fff;border-radius:18px;font-size:12px}.ai-label .icon{width:15px;height:15px;vertical-align:-4px;transform:scale(.68)}
.preview-pay-page{text-align:center}.preview-pay-page h1{font-size:22px;margin:22px 0}.point-convert{width:220px;margin:0 auto;text-align:left}.point-convert>div{display:flex;justify-content:space-between;margin:11px 0}.point-convert dt{color:#847b74}.point-convert dd{margin:0;color:var(--brand);font-size:17px}
.unlock-dock{padding-top:7px}.sheet-handle{width:35px;height:4px;border-radius:3px;background:#c9c2bc;margin:0 auto 10px}.unlock-dock h2{font-family:var(--serif);font-size:19px;font-weight:500;margin:5px 0 12px}.unlock-dock .primary-btn,.unlock-dock .secondary-btn{width:100%;height:51px;margin:5px 0}.unlock-dock .text-btn{font-size:12px;color:#827a72}
.full-generation-page h1{margin:24px 0 9px}.progress-copy{color:#625b55}.progress-line,.work-progress{height:4px;border-radius:4px;background:#e5dfd9;overflow:hidden}.progress-line{margin:16px 0 18px}.progress-line span,.work-progress span{display:block;height:100%;background:var(--brand);border-radius:inherit}
.result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.result-grid>*{aspect-ratio:1.04/1}.result-placeholder{position:relative;border:1px solid #eee4dc;border-radius:10px;background:#fbf3f0;overflow:hidden}.result-placeholder .photo-guide{height:88px;transform:translate(-50%,-61%) scale(.72)}.result-placeholder b{position:absolute;left:0;right:0;bottom:19px;text-align:center;color:#907d74;font-weight:400}
.ready-photo i{position:absolute;right:8px;bottom:8px;width:25px;height:25px;border-radius:50%;background:var(--brand);border:2px solid #fff;color:#fff;display:grid;place-items:center;font-style:normal}.leave-note{text-align:center;color:#827a73;margin:28px 0 8px}
.completed-page{text-align:center;padding-bottom:42px}.completed-page h1{margin:11px 0 4px}.completed-page>p{color:#857c75;margin:0 0 18px}.complete-grid{gap:8px}.complete-grid>*{aspect-ratio:1/1.05}.complete-grid .photo-button span{position:absolute;right:6px;top:6px;padding:2px 6px;border-radius:10px;background:#332e29a8;color:#fff;font-size:10px}.completed-page .primary-btn{margin-top:27px}.share-link{margin:17px auto 0;font-size:15px}
.work-tabs{justify-content:flex-start;gap:34px}.works-list{display:flex;flex-direction:column;gap:13px;padding-top:7px}.work-item{border:1px solid var(--line);background:rgba(255,255,255,.5);border-radius:11px;padding:10px;display:grid;grid-template-columns:42% 1fr;gap:13px}.work-cover{border:0;background:transparent;padding:0;border-radius:8px;overflow:hidden;position:relative}.work-cover img{width:100%;height:100%;min-height:150px;object-fit:cover}.work-cover span{position:absolute;left:5px;bottom:5px;padding:2px 5px;border-radius:8px;background:#332e29a0;color:#fff;font-size:9px}
.work-info{min-width:0;position:relative;padding-bottom:38px}.work-info h3{font-family:var(--serif);font-size:18px;margin:5px 0 8px}.work-info p{color:var(--brand);margin:0 0 8px}.work-progress{width:75%;display:inline-block;margin-right:7px}.work-info>small{color:#685f58}.work-info time{display:block;color:#aaa19a;font-size:10px;margin-top:9px;white-space:nowrap}.mini-btn{position:absolute;left:0;bottom:0;height:31px;padding:0 22px;border:1px solid var(--brand);border-radius:16px;background:transparent;color:var(--brand)}
.profile-head{height:112px;display:flex;align-items:center;gap:15px;padding:18px 5px 0}.avatar-image{width:62px;height:62px;border-radius:50%;object-fit:cover;border:1px solid #dfd4ca}.profile-head h1{font-family:var(--serif);font-size:20px}.profile-head .top-icon{margin-left:auto;align-self:flex-start;margin-top:11px}
.points-card{border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.5);overflow:hidden;position:relative;box-shadow:var(--shadow)}.points-card>div:first-child{padding:20px}.points-card h3{font-family:var(--serif);font-size:15px;margin:0 0 11px}.points-card strong{font-family:var(--serif);font-size:49px;font-weight:400}.points-rose{position:absolute;right:40px;top:30px;color:#ecd5d3;font-size:77px;transform:rotate(-20deg)}.points-links{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.points-links button{height:53px;border:0;background:transparent;text-align:left;padding:0 16px;display:flex;align-items:center;justify-content:space-between}.points-links button:first-child{border-right:1px solid var(--line)}.points-links .icon{width:16px;height:16px}
.month-card,.invite-row,.checkout-product,.payment-method,.account-profile{width:100%;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.53);display:flex;align-items:center;text-align:left}.month-card{min-height:92px;margin-top:18px;padding:13px;gap:12px}.month-card>.icon:first-child{width:40px;height:40px;border-radius:50%;background:#f3eadf;padding:9px}.month-card>span:nth-child(2){display:flex;flex-direction:column;gap:5px;flex:1}.month-card small{color:#9b928b}.month-card em{font-style:normal;color:var(--brand)}
.menu-card{margin-top:18px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.5);overflow:hidden}.menu-row{width:100%;height:63px;padding:0 14px;border:0;border-bottom:1px solid var(--line);background:transparent;display:flex;align-items:center;gap:12px;text-align:left}.menu-row:last-child{border-bottom:0}.menu-row>.icon-chevron{margin-left:auto}.menu-row small{margin-left:auto;color:#9b928a}.info-icon{width:22px;height:22px;border:1.5px solid;border-radius:50%;display:grid;place-items:center;font-family:serif}
.login-page{min-height:100dvh;position:relative;overflow:hidden;background:#eee}.login-backdrop{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 43%,rgba(252,249,245,.82) 68%,var(--paper) 85%),url("/assets/flower-1.jpg") center top/cover no-repeat}.login-content{position:absolute;left:0;right:0;bottom:0;padding:0 22px calc(34px + env(safe-area-inset-bottom));text-align:left}.login-content h1{font-family:var(--serif);font-size:38px;letter-spacing:.08em;margin:0 0 5px}.login-content h2{font-family:var(--serif);font-size:21px;font-weight:400;margin:0 0 17px}.login-content>p{color:#756d66;margin:0 0 26px}.wechat-login{width:100%;border:0;border-radius:28px;background:linear-gradient(135deg,#ba5663,#aa4552);color:#fff;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 8px 20px #a8495430}.wechat-login .icon{transform:scale(1.12)}
.login-consent{display:flex;justify-content:center;align-items:flex-start;gap:7px;margin-top:25px;color:#7f7770;font-size:11px;line-height:1.5}.login-consent button{border:0;background:transparent;color:var(--brand);padding:0}
.balance-hero{height:145px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.47);padding:25px;position:relative;overflow:hidden}.balance-hero span{font-family:var(--serif);font-size:16px}.balance-hero strong{display:block;font-family:var(--serif);font-size:54px;font-weight:400;margin-top:5px}.balance-hero strong small{font-size:18px;color:var(--brand);margin-left:8px}.balance-hero>i{position:absolute;right:23px;bottom:-23px;color:#e9d6c9;font-size:105px;font-style:normal}.section-label{font-family:var(--serif);font-size:17px;margin:27px 4px 13px}
.ledger-card{border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.45);padding:0 14px}.ledger-row{min-height:75px;display:grid;grid-template-columns:44px 1fr auto;align-items:center;border-bottom:1px solid var(--line)}.ledger-row:last-child{border-bottom:0}.ledger-icon{width:36px;height:36px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center}.ledger-icon.minus{background:#777}.ledger-row>span:nth-child(2){display:flex;flex-direction:column;gap:4px}.ledger-row time{color:#9d958e;font-size:11px}.ledger-row>b{color:var(--brand);font-size:19px}.ledger-row>b.minus{color:#2e2a26}.end-note{text-align:center;color:#a39a93;margin-top:27px}
.pack-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.pack-card{height:169px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.48);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.pack-card.active{border:1.5px solid var(--brand)}.pack-card>i{position:absolute;right:8px;top:8px;width:25px;height:25px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-style:normal}.pack-card strong{font-family:var(--serif);font-size:31px;font-weight:400}.pack-card strong small{font-size:15px;margin-left:4px}.pack-card b{font-family:var(--serif);font-size:23px;font-weight:400;margin:7px 0}.pack-card span{background:#faeeed;color:var(--brand);border-radius:10px;padding:3px 9px;font-size:11px}.invite-row{height:80px;margin-top:16px;padding:12px;gap:12px}.invite-row>.icon:first-child{width:40px;height:40px;border-radius:50%;padding:9px;background:#f3eadf}.invite-row>span:nth-child(2){display:flex;flex:1;flex-direction:column;gap:5px}.invite-row small{color:#938a83}
.month-hero{height:280px;border-radius:11px;overflow:hidden;position:relative}.month-hero img{width:100%;height:100%;object-fit:cover}.month-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#372c2680,transparent 70%)}.month-hero>div{position:absolute;z-index:2;left:20px;top:24px;color:#fff}.month-hero h1{font-family:var(--serif);font-size:28px;margin:0 0 8px}.month-hero p{margin:0}.month-hero>span{position:absolute;z-index:2;left:16px;bottom:17px;color:#fff;background:#433b35b8;border-radius:5px;padding:8px 12px}
.benefit-card{border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.8);padding:20px 16px;margin-top:-8px;position:relative}.benefit-card h2{font-family:var(--serif);font-size:18px;margin:0 0 9px}.benefit-card>div{height:66px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:13px}.benefit-card>div:last-child{border-bottom:0}.benefit-card i{width:37px;height:37px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-style:normal}.benefit-card span{display:flex;flex-direction:column;gap:4px}.benefit-card small{color:#978e86}.month-price{margin-top:15px;border:1px solid var(--line);border-radius:13px;padding:17px 15px;text-align:center;background:rgba(255,255,255,.54)}.month-price>div{margin-bottom:15px}.month-price strong{font-family:var(--serif);font-size:34px;color:var(--brand)}.month-price span{color:#827a72}.month-price .primary-btn{width:100%}.month-price>small{display:block;color:#999089;margin-top:13px}.month-price .icon{width:14px;height:14px;vertical-align:-4px;transform:scale(.6)}
.checkout-product{padding:15px;gap:14px;margin-top:10px}.checkout-product img{width:95px;height:95px;border-radius:9px;object-fit:cover}.checkout-product>span{display:flex;flex:1;flex-direction:column;gap:10px}.checkout-product strong{font-family:var(--serif);font-size:16px}.checkout-product small{color:#7d756e}.checkout-product b{font-family:var(--serif);font-size:20px;color:var(--brand)}
.payment-method{height:88px;padding:14px;gap:13px;border-color:var(--brand)}.payment-method>.icon{width:42px;height:42px;transform:scale(1.4);transform-origin:center}.payment-method strong{font-size:18px}.payment-method b{margin-left:auto;font-size:20px}.payment-method i{width:23px;height:23px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-style:normal}.secure-note{text-align:center;color:#a39b94}.secure-note .icon{width:14px;height:14px;vertical-align:-4px;transform:scale(.65)}
.settings-card{margin-top:12px}.account-profile{height:115px;padding:15px;gap:15px}.account-profile>span:nth-child(2){display:flex;flex:1;flex-direction:column;gap:8px}.account-profile strong{font-family:var(--serif);font-size:18px}.account-profile small{color:var(--green)}.account-menu{margin-top:20px}.danger-row{color:#5a514a}.phone-icon,.shield-icon,.power-icon{width:22px;height:22px;display:grid;place-items:center;font-size:21px}
.about-brand{text-align:center;padding:50px 0 27px}.about-brand h1{font-family:var(--serif);font-size:38px;color:#72564b;margin:0}.about-brand sup{font-size:14px}.about-brand p{color:#876e64}.flower-mark{font-size:51px;color:#d8bda6;margin:22px 0}.about-brand>span{color:#736a63}
.legal-content{margin-top:14px;padding:22px 18px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.5);font-family:var(--serif);font-size:15px;line-height:1.9;color:#514a44}.legal-content p{margin:0 0 17px}.legal-content .legal-version{font-family:var(--sans);font-size:12px;color:#9a9088;border-bottom:1px solid var(--line);padding-bottom:12px}
.invite-heading{text-align:center;padding:38px 0 24px}.invite-heading h1{font-family:var(--serif);font-size:27px;margin:0 0 13px}.invite-heading sup{color:#caa979}.invite-heading p{color:#716861}.invite-heading b{color:var(--brand)}
.invite-card{height:290px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#fffaf3,#f8efe6);position:relative;display:grid;place-items:center;overflow:hidden}.invite-flowers{position:absolute;left:0;right:0;top:25px;text-align:center;font-size:69px;color:#d7b997}.invite-card>div:last-child{position:relative;z-index:2;width:72%;margin-top:55px;padding:25px;background:rgba(255,253,249,.93);border:1px solid #e0d2c6;border-radius:9px;text-align:center;box-shadow:var(--shadow)}.invite-card span{color:#786e66}.invite-card strong{display:block;font-family:var(--sans);font-size:28px;margin:13px 0;letter-spacing:.02em}.invite-card button{height:38px;padding:0 18px;border:1px solid var(--line);border-radius:20px;background:#fffaf6;color:#746a63}.share-methods{margin-top:34px;text-align:center;color:#8a8179}.share-methods>p{display:flex;align-items:center;gap:14px}.share-methods>p:before,.share-methods>p:after{content:"";height:1px;background:var(--line);flex:1}.share-methods>div{display:grid;grid-template-columns:repeat(3,1fr);margin-top:21px}.share-methods button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:8px}.share-methods button i{width:54px;height:54px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:25px}.share-methods .icon{transform:scale(1.4)}
.toast{position:fixed;z-index:120;left:50%;bottom:100px;transform:translate(-50%,14px);background:rgba(35,31,28,.92);color:#fff;border-radius:8px;padding:11px 16px;opacity:0;pointer-events:none;transition:.2s;white-space:nowrap;max-width:86vw}.toast.show{opacity:1;transform:translate(-50%,0)}
.boot-loader{min-height:100dvh;display:grid;place-content:center;text-align:center;color:#786f68}.boot-loader span{width:29px;height:29px;border:2px solid #eaded8;border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;margin:auto}.boot-loader p{font-family:var(--serif)}.empty{text-align:center;color:#918880;padding:70px 0;line-height:2}
#lightbox{display:none;position:fixed;z-index:200;inset:0;color:#fff}#lightbox.open{display:block}.lightbox-backdrop{position:absolute;inset:0;background:rgba(12,10,9,.96)}.lightbox-toolbar{position:absolute;z-index:3;left:0;right:0;top:0;height:64px;padding:env(safe-area-inset-top) 18px 0;display:flex;align-items:center;justify-content:space-between}.lightbox-toolbar button,.lightbox-toolbar a{width:42px;height:42px;border:0;background:transparent;color:#fff;text-decoration:none;display:grid;place-items:center;font-size:30px}.lightbox-toolbar a{font-size:14px}.lightbox-stage{position:absolute;inset:64px 0 50px;display:flex;align-items:center;justify-content:center;touch-action:pan-y pinch-zoom}.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain}.lightbox-stage p{position:absolute;bottom:-39px;color:#bdb7b2;font-size:11px}.lightbox-arrow{position:absolute;z-index:4;top:50%;width:45px;height:60px;border:0;background:#0004;color:#fff;font-size:39px}.lightbox-arrow.prev{left:0}.lightbox-arrow.next{right:0}.lightbox-open{overflow:hidden}
@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:520px){
  #app{max-width:430px;margin:0 auto;min-height:100dvh;box-shadow:0 0 42px rgba(67,52,42,.13)}
  .bottom-nav,.action-dock,.bottom-action{left:50%;right:auto;width:430px;transform:translateX(-50%)}
  #lightbox{left:50%;right:auto;width:430px;transform:translateX(-50%)}
}
@media(max-width:365px){
  .page{padding-left:13px;padding-right:13px}.inner-topbar{margin-left:-13px;margin-right:-13px;padding-left:13px;padding-right:13px}
  .feature-strip{font-size:10px}.upload-slot{height:182px}.detail-actions{grid-template-columns:1fr 1fr}.detail-actions .primary-btn{grid-column:1/-1}.has-action-dock{padding-bottom:250px}.template-meta{padding-left:8px;padding-right:8px}.template-meta p{font-size:13px}
}
.login-backdrop{background-image:linear-gradient(to bottom,transparent 43%,rgba(252,249,245,.82) 68%,var(--paper) 85%),url("/assets/result-1.jpg")}
.avatar-placeholder{width:62px;height:62px;flex:0 0 62px;border-radius:50%;border:1px solid #dfd4ca;background:#f2ede7;display:grid;place-items:center;color:#a99f96}.avatar-placeholder .icon{transform:scale(1.45)}
