/* ────────────────────────────────────────────────────────────────
   siddhant bayas · portfolio v3
   minimal · modern · bold · cold · direct
   ──────────────────────────────────────────────────────────────── */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}

/* ─── DESIGN TOKENS ─── */
:root{
  /* surfaces — off-white / off-black monochrome */
  --bg:#fafafa;--fg:#0a0a0a;--card:#fafafa;--card-fg:#0a0a0a;
  --border:#e5e5e5;--border-hover:#0a0a0a;
  --muted:#737373;--muted-fg:#404040;
  --accent:#0a0a0a;--accent-bg:#f2f2f2;
  --secondary:#f2f2f2;--secondary-fg:#262626;
  --primary:#0a0a0a;--primary-fg:#fafafa;
  --ring:#0a0a0a;--ring-soft:color-mix(in srgb,#0a0a0a 12%,transparent);

  /* shadows — minimal, only when needed */
  --shadow:0 1px 2px 0 rgb(0 0 0/.04);
  --shadow-md:0 4px 12px -2px rgb(0 0 0/.08);
  --shadow-lg:0 16px 40px -8px rgb(0 0 0/.12);

  /* radius — sharp, confident */
  --radius:10px;--radius-sm:6px;--radius-xs:4px;--radius-full:999px;

  /* typography */
  --sans:'Geist','Inter',system-ui,-apple-system,sans-serif;
  --mono:'Geist Mono',ui-monospace,'JetBrains Mono',monospace;

  /* motion — minimal. opacity-only, no transforms */
  --ease:cubic-bezier(.4,0,.2,1);
  --dur-1:.12s;--dur-2:.2s;--dur-3:.32s;

  /* layout */
  --maxw:52.25rem;--nav-h:3.75rem;
}

html.dark{
  --bg:#08080a;--fg:#f2f2f2;--card:#08080a;--card-fg:#f2f2f2;
  --border:#1a1a1a;--border-hover:#f2f2f2;
  --muted:#525252;--muted-fg:#a3a3a3;
  --accent:#f2f2f2;--accent-bg:#0d0d10;
  --secondary:#0d0d10;--secondary-fg:#d4d4d4;
  --primary:#f2f2f2;--primary-fg:#08080a;
  --ring:#f2f2f2;--ring-soft:color-mix(in srgb,#f2f2f2 14%,transparent);

  --shadow:0 1px 2px 0 rgb(0 0 0/.6);
  --shadow-md:0 4px 12px -2px rgb(0 0 0/.6);
  --shadow-lg:0 16px 40px -8px rgb(0 0 0/.7);
}

