/* ============================================================================
   DantesWay — Official Site
   Direction A · "The Ledger" (기록계)
   Design system: paper-white editorial × deep-tech restraint.
   Pure CSS, no build step. Self-hosted serif; system Korean + mono.
   ========================================================================== */

/* ---- Self-hosted display serif (Latin subset, ~23KB each) --------------- */
@font-face{
  font-family:'Newsreader'; font-style:normal; font-weight:400;
  font-display:swap; src:url('../fonts/newsreader-400.woff2') format('woff2');
}
@font-face{
  font-family:'Newsreader'; font-style:normal; font-weight:500;
  font-display:swap; src:url('../fonts/newsreader-500.woff2') format('woff2');
}
@font-face{
  font-family:'Newsreader'; font-style:italic; font-weight:400;
  font-display:swap; src:url('../fonts/newsreader-italic-400.woff2') format('woff2');
}

/* ============================================================================
   DESIGN TOKENS
   ========================================================================== */
:root{
  /* --- palette: 90% achromatic + one 인주(seal-red) accent --- */
  --paper:      #FBFAF7;   /* warm off-white ground */
  --paper-2:    #F4F1EA;   /* recessed panels */
  --ink:        #17130D;   /* warm near-black text */
  --ink-soft:   #4C453A;   /* secondary text */
  --ink-faint:  #8A8172;   /* captions, meta */
  --rule:       #E4DDD0;   /* hairline rules */
  --rule-strong:#CFC6B5;
  --vermillion: #BF3B2B;   /* accent — trajectories + key figures ONLY */
  --vermillion-ghost: rgba(191,59,43,.10);

  /* --- type families --- */
  --serif: 'Newsreader', Georgia, 'Times New Roman', serif;
  --kr: 'Pretendard', 'Pretendard Variable', -apple-system, BlinkMacSystemFont,
        'Apple SD Gothic Neo', 'Malgun Gothic', 'Noto Sans KR', sans-serif;
  --mono: ui-monospace, 'SF Mono', 'JetBrains Mono', 'Menlo', 'Consolas', monospace;

  /* --- modular type scale (1.28 ratio), fluid --- */
  --fs-micro: 0.6875rem;   /* 11px — index numerals, meta labels */
  --fs-label: 0.75rem;     /* 12px — mono labels */
  --fs-small: 0.875rem;    /* 14px */
  --fs-body:  1.0625rem;   /* 17px — reading body */
  --fs-lead:  clamp(1.15rem, 1rem + 0.7vw, 1.5rem);
  --fs-h3:    clamp(1.25rem, 1.05rem + 0.9vw, 1.7rem);
  --fs-h2:    clamp(1.6rem, 1.25rem + 1.5vw, 2.4rem);
  --fs-display: clamp(2rem, 1.5rem + 2.2vw, 3.3rem);

  /* --- spacing scale (8px base) --- */
  --s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2rem; --s5:3rem;
  --s6:4rem; --s7:6rem; --s8:8rem; --s9:11rem;

  /* --- structure --- */
  --maxw: 1280px;
  --gutter: clamp(1.25rem, 4vw, 4rem);
  --index-col: 5.5rem;     /* left ledger index column */
  --radius: 2px;           /* near-square — this is a ledger, not a SaaS card */

  --motion: 640ms cubic-bezier(.22,.61,.36,1);
  --motion-slow: 1200ms cubic-bezier(.22,.61,.36,1);
}

/* ============================================================================
   RESET
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  background:var(--paper); color:var(--ink);
  font-family:var(--kr); font-size:var(--fs-body); line-height:1.7;
  font-feature-settings:'kern' 1,'liga' 1;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--vermillion);color:var(--paper);}

/* ============================================================================
   PRIMITIVES
   ========================================================================== */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);}

/* mono meta label — used for section codes, technical annotations */
.label{
  font-family:var(--mono); font-size:var(--fs-label);
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint);
  font-weight:400;
}
.serif{font-family:var(--serif);}
.accent{color:var(--vermillion);}

/* section: two-column ledger grid (index | content) */
.section{padding-block:var(--s7);border-top:1px solid var(--rule);}
.section__grid{
  display:grid;
  grid-template-columns:var(--index-col) minmax(0,1fr);
  gap:var(--gutter);
}
.section__index{
  font-family:var(--mono); font-size:var(--fs-micro);
  letter-spacing:.1em; color:var(--ink-faint);
  padding-top:.4rem;
}
.section__index .n{
  display:block; font-size:1.6rem; line-height:1;
  color:var(--vermillion); font-weight:400; margin-bottom:.5rem;
}
.section__index .t{display:block;text-transform:uppercase;letter-spacing:.14em;}

