
:root{
  --paper:#F4F7F8; --surface:#FFFFFF; --ink:#121A20; --ink-soft:#4C5A65;
  --line:#D9E1E5; --line-soft:#E9EEF0; --accent:#14566B; --accent-ink:#0E4051;
  --accent-wash:#E2EDF1; --ochre:#92661C;
  --shadow:0 1px 2px rgba(18,26,32,.05), 0 8px 24px -16px rgba(18,26,32,.35);
  --max:1140px; --read:38em;
  color-scheme:light dark;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0D1317; --surface:#141D22; --ink:#E6EDF0; --ink-soft:#9AA9B3;
    --line:#25333B; --line-soft:#1B262C; --accent:#62ADC3; --accent-ink:#8FC8D9;
    --accent-wash:#14303A; --ochre:#C9A15C;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px -18px rgba(0,0,0,.8);
  }
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"Commissioner","Helvetica Neue",Arial,sans-serif;
  font-size:16px; line-height:1.65; font-weight:400; -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding-inline:20px;}
h1,h2,h3{font-family:"GFS Didot","Didot","Times New Roman",serif;font-weight:400;text-wrap:balance;margin:0;}
p{margin:0;}
a{color:inherit;}
.eyebrow{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);font-weight:500;font-variant-numeric:tabular-nums;margin:0;}

header.bar{position:sticky;top:0;z-index:20;background:rgba(244,247,248,.9);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line-soft);}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) header.bar{background:rgba(13,19,23,.9);}}
.bar-in{display:flex;align-items:center;gap:20px;min-height:62px;}
.mark{display:flex;flex-direction:column;line-height:1.15;margin-right:auto;text-decoration:none;}
.mark b{font-family:"GFS Didot",serif;font-weight:400;font-size:19px;}
.mark span{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);}
nav.links{display:flex;gap:20px;font-size:14px;flex-wrap:wrap;}
nav.links a{text-decoration:none;color:var(--ink-soft);padding-block:4px;border-bottom:1px solid transparent;}
nav.links a:hover,nav.links a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent);}
@media (max-width:900px){ .bar-in{flex-wrap:wrap;padding-block:10px;} nav.links{width:100%;gap:14px;font-size:13px;} }

.hero{padding-block:62px 50px;border-bottom:1px solid var(--line-soft);}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;}
.hero h1{font-size:clamp(33px,5vw,56px);line-height:1.08;margin-block:18px 20px;}
.hero .lead{font-size:17.5px;color:var(--ink-soft);max-width:34em;}
.rule{width:54px;height:2px;background:var(--ochre);margin-block:26px 22px;}
.actions{display:flex;flex-wrap:wrap;gap:12px;}
.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:14.5px;font-weight:500;padding:11px 20px;border-radius:2px;border:1px solid var(--accent);}
.btn-solid{background:var(--accent);color:var(--surface);}
.btn-solid:hover{background:var(--accent-ink);border-color:var(--accent-ink);}
.btn-ghost{color:var(--accent);background:transparent;}
.btn-ghost:hover{background:var(--accent-wash);}
.plat{width:100%;display:block;}
.plat .grid-lines{fill:none;stroke:var(--line);stroke-width:1;}
.plat .parcel{fill:var(--accent-wash);stroke:var(--accent);stroke-width:1.6;}
.plat .blk{fill:var(--ink-soft);font-family:"Commissioner",sans-serif;font-size:9px;letter-spacing:.08em;}
.plat .kaek{fill:var(--accent-ink);font-family:"Commissioner",sans-serif;font-size:10px;font-weight:600;letter-spacing:.06em;}
.plat .dim-line{stroke:var(--ochre);stroke-width:1.2;fill:none;}
.plat .dim-text{fill:var(--ochre);font-family:"Commissioner",sans-serif;font-size:9px;letter-spacing:.06em;}
.plat-cap{font-size:11.5px;color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;margin-top:10px;text-align:right;}
@media (max-width:880px){ .hero-grid{grid-template-columns:1fr;gap:34px;} .hero{padding-block:40px;} .plat-fig{order:-1;} }

section{padding-block:58px;border-bottom:1px solid var(--line-soft);}
.sec-head{max-width:36em;margin-bottom:36px;}
.sec-head h2{font-size:clamp(25px,3.4vw,34px);line-height:1.2;margin-top:12px;}
.sec-head p{color:var(--ink-soft);margin-top:12px;}

.fields{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:var(--surface);}
.field{padding:28px 26px 30px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:12px;}
.field:last-child{border-right:0;}
.field h3{font-size:21px;line-height:1.25;}
.field h3 a{text-decoration:none;}
.field h3 a:hover{color:var(--accent);}
.field p{font-size:14.8px;color:var(--ink-soft);}
.terms{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:8px;}
.term{font-size:11.5px;padding:3px 8px;border-radius:2px;background:var(--accent-wash);color:var(--accent-ink);white-space:nowrap;}
.also{margin-top:18px;font-size:14px;color:var(--ink-soft);}
@media (max-width:880px){ .fields{grid-template-columns:1fr;} .field{border-right:0;border-bottom:1px solid var(--line);} .field:last-child{border-bottom:0;} }

