/* Skandodumi — rail-scale */
:root{
  --bg:#ffffff;
  --alt:#eef0f3;
  --blue:#1b2ecc;
  --ink:#0b0c10;
  --muted:#565c66;
  --accent:#ff4e36;
  --mono:ui-monospace,Consolas,'Liberation Mono',monospace;
  --sans:system-ui,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --step:80px;
  --gap:24px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.75;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{color:var(--accent)}
a:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:1px}
p{margin:0 0 1.1em}
h1,h2,h3{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;font-weight:700;line-height:1.25;margin:0}
h1{font-size:clamp(1.55rem,3.3vw,2.6rem);letter-spacing:.06em;line-height:1.2}
h2{font-size:clamp(1.12rem,1.8vw,1.4rem);margin-bottom:1.1em}
h3{font-size:.98rem;letter-spacing:.1em;margin:1.8em 0 .6em}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:8px 14px;z-index:10}
.skip:focus{left:16px;top:16px}

/* grid */
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
.row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
.rail{grid-column:1/3}
.body{grid-column:3/10}
.wide{grid-column:3/12}
.label{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);line-height:1.5;display:block}
.label b{display:block;font-size:1.5rem;letter-spacing:.04em;font-weight:700;margin-bottom:4px}
.rail .label{position:relative;padding-top:14px;border-top:1px solid var(--blue);max-width:120px}

/* header */
.site-head{border-bottom:1px solid #d7dbe1;background:var(--bg)}
.site-head .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;padding-top:18px;padding-bottom:18px}
.brand{font-family:var(--mono);font-weight:700;text-transform:uppercase;letter-spacing:.22em;font-size:.95rem;text-decoration:none;display:flex;align-items:center;gap:10px}
.brand::before{content:"";width:10px;height:24px;background:repeating-linear-gradient(to right,var(--accent) 0 2px,transparent 2px 4px)}
.nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 22px}
.nav a{font-family:var(--mono);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--muted);padding:4px 0;border-bottom:2px solid transparent}
.nav a:hover{color:var(--ink);border-bottom-color:var(--accent)}
.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}

