@font-face{font-family:"Barlow";font-weight:400;font-display:swap;src:url(/fonts/barlow-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Barlow";font-weight:400;font-display:swap;src:url(/fonts/barlow-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C4,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Barlow";font-weight:600;font-display:swap;src:url(/fonts/barlow-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Barlow";font-weight:600;font-display:swap;src:url(/fonts/barlow-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C4,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-display:swap;src:url(/fonts/barlow-condensed-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-display:swap;src:url(/fonts/barlow-condensed-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+20A0-20AB,U+20AD-20C4,U+2C60-2C7F,U+A720-A7FF}

:root{
  --paper:#fbfaf7;
  --panel:#f1efe9;
  --ink:#1c1c1a;
  --ink-soft:#57544d;
  --line:#d6d2c7;
  --rule:#e3be45;
  --rule-ink:#3b3112;
  --cond:"Barlow Condensed","Arial Narrow",sans-serif;
  --body:"Barlow",system-ui,sans-serif;
  --gutter:clamp(1rem,4vw,3rem);
  --max:72rem;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.125rem/1.6 var(--body);font-variant-numeric:tabular-nums}
::selection{background:var(--rule);color:var(--ink)}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
h1,h2,h3,h4{font-family:var(--cond);font-weight:600;line-height:1.05;margin:0;text-wrap:balance}
h2{font-size:clamp(2rem,4.5vw,3rem);letter-spacing:-.005em}
h3{font-size:1.45rem}
p{margin:0}

/* Buttons */
.btn{display:inline-flex;align-items:center;min-height:3rem;padding:.6rem 1.3rem;font:600 1.15rem/1 var(--cond);letter-spacing:.03em;text-decoration:none;border:1.5px solid var(--ink);background:none;color:var(--ink);cursor:pointer;transition:background-color .15s,color .15s}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn--solid{background:var(--ink);color:var(--paper)}
.btn--solid:hover{background:#000}
.btn:disabled{opacity:.5;cursor:wait}

/* Header */
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1.25rem;border-bottom:1px solid var(--line);font:600 1.05rem/1.2 var(--cond);letter-spacing:.04em}
.bar a{text-decoration:none}
.bar nav{display:flex;gap:1.5rem}
.bar nav a:hover{text-decoration:underline}
@media (max-width:40rem){.bar .nav-link{display:none}}

/* Hero */
.hero-body{display:grid;gap:2rem;padding-block:clamp(2.5rem,7vw,5rem) clamp(2rem,5vw,3.5rem)}
.hero h1{font-size:clamp(2.8rem,7vw,4.75rem);letter-spacing:-.01em;line-height:1}
.hero .trade{display:block;font-size:clamp(1.4rem,3vw,2rem);color:var(--ink-soft);margin-top:.4rem;letter-spacing:0}
.status{margin-top:1.5rem;max-width:36rem;color:var(--ink-soft)}
.status strong{color:var(--ink);font-weight:600}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.portrait{margin:0;width:min(11rem,40vw)}
.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--panel)}
@media (min-width:52rem){
  .hero-body{grid-template-columns:1fr auto;align-items:center;gap:4rem}
  .portrait{width:clamp(14rem,22vw,18rem)}
}

/* The folding rule: 10 segments, one per year */
.rule{display:grid;grid-template-columns:repeat(10,1fr);border-block:1px solid var(--rule-ink)}
.seg{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:.1rem;min-height:clamp(3.5rem,7vw,4.75rem);padding:0 .45rem .45rem;text-decoration:none;color:var(--rule-ink);
  background:
    repeating-linear-gradient(90deg,rgb(59 49 18/.7) 0 1px,transparent 1px 25%) 0 0/100% 34% no-repeat,
    repeating-linear-gradient(90deg,rgb(59 49 18/.5) 0 1px,transparent 1px 5%) 0 0/100% 16% no-repeat,
    var(--rule)}
.seg+.seg{border-left:2px solid var(--rule-ink)}
.seg b{font:600 clamp(.95rem,2.4vw,1.7rem)/1 var(--cond)}
.seg small{display:none;font:600 .78rem/1.2 var(--cond);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.seg:hover{background-color:#ecc95a}
.seg.empty b{opacity:.4}
.seg.now{background:
    repeating-linear-gradient(90deg,rgb(227 190 69/.7) 0 1px,transparent 1px 25%) 0 0/100% 34% no-repeat,
    repeating-linear-gradient(90deg,rgb(227 190 69/.5) 0 1px,transparent 1px 5%) 0 0/100% 16% no-repeat,
    var(--ink);color:var(--rule)}
@media (min-width:52rem){.seg small{display:block}}
@media (max-width:40rem){.seg{padding-inline:.3rem}.seg b span{display:none}}

/* Sections */
section.block{padding-block:clamp(3.5rem,8vw,6rem)}
section.block+section.block{border-top:1px solid var(--line)}
.lead{max-width:40rem;margin-top:1rem;color:var(--ink-soft)}

/* Services: printed-scale list */
.scale{list-style:none;margin:2.25rem 0 0;padding:0;border-top:1px solid var(--ink)}
.scale li{display:grid;gap:.25rem 2rem;padding:1rem 0 1.1rem;border-bottom:1px solid var(--line)}
.scale p{color:var(--ink-soft);max-width:38rem}
@media (min-width:48rem){.scale li{grid-template-columns:minmax(15rem,1fr) 1.4fr;align-items:baseline}}
.not{margin-top:1.5rem;color:var(--ink-soft)}
.not b{color:var(--ink);font-weight:600}

/* Projects */
.map-wrap{margin:2rem 0 0;max-width:56rem}
.map{display:block;width:100%;height:auto}
.map .land path{stroke:#fbfaf7;stroke-width:1;stroke-linejoin:round}
.map .o{fill:#e2ded4}
.map .w{fill:#cbc5b6}
.map .h{fill:var(--rule)}
.map .sites circle{fill:var(--ink)}
.map .sites text{font:600 15px/1 var(--cond);fill:var(--ink);paint-order:stroke;stroke:#f1efe9;stroke-width:3px;stroke-linejoin:round}
.map rect.home{fill:var(--ink)}
.map text.home{font-size:16px}
@media (max-width:40rem){.map .sites text{display:none}.map .sites circle{r:9px}.map text.home{display:block;font-size:38px;text-anchor:end;transform:translate(-24px,-14px)}.map rect.home{transform-box:fill-box;transform-origin:center;transform:scale(1.8)}}
.map-wrap figcaption{margin-top:.6rem;font-size:1rem;color:var(--ink-soft)}
.projects{background:var(--panel)}
.years{display:grid;gap:0 1.5rem;margin-top:1rem}
.year{display:grid;align-content:start;gap:1rem;padding-top:1rem;margin-top:2rem;border-top:1px solid var(--ink);scroll-margin-top:1.5rem}
.year>h3{font-size:1.9rem}
.year:target>h3{text-decoration:underline;text-decoration-color:var(--rule);text-decoration-thickness:4px;text-underline-offset:.15em}
.year ol{list-style:none;margin:0;padding:0;display:grid;gap:1.75rem 1.5rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr))}
@media (min-width:52rem){
  .years{grid-template-columns:repeat(3,1fr)}
  .year{grid-column:span var(--n)}
  .year ol{grid-template-columns:repeat(var(--n),1fr)}
}
.proj{border-top:1px solid var(--line);padding-top:.8rem}
.proj .head{display:flex;gap:.6rem;align-items:baseline}
.proj .no{font:600 1rem/1 var(--cond);color:var(--ink-soft)}
.proj h4{font-size:1.35rem}
.proj .where{font-size:.95rem;color:var(--ink-soft);margin-top:.15rem}
.proj p{margin-top:.35rem;font-size:1rem}

/* Business */
.facts{list-style:none;margin:2.25rem 0 0;padding:0;display:grid;gap:0 2.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr))}
.facts li{padding:.8rem 0;border-bottom:1px solid var(--line)}
.facts b{display:block;font:600 1.25rem/1.15 var(--cond)}
.facts span{color:var(--ink-soft);font-size:1rem}
.register{margin-top:2.5rem;border:1px solid var(--ink)}
.register h2,.register h3{margin:0;font-size:1.1rem;letter-spacing:.06em;text-transform:uppercase;padding:.6rem .9rem;border-bottom:1px solid var(--ink)}
.register dl{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr))}
.register div{padding:.7rem .9rem;border-bottom:1px solid var(--line)}
.register dt{font:600 .85rem/1.2 var(--cond);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.register dd{margin:.2rem 0 0;font-weight:600}

/* Contact form */
.form{display:grid;gap:1.1rem 1.5rem;margin-top:2.25rem;max-width:46rem}
@media (min-width:40rem){.form{grid-template-columns:1fr 1fr}.form .full{grid-column:1/-1}}
.field{display:grid;gap:.35rem}
.field label{font:600 1rem/1.2 var(--cond);letter-spacing:.03em}
.field label span{font-weight:400;color:var(--ink-soft)}
.field input,.field textarea{width:100%;font:inherit;font-size:1.05rem;color:var(--ink);background:#fff;border:1px solid #9d988c;border-radius:0;padding:.7rem .8rem}
.field textarea{min-height:9rem;resize:vertical}
.field input:focus,.field textarea:focus{outline:2px solid var(--ink);outline-offset:0;border-color:var(--ink)}
.check{display:flex;gap:.7rem;align-items:flex-start;font-size:1rem;color:var(--ink-soft)}
.check input{width:1.15rem;height:1.15rem;margin-top:.2rem;accent-color:var(--ink);flex:none}
.trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{min-height:1.6em;font-weight:600}
.form-status.ok{color:#2e5d34}
.form-status.err{color:#8a2a1e}
.area{margin-top:2.5rem;color:var(--ink-soft)}

footer{border-top:1px solid var(--line);color:var(--ink-soft);padding-block:2rem;font-size:1rem}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between}
footer nav{display:flex;gap:1.5rem;flex-wrap:wrap}

/* Legal pages */
.legal{max-width:46rem;padding-block:3rem 5rem}
.legal h1{font-size:clamp(2.6rem,7vw,3.75rem)}
.legal>h2{font-size:1.6rem;margin-top:2.5rem}
.legal p,.legal ul{margin-top:.8rem;max-width:68ch}
.legal .register{margin-top:2rem}
