/* ============================================================
   Spatium Flow — shared interstellar design system
   ============================================================ */
:root{
  --void:#04060f; --space:#070b1a; --space-2:#0a1024; --deep:#0c1430;
  --blue:#1f4fa3; --blue-bright:#3a72d4; --blue-soft:#6f9be0;
  --orange:#d98a3f; --orange-2:#e6a45c; --amber:#e8b878; --ember:#c8702c;
  --green:#96e8ac;
  --star:#eaf2ff; --paper:#eef1f8; --mist:#aab6cf; --faint:#6f7d9c;
  --line:rgba(140,160,210,.16); --line-2:rgba(140,160,210,.10);
  --mono:'Space Grotesk',ui-monospace,'Cascadia Mono',Menlo,monospace;
  --sans:'Space Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--void);color:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{max-width:1080px;margin:0 auto;padding:0 32px;position:relative}
.narrow{max-width:680px;margin:0 auto;padding:0 32px;position:relative}
a{color:inherit}
::selection{background:var(--orange);color:var(--void)}

/* starfield behind everything */
#sky{position:fixed;inset:0;z-index:0;display:block;background:
  radial-gradient(120% 80% at 78% -10%, rgba(240,133,46,.10), transparent 55%),
  radial-gradient(90% 70% at 12% 108%, rgba(31,79,163,.18), transparent 60%),
  linear-gradient(180deg,#04060f 0%,#070b1a 40%,#05080f 100%)}
.page{position:relative;z-index:1}

/* top bar */
.bar{position:absolute;top:0;left:0;right:0;z-index:10}
.bar .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:28px}
.brand{display:flex;align-items:center;gap:11px;font-family:var(--mono);font-size:13px;letter-spacing:.18em;color:var(--paper);text-decoration:none;font-weight:500}
.brand .mark{width:26px;height:26px;flex:none}
.bar nav{display:flex;gap:26px;font-family:var(--mono);font-size:12.5px;color:var(--mist);letter-spacing:.02em}
.bar nav a{text-decoration:none;transition:color .18s}
.bar nav a:hover,.bar nav a.on{color:var(--orange-2)}
@media(max-width:680px){.bar nav{display:none}}

/* buttons */
.btn{font-family:var(--mono);font-size:13px;letter-spacing:.02em;font-weight:500;text-decoration:none;padding:14px 24px;border-radius:9px;transition:transform .16s,box-shadow .16s,background .16s,border-color .16s;display:inline-flex;align-items:center;gap:9px}
.btn-primary{background:linear-gradient(135deg,var(--orange),var(--ember));color:#1a0f04}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 40px -10px rgba(240,133,46,.6)}
.btn-ghost{border:1px solid var(--line);color:var(--paper);background:rgba(140,160,210,.04)}
.btn-ghost:hover{border-color:var(--blue-soft);color:#fff}
.btn .ar{transition:transform .16s}.btn:hover .ar{transform:translateX(3px)}
.cbtn{font-family:var(--mono);font-size:12.5px;text-decoration:none;border:1px solid var(--line);border-radius:9px;padding:13px 18px;transition:border-color .16s,color .16s,transform .16s;color:var(--mist);display:inline-flex;align-items:center;gap:7px}
.cbtn:hover{border-color:var(--blue-soft);color:#fff;transform:translateY(-2px)}
.cbtn.gold{background:linear-gradient(135deg,var(--orange),var(--ember));color:#1a0f04;border-color:transparent;font-weight:600}

/* sections */
section{padding:92px 0;position:relative}
.lab{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin-bottom:18px;display:flex;align-items:center;gap:12px}
.lab::before{content:"";width:26px;height:1px;background:var(--orange);opacity:.7}
h2{font-family:var(--serif);font-weight:300;font-size:clamp(27px,4vw,42px);line-height:1.1;letter-spacing:-.015em;max-width:18ch;margin-bottom:22px}
.body-lg{font-size:17px;color:var(--mist);max-width:60ch;line-height:1.7}
.body-lg strong{color:var(--paper);font-weight:500}
.body-lg em{color:var(--orange-2);font-style:italic}
.divider{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent)}

/* footer (shared) */
.foot{border-top:1px solid var(--line);padding:64px 0 44px;background:linear-gradient(180deg,transparent,rgba(4,6,15,.6))}
.foot h2{margin-bottom:26px}
.foot .contact{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:52px}
.foot .base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:18px;align-items:center;border-top:1px solid var(--line-2);padding-top:30px;font-family:var(--mono);font-size:12px;color:var(--faint)}
.foot .who{font-family:var(--serif);font-size:18px;color:var(--paper)}
.foot .who span{color:var(--orange-2)}

/* reveal */
.reveal{opacity:0;transform:translateY(16px)}
.reveal.in{opacity:1;transform:none;transition:opacity .7s ease,transform .7s ease}

/* ---------- ABOUT page ---------- */
.ab-hero{padding:140px 0 76px;position:relative}
.ab-hero .wrap{display:grid;grid-template-columns:1fr 260px;gap:48px;align-items:center}
.ab-hero .eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--orange);margin-bottom:20px}
.ab-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(32px,5vw,50px);line-height:1.05;letter-spacing:-.02em;margin-bottom:14px}
.ab-hero .role{font-family:var(--mono);font-size:14px;color:var(--orange-2);margin-bottom:22px}
.ab-hero .pos{font-size:16.5px;color:var(--mist);max-width:46ch;line-height:1.6;margin-bottom:30px}
.ab-hero .contact{display:flex;flex-wrap:wrap;gap:10px}
.photo{width:260px;height:300px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(160deg,#0d2036,#06101d);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.photo .ph{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--faint)}
.photo .ph .mono-ch{font-family:var(--serif);font-size:64px;color:var(--amber);line-height:1;text-shadow:none}
.photo .ph .hint{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:720px){.ab-hero .wrap{grid-template-columns:1fr;gap:34px}.photo{width:180px;height:210px;order:-1}.photo .ph .mono-ch{font-size:44px}}

.prose{font-size:16.5px;color:var(--mist);max-width:64ch;line-height:1.7}
.prose p{margin-bottom:16px}
.prose strong{color:var(--paper);font-weight:500}
.prose em{color:var(--orange-2);font-style:italic}

.astro-note{border:1px solid var(--line);border-radius:13px;background:rgba(140,160,210,.04);padding:28px 30px;display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;max-width:760px;margin-top:8px}
.astro-note .glyph{width:74px;height:74px;flex:none}
.astro-note p{font-size:15px;color:var(--mist);line-height:1.65}
.astro-note p strong{color:var(--paper);font-weight:500}
@media(max-width:560px){.astro-note{grid-template-columns:1fr;text-align:center;justify-items:center}}

.job{display:grid;grid-template-columns:170px 1fr;gap:24px;padding:26px 0;border-top:1px solid var(--line)}
.job:first-of-type{border-top:none}
.job .when{font-family:var(--mono);font-size:12.5px;color:var(--faint);line-height:1.5}
.job .when .co{color:var(--blue-soft);display:block;margin-top:4px}
.job h3{font-size:17px;font-weight:600;margin-bottom:4px;letter-spacing:-.01em;color:var(--paper)}
.job .place{font-family:var(--mono);font-size:12px;color:var(--faint);margin-bottom:12px}
.job ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.job li{font-size:14.5px;color:var(--mist);line-height:1.55;padding-left:18px;position:relative}
.job li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--orange);opacity:.7}
@media(max-width:600px){.job{grid-template-columns:1fr;gap:10px}}