/* sections */
.sec{padding:var(--step) 0}
.sec.alt{background:var(--alt)}
.sec.blue{background:var(--blue);color:#fff}
.sec.blue a{color:#fff;text-decoration-color:#fff}
.sec.blue a:hover{color:#fff;text-decoration-color:var(--accent)}
.sec.blue .label{color:#fff}
.sec.blue .rail .label{border-top-color:#fff}

/* vertical tick scale (pure CSS) */
.scale{position:relative;min-height:340px;height:100%;padding-left:34px;font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;color:var(--blue)}
.scale::before{content:"";position:absolute;left:0;top:0;bottom:0;width:22px;
  background:
   repeating-linear-gradient(to bottom,var(--blue) 0 1px,transparent 1px 40px) left top/22px 100% no-repeat,
   repeating-linear-gradient(to bottom,var(--blue) 0 1px,transparent 1px 8px) left top/10px 100% no-repeat;
  border-left:1px solid var(--blue)}
.scale::after{content:"000\A 010\A 020\A 030\A 040\A 050\A 060\A 070\A 080";white-space:pre;display:block;line-height:40px;margin-top:-20px}

/* hero */
.hero{padding:var(--step) 0}
.hero .kicker{grid-column:3/9;margin-bottom:28px}
.hero h1{grid-column:3/10}
.hero .lede{grid-column:3/9;margin-top:32px;font-size:1.12rem;color:var(--ink)}
.hero .rail{grid-row:1/4}
.hero .meta{grid-column:10/13;grid-row:1/4;align-self:end;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);line-height:2;border-left:1px solid #d7dbe1;padding-left:18px}
.hero .meta a{color:var(--muted)}

/* ticks separator */
.ticks{height:24px;background:repeating-linear-gradient(to right,var(--blue) 0 1px,transparent 1px 16px);opacity:.75}
.ticks.accent{background:repeating-linear-gradient(to right,var(--accent) 0 2px,transparent 2px 16px);width:96px;opacity:1;margin:1.6em 0}
.sec.blue .ticks{background:repeating-linear-gradient(to right,#fff 0 1px,transparent 1px 16px)}
.divider .wrap .ticks{grid-column:3/13}

/* main image */
.figmain{padding:0 0 var(--step)}
.figmain figure{margin:0;display:contents}
.figmain figcaption{grid-column:1/4;grid-row:1;align-self:end;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);line-height:1.8;padding-right:8px;border-top:1px solid var(--blue);padding-top:12px}
.figmain figcaption span{display:block;color:var(--blue);margin-bottom:6px}
.figmain img{grid-column:4/13;grid-row:1;width:100%;aspect-ratio:16/9;object-fit:cover}

/* lists */
.list2{list-style:none;margin:0 0 1.2em;padding:0;columns:2;column-gap:var(--gap)}
.list2 li{break-inside:avoid;position:relative;padding:0 0 0 26px;margin:0 0 14px}
.list2 li::before{content:"";position:absolute;left:0;top:.55em;width:12px;height:12px;border:2px solid var(--accent)}
.list2 strong,.defs strong{font-weight:650}
.check li::before{border-radius:0;background:linear-gradient(var(--accent),var(--accent)) center/4px 4px no-repeat}
ol.steps{margin:0 0 1.2em;padding:0;list-style:none;counter-reset:s}
ol.steps li{counter-increment:s;position:relative;padding-left:52px;margin-bottom:14px}
ol.steps li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:.1em;font-family:var(--mono);font-size:.8rem;letter-spacing:.1em;color:var(--blue);border-top:1px solid var(--blue);padding-top:2px;width:34px}

.compare{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);margin:.4em 0 1.4em}
.compare > div{border-top:2px solid var(--ink);padding-top:14px}
.compare h3{margin-top:0}
.compare dl{margin:0}
.compare dt{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-top:10px}
.compare dd{margin:0}

.note{border-left:3px solid var(--accent);padding:4px 0 4px 18px;color:var(--muted);margin:1.4em 0}

/* contrast section w/ detail image */
.detail figure{grid-column:1/6;margin:0}
.detail figure img{width:100%;aspect-ratio:4/5;object-fit:cover}
.detail figcaption{font-size:.8rem;line-height:1.6;margin-top:12px;opacity:.9;font-family:var(--mono);letter-spacing:.06em}
.detail .text{grid-column:7/13}
.detail .text .label{margin-bottom:18px}

/* contact block */
.contact-line{font-family:var(--mono);font-size:clamp(1rem,2.2vw,1.35rem);letter-spacing:.06em;word-break:break-word}

/* about / legal */
.page{padding:var(--step) 0}
.page .rail{position:relative}
.page .index{position:sticky;top:24px;list-style:none;margin:0;padding:0 0 0 18px;border-left:1px solid var(--blue);
  background:repeating-linear-gradient(to bottom,var(--blue) 0 1px,transparent 1px 12px) left top/8px 100% no-repeat}
.page .index li{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;line-height:1.5;margin:0 0 16px}
.page .index a{text-decoration:none;color:var(--blue)}
.page .index a:hover{color:var(--accent)}
.page h1{margin-bottom:32px}
.page h2{margin-top:2.2em;scroll-margin-top:24px}
.page .lede{font-size:1.1rem}
.page section + section::before{content:"";display:block;width:72px;height:24px;margin:2.4em 0 0;background:repeating-linear-gradient(to right,var(--accent) 0 2px,transparent 2px 12px)}
.page section h2{margin-top:1em}
.updated{font-family:var(--mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* footer patchbay */
.site-foot{background:var(--alt);padding:40px 0 28px;border-top:1px solid #d7dbe1}
.patch{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px 32px}
.patch .fname{font-family:var(--mono);font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.patch ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px}
.patch ul a,.patch .mail{font-family:var(--mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase}
.patch .mail{text-transform:none;letter-spacing:.04em;font-size:.86rem}
.foot-line{height:1px;background:var(--ink);margin:22px 0 14px;position:relative}
.foot-line::after{content:"";position:absolute;left:0;right:0;top:-12px;height:12px;background:repeating-linear-gradient(to right,var(--blue) 0 1px,transparent 1px 16px);opacity:.5}
.foot-small{font-size:.8rem;color:var(--muted);line-height:1.6;margin:0}

/* tablet */
@media (max-width:1024px){
  .body{grid-column:3/12}
  .hero h1,.hero .lede,.hero .kicker{grid-column:3/13}
  .hero .meta{grid-column:3/13;grid-row:auto;border-left:0;border-top:1px solid #d7dbe1;padding:14px 0 0;margin-top:28px}
  .figmain figcaption{grid-column:1/13;grid-row:2;border-top:0;padding-top:12px}
  .figmain img{grid-column:2/13}
  .detail figure{grid-column:1/6}
  .detail .text{grid-column:6/13}
}

/* mobile */
@media (max-width:720px){
  :root{--step:48px;--gap:16px}
  body{font-size:16.5px}
  .wrap{padding:0 16px}
  .row{display:block}
  .rail{margin-bottom:16px}
  .rail .label{display:inline-flex;align-items:baseline;gap:10px;max-width:none;border-top:0;padding-top:0;border-left:2px solid var(--blue);padding-left:10px}
  .sec.blue .rail .label{border-left-color:#fff}
  .rail .label b{display:inline;font-size:.9rem;margin:0}
  .scale{display:none}
  .hero .rail{margin-bottom:0}
  .hero .meta{margin-top:24px}
  .figmain img{width:100%}
  .figmain figcaption{padding-top:12px}
  .list2{columns:1}
  .compare{grid-template-columns:1fr}
  .detail figure{max-width:420px;margin-bottom:28px}
  .page .index{position:static;display:flex;flex-wrap:wrap;gap:6px 16px;border-left:0;border-top:1px solid var(--blue);padding:12px 0 0;background:none;margin-bottom:28px}
  .page .index li{margin:0}
  .patch{grid-template-columns:1fr}
  .patch ul{justify-content:flex-start}
  .nav ul{gap:4px 16px}
}
