@font-face{font-family:"Inter Display";src:url("/assets/fonts/InterDisplay-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter Display";src:url("/assets/fonts/InterDisplay-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter Display";src:url("/assets/fonts/InterDisplay-SemiBold.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Inter Display";src:url("/assets/fonts/InterDisplay-Bold.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Inter Display";src:url("/assets/fonts/InterDisplay-Black.woff2") format("woff2");font-weight:900;font-display:swap}
:root{--ink:#1E1F1C;--paper:#F4F1E8;--sun:#F2C200;--p2:#E9E3D3;--p3:#DDD5C1;--rule:#A9A18B;--muted:#55544C;--soft:#C4C0B3;--ink2:#2B2C28;--light:#F3EFE6;--sans:"Inter Display",Inter,system-ui,sans-serif;--serif:Georgia,"DejaVu Serif",serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.65 var(--serif)}
a{color:inherit;text-decoration-thickness:1.5px;text-underline-offset:3px}
a:hover{text-decoration-thickness:3px}
:focus-visible{outline:3px solid var(--sun);outline-offset:2px;box-shadow:0 0 0 2px var(--ink)}
h1,h2,h3{font-family:var(--sans);margin:0;letter-spacing:-.015em;word-spacing:.03em}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1320px;margin-inline:auto;padding-inline:clamp(16px,4vw,48px)}
.icon{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;flex:none}
/* header */
.site-head{border-bottom:3px solid var(--ink)}
.head-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;padding-block:12px}
.brand{display:inline-flex;align-items:flex-end;gap:1px;font:900 2rem/1 var(--sans);letter-spacing:-.04em;text-decoration:none;min-height:44px;padding-top:4px}
.brand-t{width:27px;height:30px;fill:currentColor;margin-bottom:2px}
.concept{margin:0;font:600 .8125rem/1 var(--sans);border:1.5px solid var(--ink);padding:6px 9px;border-radius:2px}
.head-nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;font:600 .9375rem/1.2 var(--sans)}
.head-nav a{display:inline-flex;align-items:center;min-height:44px}
.head-contact{background:var(--ink);color:var(--paper);padding:0 16px;text-decoration:none}
/* hero */
.hero{padding-block:clamp(28px,5vw,64px)}
.hero-grid{display:grid;gap:32px}
.hero h1{font-weight:900;font-size:clamp(2.4rem,1.1rem + 5vw,5rem);line-height:1;letter-spacing:-.02em;word-spacing:.04em}
.hero h1 span{display:block;text-wrap:balance}
.hero h1 span+span{margin-top:.14em}
.lede{font-size:1.1875rem;max-width:34em;margin:24px 0 16px}
.disclosure{font:500 .9375rem/1.45 var(--sans);border-left:6px solid var(--sun);padding:4px 0 4px 12px;margin:0 0 24px;max-width:38em}
.jump{display:flex;flex-wrap:wrap;gap:8px}
.jump a{font:700 .9375rem/1 var(--sans);text-decoration:none;border:2px solid var(--ink);padding:13px 14px;min-height:44px;background:var(--paper)}
.jump a:hover{background:var(--p2)}
.sheet{margin:0;border:2px solid var(--ink);background:var(--paper)}
.sheet-canvas{background-image:linear-gradient(rgba(30,31,28,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(30,31,28,.07) 1px,transparent 1px);background-size:20px 20px;padding:12px}
.exploded{display:block;width:100%;height:auto}
.cn-text{font:900 13px var(--sans)}
.titleblock{border-top:2px solid var(--ink)}
.tb-row{display:flex;margin:0;font:500 .875rem/1.35 var(--sans);border-bottom:1.5px solid var(--ink)}
.tb-row span{padding:10px 12px}
.tb-code{background:var(--ink);color:var(--paper);font-weight:900}
.callouts{list-style:none;margin:0;padding:6px;display:grid;grid-template-columns:1fr 1fr;gap:2px}
.callouts a{display:flex;gap:10px;align-items:center;text-decoration:none;padding:6px;min-height:44px;font:700 .875rem/1.2 var(--sans)}
.callouts a:hover .cl{text-decoration:underline}
.cn{flex:none;width:30px;height:30px;border-radius:50%;background:var(--sun);border:1.5px solid var(--ink);display:grid;place-items:center;font:900 .75rem/1 var(--sans)}
.cl small{display:block;font-weight:500;font-size:.8125rem;color:var(--muted)}
/* sections */
.sec-head{display:grid;gap:12px;border-top:6px solid var(--ink);padding-top:18px;margin-bottom:32px}
.sec-head h2{font-weight:900;font-size:clamp(2rem,4vw,3.25rem);line-height:1.02;text-wrap:balance}
.sec-head p{margin:0;max-width:40em;font-size:1.0625rem}
.services,.faq,.areas{padding-block:clamp(40px,6vw,80px) 0}
/* work orders */
.wo-grid{display:grid;gap:20px}
.wo{background:#FBF9F3;border:2px solid var(--ink);padding:0 20px 20px;display:flex;flex-direction:column}
.wo-head{display:flex;justify-content:space-between;align-items:center;margin-inline:-20px;padding:14px 20px;border-bottom:2px dotted var(--ink);margin-bottom:16px}
.wo-code{margin:0;font:900 1.625rem/1 var(--sans);letter-spacing:-.01em}
.wo h3{font-weight:800;font-size:1.375rem;line-height:1.15;margin-bottom:12px}
.wo-fields,.area-sheet dl{display:grid;grid-template-columns:5.6rem 1fr;gap:6px 12px;margin:0 0 14px;font:500 .875rem/1.4 var(--sans)}
.wo-fields dt,.area-sheet dt{color:var(--muted);font-weight:600}
.wo-fields dd,.area-sheet dd{margin:0;overflow-wrap:anywhere}
.flag-tag{display:inline-block;background:var(--sun);color:var(--ink);font-weight:700;font-size:.75rem;padding:1px 6px;margin-top:2px}
.wo-intro{margin:0 0 14px;font-size:1rem;line-height:1.6}
.wo-links{margin:auto 0 0;padding-top:12px;border-top:1px solid var(--rule);font:500 .9375rem/1.9 var(--sans)}
/* faq */
.faq-filter{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:24px;font:600 .9375rem var(--sans)}
select,input,textarea{font:500 1rem/1.4 var(--sans);color:inherit}
.faq-filter select,.mark-form select{min-height:44px;border:2px solid var(--ink);background:#FBF9F3;padding:0 10px}
.faq-status{margin:0;font-weight:500;color:var(--muted)}
.btn-line,.btn-solid{font:700 .9375rem/1 var(--sans);min-height:44px;padding:0 16px;cursor:pointer;border:2px solid currentColor;background:transparent;color:inherit}
.btn-solid{background:var(--sun);color:var(--ink);border-color:var(--sun)}
.faq-cols{columns:1;column-gap:40px}
.faq-group{break-inside:avoid;margin-bottom:28px}
.faq-group h3{display:flex;align-items:center;gap:10px;font-weight:900;font-size:1.375rem;padding-bottom:10px;border-bottom:3px solid var(--ink)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{display:flex;gap:12px;align-items:center;min-height:52px;padding:8px 36px 8px 0;font:600 1.0625rem/1.3 var(--sans);cursor:pointer;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;font:400 1.6rem/1 var(--sans)}
.faq details[open] summary::after{content:"\2212"}
.pn{flex:none;width:28px;height:28px;border-radius:50%;background:var(--sun);border:1.5px solid var(--ink);display:grid;place-items:center;font:900 .6875rem/1 var(--sans)}
.ans{padding:0 0 16px}
.ans p{margin:0 0 10px;max-width:38em}
.ans .book{font:500 .9375rem/1.5 var(--sans);background:var(--p2);padding:10px 12px;border-left:4px solid var(--ink)}
/* areas */
.mark-form fieldset{border:0;padding:0;margin:0 0 24px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;font:600 .9375rem var(--sans)}
.mark-form legend{float:left;margin-right:6px;padding:0}
.mark-form label{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.mark-form input{width:20px;height:20px;accent-color:var(--ink)}
.area-grid{display:grid;gap:20px}
.area-sheet{border:2px solid var(--ink);padding:18px;background:#FBF9F3}
.area-sheet h3{font-weight:800;font-size:1.1875rem;margin-bottom:14px;padding-bottom:10px;border-bottom:2px dotted var(--ink)}
.area-template{background:var(--p2)}
.area-sheet dl{margin:0;line-height:1.5}
var.v{font-style:normal}
.areas:has(#mark-vars:checked) var.v{background:var(--sun);box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:0 3px}
.areas:has(#mark-local:checked) .local{outline:2px dashed var(--ink);outline-offset:2px}
.local{font-family:var(--serif);font-size:.9375rem}
/* tools */
.tools{background:var(--ink);color:var(--paper);margin-top:clamp(48px,7vw,96px);padding-block:clamp(40px,6vw,80px)}
.tools .sec-head{border-top-color:var(--sun)}
.tools :focus-visible{box-shadow:0 0 0 2px var(--ink),0 0 0 7px var(--paper)}
.tools-grid{display:grid;gap:40px}
.tools h3{font-weight:900;font-size:1.5rem;margin-bottom:14px}
.map-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font:600 .9375rem var(--sans);margin-bottom:12px}
.map-form select,.meta-form select,.meta-form input,.meta-form textarea{min-height:44px;background:var(--ink2);color:var(--paper);border:1.5px solid #8C887B;padding:8px 10px;width:100%}
.map-form select{width:auto;max-width:100%}
.map-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font:500 .9375rem/1.4 var(--sans);color:var(--light);margin:0 0 14px}
.lg{display:inline-block;width:28px;height:0;border-top:3px solid var(--sun)}
.lg-in{border-top:3px dashed var(--light)}
.lg-broken{height:14px;border:2px dashed var(--sun)}
.map-svg{display:none;width:100%;height:auto}
.edge{stroke:#8E8A7D;stroke-width:1.6;transition:stroke .15s,opacity .15s}
.edge-broken{stroke:var(--sun);stroke-dasharray:6 4}
.tag{fill:var(--ink2);stroke:var(--light);stroke-width:1.5;transition:fill .15s,opacity .15s}
.eyelet{fill:var(--ink);stroke:var(--light);stroke-width:1.2}
.t-code{font:600 15px var(--sans);fill:var(--sun)}
.t-label{font:500 16px var(--sans);fill:var(--light)}
.node-broken .tag{stroke:var(--sun);stroke-width:2;stroke-dasharray:7 4}
.node{transition:opacity .15s}
.js .node{cursor:pointer}
.node:focus{outline:none}
.node:focus-visible .tag{stroke:var(--sun);stroke-width:5;stroke-dasharray:none}
.tracing .edge{opacity:.18}
.tracing .edge.is-out{opacity:1;stroke:var(--sun);stroke-width:3.2}
.tracing .edge.is-in{opacity:1;stroke:var(--light);stroke-width:2.8;stroke-dasharray:6 4}
.tracing .node{opacity:.35}
.tracing .node.is-active,.tracing .node.is-linked{opacity:1}
.node.is-active .tag{fill:var(--sun);stroke:var(--sun)}
.node.is-active .t-code,.node.is-active .t-label{fill:var(--ink)}
.node.is-linked .tag{stroke:var(--sun);stroke-width:4}
.map-list{list-style:none;margin:0;padding:0;font:500 .9375rem/1.35 var(--sans)}
.map-list ul{list-style:none;margin:0;padding-left:18px;border-left:2px solid #6D6A60}
.row{margin:4px 0;padding:10px 12px;border:1.5px solid var(--soft);min-height:44px}
.row .tg{font-weight:900;margin-right:4px}
.row .to{display:block;color:var(--soft);font-size:.875rem}
.row-broken{border:2px dashed var(--sun)}
.tracing .row{opacity:.4}
.tracing .row.is-active{opacity:1;background:var(--sun);color:var(--ink);border-color:var(--sun)}
.tracing .row.is-active .to{color:var(--ink)}
.tracing .row.is-linked{opacity:1;border-color:var(--sun);border-width:3px}
.map-readout{margin:14px 0 0;padding:12px 14px;border-left:5px solid var(--sun);background:var(--ink2);font:500 .9375rem/1.5 var(--sans)}
.nojs-note{font:500 1rem/1.5 var(--sans);color:var(--soft)}
.meta-form fieldset{border:0;margin:0;padding:0;display:grid;gap:6px}
.meta-form label{font:600 .875rem var(--sans);margin-top:8px}
.meta-form textarea{resize:vertical}
.count{margin:0;font:500 .8125rem var(--sans);color:var(--soft)}
.count.is-off{color:var(--sun)}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.results{margin-top:40px;border-top:2px solid #6D6A60;padding-top:20px}
.res-status{font:600 1.0625rem/1.5 var(--sans);margin:0 0 16px}
.res-note{font:500 .8125rem/1.5 var(--sans);color:var(--soft);margin:16px 0 0;max-width:60em}
.audit-table{width:100%;border-collapse:collapse;font:500 .875rem/1.45 var(--sans)}
.audit-table th,.audit-table td{text-align:left;vertical-align:top;padding:10px;border-bottom:1px solid #4C4B45}
.audit-table thead th{font-weight:700;color:var(--soft);border-bottom:2px solid var(--soft)}
.audit-table tbody th{font-weight:800;white-space:nowrap}
.st{display:inline-block;font-weight:800;font-size:.75rem;padding:2px 7px;margin-right:6px;border:1.5px solid var(--soft)}
.is-flag .st{background:var(--sun);color:var(--ink);border-color:var(--sun)}
.is-flag{color:#FFF6CF}
/* close */
.close{padding-block:clamp(48px,7vw,96px)}
.close-grid{display:grid;gap:20px;border-top:6px solid var(--ink);padding-top:20px}
.close h2{font-weight:900;font-size:clamp(2rem,4vw,3.25rem);line-height:1.02;text-wrap:balance}
.close p{margin:0 0 20px;max-width:36em;font-size:1.125rem}
.btn-ink{display:inline-flex;align-items:center;min-height:48px;padding:0 20px;background:var(--ink);color:var(--paper);font:700 1rem var(--sans);text-decoration:none}
.foot{border-top:1.5px solid var(--ink);font:500 .875rem var(--sans);color:var(--muted)}
/* responsive */
@media (max-width:719px){
 .audit-table thead{display:none}
 .audit-table tr,.audit-table th,.audit-table td{display:block}
 .audit-table tr{border:1.5px solid #6D6A60;margin-bottom:12px}
 .audit-table td::before{content:attr(data-label);display:block;font-weight:700;color:var(--soft);font-size:.75rem}
 .callouts{grid-template-columns:1fr}
}
@media (min-width:720px){
 .wo-grid,.area-grid{grid-template-columns:1fr 1fr}
 .faq-cols{columns:2}
 .map-svg{display:block}
 .map-list{display:none}
 .sec-head{grid-template-columns:5fr 6fr;align-items:end;gap:32px}
 .close-grid{grid-template-columns:5fr 6fr}
}
@media (min-width:1100px){
 .hero-grid{grid-template-columns:repeat(12,1fr);align-items:start}
 .hero-copy{grid-column:1/8;padding-top:12px}
 .sheet{grid-column:8/13}
 .wo-grid{grid-template-columns:repeat(3,1fr)}
 .area-grid{grid-template-columns:repeat(4,1fr)}
 .tools-grid{grid-template-columns:3fr 2fr}
}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{transition:none!important;animation:none!important}
}

/* Allow user text-spacing preferences to reflow on narrow screens. */
.sec-head > *, .tools-grid > * { min-width:0; overflow-wrap:anywhere; }
.map-form select, .meta-form select { min-width:0; max-width:100%; }