.skrow{display:grid;grid-template-columns:200px 1fr;gap:18px;padding:16px 0;border-top:1px solid var(--line-2)}
.skrow:first-of-type{border-top:none}
.skrow .k{font-family:var(--mono);font-size:12.5px;color:var(--orange-2);padding-top:4px}
.skrow .v{display:flex;flex-wrap:wrap;gap:8px}
.skrow .v span{font-family:var(--mono);font-size:12px;color:var(--mist);border:1px solid var(--line);border-radius:7px;padding:6px 12px;background:rgba(140,160,210,.04)}
@media(max-width:600px){.skrow{grid-template-columns:1fr;gap:8px}}

.proj{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:22px 24px;border:1px solid var(--line);border-radius:12px;background:rgba(140,160,210,.03);margin-bottom:12px}
.proj h3{font-size:17px;font-weight:600;margin-bottom:5px;letter-spacing:-.01em;color:var(--paper)}
.proj .stack{font-family:var(--mono);font-size:11.5px;color:var(--faint);margin-bottom:8px}
.proj p{font-size:14px;color:var(--mist);line-height:1.55;max-width:62ch}
.proj .go{font-family:var(--mono);font-size:12px;color:var(--orange-2);text-decoration:none;white-space:nowrap;border:1px solid var(--line);border-radius:8px;padding:9px 14px;transition:border-color .15s}
.proj .go:hover{border-color:var(--blue-soft)}
@media(max-width:600px){.proj{grid-template-columns:1fr}}

