@font-face{font-family:WenKai;src:url('fonts/WenKai.woff2?v=13') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Noto;src:url('fonts/NotoSansSC.woff2?v=13') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Fraunces;src:url('fonts/Fraunces.woff2?v=13') format('woff2');font-weight:100 900;font-display:swap}
:root{--bg:var(--brand-paper);--ink:var(--brand-ink);--muted:var(--brand-muted);--gold:var(--brand-gold);--pale:var(--brand-wash);--line:var(--brand-line);--ochre:var(--brand-shadow-ink);--body:var(--brand-body);--display:var(--brand-display);--latin:var(--brand-latin);--quick:var(--brand-feedback-time);--ease:cubic-bezier(.2,.7,.3,1);--focus:3px solid var(--gold)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.75 var(--body);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:var(--focus);outline-offset:5px;border-radius:2px}[hidden]{display:none!important}
.welcome-page{min-height:100svh;display:flex;flex-direction:column}.welcome{flex:1;display:grid;place-items:center;padding:56px 24px 32px}.welcome-content{text-align:center;width:100%;max-width:650px;padding:0 0 32px}.welcome-logo{display:block;width:clamp(260px,32vw,420px);height:auto;max-width:100%;margin:0 auto 30px;animation:arrive 680ms var(--ease) both}.welcome h1{font:400 clamp(22px,2.1vw,29px)/1.6 var(--display);margin:0 0 8px;letter-spacing:.035em}.welcome-description{font:400 13px/1.9 var(--body);letter-spacing:.06em;color:var(--muted);margin:0}.enter-link{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:28px;min-width:158px;min-height:52px;margin-top:36px;padding:8px 16px 12px;font-size:14px;font-weight:500;transition:background var(--quick),color var(--quick);border-radius:2px}.enter-link svg{position:absolute;bottom:3px;left:8px;width:calc(100% - 16px);height:8px;stroke:var(--gold);stroke-width:1.4;fill:none;transition:transform var(--quick)}.enter-arrow{font-family:var(--body);font-size:20px;color:var(--gold);transition:transform var(--quick)}.enter-link:hover{background:var(--pale);color:var(--gold)}.enter-link:hover .enter-arrow{transform:translateX(4px)}.enter-link:active{background:#ede5d1}.enter-link:active .enter-arrow{transform:translateX(2px)}.welcome-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:8px 40px 20px;font-size:11px;color:var(--muted)}.language-button{border:0;background:transparent;min-width:50px;min-height:44px;padding:8px 10px;font-size:12px;transition:background var(--quick);border-radius:2px}.language-button:hover{background:var(--pale);color:var(--gold)}.language-button:active{background:#ede5d1}html[lang=en] .welcome h1{font-family:var(--latin);font-size:clamp(24px,2.4vw,32px);letter-spacing:-.02em}html[lang=en] .welcome-description{letter-spacing:0}
@keyframes arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.welcome{padding:40px 22px 22px}.welcome-content{padding-bottom:16px}.welcome-logo{width:min(340px,89%);margin-bottom:26px}.welcome h1{font-size:23px;letter-spacing:0}.welcome-description{font-size:12px;letter-spacing:.02em}.enter-link{margin-top:28px}.welcome-footer{padding:8px 18px 14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.enter-link:hover .enter-arrow{transform:none}}
@media(forced-colors:active){.enter-link svg{stroke:LinkText}.enter-link{border-bottom:1px solid LinkText}}
.local-context{display:flex;align-items:center;gap:17px;min-height:64px;padding:16px 38px 0;color:var(--muted);font-size:12px;flex-wrap:wrap}.local-context button{min-height:44px;background:transparent;border:0;display:inline-flex;align-items:center;gap:7px;padding:4px 8px;font-size:12px;border-radius:2px;transition:background var(--quick),color var(--quick)}.local-context button:hover{background:var(--pale);color:var(--gold)}.local-context button:active{background:#ede5d1}.local-context time{font-variant-numeric:tabular-nums;letter-spacing:.025em}.weather-button svg{width:17px;height:17px;fill:none;stroke:var(--gold);stroke-width:1.3}.entry-choices{display:flex;justify-content:center;align-items:center;gap:27px;margin-top:30px}.entry-choices .enter-link{margin:0;gap:24px}.entry-choices .secondary-entry{min-width:130px;color:var(--muted);font-weight:400}.entry-choices .secondary-entry:hover{color:var(--gold)}.welcome{padding-top:24px}.welcome-content{padding-bottom:42px}.welcome-logo{margin-bottom:24px}.welcome h1{font-size:25px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#region-dialog{padding:0;width:min(480px,calc(100% - 40px));max-height:calc(100svh - 48px);border:1px solid var(--ink);border-top:3px solid var(--ink);border-radius:4px;background:#fff;color:var(--ink);box-shadow:5px 6px 0 var(--ochre),0 20px 80px #00000012;overflow:auto}#region-dialog::backdrop{background:#24232225;backdrop-filter:blur(2px)}.region-paper{padding:30px;position:relative}.dialog-close{position:absolute;right:12px;top:8px;width:44px;height:44px;border:0;background:transparent;font-size:25px;border-radius:2px}.dialog-close:hover{background:var(--pale);color:var(--gold)}.small-label{font:400 10px/1.6 var(--body);letter-spacing:.08em;color:var(--gold);margin:0 36px 14px 0}.region-paper h2{font:400 28px/1.4 var(--display);margin:0 0 10px}html[lang=en] .region-paper h2{font-family:var(--latin);font-size:26px}.region-paper>p:not(.small-label){font-size:12px;line-height:1.8;color:var(--muted)}#city-search{width:100%;font:400 14px/1.7 var(--body);padding:10px 12px;border:1px solid #686153;border-radius:3px;margin:12px 0;background:white;color:var(--ink);min-height:44px}#city-search:focus-visible{outline:var(--focus);outline-offset:2px}.city-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;max-height:225px;overflow:auto;padding:4px}.city-option{border:1px solid transparent;background:transparent;text-align:left;border-radius:2px;padding:8px;font-size:12px;min-height:44px;overflow-wrap:anywhere}.city-option:hover{background:var(--pale);border-color:var(--line)}.city-option[aria-pressed=true]{background:var(--pale);border-color:var(--gold);box-shadow:inset 2px 0 var(--gold)}.reset-region{font-size:12px;min-height:44px;background:transparent;border:0;color:var(--gold);padding:8px;margin-top:8px;text-decoration:underline;text-underline-offset:5px}.reset-region:hover{background:var(--pale)}.weather-detail{border-top:1px dashed var(--line);padding-top:10px;margin-top:10px}.weather-detail p{font-size:11px;line-height:1.8;color:var(--muted);margin:5px 0}.source-note a{text-decoration:underline;text-underline-offset:3px}.source-note a:hover{color:var(--gold)}
@media(max-width:600px){.local-context{padding:12px 16px 0;gap:3px;justify-content:center;min-height:64px}.local-context button{font-size:11px;padding:4px 5px}.local-context time{font-size:11px;letter-spacing:0}.welcome h1{font-size:23px}.entry-choices{gap:12px;margin-top:26px}.entry-choices .enter-link{min-width:134px;gap:17px;font-size:13px;padding-left:10px;padding-right:10px}.entry-choices .secondary-entry{min-width:115px}.welcome-content{padding-bottom:24px}.region-paper{padding:25px 20px}.city-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-height:620px){.welcome{padding-top:12px;padding-bottom:12px}.welcome-logo{width:260px;margin-bottom:14px}.welcome-content{padding-bottom:4px}.entry-choices{margin-top:14px}}
.entry-choices{flex-wrap:wrap}.entry-choices .enter-link>span:first-child{white-space:nowrap}@media(max-width:360px){.entry-choices{gap:8px}.entry-choices .enter-link{font-size:12px;gap:12px;min-width:130px;padding-left:8px;padding-right:8px}.entry-choices .secondary-entry{min-width:110px}}


.quiet-header{justify-content:flex-end}
