
/* Light-first, paper ground. One family plus a mono for data.
   No gradients, no glows, no reveals - the photographs carry it. */
:root{
  --paper:#f5f4f1; --surface:#ffffff; --surface2:#ebeae6;
  --rule:#d9d7d1; --rule2:#e7e5e0;
  --ink:#16181c; --body:#3a3d42; --muted:#70747a;
  --accent:#0e4c6b; --accent-soft:#e3edf2;
  --urgent:#a33417;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#15171a; --surface:#1c1f23; --surface2:#23272c;
    --rule:#32373d; --rule2:#25292e;
    --ink:#f1f0ed; --body:#c3c6ca; --muted:#8c9197;
    --accent:#86bbd6; --accent-soft:#16303c;
    --urgent:#e08260;
  }
}
:root[data-theme="dark"]{
  --paper:#15171a; --surface:#1c1f23; --surface2:#23272c;
  --rule:#32373d; --rule2:#25292e;
  --ink:#f1f0ed; --body:#c3c6ca; --muted:#8c9197;
  --accent:#86bbd6; --accent-soft:#16303c;
  --urgent:#e08260;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--body);
  font-family:"Instrument Sans",-apple-system,"Segoe UI",system-ui,sans-serif;
  font-size:18px;line-height:1.66;-webkit-font-smoothing:antialiased;
}
.wrap{max-width:1080px;margin:0 auto;padding:0 28px}
.narrow{max-width:660px}
h1,h2,h3{color:var(--ink);margin:0;font-weight:600;letter-spacing:-.021em;line-height:1.12}
h1{font-size:clamp(2.15rem,5vw,3.5rem);line-height:1.06;letter-spacing:-.03em}
h2{font-size:clamp(1.55rem,3vw,2.15rem)}
h3{font-size:1.1rem;letter-spacing:-.012em}
p{margin:0 0 1.1em;max-width:64ch}
p:last-child{margin-bottom:0}
a{color:var(--accent);text-underline-offset:3px}
strong{font-weight:600;color:var(--ink)}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace}
.eyebrow{
  font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:12px;letter-spacing:.02em;color:var(--muted);
  margin:0 0 18px;display:block;
}
.lede{font-size:clamp(1.08rem,1.7vw,1.24rem);color:var(--body);max-width:52ch}

/* ---------- masthead ---------- */
.masthead{border-bottom:1px solid var(--rule);background:var(--paper)}
.masthead .wrap{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding-top:22px;padding-bottom:22px}
.wordmark{display:flex;align-items:center;gap:10px;font-size:1.06rem;font-weight:600;color:var(--ink);letter-spacing:-.02em;text-decoration:none}
.wordmark svg{width:22px;height:22px;flex:none;color:var(--accent)}
.wordmark .wm-loc{color:var(--muted);font-weight:400}
.mastlink{font-family:"IBM Plex Mono",monospace;font-size:12.5px;color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:2px}

/* ---------- hero ---------- */
.hero{padding:84px 0 76px}
.hero h1{max-width:17ch;margin-bottom:26px}
.availability{
  font-family:"IBM Plex Mono",monospace;font-size:12.5px;color:var(--muted);
  margin-top:34px;padding-top:16px;border-top:1px solid var(--rule);max-width:52ch;
}
.availability b{color:var(--ink);font-weight:500}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;align-items:center}
.btn{
  display:inline-block;text-decoration:none;font-family:inherit;font-size:1rem;
  font-weight:600;letter-spacing:-.006em;padding:14px 26px;border-radius:2px;
  border:1px solid transparent;cursor:pointer;
  transition:background-color .15s,border-color .15s,color .15s;
}
.btn-solid{background:var(--ink);color:var(--paper)}
.btn-solid:hover{background:var(--accent)}
.btn-quiet{border-color:var(--rule);color:var(--ink);background:transparent}
.btn-quiet:hover{border-color:var(--ink)}

/* ---------- data table ---------- */
.datawrap{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--surface)}
table.data{border-collapse:collapse;width:100%;font-family:"IBM Plex Mono",monospace;font-size:13px}
table.data td{padding:15px 28px;border-bottom:1px solid var(--rule2);vertical-align:baseline}
table.data tr:last-child td{border-bottom:none}
table.data td:first-child{color:var(--muted);width:34%;white-space:nowrap}
table.data td:last-child{color:var(--ink)}

