@font-face{font-family:"Spectral";src:url("../fonts/spectral-latin-300-normal.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap;}
@font-face{font-family:"Spectral";src:url("../fonts/spectral-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Plex Sans";src:url("../fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Plex Sans";src:url("../fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:"Plex Sans";src:url("../fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:"Plex Mono";src:url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Plex Mono";src:url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;}

/* ---------- tokens: light is the complete set ---------- */
:root{
  --paper:#F5F6F7;
  --ink:#0E2A47;
  --stone:#566B80;
  --hairline:#D3D9E0;
  --wash:#EAEEF2;
  --brass:#C9A14A;
  --band-bg:#0E2A47;
  --band-fg:#EDF1F5;
  --band-rule:#2A4463;
  --band-label:#C9A14A;
  --focus:#0E2A47;

  --sans:"Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --serif:"Spectral",Georgia,"Times New Roman",serif;
  --mono:"Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --rail:10.5rem;
  --gap:2.75rem;
  --container:60rem;
  --pad:1.75rem;
  --sec-y:3.25rem;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0B1420;
    --ink:#E6EBF0;
    --stone:#94A4B5;
    --hairline:#1F2D3C;
    --wash:#121C27;
    --brass:#D4AF61;
    --band-bg:#071019;
    --band-fg:#E6EBF0;
    --band-rule:#1F2D3C;
    --band-label:#D4AF61;
    --focus:#D4AF61;
  }
}
:root[data-theme="dark"]{
  --paper:#0B1420;
  --ink:#E6EBF0;
  --stone:#94A4B5;
  --hairline:#1F2D3C;
  --wash:#121C27;
  --brass:#D4AF61;
  --band-bg:#071019;
  --band-fg:#E6EBF0;
  --band-rule:#1F2D3C;
  --band-label:#D4AF61;
  --focus:#D4AF61;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg{max-width:100%;height:auto;}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;}

.container{max-width:var(--container);margin:0 auto;padding-inline:var(--pad);}

.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:.6rem 1rem;z-index:100;}
.skip:focus{left:.5rem;top:.5rem;}

/* ---------- header ---------- */
.site-header{border-bottom:1px solid var(--hairline);position:relative;z-index:5;background:var(--paper);}
.site-header .container{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:1rem .75rem;padding-block:1rem;
}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:inherit;}
.brand svg,.brand img{width:34px;height:34px;flex:0 0 34px;display:block;}
.brand-name{font-family:var(--sans);font-weight:600;font-size:.9rem;letter-spacing:.055em;text-transform:uppercase;line-height:1.15;}
.brand-sub{display:block;font-family:var(--mono);font-weight:400;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);margin-top:.18rem;}
.site-nav{display:flex;flex-wrap:wrap;gap:.25rem 1.4rem;}
.site-nav a{
  font-size:.83rem;letter-spacing:.04em;text-transform:uppercase;font-weight:500;
  color:var(--stone);text-decoration:none;padding:.25rem 0;border-bottom:1px solid transparent;
  transition:color .12s ease,border-color .12s ease;
}
.site-nav a:hover{color:var(--ink);border-bottom-color:var(--brass);}
.site-nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--brass);}

/* ---------- hero ---------- */
.hero{border-bottom:1px solid var(--hairline);position:relative;overflow:hidden;}
.hero .container{padding-block:clamp(3rem,8vw,5.25rem) clamp(2.25rem,5vw,3rem);position:relative;}
.hero h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(2rem,5.2vw,3.15rem);line-height:1.1;letter-spacing:-.018em;
  margin:0 0 1.5rem;max-width:19ch;text-wrap:balance;
}
.hero .lead p{font-size:1.06rem;max-width:60ch;margin:0 0 1rem;color:var(--ink);}
.hero .lead p:last-child{margin-bottom:0;}
.hero .lead p + p{color:var(--stone);}
.contour{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;
  -webkit-mask-image:linear-gradient(100deg,transparent 0%,transparent 34%,#000 68%);
  mask-image:linear-gradient(100deg,transparent 0%,transparent 34%,#000 68%);}
.contour path{fill:none;stroke:var(--ink);stroke-width:.75;opacity:.16;}
.hero .container > *{position:relative;z-index:1;}

/* ---------- sections ---------- */
.section{border-bottom:1px solid var(--hairline);}
.section > .container{
  display:grid;grid-template-columns:var(--rail) 1fr;gap:var(--gap);
  align-items:start;padding-block:var(--sec-y);
}
.rail{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--stone);line-height:1.5;padding-top:.45rem;
}
.rail .num{display:block;color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums;}
.sec-body{min-width:0;}
.sec-body h2{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,2.6vw,1.75rem);
  line-height:1.25;letter-spacing:-.012em;margin:0 0 1rem;text-wrap:balance;max-width:26ch;
}
.sec-body p{margin:0 0 1rem;max-width:64ch;}
.sec-body p:last-child{margin-bottom:0;}
.sec-body ul{margin:0;padding-left:1.1rem;max-width:64ch;}
.sec-body li{margin-bottom:.55rem;}
.sec-body li:last-child{margin-bottom:0;}
.sec-body li::marker{color:var(--brass);}

.more{
  display:inline-block;margin-top:.6rem;font-family:var(--mono);font-size:.72rem;
  letter-spacing:.11em;text-transform:uppercase;color:var(--ink);text-decoration:none;
  border-bottom:1px solid var(--brass);padding-bottom:.15rem;
  transition:opacity .12s ease;
}
.more:hover{opacity:.62;}
.more::after{content:" →";}

a.inline{color:var(--ink);text-decoration:underline;text-decoration-color:var(--brass);text-decoration-thickness:1px;text-underline-offset:.22em;}
a.inline:hover{text-decoration-thickness:2px;}

/* ---------- inverted band ---------- */
.section.band{background:var(--band-bg);border-bottom-color:var(--band-rule);}
.section.band .rail{color:var(--band-label);}
.section.band .rail .num{color:var(--band-fg);}
.section.band .sec-body{color:var(--band-fg);}
.section.band h2{color:var(--band-fg);}
.section.band p{color:var(--band-fg);}
.section.band li{color:var(--band-fg);}
.section.band li::marker{color:var(--band-label);}
.section.band a.inline{color:var(--band-fg);text-decoration-color:var(--band-label);}

/* ---------- portfolio ---------- */
.note{border-bottom:1px solid var(--hairline);}
.note > .container{display:grid;grid-template-columns:var(--rail) 1fr;gap:var(--gap);padding-block:2rem;}
.note p{margin:0 0 .85rem;max-width:64ch;color:var(--stone);font-size:.92rem;}
.note p:last-child{margin-bottom:0;}

.holding{border-bottom:1px solid var(--hairline);}
.holding > .container{
  display:grid;grid-template-columns:var(--rail) 1fr;gap:var(--gap);
  align-items:start;padding-block:var(--sec-y);
}
.holding h2{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,2.6vw,1.75rem);
  line-height:1.2;letter-spacing:-.012em;margin:0 0 .9rem;
}
.facts{
  display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;margin:0 0 1.1rem;padding:0;
  font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--stone);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
  padding-block:.6rem;list-style:none;
}
.facts li{margin:0;}
.facts .k{color:var(--stone);}
.facts .v{color:var(--ink);}
.holding p{margin:0 0 1rem;max-width:64ch;}
.holding .asat{font-family:var(--mono);font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;color:var(--stone);margin:0;}
.holding-foot{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:baseline;margin-top:.4rem;}

