
:root{--smoke:#262626;--ink:#1D1D1B;--mesq:#5A5850;--stucco:#F3F0E7;--alu:#C9CDCB;
--olive:#525B2B;--copper:#D2A78D;--paper:#FBF9F4;--field:#2F2F2D;--line:#454340;
--wall:var(--stucco);--txt:var(--smoke);--muted:var(--mesq);--accent:var(--olive);
--hair:var(--alu);--panel:var(--smoke);--panel-txt:var(--stucco);--panel-muted:var(--alu);
--panel-accent:var(--copper);--foot:var(--ink)}
@media (prefers-color-scheme:dark){
:root{--wall:var(--ink);--txt:var(--stucco);--muted:var(--alu);--accent:var(--copper);
--hair:var(--line);--panel:var(--smoke);--foot:#161614}}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--wall);color:var(--txt);
font:400 1rem/1.65 "Helvetica Neue",Helvetica,Arial,system-ui,sans-serif}
h1,h2,h3{font-weight:700;line-height:1.04;letter-spacing:-.02em}
h1{font-size:clamp(2rem,3.6vw,3.2rem)}
h2{font-size:clamp(1.5rem,2.2vw,2.1rem);letter-spacing:-.012em}
h3{font-size:clamp(1.4rem,2vw,1.9rem)}
p{max-width:38rem}
p+p{margin-top:1rem}
a{color:var(--accent);text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
.wrap{max-width:82rem;margin:0 auto;padding:0 clamp(1.25rem,4vw,4rem)}
.eyebrow{display:block;font-size:.7rem;font-weight:600;letter-spacing:.28em;
text-transform:uppercase;color:var(--muted)}
.dark .eyebrow,.hero .eyebrow{color:var(--panel-accent)}
.sec{padding:clamp(3.5rem,7vw,6.5rem) 0;border-top:1px solid var(--hair)}
.sec-grid{display:grid;grid-template-columns:16rem minmax(0,48rem);gap:clamp(1.5rem,4vw,5rem)}
.dark{background:var(--panel);color:var(--panel-txt)}
.dark a{color:var(--panel-accent)}
.dark p{color:var(--panel-txt)}
.lead{font-size:clamp(1.25rem,2.1vw,1.75rem);line-height:1.4;letter-spacing:-.01em;max-width:46rem}
.small{font-size:.85rem;color:var(--muted);line-height:1.6}
.dark .small{color:var(--panel-muted)}
header{background:var(--wall);border-bottom:1px solid var(--hair);position:sticky;top:0;z-index:60}
.bar{display:flex;align-items:center;justify-content:space-between;
padding:1.35rem clamp(1.25rem,4vw,4rem);max-width:82rem;margin:0 auto}
.wordmark{font-size:.9rem;font-weight:700;letter-spacing:.38em;text-transform:uppercase;
color:var(--txt);text-decoration:none;white-space:nowrap}
nav ul{list-style:none;display:flex;gap:2.2rem}
nav a{color:var(--txt);text-decoration:none;font-size:.85rem;font-weight:500;letter-spacing:.02em}
nav a:hover{color:var(--accent)}
nav a[aria-current]{border-bottom:2px solid var(--accent);padding-bottom:.2rem}
#menu-btn{display:none;background:none;border:none;padding:.6rem .2rem;cursor:pointer}
.mbar{display:block;width:1.6rem;height:1px;background:var(--txt);margin:6px 0;transition:transform .25s}
#menu-btn[aria-expanded="true"] .mbar:first-child{transform:translateY(3.5px) rotate(45deg)}
#menu-btn[aria-expanded="true"] .mbar:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.hero{position:relative;background:var(--smoke)}
.hero img{display:block;width:100%;height:clamp(24rem,74vh,44rem);object-fit:cover}
.hero-panel{position:absolute;left:0;bottom:0;background:var(--smoke);color:var(--stucco);
padding:clamp(1.5rem,3vw,2.75rem) clamp(1.5rem,3.5vw,3.5rem) clamp(1.5rem,3vw,2.75rem) clamp(1.25rem,4vw,4rem);
max-width:min(44rem,94%)}
.hero-panel h1{margin:.9rem 0 .9rem}
.hero-panel p{max-width:32rem;color:var(--alu);font-size:.98rem}
.hero-panel .cta-row{margin-top:1.5rem}
.btn,.btn-o{display:inline-block;padding:.8rem 1.5rem;text-decoration:none;
font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.btn{background:var(--stucco);color:var(--smoke);border:1px solid var(--stucco)}
.btn:hover{background:var(--copper);border-color:var(--copper);color:var(--smoke)}
.btn-o{background:transparent;color:var(--stucco);border:1px solid var(--mesq)}
.btn-o:hover{border-color:var(--stucco)}
.btn-l{display:inline-block;padding:.8rem 1.5rem;text-decoration:none;font-size:.8rem;
font-weight:600;letter-spacing:.14em;text-transform:uppercase;background:var(--accent);
color:var(--wall);border:1px solid var(--accent);cursor:pointer}
.btn-l:hover{background:var(--txt);border-color:var(--txt);color:var(--wall)}
button.btn{cursor:pointer;font-family:inherit}
.cta-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.collage{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--wall)}
.collage img{display:block;width:100%;height:clamp(11rem,24vw,20rem);object-fit:cover}
.doors{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:2.5rem}
.door{padding:clamp(2rem,3.5vw,3.25rem);min-height:20rem;display:flex;flex-direction:column;color:var(--stucco)}
.door h3{margin:.9rem 0 1rem}
.door p{color:var(--alu);font-size:.95rem;max-width:30rem}
.door .cta-row{margin-top:auto;padding-top:1.75rem}
.door.olive{background:var(--olive)}
.door.olive p,.door.olive .eyebrow{color:#E2E4D8}
.door.smoke{background:var(--smoke)}
.door.smoke p{color:var(--alu)}
.band img{display:block;width:100%;height:clamp(13rem,32vw,24rem);object-fit:cover}
.facts{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--hair);margin-top:2.5rem}
.facts div{flex:1 1 10rem;padding:1.1rem 1.25rem 1.1rem 0;border-bottom:1px solid var(--hair);
font-size:.85rem;letter-spacing:.06em}
.facts b{display:block;font-size:.65rem;letter-spacing:.24em;text-transform:uppercase;
color:var(--muted);font-weight:600;margin-bottom:.3rem}
details{border-top:1px solid var(--hair)}
details:last-of-type{border-bottom:1px solid var(--hair)}
details summary{padding:1.05rem 0;cursor:pointer;font-weight:600;font-size:.95rem;
list-style:none;display:flex;justify-content:space-between;gap:1rem}
details summary::after{content:"+";font-weight:400;color:var(--muted)}
details[open] summary::after{content:"−"}
details p{padding:0 0 1.1rem;font-size:.95rem;max-width:34rem}
form{max-width:30rem;margin-top:2rem}
.f-row{margin-bottom:1.1rem}
label{display:block;font-size:.68rem;font-weight:600;letter-spacing:.22em;
text-transform:uppercase;margin-bottom:.45rem;color:var(--panel-muted)}
input,select,textarea{width:100%;padding:.65rem .75rem;border:1px solid var(--line);
background:var(--field);font:inherit;font-size:.95rem;color:var(--stucco)}
select{appearance:none;-webkit-appearance:none;
background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="6"><path d="M1 1l4 4 4-4" stroke="%23C9CDCB" fill="none"/></svg>');
background-repeat:no-repeat;background-position:right .8rem center}
input:hover,select:hover,textarea:hover{border-color:var(--mesq)}
input:focus,select:focus,textarea:focus{border-color:var(--copper)}
textarea{min-height:7rem;resize:vertical}
.check{display:flex;gap:.6rem;align-items:flex-start;margin:1.3rem 0 1.5rem}
.check input{width:.95rem;height:.95rem;margin-top:.25rem;accent-color:var(--olive)}
.check label{font-size:.78rem;font-weight:400;letter-spacing:0;text-transform:none;
margin:0;color:var(--panel-muted);line-height:1.5}
.form-note{font-size:.85rem;color:var(--panel-accent);margin-top:1rem;max-width:30rem}
footer{background:var(--foot);color:var(--stucco);padding:3.5rem 0 2.5rem;font-size:.85rem}
.foot{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2.5rem}
footer p{color:var(--alu);max-width:24rem;margin-top:1rem}
footer ul{list-style:none}
footer li{margin-bottom:.6rem}
footer a{color:var(--stucco);text-decoration:none}
footer a:hover{color:var(--copper)}
footer .eyebrow{color:var(--mesq);margin-bottom:1rem}
.skip{position:absolute;left:-9999px;top:0;background:var(--smoke);color:var(--stucco);padding:.7rem 1rem;z-index:9}
.skip:focus{left:0}
@media(max-width:64rem){
.sec-grid{grid-template-columns:1fr;gap:1.25rem}
.doors{grid-template-columns:1fr}
.door{min-height:0}
.foot{grid-template-columns:1fr}
#menu-btn{display:block}
nav{display:none;width:100%}
nav.open{display:block}
nav ul{flex-direction:column;gap:0;padding:.5rem 0 1rem}
nav li{border-top:1px solid var(--hair)}
nav a{display:block;padding:.85rem 0}
.bar{flex-wrap:wrap}
.hero-panel{position:static;max-width:none}
.hero img{height:clamp(16rem,52vw,28rem)}
}
@media(max-width:40rem){
.collage{grid-template-columns:1fr}
.collage img{height:14rem}
}

/* Fix6: survey-grid narrative language */
:root{--gridline:#E6E2D6;--gridline-d:#2B2B28}
@media (prefers-color-scheme:dark){:root{--gridline:#2B2B28}}
body{background-image:linear-gradient(var(--gridline) 1px,transparent 1px),
linear-gradient(90deg,var(--gridline) 1px,transparent 1px);
background-size:9rem 9rem;background-position:center top}
.dark,.door,.hero-panel,footer,.band{background-image:none}
.chap{padding:clamp(4.5rem,10vh,8rem) 0;position:relative;border-top:1px solid var(--hair)}
.chap-grid{display:grid;grid-template-columns:16rem minmax(0,48rem);gap:clamp(1.5rem,4vw,5rem)}
.tile{padding:clamp(2rem,4.5vw,4.5rem)}
.tile.dark{background:var(--panel);color:var(--panel-txt)}
.tile.dark .statement,.tile.dark p{color:var(--panel-txt)}
.tile.dark .eyebrow{color:var(--panel-accent)}
.tile.olive{background:var(--olive);color:var(--stucco)}
.tile.olive .statement,.tile.olive p{color:var(--stucco)}
.tile.olive .eyebrow{color:#E2E4D8}
.tile.olive a{color:var(--stucco)}
.numeral{font-size:clamp(3.4rem,8vw,6.5rem);font-weight:700;line-height:.9;letter-spacing:-.03em}
.statement{font-size:clamp(1.1rem,1.6vw,1.4rem);line-height:1.45;letter-spacing:-.005em;max-width:40rem;margin-top:1.25rem}
.big{font-size:clamp(1.9rem,3.6vw,3.2rem);line-height:1.08;letter-spacing:-.015em;max-width:46rem}
.band{position:relative}
.band-cap{font-size:.8rem;letter-spacing:.06em;color:var(--muted);padding-top:.8rem;padding-bottom:.4rem}
/* reveal motion */
.rv{opacity:1}
@media (prefers-reduced-motion:no-preference){
.rv>*{transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .6s ease-out}
.rv:not(.on)>*{transform:translateY(2.2rem);opacity:0}
}
/* map chapter */
.map-chap{position:relative;height:min(calc(100vh - 4.5rem),52rem);min-height:32rem;overflow:hidden;padding:0;border-top:none}
#survey-map{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}
#survey-map:active{cursor:grabbing}
.m-tx{stroke:var(--muted);stroke-width:1;fill:none}
#survey-map.zoomed .m-tx{stroke:var(--hair);stroke-width:.5}
.m-grid{stroke:var(--hair);stroke-width:.5}
.m-edge{stroke:var(--muted);stroke-width:.75;fill:none;stroke-dasharray:4 5}
.m-i20{stroke:var(--txt);stroke-width:1.1;fill:none}
.m-city{fill:var(--txt)}
.m-fld{fill:var(--muted)}
.m-lbl{font:400 8px "Helvetica Neue",Helvetica,Arial,sans-serif;fill:var(--txt)}
.cg{cursor:default}
.cg:hover .m-lbl{font-weight:600}
.cg:hover .m-city{r:3}
.m-road{font:500 7px "Helvetica Neue",Helvetica,Arial,sans-serif;fill:var(--muted);letter-spacing:.12em}
.m-region{font:500 8px "Helvetica Neue",Helvetica,Arial,sans-serif;fill:var(--muted);letter-spacing:.3em}
.m-sea{font:400 11px "Helvetica Neue",Helvetica,Arial,sans-serif;fill:var(--muted);letter-spacing:.4em}
.m-mark{fill:var(--accent)}
.m-ranch:hover .m-rlbl{font-weight:700}
.m-rlbl{font:600 9px "Helvetica Neue",Helvetica,Arial,sans-serif;fill:var(--txt);letter-spacing:.14em}
@media (prefers-reduced-motion:no-preference){
.m-tx{stroke-dasharray:4200;stroke-dashoffset:4200;animation:draw 1.3s ease-out forwards}
.m-grid{stroke-dasharray:600;stroke-dashoffset:600;animation:draw 1.2s ease-out 1.5s forwards}
.m-i20{stroke-dasharray:400;stroke-dashoffset:400;animation:draw 1s ease-out 2.2s forwards}
.m-edge{opacity:0;animation:appear .7s ease-out 2.6s forwards}
.cg,.m-road,.m-region{opacity:0;animation:appear .6s ease-out 2.9s forwards}
.m-flds circle{opacity:0;animation:appear .6s ease-out 3.2s forwards}
.m-ranch{opacity:0;animation:appear .7s ease-out 3.6s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes appear{to{opacity:1}}
}
.map-ui{position:absolute;top:1rem;right:1rem;display:flex;flex-direction:column;gap:2px}
.map-ui button{width:2.4rem;height:2.4rem;border:1px solid var(--hair);background:var(--wall);
color:var(--txt);font-size:1.1rem;cursor:pointer;font-family:inherit}
.map-ui button:hover{border-color:var(--accent);color:var(--accent)}
.m-note{position:absolute;right:1rem;bottom:.8rem;font-size:.68rem;letter-spacing:.05em;
color:var(--muted);max-width:18rem;text-align:right}
.map-chap .hero-panel{max-width:min(33rem,94%)}
@media(max-width:64rem){
.chap-grid{grid-template-columns:1fr;gap:1.25rem}
.map-chap{height:auto;min-height:0;overflow:visible}
#survey-map{position:relative;height:62vw;min-height:19rem;display:block}
.map-chap .hero-panel{position:static;max-width:none}
.m-note{position:static;text-align:left;padding:.5rem clamp(1.25rem,4vw,4rem) 0;max-width:none}
.map-ui{top:.6rem;right:.6rem}
}


/* Fix8: one axis, marker system, geology motifs */
.chap-grid>.eyebrow::before,.sec-grid>.eyebrow::before{content:"";display:inline-block;
width:7px;height:7px;background:var(--accent);transform:rotate(45deg);margin-right:.7rem}
.dark-chap{background:var(--panel);color:var(--panel-txt);background-image:none;border-top:none}
.dark-chap p{color:var(--panel-txt)}
.dark-chap .eyebrow{color:var(--panel-accent)}
.dark-chap .eyebrow::before{background:var(--panel-accent)}
.door.line{background:none;border:1px solid var(--hair);color:var(--txt)}
.door.line p{color:var(--muted)}
.door.line .eyebrow{color:var(--muted)}
.door.line .btn-o{color:var(--txt);border-color:var(--muted)}
.door.line .btn-o:hover{border-color:var(--accent);color:var(--accent)}
.geo-band{padding:.5rem 0 0}
.geo-strip{display:block;width:100%;height:auto}
.strat{display:block;width:100%;max-width:44rem;height:auto;margin:2.5rem 0 .6rem}
.st-surf{stroke:var(--txt);stroke-width:1.1}
.st-band{fill:none;stroke:var(--muted);stroke-width:.8}
.st-lbl{font:600 14px "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:.2em;fill:var(--txt)}
.st-note{font:400 11px "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:.14em;fill:var(--muted)}
.st-well{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}
.st-pay{stroke:var(--accent);stroke-width:4}

/* Fix9: topography and county map heroes */
.m-topo{stroke:var(--hair);stroke-width:.55;fill:none;opacity:.85}
.m-water{stroke:var(--muted);stroke-width:.9;fill:none}
.m-lake{stroke:var(--muted);stroke-width:.9;fill:none}
.m-cty{stroke:var(--muted);stroke-width:.9;fill:none}
.m-brush{fill:var(--muted);opacity:.55}
.sub-map{height:min(78vh,42rem);min-height:26rem}
.sub-map svg{position:absolute;inset:0;width:100%;height:100%}
@media (prefers-reduced-motion:no-preference){
.m-topo,.m-water,.m-lake{stroke-dasharray:1700;stroke-dashoffset:1700;animation:drawt 1.8s ease-out .6s forwards}
.m-cty{stroke-dasharray:2400;stroke-dashoffset:2400;animation:drawt 1.4s ease-out forwards}
.m-brush{opacity:0;animation:appear .8s ease-out 3s forwards}
.sub-map .m-i20,.geo-strip .m-i20{stroke-dasharray:1200;stroke-dashoffset:1200}
.sub-map .m-grid,.geo-strip .m-grid{stroke-dasharray:1100;stroke-dashoffset:1100}
@keyframes drawt{to{stroke-dashoffset:0}}
}
@media(max-width:64rem){
.sub-map{height:auto;min-height:0}
.sub-map svg{position:relative;height:66vw;min-height:17rem;display:block}
}

/* Fix11: roads, clustered fields, grid carries alignment */
.chap,.sec{border-top:none}
.m-hwy{stroke:var(--txt);stroke-width:.7;fill:none}
.m-cr{stroke:var(--muted);stroke-width:.5;fill:none;opacity:.6}
@media (prefers-reduced-motion:no-preference){
.m-hwy{stroke-dasharray:1200;stroke-dashoffset:1200;animation:drawt 1.4s ease-out 2.2s forwards}
.m-cr{opacity:0;animation:appear .8s ease-out 3s forwards}
}

/* Fix12: maplibre integration, scrolly descent */
.gmap{position:absolute;inset:0;width:100%;height:100%;background:var(--wall)}
.scrolly{position:relative}
.scrolly-map{position:sticky;top:0;height:100vh;overflow:hidden;background:var(--wall);margin-bottom:-100vh}
.scrolly-map .m-note{z-index:4}
.step{min-height:100vh;display:flex;align-items:center;pointer-events:none;position:relative;z-index:3}
.step .panel{pointer-events:auto;background:var(--smoke);color:var(--stucco);
padding:clamp(1.5rem,3vw,2.75rem) clamp(1.5rem,3.5vw,3.5rem);max-width:min(34rem,92%);
margin-left:clamp(1.25rem,4vw,4rem)}
.step .panel .eyebrow{color:var(--copper)}
.step .panel p{color:var(--alu);font-size:.98rem;margin-top:.9rem}
.step .panel h1,.step .panel h2,.step .panel .numeral{color:var(--stucco)}
.step .panel .cta-row{margin-top:1.5rem}
@media(max-width:64rem){
.step{align-items:flex-end}
.step .panel{margin:0 1rem 12vh;max-width:none}
.scrolly-map{height:100svh;margin-bottom:-100svh}
.step{min-height:100svh}
}
.maplibregl-ctrl-group{border:1px solid var(--hair)!important;border-radius:0!important;box-shadow:none!important;background:var(--wall)!important}
.maplibregl-ctrl-group button{border-radius:0!important;background:var(--wall)!important}
.maplibregl-ctrl-group button+button{border-top:1px solid var(--hair)!important}
.maplibregl-ctrl-attrib{background:transparent!important;font-size:.62rem;color:var(--muted)}
.maplibregl-ctrl-attrib a{color:var(--muted)!important}
.gr-marker{display:flex;align-items:center;gap:.55rem}
.gr-diamond{width:13px;height:13px;background:var(--accent);transform:rotate(45deg);display:block}
.gr-name{font:600 .7rem/1 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:.16em;
color:var(--txt);background:var(--wall);padding:.22rem .45rem}

/* Fix13: scrolly structure, snapped panels, grid restored on content */
.scrolly-map{margin-bottom:0}
.steps{position:relative;z-index:3;margin-top:-100vh}
.step{min-height:100vh;display:flex;align-items:center;pointer-events:none}
.step .wrap{width:100%;position:relative}
.step .wrap::before{content:"";position:absolute;left:clamp(1.25rem,4vw,4rem);
top:-50vh;bottom:-50vh;width:1px;background:var(--hair);opacity:.5}
.step .panel{pointer-events:auto;position:relative;margin:0 0 0 clamp(2.6rem,calc(4vw + 1.4rem),5.4rem);
max-width:min(31rem,calc(100% - 3rem));background:var(--panel);color:var(--panel-txt);
padding:clamp(1.6rem,2.4vw,2.4rem) clamp(1.6rem,2.6vw,2.6rem)}
.step .panel::before{content:"";position:absolute;left:calc(-1 * clamp(2.6rem,calc(4vw + 1.4rem),5.4rem) + clamp(1.25rem,4vw,4rem) - 4px);
top:2.2rem;width:9px;height:9px;background:var(--accent);transform:rotate(45deg)}
.step .panel .numeral{font-size:clamp(2.4rem,4.5vw,3.4rem);margin-bottom:.2rem}
.step .panel h1{font-size:clamp(1.8rem,3vw,2.6rem);margin:.7rem 0 0}
.step .panel h2{font-size:clamp(1.5rem,2.4vw,2.1rem);margin:.7rem 0 0}
@media (prefers-reduced-motion:no-preference){
.step .panel{transition:opacity .5s ease-out,transform .5s cubic-bezier(.2,.7,.2,1)}
.step:not(.on) .panel{opacity:0;transform:translateY(1.2rem)}
}
/* content after the map keeps the survey grid and stays opaque */
.chap,.sec,.geo-band,.scrolly + *{position:relative;z-index:4}
.chap,.sec,.geo-band{background-color:transparent}
.gridwrap{position:relative;z-index:4;background-color:var(--wall);
background-image:linear-gradient(var(--gridline) 1px,transparent 1px),
linear-gradient(90deg,var(--gridline) 1px,transparent 1px);
background-size:9rem 9rem;background-position:center top}
.dark-chap{background-color:var(--panel);background-image:none}
@media(max-width:64rem){
.step{align-items:flex-end}
.step .wrap::before{display:none}
.step .panel{margin:0 0 12vh;max-width:none}
.step .panel::before{display:none}
.steps{margin-top:-100svh}
}

/* Fix13b: subpage map panels share the home left axis */
.map-chap .hero-panel{position:absolute;left:0;bottom:0;
margin:0 0 clamp(2rem,5vh,4rem) clamp(2.6rem,calc(4vw + 1.4rem),5.4rem);
max-width:min(31rem,calc(100% - 4rem));
padding:clamp(1.6rem,2.4vw,2.4rem) clamp(1.6rem,2.6vw,2.6rem)}
.map-chap .hero-panel::before{content:"";position:absolute;
left:calc(-1 * clamp(2.6rem,calc(4vw + 1.4rem),5.4rem) + clamp(1.25rem,4vw,4rem) - 4px);
top:2.2rem;width:9px;height:9px;background:var(--accent);transform:rotate(45deg)}
.map-chap .hero-panel h1{font-size:clamp(1.8rem,3vw,2.6rem);margin:.7rem 0 0}
.map-chap .hero-panel p{margin-top:.9rem}
.map-chap .m-note{bottom:2.6rem}
.maplibregl-ctrl-bottom-right .maplibregl-ctrl-attrib{margin:0 .6rem .6rem 0}
@media(max-width:64rem){
.map-chap .hero-panel{position:static;margin:0;max-width:none;
padding:clamp(1.4rem,4vw,2rem) clamp(1.25rem,4vw,4rem)}
.map-chap .hero-panel::before{display:none}
.map-chap .m-note{bottom:auto}
}

/* Fix14: the alignment rail belongs to the site, not the map */
.step .wrap::before{background:var(--txt);opacity:.9;width:1px}
.step .panel::before{width:11px;height:11px;top:2rem;
box-shadow:0 0 0 4px var(--wall)}
.step .panel::after{content:"";position:absolute;
left:calc(-1 * clamp(2.6rem,calc(4vw + 1.4rem),5.4rem) + clamp(1.25rem,4vw,4rem));
top:2.5rem;width:calc(clamp(2.6rem,calc(4vw + 1.4rem),5.4rem) - clamp(1.25rem,4vw,4rem));
height:1px;background:var(--txt);opacity:.9}
.map-chap{position:relative}
.map-chap::before{content:"";position:absolute;z-index:3;left:clamp(1.25rem,4vw,4rem);
top:0;bottom:0;width:1px;background:var(--txt);opacity:.9;pointer-events:none}
.map-chap .hero-panel::before{width:11px;height:11px;top:2rem;box-shadow:0 0 0 4px var(--wall)}
.map-chap .hero-panel::after{content:"";position:absolute;
left:calc(-1 * clamp(2.6rem,calc(4vw + 1.4rem),5.4rem) + clamp(1.25rem,4vw,4rem));
top:2.5rem;width:calc(clamp(2.6rem,calc(4vw + 1.4rem),5.4rem) - clamp(1.25rem,4vw,4rem));
height:1px;background:var(--txt);opacity:.9}
@media(max-width:64rem){
.map-chap::before,.map-chap .hero-panel::after,.step .panel::after{display:none}
}

/* Fix15: one global alignment rail; maps are the homepage experience only */
.sec,.chap,.dark-chap{position:relative}
.sec::after,.chap::after{content:"";position:absolute;z-index:1;pointer-events:none;
left:calc(max(0px,(100% - 82rem)/2) + clamp(1.25rem,4vw,4rem));
top:0;bottom:0;width:1px;background:var(--txt);opacity:.85}
.dark-chap::after{background:var(--panel-accent);opacity:.7}
.sec>.wrap,.chap>.wrap{position:relative;z-index:2}
.sec{padding-top:clamp(3rem,6vw,5.5rem);padding-bottom:clamp(3rem,6vw,5.5rem)}
.sec-grid>.eyebrow,.chap-grid>.eyebrow{padding-left:clamp(1.4rem,2.4vw,2.6rem);position:relative}
.sec-grid>.eyebrow::before,.chap-grid>.eyebrow::before{position:absolute;left:0;top:.15rem;margin:0;
width:9px;height:9px;box-shadow:0 0 0 4px var(--wall)}
.sec-grid>.eyebrow::after,.chap-grid>.eyebrow::after{content:"";position:absolute;
left:9px;top:calc(.15rem + 4px);width:calc(clamp(1.4rem,2.4vw,2.6rem) - 9px);height:1px;
background:var(--txt);opacity:.9}
.sec-hero{padding-top:clamp(4rem,9vw,8rem);padding-bottom:clamp(3.5rem,7vw,6rem)}
.sec-hero h1{font-size:clamp(2rem,4vw,3.2rem)}
.dark-chap .wrap::before,.dark-chap .eyebrow::before,.dark-chap .eyebrow::after{background:var(--panel-accent)}
.dark-chap .eyebrow::before{box-shadow:0 0 0 4px var(--panel)}
@media(max-width:64rem){
.sec .wrap::before,.chap .wrap::before{left:.6rem}
.sec-grid,.chap-grid{padding-left:1.6rem}
.sec-grid>.eyebrow,.chap-grid>.eyebrow{padding-left:0}
.sec-grid>.eyebrow::before,.chap-grid>.eyebrow::before{left:-1.6rem}
.sec-grid>.eyebrow::after,.chap-grid>.eyebrow::after{left:calc(-1.6rem + 9px);width:calc(1.6rem - 9px)}
}

/* Fix16: the Diamond G, a cattle brand for the ranch */
.wordmark{display:inline-flex;align-items:center;gap:.7rem}
.brand{display:inline-block;width:1.35rem;height:1.35rem;flex:0 0 auto}
.brand svg,.gr-brand{display:block;width:100%;height:100%}
.br-d{fill:none;stroke:var(--accent);stroke-width:11;stroke-linecap:butt}
.br-g{fill:none;stroke:var(--accent);stroke-width:11;stroke-linecap:butt;stroke-linejoin:miter}
.gr-brand{width:22px;height:22px}
.gr-marker{gap:.5rem}
.gr-marker .br-d{fill:none;stroke:var(--accent);stroke-width:11;stroke-linecap:butt}
.gr-marker .br-g{stroke-width:11.5}
@media (prefers-reduced-motion:no-preference){
.brand .br-d{stroke-dasharray:82;stroke-dashoffset:82;animation:burn .5s ease-out .85s forwards}
@keyframes searin{to{opacity:1}}
.brand .br-g{stroke-dasharray:158;stroke-dashoffset:158;animation:burn .9s ease-out .15s forwards}
@keyframes fillin{to{fill-opacity:1}}
.brand svg{animation:sear 1.6s ease-out .2s}
@keyframes burn{to{stroke-dashoffset:0}}
@keyframes sear{0%{filter:none}25%{filter:drop-shadow(0 0 3px var(--copper))}100%{filter:none}}
}
.sec-grid>.eyebrow::before,.chap-grid>.eyebrow::before,.step .panel::before,
.map-chap .hero-panel::before{border-radius:1px}

/* Fix17: diamonds sit on the rail, no connector dash, chapters snap */
.step .panel::after,.map-chap .hero-panel::after,
.sec-grid>.eyebrow::after,.chap-grid>.eyebrow::after{display:none!important}
.step .panel::before{left:calc(-1 * clamp(2.6rem,calc(4vw + 1.4rem),5.4rem) - 5.5px);
top:2.1rem;width:11px;height:11px}
.map-chap .hero-panel::before{left:calc(-1 * clamp(2.6rem,calc(4vw + 1.4rem),5.4rem) - 5.5px);
top:2.1rem;width:11px;height:11px}
.sec-grid>.eyebrow::before,.chap-grid>.eyebrow::before{left:-4.5px;width:9px;height:9px;top:.2rem}
.sec-grid>.eyebrow,.chap-grid>.eyebrow{padding-left:clamp(1.2rem,2vw,2rem)}
@media(max-width:64rem){
.sec::after,.chap::after{left:clamp(1.25rem,4vw,4rem)}
.sec-grid,.chap-grid{padding-left:0}
.sec-grid>.eyebrow,.chap-grid>.eyebrow{padding-left:clamp(1.2rem,2vw,2rem)}
.sec-grid>.eyebrow::before,.chap-grid>.eyebrow::before{left:-4.5px}
}

/* Fix19: restore wrap padding on mobile grids, frosted panels */
@media(max-width:64rem){.sec-grid,.chap-grid{padding-left:clamp(1.25rem,4vw,4rem)}}
.step .panel{background:color-mix(in srgb,var(--panel) 74%,transparent);
-webkit-backdrop-filter:blur(18px) saturate(1.15);backdrop-filter:blur(18px) saturate(1.15);
border:1px solid color-mix(in srgb,var(--panel-txt) 15%,transparent);
box-shadow:0 2px 34px rgba(0,0,0,.16);isolation:isolate}
.step .panel::after{content:"";display:block;position:absolute;inset:0;z-index:-1;
pointer-events:none;opacity:.16;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
.step .panel{background:color-mix(in srgb,var(--panel) 92%,transparent)}}
@media(max-width:48rem){
.step .panel{padding:1.35rem 1.4rem;max-width:calc(100% - 2.6rem)}
.step .panel h2{font-size:1.45rem;line-height:1.2}
.step .panel p{font-size:.95rem;line-height:1.55}
.step .panel::before{top:1.5rem}
}

/* Fix20: the rail and its diamond persist at every breakpoint */
@media(max-width:64rem){
.step .wrap::before{display:block}
.step .panel::before{display:block}
.step .panel{margin:0 1rem 12vh clamp(2.6rem,calc(4vw + 1.4rem),5.4rem);
max-width:calc(100% - clamp(2.6rem,calc(4vw + 1.4rem),5.4rem) - 1rem)}
}
@media(max-width:48rem){
.step .panel{margin-bottom:14vh;padding:1.35rem 1.4rem}
}

/* Fix21: two paths as tabs, not narrative panels */
.tabs{margin-top:2.25rem}
.tablist{display:flex;border-bottom:1px solid var(--hair)}
.tab{appearance:none;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;
padding:.8rem 1.35rem .75rem;font:600 .74rem/1 inherit;letter-spacing:.14em;text-transform:uppercase;
color:var(--muted);cursor:pointer}
.tab:first-child{padding-left:0}
.tab[aria-selected="true"]{color:var(--txt);border-bottom-color:var(--accent)}
.tab:hover{color:var(--txt)}
.tab:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.tabpanel{padding-top:2.25rem;max-width:38rem}
.tabpanel[hidden]{display:none}
.tabpanel h3{margin-bottom:.9rem;font-size:clamp(1.35rem,2vw,1.75rem)}
.tabpanel p{color:var(--muted)}
.tabpanel .cta-row{margin-top:1.9rem}
.step .panel .p-link{margin-top:1.1rem}
.step .panel .p-link a{color:var(--panel-accent)}

/* Fix22: buttons adapt to their surface; they were filling with the page colour */
.btn{background:var(--txt);color:var(--wall);border:1px solid var(--txt)}
.btn:hover,.btn:focus-visible{background:var(--copper);border-color:var(--copper);color:#262626}
.btn-o{background:transparent;color:var(--txt);border:1px solid var(--muted)}
.btn-o:hover,.btn-o:focus-visible{border-color:var(--accent);color:var(--accent)}
.step .panel .btn,.dark .btn,.dark-chap .btn,footer .btn,.hero-panel .btn{
background:var(--panel-txt);color:var(--panel);border-color:var(--panel-txt)}
.step .panel .btn:hover,.dark .btn:hover,.dark-chap .btn:hover,footer .btn:hover,.hero-panel .btn:hover{
background:var(--copper);border-color:var(--copper);color:#262626}
.step .panel .btn-o,.dark .btn-o,.dark-chap .btn-o,footer .btn-o,.hero-panel .btn-o{
color:var(--panel-txt);border-color:var(--mesq)}
.step .panel .btn-o:hover,.dark .btn-o:hover,.dark-chap .btn-o:hover,.hero-panel .btn-o:hover{
border-color:var(--panel-txt);color:var(--panel-txt)}

/* Fix23: single-column layouts share one left edge with the eyebrow */
@media(max-width:64rem){
.sec-grid>*,.chap-grid>*{padding-left:clamp(1.2rem,2vw,2rem)}
.sec-grid>.eyebrow::before,.chap-grid>.eyebrow::before{left:-4.5px}
}

.faq-group{margin:2.75rem 0 .35rem;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
color:var(--accent);font-weight:700}
.faq-group:first-of-type{margin-top:1.75rem}

/* Fix27: brand the land. Cursor is the mark; clicking leaves a sear which fades. */
@media (pointer:fine){.gmap,.gmap canvas{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23F3F0E7' stroke-width='19' stroke-linecap='butt' opacity='.55'%3E%3Cpath d='M64.92 28.71 A26 26 0 1 0 64.92 71.29 V50 H44'/%3E%3Cpath d='M12 84 Q50 100 88 84'/%3E%3C/g%3E%3Cg fill='none' stroke='%23525B2B' stroke-width='11' stroke-linecap='butt'%3E%3Cpath d='M64.92 28.71 A26 26 0 1 0 64.92 71.29 V50 H44'/%3E%3Cpath d='M12 84 Q50 100 88 84'/%3E%3C/g%3E%3C/svg%3E") 15 15, crosshair}}
.burnmark{position:absolute;width:36px;height:36px;margin:-18px 0 0 -18px;
pointer-events:none;z-index:5;animation:brandin 1.5s cubic-bezier(.2,.7,.2,1) forwards}
.burnmark svg{width:100%;height:100%;display:block}
.burnmark path{fill:none;stroke:var(--accent);stroke-width:11;stroke-linecap:butt}
@keyframes brandin{
0%{opacity:0;transform:scale(.5) rotate(-6deg);filter:blur(1px)}
16%{opacity:1;transform:scale(1.14) rotate(0deg);filter:blur(0)}
30%{transform:scale(1)}
70%{opacity:.62}
100%{opacity:0;transform:scale(1.04)}}
@media (prefers-reduced-motion:reduce){.burnmark{display:none}}

/* Fix28: the location note was colliding with the map attribution */
.scrolly-map .m-note{left:clamp(1.25rem,4vw,4rem);right:auto;text-align:left;max-width:24rem}
@media(max-width:64rem){.scrolly-map .m-note{left:0;padding-left:clamp(1.25rem,4vw,4rem)}}

/* Fix29: the inquiry form is a third grid child, so it was wrapping into the
   16rem eyebrow column on desktop. Put it back in the content column. */
.chap-grid>form,.sec-grid>form{grid-column:2;max-width:34rem;margin-top:2.25rem}
@media(max-width:64rem){.chap-grid>form,.sec-grid>form{grid-column:1;max-width:none;margin-top:1.5rem;
padding-left:clamp(1.2rem,2vw,2rem)}}

/* Fix30: one column everywhere. Eyebrow on top, content beneath, and every
   content edge sits on the same x as the scrolly panels. */
:root{--panel-gap:clamp(2.6rem,calc(4vw + 1.4rem),5.4rem);
--panel-pad:clamp(1.5rem,2.6vw,3.5rem);
--panel-inset:var(--panel-gap)}
@media(max-width:48rem){:root{--panel-pad:1.4rem}}
.step .panel{margin-left:var(--panel-gap);
padding-left:var(--panel-pad);padding-right:var(--panel-pad)}
.step .panel::before{left:calc((-1 * var(--panel-gap)) - 5.5px)}
.sec-grid,.chap-grid{display:block;
padding-left:calc(clamp(1.25rem,4vw,4rem) + var(--panel-inset));padding-right:0}
.sec-grid>*,.chap-grid>*{padding-left:0;max-width:48rem}
.sec-grid>.eyebrow,.chap-grid>.eyebrow{display:block;padding-left:0;
margin:0 0 1.6rem;max-width:none}
.sec-grid>.eyebrow::before,.chap-grid>.eyebrow::before{
left:calc((-1 * var(--panel-inset)) - 4.5px);top:.2rem}
.sec-grid>.eyebrow::after,.chap-grid>.eyebrow::after{display:none}
.chap-grid>form,.sec-grid>form{max-width:34rem;margin-top:2.25rem;padding-left:0}
.tabs{margin-top:0}
@media(max-width:64rem){
.sec-grid,.chap-grid{padding-left:calc(clamp(1.25rem,4vw,4rem) + var(--panel-inset))}
.sec-grid>*,.chap-grid>*{padding-left:0;max-width:none}
.chap-grid>form,.sec-grid>form{max-width:none;margin-top:1.75rem;padding-left:0}
}
/* map arrives rather than snapping in */
.gmap{opacity:0;transition:opacity .7s ease-out}
.gmap.is-ready{opacity:1}

/* Fix31: real transparency restored. Text retuned so AA still holds at 74%. */
.step .panel p{color:var(--stucco)}
.step .panel .eyebrow{color:#F0D6C4}
/* 2. water reads as water, not silt */
/* 3. attribution is a licence condition, so it stays, but it recedes */
.maplibregl-ctrl-attrib{background:transparent!important;box-shadow:none!important;
font-size:9.5px!important;letter-spacing:.02em}
.maplibregl-ctrl-attrib a,.maplibregl-ctrl-attrib{color:var(--muted)!important;opacity:.5}
.maplibregl-ctrl-attrib:hover{opacity:.9}
.maplibregl-ctrl-attrib-button{opacity:.45;transform:scale(.82)}
.maplibregl-ctrl-bottom-right{margin:0 .25rem .15rem 0}
