.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}/* Start custom CSS */.faq summary{position:relative;padding-right:48px!important}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:16px;height:16px;margin-top:-8px;background:linear-gradient(currentColor,currentColor) center/100% 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 100% no-repeat;transition:transform .3s cubic-bezier(.23,1,.32,1)}
.faq details[open] summary::after{transform:rotate(45deg)}
@media (hover:hover){.faq summary:hover{color:var(--sage)}}
.elementor .marker{padding:0}
.elementor .e-form-base.quote-strip,.elementor form.quote-strip{padding:0}
.legend-row,.post-card,.proj{scroll-margin-top:100px}
.topo-dark,.topo-light,.topo-band{isolation:isolate}
.legend-row .link-arrow{justify-self:start}
.post-card a:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.elementor p.e-paragraph-base:empty{display:none}
/* map inset: image pinned inside the ruled frame, four-sided ticks */
.inset-frame{background:repeating-linear-gradient(90deg,color-mix(in srgb,currentColor 55%,transparent) 0 1.5px,transparent 1.5px 10%) left top/100% 5px no-repeat,repeating-linear-gradient(90deg,color-mix(in srgb,currentColor 55%,transparent) 0 1.5px,transparent 1.5px 10%) left bottom/100% 5px no-repeat,repeating-linear-gradient(180deg,color-mix(in srgb,currentColor 55%,transparent) 0 1.5px,transparent 1.5px 10%) left top/5px 100% no-repeat,repeating-linear-gradient(180deg,color-mix(in srgb,currentColor 55%,transparent) 0 1.5px,transparent 1.5px 10%) right top/5px 100% no-repeat}
.elementor .inset-frame{position:relative;min-height:0}
.elementor .inset-frame>img{position:absolute;top:10px;left:10px;width:calc(100% - 20px)!important;height:calc(100% - 20px)!important;max-width:none;object-fit:cover}
.proj .inset-frame{overflow:visible}
/* contour band: fade in from the top so lines never start on a hard edge */
.topo-band::after{background:linear-gradient(to bottom,transparent 0,var(--sage) 70%)!important}
.sec-chalk.topo-band::after,.sec-paper.topo-band::after{background:linear-gradient(to bottom,transparent 0,var(--chalk-line) 70%)!important}
.topo-dark.topo-band::after{display:none}
/* survey furniture */
.page-hero>.wrap::after{content:"0 5 10m";position:absolute;left:0;top:calc(100% + 22px);width:150px;padding-top:12px;text-align:justify;text-align-last:justify;font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;color:var(--moss);background:linear-gradient(90deg,var(--moss) 0 25%,transparent 25% 50%,var(--moss) 50% 75%,transparent 75%) left top/100% 5px no-repeat;box-shadow:inset 0 0 0 1.5px transparent;opacity:.85;pointer-events:none}
.page-hero>.wrap::before{content:"N";position:absolute;left:186px;top:calc(100% + 8px);width:14px;padding-top:24px;text-align:center;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--moss);background:linear-gradient(to top right,transparent 50%,var(--moss) 50%) left top/7px 20px no-repeat,linear-gradient(to top left,transparent 50%,var(--moss) 50%) right top/7px 20px no-repeat;opacity:.85;pointer-events:none}
@media (max-width:767px){.page-hero>.wrap::before{display:none}.page-hero>.wrap::after{top:calc(100% + 14px)}}
.spot{display:flex;align-items:center;gap:8px;color:var(--moss);pointer-events:none;z-index:0}
.spot::before{content:"";width:9px;height:9px;flex:none;background:linear-gradient(currentColor,currentColor) center/100% 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 100% no-repeat}
.sec.sec-chalk:not(.topo-light):not(.topo-band)::before{content:"";position:absolute;top:0;bottom:0;left:calc(var(--gutter) * .42);width:7px;pointer-events:none;background:repeating-linear-gradient(180deg,var(--chalk-line) 0 1.5px,transparent 1.5px 56px),repeating-linear-gradient(180deg,var(--chalk-line) 0 1.5px,transparent 1.5px 14px) right top/3px 100% no-repeat}
/* drawn list markers (lists sit beside their paragraph in the DOM) */
.elementor .e-con>ul,.prose ul{list-style:none;padding-left:0;margin:0}
.elementor .e-con>ul>li,.prose ul>li{position:relative;padding-left:24px;line-height:1.6}
.elementor .e-con>ul>li+li,.prose ul>li+li{margin-top:8px}
.elementor .e-con>ul>li::before,.prose ul>li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;border:1.5px solid currentColor}
.e-tab-content-base>ul{align-self:center;font-family:var(--font-body);font-size:1.0625rem;color:var(--ink)}
.e-tab-content-base>ul>li{padding-block:12px;border-top:1.5px solid var(--chalk-line);margin-top:0!important}
.e-tab-content-base>ul>li:last-child{border-bottom:1.5px solid var(--chalk-line)}
.e-tab-content-base>ul>li::before{top:50%;margin-top:-5px}
/* journal cards: text-led when there is no featured image */
.post-card .topo-light:has(img:not([src])),.post-card .topo-light:has(img[src=""]){display:none}
.post-card{display:flex}
.post-card>a{height:100%;border-top:1.5px solid var(--ink);padding-top:22px!important}
.post-card .link-arrow{margin-top:auto;padding-top:6px}
.title-block>*{border-left:1.5px solid rgba(157,179,122,.35)}
.title-block>*:first-child{border-left:0}
@media (max-width:767px){.title-block>*{border-left:0;border-top:1.5px solid rgba(157,179,122,.35)}.title-block>*:first-child{grid-column:1/-1;border-top:0}}
/* motion: short exponential rises on load, scroll-linked reveals that never leave content half-drawn */
@keyframes rise{from{opacity:0;transform:translateY(18px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes reveal-up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes reveal-x{from{opacity:0;transform:translateX(-32px)}to{opacity:1;transform:none}}
@keyframes img-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes hatch-in{from{opacity:0;transform:translateX(60px)}to{opacity:.5;transform:none}}
.stratum{animation:none!important;clip-path:none!important}
@media (prefers-reduced-motion:no-preference){
.rise{animation:rise .9s cubic-bezier(.16,1,.3,1) both}
.rise-2{animation-delay:.12s}.rise-3{animation-delay:.24s}.rise-4{animation-delay:.36s}
}
@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){
.reveal{animation:reveal-up linear backwards;animation-timeline:view();animation-range:entry 0% entry 70%}
.stratum>*{animation:reveal-x linear backwards;animation-timeline:view();animation-range:entry 5% entry 75%}
.stratum>*:nth-child(2){animation-range:entry 15% entry 85%}
.stratum::after{animation:hatch-in linear backwards;animation-timeline:view();animation-range:entry 0% entry 90%}
.reveal-img img{animation:img-in linear backwards!important;animation-timeline:view()!important;animation-range:entry 0% entry 80%!important}
}}/* End custom CSS */