/* v41: quiet writing, progressive disclosure, consistent mobile navigation. */
:root{--ui-ink:#203b4d;--ui-muted:#566b75;--ui-border:#d5dedb;--ui-paper:#fffefa;--ui-accent:#b74636;--ui-focus:#315e69;--ui-radius:16px}
:where(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--ui-focus);outline-offset:4px}
.v41-navigation{display:none;position:relative;text-align:left;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.v41-navigation>summary{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 8px;cursor:pointer;list-style:none;border-radius:10px;color:var(--ui-ink);font-size:13px;font-weight:600}
.v41-navigation>summary::-webkit-details-marker{display:none}
.v41-navigation[open]>summary{background:#edf2ef}
.topbar .v41-navigation .v41-nav-links,.v41-navigation .v41-nav-links{display:grid;position:absolute;z-index:80;top:calc(100% + 10px);right:0;width:190px;padding:8px;background:var(--ui-paper);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:0 14px 40px #203b4d20;gap:2px}
.v41-nav-links a{display:flex;align-items:center;min-height:46px;padding:8px 14px;border-radius:9px;text-decoration:none;font-size:14px;color:var(--ui-ink);white-space:nowrap}
.v41-nav-links a:hover,.v41-nav-links a[aria-current=page]{background:#edf2ef;color:#244c43}
.primary-button,.shared-primary{background:var(--ui-accent);color:#fff}
.primary-button:hover,.shared-primary:hover{background:#9f3c2e}
.write-layout{grid-template-columns:minmax(240px,.7fr) minmax(0,1.8fr);gap:52px;width:min(1160px,100% - 64px);margin:34px auto 88px}
.write-intro{padding-top:18px;min-width:0}
.write-intro .back-button{margin-bottom:24px}
.write-intro h1{font-size:clamp(34px,3vw,44px);line-height:1.4;letter-spacing:.025em}
.write-intro>p{font-size:15px;line-height:1.85;color:var(--ui-muted)}
.letter-form{min-width:0;border-radius:20px;padding:30px 34px;gap:18px;background:#fffefa;box-shadow:0 14px 45px #203b4d08}
.letter-form .write-stage-group{gap:18px;min-width:0}
.letter-form input,.letter-form select,.letter-form textarea{min-width:0;font-size:16px;color:var(--ui-ink)}
.letter-form textarea[maxlength="5000"]{min-height:300px;line-height:1.9;resize:vertical}
.letter-form label>span{font-size:14px}
.letter-form .delivery-help{font-size:13px;line-height:1.7;gap:6px}
.letter-form .v27-price-clarity{display:grid;grid-template-columns:1fr auto;align-items:center;padding:12px 16px;gap:5px;border-radius:12px;background:#f3f5ef;border-color:#dbe4d6}
.letter-form .v27-price-clarity>span{font-size:12px;line-height:1.5}
.letter-form .v27-price-clarity>strong{font-size:15px;line-height:1.6;color:#315442}
.letter-form .v27-price-clarity>small{grid-column:1/-1;font-size:12px;line-height:1.7;color:var(--ui-muted)}
.letter-form .v27-draft-bar{gap:8px;padding:0;min-height:32px;flex-wrap:wrap;font-size:12px;color:var(--ui-muted)}
.letter-form [data-v27-recovery-actions]{display:flex;gap:6px}
.letter-form .v27-draft-bar button{min-width:44px;min-height:44px;padding:8px 10px;font-size:13px;text-decoration:underline;text-underline-offset:4px}
.letter-form details.letter-starters{padding:0;border:1px solid var(--ui-border);border-radius:12px;background:#fafbf8}
.letter-form .letter-starters-heading{min-height:54px;padding:12px 16px;cursor:pointer;list-style:none;position:relative;padding-right:50px}
.letter-starters-heading::-webkit-details-marker{display:none}
.letter-starters-heading:after{content:"展开";font-size:12px;position:absolute;right:16px;top:16px;color:var(--ui-muted)}
.letter-starters[open]>.letter-starters-heading:after{content:"收起";font-size:12px}
.letter-form .letter-starters-heading strong{font-size:14px;color:var(--ui-ink)}
.letter-form .letter-starters-heading small{font-size:12px;color:var(--ui-muted);line-height:1.7}
.letter-form .letter-starters:not([open])>.letter-starters-heading small{display:none}
.letter-form .letter-starter-list{padding:0 14px 14px;gap:8px}
.letter-form .letter-starter-list button{min-height:44px;font-size:13px;line-height:1.5;border-radius:9px;padding:9px 12px}
.letter-form .v27-writing-guide{margin:0 14px 14px;padding:14px;background:#fff;border:1px solid var(--ui-border);border-radius:10px}
.letter-form .v27-mode-tabs button{min-height:44px;font-size:13px;border-radius:8px}
.letter-form .v27-quick-guide{gap:6px}
.letter-form .v27-quick-guide button{min-height:44px;font-size:13px;line-height:1.65;text-align:left}
.letter-form .v27-deep-guide label{font-size:13px;line-height:1.8}
.letter-form .v27-deep-guide textarea{font-size:16px}
.v41-public-slot{min-width:0}
.letter-form .v28-public-release{padding:0;margin:0;border:1px solid var(--ui-border);border-radius:12px;background:#fafbf8;min-width:0}
.v41-privacy-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:58px;padding:14px 16px;cursor:pointer;font-size:14px;color:var(--ui-ink);list-style:none}
.v41-privacy-disclosure>summary::-webkit-details-marker{display:none}
.v41-privacy-disclosure>summary:after{content:"展开";font-size:12px;color:var(--ui-muted)}
.v41-privacy-disclosure[open]>summary:after{content:"收起";font-size:12px}
.v41-privacy-disclosure>summary strong{margin-left:auto;font-size:12px;font-weight:500;color:#315442;text-align:right;line-height:1.7}
.v41-privacy-body{padding:4px 16px 16px}
.v41-privacy-body .v28-public-heading{display:block;margin-bottom:14px}
.v41-privacy-body .v28-public-heading>div>strong,.v41-privacy-body .v28-private-badge,.v41-privacy-body .v29-unified-note{display:none}
.v41-privacy-body .v28-public-heading span{font-size:13px;line-height:1.8;color:var(--ui-muted)}
.letter-form .v28-public-options{grid-template-columns:1fr;gap:8px}
.letter-form .v28-public-option{min-height:64px;padding:12px 12px 12px 40px;border-radius:10px;font-size:14px}
.letter-form .v28-public-option input{width:18px;height:18px;top:14px}
.letter-form .v28-public-option strong{font-size:14px;line-height:1.7}
.letter-form .v28-public-option small,.letter-form .v28-public-rule span{font-size:12px;line-height:1.85;color:var(--ui-muted)}
.letter-form .v28-public-extra{margin-top:16px;gap:12px}
.letter-form .v28-public-preview{min-height:48px;font-size:14px}
.letter-form .v28-public-rule{margin-top:16px;padding-top:14px}
.letter-form .v28-public-rule a{display:inline-flex;align-items:center;min-height:44px;font-size:13px}
.letter-form .submit-button{min-height:54px;border-radius:12px;font-size:16px}
.v41-field-error{display:block;color:#ac3027;font-size:13px;line-height:1.8;margin-top:4px}
.letter-form [aria-invalid=true]{border-color:#ac3027}
.v28-public-dialog{max-height:90dvh;overflow-y:auto}
.v28-public-dialog .v28-public-dialog-close{min-width:44px;min-height:44px}
.v28-public-dialog .v28-dialog-actions button{min-height:48px}
.wish-stage-cardview .wish-subtle-button,.wish-stage-cardview .wish-like-button,.wish-stage-cardview .wish-bless-button,.wish-stage-cardview .wish-report>summary{min-height:44px;min-width:44px}
.shared-heading{padding-top:32px;padding-bottom:22px}
.shared-heading h1{line-height:1.45}
.shared-heading>p{font-size:15px;line-height:1.85;color:var(--ui-muted)}
.local-boundary{font-size:13px;line-height:1.85;border-radius:12px;padding:14px 20px}
.local-boundary>strong{display:block;font-weight:500;color:var(--ui-ink)}
.local-boundary summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--ui-muted);text-decoration:underline;text-underline-offset:4px}
.local-boundary p{margin:0 0 8px}
.shared-progress li{font-size:12px;line-height:1.6;min-width:0;opacity:1;color:#596d66}
.shared-progress li.is-active{color:#725820;border-color:#bda979}
.shared-panel,.v39-seal-review{scroll-margin-top:24px}
.shared-panel .panel-copy h2{text-wrap:balance}
.wish-cards-page .wish-privacy-note,.wish-cards-page .wish-compose-meta,.wish-cards-page .wish-public-preview>span{font-size:12px}
.shared-form input,.shared-form select,.shared-form textarea{font-size:16px}
@media(min-width:981px){.write-intro{position:sticky;top:24px}.letter-form .v27-quick-guide{grid-template-columns:1fr}}
@media(max-width:980px){
 .v41-navigation{display:block}.topbar-actions .v28-square-nav{display:none}
 .topbar-actions{gap:6px}.topbar .account-button,.topbar .nav-cta{min-height:44px;font-size:13px}.topbar .account-button{min-width:44px}
 .write-layout{grid-template-columns:1fr;width:min(680px,100% - 32px);gap:22px;margin:16px auto 60px}
 .write-intro{padding:0;text-align:center}.write-intro .back-button{margin-bottom:4px;min-height:44px}.write-intro h1{font-size:30px;line-height:1.45;margin:0}.write-intro>p{font-size:14px;line-height:1.8;margin:8px 0 0}
 .letter-form{padding:24px;gap:16px}.letter-form .write-stage-group{gap:16px}
 .shared-topbar{gap:8px}.shared-topbar>.v41-navigation{order:3}.shared-topbar>a:not(.shared-brand){margin-left:auto;font-size:13px;min-height:44px;display:flex;align-items:center}
 .discover-header>nav,.my-top>nav{display:flex;align-items:center;gap:6px}
 .discover-header>nav>a,.my-top>nav>a{min-height:44px;display:flex;align-items:center}
}
@media(max-width:640px){
 .topbar{position:relative;z-index:50;width:calc(100% - 32px);height:72px}.topbar .brand{font-size:17px;gap:6px}.topbar .brand-image-seal{width:30px;height:30px}.topbar .nav-cta{min-width:82px;padding:0 12px}.topbar .account-button{min-width:36px}
 .letter-form{padding:20px 16px;border-radius:16px}.letter-form .field-row{grid-template-columns:1fr 1fr;gap:12px}.letter-form select{padding-left:10px;padding-right:26px}
 .letter-form .v27-price-clarity>small{font-size:12px}.letter-form textarea[maxlength="5000"]{min-height:270px}
 .letter-form .v27-quick-guide{grid-template-columns:1fr}.letter-form .v27-draft-bar{font-size:12px}
 .v41-privacy-disclosure>summary{padding:13px 12px}.v41-privacy-body{padding:2px 12px 14px}
 .v28-public-dialog h2{font-size:23px;line-height:1.5}.v28-public-dialog-card{padding:28px 20px}.v28-public-dialog p,.v28-preview-confirm{font-size:14px;line-height:1.85}
 .shared-heading{padding:22px 0 18px}.shared-heading h1{font-size:29px;line-height:1.45;letter-spacing:.01em}.shared-heading h1 br{display:block}.shared-heading>p{font-size:14px;margin:12px auto 0}.local-boundary{padding:12px 14px;font-size:12px}.shared-progress{margin:22px 0;gap:4px}.shared-progress li{font-size:12px;letter-spacing:0;padding-left:1px;padding-right:1px}.shared-progress li span{font-size:13px}
 .discover-header>nav>a:not([href="/write"]),.my-top>nav>a:not([href="/write"]){display:none}
 .shared-panel .panel-copy h2{font-size:25px;line-height:1.5}
 .capsule-empty-copy h2{font-size:24px;line-height:1.5;text-wrap:balance}
}
@media(max-width:360px){.topbar .brand{font-size:15px}.topbar-actions{gap:2px}.topbar .nav-cta{min-width:74px;padding:0 8px}.v41-navigation>summary{padding:0 5px}.letter-form .field-row{grid-template-columns:1fr}.shared-heading h1{font-size:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

@media(max-width:360px){.topbar .v41-navigation .v41-nav-links{right:-28px}}

/* v42: content navigation and account access have separate visual groups. */
.topbar{grid-template-columns:auto minmax(0,1fr) auto;column-gap:36px}
.topbar>nav[aria-label="主要导航"]{justify-content:center;gap:26px;min-width:0}
.topbar>nav[aria-label="主要导航"]>a{white-space:nowrap}
.topbar>nav[aria-label="主要导航"]>.nav-cta{border:0;border-left:1px solid #d5dedb;border-radius:0;min-width:0;min-height:44px;height:auto;padding:8px 0 8px 26px;margin-left:4px;color:#315747;font-weight:600;background:transparent}
.topbar>nav[aria-label="主要导航"]>.nav-cta:hover{color:#203b4d;background:transparent;transform:none;text-decoration:underline;text-underline-offset:6px}
.topbar-actions{gap:16px}
.topbar .account-button{min-width:60px;min-height:44px;padding:8px 14px;border:1px solid #d5dedb;border-radius:999px;font-size:13px;background:#fffefa}
.topbar .account-button:hover{border-color:#96aaa0;color:#315747;background:#f7f9f6}
.wish-garden-intro{grid-template-columns:minmax(0,1fr) 300px;gap:36px}
.wish-garden-tree{width:300px;height:270px;justify-self:end}
@media(min-width:981px) and (max-width:1220px){
 .topbar{column-gap:24px}.topbar>nav[aria-label="主要导航"]{gap:20px}
 .topbar>nav[aria-label="主要导航"]>a[href="/#journey"],.topbar>nav[aria-label="主要导航"]>a[href="/#moments"]{display:none}
}
@media(max-width:980px){
 .topbar{grid-template-columns:auto 1fr;column-gap:16px}.topbar>nav[aria-label="主要导航"]{display:none}
 .topbar-actions{gap:14px}.topbar .account-button{min-width:60px}
 .wish-garden-intro{grid-template-columns:minmax(0,1fr) 260px;gap:24px}.wish-garden-tree{width:260px;height:240px}
}
@media(max-width:640px){
 .topbar-actions{gap:12px}.topbar .account-button{min-width:56px;padding:8px 12px}
 .wish-garden-intro{display:block}.wish-garden-copy h1{width:calc(100% - 108px)}
 .wish-garden-description{max-width:calc(100% - 112px)}
 .wish-garden-tree{width:112px;height:140px;right:-4px;top:44px;opacity:1}
}
@media(max-width:360px){
 .wish-garden-copy h1{width:calc(100% - 96px)}.wish-garden-description{max-width:calc(100% - 100px)}
 .wish-garden-tree{width:100px;height:126px;top:48px}
 .topbar .v41-navigation .v41-nav-links{right:0}
}

/* v43: warm editorial cards when the public feed is empty or unavailable. */
.wish-greetings-note{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-6px 0 20px;min-height:44px;color:#60726b;font-size:13px;line-height:1.8}
.wish-greetings-note p{margin:0}
.wish-greetings-note button{flex-shrink:0;min-height:44px;padding:8px 4px;color:#45664e;text-decoration:underline;text-underline-offset:4px}
.wish-greeting-card{min-height:172px;padding:26px 28px}
.wish-greeting-card .wish-card-text{min-height:0;margin:18px 0 0;flex:0 1 auto}
.wish-greetings-closing{margin:28px 0 0;color:#60726b;font-size:13px;line-height:1.8;text-align:center}
@media(max-width:640px){.wish-greetings-note{align-items:flex-start;font-size:12px;gap:10px}.wish-greetings-note p{padding-top:10px}.wish-greeting-card{min-height:150px;padding:22px}.wish-greeting-card .wish-card-text{font-size:16px}.wish-greetings-closing{font-size:12px}}

/* v44: a compact mobile introduction and a fully framed animated envelope. */
.share-card .share-card-invite{width:min(100%,300px);grid-template-columns:80px minmax(0,1fr);align-items:center;gap:12px;padding:12px;margin:18px auto 0;border-radius:10px}
.share-card .share-card-invite img{width:80px!important;height:80px!important;padding:4px;border-radius:4px;image-rendering:pixelated}
.share-card .share-card-invite>span{align-self:center;gap:4px}
.share-card .share-card-invite strong{color:var(--ink);font-size:14px!important;line-height:1.5}
.share-card .share-card-invite small{font-size:11px!important;line-height:1.6}
@media (max-width: 640px) {
 .step-home .hero{width:calc(100% - 32px);padding:28px 0 24px;row-gap:0;min-height:0}
 .step-home #hero-title{font-size:clamp(26px,7.5vw,32px);line-height:1.4}
 .step-home .hero-copy>p{margin:14px auto 18px;font-size:14px;line-height:1.75;max-width:30em}
 .step-home .hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,400px);gap:10px;margin:0 auto}
 .step-home .hero-actions>button{display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;height:auto;min-height:52px;padding:13px 12px;gap:7px;border-radius:12px;font-size:14px;font-weight:600;line-height:1.5;letter-spacing:0;white-space:nowrap}
 .step-home .hero-actions .icon{width:16px;height:16px;flex:0 0 16px}
 .step-home .hero-actions .primary-button{box-shadow:0 6px 16px #b746361c}
 .step-home .hero-actions .secondary-button{box-shadow:none}
 .step-home .privacy-line{margin:14px auto 0;max-width:100%;gap:6px;font-size:11px;line-height:1.65}
 .step-home .privacy-line .icon{width:15px;height:15px;flex:0 0 15px}
 .step-home .hero-art{position:relative;inset:auto;min-height:0;height:clamp(220px,62vw,280px);width:100%;margin-top:8px;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 8%,#000 92%,#0000);mask-image:linear-gradient(#0000,#000 8%,#000 92%,#0000)}
 .step-home .hero-art-base{width:145%;max-width:580px;height:auto;top:50%;right:0;transform:translateY(-50%);object-fit:contain;object-position:center;-webkit-mask-image:none;mask-image:none}
 .step-home .hero-floating-leaves{width:100%;height:100%;aspect-ratio:auto;inset:0;transform:none;--leaf-fall:82px;--leaf-sway:22px}
 .step-home .hero-floating-leaf-one{width:10%;top:5%;right:10%}
 .step-home .hero-floating-leaf-two{width:7%;top:18%;right:38%}
 .step-home .hero-floating-leaf-three{width:6%;top:30%;right:19%}
 .step-home .hero:before{height:160px;bottom:0;opacity:.3}
 .step-home .hero:after{height:70px;bottom:0}
}
@media (max-width: 360px) {
 .step-home .hero-actions{gap:8px}
 .step-home .hero-actions>button{padding-inline:10px;gap:5px;font-size:13px}
 .step-home .hero-copy>p{font-size:13px}
 .step-home .privacy-line{font-size:10px}
}

/* v45: make writing, saving and the next step clearer without adding a feed. */
.v45-sample-link{display:inline-flex;align-items:center;min-height:44px;margin-top:10px;color:#315747;font-size:14px;text-underline-offset:5px}
.v45-writing-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.v45-writing-tools button,.v45-example-list button{min-height:44px;padding:9px 14px;border:1px solid var(--ui-border);border-radius:9px;background:#fffefa;color:var(--ui-ink);font-size:13px;cursor:pointer}
.v45-writing-tools button[aria-pressed=true]{background:#edf2ed;border-color:#758d7d}
.v45-tool-status{font-size:12px;line-height:1.8;color:var(--ui-muted);flex:1 1 100%}
.v45-tool-status:empty{display:none}
.v45-draft-scope{display:block;font-size:12px;line-height:1.8;color:var(--ui-muted);margin-top:-10px}
.v45-mail-help{margin-top:-8px;font-size:13px;line-height:1.8;color:var(--ui-muted)}
.v45-mail-help summary{min-height:44px;cursor:pointer;padding:10px 0;color:#315747}
.v45-mail-help p{margin:4px 0 10px}
.v45-example-list{margin:14px;padding-top:8px;border-top:1px solid var(--ui-border);font-size:13px;color:var(--ui-muted)}
.v45-example-list summary{min-height:44px;cursor:pointer;padding:12px 2px;color:var(--ui-ink)}
.v45-example-list details{border-bottom:1px solid var(--ui-border)}
.v45-example-list p{line-height:1.9;margin:6px 0 14px}
.v45-example-list button{margin:0 0 14px}
.letter-form.v45-focus-writing .write-stage-group>:not(.v45-writing-tools):not(.v45-letter-field){display:none}
.letter-form.v45-focus-writing .v27-price-clarity,.letter-form.v45-focus-writing .v41-public-slot,.letter-form.v45-focus-writing .submit-button{display:none}
.letter-form.v45-focus-writing textarea[maxlength="5000"]{min-height:55svh;line-height:2;font-family:Georgia,"Songti SC","Noto Serif SC",serif;background:#fffefa}
.v45-focus-writing .v45-writing-tools{position:sticky;top:8px;z-index:4;background:#fffefa;padding:8px 0}
.v45-date-notice{color:#a33329;font-size:13px;line-height:1.8;padding:10px 12px;border-left:3px solid #a33329;background:#fff4ef}
.v45-sealed-next{margin:24px 0;padding:22px;border:1px solid var(--ui-border);border-radius:14px;background:#fffefa}
.v45-sealed-next h2{font-size:23px;line-height:1.5;margin:0 0 12px;color:var(--ui-ink)}
.v45-sealed-next p{font-size:14px;line-height:1.85;color:var(--ui-muted)}
.v45-sealed-next a{display:inline-flex;align-items:center;min-height:44px;color:#315747;text-underline-offset:5px;font-size:14px}
.v45-sealed-next summary{min-height:44px;padding:12px 0;cursor:pointer;color:var(--ui-muted);font-size:13px}
.v45-inspiration{width:min(1036px,100% - 48px);margin:32px auto 0;padding:30px 0;border-top:1px solid #d5dedb;scroll-margin-top:24px}
.v45-inspiration header h2{font-family:Georgia,"Songti SC",serif;font-size:30px;line-height:1.5;margin:12px 0}
.v45-inspiration header p,.v45-inspiration>p{font-size:13px;line-height:1.85;color:#526960}
.v45-inspiration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}
.v45-inspiration-card{padding:24px;background:#fffefa;border:1px solid #d5dedb;border-radius:14px;min-width:0}
.v45-inspiration-card>span{font-size:12px;color:#526960}
.v45-inspiration-card h3{font-family:Georgia,"Songti SC",serif;font-size:22px;line-height:1.5;margin:14px 0}
.v45-inspiration-card p{font-size:14px;line-height:1.95;color:#405b64}
.v45-inspiration-card a{display:inline-flex;align-items:center;min-height:44px;color:#315747;font-size:14px;text-underline-offset:5px}
.v45-inspiration-card details summary{min-height:44px;cursor:pointer;padding:10px 0;font-size:14px;color:#315747}
.letter-form input::placeholder,.letter-form textarea::placeholder,.shared-form input::placeholder,.shared-form textarea::placeholder{color:#65767d;opacity:1}
.step-home .privacy-line,.sealed-stage .capsule-note,.sealed-stage .share-privacy,.write-stage .delivery-help small{color:#52666f}
.step-home .trust-evidence small{color:#52666f}
@media(max-width:640px){
 .step-home .moment-scenes{padding-top:40px;padding-bottom:40px}
 .step-home .journey{padding-top:40px;padding-bottom:40px}
 .step-home .keepsake-value{padding-top:40px;padding-bottom:40px}
 .step-home .promise{padding-top:44px;padding-bottom:44px}
 .step-home .faq-section{padding-top:44px;padding-bottom:44px}
 .step-home .section-heading{margin-bottom:24px}
 .step-home .privacy-line{font-size:12px}
 .v45-inspiration{width:calc(100% - 32px);padding-top:24px}
 .v45-inspiration-grid{grid-template-columns:1fr;gap:14px}
 .v45-inspiration header h2{font-size:25px}
 .v45-inspiration-card{padding:20px}
 .v45-sealed-next{padding:18px}
}

/* Keep the confirmation within the draft flow and avoid an orphaned title glyph. */
.letter-form .v27-draft-bar [hidden]{display:none!important}
.v45-discard-confirm p{margin:4px 0;line-height:1.8;color:#8d3e31}
.v45-discard-confirm button+button{margin-left:8px}
.sealed-main h1{font-size:clamp(30px,3.5vw,46px);line-height:1.45;text-wrap:balance}

.letter-form .v27-draft-bar{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:4px}
.letter-form [data-v27-draft-status]{line-height:1.8}
.letter-form [data-v27-recovery-actions]:empty{display:none}
/* The outcome grid already carries these two values; avoid repeating them. */
.sealed-main>.capsule-id,.sealed-main>.countdown-card{display:none}
.sealed-main>.receipt{margin:20px 0;padding:20px 0;gap:20px}
@media(max-width:600px){
 .sealed-main>.receipt{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px;text-align:left}
 .sealed-main>.receipt>div{min-width:0}
 .sealed-main>.receipt dd{overflow-wrap:anywhere}
 .sealed-main>.retention-panel{padding:18px}
}

/* v46: blended landscape, a floating envelope scene and independent falling leaves. */
.step-home .hero-art{inset:-24px calc(50% - 50vw) -22px clamp(180px,18vw,320px)}
.step-home .hero-art-motion{--hero-rise:14px;--hero-sway:5px;--hero-tilt:.55deg;animation:v46-envelope-float 7.8s ease-in-out -2s infinite;transform-origin:72% 57%;will-change:transform}
@keyframes v46-envelope-float{0%,100%{transform:translate3d(0,5px,0) rotate(-.35deg) scale(1.018)}50%{transform:translate3d(var(--hero-sway),calc(var(--hero-rise)*-1),0) rotate(var(--hero-tilt)) scale(1.022)}}
.step-home .hero-art-base{
 height:clamp(520px,46vw,746px);filter:none;mix-blend-mode:multiply;
 -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 24%,#000 97%,transparent 100%),linear-gradient(180deg,transparent 0%,#000 17%,#000 78%,transparent 100%);
 mask-image:linear-gradient(90deg,transparent 0%,#000 24%,#000 97%,transparent 100%),linear-gradient(180deg,transparent 0%,#000 17%,#000 78%,transparent 100%);
 -webkit-mask-composite:source-in;mask-composite:intersect
}
.step-home .hero-floating-leaves{height:clamp(520px,46vw,746px)}
.step-home .hero:before{background:none;opacity:0}
.step-home .hero:after{background:linear-gradient(180deg,transparent,#f8fafa);height:95px;bottom:-65px}
.step-home .hero-floating-leaf{opacity:.9;filter:drop-shadow(0 5px 8px #a4712a26);will-change:transform}
.step-home .hero-floating-leaf-one{animation:v46-leaf-one 9.5s linear -4s infinite;width:10%;top:8%;right:5%}
.step-home .hero-floating-leaf-two{animation:v46-leaf-two 11s linear -8s infinite;width:7%;top:23%;right:27%}
.step-home .hero-floating-leaf-three{animation:v46-leaf-three 8.5s linear -1.5s infinite;width:5.8%;top:33%;right:17%}
 .step-home .hero-floating-leaves{--leaf-fall:138px;--leaf-sway:34px}
@keyframes v46-leaf-one{0%{opacity:0;transform:translate3d(0,-18px,0) rotate(-32deg)}14%{opacity:.94}45%{transform:translate3d(calc(var(--leaf-sway)*-.3),calc(var(--leaf-fall)*.36),0) rotate(8deg)}76%{opacity:.9;transform:translate3d(calc(var(--leaf-sway)*-1),calc(var(--leaf-fall)*.72),0) rotate(-12deg)}100%{opacity:0;transform:translate3d(calc(var(--leaf-sway)*-.6),var(--leaf-fall),0) rotate(18deg)}}
@keyframes v46-leaf-two{0%{opacity:0;transform:translate3d(0,-12px,0) rotate(10deg)}12%{opacity:.94}48%{transform:translate3d(var(--leaf-sway),calc(var(--leaf-fall)*.4),0) rotate(48deg)}80%{opacity:.9;transform:translate3d(calc(var(--leaf-sway)*.3),calc(var(--leaf-fall)*.76),0) rotate(17deg)}100%{opacity:0;transform:translate3d(calc(var(--leaf-sway)*.6),var(--leaf-fall),0) rotate(35deg)}}
@keyframes v46-leaf-three{0%{opacity:0;transform:translate3d(0,-10px,0) rotate(-38deg)}13%{opacity:.94}44%{transform:translate3d(calc(var(--leaf-sway)*-.75),calc(var(--leaf-fall)*.32),0) rotate(-6deg)}78%{opacity:.9;transform:translate3d(calc(var(--leaf-sway)*.25),calc(var(--leaf-fall)*.68),0) rotate(-27deg)}100%{opacity:0;transform:translate3d(calc(var(--leaf-sway)*-.3),var(--leaf-fall),0) rotate(5deg)}}
@media(max-width:980px){
 .step-home .hero-art{position:relative;inset:auto;width:100vw;margin-left:calc(50% - 50vw);height:440px;min-height:0;overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 7%,#000 84%,transparent);mask-image:linear-gradient(180deg,transparent,#000 7%,#000 84%,transparent)}
 .step-home .hero-art-base{width:850px;max-width:none;height:auto;right:50%;top:45%;transform:translate(50%,-50%);-webkit-mask-image:none;mask-image:none}
 .step-home .hero-floating-leaves{width:850px;height:566px;right:50%;top:50%;transform:translate(50%,-50%)}
}
@media(max-width:640px){
 .step-home .hero-art{height:clamp(240px,70vw,305px);margin-top:4px;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 7%,#000 84%,transparent);mask-image:linear-gradient(180deg,transparent,#000 7%,#000 84%,transparent)}
 .step-home .hero-art-motion{--hero-rise:9px;--hero-sway:3px;--hero-tilt:.4deg}
 .step-home .hero-art-base{width:145%;max-width:620px;height:auto;right:0;top:45%;transform:translateY(-50%);
  -webkit-mask-image:none;mask-image:none}
 .step-home .hero-floating-leaves{width:100%;height:100%;aspect-ratio:auto;inset:0;transform:none;--leaf-fall:82px;--leaf-sway:22px}
 .step-home .hero-floating-leaf-one{width:11%;top:3%;right:11%}
 .step-home .hero-floating-leaf-two{width:8%;top:10%;right:40%}
 .step-home .hero-floating-leaf-three{width:6.5%;top:27%;right:19%}
 .step-home .hero:after{height:35px;bottom:0}
}

/* v46: a clear map and one aligned, accessible city list. */
.cities-v46{padding:42px max(24px,calc(50vw - 660px)) 72px;background:linear-gradient(180deg,#fdfefc,#f4f8f6)}
.cities-v46 .subpage-heading h1{font-size:clamp(36px,4vw,52px)}
.cities-v46 .subpage-heading p{margin-top:12px}
.cities-v46 .city-overview{max-width:1320px;grid-template-columns:minmax(0,1fr) clamp(340px,28vw,380px);gap:28px;margin-top:32px;align-items:start}
.cities-v46 .city-map-shell{padding:24px 24px 18px;background:radial-gradient(ellipse at 40% 50%,#eef4ed,transparent 70%),#fcfdfb;border-color:#d5dfd7;box-shadow:0 16px 45px #23443408}
.city-map-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px;color:#526b62;font-size:13px}
.city-map-heading>span{font-family:var(--serif);font-size:17px;letter-spacing:.08em}
.city-map-heading small{font-size:11px;color:#75887f}
.cities-v46 .city-map{overflow:visible;border-radius:0;aspect-ratio:3/2}
.cities-v46 .city-map>img{width:100%;height:100%;opacity:1;filter:none;object-fit:contain}
.city-map-point{position:absolute;display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:transparent;transform:translate(-50%,-50%);z-index:2;cursor:pointer;color:#314e43}
.city-map-point>i{width:10px;height:10px;border-radius:50%;background:#be9448;border:2px solid #fffefa;box-shadow:0 0 0 5px #c39c4819;transform:scale(var(--light-scale));transition:box-shadow .3s,background .3s}
.city-map-point.is-active{z-index:5}
.city-map-point.is-active>i{background:#bd7541;box-shadow:0 0 0 7px #d8b87024,0 0 20px #c7973f2e}
.city-map-point.is-active>i:after{content:"";position:absolute;inset:-6px;border:1px solid #bc96564d;border-radius:50%;animation:v46-city-glow 5s ease-in-out infinite}
.city-map-point:focus-visible{outline:2px solid #547869;outline-offset:2px}
.city-point-label{position:absolute;left:calc(100% - 3px);top:50%;transform:translateY(-50%);display:none;align-items:center;gap:9px;white-space:nowrap;background:#fffffff2;border:1px solid #d8e0d5;padding:6px 9px;border-radius:7px;font-size:12px;line-height:1.35;box-shadow:0 4px 12px #24453509;pointer-events:none}
.city-map-point.show-city-name .city-point-label,.city-map-point.is-active .city-point-label{display:flex}
.city-point-label em{font-style:normal;color:#927238;font-variant-numeric:tabular-nums}
.cities-v46 .city-map-legend{padding-top:14px;gap:12px;color:#6a8075;font-size:11px}
.cities-v46 .city-map-legend small{font-size:10px;color:#7f9187}
.cities-v46 .city-overview-panel{padding:30px;background:#fffefa;border-color:#e2dcc9;box-shadow:0 16px 40px #23443408;min-width:0}
.cities-v46 .city-overview-label{font-size:13px}
.cities-v46 .city-overview-panel:after{display:none}
.cities-v46 .city-overview-panel h2{font-size:30px;line-height:1.4;margin:14px 0 26px}
.cities-v46 .city-summary{padding:0 0 26px;margin:0;gap:30px}
.cities-v46 .city-summary article strong{font-size:44px;font-variant-numeric:tabular-nums}
.cities-v46 .city-summary article span{font-size:14px;margin-top:7px}
.city-list-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;border-top:1px solid #e2e7de;padding-top:24px;margin-bottom:14px}
.city-list-heading h3{margin:0;font-size:16px;font-weight:600;color:#354c41}
.city-list-heading>span{font-size:11px;color:#87958a}
.city-letter-list{display:grid;gap:7px;max-height:320px;overflow:auto;scrollbar-width:thin;scrollbar-color:#d4dacd transparent}
.city-letter-row{width:100%;min-height:58px;display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;padding:12px 14px;border:1px solid transparent;border-radius:10px;background:transparent;color:#445b4e;cursor:pointer;transition:background .2s,border-color .2s}
.city-letter-row:hover{background:#f6f6ee}
.city-letter-row.is-active{background:#f1f4e9;border-color:#dde5cf}
.city-letter-row:focus-visible{outline:2px solid #547869;outline-offset:-2px}
.city-row-index{font-family:var(--serif);font-size:12px;color:#98a38f}
.city-row-name{font-size:16px;overflow-wrap:anywhere}
.city-letter-row>strong{font-size:24px;font-family:var(--serif);font-weight:500;font-variant-numeric:tabular-nums;color:#9b7532}
.city-letter-row>strong>small{font-size:12px;font-family:var(--sans);margin-left:5px;color:#798372}
.cities-v46 .city-count-note{margin:20px 0 0;font-size:11px;line-height:1.65;color:#849181}
.cities-v46 .city-list-empty{font-size:13px;line-height:1.8;color:#758270}
.city-selection-status{position:absolute!important;width:1px;height:1px;padding:0!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.cities-v46 .community-footer{margin-top:30px;padding-top:0}
@keyframes v46-city-glow{0%,100%{opacity:.4;transform:scale(.9)}50%{opacity:.8;transform:scale(1.3)}}
@media(max-width:980px){
 .cities-v46 .city-overview{grid-template-columns:1fr;max-width:740px}
 .cities-v46 .city-overview-panel{display:grid;grid-template-columns:1fr 1fr;column-gap:30px}
 .cities-v46 .city-overview-label,.cities-v46 .city-overview-panel h2,.cities-v46 .city-summary{grid-column:1}
 .city-list-heading{grid-column:2;grid-row:1/3;padding-top:0;border-top:0;align-self:start;margin:0}
 .city-letter-list,.cities-v46 .city-list-empty{grid-column:2;grid-row:3/5;align-self:start}
 .cities-v46 .city-count-note{grid-column:1;margin:0}
}
@media(max-width:640px){
 .cities-v46{padding:28px 16px 48px}
 .cities-v46 .subpage-heading .back-button{margin-bottom:20px}
 .cities-v46 .subpage-heading p{font-size:14px}
 .cities-v46 .subpage-heading>small{font-size:11px}
 .cities-v46 .city-overview{gap:16px;margin-top:24px}
 .cities-v46 .city-map-shell{padding:16px 10px 14px;border-radius:15px}
 .city-map-heading{padding:0 4px;margin-bottom:16px;gap:8px}
 .city-map-heading>span{font-size:15px}
 .city-map-heading small{font-size:9px}
 .city-map-point{width:30px;height:30px}
 .city-map-point>i{width:9px;height:9px}
 .city-point-label{top:auto;bottom:calc(100% - 3px);left:50%;transform:translateX(-50%);gap:5px;padding:4px 6px;font-size:10px}
 .city-map-point.show-city-name:not(.is-active) .city-point-label{display:none}
 .cities-v46 .city-map-legend{flex-direction:row;flex-wrap:wrap;gap:9px;padding:13px 5px 0;font-size:10px}
 .cities-v46 .city-map-legend small{font-size:9px}
 .cities-v46 .city-overview-panel{display:block;padding:20px;border-radius:15px}
 .cities-v46 .city-overview-panel h2{font-size:23px;margin:10px 0 18px}
 .cities-v46 .city-summary{gap:26px;padding-bottom:18px}
 .cities-v46 .city-summary article strong{font-size:34px}
 .cities-v46 .city-summary article span{font-size:13px}
 .city-list-heading{border-top:1px solid #e2e7de;padding-top:17px;margin-bottom:9px}
 .city-letter-list{max-height:250px}
 .city-letter-row{min-height:54px;padding:10px 12px}
 .cities-v46 .city-count-note{margin-top:13px}
 .cities-v46 .community-footer{margin-top:24px}
}
@media(prefers-reduced-motion:reduce){
 .step-home .hero-art-motion,.step-home .hero-floating-leaf,.city-map-point.is-active>i:after{animation:none!important}
 .step-home .hero-art-motion{transform:none}
 .city-letter-row,.city-map-point>i{transition:none}
}

/* v46 ink revision: retain the shanshui art direction while keeping city labels clear. */
.cities-v46{background:linear-gradient(180deg,#fdfefc,#f3f6f6)}
.cities-v46 .city-map-shell{background:radial-gradient(ellipse at 40% 58%,#eaf0f244,transparent 75%),#fcfdfb;border-color:#d5dfe1}
