/* STRUKT — main stylesheet. Layout + components. Consumes tokens.css. */
*{box-sizing:border-box;}
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--sk-bg); color:var(--sk-text);
  font-family:var(--sk-font-text); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
::selection{ background:var(--sk-oxblood); color:var(--sk-paper); }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
.k{ display:inline-block; transform:scaleX(-1); }

/* ---- layout ---- */
.sk-container{ max-width:var(--sk-max); margin:0 auto; padding-left:var(--sk-pad); padding-right:var(--sk-pad); }
.sk-section{ padding-top:var(--sk-24); padding-bottom:var(--sk-24); }
.sk-rule-b{ border-bottom:var(--sk-hair) solid var(--sk-rule-soft); }
.sk-rule-b-strong{ border-bottom:var(--sk-hair) solid var(--sk-rule-strong); }
.sk-measure{ max-width:var(--sk-measure); }

/* ---- type ---- */
.sk-kicker{ font-family:var(--sk-font-mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--sk-emphasis); }
.sk-eyebrow{ font-family:var(--sk-font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--sk-text-muted); }
.sk-display{ font-family:var(--sk-font-display); font-weight:300; letter-spacing:-.02em; line-height:1.04; margin:0;
  font-size:clamp(40px,6vw,68px); }
.sk-h1{ font-family:var(--sk-font-display); font-weight:300; letter-spacing:-.015em; line-height:1.06; margin:0;
  font-size:clamp(34px,4.6vw,52px); }
.sk-h2{ font-family:var(--sk-font-display); font-weight:400; line-height:1.16; margin:0; font-size:clamp(22px,2.4vw,25px); }
.sk-lede{ font-family:var(--sk-font-display); font-weight:300; font-style:italic; line-height:1.4; margin:0;
  font-size:clamp(24px,3vw,30px); }
.sk-body{ font-family:var(--sk-font-text); font-size:17px; line-height:1.7; color:var(--sk-text-secondary); }
.sk-body-lg{ font-size:clamp(17px,2vw,19px); line-height:1.7; }
.sk-meta{ font-family:var(--sk-font-mono); font-size:11px; letter-spacing:.06em; color:var(--sk-text-muted); }
.sk-label{ font-family:var(--sk-font-grotesk); font-weight:500; }
.sk-serif{ font-family:var(--sk-font-display); }
.ox{ color:var(--sk-emphasis); }

/* ---- masthead ---- */
.sk-masthead{ position:sticky; top:0; z-index:40; background:var(--sk-bg); border-bottom:var(--sk-hair) solid var(--sk-rule-strong); }
.sk-masthead__inner{ max-width:var(--sk-max); margin:0 auto; padding:0 var(--sk-pad); height:66px; display:flex; align-items:center; justify-content:space-between; }
.sk-wordmark{ font-family:var(--sk-font-grotesk); font-weight:500; font-size:23px; letter-spacing:.05em; }
.sk-nav{ display:flex; gap:26px; align-items:center; font-family:var(--sk-font-grotesk); font-size:13px; font-weight:500; color:var(--sk-text-secondary); }
.sk-nav a{ position:relative; padding:4px 0; }
.sk-nav a[aria-current="page"]::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--sk-emphasis); }
.sk-nav a:hover{ color:var(--sk-text); }
.sk-nav__search{ font-family:var(--sk-font-mono); font-size:15px; color:var(--sk-text-muted); }
.sk-menu-btn{ display:none; background:none; border:0; font-family:var(--sk-font-mono); font-size:20px; cursor:pointer; color:var(--sk-text); width:44px; height:44px; margin-right:-10px; align-items:center; justify-content:center; }

@media (max-width:904px){
  .sk-nav{ position:fixed; inset:66px 0 auto 0; flex-direction:column; align-items:flex-start; gap:0;
    background:var(--sk-bg); border-bottom:var(--sk-hair) solid var(--sk-rule-strong); padding:var(--sk-2) var(--sk-pad) var(--sk-6);
    transform:translateY(-12px); opacity:0; pointer-events:none; transition:opacity var(--sk-base) var(--sk-ease), transform var(--sk-base) var(--sk-ease); }
  .sk-nav[data-open="true"]{ transform:none; opacity:1; pointer-events:auto; }
  .sk-nav a{ width:100%; padding:14px 0; border-bottom:var(--sk-hair) solid var(--sk-rule-soft); font-size:16px; }
  .sk-nav__search{ display:none; }
  .sk-menu-btn{ display:flex; }
  .sk-chip{ min-height:44px; align-items:center; }
}