/* ---------- sections ---------- */
section{padding:78px 0;border-bottom:1px solid var(--rule)}
section.plain{background:var(--paper)}
section.raised{background:var(--surface)}
.sechead{margin-bottom:44px;max-width:34ch}
.sechead h2{margin-bottom:14px}
.sechead p{color:var(--muted);max-width:52ch}

/* scope: a list, so it is set as a list - no invented numbering */
.scope{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 56px}
.scope .item{padding:22px 0;border-top:1px solid var(--rule2)}
.scope .item h3{margin-bottom:7px}
.scope .item p{font-size:.95rem;color:var(--muted);margin:0}

/* the three-step process genuinely is a sequence */
ol.steps{list-style:none;counter-reset:s;padding:0;margin:30px 0 0;max-width:60ch}
ol.steps li{counter-increment:s;position:relative;padding:16px 0 16px 44px;border-top:1px solid var(--rule2);font-size:1rem}
ol.steps li::before{
  content:counter(s,decimal-leading-zero);position:absolute;left:0;top:19px;
  font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--muted);
}
.offer{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:44px}
.offer h3{margin-bottom:9px}
.offer p{font-size:.95rem;color:var(--muted);margin:0}
.offer .kind{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--accent);display:block;margin-bottom:11px}
.systems{margin-top:52px;padding-top:26px;border-top:1px solid var(--rule)}
.systems p{font-family:"IBM Plex Mono",monospace;font-size:13.5px;color:var(--body);max-width:62ch;line-height:2}

/* ---------- figures ---------- */
.plate{border-bottom:1px solid var(--rule);background:var(--surface2)}
.plate img{display:block;width:100%;height:clamp(280px,50vw,560px);object-fit:cover;object-position:center 58%}
figure{margin:0}
figcaption{
  font-family:"IBM Plex Mono",monospace;font-size:12.5px;line-height:1.72;
  color:var(--muted);padding:16px 0 0;max-width:58ch;
}
figcaption b{color:var(--ink);font-weight:500}
.plate figcaption{padding-bottom:28px}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:40px;margin-top:52px}
.gallery img{display:block;width:100%;height:clamp(260px,28vw,360px);object-fit:cover}

/* ---------- form ---------- */
.formgrid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;align-items:start}
form{background:var(--paper);border:1px solid var(--rule);padding:34px 32px}
fieldset{border:none;padding:0;margin:0 0 26px}
legend,.flabel{
  font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--muted);
  padding:0;margin-bottom:11px;display:block;
}
.urgency{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.urgency label{
  display:flex;align-items:center;gap:11px;cursor:pointer;background:var(--paper);
  padding:14px 15px;font-size:.97rem;color:var(--body);transition:background-color .14s;
}
.urgency label:hover{background:var(--surface2)}
.urgency input{accent-color:var(--accent);width:16px;height:16px;flex:none;margin:0}
.urgency input:checked ~ span{color:var(--ink);font-weight:500}
.field{margin-bottom:22px}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:22px}
input[type=text],input[type=tel],input[type=email],textarea,select{
  font-family:inherit;font-size:16px;color:var(--ink);background:transparent;
  border:none;border-bottom:1px solid var(--rule);border-radius:0;
  padding:9px 0;width:100%;transition:border-color .15s;
}
input:focus,textarea:focus,select:focus{outline:none;border-bottom-color:var(--accent)}
textarea{resize:vertical;min-height:96px;line-height:1.6}
select{cursor:pointer}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formnote{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--muted);margin:18px 0 0;line-height:1.65}
.formerr{color:var(--urgent);font-size:.94rem;margin-top:14px;display:none}
.confirm{display:none;border:1px solid var(--accent);background:var(--accent-soft);padding:30px 28px}
.confirm h3{font-size:1.35rem;margin-bottom:12px}
.confirm p{color:var(--body);font-size:.98rem}

/* ---------- credentials ---------- */
.who{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:start}
table.creds{border-collapse:collapse;width:100%;font-size:.94rem}
table.creds td{padding:11px 0;border-bottom:1px solid var(--rule2);vertical-align:baseline}
table.creds td:first-child{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--muted);width:44%}
table.creds td:last-child{color:var(--ink)}
table.creds tr:last-child td{border-bottom:none}