html{color-scheme:light;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.dark{color-scheme:dark}

/* ─── THEME TOGGLE — brief cross-fade of colors, transforms untouched ─── */
html.theme-anim,html.theme-anim *,
html.theme-anim *::before,html.theme-anim *::after{
  transition:
    background-color var(--dur-3) var(--ease),
    background var(--dur-3) var(--ease),
    color var(--dur-3) var(--ease),
    border-color var(--dur-3) var(--ease),
    fill var(--dur-3) var(--ease),
    stroke var(--dur-3) var(--ease),
    box-shadow var(--dur-3) var(--ease) !important;
}

body{
  background:var(--bg);color:var(--fg);
  font-family:var(--sans);font-size:.9375rem;line-height:1.55;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  min-height:calc(100vh + 12rem);font-feature-settings:"cv11","ss01","ss03";
  letter-spacing:-.01em;
  overflow-x:hidden;
  display:flex;flex-direction:column;
}

a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
img,svg{display:block;max-width:100%}
::selection{background:var(--fg);color:var(--bg)}

/* ─── SCROLL PROGRESS BAR — single thin line, monochrome ─── */
.scroll-progress{
  position:fixed;top:0;left:0;right:0;height:1px;z-index:100;
  background:var(--fg);
  transform:scaleX(0);transform-origin:left;
  transition:transform .1s linear;
}

/* ─── NAVIGATION ─── */
header{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb,var(--bg) 92%,transparent);
  backdrop-filter:blur(8px) saturate(160%);
  -webkit-backdrop-filter:blur(8px) saturate(160%);
  border-bottom:1px solid var(--border);
}
.nav-inner{
  margin:0 auto;max-width:var(--maxw);padding:.75rem 1.5rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.nav-links{display:flex;gap:.25rem;list-style:none}
.nav-links a{
  position:relative;font-size:.8125rem;font-weight:500;color:var(--muted-fg);
  padding:.4rem .7rem;border-radius:var(--radius-xs);
  transition:color var(--dur-1) var(--ease);
  letter-spacing:-.005em;
}
.nav-links a:hover{color:var(--fg)}
.nav-links a.active{color:var(--fg)}
.nav-links a.active::after{
  content:'';position:absolute;left:.7rem;right:.7rem;bottom:.15rem;
  height:1px;background:var(--fg);
}

.nav-actions{display:flex;gap:.4rem;align-items:center}
.icon-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:2rem;height:2rem;border-radius:var(--radius-xs);
  background:transparent;border:1px solid var(--border);
  color:var(--muted-fg);cursor:pointer;
  transition:all var(--dur-1) var(--ease);
}
.icon-btn:hover{background:var(--accent-bg);color:var(--fg);border-color:var(--border-hover)}
.icon-btn svg{width:1rem;height:1rem}

/* command palette trigger */
.cmdk-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  height:2rem;padding:0 .65rem;border-radius:var(--radius-xs);
  background:var(--card);border:1px solid var(--border);
  color:var(--muted);font-size:.75rem;font-family:var(--mono);
  transition:all var(--dur-1) var(--ease);letter-spacing:.02em;
}
.cmdk-btn:hover{border-color:var(--border-hover);color:var(--fg)}
.cmdk-btn kbd{
  font-family:var(--mono);font-size:.65rem;padding:.1rem .3rem;
  background:var(--accent-bg);border:1px solid var(--border);
  border-radius:3px;color:var(--muted-fg);
}

/* ─── LAYOUT ─── */
.page{margin:0 auto;max-width:var(--maxw);padding:0 1.5rem;display:flex;flex-direction:column;position:relative;z-index:2;flex:1;width:100%}
main{flex:1}
article{margin-top:4rem;display:flex;flex-direction:column;gap:6rem;padding-bottom:6rem}

/* ─── HERO ─── */
.hero{
  display:flex;flex-direction:row-reverse;align-items:center;justify-content:space-between;
  gap:2.5rem;padding-top:1rem;
}
.hero-logo{
  width:180px;height:180px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  color:var(--fg);
}
.hero-logo svg{width:100%;height:100%}
@media(max-width:520px){.hero-logo{display:none}}

.hero-text{display:flex;flex-direction:column;gap:1.25rem;max-width:42rem}
.hero-text h1{
  font-size:2.75rem;font-weight:700;line-height:1;
  letter-spacing:-.045em;text-wrap:balance;
  color:var(--fg);
}
@media(min-width:640px){.hero-text h1{font-size:4rem}}
@media(min-width:900px){.hero-text h1{font-size:4.5rem}}

.hero-text .bio{
  font-size:1.0625rem;color:var(--muted-fg);
  max-width:34rem;text-wrap:balance;line-height:1.5;
  letter-spacing:-.015em;
}

.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.5rem}

/* ─── PAGE TITLES — match the index hero h1 sizing ─── */
.page-title{
  font-size:2.75rem;font-weight:700;line-height:1;
  letter-spacing:-.045em;text-wrap:balance;
  color:var(--fg);
}
@media(min-width:640px){.page-title{font-size:4rem}}
@media(min-width:900px){.page-title{font-size:4.5rem}}
.page-lead{
  font-size:1.0625rem;color:var(--muted-fg);
  max-width:34rem;text-wrap:balance;line-height:1.5;
  letter-spacing:-.015em;margin:1rem 0 2.5rem;
}