.eyebrow{
  font-family:var(--mono); font-size:var(--fs-label); letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-faint); margin-bottom:var(--s3);
}
h2.head{
  font-family:var(--kr); font-weight:600; font-size:var(--fs-h2);
  line-height:1.22; letter-spacing:-.015em; max-width:20ch;
}
h3.subhead{
  font-family:var(--kr); font-weight:600; font-size:var(--fs-h3);
  line-height:1.3; letter-spacing:-.01em;
}
.lead{font-size:var(--fs-lead);line-height:1.65;color:var(--ink-soft);max-width:34ch;}
.body{font-size:var(--fs-body);color:var(--ink-soft);max-width:46ch;}
.body + .body{margin-top:var(--s2);}

/* ============================================================================
   NAV
   ========================================================================== */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(251,250,247,.82); backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--rule);
}
.nav__row{
  display:flex; align-items:center; justify-content:space-between;
  height:64px; max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter);
}
.brand{display:flex;align-items:baseline;gap:.55rem;}
.brand__mark{
  font-family:var(--serif); font-weight:500; font-size:1.25rem;
  letter-spacing:-.01em; color:var(--ink);
}
.brand__mark .w{color:var(--vermillion);}
.brand__ko{font-family:var(--kr);font-size:var(--fs-label);color:var(--ink-faint);letter-spacing:.02em;}
.nav__links{display:flex;gap:var(--s4);align-items:center;}
.nav__links a{
  font-family:var(--mono); font-size:var(--fs-label); letter-spacing:.08em;
  color:var(--ink-soft); text-transform:uppercase; transition:color var(--motion);
}
.nav__links a:hover{color:var(--vermillion);}
.nav__cta{
  border:1px solid var(--ink); color:var(--ink);
  padding:.5rem .9rem; border-radius:var(--radius);
  font-family:var(--mono); font-size:var(--fs-label); letter-spacing:.08em;
  text-transform:uppercase; transition:all var(--motion);
}
.nav__cta:hover{background:var(--ink);color:var(--paper);}
@media (max-width:720px){
  .nav__links a:not(.nav__cta){display:none;}
}

/* ============================================================================
   HERO — thesis + trajectory ledger
   ========================================================================== */
.hero{position:relative;padding-top:var(--s6);padding-bottom:var(--s6);}
.hero__grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:clamp(2rem,5vw,5rem); align-items:center;
}
.hero__eyebrow{
  font-family:var(--mono); font-size:var(--fs-label); letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-faint); margin-bottom:var(--s3);
  display:flex; align-items:baseline; gap:.6rem;
}
.hero__eyebrow .n{font-size:1rem;color:var(--vermillion);letter-spacing:.05em;}

.hero__thesis{max-width:none;}
.hero__thesis h1{
  font-family:var(--kr); font-weight:650;
  font-size:var(--fs-display); line-height:1.24; letter-spacing:-.025em;
  color:var(--ink); max-width:15ch; word-break:keep-all;
}
.hero__sub{
  margin-top:var(--s4); max-width:36ch;
  font-size:var(--fs-lead); line-height:1.65; color:var(--ink-soft);
  word-break:keep-all;
}
.hero__en{
  margin-top:var(--s2); font-family:var(--serif); font-style:italic;
  font-size:1.05rem; color:var(--ink-faint);
}

/* trajectory ledger panel */
.plot{
  position:relative; align-self:stretch;
  border:1px solid var(--rule-strong); border-radius:var(--radius);
  background:
    linear-gradient(var(--rule) 1px,transparent 1px) 0 0/100% 28px,
    linear-gradient(90deg,var(--rule) 1px,transparent 1px) 0 0/28px 100%,
    var(--paper);
  background-blend-mode:multiply;
  display:flex; flex-direction:column; overflow:hidden;
}
.plot__head{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:.7rem .9rem; border-bottom:1px solid var(--rule);
  background:var(--paper);
}
.plot__head .id{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;color:var(--ink);}
.plot__head .id b{color:var(--vermillion);font-weight:400;}
.plot__head .meta{font-family:var(--mono);font-size:var(--fs-micro);color:var(--ink-faint);letter-spacing:.06em;}
.plot__svg{display:block;width:100%;height:auto;flex:1 1 auto;min-height:230px;}
.plot__foot{
  display:flex; gap:var(--s3); flex-wrap:wrap;
  padding:.6rem .9rem; border-top:1px solid var(--rule);
  background:rgba(251,250,247,.9); font-family:var(--mono); font-size:var(--fs-micro);
  color:var(--ink-faint); letter-spacing:.04em;
}
.plot__foot b{color:var(--ink);font-weight:400;}
.plot__foot .k{color:var(--vermillion);}

