:root{
  --bg:#0d3577;
  --bg-deep:#082559;
  --line:#eef4ff;
  --dim:rgba(238,244,255,.58);
  --faint:rgba(238,244,255,.28);
  --grid-minor:rgba(255,255,255,.05);
  --grid-major:rgba(255,255,255,.11);
  --accent:#a9d4ff;
  --head:'Barlow Condensed','Arial Narrow',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;color:var(--line);font-family:var(--mono);font-size:15px;line-height:1.65;
  background-color:var(--bg);
  background-image:
    linear-gradient(var(--grid-major) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-major) 1px,transparent 1px),
    linear-gradient(var(--grid-minor) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-minor) 1px,transparent 1px);
  background-size:100px 100px,100px 100px,20px 20px,20px 20px;
  background-attachment:fixed;
}
a{color:inherit}
.sheet{
  position:relative;max-width:1180px;margin:24px auto;padding:0 clamp(18px,4vw,56px);
  border:1px solid var(--line);outline:1px solid var(--faint);outline-offset:6px;
  background:rgba(8,37,89,.35);
}
/* corner registration ticks */
.reg{position:absolute;width:18px;height:18px}
.reg::before,.reg::after{content:"";position:absolute;background:var(--line)}
.reg::before{left:50%;top:0;bottom:0;width:1px}
.reg::after{top:50%;left:0;right:0;height:1px}
.reg.tl{top:-9px;left:-9px}.reg.tr{top:-9px;right:-9px}
.reg.bl{bottom:-9px;left:-9px}.reg.br{bottom:-9px;right:-9px}

.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 0;border-bottom:1px solid var(--faint)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-family:var(--head);font-weight:600;font-size:1.5rem;letter-spacing:.14em}
.brand small{font-family:var(--mono);font-weight:400;font-size:.62rem;letter-spacing:.3em;color:var(--dim);margin-left:8px}
.brand i{font-style:normal;color:var(--accent)}
.brand svg{stroke-width:1}
nav{display:flex;gap:6px 26px;flex-wrap:wrap;font-size:.72rem;text-transform:uppercase;letter-spacing:.18em}
nav a{text-decoration:none;padding:4px 0;border-bottom:1px solid transparent}
nav a:hover,nav a:focus-visible{border-color:var(--line);outline:none}

.sheetno{font-size:.68rem;letter-spacing:.28em;color:var(--dim);margin:0 0 14px}
h1,h2,h3{font-family:var(--head);font-weight:500;line-height:1.05;margin:0;text-transform:uppercase;letter-spacing:.04em}
h1{font-size:clamp(2.6rem,6vw,4.6rem);font-weight:500}
h1 em{font-style:normal;color:var(--accent)}
h2{font-size:clamp(1.8rem,3.6vw,2.6rem);display:block;padding-bottom:10px;border-bottom:1px solid var(--line)}
h3{font-size:1.2rem;letter-spacing:.08em}
.block{padding:clamp(48px,7vw,88px) 0;border-bottom:1px solid var(--faint)}
.block-head{margin-bottom:36px}
.sub{color:var(--dim);margin:12px 0 0;font-size:.85rem}

.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center;padding:clamp(40px,7vw,80px) 0;border-bottom:1px solid var(--faint)}
.lede{max-width:48ch;color:rgba(238,244,255,.82);margin:26px 0;font-size:.9rem}
.btn{display:inline-block;margin:0 10px 10px 0;padding:12px 22px;border:1px solid var(--line);background:var(--line);color:var(--bg-deep);text-decoration:none;font-size:.72rem;text-transform:uppercase;letter-spacing:.2em;font-weight:500}
.btn:hover,.btn:focus-visible{background:transparent;color:var(--line);outline:none}
.btn.ghost{background:transparent;color:var(--line)}
.btn.ghost:hover,.btn.ghost:focus-visible{background:var(--line);color:var(--bg-deep)}
.hero-fig{margin:0;padding:14px;border:1px solid var(--faint);position:relative}
.hero-fig figcaption{font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-top:10px;padding-top:8px;border-top:1px solid var(--faint)}
.draw{width:100%;height:auto;display:block;overflow:visible}

