@font-face{
  font-family:"Stack Sans Headline";
  font-style:normal;
  font-weight:200 700;
  font-display:swap;
  src:url("./assets/fonts/StackSansHeadline-Variable.ttf") format("truetype");
}
@font-face{
  font-family:"IBM Plex Mono";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("./assets/fonts/IBMPlexMono-Regular.ttf") format("truetype");
}

:root{
  /* Frankham-aligned tokens (mirrors https://www.frankham.com/ ) */
  --color-primary:#005FA9; /* site primary */
  --color-secondary:#0B2A4A;
  --color-accent:#CE202A; /* site error/accent red */

  --color-background:#F3F7FB; /* site body bg */
  --color-surface:#FFFFFF;
  --color-surface-2:#F8FBFF;

  --color-text:#141419; /* site black-two */
  --color-muted-text:#475569;
  --color-border:#DCE6F2;

  --color-success:#28A745;
  --color-warning:#B45309;
  --color-danger:var(--color-accent);

  --shadow-sm:0 1px 2px rgba(20,20,25,0.06);
  --shadow-md:0 8px 24px rgba(20,20,25,0.10);
  --shadow-lg:0 18px 48px rgba(20,20,25,0.16);
}

html,body{height:100%;}
body{
  font-family: "Stack Sans Headline", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  color:var(--color-text);
  background:var(--color-background);
}

.fx-card{box-shadow:var(--shadow-sm);}
.fx-card:hover{box-shadow:var(--shadow-md);}
.fx-focus:focus{outline:none; box-shadow:0 0 0 3px rgba(0,95,169,0.18);}

.mono{font-family:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;}

.chip{
  border:1px solid var(--color-border);
  background:rgba(255,255,255,0.85);
}
.chip--success{border-color:rgba(40,167,69,0.25); background:rgba(40,167,69,0.10); color:#14532D;}
.chip--warning{border-color:rgba(180,83,9,0.25); background:rgba(180,83,9,0.10); color:#7C2D12;}
.chip--danger{border-color:rgba(206,32,42,0.25); background:rgba(206,32,42,0.10); color:#7F1D1D;}
.chip--muted{background:rgba(148,163,184,0.14); border-color:rgba(148,163,184,0.40); color:#334155;}

.btn-primary{
  background:var(--color-primary);
  color:white;
}
.btn-primary:hover{filter:saturate(1.10); opacity:.98;}
.btn-secondary{
  background:white;
  border:1px solid var(--color-border);
  color:var(--color-text);
}
.btn-secondary:hover{background:var(--color-surface-2);}

.nav-link[aria-current="page"]{
  background:rgba(0,95,169,0.10);
  border-color:rgba(0,95,169,0.22);
  color:var(--color-secondary);
}

.kbd{
  border:1px solid var(--color-border);
  background:white;
  box-shadow:0 1px 0 rgba(15,23,42,0.06);
}

.v2-shell{
  min-height:100vh;
  background:
    radial-gradient(circle at 12% 8%, rgba(0,95,169,0.10), transparent 34rem),
    linear-gradient(180deg, #fff 0%, var(--color-background) 100%);
}
.v2-wrap{max-width:1180px; margin:0 auto;}
.v2-topbar{
  background:rgba(255,255,255,0.84);
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--color-border);
}
.v2-nav{
  color:#334155;
  border:1px solid transparent;
}
.v2-nav:hover,
.v2-nav[aria-current="page"]{
  color:var(--color-secondary);
  background:rgba(0,95,169,0.08);
  border-color:rgba(0,95,169,0.14);
}
.v2-card{
  background:rgba(255,255,255,0.92);
  border:1px solid var(--color-border);
  box-shadow:var(--shadow-sm);
}
.v2-card:hover{box-shadow:0 14px 34px rgba(20,20,25,0.08);}
.v2-muted-panel{
  background:linear-gradient(180deg, rgba(248,251,255,0.92), rgba(255,255,255,0.92));
  border:1px solid var(--color-border);
}
.v2-soft-input{
  background:rgba(248,251,255,0.9);
  border:1px solid var(--color-border);
}
.v2-section-row{
  background:white;
  border:1px solid var(--color-border);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.v2-section-row:hover{
  transform:translateY(-1px);
  border-color:rgba(0,95,169,0.24);
  box-shadow:var(--shadow-md);
}
.v2-comment-line{border-left:2px solid rgba(0,95,169,0.22);}