/* trajectory stroke + markers (driven by JS) */
.trace{fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
.trace--ghost{stroke:var(--rule-strong);stroke-width:1.2;stroke-dasharray:2 5;}
.marker{fill:var(--paper);stroke:var(--vermillion);stroke-width:1.4;}
.marker--solid{fill:var(--vermillion);stroke:var(--vermillion);}
.marker-label{font-family:var(--mono);font-size:9px;fill:var(--ink-faint);letter-spacing:.04em;}

@media (max-width:900px){
  .hero__grid{grid-template-columns:1fr;gap:var(--s4);}
  .hero__thesis h1{max-width:none;}
  .hero__sub{max-width:52ch;}
  .plot{margin-top:var(--s2);}
}
@media (max-width:560px){
  .hero{padding-top:var(--s5);}
}

/* ============================================================================
   SECTION 02 — THE MISSING LAYER
   ========================================================================== */
.missing__lede{
  font-family:var(--kr); font-weight:600; font-size:var(--fs-h2);
  line-height:1.28; letter-spacing:-.015em; max-width:24ch;
}
.missing__lede .q{
  font-family:var(--serif); font-style:italic; font-weight:400; color:var(--vermillion);
}
.missing__cols{
  margin-top:var(--s5); display:grid; gap:var(--gutter);
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.record{border-top:2px solid var(--ink);padding-top:var(--s2);}
.record--lost{border-top-color:var(--rule-strong);}
.record__k{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}
.record__list{margin-top:var(--s2);list-style:none;}
.record__list li{
  font-family:var(--mono); font-size:var(--fs-small); color:var(--ink);
  padding:.45rem 0; border-bottom:1px solid var(--rule); display:flex; gap:.6rem; align-items:center;
}
.record--lost .record__list li{color:var(--ink-faint);text-decoration:line-through;text-decoration-color:var(--rule-strong);}
.record__list li::before{content:'';width:5px;height:5px;background:var(--ink);flex:0 0 auto;}
.record--lost .record__list li::before{background:var(--rule-strong);}
.missing__note{
  margin-top:var(--s5); padding-top:var(--s3); border-top:1px solid var(--rule);
  font-size:var(--fs-lead); line-height:1.6; color:var(--ink-soft); max-width:40ch;
}
.missing__note b{color:var(--ink);font-weight:600;}
@media (max-width:640px){
  .missing__cols{grid-template-columns:1fr;gap:var(--s4);}
}

/* Collapse the ledger index column on small screens (shared by all sections). */
@media (max-width:720px){
  .section__grid{grid-template-columns:1fr;gap:var(--s3);}
  .section__index{
    display:flex; align-items:baseline; gap:.7rem; padding-top:0;
    border-bottom:1px solid var(--rule); padding-bottom:var(--s2);
  }
  .section__index .n{display:inline;font-size:1.1rem;margin-bottom:0;}
  .section__index .t{display:inline;}
  .section__index .t br{display:none;}
}

/* ============================================================================
   SECTION 03 — WHAT DANTESWAY BUILDS  (method as a ledger of steps)
   ========================================================================== */
.steps{margin-top:var(--s4);border-top:1px solid var(--rule);}
.step{
  display:grid; grid-template-columns:3.4rem minmax(0,1fr); gap:var(--gutter);
  padding:var(--s4) 0; border-bottom:1px solid var(--rule); align-items:start;
}
.step__n{font-family:var(--serif);font-size:1.9rem;line-height:1;color:var(--vermillion);}
.step__t{font-family:var(--kr);font-weight:600;font-size:var(--fs-h3);letter-spacing:-.01em;}
.step__en{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-faint);margin-top:.3rem;}
.step__d{margin-top:var(--s2);color:var(--ink-soft);max-width:44ch;word-break:keep-all;}
@media (max-width:720px){
  .step{grid-template-columns:2.2rem 1fr;gap:var(--s3);padding:var(--s3) 0;}
  .step__n{font-size:1.5rem;}
}

/* ============================================================================
   SECTION 04 — FINGERTRUExplained  (flagship — recessed paper panel)
   ========================================================================== */
.ft{background:var(--paper-2);border-block:1px solid var(--rule);}
.ft__mark{
  font-family:var(--serif);font-weight:500;font-size:clamp(2rem,1.4rem+2.4vw,3rem);
  letter-spacing:-.01em;color:var(--ink);
}
.ft__mark .t{color:var(--vermillion);}
.ft__mark sub{font-family:var(--mono);font-size:.9rem;color:var(--ink-faint);vertical-align:baseline;margin-left:.5rem;letter-spacing:.1em;}
.ft__def{
  margin-top:var(--s3); font-family:var(--kr); font-weight:600;
  font-size:var(--fs-h2); line-height:1.34; letter-spacing:-.015em;
  max-width:26ch; word-break:keep-all;
}
.ft__def .k{color:var(--vermillion);}
.ft__en{margin-top:var(--s2);font-family:var(--serif);font-style:italic;color:var(--ink-faint);max-width:44ch;font-size:1.05rem;}
.ft__not{margin-top:var(--s5);display:grid;gap:var(--s4);grid-template-columns:repeat(2,minmax(0,1fr));}
.ft__not h4{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:var(--s2);}
.notlist{list-style:none;}
.notlist li{font-family:var(--mono);font-size:var(--fs-small);padding:.4rem 0;border-bottom:1px solid var(--rule);display:flex;gap:.6rem;}
.notlist li .op{color:var(--vermillion);flex:0 0 auto;width:1.1em;}
.notlist--is li .op{color:var(--ink);}
@media (max-width:640px){.ft__not{grid-template-columns:1fr;gap:var(--s3);}}

/* ============================================================================
   SECTION 05 — SAME RESULT, DIFFERENT CONTEXT  (two trajectory cards)
   ========================================================================== */
.compare{margin-top:var(--s4);display:grid;gap:var(--gutter);grid-template-columns:1fr auto 1fr;align-items:center;}
.tcard{border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--paper);overflow:hidden;}
.tcard__h{display:flex;justify-content:space-between;align-items:baseline;padding:.6rem .8rem;border-bottom:1px solid var(--rule);}
.tcard__h .who{font-family:var(--kr);font-weight:600;font-size:var(--fs-small);}
.tcard__h .tag{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.08em;color:var(--ink-faint);}
.tcard svg{display:block;width:100%;height:auto;background:
  linear-gradient(var(--rule) 1px,transparent 1px) 0 0/100% 26px,
  linear-gradient(90deg,var(--rule) 1px,transparent 1px) 0 0/26px 100%;
  background-blend-mode:multiply;}