.method{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;}
.method h3{font-size:18px;margin-bottom:8px;}
.method p{font-size:14.8px;color:var(--ink-soft);}
.method .num{font-size:11.5px;letter-spacing:.14em;color:var(--ochre);text-transform:uppercase;display:block;margin-bottom:10px;}
@media (max-width:820px){ .method{grid-template-columns:1fr;gap:28px;} }

.page-head{padding-block:54px 34px;border-bottom:1px solid var(--line-soft);}
.page-head h1{font-size:clamp(30px,4.4vw,46px);line-height:1.12;margin-block:14px 16px;}
.page-head .lead{font-size:17px;color:var(--ink-soft);max-width:var(--read);}
.crumbs{font-size:12.5px;color:var(--ink-soft);}
.crumbs a{text-decoration:none;}
.crumbs a:hover{color:var(--accent);}

article.prose{max-width:var(--read);padding-block:44px 10px;}
article.prose h2{font-size:clamp(22px,3vw,29px);line-height:1.22;margin-block:40px 14px;}
article.prose h3{font-size:19px;margin-block:28px 8px;}
article.prose p{margin-block:0 16px;}
article.prose p.first{font-size:17px;}
article.prose strong{font-weight:600;}
.callout{background:var(--surface);border:1px solid var(--line);border-left:2px solid var(--ochre);padding:18px 20px;margin-block:26px;font-size:15px;color:var(--ink-soft);box-shadow:var(--shadow);}
.callout strong{color:var(--ink);}
.faq{border-top:1px solid var(--line);margin-top:14px;}
.faq details{border-bottom:1px solid var(--line);padding-block:14px;}
.faq summary{cursor:pointer;font-weight:500;font-size:16px;list-style:none;display:flex;gap:12px;align-items:flex-start;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::before{content:"+";color:var(--accent);font-weight:600;line-height:1.5;}
.faq details[open] summary::before{content:"–";}
.faq p{margin-top:10px;color:var(--ink-soft);font-size:15px;padding-left:24px;}
.next{display:flex;flex-wrap:wrap;gap:12px;margin-block:36px 10px;}

.contact{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.dl{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;font-size:15px;margin:0;}
.dl dt{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);padding-top:4px;}
.dl dd{margin:0;font-variant-numeric:tabular-nums;}
.dl a{text-decoration:none;border-bottom:1px solid var(--line);}
.dl a:hover{border-bottom-color:var(--accent);}
.note{background:var(--surface);border:1px solid var(--line);border-left:2px solid var(--ochre);padding:20px 22px;font-size:14.5px;color:var(--ink-soft);box-shadow:var(--shadow);}
.note strong{color:var(--ink);font-weight:600;}
form.contact-form{display:flex;flex-direction:column;gap:14px;max-width:var(--read);}
form.contact-form label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);}
form.contact-form input,form.contact-form textarea{
  font:inherit;font-size:15px;padding:10px 12px;border:1px solid var(--line);border-radius:2px;
  background:var(--surface);color:var(--ink);width:100%;
}
form.contact-form textarea{min-height:150px;resize:vertical;}
form.contact-form button{align-self:flex-start;font:inherit;font-size:14.5px;font-weight:500;padding:11px 22px;border-radius:2px;border:1px solid var(--accent);background:var(--accent);color:var(--surface);cursor:pointer;}
form.contact-form button:hover{background:var(--accent-ink);}
@media (max-width:820px){ .contact{grid-template-columns:1fr;gap:28px;} }

.profile-top{display:grid;grid-template-columns:330px 1fr;gap:46px;align-items:start;padding-block:46px 8px;}
.portrait{margin:0;border:1px solid var(--line);background:var(--surface);padding:9px;box-shadow:var(--shadow);}
.portrait img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;}
.portrait figcaption{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding:11px 3px 2px;}
.profile-intro p{margin-block:0 16px;}
.profile-intro p.first{font-size:17.5px;}
@media (max-width:820px){ .profile-top{grid-template-columns:1fr;gap:26px;} .portrait{max-width:300px;} }

.cv{border-top:1px solid var(--line);max-width:var(--read);}
.cv .row{display:grid;grid-template-columns:140px 1fr;gap:20px;padding-block:18px;border-bottom:1px solid var(--line);}
.cv .yr{font-size:12.5px;letter-spacing:.06em;color:var(--ink-soft);font-variant-numeric:tabular-nums;}
.cv h3{font-size:17px;margin-bottom:4px;}
.cv p{font-size:14.5px;color:var(--ink-soft);}
@media (max-width:620px){ .cv .row{grid-template-columns:1fr;gap:4px;} }

footer{padding-block:30px 44px;font-size:13px;color:var(--ink-soft);}
.foot-in{display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;}
.foot-in a{text-decoration:none;}
:where(a,button,summary):focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}
