:root{--ink:#17231c;--muted:#646f66;--paper:#f5f1e8;--card:#fffdf8;--accent:#a94f1d;--success:#235f3d;--gold:#f2bd69;--line:#d9d7cd;--soft:#eef0e9;--radius:24px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif;line-height:1.65}a{color:inherit}.skip-link{position:absolute;left:-999px;top:8px;background:var(--ink);color:white;padding:10px 16px;z-index:10}.skip-link:focus{left:8px}.site-header{max-width:1180px;margin:auto;padding:22px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-weight:850;font-size:1.12rem}.brand span{color:var(--accent)}nav{display:flex;gap:22px}nav a{text-decoration:none;font-weight:700}.site-header nav a,footer nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}.hero{max-width:1180px;margin:auto;padding:88px 28px 64px;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr);gap:64px;align-items:end}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:850;color:var(--accent)}h1{font-size:clamp(2.8rem,7vw,6.4rem);letter-spacing:-.065em;line-height:.96;margin:.2em 0}h1 em{font-style:normal;color:var(--accent)}.lead{font-size:1.15rem;max-width:720px;color:#3e4941}.primary-link,.primary-button{display:inline-flex;background:var(--ink);color:white;border:0;border-radius:999px;padding:15px 24px;font-weight:800;text-decoration:none;cursor:pointer}.hero-note{background:var(--gold);border-radius:var(--radius);padding:28px;transform:rotate(1.5deg);box-shadow:8px 8px 0 var(--ink)}.decision-entries,.price-analysis,.data-proof,.checker,.area-compare,.affordability,.buy-or-rent,.shortlist,.viewing-checklist{max-width:1180px;margin:32px auto;padding:52px 28px;background:var(--card);border:1px solid var(--line);border-radius:32px}.decision-entries{margin-top:0}.entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.entry-grid article{display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:20px;padding:24px;background:var(--soft)}.entry-grid article.active{background:#fff5e8;border-color:#c8814c}.entry-grid h3{font-size:1.5rem;margin:.2em 0}.entry-grid p{color:var(--muted);margin:0 0 18px}.entry-grid .secondary-button,.entry-status{margin-top:auto}.entry-status{color:var(--accent);font-size:.9rem}.data-proof{margin-top:0}.data-proof-heading{display:flex;align-items:end;justify-content:space-between;gap:28px}.data-proof-heading>div{max-width:760px}.data-proof-heading h2{font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-.035em;margin:.15em 0}.data-proof-heading p{color:var(--muted)}.data-proof-heading .secondary-button{flex:0 0 auto;text-decoration:none}.proof-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:28px 0}.proof-grid article{background:var(--soft);border-radius:16px;padding:18px}.proof-grid strong{font-size:1.2rem}.proof-detail{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.proof-detail>div{border:1px solid var(--line);border-radius:16px;padding:20px}.proof-detail .dimension-insights{grid-column:1/-1}.proof-detail h3{margin:0 0 12px}.proof-detail p{margin:12px 0 0;color:var(--muted)}.type-list,.proof-flow{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.type-list li,.proof-flow li{background:#fff5e8;border-radius:999px;padding:7px 12px;font-weight:750;font-size:.86rem}.proof-flow{counter-reset:proof}.proof-flow li{counter-increment:proof}.proof-flow li::before{content:counter(proof) ". ";color:var(--accent)}.dimension-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.dimension-grid article{background:var(--soft);border-radius:14px;padding:14px}.dimension-grid strong{font-size:1rem}.proof-status{margin:20px 0 0;padding:14px 16px;border-left:4px solid var(--success);background:var(--soft);font-weight:750}.section-heading{max-width:720px;margin-bottom:32px}.section-heading h2,.principles h2,.article-page h2{font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-.035em;margin:.15em 0}.section-heading p{color:var(--muted)}fieldset{border:0;padding:0;margin:0 0 30px}legend{font-weight:850;font-size:1.15rem;margin-bottom:14px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.form-grid.compact{grid-template-columns:repeat(5,minmax(0,1fr))}.compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.compare-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px;background:var(--soft);border-radius:16px}.compare-side>strong{grid-column:1/-1;font-size:1.05rem}.compare-shared{max-width:720px}.area-compare-result{margin-top:34px;border-top:1px solid var(--line);padding-top:28px}.compare-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.compare-result-grid>article{border:1px solid var(--line);border-radius:18px;padding:22px}.compare-result-grid h3{font-size:1.5rem;margin:.15em 0 1em}.compare-result-grid dl{margin:0}.compare-result-grid dl div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line)}.compare-result-grid dl div:last-child{border-bottom:0}.compare-result-grid dt{color:var(--muted)}.compare-result-grid dd{margin:0;text-align:right;font-weight:800}.compare-summary{font-size:1.1rem;font-weight:850;padding:18px;background:var(--gold);border-radius:16px}.affordability-result{margin-top:34px;border-top:1px solid var(--line);padding-top:28px}.affordability-budget-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.affordability-budget-grid .featured{background:var(--gold)}.affordability-result-head{margin-top:26px}.affordability-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.affordability-list article{background:var(--soft);border-radius:16px;padding:18px}.affordability-list h4{font-size:1.15rem;margin:0 0 8px}.affordability-list strong{font-size:1.2rem}.affordability-list p{margin:8px 0;color:var(--muted)}.affordability-list small{color:var(--muted)}.checklist-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.checklist-toolbar p{margin:0}.checklist-toolbar>div{display:flex;gap:10px;flex-wrap:wrap}.checklist-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.checklist-group{margin:0;padding:20px;border:1px solid var(--line);border-radius:18px}.checklist-group legend{padding:0 8px}.check-row{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}.check-row:last-child{border-bottom:0}.check-row input{width:22px;height:22px;margin:3px 0 0;accent-color:var(--accent)}.check-row strong,.check-row small{display:block}.check-row small{margin-top:3px;color:var(--muted);font-size:.82rem;font-weight:500;line-height:1.5}.checklist-source{margin-top:24px;padding:16px;border-left:4px solid var(--accent);background:#fff5e8}.viewing-checklist:focus{outline:3px solid var(--accent);outline-offset:3px}label{font-size:.88rem;font-weight:750}input,select{width:100%;margin-top:7px;border:1px solid #babfb8;background:white;border-radius:12px;padding:13px 12px;font:inherit;color:var(--ink)}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.form-message{color:#9c2e22;font-weight:700}.status-message{color:var(--success);font-weight:700}.form-message:empty,.status-message:empty{display:none}.data-load-error{margin:14px 0 0;padding:14px 16px;border:1px solid #b66a20;border-radius:14px;background:#fff0d6;color:#713f12}.data-load-error p{margin:0 0 8px}.data-load-error .text-button{min-height:44px}.storage-warning{margin:0 0 18px;padding:14px 16px;border:1px solid #b66a20;border-radius:14px;background:#fff0d6;color:#713f12}.storage-warning p{margin:0 0 8px}.storage-warning .text-button{min-height:44px}.shortlist:focus{outline:3px solid var(--accent);outline-offset:3px}.result{margin-top:42px;border-top:1px solid var(--line);padding-top:34px}.result-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.secondary-button,.text-button{border:1px solid var(--ink);background:transparent;border-radius:999px;padding:11px 16px;font-weight:800;cursor:pointer}.metric-grid,.cost-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:20px 0}.cost-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid article,.cost-grid article{background:var(--soft);border-radius:16px;padding:18px}.metric-grid .featured{background:var(--gold)}article span,article small{display:block;color:var(--muted);font-size:.8rem}article strong{display:block;font-size:1.45rem;margin-top:5px}.result-note{padding:16px;border-left:4px solid var(--accent);background:#fff5e8}.trend-note,.price-position{padding:14px 16px;border-radius:12px;background:var(--soft);font-weight:750}.price-position{background:var(--gold)}.market-prefill-note,.assumption-note{padding:14px 16px;border-radius:12px;background:#fff5e8;color:var(--muted)}.market-prefill-note{margin-top:14px}.decision-result-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.fallback-warning{padding:14px 16px;border-radius:12px;background:#fff0d6;color:#713f12;font-weight:750}.empty-state{border:1px dashed #a8aea7;border-radius:16px;padding:28px;color:var(--muted)}.table-wrap{overflow:auto}.shortlist-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.shortlist-summary article{background:var(--soft);border-radius:16px;padding:16px}.shortlist-summary strong{font-size:1.15rem}.cell-detail{display:block;color:var(--muted);font-size:.78rem;line-height:1.45;margin-top:4px}.row-actions,.shortlist-list-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.shortlist-list-actions{margin-top:18px}.sort-note{color:var(--muted);font-size:.82rem;margin:8px 0 18px}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:14px 10px}.principles{max-width:1180px;margin:72px auto;padding:0 28px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.principles article{border-top:4px solid var(--ink);padding-top:18px}.principles article>span{color:var(--accent);font-weight:900}.principles h2{font-size:1.55rem}.article-page{max-width:860px;margin:60px auto;padding:0 28px}.article-page h1{font-size:clamp(2.5rem,6vw,5rem)}.article-page section{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:28px;margin:18px 0}.article-page h2{font-size:1.5rem}footer{max-width:1180px;margin:80px auto 0;padding:28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted)}[hidden]{display:none!important}.noscript-warning{max-width:1180px;margin:24px auto;padding:18px 22px;background:#fff0d6;color:#713f12;border:1px solid #e0b46c;border-radius:16px}.noscript-warning p{margin:6px 0 0}@media(max-width:850px){.hero{grid-template-columns:1fr;padding-top:56px}.entry-grid{grid-template-columns:1fr}.data-proof-heading{display:block}.data-proof-heading .secondary-button{margin-top:8px}.proof-grid,.dimension-grid{grid-template-columns:repeat(2,1fr)}.proof-detail{grid-template-columns:1fr}.form-grid,.form-grid.compact{grid-template-columns:repeat(2,1fr)}.compare-side{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.principles{grid-template-columns:1fr}.hero-note{transform:none}.site-header{display:block}.site-header nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 10px;margin-top:12px}.site-header nav a{justify-content:center;text-align:center}}@media(max-width:520px){.site-header{padding:18px}.site-header nav{gap:4px 6px;font-size:.88rem}.hero,.decision-entries,.price-analysis,.data-proof,.checker,.area-compare,.affordability,.buy-or-rent,.shortlist,.viewing-checklist,.principles{padding-left:18px;padding-right:18px}.noscript-warning{margin:18px}.price-analysis,.data-proof,.checker,.area-compare,.affordability,.buy-or-rent,.shortlist,.viewing-checklist{border-radius:0;border-left:0;border-right:0}.proof-grid,.dimension-grid{grid-template-columns:1fr}.form-grid,.form-grid.compact,.compare-grid,.compare-result-grid,.cost-grid,.affordability-budget-grid,.affordability-list,.shortlist-summary,.checklist-groups{grid-template-columns:1fr}.result-head,.checklist-toolbar,footer{align-items:flex-start;flex-direction:column}.table-wrap{overflow:visible}table{min-width:0}thead{position:absolute;width:1px;height:1px;max-width:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}thead tr{display:block;width:1px;height:1px;max-width:1px;overflow:hidden}thead th{padding:0;width:1px;max-width:1px;overflow:hidden}tbody{display:grid;gap:16px}tbody tr{display:block;background:var(--soft);border-radius:16px;padding:12px 16px}tbody td{display:grid;grid-template-columns:minmax(88px,.7fr) minmax(0,1.3fr);gap:12px;width:100%;padding:9px 0;overflow-wrap:anywhere}tbody td::before{content:attr(data-label);color:var(--muted);font-size:.78rem;font-weight:800}tbody td:last-child{border-bottom:0}tbody td:last-child .text-button{justify-self:start}h1{font-size:2.9rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{body{background:#fff}body>*:not(main),main>*:not(#viewing-checklist){display:none!important}.viewing-checklist{max-width:none;margin:0;padding:0;border:0}.viewing-checklist .section-heading{margin-bottom:12px}.checklist-toolbar>div,.storage-warning,.status-message,.checklist-source{display:none!important}.checklist-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.checklist-group{break-inside:avoid;padding:12px}.check-row{break-inside:avoid;padding:7px 0}.check-row small{font-size:.72rem}}
.area-page{max-width:1180px;margin:52px auto;padding:0 28px}.breadcrumbs{gap:10px;align-items:center;color:var(--muted);font-size:.9rem}.area-hero{padding:54px 0 34px;max-width:900px}.area-hero h1{font-size:clamp(2.6rem,6vw,5.6rem)}.area-hero>p:last-child{font-size:1.12rem;color:#3e4941}.area-summary,.method-note,.area-page>section[aria-labelledby="table-title"]{margin:24px 0;padding:28px;background:var(--card);border:1px solid var(--line);border-radius:22px}.area-summary h2,.method-note h2,.area-page>section h2{margin-top:0}.summary-grid,.area-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.summary-grid article,.area-card{padding:20px;background:var(--soft);border-radius:16px}.summary-grid span{font-size:.85rem}.area-card h2{font-size:1.45rem;margin:.15em 0}.area-card p{color:var(--muted)}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:16px}.table-scroll:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.area-table{min-width:900px;background:white}.area-table th:first-child{position:sticky;left:0;background:white;z-index:1}.area-table tbody th{font-weight:850}.table-subvalue{display:block;margin-top:.2rem;color:var(--muted);font-size:.78rem;line-height:1.35;white-space:nowrap}.button-link{display:inline-flex;background:var(--ink);color:white;border-radius:999px;padding:11px 17px;font-weight:800;text-decoration:none}.method-note li{margin:8px 0}@media(max-width:850px){.summary-grid,.area-card-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.area-page{padding:0 18px;margin-top:32px}.summary-grid,.area-card-grid{grid-template-columns:1fr}.area-summary,.method-note,.area-page>section[aria-labelledby="table-title"]{padding:20px;margin-left:-18px;margin-right:-18px;border-left:0;border-right:0;border-radius:0}.area-table{min-width:900px}.area-table thead{position:static;width:auto;height:auto;max-width:none;margin:0;overflow:visible;clip:auto;white-space:normal}.area-table thead tr{display:table-row;width:auto;height:auto;max-width:none;overflow:visible}.area-table thead th{display:table-cell;width:auto;max-width:none;padding:14px 10px;overflow:visible}.area-table tbody{display:table-row-group}.area-table tbody tr{display:table-row;background:transparent;padding:0}.area-table tbody th,.area-table tbody td{display:table-cell;width:auto;padding:14px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.area-table tbody td::before{content:none}}