/* svg line work: crisp, uniform */
.line,.line *{fill:none;stroke:var(--line);stroke-width:1.2;stroke-linecap:butt;stroke-linejoin:miter;vector-effect:non-scaling-stroke}
.line .thin,.line.thin,.thin{stroke-width:.7}
.center path{stroke:var(--dim);stroke-width:.7;stroke-dasharray:16 3 2 3;fill:none}
.dim path{stroke:var(--line);stroke-width:.7;fill:none}
.dim .fill,.fillw{fill:var(--line)!important}
.lbl{font-family:var(--mono);fill:var(--line);font-size:11px;letter-spacing:.06em}
.lbl.small{font-size:9px;fill:var(--dim)}
#teeth path{fill:none}

/* cards */
.grid.four{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;border:1px solid var(--line)}
.card{position:relative;padding:34px 22px 26px;border-right:1px solid var(--line);margin-right:-1px;background:rgba(8,37,89,.3)}
.card:hover{background:rgba(255,255,255,.06)}
.fig{position:absolute;top:12px;left:22px;font-size:.62rem;letter-spacing:.22em;color:var(--dim)}
.icon{width:100%;height:auto;max-height:104px;margin:6px 0 16px;border-bottom:1px solid var(--faint);padding-bottom:12px}
.card p{font-size:.82rem;color:rgba(238,244,255,.8);margin:12px 0 16px}
.card ul{margin:0;padding:12px 0 0;list-style:none;font-size:.7rem;color:var(--dim);border-top:1px solid var(--faint);letter-spacing:.04em}
.card li::before{content:"\2014\00a0"}

/* industries */
.industries{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.industries li{position:relative;padding:28px 20px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.industries li:hover{background:rgba(255,255,255,.06)}
.industries .n{position:absolute;top:10px;right:12px;font-size:.62rem;color:var(--dim);letter-spacing:.18em}
.industries svg{width:60px;height:60px}
.industries h3{font-size:1.1rem}

/* approach */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0;border-top:1px solid var(--line)}
.step{padding:22px 22px 8px 0;border-right:1px solid var(--faint);padding-left:22px}
.step:first-child{padding-left:0}.step:last-child{border-right:0}
.num{display:block;font-family:var(--head);font-size:2.6rem;font-weight:400;color:var(--accent);line-height:1;margin-bottom:10px}
.num::before{content:"0"}
.step p{font-size:.82rem;color:rgba(238,244,255,.8);margin:10px 0 0}

/* title block */
.titleblock{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);outline:1px solid var(--faint);outline-offset:4px;max-width:880px;margin-left:auto;background:rgba(8,37,89,.45)}
.cell{padding:14px 16px;border:1px solid var(--line);margin:-1px 0 0 -1px;display:flex;flex-direction:column;gap:4px}
.cell.wide{grid-column:span 2}
.cell small{font-size:.58rem;letter-spacing:.26em;color:var(--dim)}
.cell strong{font-family:var(--head);font-weight:500;font-size:1.25rem;letter-spacing:.08em;text-transform:uppercase}
.cell.contact{grid-row:span 2;grid-column:span 2}
.mail{font-family:var(--mono);font-size:clamp(1rem,2.2vw,1.3rem);color:var(--accent);text-decoration:none;word-break:break-all}
.mail:hover{text-decoration:underline}
.cell.contact p{font-size:.8rem;color:rgba(238,244,255,.8);margin:8px 0 0}

.foot{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;padding:20px 0;font-size:.62rem;letter-spacing:.2em;color:var(--dim)}

@media (max-width:860px){
  .hero{grid-template-columns:1fr}
  .titleblock{grid-template-columns:1fr 1fr}
  .cell.wide,.cell.contact{grid-column:span 2}
  .cell.contact{grid-row:auto}
  .step{border-right:0;padding-left:0;border-bottom:1px solid var(--faint)}
}