.tcard__f{padding:.6rem .8rem;border-top:1px solid var(--rule);font-family:var(--mono);font-size:var(--fs-micro);color:var(--ink-soft);letter-spacing:.04em;}
.compare__eq{font-family:var(--serif);font-size:2.2rem;color:var(--ink-faint);text-align:center;}
.compare__eq .r{display:block;font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.1em;color:var(--vermillion);margin-top:.3rem;text-transform:uppercase;}
.same__note{margin-top:var(--s4);font-size:var(--fs-lead);line-height:1.6;color:var(--ink-soft);max-width:42ch;word-break:keep-all;}
.same__note b{color:var(--ink);font-weight:600;}
@media (max-width:720px){
  .compare{grid-template-columns:1fr;gap:var(--s3);}
  .compare__eq{transform:rotate(90deg);margin:.2rem 0;}
}

/* ============================================================================
   SECTION 06 — FROM MOVEMENT TO SIGNAL  (raw → derived → signal pipeline)
   ========================================================================== */
.pipe{margin-top:var(--s4);display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:var(--s2);align-items:stretch;}
.pstage{border-top:2px solid var(--ink);padding-top:var(--s2);}
.pstage--sig{border-top-color:var(--vermillion);}
.pstage__k{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}
.pstage__t{font-family:var(--kr);font-weight:600;font-size:var(--fs-h3);margin-top:.4rem;letter-spacing:-.01em;}
.pstage--sig .pstage__t{color:var(--vermillion);}
.pstage__items{margin-top:var(--s2);list-style:none;}
.pstage__items li{font-family:var(--mono);font-size:var(--fs-small);color:var(--ink);padding:.35rem 0;border-bottom:1px solid var(--rule);}
.parrow{align-self:center;color:var(--ink-faint);font-family:var(--serif);font-size:1.6rem;padding:0 .3rem;}
.signal__note{margin-top:var(--s5);padding-top:var(--s3);border-top:1px solid var(--rule);font-size:var(--fs-lead);line-height:1.6;color:var(--ink-soft);max-width:44ch;word-break:keep-all;}
@media (max-width:720px){
  .pipe{grid-template-columns:1fr;gap:var(--s1);}
  .parrow{transform:rotate(90deg);padding:.2rem 0;justify-self:start;}
}

/* ============================================================================
   SECTION 07 — WHY IT MATTERS  (causal chain + domains)
   ========================================================================== */
