:root,html[data-theme='light']{--bg:#ffffff;--bg-subtle:#f6f8fa;--surface:#ffffff;--surface-raised:#eef2f6;--hairline:#e4e8ed;--hairline-strong:#c8d0da;--fg:#0b2137;--fg-muted:#485765;--fg-subtle:#67737f;--accent:#00b3c5;--accent-hover:#009dad;--accent-ink:#056676;--accent-contrast:#03131a;--accent-soft:#eaf7f9;--focus-ring:#056676;--success:#067647;--success-soft:#ecfdf3;--warning:#93370d;--warning-soft:#fffaeb;--danger:#b42318;--danger-soft:#fef3f2;--code-bg:#f2f5f8}
html[data-theme='dark']{--bg:#0b1622;--bg-subtle:#0f1d2b;--surface:#112233;--surface-raised:#16293c;--hairline:#1f3549;--hairline-strong:#2c4862;--fg:#e8eef4;--fg-muted:#b3c1cd;--fg-subtle:#8fa1b1;--accent:#22c7d8;--accent-hover:#4fd5e2;--accent-ink:#5fdbe8;--accent-contrast:#03131a;--accent-soft:#0f2e36;--focus-ring:#5fdbe8;--success:#6ce9a6;--success-soft:#0d2b1e;--warning:#fec84b;--warning-soft:#2e2208;--danger:#fda29b;--danger-soft:#33120f;--code-bg:#0d1a27}
*{box-sizing:border-box}
html{color-scheme:light}
html[data-theme='dark']{color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 system-ui,-apple-system,'Segoe UI',Roboto,'Noto Sans','Noto Sans Thai','Noto Sans Khmer','Noto Sans Arabic','Noto Sans Devanagari','Noto Sans JP','Noto Sans SC','Noto Sans TC',sans-serif}
a{color:var(--accent-ink)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
a.skip:focus{width:auto;height:auto;clip:auto;clip-path:none;inset-inline-start:16px;top:8px;background:var(--surface);padding:8px 12px;z-index:10}
header.top .inner,main,footer .inner{max-width:960px;margin:0 auto;padding:0 20px}
/* THE HEADER -- housingmarketapi.com's and Housing Market Ads' (see header() in html.ts):
   sticky, translucent over the page, one hairline underneath, 64px tall. */
header.top{position:sticky;top:0;z-index:100;border-bottom:1px solid var(--hairline);background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}
header.top .inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:64px}
header.top .start,header.top .end{display:flex;align-items:center;gap:8px;min-width:0}
header.top .start{gap:32px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.brand .logo{display:block;height:36px}
.brand img{height:36px;width:auto;display:block}
.brand .tag{border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);padding:2px 8px;font-size:.75rem;font-weight:600;line-height:1.5}
.art-on-dark{display:none!important}
html[data-theme='dark'] .art-on-dark{display:block!important}
html[data-theme='dark'] .art-on-light{display:none!important}
nav.main{display:flex;align-items:center;gap:4px}
nav.main a,.menu .sheet nav a{text-decoration:none;color:var(--fg-muted);font-size:.875rem;font-weight:500;padding:8px 12px;border-radius:999px;transition:color .15s,background-color .15s}
nav.main a:hover,.menu .sheet nav a:hover{color:var(--fg);background:var(--surface-raised)}
nav.main a[aria-current='page'],.menu .sheet nav a[aria-current='page']{color:var(--fg)}
.doors{display:flex;align-items:center;gap:8px}
.doors form{display:contents}
.hbtn{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 16px;border-radius:999px;font:inherit;font-size:.875rem;font-weight:600;white-space:nowrap;text-decoration:none;cursor:pointer;border:0;transition:background-color .15s,color .15s}
.hbtn.primary{background:var(--accent);color:var(--accent-contrast)}
.hbtn.primary:hover{background:var(--accent-hover)}
.hbtn.ghost{background:transparent;color:var(--fg-muted)}
.hbtn.ghost:hover{color:var(--fg);background:var(--surface-raised)}
details.lang,details.menu{position:relative}
details.lang>summary,details.menu>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;min-height:36px;min-width:36px;border-radius:999px;color:var(--fg-subtle);transition:color .15s,background-color .15s}
details.lang>summary::-webkit-details-marker,details.menu>summary::-webkit-details-marker{display:none}
details.lang>summary{padding:0 10px}
details.lang>summary:hover,details.menu>summary:hover{color:var(--fg);background:var(--surface-raised)}
details.lang .flag{font-size:1rem;line-height:1}
details.lang .name{font-size:.875rem;font-weight:500}
details.lang .chev{flex-shrink:0;transition:transform .15s}
details.lang[open] .chev{transform:rotate(180deg)}
details.lang .pop{position:absolute;inset-inline-end:0;top:calc(100% + 8px);z-index:50;width:min(14rem,calc(100vw - 2rem));max-height:min(70vh,26rem);overflow-y:auto;padding:6px;border:1px solid var(--hairline);border-radius:12px;background:var(--bg);box-shadow:0 10px 30px rgba(3,19,26,.18)}
details.lang ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
details.lang li a{display:flex;align-items:center;gap:10px;min-height:36px;padding:8px 10px;border-radius:12px;font-size:.875rem;color:var(--fg-subtle);text-decoration:none}
details.lang li a:hover{color:var(--fg);background:var(--surface-raised)}
details.lang li a[aria-current='true']{color:var(--fg);background:var(--surface-raised);font-weight:600}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:999px;border:1px solid var(--hairline);background:transparent;color:var(--fg-muted);cursor:pointer;transition:color .15s,border-color .15s}
.theme-toggle:hover{color:var(--fg);border-color:var(--hairline-strong)}
.theme-toggle .icon-sun{display:none}
html[data-theme='dark'] .theme-toggle .icon-sun{display:block}
html[data-theme='dark'] .theme-toggle .icon-moon{display:none}
details.menu{display:none}
details.menu>summary{color:var(--fg-muted)}
details.menu .icon-close,details.menu[open] .icon-open{display:none}
details.menu[open] .icon-close{display:block}
details.menu .sheet{position:fixed;inset-inline:0;top:64px;z-index:90;display:grid;gap:16px;padding:16px 16px 24px;border-bottom:1px solid var(--hairline);background:var(--bg);box-shadow:0 16px 30px rgba(3,19,26,.12)}
details.menu .sheet nav{display:grid;gap:2px}
details.menu .sheet nav a{font-size:1rem;padding:12px}
details.menu .sheet .doors{display:grid;gap:10px}
details.menu .sheet .hbtn{height:48px;font-size:1rem;width:100%}
details.menu .sheet .hbtn.ghost{border:1px solid var(--hairline);color:var(--fg)}
@media (min-width:640px){.brand .logo,.brand img{height:44px}}
@media (max-width:639px){details.lang .name{display:none}details.lang>summary{padding:0 8px}}
@media (max-width:767px){.wide{display:none!important}details.menu{display:block}header.top .inner{gap:12px}}
@media (max-width:359px){.brand .tag{display:none}}
main{padding-top:32px;padding-bottom:48px}
h1{font-size:1.75rem;line-height:1.25;margin:0 0 8px}
h2{font-size:1.2rem;margin:0 0 12px}
.lead{color:var(--fg-muted);margin:0 0 24px;max-width:46rem}
.card{background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:20px 24px;margin:0 0 20px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.grid .card{margin:0}
form.stack{display:grid;gap:16px;max-width:30rem}
label{font-weight:600;display:block;margin-bottom:4px}
.hint{color:var(--fg-subtle);font-size:.9rem;margin:4px 0 0}
input[type=text],input[type=email],input[type=password]{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--hairline-strong);border-radius:8px;background:var(--bg);color:var(--fg)}
fieldset{border:1px solid var(--hairline);border-radius:10px;padding:12px 16px;margin:0 0 16px}
legend{font-weight:700;padding:0 6px}
.choice{display:flex;gap:10px;align-items:flex-start;padding:8px 0}
.choice label{margin:0}
.choice .hint{margin:0}
.choice label .hint{display:block;font-weight:400;margin-top:2px}
.countries{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 16px}
.countries .choice{padding:4px 0}
.soon{font-size:.75rem;font-weight:700;color:var(--warning);background:var(--warning-soft);border-radius:999px;padding:1px 8px;margin-inline-start:6px}
.button,button.primary{display:inline-block;background:var(--accent);color:var(--accent-contrast);border:0;border-radius:8px;padding:10px 18px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}
.button:hover,button.primary:hover{background:var(--accent-hover)}
button.secondary,.button.secondary{display:inline-block;background:transparent;color:var(--accent-ink);border:1px solid var(--accent-ink);border-radius:8px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
button.secondary:hover,.button.secondary:hover{background:var(--accent-soft)}
button[disabled]{opacity:.5;cursor:not-allowed}
.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
button.link{background:none;border:0;padding:0;color:var(--fg-muted);font:inherit;cursor:pointer;text-decoration:underline}
.notice{border-radius:10px;padding:12px 16px;margin:0 0 20px;border:1px solid var(--hairline)}
.notice.error{background:var(--danger-soft);color:var(--danger);border-color:transparent}
.notice.ok{background:var(--success-soft);color:var(--success);border-color:transparent}
.notice.warn{background:var(--warning-soft);color:var(--warning);border-color:transparent}
.notice.info{background:var(--accent-soft)}
.steps{list-style:none;display:flex;gap:8px;padding:0;margin:0 0 20px;flex-wrap:wrap}
.steps li{padding:4px 12px;border-radius:999px;background:var(--surface-raised);color:var(--fg-muted);font-size:.9rem}
.steps li[aria-current='step']{background:var(--accent-soft);color:var(--accent-ink);font-weight:700}
dl.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}
dl.facts dt{color:var(--fg-muted)}dl.facts dd{margin:0}
table{border-collapse:collapse;width:100%}
th,td{text-align:start;padding:8px 6px;border-bottom:1px solid var(--hairline)}
th{color:var(--fg-muted);font-weight:600}
.num{text-align:end;font-variant-numeric:tabular-nums}
code,.key{font-family:ui-monospace,SFMono-Regular,'Noto Sans Mono',Menlo,monospace;background:var(--code-bg);border-radius:6px;padding:2px 6px}
.key{display:block;padding:14px 16px;font-size:1rem;word-break:break-all;border:1px solid var(--hairline-strong);user-select:all;direction:ltr;text-align:left}
.terms{max-height:28rem;overflow:auto;border:1px solid var(--hairline);border-radius:10px;padding:8px 20px;background:var(--bg-subtle)}
.terms h2{font-size:1.05rem;margin-top:20px}.terms h3{font-size:1rem}
.total{font-size:1.25rem;font-weight:700}
.muted{color:var(--fg-muted)}
footer{border-top:1px solid var(--hairline);color:var(--fg-subtle);font-size:.9rem}
footer .inner{padding-top:20px;padding-bottom:28px;display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between}
[dir='rtl'] .key{text-align:left}
@media (max-width:600px){header.top .inner{padding:0 16px}main{padding:20px 16px 40px}h1{font-size:1.4rem}}