:root{
  --bg:#0e0f12; --bg-2:#15171c; --ink:#e9eaee; --muted:#9aa0ad; --line:#262a33;
  --accent:#ffc32d; --accent-2:#48aff0; --personal:#ffc32d; --merakoi:#ff5c5c; --starling:#48aff0;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#fbfbf9; --bg-2:#f1f1ec; --ink:#16181d; --muted:#5f6674; --line:#dcdcd4; color-scheme:light;
}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){ --bg:#fbfbf9; --bg-2:#f1f1ec; --ink:#16181d; --muted:#5f6674; --line:#dcdcd4; color-scheme:light; }
}
*{box-sizing:border-box}
html{font-size:17px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.55}
a{color:var(--accent-2)}
code,pre,.num,time,.k{font-family:var(--mono)}
.wrap,.top,.foot{max-width:1040px;margin:0 auto;padding:0 16px}
.top{display:flex;justify-content:space-between;align-items:center;height:64px}
.brand{color:var(--ink);text-decoration:none;font-weight:700}
nav{display:flex;gap:18px;align-items:center}
nav a{color:var(--muted);text-decoration:none}
nav a[aria-current="page"]{color:var(--ink);border-bottom:2px solid var(--accent)}
.theme{background:none;border:1px solid var(--line);color:var(--ink);border-radius:999px;width:32px;height:32px;cursor:pointer}
.hero{display:grid;grid-template-columns:288px 1fr;gap:32px;align-items:center;padding:32px 0}
.portrait{position:relative;width:288px;height:288px;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}
.portrait img{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}
.portrait img.on{opacity:1}
h1{font-size:2.2rem;margin:0 0 8px;letter-spacing:-.02em}
.tagline{font-size:1.15rem;color:var(--muted);margin:0}
.muted{color:var(--muted)}
.overview{border-top:1px solid var(--line);padding:32px 0}
.counters{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:20px 0}
.counter{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:14px 12px;text-align:center}
.counter .num{display:block;font-size:1.6rem;font-weight:600}
.counter .lbl{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.columns{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.column{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:12px;position:relative}
.column h3{margin:4px 0 8px;font-size:1rem}
.column h3 small{color:var(--muted);font-weight:400;margin-left:8px}
.constellation{width:100%;height:auto;display:block}
.constellation circle{cursor:pointer;transition:r .2s}
.constellation circle:hover{stroke:var(--ink);stroke-width:2}
.constellation circle:focus-visible{stroke:var(--ink);stroke-width:2;outline:none}
[data-column="personal"] circle{fill:var(--personal)}
[data-column="merakoi"] circle{fill:var(--merakoi)}
[data-column="starling"] circle{fill:var(--starling)}
.constellation circle{opacity:.9}
.tip{position:absolute;left:12px;right:12px;bottom:12px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:.9rem;pointer-events:none}
.tip b{font-family:var(--mono)}
.heat-wrap{margin-top:24px}
.heat{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,10px);gap:3px;overflow-x:auto;padding-bottom:6px}
.heat i{display:block;width:10px;height:10px;border-radius:2px;background:var(--line)}
.heat .l1{background:color-mix(in srgb,var(--accent) 30%,var(--line))}.heat .l2{background:color-mix(in srgb,var(--accent) 55%,var(--line))}.heat .l3{background:color-mix(in srgb,var(--accent) 80%,var(--line))}.heat .l4{background:var(--accent)}
.pulse{margin-top:16px;font-size:1.05rem}
.skills{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px}
.skills code{color:var(--accent)}
.recent{display:grid;grid-template-columns:1fr 1fr;gap:32px;border-top:1px solid var(--line);padding:24px 0}
.recent h2 a{color:var(--ink);text-decoration:none}
.list{list-style:none;padding:0;margin:0}
.list li{display:flex;gap:12px;padding:6px 0;border-bottom:1px dashed var(--line)}
.list time{color:var(--muted);white-space:nowrap}
.entry-card,.entry,.post{border-top:1px solid var(--line);padding:24px 0;position:relative}
.entry-card h2{margin:4px 0 8px}
.motif{float:right;image-rendering:pixelated;margin:0 0 8px 12px}
.workflow{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:12px;font-size:.92rem;margin-top:12px}
.workflow .k{color:var(--muted);margin-right:8px}
.workflow pre{overflow-x:auto;margin:8px 0 0}
.foot{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;align-items:center;color:var(--muted);font-size:.85rem;padding:32px 16px}
.made{display:inline-flex;align-items:center;gap:6px}
.flag{width:14px;height:14px;display:block}
.links{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-wrap:wrap;gap:12px 24px}
.links a{display:inline-flex;align-items:center;gap:8px}
.icon{width:18px;height:18px;display:block}
@media (max-width:820px){
  .hero{grid-template-columns:1fr;text-align:center}
  .portrait{margin:0 auto}
  .counters{grid-template-columns:repeat(3,1fr)}
  .columns,.recent,.skills{grid-template-columns:1fr}
}
@media (max-width:480px){ .counters{grid-template-columns:repeat(2,1fr)} html{font-size:16px} }
@media (prefers-reduced-motion: reduce){ .constellation circle{transition:none} }