.chain{margin-top:var(--s4);display:flex;flex-wrap:wrap;gap:.5rem var(--s2);align-items:center;}
.link{font-family:var(--kr);font-weight:600;font-size:var(--fs-lead);letter-spacing:-.01em;color:var(--ink);}
.link.is-end{color:var(--vermillion);}
.chain .arr{color:var(--ink-faint);font-family:var(--serif);font-size:1.3rem;}
.why__body{margin-top:var(--s4);color:var(--ink-soft);max-width:46ch;word-break:keep-all;font-size:var(--fs-body);}
.domains{margin-top:var(--s5);border-top:1px solid var(--rule);padding-top:var(--s3);display:flex;flex-wrap:wrap;gap:.6rem;}
.domain{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);border:1px solid var(--rule-strong);border-radius:99px;padding:.4rem .9rem;}
.domain--first{border-color:var(--vermillion);color:var(--vermillion);}
.domains__cap{margin-top:var(--s2);font-family:var(--mono);font-size:var(--fs-micro);color:var(--ink-faint);letter-spacing:.04em;}

/* ============================================================================
   SECTION 08 — CURRENT STATE  (honest status + first-signal figures)
   ========================================================================== */
.state__line{font-family:var(--kr);font-weight:600;font-size:var(--fs-h2);line-height:1.3;letter-spacing:-.015em;max-width:20ch;}
.state__line .on{color:var(--vermillion);}
.stats{margin-top:var(--s5);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter);}
.stat{border-top:2px solid var(--ink);padding-top:var(--s2);}
.stat__v{font-family:var(--serif);font-weight:500;font-size:clamp(2.2rem,1.6rem+2.4vw,3.4rem);line-height:1;letter-spacing:-.02em;}
.stat__v .u{font-family:var(--mono);font-size:1rem;color:var(--ink-faint);letter-spacing:0;}
.stat--signal{border-top-color:var(--vermillion);}
.stat--signal .stat__v{color:var(--vermillion);}
.stat__k{margin-top:var(--s2);font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);}
.stat__d{margin-top:.5rem;font-size:var(--fs-small);color:var(--ink-soft);word-break:keep-all;}
.state__disc{margin-top:var(--s5);padding:var(--s3);background:var(--paper-2);border-left:2px solid var(--vermillion);border-radius:var(--radius);}
.state__disc p{font-size:var(--fs-small);line-height:1.65;color:var(--ink-soft);max-width:60ch;word-break:keep-all;}
.state__disc b{color:var(--ink);font-weight:600;}
@media (max-width:720px){.stats{grid-template-columns:1fr;gap:var(--s4);}}

/* ============================================================================
   SECTION 09 — DANTESWAY  (company operating statement)
   ========================================================================== */
.co__line{font-family:var(--kr);font-weight:650;font-size:var(--fs-h2);line-height:1.32;letter-spacing:-.02em;max-width:22ch;word-break:keep-all;}
.co__line em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--vermillion);}
.co__attrs{margin-top:var(--s5);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4) var(--gutter);}
.attr{border-top:1px solid var(--rule);padding-top:var(--s2);}
.attr__k{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--vermillion);}
.attr__d{margin-top:.5rem;color:var(--ink-soft);font-size:var(--fs-small);word-break:keep-all;}
@media (max-width:560px){.co__attrs{grid-template-columns:1fr;}}

/* ============================================================================
   SECTION 10 — CONTACT
   ========================================================================== */
.contact{border-top:1px solid var(--rule);}
.contact__mail{
  display:inline-block; margin-top:var(--s2);
  font-family:var(--serif); font-size:clamp(1.7rem,1.2rem+2.6vw,3rem);
  letter-spacing:-.01em; color:var(--ink); border-bottom:2px solid var(--vermillion);
  padding-bottom:.15rem; transition:color var(--motion);
}
.contact__mail:hover{color:var(--vermillion);}
.contact__legal{
  margin-top:var(--s6); border-top:1px solid var(--rule); padding-top:var(--s4);
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s3) var(--gutter);
}
.legal__row{display:flex;flex-direction:column;gap:.25rem;}
.legal__k{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}
.legal__v{font-family:var(--kr);font-size:var(--fs-small);color:var(--ink);}
@media (max-width:560px){.contact__legal{grid-template-columns:1fr;}}

/* ============================================================================
   FOOTER
   ========================================================================== */
.foot{border-top:1px solid var(--rule);padding-block:var(--s4);}
.foot__row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--s2);
  font-family:var(--mono);font-size:var(--fs-micro);color:var(--ink-faint);letter-spacing:.06em;}