.edu-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.edu-card{border:1px solid var(--line);border-radius:12px;padding:22px;background:rgba(140,160,210,.03)}
.edu-card .t{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--orange-2);margin-bottom:12px}
.edu-card .item{padding:7px 0;border-top:1px solid var(--line-2);font-size:14px;color:var(--paper)}
.edu-card .item:first-of-type{border-top:none}
.edu-card .item span{font-family:var(--mono);font-size:11.5px;color:var(--faint);display:block;margin-top:2px}
@media(max-width:600px){.edu-grid{grid-template-columns:1fr}}

/* ---------- ARTICLES index ---------- */
.ai-head{padding:140px 0 70px;position:relative}
.ai-head .eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--orange);margin-bottom:18px}
.ai-head h1{font-family:var(--serif);font-weight:300;font-size:clamp(30px,5vw,48px);line-height:1.06;letter-spacing:-.02em;margin-bottom:16px}
.ai-head .sub{font-size:17px;color:var(--mist);max-width:54ch;line-height:1.6}
.post{display:block;text-decoration:none;border:1px solid var(--line);border-radius:14px;background:rgba(140,160,210,.04);padding:30px;margin-bottom:16px;transition:transform .16s ease,box-shadow .16s ease,border-color .16s}
.post:hover{transform:translateY(-2px);box-shadow:0 16px 40px -22px rgba(0,0,0,.6);border-color:var(--blue-soft)}
.post .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--orange-2);margin-bottom:13px;display:flex;gap:12px;align-items:center}
.post .tag .dot{width:5px;height:5px;border-radius:50%;background:var(--orange)}
.post h2{font-family:var(--serif);font-weight:400;font-size:25px;letter-spacing:-.01em;margin-bottom:9px;color:#fff;max-width:none}
.post p{font-size:15px;color:var(--mist);line-height:1.6;max-width:64ch;margin-bottom:16px}
.post .meta{font-family:var(--mono);font-size:12px;color:var(--faint);display:flex;align-items:center;gap:9px}
.post .read{color:var(--orange-2);margin-left:auto;display:inline-flex;align-items:center;gap:6px}
.post .read .ar{transition:transform .15s}.post:hover .read .ar{transform:translateX(3px)}
.soon{margin-top:34px;border-top:1px solid var(--line);padding-top:30px}
.soon .lab{margin-bottom:18px}
.soon ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.soon li{display:flex;align-items:baseline;gap:13px;font-size:15px;color:var(--mist)}
.soon li .pill{font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--blue-soft);border:1px solid var(--line);border-radius:20px;padding:2px 9px;flex:none}
.soon li b{color:var(--paper);font-weight:600}

/* ---------- ARTICLE page ---------- */
.head{padding:140px 0 60px;position:relative}
.head .kicker{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);margin-bottom:20px}
.head .kicker a{color:var(--mist);text-decoration:none}.head .kicker a:hover{color:var(--orange-2)}
.head h1{font-family:var(--serif);font-weight:300;font-size:clamp(30px,5vw,46px);line-height:1.08;letter-spacing:-.02em;margin-bottom:18px}
.head .dek{font-size:18px;color:var(--mist);line-height:1.55;margin-bottom:24px}
.head .byline{font-family:var(--mono);font-size:12.5px;color:var(--faint)}
.head .byline b{color:var(--orange-2);font-weight:400}
article{padding:48px 0 30px}
article .narrow > *{margin-bottom:22px}
article p{font-size:17.5px;color:var(--paper);line-height:1.72}
article h2{font-family:var(--serif);font-weight:300;font-size:27px;letter-spacing:-.01em;margin-top:18px;color:#fff;max-width:none}
article strong{font-weight:600;color:#fff}
article em{font-style:italic;color:var(--orange-2)}
figure{margin:34px 0}
figure img{width:100%;border:1px solid var(--line);border-radius:12px;display:block;box-shadow:0 20px 50px -28px rgba(0,0,0,.7)}
figcaption{font-family:var(--mono);font-size:12px;color:var(--faint);margin-top:10px;text-align:center}
blockquote{border-left:3px solid var(--orange);padding:6px 0 6px 22px;margin:30px 0;font-family:var(--serif);font-size:23px;line-height:1.4;color:var(--amber);font-style:italic}
.sign{border-top:1px solid var(--line);padding-top:24px;margin-top:40px;font-family:var(--mono);font-size:13px;color:var(--mist)}
.sign b{color:var(--paper);font-weight:600}
.back{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12.5px;color:var(--orange-2);text-decoration:none;margin-top:8px}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto}.reveal{opacity:1;transform:none}}
