:root {
  color-scheme: light;
  --blue: #1768ff;
  --blue-2: #2c73ff;
  --ink: #080b1a;
  --muted: #626773;
  --warm: #fffdf8;
  --error: #ff5a45;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; background: #edf6ff; color: var(--ink); }
button, input { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible + .checkmark { outline: 3px solid rgba(23,104,255,.34); outline-offset: 3px; }
::selection { background: #bcd5ff; color: #071126; }

.stage { min-height: 100svh; display: grid; place-items: center; padding: 28px; }
.phone { position: relative; width: min(393px, 100vw); height: min(852px, 100svh); overflow: hidden; background: var(--warm); border-radius: 48px; box-shadow: 0 24px 70px rgba(38,74,116,.22); isolation: isolate; }
.sky { position: absolute; inset: 0 0 auto; height: 350px; overflow: hidden; background: linear-gradient(180deg,#c7efff 0%,#e9f8ff 67%,#fbfcf5 100%); }
.sky::after { content:""; position:absolute; left:-12%; right:-12%; bottom:-62px; height:122px; background:var(--warm); border-radius:50% 50% 0 0 / 72% 72% 0 0; }
.hero-art{position:absolute;z-index:1;width:365px;max-width:none;left:50%;bottom:18px;transform:translate3d(-50%,0,0);object-fit:contain;animation:loginIslandFloat 5.8s ease-in-out infinite;filter:drop-shadow(0 12px 11px rgba(50,89,119,.15));will-change:transform}
.hero-island{user-select:none;pointer-events:none}
@keyframes loginIslandFloat{0%,100%{transform:translate3d(-50%,3px,0)}50%{transform:translate3d(-50%,-3px,0)}}
@keyframes loginCloudLeftDrift{0%,100%{transform:translate3d(-7px,0,0)}50%{transform:translate3d(16px,-3px,0)}}
@keyframes loginCloudRightDrift{0%,100%{transform:translate3d(8px,0,0) scale(.85)}50%{transform:translate3d(-18px,3px,0) scale(.85)}}
.cloud { position:absolute; width:90px; height:34px; border-radius:999px; background:rgba(255,255,255,.8); filter:blur(3px); }
.cloud::before,.cloud::after { content:""; position:absolute; border-radius:50%; background:inherit; }
.cloud::before { width:50px;height:50px;left:14px;bottom:2px; }
.cloud::after { width:42px;height:42px;right:4px;bottom:0; }
.cloud-left{left:-28px;top:92px;opacity:.8;animation:loginCloudLeftDrift 16s ease-in-out infinite;will-change:transform}
.cloud-right{right:-30px;top:184px;opacity:.62;transform:scale(.85);animation:loginCloudRightDrift 20s ease-in-out infinite;will-change:transform}
@media(prefers-reduced-motion:reduce){.hero-art,.cloud-left,.cloud-right{animation:none}.hero-art{transform:translateX(-50%)}.cloud-left{transform:none}.cloud-right{transform:scale(.85)}}

.statusbar { position:absolute; z-index:5; top:18px; left:31px; right:27px; height:22px; display:flex; align-items:center; justify-content:space-between; font-size:15px; }
.status-icons { display:flex; align-items:center; gap:7px; }
.status-icons svg { width:17px; height:13px; fill:#05070d; }
.battery { width:24px;height:12px;border:1.7px solid #05070d;border-radius:3px; padding:2px; position:relative; }
.battery::after { content:""; width:2px;height:6px;border-radius:0 1px 1px 0;background:#05070d;position:absolute;right:-4px;top:1.4px;opacity:.55; }
.battery i { display:block;width:100%;height:100%;background:#05070d;border-radius:1px; }
.language-picker { position:absolute;z-index:7;top:54px;right:20px; }
.language { border:0; background:transparent; color:#263444; min-height:44px; padding:0 6px; font-size:14px; display:flex; gap:5px; align-items:center; cursor:pointer; }
.language svg { width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8; }
.language-menu { position:absolute;top:42px;right:0;width:142px;padding:6px;background:rgba(255,255,255,.96);border-radius:13px;box-shadow:0 12px 32px rgba(30,55,80,.18); }
.language-menu button { width:100%;height:42px;border:0;background:transparent;border-radius:9px;padding:0 10px;display:flex;align-items:center;justify-content:space-between;color:#172234;cursor:pointer; }
.language-menu button:hover { background:#eef5ff; }
.language-menu button span { opacity:0;color:var(--blue);font-weight:800; }
.language-menu button[aria-selected="true"] span { opacity:1; }

.content { position:absolute; z-index:3; inset:312px 0 0; padding: 0 26px 30px; text-align:center; background:transparent; }
.brand { font-size:35px; font-weight:900; letter-spacing:-.04em; color:var(--blue); line-height:1; margin-bottom:18px; text-shadow: 0 1px 0 #fff; }
.brand span { color:#ff6954; font-size:31px; margin-left:1px; }
h1 { margin:0; font-size:25px; line-height:1.35; letter-spacing:-.035em; font-weight:830; }
.subtitle { color:var(--muted); font-size:14px; margin:9px 0 18px; }
.actions { display:grid; gap:8px; }
.auth { height:50px; border-radius:11px; border:1px solid #d8dbe0; display:flex; justify-content:center; align-items:center; gap:11px; font-size:17px; font-weight:650; cursor:pointer; transition:transform .16s cubic-bezier(.2,.8,.2,1), box-shadow .16s; }
.auth:active { transform:scale(.985); }
.auth svg { width:22px; height:22px; flex:none; }
.apple { color:white; background:#050505; border-color:#050505; }
.apple svg { fill:white; width:20px;height:23px; }
.google { color:#111; background:rgba(255,255,255,.84); }
.email { color:white; background:linear-gradient(180deg,var(--blue-2),#1762f4); border-color:transparent; box-shadow:0 7px 15px rgba(28,102,247,.18); }
.email svg { fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.phone-auth{color:#174f9f;background:rgba(255,255,255,.86);border-color:#b9d1f5}.phone-auth svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.guest-link { min-height:44px; margin:4px 0 3px; border:0; background:transparent; color:var(--blue); font-size:16px; font-weight:600; cursor:pointer; }
.consent { min-height:49px; display:flex; align-items:center; text-align:left; gap:10px; padding:8px 10px; border-radius:13px; color:#656a74; font-size:12px; line-height:1.55; cursor:pointer; transition:background .2s, box-shadow .2s; }
.consent input { position:absolute; opacity:0; pointer-events:none; }
.checkmark { flex:none; width:19px;height:19px;border:1.5px solid #aeb5c0;border-radius:4px;background:#fff;display:grid;place-items:center; }
.checkmark svg { width:14px;height:14px;fill:none;stroke:#fff;stroke-width:2.2;opacity:0; }
.consent input:checked + .checkmark { background:var(--blue); border-color:var(--blue); }
.consent input:checked + .checkmark svg { opacity:1; }
.consent a { color:var(--blue); text-decoration:none; }
.consent-error { display:none; margin:1px 10px 0 39px; color:var(--error); font-size:12px; text-align:left; }
.consent.is-error { background:#fff1ee; box-shadow:0 0 0 1px #ff8b7c inset; animation:shake .32s ease; }
.consent-error.is-visible { display:block; }
.home-indicator { position:absolute; z-index:6; bottom:8px; left:50%; transform:translateX(-50%); width:128px;height:5px;border-radius:99px;background:#090909; }

.auth-screen { position:absolute;z-index:7;inset:0;background:linear-gradient(155deg,#f5fbff 0%,#fffaf1 68%,#fffdf9 100%); }
.auth-nav { height:92px;padding:45px 18px 0;display:grid;grid-template-columns:44px 1fr 44px;align-items:center; }
.auth-nav button { width:44px;height:44px;border:0;background:transparent;display:grid;place-items:center;cursor:pointer; }
.auth-nav svg { width:25px;height:25px;fill:none;stroke:#111827;stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }
.mini-brand { text-align:center;color:var(--blue);font-size:24px;font-weight:900;letter-spacing:-.04em; }.mini-brand span{color:#ff6954}
.auth-body { padding:42px 28px;text-align:center; }
.auth-alert { margin:-22px 0 20px;padding:13px 14px;border-radius:12px;background:#f0f2ff;color:#353075;display:grid;grid-template-columns:27px 1fr;gap:10px;text-align:left;box-shadow:0 0 0 1px #d8d7ff inset; }
.auth-alert[hidden] { display:none; }
.auth-alert.is-error { background:#fff0ed;color:#8c261b;box-shadow:0 0 0 1px #ffc3ba inset; }
.auth-alert.is-warning { background:#fff7e8;color:#744707;box-shadow:0 0 0 1px #f6d59b inset; }
.alert-icon { width:25px;height:25px;border:2px solid currentColor;border-radius:50%;display:grid;place-items:center;font-weight:850;font-family:Georgia,serif; }
.auth-alert strong { display:block;font-size:13px;margin:1px 0 2px; }.auth-alert p { margin:0!important;color:inherit!important;font-size:12px!important; }
.auth-alert button { display:none;margin-top:8px;border:0;background:transparent;color:inherit;padding:0;font-weight:750;font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:3px; }
.code-inputs input.is-error { border-color:var(--error);background:#fff8f6; }
.auth-mascot { width:76px;height:76px;object-fit:contain;margin-bottom:14px; }
.auth-body h2 { margin:8px 0 9px;font-size:25px;letter-spacing:-.03em; }
.auth-body p { margin:0 0 28px;color:#686d77;font-size:14px;line-height:1.55; }
.provider-mark { width:48px;height:48px;margin:0 auto 15px;display:grid;place-items:center; }
.provider-mark svg { width:42px;height:42px; }
.continue-button { width:100%;height:54px;border:0;border-radius:12px;color:white;background:linear-gradient(180deg,#2c75ff,#1762f4);font-size:17px;font-weight:700;cursor:pointer;box-shadow:0 8px 18px rgba(28,102,247,.18); }
.cancel-button { width:100%;min-height:48px;border:0;background:transparent;color:var(--blue);font-weight:650;cursor:pointer; }
.field-label { display:block;text-align:left;font-size:13px;font-weight:650;margin:36px 0 8px; }
.email-input { width:100%;height:56px;border:1.5px solid #d8dce2;border-radius:11px;padding:0 15px;font-size:17px;background:rgba(255,255,255,.72);outline:none;margin-bottom:20px; }
.email-input:focus { border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,104,255,.12); }
.email-input.is-error { border-color:var(--error); }
.phone-field{display:grid;grid-template-columns:92px 1fr;gap:8px;margin-bottom:20px}.country-code-input{height:56px;min-width:0;border:1.5px solid #d8dce2;border-radius:11px;padding:0 12px;background:rgba(255,255,255,.8);color:#172234;font-size:16px;outline:none}.phone-field .email-input{margin-bottom:0;min-width:0}.country-code-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,104,255,.12)}

/* v89: English text resilience without changing the Chinese layout system. */
html[data-locale="en"] :is(button,a,label,h1,h2,h3,h4,p,small,b,strong,em,span){overflow-wrap:anywhere}
html[data-locale="en"] :is(.city-feature strong,.city-feature small,.discover-copy strong,.discover-copy small,.discover-copy em,.profile-content-hub button b,.profile-content-hub button small,.identity-privacy){white-space:normal}
html[data-locale="en"] .bottom-nav button{font-size:10px;line-height:1.15}
html[data-locale="en"] .city-feature{padding-right:44%}
html[data-locale="en"] .city-feature strong{font-size:19px}
html[data-locale="en"] .city-feature small{font-size:10px;line-height:1.35}
html[data-locale="en"] .profile-detail-head{grid-template-columns:48px minmax(0,1fr) minmax(88px,auto)}
html[data-locale="en"] #profileDetailAction{max-width:128px;font-size:13px}
html[data-locale="en"] .detail-row b{line-height:1.3}
html[data-locale="en"] .anonymous-compose-card em{white-space:normal;text-align:right}
html[data-locale="en"] .publish-picker>button{min-height:82px;height:auto;padding-block:10px}
html[data-locale="en"] .profile-content-hub .profile-content-columns button{min-height:82px}
html[data-locale="en"] .profile-content-hub .profile-content-columns button b{white-space:normal;line-height:1.15}
html[data-locale="en"] .profile-content-hub .profile-content-columns button small{white-space:normal;line-height:1.2}
.language-choice-page>h3{margin:18px 2px 6px;font-size:22px}.language-choice-page>p{margin:0 2px 18px;color:#708096;line-height:1.55}.language-choice-page .detail-row em{min-width:24px;color:#2471f7;font-size:20px;font-weight:800}
@media(max-width:370px){html[data-locale="en"] .profile-identity{grid-template-columns:104px 1fr}html[data-locale="en"] .profile-avatar-frame{width:100px;height:100px}html[data-locale="en"] .city-feature strong{font-size:17px}}
.field-error { display:none;text-align:left;color:var(--error)!important;margin:-12px 0 18px!important;font-size:12px!important; }
.field-error.is-visible { display:block; }
.demo-code { border:0;background:#eef5ff;color:#165fdb;border-radius:9px;padding:8px 12px;font-size:12px;cursor:pointer;margin-top:-14px; }
.code-inputs { display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:26px 0 42px; }
.code-inputs input { width:100%;min-width:0;height:56px;text-align:center;border:1.5px solid #d9dde4;border-radius:9px;background:white;font-size:22px;outline:none; }
.code-inputs input:focus { border-color:var(--blue);box-shadow:0 0 0 2px rgba(23,104,255,.12); }
.resend { display:block;margin:18px auto 0!important;border:0;background:transparent;color:#777d88;font-size:13px;min-height:30px; }
.resend:not(:disabled) { color:var(--blue);font-weight:700;cursor:pointer; }
.state-tester { margin-top:20px;color:#818791;font-size:11px;text-align:left; }
.state-tester summary { cursor:pointer;text-align:center; }
.state-tester div { margin-top:10px;display:flex;flex-wrap:wrap;justify-content:center;gap:6px; }
.state-tester button { border:1px solid #d9dde4;background:white;border-radius:8px;padding:7px 9px;color:#59606b;font-size:11px;cursor:pointer; }
.result-icon { width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:42px auto 22px;color:white;background:#32b866;font-size:38px;font-weight:800;box-shadow:0 12px 30px rgba(50,184,102,.23); }

.onboarding-screen { position:absolute;z-index:10;inset:0;overflow:hidden;background:linear-gradient(155deg,#dff4ff 0%,#fffaf3 67%,#fffdf9 100%); }
.onboarding-nav { position:relative;z-index:4;height:112px;padding:45px 18px 0;display:grid;grid-template-columns:44px 1fr 44px;align-items:start; }
.onboarding-nav button { width:44px;height:44px;border:0;background:transparent;display:grid;place-items:center;cursor:pointer; }.onboarding-nav svg{width:25px;height:25px;fill:none;stroke:#101827;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.onboarding-nav>div { display:grid;justify-items:center;gap:9px; }.onboarding-nav b { background:rgba(70,130,255,.1);color:#1746aa;border-radius:99px;padding:5px 16px;font-size:13px; }
.onboarding-step { position:absolute;inset:112px 0 0;padding:0 22px 24px;text-align:center; }
.onboarding-step[hidden] { display:none !important; }
.rules-art { position:relative;z-index:1;width:calc(100% + 44px);height:224px;object-fit:cover;object-position:center top;margin:-4px -22px 0;display:block; }
.rules-panel { position:relative;z-index:2;margin:-96px 0 0;background:#fffdf8;border-radius:28px;padding:112px 20px 18px;box-shadow:0 18px 38px rgba(74,83,99,.11); }
.rules-panel h2,.city-step h2,.transition-step h2,.home-preview h2 { margin:0;color:#0a1533;font-size:26px;letter-spacing:-.035em; }
.rules-panel ul { list-style:none;margin:23px 0 17px;padding:0;display:grid;gap:9px; }
.rules-panel li { min-height:58px;padding:9px 12px;background:rgba(255,255,255,.88);border-radius:15px;display:grid;grid-template-columns:39px 1fr;gap:10px;align-items:center;text-align:left;font-size:13px;line-height:1.4; }
.rule-icon { width:35px;height:35px;border-radius:50%;display:grid;place-items:center;color:white;font-style:normal;font-weight:900; }.rule-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.purple{background:#9562f5}.green{background:#83c915}.coral{background:#ff6953}.blue{background:#2472f8}
.privacy-note { margin:0!important;padding:10px 12px;border-radius:999px;background:#eaf2ff;color:#1768ef!important;font-size:12px!important; }
.onboarding-actions { margin-top:16px; }.onboarding-actions .cancel-button{height:44px}
.city-step { padding-top:0;display:flex;flex-direction:column;align-items:stretch; }
.city-art { width:240px;height:120px;object-fit:contain;margin:-10px auto 0; }
.city-step h2 { font-size:23px; }.city-step>p{margin:5px 0 14px;color:#686d77;font-size:13px}
.city-search { height:48px;border:1.5px solid #d8dce2;border-radius:12px;background:rgba(255,255,255,.88);display:flex;align-items:center;padding:0 13px;gap:9px; }.city-search svg{width:20px;fill:none;stroke:#717787;stroke-width:2}.city-search input{border:0;outline:0;background:transparent;width:100%;font-size:15px;color:#101827}
.location-button { min-height:62px;margin:9px 0 8px;padding:8px 12px;border:1.5px solid var(--blue);border-radius:12px;background:rgba(255,255,255,.9);display:grid;grid-template-columns:35px 1fr 22px;align-items:center;text-align:left;gap:9px;cursor:pointer; }.location-button>svg{width:19px;fill:none;stroke:#8c919b;stroke-width:2}.location-button b,.location-button small{display:block}.location-button b{font-size:14px}.location-button small{color:#777d88;font-size:11px;margin-top:3px}.location-dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:white;transform:rotate(-45deg)}
.location-status { margin:0 0 5px!important;color:var(--blue)!important;font-size:11px!important; }
.city-step h3 { margin:3px 0 7px;text-align:left;font-size:14px; }
.city-list { flex:1;min-height:0;overflow:auto;background:rgba(255,255,255,.82);border-radius:12px;text-align:left;scrollbar-color:#b9bdc5 transparent; }
.city-group { padding:5px 12px;background:#f5f4f1;font-size:11px;font-weight:800;position:sticky;top:0; }.city-option{width:100%;height:37px;border:0;border-bottom:1px solid #e8e9eb;background:transparent;padding:0 13px;display:flex;justify-content:space-between;align-items:center;color:#131a2c;font-size:14px;cursor:pointer}.city-option.is-selected{background:linear-gradient(90deg,#1768ff,#2877ff);color:white}.city-option i{font-style:normal;opacity:0}.city-option.is-selected i{opacity:1}
.city-actions { padding-top:9px;background:linear-gradient(180deg,rgba(255,253,249,0),#fffdf9 24%); }.city-actions .continue-button:disabled{background:#b6c5dd;box-shadow:none;cursor:not-allowed}.city-actions .cancel-button{min-height:38px}
.transition-step { inset:0;padding:0;background:#fffdf8;display:grid;grid-template-rows:58% auto auto auto 1fr auto;align-items:start; }.transition-step img{width:100%;height:100%;object-fit:cover;object-position:center top}.transition-step h2{font-size:38px;margin-top:24px}.transition-step p{margin:9px 0 0;color:#6a707a}.loading-dots{display:flex;justify-content:center;gap:34px;margin-top:32px}.loading-dots i{width:23px;height:23px;border-radius:50%;animation:bounceDot .65s ease-in-out 1}.loading-dots i:nth-child(1){background:#2472f8}.loading-dots i:nth-child(2){background:#ff6953;animation-delay:.12s}.loading-dots i:nth-child(3){background:#a9d943;animation-delay:.24s}.transition-step small{padding-bottom:50px;color:#6d737d;font-size:13px}
.home-preview { display:grid;place-content:center;gap:10px;background:#fffdf9;padding:40px }.home-preview p{color:#69707b}.home-preview .continue-button{margin-top:30px}
@keyframes bounceDot{50%{transform:translateY(-9px)}}

.home-screen{position:absolute;z-index:13;inset:0;overflow:hidden;background:linear-gradient(160deg,#fffaf2 0%,#f2f8ff 66%,#fff 100%);font-family:"Source Han Sans SC","Noto Sans CJK SC","PingFang SC",sans-serif}.home-topbar{height:105px;padding:46px 24px 0;display:flex;justify-content:space-between;align-items:flex-start}.home-topbar>img{width:38px;height:38px}.home-topbar>div{display:flex;align-items:center;gap:13px}.home-topbar button{border:0;background:transparent;color:var(--blue);min-height:44px;cursor:pointer}.say-button{font-size:17px;font-weight:750}.inbox-button{position:relative;width:44px}.inbox-button svg{width:27px;fill:none;stroke:#1d2b47;stroke-width:1.8}.inbox-button i{position:absolute;right:4px;top:5px;width:9px;height:9px;background:#ff6655;border-radius:50%}
.card-stage{height:520px;display:grid;grid-template-columns:34px 1fr 34px;align-items:center;padding:0 9px}.card-arrow{border:0;background:transparent;color:#ccd2da;font-size:46px;cursor:pointer;z-index:2}.card-stack{position:relative;width:min(330px,calc(100vw - 88px));height:470px;margin:auto}.anonymous-card{position:absolute;inset:0;border-radius:24px;background:#fffdf8;box-shadow:0 15px 30px rgba(35,50,72,.16)}.back-card{pointer-events:none}.back-two{transform:translate(14px,16px) scale(.94);background:#f8f4eb}.back-one{transform:translate(8px,8px) scale(.97);background:#eaf3ff}.current-card{display:flex;flex-direction:column;padding:42px 38px;touch-action:none;cursor:grab;transition:transform .26s cubic-bezier(.2,.8,.2,1);background:linear-gradient(145deg,#fffdf9,#fffaf3)}.current-card.dragging{transition:none;cursor:grabbing}.card-copy{margin:0;flex:1;display:flex;align-items:center;white-space:pre-wrap;color:#17243a;font-family:"Source Han Serif SC","Noto Serif CJK SC","Songti SC","SimSun",serif;font-weight:500;font-size:26px;line-height:1.55;letter-spacing:.1px}.card-copy.long{align-items:flex-start;padding-top:24px}.current-card small{color:#777d83;font-size:13px}.card-actions{height:62px;display:flex;justify-content:space-around;align-items:center;padding:0 65px}.card-actions button{border:0;background:transparent;color:#243553;min-width:54px;height:48px;display:flex;align-items:center;gap:8px;justify-content:center;cursor:pointer}.card-actions svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.8}.card-actions button.active svg{fill:currentColor}.card-actions #likeButton.active{color:#ff6752}.card-actions #saveButton.active{color:var(--blue)}
.miniature-strip{position:absolute;z-index:-1;bottom:90px;left:0;width:100%;height:125px;object-fit:contain;object-position:center bottom;pointer-events:none}.bottom-nav{position:absolute;bottom:0;left:0;right:0;height:92px;background:rgba(255,255,255,.92);display:grid;grid-template-columns:repeat(5,1fr);padding:8px 7px 20px}.bottom-nav button{border:0;background:transparent;color:#8a9099;display:grid;justify-items:center;gap:2px;font-size:11px;cursor:pointer}.bottom-nav svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8}.bottom-nav .active{color:var(--blue);font-weight:750}.bottom-nav .active svg{fill:currentColor;stroke:currentColor}
.home-scrim{position:absolute;z-index:8;inset:0;background:rgba(10,20,33,.58)}.more-sheet{position:absolute;z-index:9;bottom:0;left:0;right:0;background:#fff;border-radius:28px 28px 0 0;padding:11px 22px 22px}.more-sheet>span{display:block;width:45px;height:4px;border-radius:9px;background:#c5c8cc;margin:0 auto}.more-sheet h2{text-align:center}.more-sheet button{width:100%;height:52px;border:0;border-bottom:1px solid #ececee;background:transparent;text-align:left;font-size:16px;color:#455064;cursor:pointer}.more-sheet button.danger{color:#f05b4b}.more-sheet button:last-child{text-align:center;color:var(--blue);border-bottom:0;font-weight:700}
.publish-screen{position:absolute;z-index:15;inset:0;background:linear-gradient(160deg,#fffaf2,#f3f8ff);padding:42px 22px 26px;font-family:"Source Han Sans SC","Noto Sans CJK SC","PingFang SC",sans-serif}.publish-screen header{height:54px;display:grid;grid-template-columns:60px 1fr 60px;align-items:center}.publish-screen header h2{text-align:center;font-size:19px}.publish-screen button{border:0;background:transparent;color:#17243a;font-size:15px;cursor:pointer}.publish-screen #submitCard{color:var(--blue);font-weight:750}.publish-screen #submitCard:disabled{color:#c9d6e8}.publish-privacy{display:flex;align-items:center;gap:8px;color:#5f6875;font-size:12px}.publish-privacy svg{width:22px;fill:none;stroke:#4781bd;stroke-width:1.8}.publish-screen textarea{width:100%;height:470px;border:0;background:transparent;outline:0;resize:none;padding:36px 0;color:#17243a;font-family:"Source Han Serif SC","Noto Serif CJK SC","Songti SC","SimSun",serif;font-weight:500;font-size:26px;line-height:1.55;letter-spacing:.1px}.publish-screen textarea::placeholder{color:#a0a4a8}.editor-footer{position:absolute;bottom:70px;left:22px;right:22px;display:flex;justify-content:space-between;color:#69717c;font-size:11px}.character-count{position:absolute;right:22px;bottom:45px;color:#5e6c80;font-size:12px}.editor-error{position:absolute;left:22px;bottom:43px;color:#f05b4b;font-size:12px}
@media(max-height:760px){.card-stage{height:430px}.card-stack{height:390px}.current-card{padding:34px 32px}.card-copy{font-size:25px}.miniature-strip{height:95px}.publish-screen textarea{height:390px}}
.max-length-pill{position:absolute;left:22px;bottom:35px;background:#e9f2ff;color:#526278;border-radius:999px;padding:7px 12px;font-size:12px}.character-count{bottom:39px}.editor-error{left:110px;bottom:42px}.card-actions #likeButton.pop{animation:likePop .28s cubic-bezier(.2,.85,.3,1.3)}
@keyframes likePop{50%{transform:scale(1.18)}100%{transform:scale(1)}}

/* v19: four-destination shell and profile surfaces */
.bottom-nav{grid-template-columns:repeat(4,1fr);padding-inline:12px;background:rgba(255,255,255,.95)}
.profile-screen{position:absolute;z-index:17;inset:0;overflow:hidden;background:linear-gradient(165deg,#eef7ff 0,#fffdf9 46%,#f8fbff 100%);color:#0d2247;font-family:"Source Han Sans SC","Noto Sans CJK SC","PingFang SC",sans-serif}
.profile-scroll{height:100%;overflow:auto;padding:48px 18px 118px;scrollbar-width:none}.profile-scroll::-webkit-scrollbar{display:none}
.profile-top{display:flex;align-items:center;justify-content:space-between}.profile-top h1{font-size:36px;margin:0;letter-spacing:-.035em}.profile-top>div{display:flex;gap:8px}.profile-top button{position:relative;width:44px;height:44px;border:0;background:transparent;color:#0d2247;font-size:27px}.profile-top button i{position:absolute;right:0;top:0;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#ff6956;color:white;font:700 10px/17px sans-serif}
.profile-identity{display:grid;grid-template-columns:140px 1fr;gap:16px;align-items:center;padding:10px 4px 2px}.profile-identity>img{width:138px;height:138px;object-fit:contain;filter:drop-shadow(0 12px 16px rgba(45,93,147,.16))}.profile-identity h2{margin:0 0 7px;font-size:26px}.profile-identity b{display:inline-block;padding:5px 9px;border-radius:8px;background:#4a98ff;color:white;font-size:12px}.profile-identity p{margin:9px 0;color:#66758a}.profile-identity button{min-height:44px;padding:0 18px;border:1px solid #dce7f6;border-radius:22px;background:white;color:#1768ef;font-weight:800;box-shadow:0 7px 18px rgba(37,83,142,.1)}
.profile-privacy{text-align:center;color:#7b8490;font-size:12px}.profile-passport,.profile-panel,.profile-list,.profile-quick{border-radius:20px;background:rgba(255,255,255,.9);box-shadow:0 9px 24px rgba(39,71,112,.08)}.profile-passport{padding:15px;margin-top:14px}.profile-passport>div:first-child{display:flex;justify-content:space-between;align-items:center}.profile-passport h3{margin:0;font-size:18px}.profile-passport>div>button{border:0;background:transparent;color:#1768ef}.stamp-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:13px}.stamp-cards button{min-width:0;aspect-ratio:.82;border:1px dashed #cbd7e6;border-radius:13px;background:#fffaf2;color:#17243a;font-weight:800}.stamp-cards small{display:block;margin-top:4px;color:#7b8797;font-weight:500;font-size:9px}
.profile-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:10px;margin-top:11px}.profile-panel{padding:14px}.profile-panel h3{margin:0 0 6px}.profile-panel button,.profile-list button{position:relative;width:100%;min-height:58px;border:0;border-bottom:1px solid #edf0f4;background:transparent;display:grid;grid-template-columns:34px 1fr auto 14px;grid-template-areas:"icon title count arrow" "icon note count arrow";align-items:center;text-align:left;color:#142744}.profile-panel button:last-child,.profile-list button:last-child{border-bottom:0}.profile-panel span,.profile-list span{grid-area:icon;color:#2774ee;font-size:22px}.profile-panel b,.profile-list b{grid-area:title;font-size:15px}.profile-panel small{grid-area:note;color:#7c8795;font-size:10px}.profile-panel strong{grid-area:count}.profile-panel em,.profile-list em{grid-area:arrow;color:#9ba5b2;font-style:normal;font-size:22px}
.profile-scroll-cue{margin:9px 0 -5px;text-align:center;color:#7a8798;font-size:12px}.profile-scroll-cue span{display:inline-block;margin-left:3px;color:#1768ef;animation:scrollCue 1.6s ease-in-out infinite}@keyframes scrollCue{50%{transform:translateY(3px)}}.profile-journey{width:100%;min-height:88px;margin:11px 0;border:1px solid #efd3a5;border-radius:20px;background:#fff3d9;display:flex;align-items:center;justify-content:space-between;padding:15px 17px;text-align:left;color:#173052}.profile-journey b,.profile-journey small{display:block}.profile-journey b{font-size:18px}.profile-journey small{margin-top:8px;color:#60718a}.profile-journey em{color:#1768ef;font-style:normal;white-space:nowrap}.profile-list{padding:5px 14px 92px}.profile-list button{grid-template-columns:34px 1fr auto 14px}.profile-list i{grid-area:count;min-width:20px;height:20px;border-radius:10px;background:#ff6755;color:#fff;text-align:center;font:700 11px/20px sans-serif}.profile-quick{display:grid;grid-template-columns:repeat(3,1fr);margin-top:11px;padding:9px}.profile-quick button{min-height:44px;border:0;border-right:1px solid #edf0f4;background:transparent;color:#34465f;font-size:11px}.profile-quick button:last-child{border:0}
.profile-detail{position:absolute;z-index:4;inset:0;background:#f7faff}.profile-detail>header{height:96px;padding:43px 16px 0;display:grid;grid-template-columns:56px 1fr 56px;align-items:center;background:linear-gradient(180deg,#edf7ff,#f7faff)}.profile-detail>header h2{margin:0;text-align:center;font-size:21px}.profile-detail>header button{min-height:44px;border:0;background:transparent;color:#1768ef;font-size:16px}.profile-detail #profileDetailBack{font-size:36px;text-align:left;color:#102646}.profile-detail-body,#profileDetailBody{height:calc(100% - 96px);overflow:auto;padding:18px 18px 38px}
.detail-group{margin-bottom:14px;border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(31,65,109,.07);overflow:hidden}.detail-row{width:100%;min-height:62px;padding:11px 15px;border:0;border-bottom:1px solid #edf0f4;background:#fff;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;text-align:left;color:#17243a}.detail-row:last-child{border:0}.detail-row b,.detail-row small{display:block}.detail-row small{margin-top:4px;color:#7b8796}.detail-row em{color:#1768ef;font-style:normal}.detail-hero{padding:20px;border-radius:20px;background:linear-gradient(145deg,#e8f5ff,#fff);text-align:center}.detail-avatar{width:104px;height:104px;object-fit:contain}.detail-input{width:100%;min-height:52px;margin-top:8px;padding:0 14px;border:1px solid #dce5f0;border-radius:13px;background:#fff;font:inherit}.detail-textarea{min-height:110px;padding-block:13px;resize:none}.detail-tabs{display:flex;gap:8px;margin-bottom:14px;overflow:auto}.detail-tabs button{min-height:42px;padding:0 17px;border:1px solid #d8e2ef;border-radius:21px;background:#fff;white-space:nowrap}.detail-tabs button.active{background:#2471f7;color:#fff;border-color:#2471f7}.empty-state{text-align:center;padding:58px 24px;color:#738096}.empty-state b{display:block;font-size:34px;color:#4b8ff5}.switch{width:48px;height:28px;border-radius:14px;background:#d9dde4;padding:3px}.switch::after{content:"";display:block;width:22px;height:22px;border-radius:50%;background:white;box-shadow:0 2px 5px rgba(0,0,0,.15)}.switch.on{background:#2776f5}.switch.on::after{margin-left:20px}.profile-bottom{z-index:3}
@media(max-height:760px){.profile-scroll{padding-top:33px}.profile-identity{grid-template-columns:105px 1fr}.profile-identity>img{width:104px;height:104px}.stamp-cards button{aspect-ratio:1}.profile-journey{min-height:72px}}

/* v20 accessibility, responsive and secondary-screen corrections */
.profile-scroll{padding-bottom:calc(132px + env(safe-area-inset-bottom))}.profile-identity>img,.detail-avatar{mix-blend-mode:multiply}.profile-detail[aria-modal="true"]{isolation:isolate}.profile-detail button:focus-visible,.city-page button:focus-visible{outline:3px solid rgba(23,104,255,.35);outline-offset:2px}.profile-detail select{appearance:auto}.profile-detail label>small{float:right;color:#768398;font-weight:500}.profile-detail-action:disabled,#profileDetailAction:disabled{color:#aeb9c9}.edit-portrait>div{display:flex;justify-content:center;gap:8px}.edit-portrait button{min-height:40px;padding:0 14px;border:1px solid #cfe0f6;border-radius:20px;background:white;color:#1768ef}.save-error{color:#d63d32;background:#fff0ed;border-radius:12px;padding:12px}.anonymous-history{display:grid;gap:12px}.anonymous-history article{padding:18px;border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(31,65,109,.07)}.anonymous-history article p{font:500 19px/1.55 "Source Han Serif SC","Noto Serif CJK SC","Songti SC",serif;color:#17243a}.anonymous-history article small{color:#798697}.anonymous-history article div{display:flex;align-items:center;gap:14px;margin-top:13px;color:#5e6d83}.anonymous-history article button{margin-left:auto;min-height:40px;border:0;background:transparent;color:#e15449}
.weather-row>span{display:none}.weather-row{gap:0}.filter-strip,.chip-row{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;padding-right:42px;-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 28px),transparent 100%);mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 28px),transparent 100%)}.filter-strip::-webkit-scrollbar,.chip-row::-webkit-scrollbar{display:none}.filter-strip button:last-child,.chip-row button:last-child{margin-right:28px}
.auth-screen{overflow-y:auto}.auth-screen::-webkit-scrollbar{display:none}
@media(max-width:420px){body{background:var(--warm)}.stage{display:block;min-height:100svh}.phone{width:100vw;height:100svh;min-height:100svh;border-radius:0}.content{padding-bottom:calc(34px + env(safe-area-inset-bottom))}}
@media(max-height:760px){.sky{height:278px}.hero-art{width:300px}.content{inset:238px 0 auto;min-height:calc(100svh - 238px);overflow:visible;padding-bottom:38px}.auth{height:50px}.consent{font-size:13px}.subtitle{font-size:14px}.profile-scroll{padding-bottom:128px}}
.profile-top button svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* v24: approved "world letter" visual, scoped to the existing home route. */
.home-world-letter{--world-nav-h:92px;background:linear-gradient(180deg,#dff3ff 0%,#eef8fb 58%,#fff9ed 100%);isolation:isolate}
.home-world-letter .home-topbar{position:relative;z-index:12;height:84px;padding:38px 22px 0;align-items:center}
.home-world-letter .card-stage{position:relative;z-index:7;height:430px;padding:0 8px;grid-template-columns:28px 1fr 28px;perspective:1100px}
.home-world-letter .card-arrow{font-size:29px;color:rgba(42,87,132,.38);min-height:54px;padding:0}
.home-world-letter .card-stack{width:min(324px,calc(100vw - 66px));height:410px;margin:0 auto}
.home-world-letter .anonymous-card{inset:0;height:410px;border-radius:25px 22px 26px 23px;background:radial-gradient(circle at var(--light-x,48%) 0,rgba(255,255,255,.9),transparent 31%),linear-gradient(150deg,#fffdf8,#fff9ef);box-shadow:0 21px 40px rgba(54,74,94,.14),0 6px 10px rgba(77,60,35,.055),inset 0 1px 0 rgba(255,255,255,.95);transform-origin:center bottom;transform-style:preserve-3d}
.home-world-letter .back-two{display:none}.home-world-letter .back-one{transform:translateY(7px) scale(.985) rotate(-.45deg);background:#f6ebd9;opacity:.62;box-shadow:0 9px 19px rgba(73,82,91,.07)}
.home-world-letter .current-card{padding:31px 27px 20px;display:flex;transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease;touch-action:pan-y;user-select:none;will-change:transform}
.home-world-letter .current-card::before{content:"";position:absolute;inset:2px 3px 6px;border-radius:23px;pointer-events:none;background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.3) 43%,transparent 68%);mix-blend-mode:soft-light}
.home-world-letter .current-card::after{content:"";position:absolute;right:29px;top:30px;width:42px;height:42px;border:1px solid rgba(45,102,157,.1);border-radius:50%;background:linear-gradient(167deg,transparent 47%,rgba(45,102,157,.08) 48% 50%,transparent 51%);rotate:8deg;pointer-events:none}
.home-world-letter .current-card.pressed{transform:translateY(2px) scale(.992);box-shadow:0 12px 25px rgba(54,74,94,.11),0 3px 6px rgba(77,60,35,.04);transition-duration:.1s}
.home-world-letter .current-card.dragging{transition:box-shadow .16s ease;box-shadow:0 31px 52px rgba(54,74,94,.19),0 10px 17px rgba(77,60,35,.08)}
.home-world-letter .current-card.holding{background:radial-gradient(circle at 50% 105%,rgba(255,209,112,.24),transparent 29%),linear-gradient(150deg,#fffdf8,#fff9ef)}
.home-world-letter .current-card.resonating::before{left:18%;right:18%;top:auto;bottom:-4px;height:12px;border-radius:50%;background:rgba(255,187,60,.7);filter:blur(10px);animation:homeResonance .8s ease-out forwards}
.home-world-letter .letter-copy-wrap{flex:1;display:flex;align-items:center;width:100%;min-width:0;min-height:0;overflow:hidden}.home-world-letter .card-copy{display:block;flex:none;width:100%;max-width:100%;margin:0;padding:0;color:#15345b;font:600 25px/1.58 "Source Han Serif SC","Noto Serif CJK SC","Songti SC","SimSun",serif;letter-spacing:.01em;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;text-wrap:pretty;transition:font-size .2s,line-height .2s}
.home-world-letter .current-card.copy-medium .card-copy{font-size:23px;line-height:1.55}.home-world-letter .current-card.copy-long .card-copy{font-size:20.5px;line-height:1.52;letter-spacing:0}
.home-world-letter .letter-meta{height:31px;display:flex;align-items:center;gap:7px;color:#7c715f}.home-world-letter .letter-meta small{font-size:13px;color:inherit}.home-world-letter .letter-pin{width:9px;height:9px;border:2px solid currentColor;border-radius:50%;position:relative}.home-world-letter .letter-pin::after{content:"";position:absolute;width:4px;height:5px;border-left:1.5px solid currentColor;transform:rotate(-32deg);left:4px;top:5px}
.home-world-letter .card-actions{height:54px;padding:9px 0 0;border-top:1px solid rgba(87,74,51,.1);display:flex;justify-content:space-between}.home-world-letter .letter-progress{display:flex;align-items:center;gap:5px}.home-world-letter .letter-progress i{width:7px;height:4px;border-radius:4px;background:#d9d8d2}.home-world-letter .letter-progress i.active{width:24px;background:#2d71e8}.home-world-letter .letter-actions{display:flex;align-items:center}.home-world-letter .card-actions button{min-width:42px;height:42px;padding:0 7px;color:#756c60}.home-world-letter .card-actions svg{width:22px;height:22px;stroke-linecap:round;stroke-linejoin:round}.home-world-letter .card-actions #likeButton.active{color:#f0644e}
.home-world-letter .home-world{position:absolute;z-index:3;left:0;right:0;bottom:var(--world-nav-h);height:248px;overflow:hidden;pointer-events:none}.home-world-letter .world-connections{position:absolute;inset:0;width:100%;height:100%;z-index:3}.home-world-letter .world-connections path{fill:none;stroke:rgba(255,187,74,.65);stroke-width:1.2;stroke-dasharray:2 4}.home-world-letter .world-traveler{fill:#fff8bd;filter:drop-shadow(0 0 4px #ffb52e)}
.home-world-letter .world-window{position:absolute;z-index:6;width:70px;height:58px;transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .45s}.home-world-letter .world-window img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 7px 10px rgba(35,77,108,.17))}.home-world-letter .world-window span{position:absolute;inset:0;border-radius:18px;background:radial-gradient(circle at 50% 55%,rgba(255,207,93,.72),transparent 64%);opacity:.22;mix-blend-mode:screen;transition:opacity .4s}.home-world-letter .world-window.active{filter:saturate(1.12) drop-shadow(0 8px 12px rgba(255,174,44,.28))}.home-world-letter .world-window.active span{opacity:1}.home-world-letter .window-0{left:50px;top:26px;transform:rotate(-3deg)}.home-world-letter .window-1{right:50px;top:25px;transform:rotate(3deg)}.home-world-letter .window-2{left:36px;bottom:35px;transform:rotate(2deg) scale(.94)}.home-world-letter .window-3{right:35px;bottom:36px;transform:rotate(-2deg) scale(.94)}.home-world-letter .world-window.active{translate:0 -5px;scale:1.05}
.home-world-letter .world-earth{position:absolute;z-index:7;left:50%;bottom:31px;translate:-50% 0;width:150px;height:150px;animation:homeEarthBreathe 3.4s ease-in-out infinite;filter:drop-shadow(0 14px 20px rgba(32,88,128,.18));transition:filter .2s}.home-world-letter .world-earth img{width:100%;height:100%;object-fit:contain}.home-world-letter .world-earth.card-held{filter:drop-shadow(0 14px 23px rgba(255,183,57,.3)) brightness(1.08)}.home-world-letter .earth-lamp-aura{position:absolute;z-index:-1;left:50%;top:101px;width:42px;height:34px;translate:-50% -50%;border-radius:48%;background:rgba(255,197,72,.5);filter:blur(11px);animation:homeLamp 2.7s ease-in-out infinite}
.home-world-letter .world-city-base{position:absolute;z-index:1;left:50%;bottom:8px;translate:-50% 0;width:440px;height:auto;opacity:.38;filter:saturate(.76) brightness(1.12)}.home-world-letter .world-cloud{position:absolute;left:50%;translate:-50% 0;height:auto}.home-world-letter .world-cloud-back{z-index:0;width:420px;top:23px;opacity:.3;animation:homeCloudBack 18s ease-in-out infinite}.home-world-letter .world-cloud-front{z-index:8;width:440px;bottom:-40px;opacity:.76;animation:homeCloudFront 14s ease-in-out infinite}
.home-world-letter .bottom-nav{z-index:20;backdrop-filter:blur(18px);box-shadow:0 -7px 26px rgba(50,78,98,.07)}
.home-world-letter .home-scrim{z-index:28}.home-world-letter .more-sheet{z-index:29}
.home-world-letter .home-topbar>div{gap:5px;padding:4px;border:1px solid rgba(255,255,255,.72);border-radius:26px;background:rgba(255,255,255,.52);box-shadow:0 9px 24px rgba(62,104,145,.09);backdrop-filter:blur(14px)}
.home-world-letter .home-topbar .say-button{position:relative}
.home-world-letter .home-topbar .inbox-button{width:44px;height:44px;border-radius:22px;display:grid;place-items:center;transition:transform .16s cubic-bezier(.16,1,.3,1),background .18s,box-shadow .18s}.home-world-letter .home-topbar .inbox-button:active{transform:scale(.9);background:rgba(255,255,255,.86)}.home-world-letter .home-topbar .inbox-button i{right:7px;top:7px;border:2px solid #eef8ff;animation:unreadPulse 2.8s ease-in-out infinite}
.home-world-letter .home-topbar .inbox-button::before{content:attr(data-tooltip);position:absolute;top:51px;left:50%;translate:-50% -4px;padding:6px 9px;border-radius:9px;background:#17385f;color:#fff;font-size:11px;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;box-shadow:0 7px 16px rgba(24,57,94,.18);transition:opacity .16s,translate .2s cubic-bezier(.16,1,.3,1)}.home-world-letter .home-topbar .inbox-button:hover::before,.home-world-letter .home-topbar .inbox-button:focus-visible::before{opacity:1;translate:-50% 0}.home-world-letter .home-topbar .inbox-button svg{transition:transform .28s cubic-bezier(.16,1,.3,1),stroke .18s}.home-world-letter .home-topbar .inbox-button:hover svg,.home-world-letter .home-topbar .inbox-button:focus-visible svg{transform:translateY(-1px) rotate(-3deg);stroke:#1768f4}.home-world-letter .home-topbar .inbox-button.button-open svg{animation:inboxOpen .38s cubic-bezier(.16,1,.3,1)}
.home-world-letter .home-topbar .say-button{height:44px;min-width:78px;padding:0 16px;border-radius:22px;background:linear-gradient(145deg,#3b83ff,#1764f4);color:#fff;font-size:15px;font-weight:780;box-shadow:0 8px 18px rgba(32,105,235,.23),inset 0 1px 0 rgba(255,255,255,.28);transition:transform .16s cubic-bezier(.16,1,.3,1),box-shadow .18s,filter .18s;overflow:hidden}.home-world-letter .home-topbar .say-button::after{content:"";position:absolute;width:28px;height:70px;top:-14px;left:-42px;rotate:24deg;background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);animation:composeGleam 4.8s ease-in-out infinite}.home-world-letter .home-topbar .say-button:active{transform:scale(.94);box-shadow:0 4px 10px rgba(32,105,235,.18);filter:saturate(.92)}
.home-world-letter .bottom-nav button{position:relative;isolation:isolate;transition:color .2s cubic-bezier(.16,1,.3,1),transform .18s cubic-bezier(.16,1,.3,1)}.home-world-letter .bottom-nav button::before{content:"";position:absolute;z-index:-1;top:1px;width:54px;height:36px;border-radius:18px;background:linear-gradient(145deg,rgba(61,139,255,.16),rgba(255,255,255,.7));box-shadow:0 7px 16px rgba(45,113,232,.09);opacity:0;transform:scale(.68);transition:opacity .2s,transform .25s cubic-bezier(.16,1,.3,1)}.home-world-letter .bottom-nav button.active::before{opacity:1;transform:scale(1)}.home-world-letter .bottom-nav button.active svg{transform:translateY(-2px) scale(1.05)}.home-world-letter .bottom-nav button svg{transition:transform .25s cubic-bezier(.16,1,.3,1)}.home-world-letter .bottom-nav button.nav-tap{animation:navTap .32s cubic-bezier(.16,1,.3,1)}
@keyframes unreadPulse{0%,72%,100%{box-shadow:0 0 0 0 rgba(255,102,85,0)}82%{box-shadow:0 0 0 5px rgba(255,102,85,.16)}}@keyframes composeGleam{0%,72%{transform:translateX(0);opacity:0}78%{opacity:.75}92%,100%{transform:translateX(145px);opacity:0}}@keyframes navTap{0%{transform:scale(1)}45%{transform:scale(.91)}100%{transform:scale(1)}}@keyframes inboxOpen{0%{transform:translateY(0) scale(1)}45%{transform:translateY(3px) scale(.9)}100%{transform:translateY(0) scale(1)}}
@keyframes homeEarthBreathe{0%,100%{transform:scale(1) translateY(0)}50%{transform:scale(1.018) translateY(-2px)}}@keyframes homeLamp{0%,100%{opacity:.42;transform:scale(.9)}50%{opacity:.92;transform:scale(1.18)}}@keyframes homeCloudBack{0%,100%{transform:translateX(-8px)}50%{transform:translateX(11px)}}@keyframes homeCloudFront{0%,100%{transform:translateX(8px)}50%{transform:translateX(-10px)}}@keyframes homeResonance{0%{opacity:0;transform:scaleX(.65)}45%{opacity:1;transform:scaleX(1)}100%{opacity:.28;transform:scaleX(.82)}}
@media(max-height:760px){.home-world-letter .home-topbar{height:72px;padding-top:27px}.home-world-letter .card-stage{height:390px}.home-world-letter .card-stack,.home-world-letter .anonymous-card{height:370px}.home-world-letter .current-card{padding:27px 25px 17px}.home-world-letter .home-world{height:220px}.home-world-letter .world-earth{width:132px;height:132px;bottom:27px}.home-world-letter .world-city-base{bottom:5px}.home-world-letter .world-window{width:62px;height:52px}.home-world-letter .window-0{top:22px}.home-world-letter .window-1{top:21px}}
@media(prefers-reduced-motion:reduce){.home-world-letter .world-traveler{display:none}.home-world-letter .world-earth,.home-world-letter .world-cloud,.home-world-letter .earth-lamp-aura,.home-world-letter .home-topbar .inbox-button i,.home-world-letter .home-topbar .say-button::after{animation:none}.home-world-letter .bottom-nav button,.home-world-letter .bottom-nav button svg{transition:color .12s}}

/* v27: one visible motion language across every copy of the primary tab bar. */
.phone .bottom-nav button{position:relative;isolation:isolate;overflow:visible;transition:color .2s cubic-bezier(.16,1,.3,1)}
.phone .bottom-nav button::before{content:"";position:absolute;z-index:-1;top:-1px;left:50%;width:62px;height:42px;border-radius:21px;background:linear-gradient(145deg,#e4f0ff 0%,#f8fbff 58%,#fff 100%);box-shadow:0 8px 18px rgba(39,104,205,.14),inset 0 1px 0 rgba(255,255,255,.96);opacity:0;transform:translateX(-50%) scale(.72);transition:opacity .2s,transform .3s cubic-bezier(.16,1,.3,1)}
.phone .bottom-nav button.active::before{opacity:1;transform:translateX(-50%) scale(1)}
.phone .bottom-nav button.active svg{filter:drop-shadow(0 4px 5px rgba(35,105,225,.18))}
.phone .bottom-nav button.nav-arrive::before{animation:navPillArrive .46s cubic-bezier(.16,1,.3,1)}.phone .bottom-nav button.nav-arrive svg{animation:navIconArrive .46s cubic-bezier(.16,1,.3,1)}
@keyframes navPillArrive{0%{transform:translateX(-50%) scale(.72);opacity:.25}68%{transform:translateX(-50%) scale(1.08);opacity:1}100%{transform:translateX(-50%) scale(1);opacity:1}}@keyframes navIconArrive{0%{transform:translateY(1px) scale(.86)}62%{transform:translateY(-4px) scale(1.12)}100%{transform:translateY(-2px) scale(1.05)}}
@media(prefers-reduced-motion:reduce){.phone .bottom-nav button.nav-arrive::before,.phone .bottom-nav button.nav-arrive svg{animation:none}}

/* Approved branded tab icon: orbit globe belongs only to “此刻”. */
.bottom-nav .brand-orbit-tab{position:relative;display:block;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 34% 27%,#8fd9ff 0 13%,#4c9cff 36%,#1769ec 76%,#0e55ce 100%);box-shadow:inset -3px -4px 6px rgba(15,71,157,.16),0 4px 8px rgba(35,105,225,.18);transition:transform .28s cubic-bezier(.16,1,.3,1),filter .2s}
.bottom-nav .brand-orbit-tab{width:31px;height:28px;border-radius:0;background:none;box-shadow:none}.bottom-nav .brand-orbit-tab>img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 5px rgba(35,105,225,.17));pointer-events:none}
.bottom-nav .brand-orbit-tab::before{content:"";position:absolute;left:-4px;top:6px;width:30px;height:10px;border:1.7px solid currentColor;border-radius:50%;transform:rotate(-18deg);box-shadow:0 1px 2px rgba(29,103,231,.1)}
.bottom-nav .brand-orbit-tab::before{display:none}
.bottom-nav .brand-orbit-tab::after{content:"";position:absolute;right:-2px;top:4px;width:5px;height:5px;border-radius:50%;background:#ffc65a;box-shadow:0 0 0 2px rgba(255,255,255,.82),0 0 8px 2px rgba(255,184,54,.52)}
.bottom-nav .brand-orbit-tab::after{right:auto;left:0;top:0;offset-path:ellipse(18px 7px at 15px 14px);offset-distance:8%;offset-rotate:0deg;animation:brandSignalOrbit 3.6s linear infinite;animation-play-state:paused}
.bottom-nav button.active .brand-orbit-tab::after{animation-play-state:running}
.bottom-nav button.active .brand-orbit-tab{transform:translateY(-2px) scale(1.05);filter:saturate(1.08) brightness(1.03)}
.bottom-nav button.nav-arrive .brand-orbit-tab{animation:brandOrbitArrive .48s cubic-bezier(.16,1,.3,1)}
@keyframes brandOrbitArrive{0%{transform:translateY(1px) scale(.82) rotate(-8deg)}65%{transform:translateY(-4px) scale(1.12) rotate(3deg)}100%{transform:translateY(-2px) scale(1.05) rotate(0)}}
@keyframes brandSignalOrbit{0%{offset-distance:8%;opacity:1;scale:1}43%{opacity:.7;scale:.8}50%{offset-distance:58%;opacity:.42;scale:.72}57%{opacity:.68;scale:.84}100%{offset-distance:108%;opacity:1;scale:1}}
@media(prefers-reduced-motion:reduce){.bottom-nav button.nav-arrive .brand-orbit-tab{animation:none}.bottom-nav .brand-orbit-tab::after{animation:none;offset-distance:8%}}

/* Matching colorful miniature icons for City, Games and Profile. */
.bottom-nav .brand-city-tab,.bottom-nav .brand-game-tab,.bottom-nav .brand-profile-tab{position:relative;display:block;width:28px;height:24px;filter:saturate(.62) opacity(.72);transition:transform .28s cubic-bezier(.16,1,.3,1),filter .22s}
.bottom-nav button.active :is(.brand-city-tab,.brand-game-tab,.brand-profile-tab){transform:translateY(-2px) scale(1.05);filter:saturate(1.08) opacity(1)}
.bottom-nav .brand-city-tab{display:flex;align-items:flex-end;justify-content:center;gap:1.5px;padding-bottom:2px}
.bottom-nav .brand-city-tab i{position:relative;display:block;width:7px;border-radius:2px 2px 1px 1px;box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 3px 5px rgba(47,91,145,.14)}.bottom-nav .brand-city-tab i:nth-child(1){height:14px;background:linear-gradient(#77caff,#398be6)}.bottom-nav .brand-city-tab i:nth-child(2){height:21px;background:linear-gradient(#4b89ff,#175fe7)}.bottom-nav .brand-city-tab i:nth-child(3){height:17px;background:linear-gradient(#9bdc79,#58ad55)}
.bottom-nav .brand-city-tab i::after{content:"";position:absolute;left:2px;top:4px;width:3px;height:2px;border-radius:1px;background:rgba(255,255,255,.78);box-shadow:0 5px 0 rgba(255,255,255,.62),0 10px 0 rgba(255,255,255,.48)}
.bottom-nav .brand-game-tab{width:30px;height:20px;margin-top:2px;border-radius:8px 8px 10px 10px;background:linear-gradient(145deg,#78baff,#4978ef 58%,#665bd6);box-shadow:inset 0 1px 0 rgba(255,255,255,.58),0 5px 8px rgba(65,91,187,.18)}.bottom-nav .brand-game-tab::before,.bottom-nav .brand-game-tab::after{content:"";position:absolute;bottom:-3px;width:9px;height:9px;border-radius:50%;background:inherit}.bottom-nav .brand-game-tab::before{left:1px}.bottom-nav .brand-game-tab::after{right:1px}.bottom-nav .brand-game-tab i{position:absolute;z-index:2;left:6px;top:8px;width:8px;height:2px;border-radius:2px;background:#fff}.bottom-nav .brand-game-tab i::after{content:"";position:absolute;left:3px;top:-3px;width:2px;height:8px;border-radius:2px;background:#fff}.bottom-nav .brand-game-tab b,.bottom-nav .brand-game-tab em{position:absolute;z-index:2;width:3.5px;height:3.5px;border-radius:50%;background:#fff}.bottom-nav .brand-game-tab b{right:7px;top:6px}.bottom-nav .brand-game-tab em{right:4px;top:10px}
.bottom-nav .brand-profile-tab{width:25px;height:24px;border-radius:12px 12px 8px 8px;background:linear-gradient(180deg,transparent 0 43%,#5ba9ec 44% 100%);box-shadow:0 4px 7px rgba(43,105,164,.14)}.bottom-nav .brand-profile-tab::before{content:"";position:absolute;left:6px;top:0;width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 35% 28%,#9be3ff,#50afe8 62%,#2a82cf);box-shadow:inset -2px -2px 3px rgba(19,85,148,.12)}.bottom-nav .brand-profile-tab::after{content:"";position:absolute;left:3px;right:3px;top:13px;height:3px;border-radius:3px;background:#ffc761;box-shadow:0 0 5px rgba(255,191,75,.28)}
.bottom-nav button.nav-arrive :is(.brand-city-tab,.brand-game-tab,.brand-profile-tab){animation:brandMiniArrive .46s cubic-bezier(.16,1,.3,1)}
@keyframes brandMiniArrive{0%{transform:translateY(1px) scale(.84);filter:saturate(.7) opacity(.6)}65%{transform:translateY(-4px) scale(1.11);filter:saturate(1.15) opacity(1)}100%{transform:translateY(-2px) scale(1.05);filter:saturate(1.08) opacity(1)}}
@media(prefers-reduced-motion:reduce){.bottom-nav button.nav-arrive :is(.brand-city-tab,.brand-game-tab,.brand-profile-tab){animation:none}}

/* Final transparent rendered navigation assets and their state-specific motion. */
.bottom-nav .rendered-nav-icon{position:relative;display:block;width:31px;height:28px;filter:saturate(.58) opacity(.7);transition:transform .28s cubic-bezier(.16,1,.3,1),filter .22s}.bottom-nav .rendered-nav-icon img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.bottom-nav button.active .rendered-nav-icon{transform:translateY(-2px) scale(1.06);filter:saturate(1.05) opacity(1) drop-shadow(0 4px 5px rgba(41,91,157,.15))}
.bottom-nav .nav-city-render{width:33px}.bottom-nav .nav-game-render{width:32px}.bottom-nav .nav-profile-render{width:29px}
.bottom-nav .city-window-flash{position:absolute;left:8px;top:9px;width:2px;height:3px;border-radius:1px;background:#fff3a4;box-shadow:5px 3px 0 #ffd768,11px -1px 0 #fff0a0,16px 5px 0 #ffc54f;opacity:0;filter:drop-shadow(0 0 2px #ffb633)}
.bottom-nav button.nav-arrive .city-window-flash{animation:cityWindowsWake .48s ease-in-out 2}
.bottom-nav .profile-eye-blink{position:absolute;left:9px;top:10px;width:4px;height:3px;border-radius:50%;background:#74b9ea;box-shadow:8px 0 0 #74b9ea;opacity:0;z-index:2}
.bottom-nav button.nav-arrive .profile-eye-blink{animation:profileBlink .95s ease-in-out 1}
.bottom-nav button.nav-arrive .rendered-nav-icon{animation:renderedIconArrive .46s cubic-bezier(.16,1,.3,1)}
@keyframes renderedIconArrive{0%{transform:translateY(1px) scale(.84)}65%{transform:translateY(-4px) scale(1.12)}100%{transform:translateY(-2px) scale(1.06)}}@keyframes cityWindowsWake{0%,100%{opacity:0}35%,67%{opacity:1}50%,82%{opacity:.18}}@keyframes profileBlink{0%,28%,48%,68%,100%{opacity:0;transform:scaleY(.2)}35%,42%,75%,82%{opacity:1;transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){.bottom-nav button.nav-arrive .rendered-nav-icon,.bottom-nav button.nav-arrive .city-window-flash,.bottom-nav button.nav-arrive .profile-eye-blink{animation:none}}

/* v21 navigation-stack isolation and finishing fixes */
.profile-detail{z-index:30}.profile-screen[aria-hidden="true"]{pointer-events:none}.profile-identity>img,.detail-avatar{mix-blend-mode:normal}.profile-icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-5px;margin-right:5px}.profile-panel span .profile-icon,.profile-list span .profile-icon{margin:0}.profile-detail #profileDetailBack:focus-visible,.city-page #cityPageBack:focus-visible{outline:2px solid #1768ff;outline-offset:2px;border-radius:10px}.profile-detail button:focus-visible,.city-page button:focus-visible{outline-width:2px}.city-page:has(.answer-box) .city-page-body{padding-bottom:calc(150px + env(safe-area-inset-bottom));scroll-padding-bottom:calc(120px + env(safe-area-inset-bottom))}.answer-box{padding-bottom:calc(12px + env(safe-area-inset-bottom));box-shadow:0 -10px 22px rgba(27,57,98,.07)}.city-page-body,#profileDetailBody,.city-scroll,.city-list,.detail-tabs,.filter-strip,.chip-row{scrollbar-width:none}.city-page-body::-webkit-scrollbar,#profileDetailBody::-webkit-scrollbar,.city-scroll::-webkit-scrollbar,.city-list::-webkit-scrollbar,.detail-tabs::-webkit-scrollbar,.filter-strip::-webkit-scrollbar,.chip-row::-webkit-scrollbar{display:none}

.scrim { position:absolute; z-index:8; inset:0; background:rgba(6,15,24,.56); backdrop-filter:blur(1px); }
.guest-sheet { position:absolute; z-index:9; left:0; right:0; bottom:0; min-height:390px; padding:26px 22px 24px; background:#fffdf9; border-radius:28px 28px 0 0; text-align:center; box-shadow:0 -14px 35px rgba(16,35,59,.13); animation:sheetIn .32s cubic-bezier(.2,.85,.2,1); }
.grabber { position:absolute; top:10px;left:50%;transform:translateX(-50%);width:45px;height:4px;border-radius:10px;background:#adb2b8; }
.guest-sheet > img { width:58px;height:58px;object-fit:contain;margin-top:3px; }
.guest-sheet h2 { margin:6px 0 6px; font-size:22px; }
.guest-sheet p { margin:0;color:#59606b;font-size:13px;line-height:1.65; }
.guest-features { display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0 18px; }
.guest-features span { color:#17345f;font-size:12px;font-weight:700;display:grid;gap:7px;justify-items:center;line-height:1.35; }
.guest-feature-icon { width:42px;height:42px;border:1.5px solid #9fc7ff;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#f7fbff,#e6f1ff);box-shadow:0 5px 12px rgba(36,112,224,.14),inset 0 1px 0 #fff; }
.guest-feature-icon svg { width:23px;height:23px;fill:none;stroke:#2470e0;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.sheet-primary,.sheet-secondary { width:100%;height:50px;border:0;border-radius:11px;font-weight:700;font-size:16px;cursor:pointer; }
.sheet-primary { color:white;background:linear-gradient(180deg,#2875ff,#1762f4); }
.sheet-secondary { color:var(--blue);background:transparent; }
.guest-sheet small { color:#7a7e85;font-size:11px; }

@keyframes shake { 25%{transform:translateX(-4px)} 50%{transform:translateX(4px)} 75%{transform:translateX(-2px)} }
@keyframes sheetIn { from{transform:translateY(100%);opacity:.7} to{transform:translateY(0);opacity:1} }
@media (max-width: 420px), (max-height: 870px) {
  .stage { padding:0; }
  .phone { border-radius:0; box-shadow:none; }
}
@media (max-height: 760px) {
  .phone { height:100svh; }
  .sky { height:295px; }
  .hero-art { width:315px; }
  .content { inset:264px 0 0; }
  .brand { font-size:30px;margin-bottom:10px; }
  h1 { font-size:22px; }
  .subtitle { margin:6px 0 11px; }
  .auth { height:44px; }
  .guest-link { min-height:38px; }
}
.ui-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.page-city-chip{border:1px solid #e1e6ee!important;border-radius:13px!important;background:#fff!important;padding:9px 13px!important;color:#173154!important;font-weight:750}.discover-map{width:calc(100% + 24px);height:170px;margin:-18px -12px -24px;object-fit:contain}.discover-search,.secondhand-search{height:55px;border-radius:18px;background:#fff;box-shadow:0 8px 20px rgba(35,68,115,.11);display:flex;align-items:center;gap:10px;padding:0 15px;margin:12px 0}.discover-search input,.secondhand-search input{flex:1;border:0;outline:0;font-size:15px}.filter-strip,.choice-row{display:flex;gap:7px;overflow:auto;padding:5px 0 12px;scrollbar-width:none}.filter-strip button,.choice-row button{flex:none;border:1px solid #e1e6ef;border-radius:999px;background:#fff;padding:9px 13px;color:#354665}.filter-strip button.active,.choice-row button.selected{background:#2471f7;color:#fff;border-color:#2471f7}.sample-photo{position:relative;min-height:108px;border-radius:16px;overflow:hidden;background:linear-gradient(145deg,#b8ddff,#f8d9ae)}.sample-photo span{position:absolute;top:8px;right:8px;padding:4px 7px;border-radius:8px;background:#ffffffe8;font-size:9px}.sample-photo b{position:absolute;left:12px;bottom:10px;color:#173154}.weekly-feature{position:relative;width:100%;height:176px;border:0;border-radius:20px;overflow:hidden;padding:20px;text-align:left;color:#10284e}.weekly-feature .sample-photo{position:absolute;inset:0}.weekly-feature .sample-photo span,.weekly-feature .sample-photo b{display:none}.weekly-feature strong,.weekly-feature small,.weekly-feature em{position:relative;z-index:2;display:block}.weekly-feature strong{font-size:24px;margin-top:46px}.weekly-feature small{margin:7px 0}.weekly-feature em{font-style:normal;color:#2471f7}.sample-photo.tram{background:linear-gradient(145deg,#d7e9d2,#8db287)}.sample-photo.island{background:linear-gradient(145deg,#a9dff2,#eff1c9)}.sample-photo.night{background:linear-gradient(145deg,#0f3262,#854d8d)}.sample-photo.cafe{background:linear-gradient(145deg,#cda77b,#f0dfc4)}.sample-photo.art{background:linear-gradient(145deg,#d9c8ef,#f2b682)}.sample-photo.park{background:linear-gradient(145deg,#83b581,#dce9bd)}.sample-photo.kettle,.sample-photo.lamp,.sample-photo.books,.sample-photo.rack{background:linear-gradient(145deg,#eee1d0,#cbd9e9)}.section-line{display:flex;align-items:center;gap:8px;margin:21px 0 10px}.section-line h3{margin:0;font-size:19px}.section-line small{color:#7b8595}.section-line button{margin-left:auto;border:0;background:transparent;color:#2471f7}.place-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.place-trio>button{border:0;background:transparent;text-align:left;padding:0}.place-trio .sample-photo{min-height:88px}.place-trio b,.place-trio small{display:block;margin-top:5px}.place-trio small svg{width:13px;vertical-align:middle}.inspiration-list>button{width:100%;display:grid;grid-template-columns:96px 1fr 18px;gap:10px;align-items:center;border:0;border-bottom:1px solid #e8ebef;background:transparent;padding:7px 0;text-align:left}.inspiration-list .sample-photo{min-height:68px}.inspiration-list b,.inspiration-list small{display:block}.inspiration-list small{margin-top:7px}.recommend-place-link{width:100%;margin-top:10px;border:1px solid #aeb9c9;border-radius:12px;background:#fff;padding:13px;font-weight:700}.emergency-banner{width:100%;height:72px;margin:18px 0;border:0;border-radius:18px;background:#fff5ef;color:#ff6352;display:grid;grid-template-columns:72px 1fr auto;align-items:center;text-align:left}.emergency-banner img{width:70px;height:62px;object-fit:contain}.segmented{display:grid;grid-template-columns:repeat(3,1fr);padding:4px;border-radius:16px;background:#f0f3f8}.segmented button{height:42px;border:0;border-radius:13px;background:transparent}.segmented button.active{background:#fff;color:#2471f7;box-shadow:0 5px 14px #203b5f17}.help-feed,.together-feed{display:grid;gap:12px;margin-top:14px}.help-card,.together-card{position:relative;min-height:168px;padding:16px;border-radius:20px;background:#fff;box-shadow:0 8px 22px #23375414}.person-row{display:flex;gap:10px;align-items:center}.person-row>span:last-child{display:grid}.person-avatar{width:45px;height:45px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#d3e5ff,#f3d7c7);font-weight:800}.help-card h3{width:63%;margin:14px 0 27px;font-size:17px;line-height:1.5}.help-card>img{position:absolute;right:18px;top:55px;width:82px;height:82px;object-fit:contain}.help-card>button,.together-card>button{position:absolute;right:15px;bottom:15px;border:0;border-radius:999px;background:#2471f7;color:#fff;padding:10px 15px}.together-head .safety-link{float:right;border:1px solid #dce3ed;border-radius:999px;background:#fff;padding:9px 13px}.together-head>img{width:calc(100% + 40px);height:215px;margin:0 -20px -20px;object-fit:contain}.together-card{min-height:190px}.together-card h3{width:70%}.together-card p{font-size:12px;line-height:1.65}.together-card>img{position:absolute;right:11px;top:46px;width:98px;height:98px;object-fit:contain}.goods-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:15px}.goods-card{border:0;border-radius:18px;background:#fff;padding:0 0 14px;overflow:hidden;text-align:left;box-shadow:0 8px 20px #20355414}.goods-card .sample-photo{border-radius:0;min-height:150px}.goods-card>b,.goods-card>strong,.goods-card>small,.goods-card>em{display:block;margin:8px 12px 0}.goods-card>strong,.goods-price{color:#ff5e53}.goods-card>em{font-style:normal;color:#2471f7;font-size:11px}.seller-entry{width:100%;border:0;border-radius:16px;background:#edf4ff;padding:15px;text-align:left}.seller-entry small{display:block;margin-top:5px}.best-time{width:100%;margin:16px 0 0;border:0;border-radius:16px;background:#fff4eb;color:#ff631f;padding:14px;text-align:left;font-weight:700}.city-form fieldset{border:0;padding:0;margin:0}.city-form legend{margin-bottom:8px;font-weight:750}.input-with-icon{display:flex;align-items:center;border:1px solid #dce3ec;border-radius:13px;background:#fff;padding:0 10px}.input-with-icon input{border:0}.field-count{text-align:right}.check-label{display:flex!important;align-items:center}.check-label input{width:18px}.city-form select{height:46px;border:1px solid #dce3ec;border-radius:13px;background:#fff;padding:0 12px}.upload-slots .uploaded{border-style:solid;background:#eaf3ff;font-size:11px}.city-toast{position:absolute;z-index:12;left:24px;right:24px;bottom:82px;padding:13px;border-radius:14px;background:#173154;color:#fff;text-align:center}.form-lead{text-align:center;color:#68778a}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation-duration:.01ms!important;transition-duration:.01ms!important; } }
.detail-profile{display:flex;align-items:center;gap:12px;margin:8px 0 22px}.detail-profile>div{display:grid;gap:5px}.detail-profile small{color:#748094}.detail-profile a{color:#2471f7;font-size:13px}.detail-title{font-size:24px;line-height:1.45}.detail-copy{font-size:16px;line-height:1.7;color:#43516a}.detail-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.detail-status{display:grid;grid-template-columns:1fr 1fr;margin:14px 0;padding:14px;border-radius:16px;background:#fff;text-align:center;color:#2471f7}.answer-list article{display:grid;grid-template-columns:46px 1fr;gap:11px;padding:15px 0;border-bottom:1px solid #e5e9ef}.answer-list p{line-height:1.65}.resolve-answer{border:1px solid #b8d0ff;border-radius:10px;background:#f5f9ff;color:#2471f7;padding:8px}.answer-box{position:sticky;bottom:0;display:grid;grid-template-columns:1fr 82px;gap:8px;padding:12px 0;background:#f9fbff}.answer-box input{border:1px solid #dde4ed;border-radius:999px;padding:0 15px}.answer-box button{border:0;border-radius:999px;background:#2471f7;color:#fff}.together-detail-card{padding:15px;border-radius:22px;background:#fff;box-shadow:0 10px 26px #243b6314}.together-detail-card .detail-profile{position:relative}.together-detail-card .detail-profile>img{position:absolute;right:0;width:92px;height:92px;object-fit:contain}.activity-facts{border:1px solid #e2e7ee;border-radius:16px;overflow:hidden}.activity-facts div{display:flex;justify-content:space-between;padding:15px;border-bottom:1px solid #e8ebef}.activity-facts div:last-child{border:0}.activity-facts dt,.activity-facts dd{margin:0}.prep-tags{display:flex;gap:8px}.prep-tags span,.participants>span{border:1px solid #dce3ed;border-radius:999px;padding:8px 12px}.participants{display:flex;align-items:center;gap:8px}.participants .person-avatar{width:42px;height:42px}.product-heading{display:flex;justify-content:space-between;align-items:center}.product-heading span{background:#e9f7ed;color:#27914a;border-radius:999px;padding:6px 10px}.goods-price small{color:#778396;font-size:13px}.seller-entry{display:grid!important;grid-template-columns:48px 1fr auto;align-items:center;gap:9px}.seller-entry>span{display:grid}.seller-entry em{font-style:normal;color:#2471f7}.seller-goods{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.seller-goods button{border:0;background:transparent;text-align:left;padding:0}.seller-goods .sample-photo{min-height:96px}.seller-goods b,.seller-goods small{display:block;margin-top:5px}.auto-count{display:block;text-align:right;color:#7b8595}.city-page-action[hidden]{display:none!important}
.discover-model-frame{height:180px!important;margin:-12px -20px -18px!important}.discover-model-frame img{width:100%!important;height:100%!important;object-fit:contain!important;transform:none!important}.publish-final{padding-bottom:30px}.publish-final textarea{min-height:150px}.upload-large{width:120px;height:86px;border:1px dashed #8bb3fa;border-radius:14px;background:#f7faff;color:#2471f7}.emergency-note{padding:14px;border-radius:14px;background:#fff1ec;color:#f05c4b}.switch-row{display:flex!important;justify-content:space-between}.search-screen>label{height:54px;display:flex;align-items:center;gap:9px;border:1px solid #dce3ed;border-radius:18px;padding:0 14px}.search-screen input{flex:1;border:0;outline:0;font-size:16px}.recent-chips{display:flex;gap:8px}.recent-chips button{border:1px solid #dce3ed;border-radius:12px;background:#f6f8fb;padding:9px 13px}.search-screen li{padding:15px 0;border-bottom:1px solid #e6e9ee}.mixed-results article,.inbox-list article{padding:16px 0;border-bottom:1px solid #e4e8ed;display:block}.mixed-results small,.inbox-list small,.inbox-shortcuts small{display:block;margin-top:6px;color:#737f91}.inbox-shortcuts{display:grid;gap:8px}.inbox-shortcuts button{min-height:70px;border:0;border-radius:16px;background:#fff;text-align:left;padding:14px;font-weight:700}.inbox-list button{border:0;border-radius:999px;padding:8px 12px;margin:10px 5px 0;background:#2471f7;color:#fff}.nine-uploads{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.product-photo-slot{aspect-ratio:1;border:1px dashed #b8c6da;border-radius:12px;background:#fafcff;color:#a2aec0}.product-photo-slot.has-photo{background:#eaf3ff;color:#2471f7;border-style:solid}.draft-prompt{position:absolute;z-index:20;left:20px;right:20px;bottom:24px;padding:18px;border-radius:20px;background:#fff;box-shadow:0 15px 45px #102a4e38}.draft-prompt h3,.draft-prompt p{margin:0 0 10px}.draft-prompt button{width:100%;height:44px;border:0;border-radius:11px;margin-top:7px}.draft-prompt button:first-of-type{background:#2471f7;color:#fff}
.discover-topline{display:flex;justify-content:space-between;align-items:center}.recommend-top{border:0;background:transparent;color:#10284e;font-size:28px}.recommend-top small{display:block;font-size:10px}.discover-model-frame{height:168px;margin:-16px 34px -16px;overflow:hidden;background:#fff}.discover-model-frame img{width:100%;height:100%;object-fit:cover;transform:scale(1.52);object-position:center 52%}.weekly-photo{width:100%;padding:0;border:0;border-radius:20px;overflow:hidden;background:#fff}.weekly-photo img{display:block;width:100%;height:auto}.place-trio>button>img{width:100%;aspect-ratio:1.24;object-fit:cover;border-radius:14px}.inspiration-list>button>img{width:96px;height:68px;object-fit:cover;border-radius:12px}.detail-hero-photo{display:block;width:calc(100% + 40px);height:auto;margin:-14px -20px 0}.place-trio small{display:flex;align-items:center;gap:3px;color:#758094}.inspiration-list em{font-style:normal;color:#69768a}.city-page-body img{max-width:100%}

/* Hong Kong city hub fidelity pass */
.city-hub-head button{position:relative;font-size:0}.city-hub-head button svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.city-hub-head .city-name{display:flex;align-items:center;gap:7px;font-size:22px}.city-hub-head .city-name svg{width:18px}.city-hub-head i{position:absolute;right:3px;top:5px}.city-menu{position:absolute;z-index:6;top:87px;left:18px;width:250px;padding:15px;border-radius:18px;background:#fff;box-shadow:0 16px 35px rgba(22,42,74,.18)}.city-menu p{margin:0 0 9px;font-weight:800}.city-menu div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.city-menu button{height:40px;border:0;border-radius:10px;background:#f3f6fb;color:#33435e}.city-menu button.active{background:#2471f7;color:#fff}.city-menu small{display:block;margin-top:10px;color:#7a8494}.city-question{margin-bottom:-19px}.hk-scene{width:calc(100% + 64px);height:250px;margin:-20px -32px -10px;object-fit:cover;object-position:center 48%}.city-bottom button{display:grid!important;place-content:center;justify-items:center;gap:3px}.city-bottom button svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8}.city-bottom button.active svg{fill:currentColor}.city-bottom button small{font-size:11px}.place-photo{height:190px;border-radius:22px;background:linear-gradient(145deg,#cfe7ff,#fbe2bd);display:grid;place-items:center;color:#48607e;font-weight:700}.place-photo::after{content:"地点实景照片示例位"}.place-title{font-size:27px;margin:20px 0 8px}.place-tags{display:flex;gap:8px}.place-tags span{padding:7px 10px;border-radius:9px;background:#edf4ff;color:#2471f7}.place-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.place-actions button{min-height:52px;border:1px solid #e0e6ef;border-radius:14px;background:#fff;color:#183154;font-weight:700}.detail-section{padding:16px 0;border-bottom:1px solid #e3e7ed}.detail-section h3{margin:0 0 9px}.detail-section p{margin:4px 0;color:#657083}.city-form{display:grid;gap:16px}.city-form label{display:grid;gap:7px;font-weight:750}.city-form input,.city-form textarea{width:100%;border:1px solid #dce3ec;border-radius:13px;background:#fff;padding:13px;font:inherit;outline:none}.city-form textarea{min-height:92px;resize:none}.city-form input:focus,.city-form textarea:focus{border-color:#2471f7;box-shadow:0 0 0 3px rgba(36,113,247,.11)}.upload-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.upload-slots button,.upload-slots span{aspect-ratio:1;border:1px dashed #8db7ff;border-radius:12px;display:grid;place-items:center;background:#f7faff;color:#2471f7;font-size:24px}.form-note{padding:11px;border-radius:12px;background:#fff3ef;color:#9a4034;font-size:12px;line-height:1.5}.status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.status-grid button{min-height:48px;border:1px solid #dce3ec;border-radius:12px;background:#fff;color:#33435e}.status-grid button.selected{border-color:#2471f7;background:#edf4ff;color:#2471f7}

.city-hub{position:absolute;z-index:16;inset:0;overflow:hidden;background:linear-gradient(160deg,#f8fbff,#fffdf9 55%,#f6f9ff);color:#0d2247;font-family:"Source Han Sans SC","Noto Sans CJK SC","PingFang SC",sans-serif}.city-hub button{font:inherit}.city-hub-head{height:100px;padding:43px 22px 0;display:flex;justify-content:space-between;align-items:center}.city-hub-head button{min-width:44px;height:44px;border:0;background:transparent;color:#0d2247;font-size:25px;cursor:pointer}.city-hub-head .city-name{font-size:22px;font-weight:800;text-align:left}.city-hub-head>div{display:flex;gap:9px}.city-hub-head i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#ff6752;vertical-align:top}.city-scroll{height:calc(100% - 88px);overflow:auto;padding:4px 22px 130px;scrollbar-width:none}.city-question{margin:8px 0 2px;font-size:19px;letter-spacing:.01em}.hk-scene{width:calc(100% + 18px);height:245px;margin:0 -9px;object-fit:contain}.weather-row{display:flex;gap:12px;align-items:center;margin:-6px 5px 16px;color:#246cf3}.weather-row span{font-size:29px}.weather-row b{padding:8px 15px;border-radius:999px;background:#f2f6ff;color:#5e6c86;font-weight:500;box-shadow:0 5px 14px rgba(33,75,138,.1)}.city-feature{position:relative;width:100%;min-height:126px;border:0;border-radius:22px;background:#fffaf4;color:#0d2247;text-align:left;padding:23px 17px;overflow:hidden;cursor:pointer;box-shadow:0 10px 24px rgba(38,61,97,.11);transition:transform .22s cubic-bezier(.2,.85,.2,1),box-shadow .22s}.city-feature:active{transform:scale(.985);box-shadow:0 5px 14px rgba(38,61,97,.1)}.city-feature span{position:relative;z-index:2;display:grid;justify-items:start}.city-feature strong{font-size:22px}.city-feature small{margin-top:6px;color:#657083;font-size:13px}.city-feature em{margin-top:20px;color:#286ff2;font-style:normal;font-size:13px}.city-feature img{position:absolute;right:-5px;bottom:-8px;width:48%;height:112px;object-fit:contain}.discover-feature{height:190px;background:linear-gradient(145deg,#2575ff,#1763ee);color:white}.discover-feature strong{font-size:26px}.discover-feature small,.discover-feature em{color:#eaf2ff}.discover-feature img{width:60%;height:175px}.help-feature{margin-top:13px}.help-feature img{width:35%;height:100px}.help-feature em{position:absolute;right:14px;top:26px;color:#ff6555;border:1px solid #ffb2a7;border-radius:999px;padding:8px 10px}.city-duo{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:13px}.city-duo .city-feature{height:174px;padding:19px 15px}.city-duo .city-feature img{width:88%;height:115px;right:-5px}.city-publish{position:absolute;z-index:3;right:22px;bottom:91px;border:0;border-radius:999px;background:#2471f7;color:white;padding:13px 20px;font-weight:750;box-shadow:0 8px 20px rgba(34,104,240,.28);cursor:pointer}.city-bottom{z-index:2}.city-bottom button{display:grid!important;place-content:center;gap:3px}.city-bottom button span{font-size:25px}.city-bottom button small{font-size:11px}.city-page{position:absolute;z-index:7;inset:0;background:#f9fbff;overflow:hidden}.city-page>header{height:100px;padding:43px 18px 0;display:grid;grid-template-columns:44px 1fr 44px;align-items:center}.city-page>header button{height:44px;border:0;background:transparent;color:#0c2247;font-size:36px;cursor:pointer}.city-page>header h2{text-align:center;font-size:22px}.city-page-body{height:calc(100% - 100px);overflow:auto;padding:14px 20px 95px}.module-hero{width:100%;height:188px;object-fit:contain;border-radius:22px;background:#fff}.module-intro{font-size:20px;line-height:1.45}.chip-row{display:flex;gap:8px;overflow:auto;margin:13px 0}.chip-row button{border:1px solid #dce3ee;border-radius:999px;background:white;padding:9px 14px;white-space:nowrap;color:#526078}.chip-row button.active{background:#2471f7;color:white;border-color:#2471f7}.module-card{display:grid;grid-template-columns:1fr 92px;min-height:120px;margin:12px 0;padding:16px;border-radius:20px;background:white;box-shadow:0 8px 22px rgba(40,61,95,.08)}.module-card h3{margin:0 0 7px;font-size:17px}.module-card p{margin:0;color:#697487;font-size:13px;line-height:1.55}.module-card img{width:92px;height:92px;object-fit:contain}.module-card button{align-self:end;justify-self:start;border:0;border-radius:999px;background:#2471f7;color:white;padding:8px 14px}.city-page-action{position:absolute;z-index:2;bottom:20px;left:50%;transform:translateX(-50%);min-width:210px;border:0;border-radius:999px;background:#2471f7;color:white;padding:14px 23px;font-weight:750;box-shadow:0 8px 20px rgba(34,104,240,.25)}.city-shade{position:absolute;z-index:8;inset:0;background:rgba(10,23,42,.58)}.publish-picker{position:absolute;z-index:9;left:0;right:0;bottom:0;padding:12px 22px 25px;border-radius:28px 28px 0 0;background:#fffdf9;animation:sheetIn .28s cubic-bezier(.2,.85,.2,1)}.publish-picker>i{display:block;width:44px;height:4px;margin:0 auto;border-radius:9px;background:#c7c9cc}.publish-picker h2{text-align:center;margin:16px 0 3px}.publish-picker>p{text-align:center;margin:0 0 12px;color:#6d7480}.publish-picker>button{width:100%;height:78px;border:0;border-radius:17px;background:#fffaf4;margin:6px 0;display:grid;grid-template-columns:74px 1fr 20px;align-items:center;text-align:left;color:#0d2247}.publish-picker img{width:70px;height:66px;object-fit:contain}.publish-picker b,.publish-picker small{display:block}.publish-picker b{font-size:17px}.publish-picker small{margin-top:5px;color:#687286}.publish-picker .picker-cancel{display:block;text-align:center;height:48px;background:transparent;color:#2471f7;font-weight:750}

/* v36 dynamic miniature city demo: isolated to the city hero */
.city-world-stage{position:relative;height:265px;margin:0 -7px 5px;overflow:hidden;border-radius:24px;background:linear-gradient(180deg,#fff 0%,#f7fbff 72%,#eaf5ff 100%);box-shadow:inset 0 0 0 1px rgba(96,143,199,.1),0 12px 28px rgba(40,85,143,.09);touch-action:none;cursor:grab;isolation:isolate}.city-world-stage:active{cursor:grabbing}.city-world-stage:focus-visible{outline:3px solid rgba(36,113,247,.28);outline-offset:3px}.city-world-canvas{position:absolute;inset:0;transform-origin:center 58%;will-change:transform;transition:transform .28s cubic-bezier(.16,1,.3,1)}.city-world-stage.is-dragging .city-world-canvas{transition:none}.city-world-stage .hk-scene{position:absolute;inset:8px -12px auto;width:calc(100% + 24px);height:205px;margin:0;pointer-events:none;user-select:none}.city-wheel-motion{position:absolute;z-index:3;left:50.2%;top:114px;width:36px;height:36px;margin-left:-18px;border:3px solid rgba(214,197,160,.92);border-radius:50%;filter:drop-shadow(0 2px 2px rgba(47,67,82,.16));animation:cityWheelSpin 16s linear infinite}.city-wheel-motion::before,.city-wheel-motion::after,.city-wheel-motion i::before,.city-wheel-motion i::after{content:"";position:absolute;left:50%;top:50%;width:2px;height:30px;border-radius:2px;background:rgba(120,132,134,.76);transform-origin:50% 50%}.city-wheel-motion::before{transform:translate(-50%,-50%)}.city-wheel-motion::after{transform:translate(-50%,-50%) rotate(90deg)}.city-wheel-motion i::before{transform:translate(-50%,-50%) rotate(45deg)}.city-wheel-motion i::after{transform:translate(-50%,-50%) rotate(-45deg)}.city-wheel-motion i{position:absolute;inset:13px;border-radius:50%;background:#f5e7c8;box-shadow:0 0 0 2px #738b9a}.city-lighthouse-beam{position:absolute;z-index:4;left:12.2%;top:89px;width:112px;height:44px;transform-origin:0 50%;background:linear-gradient(90deg,rgba(255,238,153,.62),rgba(255,246,194,0));clip-path:polygon(0 42%,100% 0,100% 100%,0 58%);filter:blur(1px);mix-blend-mode:screen;animation:cityLightSweep 5.2s ease-in-out infinite}.city-boat-motion{position:absolute;z-index:5;left:43%;top:165px;width:33px;height:19px;animation:cityBoatTravel 12s ease-in-out infinite}.city-boat-motion::before{content:"";position:absolute;left:2px;bottom:2px;width:29px;height:8px;border-radius:2px 2px 10px 10px;background:linear-gradient(#d2673d,#8d402a);box-shadow:0 3px 0 -1px rgba(80,155,199,.34)}.city-boat-motion::after{content:"";position:absolute;left:8px;bottom:9px;width:17px;height:8px;border-radius:6px 6px 2px 2px;background:#f3dfbd;box-shadow:inset 0 -3px #e38b54}.city-boat-motion i{position:absolute;left:15px;top:0;width:2px;height:10px;background:#705b46}.city-world-controls{position:absolute;z-index:8;right:10px;bottom:10px;display:grid;grid-template-columns:44px 58px 44px;gap:5px;padding:5px;border-radius:18px;background:rgba(255,255,255,.9);box-shadow:0 8px 20px rgba(39,73,117,.16);backdrop-filter:blur(12px)}.city-world-controls button{min-width:44px;height:44px;border:0;border-radius:13px;background:#f2f6fd;color:#205da9;font-size:22px;font-weight:760}.city-world-controls button:active{transform:scale(.94)}.city-world-controls #cityZoomReset{font-size:11px;background:#fff;color:#61708a}.city-world-hint{position:absolute;z-index:7;left:12px;bottom:13px;margin:0;padding:7px 10px;border-radius:12px;background:rgba(255,255,255,.82);color:#6a778a;font-size:10px;backdrop-filter:blur(8px);pointer-events:none}.city-world-stage.is-zoomed .city-world-hint{opacity:0}.city-world-stage.is-zoomed .city-world-canvas{cursor:grab}@keyframes cityWheelSpin{to{rotate:360deg}}@keyframes cityLightSweep{0%,100%{transform:rotate(-14deg);opacity:.25}50%{transform:rotate(17deg);opacity:.82}}@keyframes cityBoatTravel{0%,100%{transform:translateX(-22px) translateY(1px) rotate(-1deg)}50%{transform:translateX(54px) translateY(-2px) rotate(1deg)}}@media(prefers-reduced-motion:reduce){.city-wheel-motion,.city-lighthouse-beam,.city-boat-motion{animation:none}.city-world-canvas{transition:none}.city-world-hint{display:none}}@media(max-width:370px){.city-world-stage{height:246px}.city-world-stage .hk-scene{height:192px}.city-world-controls{right:7px;bottom:7px}.city-world-hint{display:none}}
/* v36 motion control accessibility override */
.city-world-controls{grid-template-columns:44px 44px 58px 44px}
.city-world-controls #cityMotionToggle{font-size:10px;color:#526681}
.city-world-stage.is-paused :is(.city-wheel-motion,.city-lighthouse-beam,.city-boat-motion){animation-play-state:paused}

/* v37: animate the actual miniature-world assets, not CSS stand-ins */
.city-world-stage .city-world-canvas{overflow:visible}
.city-world-stage .city-scene-layer{position:absolute;left:-13px;top:38px;width:calc(100% + 26px);aspect-ratio:2048/683;pointer-events:none;user-select:none}
.city-world-stage .city-scene-layer .hk-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;margin:0}

/* v83 marketplace interaction and compact listing form */
.city-form,.city-form>*{min-width:0}
.nine-uploads{width:100%;min-width:0;grid-template-columns:repeat(3,minmax(0,1fr))}
.product-photo-slot{width:100%;min-width:0;max-width:100%;font-size:12px;overflow-wrap:anywhere}
.secondhand-filter-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:-2px 0 12px;padding:12px;border:1px solid #dce5ef;border-radius:16px;background:#fff}
.secondhand-filter-panel button{min-height:42px;border:1px solid #dce5ef;border-radius:12px;background:#f8faff;color:#334a67}
.secondhand-filter-panel button.selected{border-color:#2471f7;background:#edf4ff;color:#2471f7}
.secondhand-filter-panel .apply-filter{grid-column:1/-1;border:0;background:#2471f7;color:#fff;font-weight:750}
.seller-collection{display:grid;gap:10px;margin-top:14px}
.seller-collection button{width:100%;min-height:78px;padding:13px;border:0;border-radius:17px;background:#fff;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:10px;text-align:left;box-shadow:0 7px 19px rgba(32,53,84,.08)}
.seller-collection span{display:grid;gap:4px}.seller-collection small{color:#758399}.seller-collection em{color:#2471f7;font-style:normal}
.secondhand-empty{grid-column:1/-1;padding:44px 18px;text-align:center;color:#738096}
.city-world-stage .city-scene-layer .city-wheel-motion{position:absolute;z-index:3;left:47%;top:50%;width:9%;height:auto;margin:0;border:0;border-radius:0;filter:drop-shadow(0 1px 1px rgba(47,67,82,.16));transform-origin:50% 47%;animation:cityRealWheelSpin 15s linear infinite}
.city-world-stage .city-scene-layer .city-ferry-motion{position:absolute;z-index:4;left:51.5%;top:55%;width:26%;height:auto;filter:drop-shadow(0 2px 1px rgba(32,75,96,.2));animation:cityRealFerryTravel 12s ease-in-out infinite}
.city-world-stage .city-scene-layer .city-lighthouse-beam{left:12%;top:47%;width:28%;height:25%}
.city-world-stage .city-wheel-motion::before,.city-world-stage .city-wheel-motion::after,.city-world-stage .city-wheel-motion i,.city-world-stage .city-boat-motion{display:none}
.city-world-stage.is-paused :is(.city-wheel-motion,.city-lighthouse-beam,.city-ferry-motion){animation-play-state:paused}
@keyframes cityRealWheelSpin{to{transform:rotate(360deg)}}
@keyframes cityRealFerryTravel{0%,100%{transform:translateX(-8%) translateY(1px) rotate(-.25deg)}50%{transform:translateX(18%) translateY(-2px) rotate(.25deg)}}
@media(prefers-reduced-motion:reduce){.city-wheel-motion,.city-lighthouse-beam,.city-ferry-motion{animation:none}}
@media(max-width:370px){.city-world-stage .city-scene-layer{top:36px}}

/* v38: quiet zoom controls, fixed Ferris-wheel support, higher-contrast lighthouse */
.city-world-stage .city-wheel-motion{display:none}
.city-world-stage .city-wheel-assembly{position:absolute;z-index:3;left:47%;top:50%;width:9%;aspect-ratio:1/1;display:block;filter:drop-shadow(0 1px 1px rgba(47,67,82,.16))}
.city-wheel-assembly .city-wheel-base,.city-wheel-assembly .city-wheel-rotor,.city-wheel-assembly .city-wheel-rotor img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.city-wheel-assembly .city-wheel-base{clip-path:inset(70% 0 0 0)}
.city-wheel-assembly .city-wheel-rotor{height:72%;overflow:hidden}
.city-wheel-assembly .city-wheel-rotor img{height:139%;transform-origin:50% 43%;animation:cityWheelRotorSpin 15s linear infinite}
@keyframes cityWheelRotorSpin{to{transform:rotate(360deg)}}
.city-world-stage .city-scene-layer .city-lighthouse-beam{z-index:4;left:12.1%;top:47%;width:31%;height:20%;opacity:.88;background:linear-gradient(90deg,rgba(255,189,58,.92) 0%,rgba(255,214,92,.48) 32%,rgba(255,239,171,0) 100%);filter:blur(.35px) drop-shadow(0 0 5px rgba(255,174,38,.5));mix-blend-mode:multiply;clip-path:polygon(0 45%,100% 3%,100% 97%,0 55%)}
.city-world-stage .city-lighthouse-lamp{position:absolute;z-index:5;left:12.05%;top:51.2%;width:5px;height:5px;border-radius:50%;background:#fff7bf;box-shadow:0 0 3px 2px #ffc247,0 0 10px 5px rgba(255,163,30,.72);animation:cityLampPulse 2.6s ease-in-out infinite}
@keyframes cityLampPulse{50%{transform:scale(1.22);box-shadow:0 0 4px 3px #ffd66b,0 0 13px 7px rgba(255,153,22,.82)}}
.city-world-controls{left:50%;right:auto;bottom:8px;transform:translateX(-50%);display:grid;grid-template-columns:44px 44px;gap:4px;padding:3px;border-radius:15px;background:rgba(255,255,255,.86);box-shadow:0 5px 14px rgba(39,73,117,.13)}
.city-world-controls button{width:44px;min-width:44px;height:40px;border-radius:12px;font-size:21px;background:transparent}
.city-world-controls button+button{border-left:1px solid rgba(53,91,139,.12);border-radius:0 12px 12px 0}
.city-world-stage.is-paused :is(.city-wheel-rotor img,.city-lighthouse-beam,.city-lighthouse-lamp,.city-ferry-motion){animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.city-wheel-rotor img,.city-lighthouse-beam,.city-lighthouse-lamp,.city-ferry-motion{animation:none}}

/* v39: physically separated wheel layers and miniature-world controls */
.city-world-stage .city-wheel-assembly{left:47%;top:49.5%;width:9.2%;overflow:visible}
.city-wheel-assembly .city-wheel-base{clip-path:none;transform:translateY(13%) scale(.88);transform-origin:50% 50%}
.city-wheel-assembly .city-wheel-rotor{inset:0;width:100%;height:100%;overflow:visible}
.city-wheel-assembly .city-wheel-rotor img{inset:0;width:100%;height:100%;object-fit:contain;transform-origin:50% 50%;animation:cityWheelRotorSpin 15s linear infinite}
.city-world-stage .city-scene-layer .city-lighthouse-beam{left:12%;top:48.5%;width:28%;height:15%;opacity:.75;background:linear-gradient(90deg,rgba(226,247,255,.98) 0%,rgba(164,220,246,.45) 38%,rgba(135,202,236,0) 100%);filter:blur(.7px) drop-shadow(0 0 4px rgba(116,197,236,.38));mix-blend-mode:normal;clip-path:polygon(0 43%,100% 8%,100% 92%,0 57%)}
.city-world-stage .city-lighthouse-lamp{display:none}
.city-world-controls{left:auto;right:9px;bottom:9px;transform:none;grid-template-columns:34px 34px;gap:1px;padding:2px;border-radius:12px;background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(237,245,251,.92));box-shadow:0 4px 12px rgba(38,80,120,.14),inset 0 0 0 1px rgba(118,157,190,.18)}
.city-world-controls button{width:34px;min-width:34px;height:34px;border-radius:10px;font-size:18px;color:#26649a;background:transparent}
.city-world-controls button+button{border-left:1px solid rgba(69,112,148,.14);border-radius:0 10px 10px 0}
.city-world-hint{display:block;left:10px;right:auto;bottom:10px;padding:6px 9px;border-radius:10px;background:rgba(247,251,254,.88);color:#6a8195;font-size:9px;letter-spacing:.01em;box-shadow:0 3px 10px rgba(41,78,112,.08);backdrop-filter:none}
.city-world-stage.is-zoomed .city-world-hint{opacity:1}
@media(max-width:370px){.city-world-hint{display:block}.city-world-controls{right:7px;bottom:7px}}

/* v40: compact embedded city plinth with miniature weather station */
.city-world-stage{height:220px;background:linear-gradient(180deg,#fff 0 70%,#eef7fd 70% 100%)}
.city-world-stage .city-scene-layer{top:24px}
.city-world-stage::after{content:"";position:absolute;z-index:6;left:0;right:0;bottom:0;height:56px;background:linear-gradient(180deg,rgba(232,245,253,0),rgba(222,240,251,.5));pointer-events:none}
.city-weather-mini{position:absolute;z-index:9;left:9px;bottom:9px;height:36px;display:flex;align-items:center;gap:5px;padding:0 9px 0 7px;border-radius:11px;background:linear-gradient(180deg,#fff,rgba(235,246,252,.96));box-shadow:0 4px 12px rgba(42,85,121,.12),inset 0 0 0 1px rgba(121,164,196,.18);color:#244f75;pointer-events:none}
.city-weather-mini svg{width:24px;height:20px;overflow:visible;fill:#e8f5fb;stroke:#6fa8c9;stroke-width:1.2;filter:drop-shadow(0 2px 2px rgba(66,124,159,.16))}
.city-weather-mini span{display:flex;align-items:baseline;gap:4px;white-space:nowrap}
.city-weather-mini strong{font-size:15px;font-weight:760;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.city-weather-mini small{font-size:9px;font-weight:650;color:#66849b}
.city-world-hint{left:112px;bottom:17px;padding:0;background:transparent;box-shadow:none;color:#72899b;font-size:8px}
.city-world-controls{right:8px;bottom:9px;grid-template-columns:32px 32px}
.city-world-controls button{width:32px;min-width:32px;height:36px}
@media(max-width:370px){.city-world-stage{height:214px}.city-world-stage .city-scene-layer{top:22px}.city-world-hint{left:108px;bottom:16px;font-size:7.5px}}

/* v41: two switchable miniature weather-model concepts */
.city-weather-mini{height:40px;padding-left:4px;gap:2px;overflow:visible}
.city-weather-model{position:relative;display:block;width:40px;height:44px;flex:0 0 40px;overflow:visible}
.city-weather-model img{position:absolute;inset:auto;width:50px;height:50px;object-fit:contain;pointer-events:none;transform-origin:50% 75%;filter:drop-shadow(0 3px 3px rgba(45,91,126,.16))}
.city-weather-model .weather-station-model{left:-5px;bottom:-2px;display:block}
.city-weather-model .weather-cloud-model{left:-5px;bottom:-2px;display:none;animation:cityWeatherFloat 4.2s ease-in-out infinite}
html[data-weather="cloud"] .city-weather-model .weather-station-model{display:none}
html[data-weather="cloud"] .city-weather-model .weather-cloud-model{display:block}
@keyframes cityWeatherFloat{50%{transform:translateY(-2px) rotate(.5deg)}}
.city-weather-mini strong{font-size:14px}.city-weather-mini small{font-size:8.5px}
.city-world-hint{left:126px}
@media(prefers-reduced-motion:reduce){.city-weather-model .weather-cloud-model{animation:none}}
@media(max-width:370px){.city-world-hint{left:122px}}

/* v42: reusable modular weather island — sunny/cloudy/overcast/rain/snow/storm */
.city-weather-mini{border:0;font:inherit;cursor:pointer;text-align:left;pointer-events:auto}
.city-weather-mini:active{transform:scale(.97)}
.city-weather-mini:focus-visible{outline:2px solid rgba(50,123,178,.38);outline-offset:2px}
.city-weather-model{width:45px;height:46px;flex-basis:45px}
.city-weather-model>img{position:absolute;width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(39,80,112,.16));transition:opacity .2s ease,filter .3s ease}
.weather-island-base{left:-4px;bottom:-5px;z-index:1}
.weather-island-sun{left:-2px;top:-10px;z-index:2;display:none;animation:weatherSunBreathe 4.8s ease-in-out infinite}
.weather-island-clouds,.weather-island-storm{left:-3px;top:-8px;z-index:3;display:none;animation:weatherCloudDrift 4.4s ease-in-out infinite}
.weather-island-storm{filter:drop-shadow(0 3px 3px rgba(30,65,94,.22))}
html[data-weather-state="sunny"] .weather-island-sun,html[data-weather-state="cloudy"] .weather-island-sun,html[data-weather-state="cloudy"] .weather-island-clouds,html[data-weather-state="overcast"] .weather-island-storm,html[data-weather-state="rain"] .weather-island-storm,html[data-weather-state="snow"] .weather-island-clouds,html[data-weather-state="storm"] .weather-island-storm{display:block}
html[data-weather-state="cloudy"] .weather-island-sun{left:5px;top:-12px;opacity:.88}
.weather-rain,.weather-snow{position:absolute;z-index:4;left:6px;top:22px;width:35px;height:23px;display:none;overflow:hidden}
.weather-rain i{position:absolute;top:-6px;width:2px;height:7px;border-radius:2px;background:#52a7dc;animation:weatherRainFall .8s linear infinite}.weather-rain i:nth-child(1){left:4px}.weather-rain i:nth-child(2){left:13px;animation-delay:-.3s}.weather-rain i:nth-child(3){left:22px;animation-delay:-.55s}.weather-rain i:nth-child(4){left:31px;animation-delay:-.18s}
.weather-snow i{position:absolute;top:-5px;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(64,122,157,.28);animation:weatherSnowFall 2s linear infinite}.weather-snow i:nth-child(1){left:3px}.weather-snow i:nth-child(2){left:12px;animation-delay:-.7s}.weather-snow i:nth-child(3){left:23px;animation-delay:-1.3s}.weather-snow i:nth-child(4){left:31px;animation-delay:-.35s}
html[data-weather-state="rain"] .weather-rain,html[data-weather-state="storm"] .weather-rain,html[data-weather-state="snow"] .weather-snow{display:block}
.weather-lightning{position:absolute;z-index:5;left:20px;top:22px;width:12px;height:18px;display:none;fill:#e9b83e;filter:drop-shadow(0 0 3px rgba(255,210,66,.75));animation:weatherLightning 3.2s steps(1,end) infinite}
html[data-weather-state="storm"] .weather-lightning{display:block}
@keyframes weatherCloudDrift{50%{transform:translateX(1.5px) translateY(-1px)}}
@keyframes weatherSunBreathe{50%{transform:scale(1.035);filter:drop-shadow(0 0 4px rgba(255,206,75,.28))}}
@keyframes weatherRainFall{to{transform:translateY(28px)}}
@keyframes weatherSnowFall{to{transform:translate(3px,27px) rotate(180deg)}}
@keyframes weatherLightning{0%,9%,13%,100%{opacity:0}10%,12%{opacity:1}}
@media(prefers-reduced-motion:reduce){.weather-island-sun,.weather-island-clouds,.weather-island-storm,.weather-rain i,.weather-snow i,.weather-lightning{animation:none}}

/* v43: corrected, precomposed cloudy state with a shared canvas and no character face */
.weather-state-composite{display:none;position:absolute;z-index:6;left:-6px;top:-7px;width:57px!important;height:57px!important;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(39,80,112,.16))!important;animation:weatherCloudIslandFloat 4.4s ease-in-out infinite}
html[data-weather-state="cloudy"] .weather-state-cloudy{display:block}
html[data-weather-state="cloudy"] .weather-island-base,html[data-weather-state="cloudy"] .weather-island-sun,html[data-weather-state="cloudy"] .weather-island-clouds{display:none}
@keyframes weatherCloudIslandFloat{50%{transform:translateY(-1px)}}
@media(prefers-reduced-motion:reduce){.weather-state-composite{animation:none}}

/* v44: every state uses one aligned sprite; the model slot can never cover data */
.city-weather-mini{width:114px;box-sizing:border-box;overflow:hidden;justify-content:flex-start}
.city-weather-model{width:43px;height:40px;flex:0 0 43px;overflow:hidden;border-radius:8px}
.weather-state-composite{left:0;top:0;width:43px!important;height:40px!important;animation:weatherCloudIslandFloat 4.4s ease-in-out infinite}
.city-weather-copy{position:relative;z-index:8;display:flex;align-items:baseline;gap:3px;min-width:0;white-space:nowrap}
html[data-weather-state="sunny"] .weather-state-sunny,html[data-weather-state="cloudy"] .weather-state-cloudy,html[data-weather-state="overcast"] .weather-state-overcast,html[data-weather-state="rain"] .weather-state-rain,html[data-weather-state="snow"] .weather-state-snow,html[data-weather-state="storm"] .weather-state-storm{display:block}
html[data-weather-state] .weather-island-base,html[data-weather-state] .weather-island-sun,html[data-weather-state] .weather-island-clouds,html[data-weather-state] .weather-island-storm,html[data-weather-state] .weather-rain,html[data-weather-state] .weather-snow,html[data-weather-state] .weather-lightning{display:none}
.city-world-hint{left:132px}
@media(max-width:370px){.city-world-hint{left:128px}}

/* v47: transparent miniature + balanced Explore card */
.discover-feature{height:176px;min-height:176px;padding:0;display:block;background:linear-gradient(118deg,#dbeeff 0%,#eaf5ff 58%,#f2f8ff 100%);color:#123d72;isolation:isolate;box-shadow:0 10px 24px rgba(39,77,121,.11)}
.discover-feature:active{transform:none}
.discover-feature::before{content:"";position:absolute;z-index:0;left:17px;top:24px;width:3px;height:28px;border-radius:3px;background:#2c75ef;box-shadow:0 34px 0 rgba(44,117,239,.16);pointer-events:none}
.discover-copy{position:absolute;z-index:5;inset:0 auto 0 0;width:42%;padding:25px 8px 20px 29px;border:0;background:transparent;color:#123d72;text-align:left;cursor:pointer}
.discover-copy span{display:grid!important;justify-items:start!important}
.discover-copy strong{white-space:nowrap;font-size:24px!important;letter-spacing:-.02em;color:#123d72}
.discover-copy small{margin-top:8px!important;color:#607a98!important;font-size:11px!important;line-height:1.65;white-space:nowrap}
.discover-copy em{margin-top:17px!important;color:#276fd9!important;font-size:9.5px!important;font-weight:750;white-space:nowrap}
.discover-model{position:absolute;z-index:4;right:-9px;top:2px;width:68%;height:171px;perspective:720px;touch-action:none;cursor:grab;user-select:none;overflow:visible}
.discover-model:active{cursor:grabbing}
.discover-turntable{position:absolute;inset:0;transform-origin:52% 68%;transform-style:preserve-3d;will-change:transform}
.discover-turntable>img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important;margin:0!important;background:transparent!important;filter:drop-shadow(0 10px 8px rgba(41,75,108,.16));backface-visibility:hidden}
.discover-model.is-dragging .discover-turntable>img{filter:drop-shadow(0 13px 10px rgba(41,75,108,.2))}
.discover-hotspot{position:absolute;z-index:7;width:30px;height:30px;border:0;border-radius:50%;background:transparent;cursor:pointer}
.discover-hotspot:focus-visible{outline:2px solid #2471f7;outline-offset:2px;background:rgba(255,255,255,.5)}
.discover-hotspot.pin{left:48%;top:15%}.discover-hotspot.camera{left:16%;top:67%}.discover-hotspot.tram{left:17%;top:42%}.discover-hotspot.ferry{left:52%;top:65%}
.discover-motion-state{display:none!important}
@media(prefers-reduced-motion:reduce){.discover-turntable{will-change:auto}.discover-motion-state{display:none!important}}
@media(max-width:370px){.discover-feature{height:170px;min-height:170px}.discover-copy{width:43%;padding-left:15px}.discover-model{width:66%;height:164px}.discover-copy strong{font-size:22px!important}}

/* v51: approved help, together and secondhand miniature cards */
.help-feature{height:132px;min-height:132px;margin-top:14px;padding:23px 18px;background:#fffaf3}
.help-feature span{max-width:62%}
.help-feature strong{font-size:22px}
.help-feature small{margin-top:7px;white-space:nowrap;font-size:12px;line-height:1.5}
.help-feature img{right:4px!important;bottom:-2px!important;width:43%!important;height:126px!important;background:transparent!important;object-fit:contain!important;filter:drop-shadow(0 7px 7px rgba(58,66,79,.08))}
.city-duo{gap:12px;margin-top:14px}
.city-duo .city-feature{height:178px;min-height:178px;padding:12px 15px 18px;background:#fffaf3;overflow:hidden}
.city-duo .city-feature span{position:absolute!important;left:15px;right:12px;top:12px;display:block;max-width:none}
.city-duo .city-feature strong{font-size:21px;white-space:nowrap}
.city-duo .city-feature small{display:block;margin-top:6px;white-space:nowrap;font-size:11px;line-height:1.5}
.city-duo .city-feature img{right:1px!important;bottom:-7px!important;width:96%!important;height:126px!important;background:transparent!important;object-fit:contain!important;filter:drop-shadow(0 7px 7px rgba(58,66,79,.08))}
@media(max-width:370px){.help-feature small{font-size:11px}.city-duo .city-feature{padding-inline:13px}.city-duo .city-feature small{font-size:10px}}

/* v55: interactive help search, filters and official emergency contacts */
.emergency-numbers{display:grid;gap:12px}
.emergency-warning{margin:0;padding:14px;border-radius:16px;background:#fff0ec;color:#c84234;line-height:1.5}
.emergency-call{display:grid;grid-template-columns:86px 1fr;align-items:center;gap:14px;padding:18px;border-radius:20px;background:#fff;color:#0d2247;text-decoration:none;box-shadow:0 8px 22px rgba(40,61,95,.08)}
.emergency-call>strong{font-size:38px;color:#e34f43}
.emergency-call span{font-weight:750;line-height:1.5}
.emergency-call small{font-weight:500;color:#738096}
.emergency-numbers article{padding:17px;border-radius:18px;background:#fff}
.emergency-numbers article p{margin:7px 0 0;color:#657083;line-height:1.55}
.source-line{font-size:11px;color:#7b8797;text-align:center}
.help-search-box{margin-top:4px}
.help-empty{display:grid;place-items:center;align-content:center;min-height:220px;text-align:center;color:#5f7085}
.help-empty small{margin-top:7px}
.help-card:focus-visible{outline:3px solid rgba(36,113,247,.35);outline-offset:2px}
.mixed-results>button{display:grid;width:100%;gap:5px;padding:15px;border:0;border-radius:14px;background:#fff;color:#10264a;text-align:left;box-shadow:0 4px 14px rgba(35,61,94,.06)}
.mixed-results>button+button{margin-top:9px}
.mixed-results>button small{color:#718096}

/* v57: compact miniature-style city message control */
.city-hub-head .city-message-button{width:44px;min-width:44px;border:1px solid rgba(188,211,238,.75);border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(235,245,255,.94));box-shadow:0 7px 16px rgba(39,78,123,.12),inset 0 1px 0 #fff;display:grid;place-items:center;transition:transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .18s}
.city-hub-head .city-message-button svg{width:24px;height:24px;stroke:#1c579b;stroke-width:1.7}
.city-hub-head .city-message-button svg circle{fill:#1c579b;stroke:none}
.city-hub-head .city-message-button i{right:-1px;top:-2px;width:10px;height:10px;border:2px solid #f8fbff;background:#ff6555;box-shadow:0 2px 5px rgba(255,101,85,.3)}
.city-hub-head .city-message-button:active{transform:scale(.93);box-shadow:0 3px 9px rgba(39,78,123,.11),inset 0 1px 0 #fff}
.city-hub-head .city-message-button:focus-visible{outline:3px solid rgba(36,113,247,.24);outline-offset:2px}

/* v58: the same message control language everywhere */
.home-world-letter .home-topbar .unified-message-button{width:44px;height:44px;border:1px solid rgba(188,211,238,.75);border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(235,245,255,.94));box-shadow:0 7px 16px rgba(39,78,123,.12),inset 0 1px 0 #fff}
.home-world-letter .home-topbar .unified-message-button svg{width:24px;height:24px;stroke:#1c579b;stroke-width:1.7;fill:none}
.home-world-letter .home-topbar .unified-message-button svg circle{fill:#1c579b;stroke:none}
.home-world-letter .home-topbar .unified-message-button i{right:-1px;top:-2px;width:10px;height:10px;border:2px solid #f8fbff;background:#ff6555;box-shadow:0 2px 5px rgba(255,101,85,.3)}
.home-world-letter .home-topbar .unified-message-button:active{transform:scale(.93);background:linear-gradient(145deg,#fff,#eaf4ff);box-shadow:0 3px 9px rgba(39,78,123,.11),inset 0 1px 0 #fff}

/* v59: profile identity frame and unified controls */
.profile-top>div{gap:10px}
.profile-top .profile-message-button,.profile-top .profile-settings-button{width:44px;height:44px;border:1px solid rgba(188,211,238,.72);border-radius:15px;background:linear-gradient(145deg,#fff,#edf6ff);box-shadow:0 7px 16px rgba(39,78,123,.11),inset 0 1px 0 #fff;display:grid;place-items:center}
.profile-top .profile-message-button svg{width:24px;height:24px;stroke:#1c579b;stroke-width:1.7}
.profile-top .profile-message-button svg circle{fill:#1c579b;stroke:none}
.profile-top .profile-message-button i{right:-2px;top:-3px;border:2px solid #eef7ff;box-sizing:content-box}
.profile-top .profile-settings-button svg{width:24px;height:24px;stroke:#355d8b}
.profile-top :is(.profile-message-button,.profile-settings-button):active{transform:scale(.93)}
.profile-identity{grid-template-columns:132px 1fr;gap:18px;padding:13px 2px 6px}
.profile-avatar-frame{position:relative;width:126px;height:126px;border:0;border-radius:34px;background:linear-gradient(145deg,#fff 8%,#dcefff 100%);box-shadow:0 13px 27px rgba(37,88,142,.16),inset 0 1px 0 #fff;display:grid;place-items:center;overflow:visible;cursor:pointer}
.profile-avatar-frame::before{content:"";position:absolute;inset:7px;border:1px solid rgba(113,178,237,.38);border-radius:28px;pointer-events:none}
.profile-avatar-frame .profile-avatar-halo{position:absolute;inset:19px;border-radius:50%;background:#eef8ff;box-shadow:inset 0 0 18px rgba(86,161,224,.16)}
.profile-avatar-frame>img{position:relative;z-index:1;width:116px;height:116px;object-fit:contain;filter:drop-shadow(0 8px 9px rgba(45,93,147,.14))}
.profile-avatar-camera{position:absolute;z-index:3;right:-6px;bottom:-5px;width:36px;height:36px;border:3px solid #f7fbff;border-radius:14px;background:#2471f7;color:#fff;display:grid;place-items:center;box-shadow:0 6px 13px rgba(36,113,247,.3)}
.profile-avatar-camera svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.profile-avatar-frame:focus-visible{outline:3px solid rgba(36,113,247,.3);outline-offset:4px}
.profile-avatar-frame.avatar-updated{animation:avatarConfirm .48s cubic-bezier(.2,.85,.2,1)}
@keyframes avatarConfirm{50%{transform:scale(1.045);box-shadow:0 17px 32px rgba(37,88,142,.22),inset 0 1px 0 #fff}}
.profile-identity h2{font-size:25px;letter-spacing:-.02em}
.profile-identity>div>button{min-height:42px;padding-inline:16px}
.profile-privacy{margin:9px 0 13px}
.profile-passport{margin-top:0}
@media(max-width:370px){.profile-identity{grid-template-columns:116px 1fr;gap:13px}.profile-avatar-frame{width:110px;height:110px;border-radius:30px}.profile-avatar-frame>img{width:102px;height:102px}.profile-identity h2{font-size:22px}.profile-identity>div>button{padding-inline:12px}}
@media(prefers-reduced-motion:reduce){.profile-avatar-frame.avatar-updated{animation:none}}

/* v60: two-part profile rhythm, collectible stamps and balanced content hub */
.profile-scroll{scroll-padding-top:24px}
.profile-identity{padding-bottom:13px}
.verification-badge{display:inline-flex!important;width:auto!important;min-height:30px!important;padding:0 9px!important;border:0!important;border-radius:9px!important;background:#3988f7!important;color:#fff!important;box-shadow:none!important;font-size:11px!important;font-weight:750!important}
.identity-privacy{display:block;margin-top:10px;color:#748398;font-size:10px;line-height:1.35;white-space:nowrap}
.identity-privacy .profile-icon{width:15px;height:15px;margin-right:3px;vertical-align:-3px}
.profile-passport{padding:16px 15px 14px;border-radius:22px}
.stamp-cards{gap:10px}
.stamp-cards .city-stamp{position:relative;aspect-ratio:.88;border:0;border-radius:16px;background:#f4f9ff;color:#1768ef;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(137,183,230,.35)}
.stamp-cards .city-stamp::before{content:attr(data-stamp-city);position:absolute;left:50%;top:9px;translate:-50% 0;width:32px;height:32px;border:1px dashed #72a9e5;border-radius:50%;display:grid;place-items:center;color:#79a4d1;font:800 9px/1 sans-serif;opacity:.8}
.stamp-cards .city-stamp span{display:block;margin-top:28px;font-size:13px}
.stamp-cards .city-stamp small{font-size:9px;color:#73859a}
.stamp-cards .add-city-stamp{background:#fff;border:1px dashed #bfd0e4;box-shadow:none}
.stamp-cards .add-city-stamp::before{display:none}
.stamp-cards .add-city-stamp span{margin-top:0;font-size:22px}
.profile-content-hub{margin-top:11px;padding:15px;border-radius:22px;background:rgba(255,255,255,.92);box-shadow:0 9px 24px rgba(39,71,112,.08)}
.profile-content-hub h3{margin:0 0 11px;font-size:18px}
.profile-content-hub>div{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.profile-content-hub button{min-width:0;min-height:92px;padding:10px 3px;border:0;border-radius:15px;background:#f6f9fd;color:#142744;display:grid;justify-items:center;align-content:center;gap:5px;text-align:center}
.profile-content-hub button span{width:34px;height:34px;border-radius:12px;background:#e8f2ff;color:#2471f7;display:grid;place-items:center}
.profile-content-hub button b{font-size:12px;white-space:nowrap}
.profile-content-hub button small{font-size:9px;color:#7a8798;white-space:nowrap}
.profile-content-hub button:active{background:#edf5ff;transform:scale(.97)}
.profile-scroll-cue{margin:16px 0 3px}
.profile-journey{margin-top:8px}
.profile-list{padding-bottom:12px}
.profile-quick{margin-bottom:18px}
.avatar-action-sheet{position:absolute;z-index:40;left:16px;right:16px;bottom:calc(92px + env(safe-area-inset-bottom));padding:10px;border-radius:22px;background:#fff;box-shadow:0 18px 50px rgba(17,45,81,.24)}
.avatar-action-sheet h3{margin:7px 8px 10px;font-size:17px}
.avatar-action-sheet button{width:100%;min-height:48px;border:0;border-bottom:1px solid #edf0f4;background:transparent;color:#174d91;font-weight:700}
.avatar-action-sheet button:last-child{border:0;color:#68778b}
.avatar-sheet-shade{position:absolute;z-index:39;inset:0;background:rgba(19,38,66,.24)}
.avatar-crop-preview{width:132px;height:132px;margin:8px auto 14px;border-radius:34px;background:#edf7ff;overflow:hidden;display:grid;place-items:center;box-shadow:inset 0 0 0 1px #d3e6f7}
.avatar-crop-preview img{width:100%;height:100%;object-fit:cover;transition:transform .12s}
.avatar-crop-sheet label{display:grid;grid-template-columns:44px 1fr;align-items:center;gap:8px;padding:4px 10px 10px;color:#66768a;font-size:13px}
.avatar-crop-sheet input{width:100%;accent-color:#2471f7}
@media(max-width:370px){.profile-content-hub{padding-inline:10px}.profile-content-hub>div{gap:4px}.profile-content-hub button b{font-size:11px}.identity-privacy{font-size:9px}.stamp-cards{gap:6px}}

/* v61: medal-safe footprints, aligned two-column content, hard first-section boundary */
.profile-overview{min-height:calc(100svh - 48px);display:flex;flex-direction:column}
.stamp-cards .city-stamp{aspect-ratio:auto;min-height:86px;padding:8px 3px;display:grid;grid-template-rows:38px auto auto;align-content:center;justify-items:center;gap:2px}
.stamp-cards .city-stamp::before{display:none}
.stamp-cards .city-stamp .stamp-medal{width:36px;height:36px;margin:0;border:1px dashed #72a9e5;border-radius:50%;display:grid;place-items:center;background:#fff;color:#79a4d1;font:800 9px/1 sans-serif}
.stamp-cards .city-stamp b{font-size:12px;line-height:1.2;color:#1768ef}
.stamp-cards .city-stamp small{margin:0;font-size:8px;line-height:1.2}
.stamp-cards .add-city-stamp .stamp-medal{font-size:20px;border-style:solid}
.profile-content-hub{margin-bottom:14px}
.profile-content-hub>.profile-content-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.profile-content-columns>div{min-width:0;border-radius:16px;background:#f8faff;padding:0 10px}
.profile-content-hub .profile-content-columns button{width:100%;min-height:66px;padding:8px 0;border-radius:0;border-bottom:1px solid #e5ebf2;background:transparent;display:grid;grid-template-columns:32px 1fr 13px;grid-template-areas:"icon title arrow" "icon note arrow";align-items:center;justify-items:start;gap:0 7px;text-align:left}
.profile-content-hub .profile-content-columns button:last-child{border-bottom:0}
.profile-content-hub .profile-content-columns button span{grid-area:icon;width:30px;height:30px;border-radius:10px}
.profile-content-hub .profile-content-columns button b{grid-area:title;font-size:13px}
.profile-content-hub .profile-content-columns button small{grid-area:note;font-size:9px}
.profile-content-hub .profile-content-columns button em{grid-area:arrow;color:#9ba8b8;font-style:normal;font-size:18px}
.profile-scroll-cue{margin:12px 0 8px}
.profile-journey{margin-top:0}
@media(max-height:760px){.profile-overview{min-height:calc(100svh - 33px)}}
@media(max-width:370px){.profile-content-hub>.profile-content-columns{gap:7px}.profile-content-columns>div{padding-inline:7px}.profile-content-hub .profile-content-columns button{grid-template-columns:28px 1fr 10px;gap:0 5px}.profile-content-hub .profile-content-columns button b{font-size:12px}.profile-content-hub .profile-content-columns button small{font-size:8px}}

/* v62: filled overview and a dedicated second-page journey */
.profile-scroll{scroll-snap-type:y proximity}
.profile-overview,.profile-management{scroll-snap-align:start}
.profile-overview{min-height:calc(100svh - 48px)}
.profile-passport{padding-block:18px}
.stamp-cards .city-stamp{min-height:103px;grid-template-rows:47px auto auto;gap:3px}
.stamp-cards .city-stamp .stamp-medal{width:44px;height:44px;font-size:10px;background:linear-gradient(145deg,#fff,#eaf5ff);box-shadow:0 5px 11px rgba(53,105,158,.1)}
.stamp-cards .city-stamp b{font-size:13px}
.stamp-cards .city-stamp small{font-size:9px}
.profile-content-hub .profile-content-columns button{min-height:74px}
.profile-management{min-height:calc(100svh - 48px);padding-top:8px;padding-bottom:calc(100px + env(safe-area-inset-bottom));display:flex;flex-direction:column;box-sizing:border-box}
.profile-management .profile-scroll-cue{margin:0 0 10px;min-height:20px}
.profile-management .profile-journey{position:relative;width:100%;min-height:150px;margin:0 0 12px;padding:16px 104px 15px 17px;border:1px solid #e8c787;border-radius:22px;background:linear-gradient(105deg,#fff5dc,#ffefc8);display:block;overflow:hidden;text-align:left;color:#173052;box-shadow:0 10px 24px rgba(133,94,31,.09)}
.profile-journey::before{content:"";position:absolute;left:14px;right:14px;top:45px;border-top:1px dashed rgba(172,125,49,.22)}
.profile-journey .journey-copy{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between}
.profile-journey .journey-copy b{font-size:18px}
.profile-journey .journey-copy em{font-size:12px;color:#1768ef;font-style:normal;white-space:nowrap}
.profile-journey .journey-stats{position:relative;z-index:2;display:grid;grid-template-columns:1.25fr .9fr .75fr;gap:5px;margin-top:20px}
.profile-journey .journey-stats>span{min-width:0;display:grid;grid-template-columns:24px 1fr;grid-template-areas:"icon value" "icon label";align-items:center;gap:0 5px}
.profile-journey .journey-stats svg{grid-area:icon;width:22px;height:22px;fill:none;stroke:#d79b2f;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.profile-journey .journey-stats b{grid-area:value;font-size:12px;white-space:nowrap}
.profile-journey .journey-stats small{grid-area:label;margin:1px 0 0;color:#78859a;font-size:8px;white-space:nowrap}
.profile-journey>img{position:absolute;z-index:1;right:2px;bottom:-9px;width:105px;height:128px;object-fit:contain;filter:drop-shadow(0 8px 8px rgba(43,80,119,.14))}
.profile-management .profile-list{flex:0 0 auto;padding-bottom:8px}
.profile-management .profile-quick{margin-top:auto;margin-bottom:0}
@media(max-height:760px){.profile-overview{min-height:calc(100svh - 33px)}.profile-management{min-height:calc(100svh - 33px)}.stamp-cards .city-stamp{min-height:94px}.profile-management .profile-journey{min-height:136px}.profile-journey>img{height:116px}}
@media(max-width:370px){.profile-management .profile-journey{padding-right:90px}.profile-journey>img{width:92px}.profile-journey .journey-stats{grid-template-columns:1.2fr .8fr .7fr}.profile-journey .journey-stats b{font-size:11px}}

/* v63: continuous profile flow and production-shaped city badges */
.profile-scroll{scroll-snap-type:none}
.profile-overview{min-height:0;display:block}
.profile-management{min-height:0;padding-top:12px;padding-bottom:calc(100px + env(safe-area-inset-bottom));display:block}
.profile-management .profile-quick{margin-top:11px;margin-bottom:0}
.passport-rule{display:block;margin:5px 0 10px;color:#7b899a;font-size:10px}
.stamp-cards{margin-top:0}
.stamp-cards .city-stamp .stamp-medal{border-style:solid;overflow:hidden;background:#eaf5ff;box-shadow:0 5px 11px rgba(53,105,158,.13),inset 0 0 0 3px rgba(255,255,255,.7)}
.stamp-medal svg{width:36px;height:36px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.stamp-cards .medal-hk{color:#2676cf;background:linear-gradient(145deg,#dff3ff,#b7dcf5)}
.stamp-cards .medal-ny{color:#7259b6;background:linear-gradient(145deg,#f0e8ff,#d6c7f2)}
.stamp-cards .medal-sy{color:#d87745;background:linear-gradient(145deg,#fff0dc,#f4cfaa)}
.stamp-cards .city-stamp:active .stamp-medal{transform:scale(.94)}
.profile-management .profile-journey{margin-top:0}
@media(max-height:760px){.profile-overview,.profile-management{min-height:0}}
.detail-city-medal{width:96px;height:96px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;box-shadow:0 12px 24px rgba(46,84,126,.16),inset 0 0 0 7px rgba(255,255,255,.72)}
.detail-city-medal svg{width:72px;height:72px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.stamp-detail-hero .medal-hk{color:#2676cf;background:linear-gradient(145deg,#dff3ff,#b7dcf5)}
.stamp-detail-hero .medal-ny{color:#7259b6;background:linear-gradient(145deg,#f0e8ff,#d6c7f2)}
.stamp-detail-hero .medal-sy{color:#d87745;background:linear-gradient(145deg,#fff0dc,#f4cfaa)}

/* v64: generated 3D assets and richer profile subpages */
.stamp-cards .city-stamp{min-height:116px;grid-template-rows:62px auto auto}
.stamp-cards .city-stamp .stamp-medal{width:60px;height:60px;border:0;background:transparent;box-shadow:none;overflow:visible}
.stamp-cards .city-stamp .stamp-medal img{width:68px;height:68px;object-fit:contain;filter:drop-shadow(0 5px 6px rgba(42,77,115,.16));transition:transform .18s cubic-bezier(.2,.8,.2,1)}
.stamp-cards .city-stamp:active .stamp-medal img{transform:scale(.93)}
.stamp-cards .add-city-stamp .stamp-medal{width:48px;height:48px;border:1px dashed #72a9e5;background:#fff;font-size:22px}
.profile-journey>img{right:-4px;bottom:-11px;width:118px;height:139px}
.profile-detail[data-tone="game"]{background:linear-gradient(180deg,#fff7e1,#f8fbff 36%)}
.profile-detail[data-tone="badge"]{background:linear-gradient(180deg,#edf7ff,#f8fbff 38%)}
.profile-detail[data-tone="social"]{background:linear-gradient(180deg,#eef6ff,#f8fbff 34%)}
.profile-detail[data-tone="settings"]{background:linear-gradient(180deg,#f4f6fa,#f8fbff 32%)}
.profile-detail[data-tone] > header{background:transparent}
.profile-detail[data-tone] #profileDetailBody{padding-top:12px}
.profile-detail[data-tone] .detail-group{border-radius:22px;box-shadow:0 10px 28px rgba(31,65,109,.08)}
.profile-detail[data-tone] .detail-row{min-height:70px;padding-inline:17px}
.detail-page-intro{min-height:132px;margin-bottom:15px;padding:20px;border-radius:24px;background:linear-gradient(135deg,#dcedff,#f9fcff);display:flex;align-items:center;box-shadow:0 10px 25px rgba(42,82,129,.1)}
.detail-page-intro small{color:#3277ce;font-weight:750}
.detail-page-intro h2{margin:7px 0;font-size:25px}
.detail-page-intro p{margin:0;color:#65758b;font-size:13px;line-height:1.5}
.game-journey-hero{position:relative;min-height:210px;margin-bottom:12px;padding:28px 16px 20px 174px;border-radius:26px;background:linear-gradient(130deg,#ffefbd,#fff8e8);overflow:hidden;box-shadow:0 13px 30px rgba(138,99,35,.13)}
.game-journey-hero>img{position:absolute;left:-12px;bottom:-21px;width:196px;height:225px;object-fit:contain;filter:drop-shadow(0 12px 10px rgba(51,74,99,.15))}
.game-journey-hero>div{position:relative;z-index:1}
.game-journey-hero small{color:#a2701d;font-weight:750}
.game-journey-hero h2{margin:7px 0 5px;font-size:30px;color:#173052}
.game-journey-hero p{margin:0;color:#6d6453;font-size:12px;line-height:1.6}
.journey-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.journey-metrics span{padding:14px 7px;border-radius:17px;background:#fff;text-align:center;box-shadow:0 7px 18px rgba(31,65,109,.07)}
.journey-metrics b,.journey-metrics small{display:block}.journey-metrics b{font-size:18px;color:#1768ef}.journey-metrics small{margin-top:4px;color:#7a8798;font-size:10px}
.detail-feature-list .detail-row:first-child{background:#edf5ff}
.stamp-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}
.stamp-detail-grid button{min-height:190px;padding:10px;border:0;border-radius:22px;background:#fff;color:#173052;box-shadow:0 10px 25px rgba(31,65,109,.08);text-align:center}
.stamp-detail-grid img{width:126px;height:126px;object-fit:contain;margin:-4px auto -2px;display:block;filter:drop-shadow(0 8px 7px rgba(43,75,109,.14))}
.stamp-detail-grid b,.stamp-detail-grid small{display:block}.stamp-detail-grid small{margin-top:5px;color:#74849a;font-size:10px}
.stamp-detail-grid .badge-locked{background:linear-gradient(145deg,#f7f9fc,#eef2f7)}
.stamp-detail-grid .badge-locked img,.stamp-detail-hero.badge-locked img{filter:grayscale(.78) saturate(.35);opacity:.48}
.stamp-detail-grid .badge-locked small{color:#7b8798;line-height:1.45}
.owner-mark-hint{margin:10px 0 2px;padding:11px 13px;border-radius:13px;background:#edf5ff;color:#39658f;font-size:12px;line-height:1.5}
.owner-answer-actions{display:flex;gap:8px;margin-top:10px}.owner-answer-actions button{padding:8px 11px;border:1px solid #cdddf4;border-radius:999px;background:#fff;color:#41678f}.owner-answer-actions button.active{border-color:#60a0ff;background:#edf5ff;color:#1768ef}.owner-answer-actions button.accepted{border-color:#f2b743;background:#fff7dd;color:#a66c00}
.owner-answer-actions button:disabled{cursor:default;opacity:.52}.owner-answer-actions button.accepted:disabled{opacity:1}
.content-intro{background:linear-gradient(135deg,#eef5ff 0%,#fff 70%)}
.anonymous-history article{border:1px solid #e6edf7;box-shadow:0 8px 20px rgba(38,75,121,.06)}
.filter-content .detail-row{min-height:76px}
.filter-content .detail-row small{margin-top:5px}
.privacy-summary{margin-bottom:18px;padding:18px;border-radius:22px;background:#eaf4ff;color:#173b64}.privacy-summary strong{font-size:20px}.privacy-summary p{margin:7px 0 0;color:#52708f;font-size:13px;line-height:1.55}.settings-section-title{margin:22px 4px 9px;color:#5f7086;font-size:13px;font-weight:700}.settings-footnote{padding:0 5px;color:#75849a;font-size:12px;line-height:1.55}.danger-actions b{color:#d9483f}.location-options button[aria-pressed="true"]{background:#edf5ff}.location-options button[aria-pressed="true"] em{font-weight:800}.policy-document{padding:6px 3px 30px}.policy-summary{margin:0 0 12px;font-size:17px;line-height:1.65;color:#31465f}.policy-meta{display:flex;justify-content:space-between;padding:12px 0 18px;color:#7b8798;font-size:12px;border-bottom:1px solid #e5eaf0}.policy-document section{padding:18px 2px;border-bottom:1px solid #e5eaf0}.policy-document section h3{margin:0 0 8px;font-size:17px}.policy-document section p{margin:0;color:#52637a;line-height:1.75}.support-search{min-height:52px;margin-bottom:14px;padding:0 14px;border:1px solid #dce5ef;border-radius:16px;background:#fff;display:flex;align-items:center;gap:9px}.support-search svg{width:20px}.support-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;font-size:16px}.feedback-form{display:grid;gap:18px}.feedback-form label{font-weight:700}.feedback-form .settings-footnote{margin:0}.device-row{min-height:70px;align-items:center}.detail-row span{min-width:0}.detail-row b,.detail-row small{overflow-wrap:anywhere}
.outfit-stage{position:relative;min-height:250px;margin-bottom:14px;border-radius:26px;background:linear-gradient(180deg,#fff6d9,#edf7ff);overflow:hidden;display:grid;place-items:center}.outfit-earth{width:190px;height:190px;object-fit:contain}.outfit-on-earth{position:absolute;top:15px;left:50%;width:105px;height:105px;object-fit:contain;transform:translateX(-50%);filter:drop-shadow(0 8px 10px rgba(35,64,99,.18))}.outfit-stage>div{position:absolute;left:16px;bottom:14px;padding:8px 11px;border-radius:12px;background:rgba(255,255,255,.9)}.outfit-stage b,.outfit-stage small{display:block}.outfit-stage small{margin-top:2px;color:#748399;font-size:10px}.outfit-intro{color:#5d6e84;font-size:13px;line-height:1.55}.outfit-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.outfit-grid button{position:relative;min-height:180px;padding:8px;border:0;border-radius:20px;background:#fff;color:#183052;box-shadow:0 9px 23px rgba(36,67,105,.08);text-align:left}.outfit-grid button[aria-pressed="true"]{outline:2px solid #2b78f6;background:#f4f8ff}.outfit-grid button:disabled{opacity:.58}.outfit-grid img{width:100%;height:115px;object-fit:contain}.outfit-grid span b,.outfit-grid span small{display:block}.outfit-grid span small{margin-top:4px;color:#748398;font-size:10px;line-height:1.35}.outfit-grid em{position:absolute;top:10px;right:9px;padding:4px 7px;border-radius:9px;background:#eef1f5;color:#718096;font-size:9px;font-style:normal}
.stamp-detail-hero{padding-top:16px;background:linear-gradient(145deg,#eaf5ff,#fff8e8)}
.stamp-detail-hero .detail-city-medal{width:170px;height:170px;margin:-18px auto -7px;border-radius:0;object-fit:contain;box-shadow:none;filter:drop-shadow(0 12px 10px rgba(43,75,109,.17))}
@media(max-width:370px){.game-journey-hero{padding-left:150px}.game-journey-hero>img{width:174px}.stamp-detail-grid img{width:112px;height:112px}}
.outfit-stage{min-height:270px}.outfit-worn-preview{width:250px;height:250px;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(35,64,99,.14))}
.city-world-stage[data-city="中国澳门"] :is(.city-lighthouse-beam,.city-lighthouse-lamp,.city-wheel-assembly,.city-ferry-motion){display:none!important}
.macau-pedestrians{display:none;position:absolute;z-index:6;left:4%;right:4%;top:58%;height:34px;overflow:hidden;pointer-events:none}
.city-world-stage[data-city="中国澳门"] .macau-pedestrians{display:block}
.macau-person{position:absolute;bottom:4px;width:5px;height:10px;border-radius:3px 3px 2px 2px;background:#e26755;box-shadow:0 1px 2px rgba(35,55,73,.22);animation:macauWalkAcross 13s linear infinite;will-change:transform}
.macau-person::before{content:"";position:absolute;left:1px;top:-5px;width:4px;height:4px;border-radius:50%;background:#e9c4a4}
.macau-person i::before,.macau-person i::after{content:"";position:absolute;top:8px;width:2px;height:6px;border-radius:2px;background:#274e70;transform-origin:50% 0;animation:macauLegStep .52s ease-in-out infinite alternate}
.macau-person i::before{left:0}.macau-person i::after{right:0;animation-direction:alternate-reverse}
.macau-person.p1{left:-8%;bottom:3px;background:#e26755;animation-duration:15s}.macau-person.p2{left:-18%;bottom:8px;background:#3f86b9;animation-duration:19s;animation-delay:-7s;scale:.84}.macau-person.p3{left:-30%;bottom:2px;background:#e6a83d;animation-duration:17s;animation-delay:-12s;scale:.92}.macau-person.p4{left:-10%;bottom:10px;background:#6f8d52;animation-duration:22s;animation-delay:-16s;scale:.76}
@keyframes macauWalkAcross{from{transform:translate3d(-12px,0,0)}50%{transform:translate3d(180px,-1px,0)}to{transform:translate3d(370px,0,0)}}
@keyframes macauLegStep{from{transform:rotate(22deg)}to{transform:rotate(-22deg)}}
@media(prefers-reduced-motion:reduce){.macau-person,.macau-person i::before,.macau-person i::after{animation:none}.macau-person.p1{left:18%}.macau-person.p2{left:42%}.macau-person.p3{left:64%}.macau-person.p4{left:82%}}

/* v78: resin miniature pedestrians embedded into the Macau street plane. */
.macau-pedestrians{left:3%;right:3%;top:57%;height:30px;perspective:220px}
.macau-person{bottom:2px;width:11px;height:22px;border-radius:0;background:none;box-shadow:none;animation:macauMiniatureAcross 18s linear infinite;will-change:translate}
.macau-person::before{content:none}
.macau-person img{display:block;width:100%;height:100%;object-fit:contain;transform-origin:50% 100%;filter:drop-shadow(0 1px .65px rgba(30,46,59,.26));animation:macauMiniatureBob .58s ease-in-out infinite alternate}
.macau-person::after{content:"";position:absolute;z-index:-1;left:50%;bottom:0;width:7px;height:2px;border-radius:50%;background:rgba(42,53,58,.2);filter:blur(.7px);transform:translateX(-50%)}
.macau-person.p1{left:-9%;bottom:1px;width:13px;height:25px;background:none;animation-duration:18s}.macau-person.p2{left:-22%;bottom:7px;width:10px;height:20px;background:none;animation-duration:23s;animation-delay:-9s}.macau-person.p3{left:-32%;bottom:3px;width:12px;height:23px;background:none;animation-duration:21s;animation-delay:-14s}.macau-person.p4{left:-14%;bottom:9px;width:9px;height:18px;background:none;animation-duration:26s;animation-delay:-19s}
.macau-person.p2 img,.macau-person.p4 img{transform:scaleX(-1)}
@keyframes macauMiniatureAcross{from{translate:-18px 0}50%{translate:185px -1px}to{translate:390px 0}}
@keyframes macauMiniatureBob{from{margin-top:0;scale:1 .985}to{margin-top:-.7px;scale:1 1}}
@media(prefers-reduced-motion:reduce){.macau-person,.macau-person img{animation:none}}

/* v79: pedestrians sit between the architectural image and a clipped street foreground. */
.macau-pedestrians{z-index:5;top:61%;height:20px;overflow:visible}
.macau-person{width:7px;height:14px;opacity:.9;filter:saturate(.82) contrast(.96)}
.macau-person::after{width:4px;height:1px;background:rgba(40,48,51,.16);filter:blur(.45px)}
.macau-person.p1{width:8px;height:16px;bottom:0}.macau-person.p2{width:6px;height:12px;bottom:4px}.macau-person.p3{width:7px;height:14px;bottom:1px}.macau-person.p4{width:5px;height:10px;bottom:5px}
.macau-person img{filter:drop-shadow(0 .45px .35px rgba(42,48,50,.22));animation-duration:.66s}
.macau-street-occluder{display:none;position:absolute;z-index:6;inset:0;width:100%;height:100%;object-fit:fill;clip-path:inset(72% 0 0 0);pointer-events:none;user-select:none}
.city-world-stage[data-city="中国澳门"] .macau-street-occluder{display:block}
@keyframes macauMiniatureBob{from{margin-top:0;scale:1 .99}to{margin-top:-.35px;scale:1 1}}

/* v80: only Hong Kong uses Hong Kong motion assets; Macau remains clean. */
.city-world-stage:not([data-city="中国香港"]) :is(.city-lighthouse-beam,.city-lighthouse-lamp,.city-wheel-assembly,.city-ferry-motion){display:none!important}
.macau-pedestrians,.macau-street-occluder{display:none!important}
.london-eye-rotor,.london-bus-motion,.london-boat-motion{display:none;position:absolute;pointer-events:none;user-select:none}
.city-world-stage[data-city="伦敦"] :is(.london-eye-rotor,.london-bus-motion,.london-boat-motion){display:block}
.city-world-stage[data-city="伦敦"] .london-eye-rotor{z-index:3;left:20.25%;top:25.2%;width:13.1%;height:auto;transform-origin:50% 50%;filter:drop-shadow(0 1px .7px rgba(53,68,76,.16));animation:londonEyeTurn 22s linear infinite}
.city-world-stage[data-city="伦敦"] .london-bus-motion{z-index:5;left:34%;top:59%;width:6.7%;height:auto;filter:drop-shadow(0 1px .55px rgba(45,50,51,.22));animation:londonBusCross 15s ease-in-out infinite}
.city-world-stage[data-city="伦敦"] .london-boat-motion{z-index:5;left:56.5%;top:77%;width:8.5%;height:auto;filter:drop-shadow(0 1px .7px rgba(28,76,105,.2));animation:londonBoatCruise 13s ease-in-out infinite}
@keyframes londonEyeTurn{to{rotate:360deg}}
@keyframes londonBusCross{0%,8%{translate:0 0}48%,58%{translate:310% 0}92%,100%{translate:0 0}}
@keyframes londonBoatCruise{0%,100%{translate:-35% 1px}50%{translate:165% -1px}}
.city-world-stage.is-paused :is(.london-eye-rotor,.london-bus-motion,.london-boat-motion){animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.london-eye-rotor,.london-bus-motion,.london-boat-motion{animation:none!important}}

/* v81: city-native traffic moves on its original road/water plane. */
.city-watercraft,.new-york-taxi-motion,.toronto-streetcar-motion{display:none;position:absolute;pointer-events:none;user-select:none}
.city-watercraft{z-index:5}
.city-watercraft img{position:relative;z-index:2;display:block;width:100%;height:auto;filter:drop-shadow(0 1px .65px rgba(23,73,105,.2));animation:cityVesselBob 2.8s ease-in-out infinite alternate}
.city-watercraft::before,.city-watercraft::after{content:"";position:absolute;z-index:1;left:-20%;bottom:5%;width:58%;height:18%;border-radius:50%;border-bottom:1px solid rgba(235,250,255,.72);transform:skewX(-24deg);opacity:.7;animation:cityWakePulse 2.1s ease-out infinite}
.city-watercraft::after{left:-8%;bottom:0;width:72%;opacity:.42;animation-delay:-1.05s}
.city-world-stage[data-city="悉尼"] .sydney-ferry-motion{display:block;left:37%;top:56%;width:14%;animation:sydneyFerryCruise 15s ease-in-out infinite}
.city-world-stage[data-city="纽约"] :is(.new-york-taxi-motion,.new-york-boat-motion){display:block}
.city-world-stage[data-city="纽约"] .new-york-taxi-motion{z-index:5;left:30.5%;top:74.5%;width:7%;filter:drop-shadow(0 1px .45px rgba(51,47,38,.26));animation:newYorkTaxiDrive 14s ease-in-out infinite}
.city-world-stage[data-city="纽约"] .new-york-boat-motion{left:68.5%;top:70%;width:7%;animation:newYorkBoatCruise 12s ease-in-out infinite}
.city-world-stage[data-city="多伦多"] :is(.toronto-streetcar-motion,.toronto-ferry-motion){display:block}
.city-world-stage[data-city="多伦多"] .toronto-streetcar-motion{z-index:5;left:24%;top:68%;width:12%;filter:drop-shadow(0 1px .55px rgba(48,56,61,.2));animation:torontoStreetcarRun 17s ease-in-out infinite}
.city-world-stage[data-city="多伦多"] .toronto-ferry-motion{left:72%;top:63%;width:10.5%;animation:torontoFerryCruise 14s ease-in-out infinite}
@keyframes cityVesselBob{from{translate:0 0;rotate:-.35deg}to{translate:0 -1px;rotate:.35deg}}
@keyframes cityWakePulse{0%{scale:.55 .7;opacity:.7}100%{scale:1.28 1;opacity:0}}
@keyframes sydneyFerryCruise{0%,100%{translate:-42% 1px}50%{translate:92% -1px}}
@keyframes newYorkTaxiDrive{0%,10%{translate:-70% 0}48%,58%{translate:205% 0}92%,100%{translate:-70% 0}}
@keyframes newYorkBoatCruise{0%,100%{translate:-35% 1px}50%{translate:95% -1px}}
@keyframes torontoStreetcarRun{0%,10%{translate:-40% 0}48%,58%{translate:205% 0}92%,100%{translate:-40% 0}}
@keyframes torontoFerryCruise{0%,100%{translate:-32% 1px}50%{translate:42% -1px}}
.city-world-stage.is-paused :is(.city-watercraft,.city-watercraft img,.new-york-taxi-motion,.toronto-streetcar-motion){animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.city-watercraft,.city-watercraft img,.new-york-taxi-motion,.toronto-streetcar-motion{animation:none!important}}
.together-paused{margin:10px 20px 100px;padding:28px 22px;text-align:center;border-radius:28px;background:linear-gradient(160deg,#fff 0%,#f1f7ff 100%);box-shadow:0 14px 35px rgba(23,66,123,.1)}
.together-paused img{display:block;width:min(260px,90%);height:170px;object-fit:contain;margin:4px auto 10px}.together-paused h2{margin:8px 0;color:#092a58}.together-paused p{color:#56677e;line-height:1.75}.paused-badge{display:inline-block;padding:7px 14px;border-radius:999px;background:#fff1d7;color:#a76300;font-weight:800}.paused-safety{display:flex;flex-direction:column;gap:5px;margin:20px 0;padding:15px;border-radius:18px;background:#eaf4ff;color:#17467c}.together-paused>small{color:#7b899b}.chat-context{display:flex;flex-direction:column;gap:5px;margin:4px 0 12px;padding:14px 16px;border-radius:16px;background:#eef6ff;color:#123f75}.chat-context small{color:#6f7f93}
.anonymous-compose-card{width:100%;min-height:78px;margin:0 0 16px;padding:15px 17px;border:1px solid #cfe0ff;border-radius:20px;background:linear-gradient(135deg,#edf5ff,#fff);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;color:#123d77;box-shadow:0 9px 24px rgba(33,105,220,.1)}.anonymous-compose-card span,.anonymous-compose-card b,.anonymous-compose-card small{display:block}.anonymous-compose-card b{font-size:17px}.anonymous-compose-card small{margin-top:5px;color:#6d7e95;line-height:1.45}.anonymous-compose-card em{white-space:nowrap;color:#1768ef;font-style:normal;font-weight:750}.anonymous-compose-card:active{background:#e4efff}.profile-detail-head{grid-template-columns:48px minmax(0,1fr) minmax(72px,auto)}#profileDetailAction{min-width:72px;max-width:112px;padding:0 10px;white-space:nowrap;line-height:1.2;text-align:center}
