
/* WAYBILL system. Tokens first: every value below is referenced from :root only. */
:root{
  --skin:#E9EEF0; --flesh:#C9D6DE; --seed:#0B0B0C; --stem:#274262; --ripeness:#1557AD; --juice:#0F3773;
  --paper:#FFFFFF;
  --ink:color-mix(in srgb, var(--seed) 90%, var(--skin));
  --muted:color-mix(in srgb, var(--seed) 62%, var(--skin));
  --line:color-mix(in srgb, var(--seed) 16%, var(--skin));
  --band:var(--stem); --band-ink:var(--skin);
  --action:var(--ripeness); --action-deep:var(--juice);
  --fs-xs:0.8125rem; --fs-s:0.9375rem; --fs-m:1.0625rem; --fs-l:1.375rem; --fs-xl:1.875rem; --fs-2xl:2.5rem; --fs-hero:clamp(2.375rem, 7.2vw, 4.25rem);
  --lh-tight:1.12; --lh-body:1.62;
  --sp-1:0.5rem; --sp-2:0.75rem; --sp-3:1rem; --sp-4:1.5rem; --sp-5:2rem; --sp-6:3rem; --sp-7:4.5rem;
  --r-1:4px; --r-2:10px;
  --t-1:160ms ease; --t-2:280ms ease;
  --maxw:72rem; --tap:44px;
  --font-body:"Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mono:"Courier New", Courier, monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--skin);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-m);line-height:var(--lh-body);-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto;display:block}
a{color:var(--action)}
a:hover{color:var(--action-deep)}
:focus-visible{outline:3px solid var(--ripeness);outline-offset:2px}
.num, td, .fact b{font-variant-numeric:tabular-nums}
.skip{position:absolute;left:-999px;top:0;background:var(--seed);color:var(--skin);padding:var(--sp-2) var(--sp-3);z-index:50}
.skip:focus{left:var(--sp-2);top:var(--sp-2);color:var(--skin)}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:max(var(--sp-4), env(safe-area-inset-left));padding-right:max(var(--sp-4), env(safe-area-inset-right))}
/* header */
.topbar{background:var(--seed);color:var(--skin);font-size:var(--fs-xs);font-family:var(--font-mono);letter-spacing:0.04em}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);padding-top:var(--sp-1);padding-bottom:var(--sp-1)}
.topbar a{color:var(--flesh);text-decoration:none}
.sitebar{background:var(--paper);border-bottom:3px solid var(--seed);position:sticky;top:0;z-index:20}
.sitebar .wrap{display:flex;align-items:center;gap:var(--sp-4);padding-top:var(--sp-2);padding-bottom:var(--sp-2)}
.brand{display:flex;align-items:center;gap:var(--sp-3);text-decoration:none;color:var(--seed)}
.brand img{height:44px;width:auto}
.brand .bname{font-weight:800;letter-spacing:0.02em;line-height:1.05;font-size:var(--fs-s);text-transform:uppercase}
.brand .bname small{display:block;font-family:var(--font-mono);font-weight:400;letter-spacing:0.14em;font-size:var(--fs-xs);color:var(--muted);text-transform:none}
nav.mainnav{margin-left:auto}
nav.mainnav ul{display:flex;gap:var(--sp-1);list-style:none;margin:0;padding:0}
nav.mainnav a{display:flex;align-items:center;min-height:var(--tap);padding:0 var(--sp-3);color:var(--ink);text-decoration:none;font-weight:600;font-size:var(--fs-s);border-radius:var(--r-1);transition:background var(--t-1), color var(--t-1)}
nav.mainnav a:hover{background:var(--flesh);color:var(--juice)}
nav.mainnav a[aria-current="page"]{background:var(--seed);color:var(--skin)}
.menubtn{display:none;margin-left:auto;min-height:var(--tap);min-width:var(--tap);background:var(--seed);color:var(--skin);border:0;border-radius:var(--r-1);font-family:var(--font-mono);font-size:var(--fs-s);padding:0 var(--sp-3);cursor:pointer}
.mobilemenu{display:none;background:var(--paper);border-bottom:3px solid var(--seed)}
.mobilemenu.open{display:block}
.mobilemenu ul{list-style:none;margin:0;padding:var(--sp-2) 0}
.mobilemenu a{display:flex;align-items:center;min-height:var(--tap);padding:0 var(--sp-4);color:var(--ink);text-decoration:none;font-weight:600}
.mobilemenu .mmore{border-top:1px dashed var(--line);margin-top:var(--sp-2);padding-top:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0.12em;color:var(--muted);padding-left:var(--sp-4)}
/* crumbs */
.crumbs{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0.06em;color:var(--muted);padding-top:var(--sp-4)}
.crumbs a{color:var(--action);text-decoration:none}
/* hero */
.hero{background:var(--seed);color:var(--skin)}
.hero .wrap{display:grid;gap:var(--sp-5);padding-top:var(--sp-6);padding-bottom:var(--sp-6)}
.hero figure{margin:0}
.hero img{border-radius:var(--r-2);width:100%}
.folio{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0.16em;color:var(--flesh);text-transform:uppercase}
.hero h1, .pagehead h1{font-size:var(--fs-hero);line-height:var(--lh-tight);margin:var(--sp-2) 0;font-weight:800;letter-spacing:-0.01em}
.hero h1 .thin{color:var(--flesh)}
.hero p.lede{font-size:var(--fs-l);max-width:38rem;margin:0;color:var(--flesh)}
.pagehead{background:var(--seed);color:var(--skin)}
.pagehead .wrap{padding-top:var(--sp-6);padding-bottom:var(--sp-5)}
.pagehead p.lede{font-size:var(--fs-l);color:var(--flesh);max-width:40rem;margin:0}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-4)}
.btn{display:inline-flex;align-items:center;min-height:var(--tap);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-1);background:var(--ripeness);color:#fff;text-decoration:none;font-weight:700;transition:background var(--t-1)}
.btn:hover{background:var(--juice);color:#fff}
.btn.ghosty{background:transparent;color:var(--skin);border:2px solid var(--flesh)}
.btn.ghosty:hover{background:var(--stem);color:var(--skin)}
.btn.dark{background:var(--seed);color:var(--skin)}
.btn.dark:hover{background:var(--juice)}
/* sections and cards */
section.block{padding-top:var(--sp-6);padding-bottom:var(--sp-6)}
section.block.alt{background:var(--paper)}
h2{font-size:var(--fs-2xl);line-height:var(--lh-tight);margin:0 0 var(--sp-3);font-weight:800}
h3{font-size:var(--fs-l);margin:0 0 var(--sp-2);line-height:1.25}
.kicker{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0.16em;text-transform:uppercase;color:var(--ripeness);margin:0 0 var(--sp-2)}
.grid{display:grid;gap:var(--sp-4)}
@media(min-width:44rem){.grid.c2{grid-template-columns:1fr 1fr}.grid.c3{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--stem);border-radius:var(--r-2);padding:var(--sp-4)}
.alt .card{background:var(--skin)}
.card img{border-radius:var(--r-1);margin-bottom:var(--sp-3);width:100%}
.card .cnum{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0.14em;color:var(--ripeness)}
.card p{margin:0 0 var(--sp-2);color:var(--muted)}
.card a.more{font-weight:700;text-decoration:none}
ul.ticks{list-style:none;margin:0;padding:0}
ul.ticks li{padding:var(--sp-1) 0 var(--sp-1) var(--sp-4);position:relative;border-bottom:1px dashed var(--line)}
ul.ticks li::before{content:"";position:absolute;left:0;top:1.05em;width:0.55rem;height:0.55rem;background:var(--ripeness)}
.factband{background:var(--band);color:var(--band-ink)}
.factband .wrap{display:grid;gap:var(--sp-4);padding-top:var(--sp-5);padding-bottom:var(--sp-5)}
@media(min-width:44rem){.factband .wrap{grid-template-columns:repeat(4,1fr)}}
.fact b{display:block;font-size:var(--fs-2xl);line-height:1;color:#fff}
.fact span{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0.12em;text-transform:uppercase}
table.waybill{width:100%;border-collapse:collapse;background:var(--paper);border:2px solid var(--seed)}
table.waybill th, table.waybill td{border:1px solid var(--line);padding:var(--sp-2) var(--sp-3);text-align:left;vertical-align:top}
table.waybill th{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0.1em;text-transform:uppercase;background:var(--flesh)}
figure.shot{margin:0}
figure.shot img{border-radius:var(--r-2);width:100%}
figure.shot figcaption{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0.08em;color:var(--muted);padding-top:var(--sp-1)}
.split{display:grid;gap:var(--sp-5);align-items:start}
@media(min-width:52rem){.split{grid-template-columns:1.1fr 0.9fr}}
/* next step */
.nextstep{background:var(--juice);color:var(--skin)}
.nextstep .wrap{padding-top:var(--sp-6);padding-bottom:var(--sp-6);display:grid;gap:var(--sp-3)}
.nextstep h2{color:#fff;margin:0}
.nextstep p{margin:0;color:var(--flesh);max-width:40rem}
.nextstep .btn{background:#fff;color:var(--juice)}
.nextstep .btn:hover{background:var(--flesh);color:var(--seed)}
/* footer */
footer{background:var(--seed);color:var(--skin)}
footer .wrap{display:grid;gap:var(--sp-5);padding-top:var(--sp-6);padding-bottom:var(--sp-4)}
@media(min-width:52rem){footer .wrap{grid-template-columns:1.3fr 1fr 1fr 1.2fr}}
footer h3{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0.16em;text-transform:uppercase;color:var(--flesh)}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:var(--sp-1)}
footer a{color:var(--skin);text-decoration:none;display:inline-flex;align-items:center;min-height:2rem}
footer a:hover{color:var(--flesh);text-decoration:underline}
footer p{color:var(--flesh);margin:0 0 var(--sp-2)}
.footbase{border-top:1px solid var(--stem)}
.footbase .wrap{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);padding-top:var(--sp-3);padding-bottom:calc(var(--sp-3) + env(safe-area-inset-bottom));font-size:var(--fs-xs);font-family:var(--font-mono);letter-spacing:0.05em}
.chip{border:1px solid var(--flesh);border-radius:999px;padding:0 var(--sp-2);color:var(--flesh)}
/* forms */
form.ticket{background:var(--paper);border:2px solid var(--seed);border-radius:var(--r-2);padding:var(--sp-4);display:grid;gap:var(--sp-3)}
form.ticket label{font-weight:700;font-size:var(--fs-s);display:grid;gap:var(--sp-1)}
form.ticket input, form.ticket select, form.ticket textarea{font:inherit;min-height:var(--tap);padding:var(--sp-2) var(--sp-3);border:1px solid var(--muted);border-radius:var(--r-1);background:#fff;color:var(--ink);width:100%}
form.ticket textarea{min-height:7rem}
.note{font-size:var(--fs-s);color:var(--muted)}
.job{border-top:4px solid var(--ripeness)}
.job .meta{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0.1em;text-transform:uppercase;color:var(--ripeness)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media(max-width:52rem){nav.mainnav{display:none}.menubtn{display:inline-flex;align-items:center}}