/* ---- footer ---- */
.sk-footer{ background:#111214; color:var(--sk-paper); border-top:var(--sk-hair) solid #3a3b3d; }
.sk-footer__inner{ max-width:var(--sk-max); margin:0 auto; padding:var(--sk-16) var(--sk-pad) var(--sk-8); }
.sk-footer__cols{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:var(--sk-12); }
.sk-footer__col h4{ font-family:var(--sk-font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--sk-graphite-400); margin:0 0 var(--sk-2); font-weight:400; }
.sk-footer__col a, .sk-footer__col p{ display:block; font-family:var(--sk-font-grotesk); font-size:13px; color:#C9C7BF; line-height:2.1; margin:0; }
.sk-footer__col a:hover{ color:var(--sk-paper); }
.sk-footer__tag{ font-family:var(--sk-font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--sk-graphite-400); margin-top:var(--sk-4); }
.sk-footer__base{ display:flex; justify-content:space-between; align-items:center; border-top:var(--sk-hair) solid #2a2b2d; margin-top:var(--sk-12); padding-top:var(--sk-6);
  font-family:var(--sk-font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:#6E6F69; }
@media (max-width:904px){ .sk-footer__cols{ grid-template-columns:1fr 1fr; gap:var(--sk-8); } }
@media (max-width:599px){ .sk-footer__cols{ grid-template-columns:1fr; } .sk-footer__base{ flex-direction:column; gap:var(--sk-2); align-items:flex-start; } }

/* ---- listing rows ---- */
.sk-list{ border-top:var(--sk-hair) solid var(--sk-rule-strong); }
.sk-row{ display:grid; grid-template-columns:96px 1fr 160px; gap:var(--sk-6); align-items:baseline;
  border-bottom:var(--sk-hair) solid var(--sk-rule-soft); padding:22px 0; cursor:pointer; }
.sk-row:hover .sk-row__title{ color:var(--sk-emphasis); }
.sk-row__code{ font-family:var(--sk-font-mono); font-size:11px; color:var(--sk-emphasis); }
.sk-row__title{ font-family:var(--sk-font-display); font-size:23px; line-height:1.2; transition:color var(--sk-fast) var(--sk-ease); }
.sk-row__sub{ font-family:var(--sk-font-text); font-size:13px; color:var(--sk-text-secondary); margin-top:5px; }
.sk-row__meta{ font-family:var(--sk-font-mono); font-size:11px; color:var(--sk-text-muted); text-align:right; }
@media (max-width:599px){ .sk-row{ grid-template-columns:1fr; gap:6px; } .sk-row__meta{ text-align:left; } }

/* ---- filters ---- */
.sk-filters{ display:flex; flex-wrap:wrap; gap:8px; margin:var(--sk-6) 0 var(--sk-3); }
.sk-chip{ font-family:var(--sk-font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--sk-text-secondary);
  border:var(--sk-hair) solid var(--sk-mist); padding:5px 12px; cursor:pointer; background:none; display:inline-flex; align-items:center; }
.sk-chip[aria-pressed="true"]{ color:var(--sk-paper); background:var(--sk-ink); border-color:var(--sk-ink); }

/* ---- cards (catalogue, hairline only — no shadows) ---- */
.sk-grid{ display:grid; gap:1px; background:var(--sk-rule-soft); border:var(--sk-hair) solid var(--sk-rule-soft); }
.sk-grid--2{ grid-template-columns:1fr 1fr; }
.sk-grid--3{ grid-template-columns:repeat(3,1fr); }
.sk-grid--4{ grid-template-columns:repeat(4,1fr); }
.sk-card{ background:var(--sk-raised); padding:var(--sk-8) 30px; display:flex; flex-direction:column; min-height:200px; cursor:pointer; }
.sk-card__top{ display:flex; justify-content:space-between; font-family:var(--sk-font-mono); font-size:10px; color:var(--sk-emphasis); letter-spacing:.08em; }
.sk-card__title{ font-family:var(--sk-font-display); font-size:27px; line-height:1.14; margin-top:var(--sk-4); }
.sk-card__desc{ font-family:var(--sk-font-text); font-size:14px; color:var(--sk-text-secondary); line-height:1.55; margin:var(--sk-3) 0 0; }
.sk-card__cta{ font-family:var(--sk-font-grotesk); font-weight:600; font-size:13px; border-bottom:2px solid var(--sk-emphasis); padding-bottom:2px; margin-top:auto; align-self:flex-start; }
@media (max-width:904px){ .sk-grid--3,.sk-grid--4{ grid-template-columns:1fr 1fr; } }
@media (max-width:599px){ .sk-grid--2,.sk-grid--3,.sk-grid--4{ grid-template-columns:1fr; } }

/* ---- buttons / links ---- */
.sk-textlink{ font-family:var(--sk-font-grotesk); font-weight:600; font-size:14px; border-bottom:2px solid var(--sk-emphasis); padding-bottom:3px; cursor:pointer; display:inline-block; }
.sk-btn{ font-family:var(--sk-font-grotesk); font-weight:500; font-size:14px; padding:13px 22px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; border:var(--sk-hair) solid var(--sk-ink); }
.sk-btn--primary{ background:var(--sk-ink); color:var(--sk-paper); }
.sk-btn--primary:hover{ background:var(--sk-oxblood); border-color:var(--sk-oxblood); }
.sk-btn--ghost{ background:none; color:var(--sk-ink); }
.sk-btn--ghost:hover{ background:var(--sk-ink); color:var(--sk-paper); }
:focus-visible{ outline:2px solid var(--sk-oxblood); outline-offset:2px; }

/* ---- inverse band ---- */
.sk-band{ background:var(--sk-bg-inverse); color:var(--sk-paper); }
.sk-band .sk-eyebrow{ color:var(--sk-oxblood-soft); }
.sk-band__rule{ border-bottom:1px solid #3a3b3d; }

/* ---- hero ---- */
.sk-hero{ display:grid; grid-template-columns:1.45fr 1fr; gap:var(--sk-12); align-items:center; }
.sk-hero__img{ aspect-ratio:4/5; background:linear-gradient(150deg,#17181A,#5A5B57 72%,#cfccc2); }
@media (max-width:904px){ .sk-hero{ grid-template-columns:1fr; gap:var(--sk-8); } .sk-hero__img{ aspect-ratio:16/10; order:-1; } }

/* ---- two-col reading ---- */
.sk-read{ display:grid; grid-template-columns:1.7fr 1fr; gap:var(--sk-16); align-items:start; }
.sk-read aside{ position:sticky; top:90px; }
@media (max-width:904px){ .sk-read{ grid-template-columns:1fr; gap:var(--sk-8); } .sk-read aside{ position:static; } }

/* ---- generic two-col ---- */
.sk-split{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sk-16); align-items:start; }
.sk-split--lede{ grid-template-columns:1.3fr 1fr; }
@media (max-width:904px){ .sk-split,.sk-split--lede{ grid-template-columns:1fr; gap:var(--sk-8); } }

/* ---- index rows (about / functions) ---- */
.sk-index{ border-top:var(--sk-hair) solid var(--sk-rule-strong); }
.sk-index__row{ display:grid; grid-template-columns:64px 1fr 1.4fr; gap:var(--sk-8); align-items:baseline; border-bottom:var(--sk-hair) solid var(--sk-rule-soft); padding:24px 0; }
.sk-index__n{ font-family:var(--sk-font-mono); font-size:12px; color:var(--sk-emphasis); }
.sk-index__t{ font-family:var(--sk-font-display); font-size:clamp(22px,2.6vw,28px); color:var(--sk-text); }
.sk-index__d{ font-family:var(--sk-font-text); font-size:15px; color:var(--sk-text-secondary); }
@media (max-width:599px){ .sk-index__row{ grid-template-columns:40px 1fr; } .sk-index__d{ grid-column:2; } }

/* ---- figure / bars ---- */
.sk-bars{ display:flex; align-items:flex-end; gap:14px; height:170px; border-bottom:1px solid var(--sk-ink); }
.sk-bars span{ flex:1; background:var(--sk-mist); }
.sk-bars span.is-key{ background:var(--sk-oxblood); }

/* ---- seal ---- */
.sk-seal{ border:1.5px solid var(--sk-ink); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; }
.sk-seal .k{ font-family:var(--sk-font-grotesk); font-weight:600; }

/* utility */
.sk-stack-sm > * + *{ margin-top:var(--sk-4); }
.mt-6{margin-top:var(--sk-6);} .mt-8{margin-top:var(--sk-8);} .mt-12{margin-top:var(--sk-12);} .mb-8{margin-bottom:var(--sk-8);}
.sk-hide{ display:none; }