/* ─── BUTTONS — flat, bold, no shadows ─── */
.btn{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.55rem 1rem;border-radius:var(--radius-xs);
  font-size:.8125rem;font-weight:600;letter-spacing:-.005em;
  border:1px solid var(--border);background:var(--card);color:var(--fg);
  cursor:pointer;text-decoration:none;
  transition:all var(--dur-1) var(--ease);
}
.btn:hover{border-color:var(--border-hover);background:var(--accent-bg)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.btn-primary:hover{background:var(--accent-bg);color:var(--fg);border-color:var(--fg)}
.btn svg{width:.95rem;height:.95rem}

/* ─── SOCIAL LINKS — minimal squares ─── */
.social-links{display:flex;gap:.4rem}
.social-links a{
  display:flex;align-items:center;justify-content:center;
  width:2.25rem;height:2.25rem;border-radius:var(--radius-xs);
  border:1px solid var(--border);color:var(--muted-fg);background:var(--card);
  transition:all var(--dur-1) var(--ease);
}
.social-links a:hover{color:var(--fg);border-color:var(--border-hover);background:var(--accent-bg)}
.social-links svg{width:1rem;height:1rem}

/* ─── TABS ─── */
.tabs{display:flex;flex-direction:column;gap:.85rem}
.tab-list{
  display:grid;grid-template-columns:1fr 1fr;
  background:var(--accent-bg);border-radius:var(--radius-xs);padding:3px;gap:3px;
  border:1px solid var(--border);
}
.tab-btn{
  padding:.45rem .75rem;border-radius:3px;font-size:.8125rem;font-weight:500;
  border:none;background:transparent;color:var(--muted-fg);cursor:pointer;
  transition:all var(--dur-1) var(--ease);letter-spacing:-.005em;
}
.tab-btn:hover{color:var(--fg)}
.tab-btn[aria-selected="true"]{
  background:var(--card);color:var(--fg);
  box-shadow:var(--shadow);
}
.tab-panel[hidden]{display:none}

/* ─── TIMELINE ─── */
.timeline-card{
  border-radius:var(--radius);border:1px solid var(--border);
  background:var(--card);
}
.timeline-list{list-style:none}
.timeline-item{
  position:relative;padding:1.5rem 1.5rem;
}
.timeline-item+.timeline-item{border-top:1px solid var(--border)}
.timeline-org{
  font-size:1rem;font-weight:600;color:var(--fg);
  letter-spacing:-.02em;margin-bottom:.6rem;
}
.timeline-roles{display:flex;flex-direction:column;gap:.5rem}
.timeline-title{
  font-size:.95rem;font-weight:600;color:var(--fg);letter-spacing:-.02em;
}
.timeline-date{
  font-size:.7rem;color:var(--muted);white-space:nowrap;
  font-family:var(--mono);font-variant-numeric:tabular-nums;
  letter-spacing:.02em;margin-top:.2rem;
}
.timeline-bullets{
  list-style:none;margin-top:.65rem;display:flex;flex-direction:column;gap:.35rem;
}
.timeline-bullets li{
  font-size:.8125rem;color:var(--fg);line-height:1.55;padding-left:1rem;
  position:relative;
}
.timeline-bullets li::before{
  content:'';position:absolute;left:0;top:.6rem;
  width:4px;height:1px;background:var(--muted);
}
.tag-row{margin-top:.85rem;display:flex;flex-wrap:wrap;gap:.3rem}
.tag{
  font-size:.65rem;font-weight:600;padding:.18rem .5rem;border-radius:3px;
  background:var(--accent-bg);color:var(--muted-fg);border:1px solid var(--border);
  text-decoration:none;display:inline-flex;align-items:center;gap:.3rem;
  transition:all var(--dur-1) var(--ease);
  font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;
}
.tag:hover{border-color:var(--border-hover);color:var(--fg)}

/* ─── SECTION ─── */
.section-header{
  display:flex;align-items:baseline;justify-content:space-between;
  margin-bottom:2rem;gap:1rem;flex-wrap:wrap;
  padding-bottom:1rem;border-bottom:1px solid var(--border);
}
.section-title{
  font-size:1.5rem;font-weight:700;letter-spacing:-.035em;
  color:var(--fg);
}
@media(min-width:640px){.section-title{font-size:1.75rem}}
.section-eyebrow{
  font-family:var(--mono);font-size:.7rem;color:var(--muted);
  text-transform:uppercase;letter-spacing:.08em;font-weight:500;
}

/* ─── PROJECTS GRID ─── */
.projects-grid{display:grid;grid-template-columns:1fr;gap:.75rem}
@media(min-width:540px){.projects-grid{grid-template-columns:1fr 1fr}}
.project-card{
  border-radius:var(--radius);border:1px solid var(--border);background:var(--card);
  display:flex;flex-direction:column;overflow:hidden;
  text-decoration:none;color:inherit;
  transition:all var(--dur-1) var(--ease);position:relative;
}
.project-card:hover{border-color:var(--border-hover);background:var(--accent-bg)}
.project-body{padding:1.25rem;display:flex;flex-direction:column;gap:.5rem}
.project-name{
  font-size:.95rem;font-weight:600;line-height:1.2;letter-spacing:-.02em;
  display:flex;align-items:center;gap:.5rem;color:var(--fg);
}
.project-name .lang-dot{width:.6rem;height:.6rem;border-radius:50%;flex-shrink:0}
.project-desc{font-size:.8125rem;color:var(--muted);line-height:1.5}
.project-footer{padding:0 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}
.project-meta{display:flex;gap:.85rem;font-size:.7rem;color:var(--muted-fg);font-family:var(--mono);align-items:center;flex-wrap:wrap}
.project-meta .meta-item{display:flex;align-items:center;gap:.3rem}
.project-meta svg{width:.75rem;height:.75rem}
.chip-row{display:flex;flex-wrap:wrap;gap:.25rem}
.chip{
  font-size:.65rem;font-weight:600;padding:.15rem .45rem;border-radius:3px;
  background:var(--accent-bg);color:var(--muted-fg);border:1px solid transparent;
  font-family:var(--mono);letter-spacing:.02em;
}
.pr-state{
  font-size:.6rem;font-weight:600;padding:.1rem .4rem;border-radius:3px;
  font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;
  flex-shrink:0;line-height:1.4;
}
.pr-state.merged{background:color-mix(in srgb,#8250df 14%,transparent);color:#a371f7;border:1px solid color-mix(in srgb,#a371f7 40%,transparent)}
html.dark .pr-state.merged{color:#bc8cff}
.pr-state.open{background:color-mix(in srgb,#1a7f37 14%,transparent);color:#2ea043;border:1px solid color-mix(in srgb,#2ea043 40%,transparent)}
.pr-state.closed{background:transparent;color:var(--muted);border:1px solid var(--border)}

/* project filter chips */
.filter-bar{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.75rem;align-items:center}
.filter-bar .filter-label{
  font-family:var(--mono);font-size:.65rem;color:var(--muted);
  text-transform:uppercase;letter-spacing:.1em;margin-right:.25rem;
}
.filter-pill{
  font-size:.75rem;font-weight:500;padding:.3rem .65rem;border-radius:var(--radius-xs);
  background:var(--card);color:var(--muted-fg);border:1px solid var(--border);
  cursor:pointer;transition:all var(--dur-1) var(--ease);letter-spacing:-.005em;
  display:inline-flex;align-items:center;gap:.35rem;font-family:var(--mono);
}
.filter-pill:hover{border-color:var(--border-hover);color:var(--fg)}
.filter-pill.active{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.filter-pill .lang-dot{width:.55rem;height:.55rem;border-radius:50%}

/* sort select */
.sort-select{
  font-family:var(--mono);font-size:.75rem;font-weight:500;padding:.3rem .65rem;
  border-radius:var(--radius-xs);background:var(--card);border:1px solid var(--border);
  color:var(--fg);cursor:pointer;outline:none;
  margin-left:auto;
}

/* ─── SKILLS (default view) ─── */
.skills-section{display:flex;flex-direction:column;gap:1.75rem}
.skill-group{display:flex;flex-direction:column;gap:.6rem}
.skill-label{
  font-size:.65rem;font-weight:600;color:var(--muted);
  letter-spacing:.1em;text-transform:uppercase;font-family:var(--mono);
}
.skill-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.skill-chip{
  font-size:.8125rem;font-weight:500;padding:.35rem .75rem;border-radius:var(--radius-xs);
  background:var(--card);color:var(--fg);border:1px solid var(--border);
  transition:all var(--dur-1) var(--ease);letter-spacing:-.01em;
  cursor:default;display:inline-flex;align-items:center;gap:.45rem;
}
.skill-chip img{width:14px;height:14px;display:inline-block;flex-shrink:0}
.skill-chip:hover{border-color:var(--border-hover)}

/* ─── MINDGRAPH ─── */
.mg-toggle-btn{
  display:inline-flex;align-items:center;gap:.55rem;
  background:none;border:none;padding:0;cursor:pointer;
  color:var(--muted-fg);font-family:var(--mono);font-size:.7rem;
  letter-spacing:.03em;transition:color var(--dur-1) var(--ease);
}
.mg-toggle-btn:hover{color:var(--fg)}
.mg-toggle-track{
  position:relative;width:2.2rem;height:1.2rem;border-radius:var(--radius-full);
  border:1px solid var(--border);background:var(--accent-bg);
  transition:all var(--dur-2) var(--ease);flex-shrink:0;
}
.mg-toggle-thumb{
  position:absolute;top:50%;left:.18rem;width:.82rem;height:.82rem;border-radius:50%;
  background:var(--muted);transform:translateY(-50%);
  transition:left var(--dur-2) var(--ease),background var(--dur-2) var(--ease);
}
.mg-toggle-btn[aria-checked="true"]{color:var(--fg)}
.mg-toggle-btn[aria-checked="true"] .mg-toggle-track{border-color:var(--border-hover)}
.mg-toggle-btn[aria-checked="true"] .mg-toggle-thumb{left:calc(100% - .82rem - .18rem);background:var(--fg)}

.mg-card{
  position:relative;border-radius:var(--radius);border:1px solid var(--border);
  background:var(--card);overflow:hidden;
}
.mg-caption{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.02em;
  color:var(--muted);line-height:1.5;
  padding:.6rem .9rem;border-bottom:1px solid var(--border);
}
#mindGraph{
  display:block;width:100%;height:470px;touch-action:none;
  cursor:grab;user-select:none;-webkit-user-select:none;
}
#mindGraph.dragging,#mindGraph.panning{cursor:grabbing}
@media(max-width:520px){#mindGraph{height:350px}}
.mg-footer{
  display:flex;flex-direction:column;gap:.7rem;
  padding:.85rem 1rem;border-top:1px solid var(--border);
}
.mg-actions{display:flex;gap:.4rem;align-items:center;justify-content:flex-end}
.mg-btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.03em;
  padding:.42rem .7rem;border-radius:var(--radius-xs);
  background:var(--card);border:1px solid var(--border);color:var(--muted-fg);
  cursor:pointer;transition:all var(--dur-1) var(--ease);
}
.mg-btn:hover{border-color:var(--border-hover);color:var(--fg)}
.mg-btn.active{background:var(--fg);color:var(--bg);border-color:var(--fg)}

/* ─── info panel ─── */
.mg-panel{
  display:flex;flex-direction:column;gap:.7rem;
  border-top:1px solid var(--border);padding-top:.8rem;min-height:1.5rem;
}
.mg-chips{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.mg-chip{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;
  padding:.22rem .5rem;border-radius:3px;border:1px solid var(--border);
  color:var(--muted-fg);background:var(--card);
}
.mg-chip.languages{border-color:var(--fg);color:var(--fg)}
.mg-chip.frameworks{background:var(--accent-bg)}
.mg-chip.databases{background:var(--secondary)}
.mg-chip.tools{border-color:var(--muted);color:var(--muted)}
.mg-chip.fundamentals{border-color:var(--fg);color:var(--fg);box-shadow:inset 0 0 0 1px var(--bg)}
.mg-chip.backend{border-color:var(--fg);color:var(--fg)}
.mg-chip.js{background:var(--accent-bg)}
.mg-chip.frontend{background:var(--secondary)}
.mg-chip.systems{color:var(--muted-fg)}
.mg-chip.theory{border-color:var(--fg);color:var(--fg);box-shadow:inset 0 0 0 1px var(--bg)}
.mg-chip[data-id]{
  cursor:pointer;
  transition:border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease);
}
.mg-chip[data-id]:hover,.mg-chip[data-id]:focus-visible{border-color:var(--fg);color:var(--fg);outline:none}
.mg-chip[data-id]:focus-visible{box-shadow:0 0 0 1px var(--fg)}
.mg-panel-hint{
  font-family:var(--mono);font-size:.65rem;color:var(--muted);
  text-transform:uppercase;letter-spacing:.08em;
}
.mg-panel-focus{display:flex;flex-direction:column;gap:.3rem}
.mg-panel-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.mg-panel-name{font-size:.95rem;font-weight:600;letter-spacing:-.02em;color:var(--fg)}
.mg-panel-meta{
  font-family:var(--mono);font-size:.65rem;color:var(--muted);
  text-transform:uppercase;letter-spacing:.08em;
}
.mg-panel-rel{display:flex;flex-direction:column;gap:.4rem;margin-top:.35rem}
.mg-panel-rel-label{
  font-family:var(--mono);font-size:.62rem;color:var(--muted);
  text-transform:uppercase;letter-spacing:.1em;
}
.mg-panel-proj{display:flex;flex-direction:column;gap:.4rem;margin-top:.35rem}
.mg-panel-proj-label{
  font-family:var(--mono);font-size:.62rem;color:var(--muted);
  text-transform:uppercase;letter-spacing:.1em;
}
.mg-chip.proj{
  background:var(--accent-bg);border-color:var(--accent-bg);color:var(--fg);
  cursor:pointer;text-decoration:none;
  transition:border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),background var(--dur-1) var(--ease);
}
.mg-chip.proj:hover,.mg-chip.proj:focus-visible{border-color:var(--fg);background:var(--fg);color:var(--bg);outline:none}

/* ─── tooltip ─── */
.mg-tooltip{
  position:fixed;z-index:60;pointer-events:none;
  max-width:15rem;white-space:normal;
  background:var(--fg);color:var(--bg);
  font-family:var(--mono);font-size:.65rem;letter-spacing:.02em;
  padding:.5rem .65rem;border-radius:var(--radius-xs);
  opacity:0;transition:opacity var(--dur-1) var(--ease);
}
.mg-tooltip.visible{opacity:1}
.mg-tip-name{font-size:.72rem;font-weight:600;letter-spacing:.01em}
.mg-tip-rel{
  display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem;padding-top:.5rem;
  border-top:1px solid color-mix(in srgb,currentColor 22%,transparent);
}
.mg-tip-rel span{
  font-size:.6rem;padding:.12rem .4rem;border-radius:3px;
  border:1px solid color-mix(in srgb,currentColor 35%,transparent);
}

/* ─── FOOTER ─── */
footer{border-top:1px solid var(--border);margin-top:6rem;position:relative;z-index:2}
.footer-inner{
  margin:0 auto;max-width:var(--maxw);padding:2.5rem 1.5rem 4rem;
  display:flex;flex-direction:column;align-items:flex-start;gap:1.5rem;
}
@media(min-width:640px){.footer-inner{flex-direction:row-reverse;justify-content:space-between;align-items:center}}
.footer-copy{font-size:.7rem;color:var(--muted);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase}
.footer-copy a{font-weight:600;color:var(--muted-fg);transition:color var(--dur-1)}
.footer-copy a:hover{color:var(--fg)}

/* ─── BACK TO TOP ─── */
.back-to-top{
  position:fixed;bottom:1.25rem;right:1.25rem;z-index:40;
  width:2.25rem;height:2.25rem;border-radius:var(--radius-xs);
  background:var(--card);border:1px solid var(--border);
  color:var(--fg);cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-md);opacity:0;pointer-events:none;
  transition:opacity var(--dur-2) var(--ease),border-color var(--dur-1);
}
.back-to-top.visible{opacity:1;pointer-events:auto}
.back-to-top:hover{border-color:var(--border-hover)}
.back-to-top svg{width:1rem;height:1rem}

/* ─── COMMAND PALETTE ─── */
.cmdk-overlay{
  position:fixed;inset:0;z-index:90;background:rgb(0 0 0/.5);
  display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;
  opacity:0;pointer-events:none;transition:opacity var(--dur-2) var(--ease);
}
.cmdk-overlay.open{opacity:1;pointer-events:auto}
.cmdk-modal{
  width:min(90vw,32rem);background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden;
}
.cmdk-input-wrap{
  display:flex;align-items:center;gap:.6rem;padding:.85rem 1rem;
  border-bottom:1px solid var(--border);
}
.cmdk-input-wrap svg{width:1rem;height:1rem;color:var(--muted);flex-shrink:0}
.cmdk-input{
  flex:1;background:transparent;border:none;outline:none;
  font-family:var(--sans);font-size:.875rem;color:var(--fg);
}
.cmdk-input::placeholder{color:var(--muted)}
.cmdk-kbd{
  font-family:var(--mono);font-size:.65rem;padding:.15rem .35rem;
  background:var(--accent-bg);border:1px solid var(--border);border-radius:3px;
  color:var(--muted-fg);
}
.cmdk-list{max-height:24rem;overflow-y:auto;padding:.4rem}
.cmdk-group-label{
  font-family:var(--mono);font-size:.65rem;color:var(--muted);
  text-transform:uppercase;letter-spacing:.1em;padding:.5rem .6rem .25rem;
}
.cmdk-item{
  display:flex;align-items:center;gap:.7rem;padding:.5rem .6rem;
  border-radius:var(--radius-xs);cursor:pointer;color:var(--muted-fg);
  transition:background var(--dur-1);font-size:.8125rem;
}
.cmdk-item.active{background:var(--accent-bg);color:var(--fg)}
.cmdk-item-icon{width:.95rem;height:.95rem;flex-shrink:0;color:var(--muted)}
.cmdk-item.active .cmdk-item-icon{color:var(--fg)}
.cmdk-item-label{flex:1;font-weight:500}
.cmdk-item-hint{font-size:.7rem;color:var(--muted);font-family:var(--mono)}
.cmdk-empty{padding:1.5rem;text-align:center;color:var(--muted);font-size:.8125rem;font-family:var(--mono)}

/* ─── SCROLL REVEAL — opacity only, no transforms ─── */
.reveal{opacity:0;transition:opacity var(--dur-3) var(--ease)}
.reveal.in{opacity:1}

/* ─── ACCESSIBILITY ─── */
:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:var(--radius-xs)}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ─── RESPONSIVE NAV (mobile) ─── */
@media(max-width:520px){
  .nav-inner{padding:.6rem 1rem}
  .nav-links{gap:0}
  .nav-links a{padding:.35rem .5rem;font-size:.75rem}
  .cmdk-btn .cmdk-text{display:none}
  .cmdk-btn{padding:0 .5rem}
  .hero-text h1{font-size:2.25rem}
  article{margin-top:2.5rem;gap:4rem}
}