.area p.cities{font-size:1.12rem;color:var(--ink);max-width:46ch;line-height:1.85}
.closing{padding:80px 0}
.closing h2{max-width:18ch;margin-bottom:18px}
.closing p{color:var(--muted);max-width:48ch;margin-bottom:30px}

footer{padding:34px 0 96px;border-top:1px solid var(--rule)}
footer .wrap{display:flex;flex-wrap:wrap;gap:8px 26px;font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--muted)}

/* ---------- mobile request bar ---------- */
.reqbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;border-top:1px solid var(--rule);background:var(--paper)}
.reqbar a{display:block;text-align:center;padding:16px;font-weight:600;color:var(--paper);background:var(--ink);text-decoration:none;margin:12px 28px;border-radius:2px}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

@media (max-width:900px){
  .formgrid,.who{grid-template-columns:1fr;gap:40px}
}
@media (max-width:680px){
  body{font-size:17px}
  .wrap{padding:0 22px}
  .hero{padding:56px 0 52px}
  section{padding:56px 0}
  .pair{grid-template-columns:1fr;gap:0}
  .btn{width:100%;text-align:center}
  .reqbar{display:block}
  .masthead .mastlink{display:none}
  table.data td{padding:13px 22px}
  form{padding:26px 20px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}

.site-nav{display:flex;flex-wrap:wrap;gap:10px 24px;padding-top:14px;padding-bottom:14px;font-size:14px}
.site-nav a{text-decoration:none}.site-nav a:hover{text-decoration:underline}
.skip{position:absolute;left:-9999px}.skip:focus{left:10px;top:10px;z-index:100;background:var(--surface);padding:10px}
.bread{padding-top:30px;font:12px "IBM Plex Mono",monospace;display:flex;gap:10px;flex-wrap:wrap}
.article-hero{padding:48px 28px 52px}.hero.wrap{padding-left:28px;padding-right:28px}.article-hero h1{max-width:24ch;margin-bottom:24px}
.article-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(240px,1fr);gap:64px;align-items:start}
.article-content section{padding:32px 0}.article-content section:first-child{padding-top:0}
.article-content h2{font-size:1.65rem;margin-bottom:22px}.article-content p,.article-content li{max-width:70ch}
.article-content ul{padding-left:22px}.article-content li{margin-bottom:12px}
.side-panel{background:var(--surface);border:1px solid var(--rule);padding:26px;font-size:16px}
.side-panel h2{font-size:1.2rem;margin-bottom:18px}.side-panel .btn{padding:12px 16px;width:100%;text-align:center;margin-top:12px}
.side-panel .mono{font-size:12px}.link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:0 40px;margin-top:28px}
.link-card{padding:26px 0;border-top:1px solid var(--rule)}.link-card h3{font-size:1.15rem;margin-bottom:12px}.link-card p{font-size:16px;color:var(--body)}
.footer-links{margin-top:20px}.legal-note{max-width:850px;font-size:12px;line-height:1.8;margin-top:24px}
.formgrid input[type=date]{font:inherit;width:100%;padding:9px 0;background:transparent;border:0;border-bottom:1px solid var(--rule);color:var(--ink)}
.reqbar .bar-inner{display:flex;gap:10px;padding:10px 18px}.reqbar a{margin:0;padding:12px 8px;flex:1;font-size:15px}.reqbar a:first-child{background:var(--accent)}
.source-links{font-size:14px}.source-links li{margin:8px 0}.form-details{margin:22px 0}.form-details summary{cursor:pointer;color:var(--accent);margin-bottom:18px}
@media(max-width:800px){.article-grid{grid-template-columns:1fr;gap:32px}.article-hero{padding:36px 28px}.masthead .wrap{align-items:center}.wm-loc{display:none}}
@media(max-width:680px){.site-nav{gap:9px 18px;font-size:13px}.wordmark{font-size:.98rem}.article-hero,.hero.wrap{padding-left:22px;padding-right:22px}.scope{grid-template-columns:1fr}.article-content h2{font-size:1.45rem}}
