[hidden]{display:none!important}
:root{
--paper:#FFFFFF; --ink:#33302C; --stone:#6F685F; --beige:#F1ECE4; --night:#262624;
--line:rgba(51,48,44,.16); --on-night:#FFFFFF; --on-night-soft:rgba(255,255,255,.72);
--font:"Inter",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
--r:4px; --wrap:1240px; --tint:#E4DACB; --warn:#9A3B26;
color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:300 16px/1.6 var(--font);-webkit-font-smoothing:antialiased}
h1,h2,h3,p,dl,dd,dt,ul,ol,figure{margin:0;padding:0}
ul,ol{list-style:none}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:1px solid currentColor;outline-offset:4px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.label{font:400 11px/1.4 var(--font);letter-spacing:.2em;text-transform:uppercase;color:var(--stone)}
.top{border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:26px}
.wordmark{font-weight:400;font-size:17px;letter-spacing:.46em;text-transform:uppercase;text-decoration:none}
.top nav{display:flex;gap:30px;margin-left:auto}
.top nav a{font:400 12px/1 var(--font);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding-block:6px;border-bottom:1px solid transparent}
.top nav a:hover,.top nav a[aria-current="page"]{border-bottom-color:var(--ink)}
h2{font-weight:200;font-size:clamp(30px,4vw,52px);line-height:1.08;letter-spacing:-.02em;text-wrap:balance}
section{padding-block:clamp(56px,8vw,112px)}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,80px);align-items:start}
.split > *{min-width:0}
.head{display:flex;flex-direction:column;gap:16px}
.head p{max-width:30em}
.rows{border-top:1px solid var(--line)}
.rows > div{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:16px;padding-block:15px;border-bottom:1px solid var(--line)}
.rows dt{font:400 11px/1.9 var(--font);letter-spacing:.18em;text-transform:uppercase;color:var(--stone)}
.rows dd{font-size:16px}
.rows dd small{display:block;font-size:13.5px;color:var(--stone)}
.btn{display:inline-flex;align-items:center;justify-content:center;font:400 12px/1.2 var(--font);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border-radius:var(--r);padding:17px 30px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);transition:background .2s,color .2s}
.btn:hover{background:var(--night)}
.btn.ghost{background:none;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.btn.light{background:var(--on-night);border-color:var(--on-night);color:var(--night)}
.btn.light:hover{background:var(--beige)}
.acts{display:flex;flex-wrap:wrap;gap:12px}
.beige{background:var(--beige)}
.night{background:var(--night);color:var(--on-night)}
.night .label{color:var(--on-night-soft)}
.night p{color:var(--on-night-soft)}
.wide img{width:100%;aspect-ratio:16/9;object-fit:cover}
.plain li{padding-block:15px;border-bottom:1px solid var(--line)}
.plain{border-top:1px solid var(--line)}
.plain b{display:block;font-weight:400;font-size:16px}
.plain span{display:block;font-size:14px;color:var(--stone)}
.contact{display:flex;flex-direction:column;gap:6px;font-size:clamp(20px,2.4vw,30px);font-weight:200;letter-spacing:-.01em}
.contact a{text-decoration:none;border-bottom:1px solid transparent;align-self:flex-start}
.contact a:hover{border-bottom-color:currentColor}
.legal a{color:inherit;text-underline-offset:3px}
.legal .fine{flex-basis:100%;font-size:12px;line-height:1.5;opacity:.85}
.stack{display:flex;flex-direction:column;gap:28px}
.wide.pano img{aspect-ratio:2/1}
.btn.small{padding:12px 20px;font-size:11px}
.rows a,.steps a{text-underline-offset:3px}
.steps{border-top:1px solid var(--line);counter-reset:st}
.steps li{display:grid;grid-template-columns:3rem minmax(0,1fr);padding-block:18px;border-bottom:1px solid var(--line);counter-increment:st}
.steps li::before{content:counter(st,decimal-leading-zero);grid-row:1/span 2;font:400 11px/2.2 var(--font);letter-spacing:.18em;color:var(--stone)}
.steps b{font-weight:400;font-size:17px}
.steps span{font-size:14.5px;color:var(--stone)}
.foot{border-top:1px solid var(--line)}
.foot .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px;padding-block:44px}
.foot .tag{font-size:17px;margin-top:14px}
.foot .cols{display:flex;flex-wrap:wrap;gap:clamp(28px,6vw,88px)}
.foot .cols div{display:flex;flex-direction:column;gap:9px;font-size:14.5px}
.foot .cols a{text-decoration:none}
.foot .cols a:hover{text-decoration:underline}
.legal{background:var(--night);color:var(--on-night-soft);font-size:12.5px}
.legal .wrap{padding-block:18px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
@media (max-width:820px){
.split{grid-template-columns:minmax(0,1fr)}
.top .wrap{flex-wrap:wrap;row-gap:18px;padding-block:20px}
.top nav{order:3;width:100%;justify-content:space-between;gap:12px}
.rows > div{grid-template-columns:minmax(0,8.5rem) minmax(0,1fr)}
}
@media (max-width:460px){
.wordmark{font-size:14px;letter-spacing:.38em}
.top nav a{font-size:11px;letter-spacing:.14em}
.btn{width:100%}
.btn.small{width:auto}
}
@media (prefers-reduced-motion:reduce){.btn{transition:none}}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--paper)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:40;background:var(--paper)}
.hero{position:relative;background:var(--night);color:var(--on-night);overflow:hidden}
.hero > img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 58%;opacity:.86}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(38,38,36,.86) 0%,rgba(38,38,36,.38) 55%,rgba(38,38,36,.2) 100%)}
.hero .wrap{position:relative;z-index:1;padding-block:clamp(120px,22vw,300px) clamp(36px,6vw,72px);display:flex;flex-direction:column;gap:22px}
.hero .label{color:var(--on-night-soft)}
.hero h1{font-weight:200;font-size:clamp(42px,7.4vw,100px);line-height:1;letter-spacing:-.025em;text-wrap:balance;max-width:11em}
.hero .lede{font-size:clamp(17px,1.6vw,20px);max-width:30em;color:var(--on-night-soft)}
.search{display:flex;gap:8px;max-width:720px;margin-top:8px}
.search input{flex:1;min-width:0;font:300 17px/1.2 var(--font);color:var(--ink);background:var(--paper);border:1px solid var(--paper);border-radius:var(--r);padding:18px 18px}
.search input::placeholder{color:var(--stone)}
.search input:focus-visible{outline:2px solid var(--on-night);outline-offset:2px}
.search .btn{white-space:nowrap}
.hero .note{font-size:13.5px;color:var(--on-night-soft)}
#check{scroll-margin-top:90px}
.result{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:start}
.result > *{min-width:0}
.lot{background:var(--beige);border-radius:var(--r);padding:14px}
.lot svg{display:block;width:100%;height:auto}
.lot .hint{font-size:13px;color:var(--stone);padding:10px 4px 2px}
.pc{fill:var(--paper);stroke:var(--stone);stroke-width:1;cursor:pointer;transition:fill .2s}
.pc:hover,.pc:focus-visible{fill:var(--tint);outline:none}
.pc.on{fill:var(--ink);stroke:var(--ink)}
.pc.on:hover{fill:var(--night)}
.pl{font:400 11px/1 var(--font);letter-spacing:.08em;fill:var(--stone);pointer-events:none;text-anchor:middle}
.pl.on{fill:var(--paper)}
.tag{display:inline-block;align-self:flex-start;font:400 10.5px/1.5 var(--font);letter-spacing:.16em;text-transform:uppercase;color:var(--stone);border:1px solid var(--line);border-radius:var(--r);padding:7px 9px}
.status{font-size:15px;color:var(--stone);min-height:1.6em}
.status.err{color:var(--warn)}
.form{display:flex;flex-direction:column;gap:18px}
.field{display:flex;flex-direction:column;gap:7px}
.field label,.field legend{font:400 11px/1.4 var(--font);letter-spacing:.18em;text-transform:uppercase;color:var(--stone);padding:0}
.field input,.field textarea{font:300 16px/1.4 var(--font);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px 14px;width:100%}
.field textarea{min-height:92px;resize:vertical}
.field input:focus-visible,.field textarea:focus-visible{outline:1px solid var(--ink);outline-offset:1px;border-color:var(--ink)}
.field .msg{font-size:13px;color:var(--warn)}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
fieldset.field{border:0;margin:0;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.chips label{position:relative;font:400 14px/1 var(--font);letter-spacing:0;text-transform:none;color:var(--ink);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;cursor:pointer;background:var(--paper)}
.chips input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;padding:0}
.chips label:has(input:checked){background:var(--ink);border-color:var(--ink);color:var(--paper)}
.chips label:has(input:focus-visible){outline:1px solid var(--ink);outline-offset:2px}
.fine{font-size:13px;color:var(--stone)}
.done h2{margin-bottom:6px}
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;padding-block:18px;font-size:17px;font-weight:400}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:200;font-size:22px;line-height:1;color:var(--stone)}
.faq details[open] summary::after{content:"\2212"}
.faq p{padding-bottom:20px;max-width:38em;color:var(--stone)}
@media (max-width:820px){
.result{grid-template-columns:minmax(0,1fr)}
.search{flex-direction:column}
.two{grid-template-columns:minmax(0,1fr)}
.pl{font-size:16px}
}
.title{padding-block:clamp(48px,8vw,104px) clamp(32px,5vw,56px)}
.title h1{font-weight:200;font-size:clamp(34px,4.6vw,64px);line-height:1.02;letter-spacing:-.025em;margin-top:18px;text-wrap:balance;max-width:14em}
.title .lede{font-size:clamp(17px,1.6vw,20px);max-width:34em;margin-top:22px}
.legal-title h1{font-size:clamp(32px,4vw,56px)}
.subnav{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:34px}
.subnav a{font:400 12px/1 var(--font);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding-block:6px;border-bottom:1px solid transparent;color:var(--stone)}
.subnav a:hover,.subnav a.cur{color:var(--ink);border-bottom-color:var(--ink)}
.top nav a.cur{border-bottom-color:var(--ink)}
.text-link{font:400 12px/1 var(--font);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:6px;align-self:flex-start}
.prose{padding-bottom:clamp(56px,8vw,112px)}
.prose .clause{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:0 clamp(28px,5vw,80px);padding-block:30px;border-top:1px solid var(--line)}
.prose .clause h2{font-weight:400;font-size:19px;line-height:1.35;letter-spacing:0;grid-row:1/span 9}
.prose .clause p{grid-column:2;max-width:38em}
.prose .clause p + p{margin-top:10px}
.prose .updated{border-top:1px solid var(--line);padding-top:24px;font-size:13.5px;color:var(--stone)}
.legal nav{display:flex;flex-wrap:wrap;gap:6px 22px}
.legal nav a{text-decoration:none}
.legal nav a:hover{text-decoration:underline}
.say{font-weight:200;font-size:clamp(20px,2.2vw,28px);line-height:1.4;letter-spacing:-.01em;max-width:26em}
.projects{display:flex;flex-direction:column;gap:clamp(48px,7vw,96px);padding-bottom:clamp(56px,8vw,112px)}
.proj{display:flex;flex-direction:column;gap:18px}
.proj img,.proj .ph{width:100%;aspect-ratio:2/1;object-fit:cover}
.ph{display:grid;place-items:center;background:var(--beige);color:var(--stone);font:400 11px/1 var(--font);letter-spacing:.2em;text-transform:uppercase}
.beige .ph{background:var(--paper)}
.proj .cap{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px}
.proj h2{font-size:clamp(26px,3vw,40px)}
.film{aspect-ratio:4/3;max-width:560px}
@media (max-width:820px){.prose .clause{grid-template-columns:minmax(0,1fr)}.prose .clause h2{grid-row:auto;margin-bottom:10px}.prose .clause p{grid-column:1}}
.rows.big > div{padding-block:22px}
.rows.big dd{font-weight:200;font-size:clamp(20px,2.4vw,30px);line-height:1.25;letter-spacing:-.01em}
.rows.big dd small{font-weight:300;letter-spacing:0;margin-top:6px}
/* full-screen homepage: every section fills the screen on desktop; the header floats over the hero */
body:has(.hero.fs) .top{position:fixed;left:0;right:0;top:0;background:transparent;border-bottom-color:transparent;color:#fff;transition:background .35s,color .35s,border-color .35s}
body:has(.hero.fs) .top .btn.small{background:#fff;border-color:#fff;color:var(--night)}
body:has(.hero.fs)::before{background:transparent}
body.scrolled .top{background:var(--paper)!important;color:var(--ink)!important;border-bottom-color:var(--line)!important}
body.scrolled .top .btn.small{background:var(--ink)!important;border-color:var(--ink)!important;color:var(--paper)!important}
body.scrolled::before{background:var(--paper)!important}
body:has(.hero.fs) .top nav a:hover{border-bottom-color:currentColor}
.fs{position:relative;display:flex;flex-direction:column;justify-content:center;padding-block:clamp(110px,14vh,150px) clamp(56px,9vh,104px)}
.fs > .wrap{width:100%}
.hero.fs,.shot{min-height:100vh;min-height:100svh;justify-content:flex-end;color:#fff;background:var(--night);overflow:hidden;padding:0}
.hero.fs > img,.shot > img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 60%}
.hero.fs::after,.shot::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,rgba(38,38,36,.86) 0%,rgba(38,38,36,.3) 48%,rgba(38,38,36,.28) 100%)}
.hero-grid,.shot-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,80px);align-items:end;padding-block:0 clamp(44px,9vh,96px)}
.hero.fs .label,.shot .label{color:rgba(255,255,255,.75)}
.hero.fs h1{font-weight:200;font-size:clamp(42px,5.8vw,92px);line-height:1;letter-spacing:-.035em;max-width:none;margin-top:18px;text-wrap:balance}
.hero-side{display:flex;flex-direction:column;gap:16px}
.hero.fs .lede{font-size:clamp(18px,1.5vw,21px);color:#fff}
.hero.fs .search{flex-direction:column;max-width:none;margin:0}
.hero.fs .search input,.final .search input{font-size:18px;padding:20px}
.hero.fs .note{color:rgba(255,255,255,.7)}
.giant{font-weight:200;font-size:clamp(38px,5vw,76px);line-height:1.02;letter-spacing:-.035em;text-wrap:balance}
.large{font-weight:200;font-size:clamp(32px,3.6vw,56px);line-height:1.06;letter-spacing:-.03em;text-wrap:balance;max-width:13em}
.fs-head{display:flex;flex-direction:column;gap:18px}
.fs-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:end}
.fs-grid.al-top{align-items:start}
.fs-grid > *,.fs-col > *{min-width:0}
.fs-col{display:flex;flex-direction:column;gap:clamp(36px,7vh,72px)}
.big-steps{border-top:1px solid rgba(255,255,255,.22)}
.big-steps li{display:grid;grid-template-columns:3.4rem minmax(0,1fr);column-gap:8px;padding-block:20px;border-bottom:1px solid rgba(255,255,255,.22)}
.big-steps .n{grid-row:1/span 2;font:400 11px/2.4 var(--font);letter-spacing:.18em;color:rgba(255,255,255,.6)}
.big-steps b{font-weight:300;font-size:clamp(20px,1.8vw,26px);letter-spacing:-.01em}
.big-steps span:last-child{color:rgba(255,255,255,.68);font-size:15px}
.quad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
.quad li{display:flex;flex-direction:column;gap:12px;padding-top:22px;border-top:1px solid var(--ink)}
.quad b{font-weight:200;font-size:clamp(26px,2.4vw,36px);line-height:1;letter-spacing:-.02em}
.quad span{color:var(--stone);font-size:15px;max-width:16em}
.shot .giant{margin-top:18px}
.shot-grid .acts{justify-content:flex-end}
.shot-grid{grid-template-columns:minmax(0,9fr) minmax(0,3fr)}
.final .search{max-width:820px;margin:0}
.final .search input{border-color:#fff}
.final-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px}
.final .note{font-size:14px;color:rgba(255,255,255,.7)}
.final .note a{color:inherit;text-underline-offset:3px}
#faq .faq summary{font-size:clamp(17px,1.4vw,20px);font-weight:300;padding-block:22px}
#check{scroll-margin-top:0}
.hero-grid > *,.shot-grid > *{min-width:0}
.hero.fs .hero-grid,.shot .shot-grid{display:grid;flex-direction:initial}
.trust{background:var(--paper);border-bottom:1px solid var(--line);padding-block:clamp(28px,4vw,44px)}
.trust-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px clamp(20px,3vw,48px)}
.trust-list li{display:flex;flex-direction:column;gap:6px;min-width:0}
.trust-list b{font-weight:200;font-size:clamp(24px,2.4vw,34px);line-height:1.1;letter-spacing:-.02em}
.trust-list span{font-size:14px;color:var(--stone)}
.example{padding-block:clamp(72px,12vh,140px)}
.example .lede{max-width:24em;color:var(--stone)}
.example .rows small a{color:inherit;text-underline-offset:3px}
@media (max-width:900px){.trust-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* v3: only the photo screens and the last screen are full height; text sections take the height they need */
.fs{padding-block:clamp(72px,11vh,128px)}
.hero.fs,.shot{padding:0}
.label{font-size:12px;color:#5A544C}
.night .label{color:rgba(255,255,255,.78)}
.rows dt,.field label,.field legend{font-size:12px;color:#5A544C}
.big-steps .n{font-size:12px;color:rgba(255,255,255,.72)}
.how-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:center}
.how-grid > *{min-width:0}
.how-grid .fs-col{gap:clamp(28px,5vh,48px)}
.demo{margin:0;display:flex;flex-direction:column;gap:14px}
.demo svg{display:block;width:100%;height:auto;border:1px solid rgba(255,255,255,.18);border-radius:var(--r)}
.dm{fill:none;stroke:rgba(255,255,255,.34);stroke-width:1}
.dm.on{fill:#fff;stroke:#fff}
.dl{font:400 11px/1 var(--font);letter-spacing:.08em;fill:rgba(255,255,255,.6);text-anchor:middle}
.dl.on{fill:var(--night)}
.demo figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 20px;font-size:14px;color:rgba(255,255,255,.78)}
.final .fs-col{align-items:center;text-align:center}
.final .fs-head{align-items:center}
.final .search{width:100%;max-width:760px;margin-inline:auto}
.final-foot{justify-content:center;gap:8px 40px}
@media (min-width:900px){.final{min-height:100vh;min-height:100svh}}
@media (max-width:900px){.how-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:900px){
.hero-grid,.shot-grid,.fs-grid{grid-template-columns:minmax(0,1fr);align-items:start}
.quad{grid-template-columns:repeat(2,minmax(0,1fr))}
.shot-grid .acts{justify-content:flex-start}
.fs{padding-block:72px}
.hero.fs .hero-grid{padding-top:150px}
}
@media (max-width:460px){.quad{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){body:has(.hero.fs) .top{transition:none}}
.guide-form{display:flex;flex-direction:column;gap:12px}
.guide-row{display:flex;gap:8px}
.guide-row input{flex:1;min-width:0;font:300 17px/1.2 var(--font);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.guide-row input:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
#guide .lede{max-width:26em;color:#5A544C}
#guideMsg.err{color:#8A2B1D}
@media (max-width:560px){.guide-row{flex-direction:column}}
/* v4: full-bleed layout. Content runs edge to edge with a fluid gutter instead of a centered column. */
.wrap{max-width:none;padding-left:max(clamp(24px,4.5vw,84px),env(safe-area-inset-left,0px));padding-right:max(clamp(24px,4.5vw,84px),env(safe-area-inset-right,0px))}
.hero.fs::after,.shot::after{background:linear-gradient(to top,rgba(30,30,28,.9) 0%,rgba(30,30,28,.5) 26%,rgba(30,30,28,0) 58%,rgba(30,30,28,.3) 100%)}
.hero.fs > img{object-position:center 55%}
.hero.fs .hero-grid{grid-template-columns:minmax(0,1fr) minmax(360px,34vw);padding-block:0 clamp(40px,7vh,80px)}
.hero.fs .search{flex-direction:row;gap:0;padding:6px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.4);border-radius:8px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.hero.fs .search input{background:transparent;border-color:transparent;color:#fff;padding:16px 16px}
.hero.fs .search input::placeholder{color:rgba(255,255,255,.82)}
.hero.fs .search input:focus-visible{outline:2px solid #fff;outline-offset:-2px}
.hero.fs .search .btn{width:auto;padding-inline:26px}
@media (max-width:900px){.hero.fs .hero-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:480px){.hero.fs .search{flex-direction:column;gap:6px}.hero.fs .search .btn{width:100%}}
/* v5: lighter placeholder and a slimmer address bar */
.hero.fs .search{padding:5px}
.hero.fs .search input{font-weight:300;font-size:16px;padding:12px 16px}
.hero.fs .search input::placeholder{font-weight:200;color:rgba(255,255,255,.78);letter-spacing:.01em}
.hero.fs .search .btn{padding-block:13px;font-size:11px}
.final .search input::placeholder,.guide-row input::placeholder{font-weight:200}
/* v6: one background rhythm. White is the base, beige marks a pause, dark is kept for the photo screens and one closing block (last call + footer). */
#how.night{background:var(--paper);color:var(--ink)}
#how .label{color:#5A544C}
#how .big-steps,#how .big-steps li{border-color:var(--line)}
#how .big-steps .n{color:var(--stone)}
#how .big-steps span:last-child{color:var(--stone)}
#how .demo svg{border:0;background:var(--beige)}
#how .dm{fill:var(--paper);stroke:var(--stone)}
#how .dm.on{fill:var(--ink);stroke:var(--ink)}
#how .dl{fill:var(--stone)}
#how .dl.on{fill:#fff}
#how .demo figcaption{color:var(--stone)}
.trust{border-bottom:0;padding-bottom:0}
.trust .trust-list{padding-bottom:clamp(28px,4vw,44px);border-bottom:1px solid var(--line)}
@media (min-width:900px){.final{min-height:0}}
.final{padding-block:clamp(96px,16vh,168px) clamp(72px,11vh,120px)}
.foot{background:var(--night);color:#fff;border-top:1px solid rgba(255,255,255,.16)}
.foot .label{color:rgba(255,255,255,.6)}
.foot .cols a,.foot p{color:rgba(255,255,255,.82)}
.foot .cols a:hover{color:#fff}
.legal{border-top:1px solid rgba(255,255,255,.16)}
/* v7: the Land Check runs on its own page, over a satellite photo */
.check-top{padding-block:clamp(28px,4vw,44px) 0}
.check-top .search{max-width:760px;margin:14px 0 0}
.check-top .search input{border-color:var(--line)}
.check-top .search input::placeholder{font-weight:200}
#checkPage #check{padding-block:clamp(28px,4vw,48px) clamp(64px,9vw,112px)}
#checkPage #check[hidden]{display:none!important}
.lot{position:relative}
#map.sat .pc{fill:rgba(255,255,255,.06);stroke:#fff;stroke-width:1.4}
#map.sat .pc:hover{fill:rgba(255,255,255,.28)}
#map.sat .pc.on{fill:rgba(255,255,255,.5);stroke:#fff;stroke-width:3}
#map.sat .pc.on:hover{fill:rgba(255,255,255,.6)}
#map.sat .pl{fill:#fff;font-weight:500;paint-order:stroke;stroke:rgba(20,20,18,.75);stroke-width:3px;stroke-linejoin:round}
#map.sat .pl.on{fill:#1E1E1C;stroke:rgba(255,255,255,.85)}
.credit{font-size:11px;color:var(--stone);padding:6px 4px 0}
/* v8: larger wordmark in the header, footer as a clear four-column grid */
.top .wordmark{font-size:21px}
.foot .wrap{display:grid;grid-template-columns:minmax(0,5fr) repeat(3,minmax(0,2fr));gap:40px clamp(24px,4vw,64px);padding-block:clamp(56px,7vw,88px) clamp(48px,6vw,72px);align-items:start}
.foot-brand .wordmark{font-size:21px}
.foot-brand p{font-weight:200;font-size:clamp(20px,1.8vw,26px);letter-spacing:-.01em;margin-top:18px;color:rgba(255,255,255,.82)}
.foot-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.foot-col .label{margin-bottom:8px;color:rgba(255,255,255,.55)}
.foot-col a{font-size:15.5px;line-height:1.35;color:rgba(255,255,255,.86);text-decoration:none;align-self:flex-start;border-bottom:1px solid transparent;padding-bottom:1px;overflow-wrap:anywhere}
.foot-col a:hover{color:#fff;border-bottom-color:rgba(255,255,255,.6)}
.foot-col a.out{margin-top:10px}
.foot-col a.out span{font-size:.85em}
@media (max-width:820px){.top .wordmark{font-size:16px}.foot .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-brand,.foot .wrap > .foot-col:last-child{grid-column:1/-1}}
/* v9: larger map without a frame, cleaner selection, back link on step 2 */
#checkPage .lot{background:none;padding:0}
#checkPage .lot svg{border-radius:var(--r)}
#checkPage .lot .hint{padding:12px 0 0}
#checkPage .credit{padding:4px 0 0}
#checkPage #result{grid-template-columns:minmax(0,8fr) minmax(0,5fr)}
.pc:focus{outline:none}
#map .pc:focus-visible{outline:none;stroke-dasharray:7 5}
#map.sat .pc.on{fill:rgba(255,255,255,.34);stroke:#fff;stroke-width:3.5}
#map.sat .pc.on:hover{fill:rgba(255,255,255,.44)}
#map.sat .pl{font-size:10.5px}
#step2 .steps{border-top:0}
.back{appearance:none;-webkit-appearance:none;background:none;border:0;border-bottom:1px solid var(--ink);border-radius:0;padding:0 0 5px;font:400 12px/1 var(--font);letter-spacing:.2em;text-transform:uppercase;color:var(--ink);cursor:pointer;align-self:flex-start;margin-bottom:6px}
@media (max-width:900px){#checkPage #result{grid-template-columns:minmax(0,1fr)}}
/* v10: solid white address bar, matching section titles */
.hero.fs .search{background:#fff;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 12px 40px rgba(20,20,18,.28)}
.hero.fs .search input{color:var(--ink);background:transparent}
.hero.fs .search input::placeholder{color:var(--stone);font-weight:300}
.hero.fs .search input:focus-visible{outline:none}
.hero.fs .search:focus-within{outline:2px solid rgba(255,255,255,.9);outline-offset:3px}
.hero.fs .search .btn{background:var(--ink);border-color:var(--ink);color:#fff}
.hero.fs .search .btn:hover{background:var(--night)}
.search input:-webkit-autofill,.search input:-webkit-autofill:hover,.search input:-webkit-autofill:focus,.guide-row input:-webkit-autofill{-webkit-box-shadow:0 0 0 100px #fff inset;box-shadow:0 0 0 100px #fff inset;-webkit-text-fill-color:var(--ink);caret-color:var(--ink)}
#how .giant{font-size:clamp(32px,3.6vw,56px);line-height:1.06;letter-spacing:-.03em}
/* v11: footer organized by audience with contact under the brand; closing block with an address field on every page */
.foot .wrap{grid-template-columns:minmax(0,5fr) repeat(3,minmax(0,2fr))}
.foot-brand address{font-style:normal;display:flex;flex-direction:column;gap:8px;margin-top:clamp(28px,4vw,48px)}
.foot-brand address a{font-size:15.5px;color:rgba(255,255,255,.86);text-decoration:none;align-self:flex-start;border-bottom:1px solid transparent;padding-bottom:1px}
.foot-brand address a:hover{color:#fff;border-bottom-color:rgba(255,255,255,.6)}
.foot-col a span{font-size:.85em}
.legal .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:8px clamp(24px,4vw,64px);align-items:start;padding-block:22px}
.legal .fine{flex-basis:auto;margin:0}
.cta .giant{font-size:clamp(32px,3.6vw,56px);line-height:1.06}
.founder{display:flex;flex-direction:column;gap:20px}
.founder .large{max-width:16em}
@media (max-width:820px){.foot .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}.foot .wrap > .foot-col:last-child{grid-column:auto}.legal .wrap{grid-template-columns:minmax(0,1fr)}}
/* v12: services open one at a time with a short paragraph */
.svc summary{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr) auto;gap:16px;align-items:baseline;padding-block:22px}
.svc .svc-name{font:400 12px/1.9 var(--font);letter-spacing:.18em;text-transform:uppercase;color:#5A544C}
.svc .svc-line{font-weight:200;font-size:clamp(20px,2.4vw,30px);line-height:1.25;letter-spacing:-.01em}
.svc p{padding:0 0 26px;margin-left:calc(11rem + 16px);max-width:34em;font-size:16px;line-height:1.6;color:#5A544C}
.svc summary:hover .svc-line{opacity:.75}
@media (max-width:640px){.svc summary{grid-template-columns:minmax(0,1fr) auto}.svc .svc-name{grid-column:1/-1}.svc p{margin-left:0}}
/* v13: the Land Check page has a proper starting screen before any address is entered */
#checkPage{min-height:calc(100svh - 80px)}
#checkPage:not(:has(#check:not([hidden]))) .check-top{padding-block:clamp(56px,10vh,120px)}
#checkPage:not(:has(#check:not([hidden]))) .check-top .wrap{display:flex;flex-direction:column;gap:18px;max-width:none}
#checkPage:not(:has(#check:not([hidden]))) .check-top .search{margin:10px 0 0;max-width:820px}
#checkPage .check-top .lede{max-width:30em;font-size:clamp(17px,1.5vw,20px);color:#5A544C}
#checkPage .check-top .steps{max-width:820px;margin-top:clamp(28px,5vh,56px)}
#checkPage:has(#check:not([hidden])) .intro-only{display:none}
/* v14: the project photo runs edge to edge, like the About photo */
.proj-cap{padding-block:22px clamp(48px,7vw,88px)}
figure.wide{margin:0}
/* v15: address suggestions in our own list, no browser arrow */
.search{position:relative}
.search input::-webkit-calendar-picker-indicator{display:none!important;opacity:0}
.ac{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 16px 40px rgba(20,20,18,.18);z-index:40;overflow:hidden;text-align:left}
.ac button{display:block;width:100%;text-align:left;background:none;border:0;border-radius:0;padding:13px 16px;font:300 15.5px/1.35 var(--font);letter-spacing:0;text-transform:none;color:var(--ink);cursor:pointer}
.ac button + button{border-top:1px solid var(--line)}
.ac button:hover,.ac button.cur{background:var(--beige)}
.hero.fs .ac{top:auto;bottom:calc(100% + 8px)}
/* v16 insights */
.posts{border-top:1px solid var(--line)}
.post{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:8px 16px;padding-block:clamp(22px,2.6vw,34px);border-bottom:1px solid var(--line);text-decoration:none}
.post .label{padding-top:.9em}
.post-t{font-weight:200;font-size:clamp(22px,2.6vw,34px);line-height:1.2;letter-spacing:-.015em;text-wrap:balance}
.post-d{grid-column:2;color:var(--stone);max-width:38em}
.post:hover .post-t{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}
.guide-teaser{display:flex;flex-direction:column;gap:22px}
.guide-teaser p{max-width:34em}
.art-title h1{max-width:17em}
.art-title .label a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}
.byline{margin-top:28px}
.art-facts{padding-bottom:clamp(32px,5vw,56px)}
.art .clause > :not(h2){grid-column:2;max-width:38em}
.art .clause > :not(h2) + :not(h2){margin-top:12px}
.art ul,.art ol{margin-block:0;padding-left:1.25em;display:grid;gap:8px}
.art ul{list-style:disc}
.art ol{list-style:decimal}
.art li{padding-left:.2em}
.art li::marker{color:var(--stone)}
.art b{font-weight:500}
.art a,.posts + a{text-underline-offset:3px}
.art .src li{font-size:14px;color:var(--stone)}
@media (max-width:820px){.art .clause > :not(h2){grid-column:1}}
@media (max-width:640px){.post{grid-template-columns:minmax(0,1fr)}.post .label{padding-top:0}.post-d{grid-column:1}}
@media (max-width:480px){.top nav{gap:8px}.top nav a{font-size:10.5px;letter-spacing:.09em}}

/* six menu items: wrap on narrow phones instead of overflowing */
@media (max-width:480px){.top nav{flex-wrap:wrap;justify-content:flex-start;gap:8px 16px}}

/* legal links on the bottom line of the footer */
.legal .legal-links{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.legal .legal-links a{color:inherit;text-decoration:none}
.legal .legal-links a:hover{text-decoration:underline}

/* legal bar layout: copyright and links on the left, disclaimer on the right */
@media (min-width:1000px){.legal .wrap>span{grid-column:1;grid-row:1}.legal .legal-links{grid-column:1;grid-row:2;align-self:start}.legal .fine{grid-column:2;grid-row:1 / span 2}}