/* ---------- contact ---------- */
.email-link{
  display:inline-block;margin-top:.4rem;font-family:var(--mono);font-size:.95rem;
  letter-spacing:.02em;color:var(--ink);text-decoration:none;
  border-bottom:1px solid var(--brass);padding-bottom:.2rem;
}
.email-link:hover{opacity:.65;}

/* ---------- legal ---------- */
.legal-note{background:var(--wash);border-left:2px solid var(--brass);padding:1rem 1.15rem;margin:0 0 1.25rem;font-size:.88rem;color:var(--stone);}

/* ---------- 404 ---------- */
.notfound > .container{padding-block:clamp(4rem,12vw,7rem);}
.notfound h1{font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,4vw,2.5rem);margin:0 0 1rem;letter-spacing:-.015em;}
.notfound p{max-width:52ch;color:var(--stone);margin:0 0 1.5rem;}

/* ---------- footer ---------- */
.site-footer{background:var(--band-bg);color:var(--band-fg);}
.site-footer .container{padding-block:3rem 3.5rem;display:grid;grid-template-columns:var(--rail) 1fr;gap:var(--gap);align-items:start;}
.site-footer .lockup{display:flex;align-items:center;gap:.75rem;}
.site-footer .lockup svg,.site-footer .lockup img{width:44px;height:44px;flex:0 0 44px;}
.site-footer .lockup .brand-name{color:var(--band-fg);}
.site-footer .lockup .brand-sub{color:var(--band-label);}
.site-footer p{margin:0 0 1rem;max-width:62ch;font-size:.86rem;color:var(--band-fg);opacity:.85;}
.site-footer a{color:var(--band-fg);text-decoration:underline;text-decoration-color:var(--band-label);text-underline-offset:.22em;}
.site-footer .meta{font-family:var(--mono);font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;opacity:.6;margin:1.5rem 0 0;}
.site-footer :focus-visible{outline-color:var(--band-label);}



/* ---------- motion ---------- */
.reveal{opacity:0;transform:translateY(8px);}
.reveal.in{opacity:1;transform:none;transition:opacity .42s ease,transform .42s ease;}
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal.in{opacity:1;transform:none;transition:none;}
  *{animation-duration:.001ms !important;transition-duration:.001ms !important;}
}

/* ---------- responsive ---------- */
@media (max-width:820px){
  :root{--gap:1.1rem;--sec-y:2.5rem;}
  .contour{display:none;}
  .section > .container,.holding > .container,.note > .container,.site-footer .container{grid-template-columns:1fr;}
  .rail{padding-top:0;}
}
@media (max-width:560px){
  :root{--pad:1.25rem;}
  .site-header .container{padding-block:.85rem;}
  .site-nav{width:100%;gap:.25rem 1.1rem;}
  .facts{font-size:.68rem;gap:.3rem .8rem;}
}
@media print{
  .site-nav,.contour{display:none;}
  body{background:#fff;color:#000;}
  .section,.holding{break-inside:avoid;}
}

/* specificity override: .facts is a ul inside .sec-body */
.sec-body ul.facts{padding-left:0;max-width:64ch;}
