:root{--font-body:Arial,Helvetica,sans-serif;--font-display:Arial,Helvetica,sans-serif;--bg:#101e19;--card:#1b2b24;--gold:#dcc28a;--muted:#b1bcb4;--line:#ffffff24;--white:#f6f3e9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--bg);color:var(--white);font-family:Arial,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}button,select,textarea{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}header{position:sticky;top:0;z-index:10;background:#101e19ed;backdrop-filter:blur(15px);border-bottom:1px solid var(--line);padding:14px 5%;display:flex;align-items:center;justify-content:space-between;gap:20px}header b{letter-spacing:3px}header small{color:var(--gold)}header nav{display:flex;gap:18px;font-size:13px}#progress{position:fixed;top:0;height:3px;background:var(--gold);z-index:20;width:0}main{overflow:hidden}.hero{min-height:83vh;display:grid;grid-template-columns:1.05fr 1fr;gap:55px;align-items:center;padding:65px 7%;position:relative}.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:3px;font-size:11px;font-weight:bold}h1{font-family:var(--font-display);font-weight:400;font-size:clamp(42px,5.5vw,84px);line-height:1.14;margin:22px 0}h1 em{color:var(--gold)}h2{font-family:var(--font-display);font-weight:400;font-size:clamp(30px,3.4vw,50px);line-height:1.25;margin:14px 0 22px}h3{font-size:19px;margin:10px 0}p{color:var(--muted)}.lead{font-size:18px;max-width:720px}.btn{display:inline-block;border:1px solid var(--gold);background:var(--gold);color:#15261d;padding:12px 22px;border-radius:4px;font-weight:bold}.ghost{background:transparent;color:var(--gold)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.heroArt{position:relative}.heroArt img{width:100%;height:400px;object-fit:cover;border-radius:160px 8px 8px 8px}.caption{font-size:12px;color:var(--muted)}.stamp{position:absolute;bottom:35px;left:-25px;background:var(--gold);color:var(--bg);padding:18px 28px;box-shadow:0 20px 70px #0008}.stamp strong{font-size:30px;display:block}section{padding:75px 7%;border-top:1px solid var(--line)}.head{display:flex;gap:25px;align-items:flex-start}.num{font-family:var(--font-display);color:var(--gold);font-size:22px;min-width:48px;border-top:1px solid var(--gold);padding-top:10px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:30px 0}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{padding:24px;background:var(--card);border:1px solid var(--line);border-radius:8px;min-width:0}.card img{width:100%;border-radius:4px}.tag{display:inline-block;font-size:11px;letter-spacing:1px;padding:4px 9px;background:#dcc28a15;color:var(--gold);border:1px solid #dcc28a44;border-radius:30px}.pending{color:#f1c890;font-size:12px}.tiles{display:flex;flex-wrap:wrap;gap:8px}.tiles span{padding:7px 12px;border:1px solid var(--line);font-size:13px;border-radius:4px}details{border-top:1px solid var(--line);padding:14px 0}summary{cursor:pointer;font-weight:bold}details li{color:var(--muted);margin:8px 0}blockquote{border-left:2px solid var(--gold);padding:12px 25px;color:var(--gold);margin:25px 0;background:#dcc28a08}.map{width:100%;border-radius:8px}.graph{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:35px}.graph:not(.g3d-host) a{border:1px solid var(--line);padding:20px 12px;text-align:center;border-radius:10px;background:var(--card);position:relative}.graph:not(.g3d-host) a:not(:last-child):after{content:'→';position:absolute;right:-12px;color:var(--gold);z-index:1}.graph:not(.g3d-host) a:hover{border-color:var(--gold);transform:translateY(-4px)}.tabs{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.tabs button{border:1px solid var(--line);background:transparent;color:var(--white);padding:10px 16px;border-radius:4px}.tabs button[aria-pressed=true]{background:var(--gold);color:var(--bg)}.siteplan{background:#ece8db;color:#21362a;padding:25px;border-radius:8px}.siteplan .rear{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-bottom:14px}.zone{padding:25px 15px;border:1px dashed #496a52;text-align:center;background:#d3dece}.front{display:flex;gap:10px}.front .zone{flex:1;background:#e4d2a8}.front .store{background:#356345;color:white}.forecourt{margin-top:12px;padding:12px;border:1px dashed #8a764c;background:#f3ead4;text-align:center;font-size:12px}.road{border-top:5px solid #6f756f;margin-top:12px;padding:12px;background:#d4d7d1;text-align:center}.pole{font-size:12px;margin:10px 0;color:#603b1e}.money{display:grid;grid-template-columns:1fr 1.5fr;gap:25px}.costrow{display:flex;gap:15px;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.costrow span:last-child{color:var(--gold);white-space:nowrap;font-size:12px}.portraits img{height:280px;object-fit:cover;object-position:top}.steps{display:flex;gap:10px;flex-wrap:wrap}.steps span{border:1px solid var(--line);padding:10px}.steps .active{background:var(--gold);color:var(--bg)}.demo{padding:30px;border:1px solid var(--gold);border-radius:8px;background:#172c24}.demo h3{font-size:27px}.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.timeline article{border-top:3px solid var(--gold);padding:15px;background:var(--card)}textarea{width:100%;background:var(--card);border:1px solid var(--line);color:white;padding:16px;border-radius:6px;min-height:130px}.reveal{transition:opacity .7s,transform .7s}.js .reveal.waiting{opacity:0;transform:translateY(24px)}footer{padding:35px 7%;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}.source{white-space:pre-wrap;max-height:400px;overflow:auto;font:13px/1.6 Arial}.visualPending{border:1px dashed #ffffff35;padding:12px;color:var(--muted);font-size:12px;margin-top:15px}@media(max-width:900px){.hero{grid-template-columns:1fr;padding-top:35px;gap:30px}.heroArt img{height:280px}.grid,.timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.graph{grid-template-columns:repeat(3,1fr)}.money{grid-template-columns:1fr}header nav a:nth-child(-n+2){display:none}}@media(max-width:540px){header{padding:13px 5%}header small{display:none}header nav{gap:12px}.hero,section{padding:38px 6%}.grid,.two,.timeline{grid-template-columns:1fr}.head{gap:12px}.num{min-width:30px}.graph:not(.g3d-host) a{padding:14px 6px;font-size:12px}.stamp{left:0;bottom:20px}.front{flex-wrap:wrap}.front .zone{flex-basis:100%}.siteplan .rear{grid-template-columns:1fr}.costrow{flex-wrap:wrap}h1{font-size:46px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.reveal{transform:none!important}.js .reveal.waiting{opacity:1}}


/* Hallmark · spatial diagram: preserve adjacency at every width · P4 H4 E4 S5 R5 V4 */
.siteplan .front{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,7fr) minmax(0,8fr);gap:6px}
.siteplan .rear{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:6px}
.siteplan .zone{min-width:0;display:flex;align-items:center;justify-content:center;overflow-wrap:anywhere}
@media(max-width:540px){
  .siteplan{padding:10px}
  .siteplan .zone{padding:14px 5px;font-size:12px;line-height:1.45}
  .siteplan .front .zone{min-height:125px}
  .siteplan .rear .zone{min-height:88px}
  .siteplan .forecourt,.siteplan .pole,.siteplan .road,.siteplan .frontage-measure-note{font-size:11px;line-height:1.5}
}
