/* Shared identity and accessible controls; every perspective owns its composition. */
:root {
  color-scheme: dark;
  --bg: #070b10; --surface: #101820; --text: #f2f5f0; --muted: #8f9ea6;
  --line: #243038; --accent: #c4f06a; --accent-ink: #142308;
  --font: 'DM Sans', sans-serif; --display: 'Syne', sans-serif;
  --mono: 'DM Mono', monospace; --serif: 'Fraunces', Georgia, serif;
  --ease: cubic-bezier(.2,.75,.2,1); --header-height: 86px;
}
html[data-mode="light"] { color-scheme: light; --bg:#f4f7f2; --surface:#e8eee4; --text:#14201b; --muted:#52635a; --line:#c5d0c0; --accent:#2f5a14; --accent-ink:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:120px; overflow-x:clip; scrollbar-width:none; }
html::-webkit-scrollbar { width:0; height:0; display:none; }
body { margin:0; background:var(--bg); color:var(--text); font:1.0625rem/1.65 var(--font); transition:background .4s,color .4s; overflow-x:clip; scrollbar-width:none; }
body::-webkit-scrollbar { width:0; height:0; display:none; }
button, a, input { -webkit-tap-highlight-color:transparent; }
button { font:inherit; color:inherit; cursor:pointer; }
a { color:inherit; text-decoration:none; }
button, a { touch-action:manipulation; }
button { border:0; }
button:disabled { opacity:.45; cursor:default; }
button, a, summary { transition:background .25s,color .25s,border-color .25s,transform .4s var(--ease),box-shadow .3s; }
button:focus-visible, a:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
::selection { color:var(--accent-ink); background:var(--accent); }
svg { width:21px; height:21px; flex-shrink:0; vertical-align:middle; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-family:var(--display); line-height:1.08; letter-spacing:-.045em; font-weight:600; }
h1 { font-size:clamp(3rem,5.3vw,6rem); }
h2 { font-size:clamp(2.4rem,4vw,4.25rem); }
h3 { font-size:1.75rem; }
em { font-style:normal; color:var(--accent); }
p { color:var(--muted); }
small { font-size:.8125rem; }
[hidden] { display:none!important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:-80px; left:20px; z-index:200; padding:10px 20px; color:var(--accent-ink); background:var(--accent); }
.skip-link:focus { top:10px; }
.site-header { position:sticky; top:0; height:var(--header-height); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:24px; padding:0 32px; border-bottom:1px solid var(--line); z-index:30; background:color-mix(in srgb,var(--bg) 78%,transparent); backdrop-filter:blur(22px) saturate(1.15); }
.brand { display:flex; align-items:center; gap:13px; justify-self:start; white-space:nowrap; }
.brand-mark { width:47px; height:47px; overflow:visible; transition:transform .6s var(--ease); }
.brand-mark { color:var(--accent); filter:drop-shadow(0 6px 14px color-mix(in srgb,var(--accent) 24%,transparent)); animation:brand-float 5s ease-in-out infinite; }
.brand-mark .brand-ring { fill:none; stroke:url(#brand-gradient); stroke-width:1.4; transform-box:fill-box; transform-origin:center; }
.brand-mark .ring-a { animation:brand-ring-a 8s linear infinite; }
.brand-mark .ring-b { animation:brand-ring-b 10s linear infinite reverse; }
.brand-mark .ring-c { animation:brand-ring-c 12s linear infinite; }
.brand-mark .brand-core { fill:none; stroke:currentColor; stroke-width:4.5; stroke-linejoin:round; }
.brand-mark .brand-node { fill:currentColor; }
.brand-mark .node-a { animation:node-pulse 2.4s ease-in-out infinite; }
.brand-mark .node-b { animation:node-pulse 2.4s ease-in-out -1.2s infinite; }
.brand:hover .brand-mark { transform:perspective(250px) rotateY(-25deg) rotateX(12deg) scale(1.06); }
.brand-name { font:800 1.2rem/1.3 var(--display); letter-spacing:-.04em; }
.center-nav { display:flex; gap:3px; border:1px solid var(--line); border-radius:100px; padding:5px; background:var(--surface); }
.center-nav a { font-size:.875rem; padding:8px 17px; border-radius:100px; position:relative; }
.center-nav a:hover, .center-nav a.active { background:var(--text); color:var(--bg); transform:translateY(-1px); }
.center-nav .header-resume { margin-left:12px; padding-inline:20px; background:var(--accent); color:var(--accent-ink); font-weight:600; border-radius:100px; min-height:36px; display:inline-flex; align-items:center; }
.center-nav .header-resume:hover { background:var(--text); color:var(--bg); box-shadow:0 9px 25px color-mix(in srgb,var(--accent) 20%,transparent); }
.header-tools { justify-self:end; display:flex; gap:10px; align-items:center; }
.design-picker { position:relative; }
.icon-button { display:inline-flex; justify-content:center; align-items:center; width:43px; height:43px; border:1px solid var(--line); border-radius:50%; background:transparent; flex-shrink:0; }
.icon-button:hover:not(:disabled) { background:var(--surface); border-color:var(--accent); transform:rotate(-7deg); }
#mode-toggle:hover svg { transform:rotate(40deg); }
#mode-toggle svg { transition:transform .7s var(--ease); }
.design-toggle { display:flex; gap:9px; align-items:center; background:var(--text); color:var(--bg); border:1px solid transparent; padding:10px 14px; border-radius:100px; font-size:.875rem; white-space:nowrap; }
.design-toggle:hover { background:var(--accent); color:var(--accent-ink); transform:translateY(-2px); }
.current-design { opacity:.65; }
#chevron-icon svg { width:15px; }
.eyebrow { display:block; font:400 .75rem/1.6 var(--mono); letter-spacing:.075em; color:var(--muted); }
.actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.button { display:inline-flex; min-height:50px; align-items:center; justify-content:center; gap:23px; padding:12px 23px; border-radius:100px; font-size:.875rem; border:1px solid var(--line); }
.button.primary { background:var(--accent); color:var(--accent-ink); border-color:var(--accent); }
.button.secondary { color:var(--text); background:transparent; }
.button:hover { transform:translateY(-3px); box-shadow:0 8px 24px #0001; }
.button.secondary:hover { background:var(--surface); border-color:var(--text); }
.text-link { display:inline-flex; align-items:center; gap:12px; font-size:.875rem; background:none; padding:5px 0; border-bottom:1px solid transparent; }
.text-link:hover { color:var(--accent); border-color:currentColor; }
.text-link:hover svg, .button:hover svg { transform:translate(2px,-2px); }
.text-link svg, .button svg { transition:transform .3s; }
.section-wrap { max-width:1440px; margin:auto; padding:100px 6vw; }
.section-heading { margin-bottom:48px; }
.section-heading h2 { margin:16px 0; }
.section-heading p { max-width:500px; }
.skill-pills { display:flex; flex-wrap:wrap; gap:8px; }
.skill-pills span { border:1px solid var(--line); border-radius:100px; padding:7px 14px; font-size:.875rem; }
.skill-pills span:hover { border-color:var(--accent); transform:translateY(-2px); }
.stack-strip { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 28px; }
.stack-strip span {
  font:500 .72rem/1 var(--mono); letter-spacing:.06em; text-transform:uppercase;
  padding:9px 12px; border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));
  color:color-mix(in srgb,var(--text) 88%,var(--accent));
  background:color-mix(in srgb,var(--accent) 8%,transparent);
}
.experience>div { padding:23px 0; border-bottom:1px solid var(--line); }
.experience>div:first-child { padding-top:0; }
.experience span { font:400 .75rem/1.8 var(--mono); color:var(--muted); }
.experience h3 { font-size:1.05rem; line-height:1.5; letter-spacing:-.015em; margin-top:4px; }
.experience p { font-size:.875rem; }
.page-footer { padding:26px 4vw; border-top:1px solid var(--line); display:flex; align-items:center; gap:24px; font-size:.75rem; color:var(--muted); }
.footer-brand { display:flex; flex-direction:column; gap:4px; margin-right:auto; }
.footer-brand strong { color:var(--text); font:700 .875rem/1.3 var(--display); letter-spacing:-.02em; }
.footer-brand span { font-size:.75rem; color:var(--muted); }
.page-footer nav { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.page-footer nav .text-link { background:none; padding:5px 0; }
.nav-toggle { display:none; }
.nav-backdrop { display:none; }
.scene { position:relative; isolation:isolate; min-width:0; min-height:0; }
.scene canvas { display:block; width:100%; height:100%; }
.scene-fallback { position:absolute; inset:15%; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; transform:rotate(-15deg); color:var(--accent); font:500 6rem var(--display); }
.scene-fallback>span>span { font-style:italic; }
.scene[data-ready="true"] .scene-fallback { display:none; }
.tilt { transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)); }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease),transform .8s var(--ease); }
.reveal.is-visible { opacity:1; transform:translateY(0); }
.no-script { padding:100px 6vw; }

/* ORBIT — spatial flagship: deep ink field, Syne display, acid accent, editorial project grid. */
html[data-design="orbit"] { --display:'Syne',sans-serif; --font:'DM Sans',sans-serif; }
.orbit-page { background:
  radial-gradient(ellipse 70% 55% at 78% 35%, color-mix(in srgb,var(--accent) 11%,transparent), transparent 58%),
  radial-gradient(ellipse 50% 40% at 12% 80%, color-mix(in srgb,#3a6bff 8%,transparent), transparent 55%),
  var(--bg);
}
.orbit-hero { min-height:calc(100svh - var(--header-height)); position:relative; padding:90px 6vw 85px; display:flex; align-items:center; border-bottom:1px solid var(--line); overflow:hidden; }
.orbit-copy { position:relative; z-index:2; width:min(58%,640px); pointer-events:none; }
.orbit-copy a, .orbit-copy button { pointer-events:auto; }
.orbit-copy .eyebrow { margin-bottom:22px; letter-spacing:.14em; }
.orbit-copy h1 { font-size:clamp(3.1rem,5.4vw,5.9rem); letter-spacing:-.065em; line-height:1.02; font-weight:700; max-width:12ch; }
.orbit-copy p { margin:22px 0 0; font-size:1.05rem; max-width:40ch; line-height:1.7; color:color-mix(in srgb,var(--muted) 88%,var(--text)); }
.orbit-copy .stack-strip { margin-top:26px; }
.orbit-universe { position:absolute; width:54%; right:-4%; top:2%; bottom:8%; overflow:hidden; isolation:isolate; container-type:size; container-name:orbit-universe; }
.orbit-universe .scene { width:100%; height:100%; cursor:grab; touch-action:none; }
.orbit-universe .scene.is-dragging { cursor:grabbing; }
.scene-coordinate { position:absolute; color:var(--muted); font:400 .6875rem var(--mono); letter-spacing:.12em; }
.scene-coordinate.top { top:8%; right:20%; }
.scene-coordinate.bottom { bottom:5%; left:30%; }
.globe-keywords { position:absolute; inset:0; pointer-events:none; z-index:2; overflow:hidden; }
.globe-chip {
  position:absolute; left:50%; top:50%; display:inline-flex; align-items:center; justify-content:center;
  padding:7px 12px; border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));
  border-radius:999px; background:color-mix(in srgb,var(--bg) 78%,var(--surface));
  color:var(--text); font:500 .72rem/1 var(--mono); letter-spacing:.04em;
  white-space:nowrap; backdrop-filter:blur(10px);
  box-shadow:0 10px 28px color-mix(in srgb,#000 18%,transparent);
}
.globe-chip em { font-style:normal; color:inherit; }
/* Circular disc sized to the globe; overflow keeps chips inside the sphere edge. */
.orbit-keywords {
  inset:auto;
  left:50%;
  top:49%;
  width:min(62cqmin, 86%);
  height:min(62cqmin, 86%);
  transform:translate(-50%, -50%);
  border-radius:50%;
  overflow:hidden;
  container-type:size;
  perspective:900px;
  transform-style:preserve-3d;
}
.orbit-ring { position:absolute; inset:0; transform-style:preserve-3d; pointer-events:none; }
.orbit-chip {
  --radius:30cqmin;
  --speed:36s;
  transform: translate(-50%,-50%) rotate(var(--angle)) translateX(var(--radius)) rotate(calc(var(--angle) * -1));
  animation:orbit-chip-spin var(--speed) linear infinite;
  animation-delay:calc(var(--i) * -2.4s);
  opacity:.88;
  max-width:40%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.orbit-ring-outer .orbit-chip {
  --radius:31cqmin;
  --speed:42s;
  opacity:.9;
  font-size:.68rem;
  padding:5px 9px;
}
.orbit-ring-mid .orbit-chip {
  --radius:22cqmin;
  --speed:32s;
  animation-name:orbit-chip-spin-rev;
  opacity:.86;
  font-size:.62rem;
  padding:4px 8px;
}
.orbit-ring-inner .orbit-chip {
  --radius:13cqmin;
  --speed:24s;
  opacity:.82;
  font-size:.56rem;
  padding:4px 7px;
  letter-spacing:.03em;
}
.orbit-bottom { position:absolute; bottom:28px; right:6vw; left:auto; display:flex; justify-content:flex-end; gap:20px; color:var(--muted); font:400 .6875rem var(--mono); }
.orbit-bottom a { display:flex; align-items:center; gap:18px; }
.orbit-bottom svg { transform:rotate(90deg); }
.orbit-projects { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); }
.orbit-project { background:var(--bg); border:0; border-radius:0; padding:28px; text-align:left; overflow:hidden; }
.orbit-project:hover { background:color-mix(in srgb,var(--surface) 70%,var(--bg)); box-shadow:inset 0 0 0 1px var(--project-color); }
.project-visual { height:190px; position:relative; display:grid; place-items:center; overflow:hidden; border-radius:0; margin-bottom:25px; background:color-mix(in srgb,var(--project-color) 9%,var(--bg)); color:var(--project-color); }
[data-mode="light"] .project-visual { color:var(--text); }
.project-visual>span { font:500 5rem var(--display); z-index:2; letter-spacing:-.08em; }
.project-visual i { position:absolute; width:220px; height:220px; border:1px solid currentColor; opacity:.25; border-radius:50%; transform:rotateX(45deg) rotateY(30deg); }
.project-visual i:nth-of-type(2) { transform:rotateX(-45deg) rotateY(45deg); }
.project-visual i:nth-of-type(3) { transform:rotateX(70deg); }
.project-visual i:nth-of-type(4) { transform:rotateY(70deg); }
.visual-1 i { border-radius:0; transform:rotate(45deg) scale(.75); }
.visual-1 i:nth-of-type(2) { transform:rotate(45deg) scale(1); }
.visual-1 i:nth-of-type(3) { transform:rotate(45deg) scale(1.3); }
.visual-2 i { border-radius:15%; transform:rotate(15deg); }
.visual-3 i { width:300px; height:90px; }
.orbit-project:hover .project-visual>span { transform:scale(1.08); }
.project-visual>span { transition:transform .7s var(--ease); }
.project-meta { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.project-meta>svg { color:var(--accent); }
.orbit-project h3 { margin:13px 0; }
.orbit-project p { font-size:1rem; max-width:490px; }
.project-tag { display:inline-block; font-size:.75rem; color:var(--muted); margin-top:22px; padding-top:15px; border-top:1px solid var(--line); width:100%; }
.orbit-about { display:grid; grid-template-columns:1.1fr 1fr; gap:10%; border-top:1px solid var(--line); }
.orbit-about h2 { margin:18px 0 24px; }
.orbit-about p { margin-bottom:24px; }
.orbit-contact { padding-top:60px; padding-bottom:110px; }
.orbit-contact h2 { margin:20px 0 35px; font-size:clamp(3rem,5.5vw,6rem); }

/* SIGNAL — modern pulse / telemetry: cyan field, waveform stage, channel cards. */
html[data-design="signal"] {
  --bg:#05070c; --surface:#0c121a; --text:#e8eef7; --muted:#8b9bb0;
  --line:#1c2a3a; --accent:#4de1ff; --accent-ink:#031820;
  --font:'DM Sans',sans-serif; --display:'Syne',sans-serif; --mono:'IBM Plex Mono',monospace;
}
html[data-design="signal"][data-mode="light"] {
  --bg:#f3f7fb; --surface:#e4ecf4; --text:#0d1824; --muted:#5a6d82;
  --line:#c5d3e2; --accent:#067a96; --accent-ink:#fff;
}
[data-design="signal"] .site-header {
  border-bottom:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));
  background:color-mix(in srgb,var(--bg) 72%,transparent);
  backdrop-filter:blur(18px) saturate(1.2);
}
[data-design="signal"] .center-nav { border-radius:12px; background:color-mix(in srgb,var(--surface) 80%,transparent); }
[data-design="signal"] .center-nav a { border-radius:9px; font-family:var(--mono); font-size:.8rem; }
[data-design="signal"] .center-nav a:hover, [data-design="signal"] .center-nav a.active { background:var(--accent); color:var(--accent-ink); }
[data-design="signal"] .center-nav .header-resume { border-radius:9px; }
[data-design="signal"] .design-toggle, [data-design="signal"] .icon-button { border-radius:10px; }
[data-design="signal"] .button { border-radius:12px; font-family:var(--mono); letter-spacing:.02em; }
[data-design="signal"] .stack-strip span {
  border-radius:8px; border-color:color-mix(in srgb,var(--accent) 40%,var(--line));
  background:color-mix(in srgb,var(--accent) 10%,transparent);
}

.signal-page {
  background:
    radial-gradient(ellipse 80% 50% at 85% 10%, color-mix(in srgb,var(--accent) 14%,transparent), transparent 55%),
    radial-gradient(ellipse 50% 40% at 10% 80%, color-mix(in srgb,#3b82f6 10%,transparent), transparent 50%),
    var(--bg);
}
.signal-hero {
  display:grid; grid-template-columns:1.05fr .95fr; gap:4vw; align-items:center;
  min-height:calc(100svh - var(--header-height)); padding:48px 6vw 64px; position:relative;
}
.signal-hero-glow {
  position:absolute; inset:10% 40% auto auto; width:min(42vw,480px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle, color-mix(in srgb,var(--accent) 18%,transparent), transparent 70%);
  filter:blur(10px); pointer-events:none;
}
.signal-hero-copy { position:relative; z-index:2; max-width:640px; }
.signal-hero-copy .eyebrow { letter-spacing:.14em; color:color-mix(in srgb,var(--accent) 70%,var(--muted)); }
.signal-hero-copy h1 {
  margin:18px 0 18px; font-size:clamp(3rem,6.2vw,5.8rem); line-height:1.02; letter-spacing:-.06em; font-weight:700;
}
.signal-hero-copy h1 span { color:var(--accent); }
.signal-hero-copy>p { max-width:40ch; margin:0 0 22px; font-size:1.05rem; color:color-mix(in srgb,var(--muted) 85%,var(--text)); }
.signal-metrics {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:36px;
  padding-top:28px; border-top:1px solid var(--line);
}
.signal-metrics>div { display:flex; flex-direction:column; gap:4px; }
.signal-metrics span { font:500 .7rem var(--mono); color:var(--accent); letter-spacing:.08em; }
.signal-metrics strong { font:600 .95rem/1.3 var(--display); letter-spacing:-.02em; }
.signal-metrics small { font-size:.75rem; color:var(--muted); }

.signal-stage { position:relative; z-index:2; min-width:0; }
.signal-stage-frame {
  border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));
  border-radius:22px; overflow:hidden;
  background:
    linear-gradient(160deg, color-mix(in srgb,var(--surface) 90%,transparent), color-mix(in srgb,var(--bg) 80%,transparent)),
    radial-gradient(ellipse at 50% 40%, color-mix(in srgb,var(--accent) 12%,transparent), transparent 65%);
  box-shadow:0 30px 80px color-mix(in srgb,#000 35%,transparent), inset 0 1px 0 color-mix(in srgb,var(--accent) 12%,transparent);
  display:grid; grid-template-rows:auto 1fr auto; min-height:min(62vh,560px);
}
.signal-stage-top, .signal-stage-bottom {
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:14px 18px; font:400 .7rem var(--mono); letter-spacing:.06em; color:var(--muted);
}
.signal-stage-top { border-bottom:1px solid var(--line); background:color-mix(in srgb,var(--surface) 55%,transparent); }
.signal-stage-bottom { border-top:1px solid var(--line); background:color-mix(in srgb,var(--bg) 50%,transparent); }
.signal-live { display:inline-flex; align-items:center; gap:8px; color:var(--accent); }
.signal-live::before {
  content:''; width:7px; height:7px; border-radius:50%; background:var(--accent);
  box-shadow:0 0 12px var(--accent); animation:signal-pulse 1.6s ease-in-out infinite;
}
.signal-stage .scene { min-height:320px; height:100%; cursor:grab; }
.signal-stage .scene:hover { filter:drop-shadow(0 0 22px color-mix(in srgb,var(--accent) 30%,transparent)); }
.signal-stage .scene:active { cursor:grabbing; }

.signal-work { padding:90px 6vw 40px; }
.signal-work-head { max-width:640px; margin-bottom:36px; }
.signal-work-head h2 { margin-top:12px; }
.signal-channels { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.signal-channel {
  position:relative; text-align:left; padding:28px; overflow:hidden;
  border:1px solid var(--line); border-radius:20px;
  background:color-mix(in srgb,var(--surface) 70%,transparent);
  transition:border-color .3s, transform .4s var(--ease), box-shadow .3s;
}
.signal-channel:hover {
  border-color:color-mix(in srgb,var(--channel,var(--accent)) 55%,var(--line));
  box-shadow:0 22px 50px color-mix(in srgb,var(--channel,var(--accent)) 12%,transparent);
}
.signal-channel-top { display:flex; justify-content:space-between; font:400 .72rem var(--mono); color:var(--muted); letter-spacing:.06em; }
.signal-channel h3 { margin:18px 0 12px; font-size:clamp(1.5rem,2.4vw,2rem); letter-spacing:-.04em; }
.signal-channel p { font-size:.95rem; max-width:42ch; }
.signal-channel-foot {
  display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:28px; padding-top:18px;
  border-top:1px solid var(--line); font:400 .75rem var(--mono); color:var(--muted);
}
.signal-channel-go { display:inline-flex; align-items:center; gap:10px; color:var(--accent); }
.signal-channel:hover .signal-channel-go svg { transform:translate(3px,-3px); }
.signal-wave {
  position:absolute; right:-8%; bottom:-18%; width:55%; height:55%; pointer-events:none; opacity:.22;
  background:
    radial-gradient(circle at 30% 50%, color-mix(in srgb,var(--channel,var(--accent)) 40%,transparent), transparent 42%),
    repeating-radial-gradient(circle at 70% 60%, transparent 0 10px, color-mix(in srgb,var(--channel,var(--accent)) 35%,transparent) 10px 11px);
  transition:opacity .4s, transform .6s var(--ease);
}
.signal-channel:hover .signal-wave { opacity:.4; transform:scale(1.08); }

.signal-about {
  display:grid; grid-template-columns:1.05fr .95fr; gap:8vw; padding:80px 6vw;
  border-top:1px solid var(--line); margin-top:40px;
}
.signal-about-copy h2 { margin:16px 0 20px; }
.signal-about-copy>p { margin-bottom:24px; max-width:48ch; }
.signal-skills { display:flex; flex-wrap:wrap; gap:8px; }
.signal-skills span {
  font:400 .8rem var(--mono); padding:8px 12px; border-radius:8px;
  border:1px solid var(--line); background:color-mix(in srgb,var(--surface) 60%,transparent);
}
.signal-skills span:hover { border-color:var(--accent); color:var(--accent); }
.signal-about-path {
  padding:28px; border:1px solid var(--line); border-radius:20px;
  background:color-mix(in srgb,var(--surface) 55%,transparent);
}
.signal-contact {
  margin:20px 6vw 80px; padding:48px 40px; display:flex; align-items:end; justify-content:space-between; gap:28px;
  border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line)); border-radius:24px;
  background:
    radial-gradient(ellipse at 0% 100%, color-mix(in srgb,var(--accent) 14%,transparent), transparent 55%),
    color-mix(in srgb,var(--surface) 65%,transparent);
}
.signal-contact h2 { margin-top:12px; font-size:clamp(2.4rem,5vw,4.2rem); }
@keyframes signal-pulse { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:.4; transform:scale(.72); } }

/* AURA — luminous purple field: soft Fraunces italic, floating studies. */
html[data-design="aura"] { --bg:#110b25; --surface:#211733; --text:#f4edff; --muted:#b8abcb; --line:#443355; --accent:#d9b4ff; --accent-ink:#28103f; --display:'Manrope',sans-serif; --serif:'Fraunces',Georgia,serif; }
html[data-design="aura"][data-mode="light"] { --bg:#faf7ff; --surface:#eee5fb; --text:#25113a; --muted:#715a85; --line:#d7c8e5; --accent:#743a9e; --accent-ink:#fff; }
[data-design="aura"] .site-header {
  margin:10px 22px 0; height:76px; top:10px; border:1px solid color-mix(in srgb,var(--line) 70%,transparent);
  border-radius:22px; padding:0 22px; box-shadow:0 15px 50px #0001;
  background:color-mix(in srgb,var(--bg) 55%,transparent); backdrop-filter:blur(18px) saturate(1.2);
}
[data-design="aura"] .brand-mark .mark-box { fill:var(--surface); stroke:var(--accent); }
[data-design="aura"] .brand-mark path { stroke:var(--accent); }
[data-design="aura"] .center-nav { border:0; background:none; }
[data-design="aura"] .center-nav a:hover { background:var(--surface); color:var(--accent); box-shadow:0 0 25px color-mix(in srgb,var(--accent) 20%,transparent); }
.aura-page { background:radial-gradient(ellipse at 50% 10%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 32%), var(--bg); }
.aura-hero { position:relative; min-height:780px; height:calc(100svh - 100px); display:grid; place-items:center; text-align:center; padding:120px 25px; overflow:hidden; }
.aura-hero>.scene { position:absolute; inset:-12% -4% -8%; opacity:.78; z-index:0; }
.aura-copy { position:relative; z-index:2; pointer-events:none; max-width:52rem; }
.aura-copy a, .aura-copy button { pointer-events:auto; }
.aura-copy h1 { font-size:clamp(3.6rem,6vw,6.7rem); line-height:1.08; margin:30px 0 25px; text-shadow:0 3px 40px var(--bg); }
.aura-copy h1 em { font-family:var(--serif); font-weight:500; font-style:italic; }
.aura-copy p { color:var(--text); margin:0 auto 32px; max-width:42ch; text-shadow:0 2px 12px var(--bg); }
.aura-copy .actions { justify-content:center; }
.aura-scroll { position:absolute; bottom:25px; z-index:2; display:flex; flex-direction:column; align-items:center; gap:10px; font-size:.75rem; color:var(--muted); }
.aura-scroll span { width:35px; height:35px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; }
.aura-section-title { text-align:center; }
.aura-section-title h2 { margin:20px 0 50px; }
.aura-constellation { display:grid; grid-template-columns:1fr 1fr; max-width:1000px; margin:auto; align-items:start; gap:45px 65px; padding-bottom:90px; }
.aura-card { border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line)); padding:35px; background:linear-gradient(160deg,color-mix(in srgb,var(--surface) 88%,transparent),color-mix(in srgb,var(--bg) 70%,transparent)); text-align:left; border-radius:28px; box-shadow:0 20px 65px #0002; backdrop-filter:blur(12px); }
.aura-card-1,.aura-card-3 { margin-top:100px; }
.aura-card-2 { margin-top:-65px; }
.aura-card:hover { border-color:var(--accent); box-shadow:0 0 65px color-mix(in srgb,var(--accent) 14%,transparent); transform:translateY(-4px); }
.aura-card-orb { width:100px; height:100px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; font-size:4rem; line-height:1; margin-bottom:32px; color:var(--accent); box-shadow:inset -15px -15px 30px color-mix(in srgb,var(--accent) 10%,transparent); }
.aura-card-orb span { transition:transform .8s; }
.aura-card:hover .aura-card-orb span { transform:rotate(45deg); }
.aura-card h3 { margin:15px 0; }
.aura-card p { font-size:1rem; }
.aura-card-link { display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--line); margin-top:25px; padding-top:20px; font-size:.875rem; }
.aura-about { text-align:center; max-width:1000px; padding-top:0; }
.aura-about h2 { margin-bottom:28px; }
.aura-about h2 em { font-family:var(--serif); font-style:italic; }
.aura-about>p { max-width:650px; margin:0 auto 30px; }
.aura-about .skill-pills { justify-content:center; }
.aura-about .experience { text-align:left; display:grid; grid-template-columns:repeat(3,1fr); gap:25px; margin-top:70px; }
.aura-about .experience>div { padding:25px 0; border-top:1px solid var(--line); border-bottom:0; }
.aura-contact { text-align:center; background:radial-gradient(ellipse at 50% 100%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 65%); }
.aura-contact h2 { margin:20px 0 35px; }

/* FOLIO — cool ink editorial (not cream/terracotta): Fraunces display, copper accent. */
html[data-design="folio"] { --bg:#121416; --surface:#1c1f22; --text:#ebe8e2; --muted:#a39e94; --line:#3a3e44; --accent:#d4a574; --accent-ink:#2a1c0c; --display:'Fraunces',Georgia,serif; --font:'DM Sans',sans-serif; }
html[data-design="folio"][data-mode="light"] { --bg:#eef1f4; --surface:#e2e6eb; --text:#1a1d22; --muted:#5c636c; --line:#c5cbd3; --accent:#8a5a32; --accent-ink:#fff; }
[data-design="folio"] .site-header { height:86px; border-bottom:1px solid var(--line); }
[data-design="folio"] .brand-name { font-size:1.25rem; font-weight:600; letter-spacing:-.02em; }
[data-design="folio"] .brand-mark .mark-box { fill:none; stroke:var(--text); rx:0; }
[data-design="folio"] .brand-mark path { stroke:var(--text); }
[data-design="folio"] .center-nav { border:0; background:none; border-radius:0; }
[data-design="folio"] .center-nav a { border-radius:0; font-family:var(--serif); font-style:italic; font-size:1rem; }
[data-design="folio"] .center-nav a:hover { background:none; color:var(--accent); box-shadow:inset 0 -1px var(--accent); }
[data-design="folio"] .design-toggle { border-radius:2px; background:none; color:var(--text); border:1px solid var(--line); }
[data-design="folio"] .icon-button { border-radius:2px; }
.folio-page { padding:0 5vw; }
.folio-cover { padding-top:32px; }
.folio-kicker { display:flex; justify-content:space-between; font:400 .6875rem var(--mono); letter-spacing:.12em; color:var(--muted); }
.folio-cover h1 { font-size:clamp(4rem,10.4vw,11rem); font-weight:500; border-bottom:1px solid var(--line); padding:25px 0 35px; letter-spacing:-.065em; }
.folio-cover h1 em { font-style:italic; color:var(--accent); }
.folio-cover-bottom { display:grid; grid-template-columns:1fr 1fr 1fr; gap:40px; align-items:center; min-height:275px; border-bottom:1px solid var(--line); }
.folio-cover-bottom>p { font:500 1.65rem/1.45 var(--serif); color:var(--text); }
.folio-cover-bottom .scene { height:260px; }
.folio-cover-bottom>div:last-child { justify-self:end; }
.folio-cover-bottom .button { border-radius:0; padding:7px 0; min-height:0; border:0; border-bottom:1px solid var(--line); margin-top:20px; }
.folio-section-label { display:flex; gap:30px; align-items:center; padding:28px 0; border-bottom:1px solid var(--line); }
.folio-section-label>span:first-child { font-size:1.5rem; font-family:var(--serif); }
.folio-section-label h2 { font-size:1.5rem; letter-spacing:-.02em; font-weight:500; }
.folio-section-label>span:last-child:not(:first-child) { margin-left:auto; font:400 .6875rem var(--mono); color:var(--muted); }
.folio-study { border-bottom:1px solid var(--line); }
.folio-study summary { display:grid; grid-template-columns:55px 1fr 180px 25px; align-items:center; gap:25px; padding:30px 0; cursor:pointer; list-style:none; }
.folio-study summary::-webkit-details-marker { display:none; }
.folio-study summary h3 { font-size:clamp(1.8rem,3vw,3.4rem); font-weight:500; }
.folio-number,.folio-category { font:400 .75rem var(--mono); color:var(--muted); }
.folio-category { font-size:.6875rem; }
.folio-study summary:hover { color:var(--accent); transform:translateX(6px); }
.folio-study summary>svg { transition:transform .4s; }
.folio-study[open] summary>svg { transform:rotate(45deg); }
.folio-study-body { display:grid; grid-template-columns:.7fr 1fr; gap:8%; padding:0 8% 40px; animation:panel-in .45s var(--ease); }
.folio-large-number { font:italic 500 clamp(4rem,10vw,10rem)/1.1 var(--serif); color:var(--accent); align-self:center; text-align:center; }
.folio-study-body p { color:var(--text); }
.folio-tags { font:400 .75rem/1.8 var(--mono); color:var(--muted); margin:20px 0; }
.folio-profile { margin-top:40px; }
.folio-profile-body { display:grid; grid-template-columns:1fr 1fr; gap:8vw; padding:60px 0; }
.folio-profile-body>h3 { font-size:clamp(2.5rem,4.7vw,5rem); line-height:1.2; font-style:italic; font-weight:500; }
.folio-profile-body .experience { margin-top:35px; }
.folio-profile-body .experience h3 { font-family:var(--font); }
.folio-contact { border-top:1px solid var(--line); padding:50px 0 80px; }
.folio-contact>span { font:400 .75rem var(--mono); color:var(--muted); }
.folio-contact h2 { font-size:clamp(3rem,6.5vw,7rem); font-weight:500; margin:30px 0; }
.folio-contact h2 em { font-style:italic; }
.folio-connect { display:flex; align-items:center; justify-content:space-between; max-width:400px; border-bottom:1px solid var(--text); padding:15px 0; font:italic 500 1.7rem var(--serif); }
.folio-connect:hover { color:var(--accent); max-width:420px; }
.folio-page .page-footer { padding-left:0; padding-right:0; }

/* SHIFT — Swiss graphic system: oversized type, acid field, snap case gallery. */
html[data-design="shift"] { --bg:#101010; --surface:#1c1c1c; --text:#f3f2eb; --muted:#9c9c93; --line:#3f3f38; --accent:#e8ff4d; --accent-ink:#1a1e08; --display:'Syne',sans-serif; --font:'Space Grotesk',sans-serif; }
html[data-design="shift"][data-mode="light"] { --bg:#f2f2ec; --surface:#e4e4dc; --text:#141610; --muted:#5e6154; --line:#bdbfb2; --accent:#3f4a12; --accent-ink:#fff; }
[data-design="shift"] .site-header { border-bottom:2px solid var(--text); }
[data-design="shift"] .brand-mark .mark-box { rx:0; }
[data-design="shift"] .center-nav { border:0; background:none; padding:0; gap:0; }
[data-design="shift"] .center-nav a { border-radius:0; border-left:1px solid var(--line); padding:10px 22px; font-weight:600; text-transform:uppercase; }
[data-design="shift"] .center-nav a:last-child { border-right:1px solid var(--line); }
[data-design="shift"] .design-toggle, [data-design="shift"] .icon-button { border-radius:0; }
[data-design="shift"] .button { border-radius:0; }
.shift-hero { display:grid; grid-template-columns:1.45fr 1fr; border-bottom:2px solid var(--text); }
.shift-title { padding:50px 4vw; }
.shift-title h1 { font-size:clamp(4rem,7.6vw,9rem); line-height:.98; letter-spacing:-.075em; font-weight:700; margin:35px 0; }
.shift-title h1 span { color:var(--accent); }
.shift-hero-copy { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.shift-hero-copy .button { border-radius:0; border-color:var(--text); }
.shift-object { border-left:2px solid var(--text); position:relative; background:var(--accent); color:var(--accent-ink); min-width:0; }
.shift-object>.scene { position:absolute; inset:10px 0 50px; }
.shift-object>span { position:absolute; bottom:20px; left:0; right:0; text-align:center; font:500 .75rem var(--mono); letter-spacing:.03em; }
.shift-work { padding:45px 4vw 70px; overflow:hidden; }
.shift-section-heading { display:flex; justify-content:space-between; align-items:center; gap:25px; margin-bottom:25px; }
.shift-section-heading h2 { font:600 1.5rem var(--display); letter-spacing:-.04em; }
.shift-section-heading h2 span { margin-left:12px; vertical-align:top; font:400 .75rem var(--mono); }
.carousel-controls { display:flex; gap:16px; align-items:center; font:400 .75rem var(--mono); }
.shift-track { position:relative; display:flex; gap:25px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--accent) var(--surface); padding-bottom:16px; }
.shift-slide { background:var(--slide-color); color:#172012; flex:0 0 85%; min-width:0; scroll-snap-align:start; padding:30px 35px; min-height:420px; display:flex; flex-direction:column; }
.shift-slide-top { display:flex; justify-content:space-between; font:400 .75rem var(--mono); border-bottom:1px solid #17201255; padding-bottom:20px; gap:20px; }
.shift-slide-body { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:32px 0; flex:1; }
.shift-slide-body h3 { font-size:clamp(2.8rem,4.8vw,5rem); line-height:1.07; max-width:580px; letter-spacing:-.065em; }
.shift-glyph { font-size:8rem; line-height:1; font-family:Arial,sans-serif; display:inline-block; transition:transform .8s var(--ease); }
.shift-slide:hover .shift-glyph { transform:rotate(45deg); }
.shift-slide-bottom { display:flex; justify-content:space-between; gap:35px; align-items:end; }
.shift-slide-bottom p { color:#172012; font-size:1rem; max-width:590px; }
.shift-open { width:58px; height:58px; border:1px solid #172012; background:none; flex-shrink:0; }
.shift-open:hover { background:#172012; color:var(--slide-color); }
.shift-open svg { width:30px; height:30px; }
.shift-about { display:grid; grid-template-columns:1fr 1fr; padding:60px 4vw 80px; border-top:2px solid var(--text); gap:8vw; }
.shift-star { display:block; color:var(--accent); font-size:6rem; line-height:1; margin-bottom:30px; }
.shift-about h2 { font-size:clamp(2.8rem,4.7vw,5.5rem); font-weight:700; }
.shift-about .experience { margin-top:35px; }
.shift-skills { display:flex; gap:10px 20px; flex-wrap:wrap; margin-top:25px; font-size:.875rem; }
.shift-skills span { border-bottom:2px solid var(--accent); padding-bottom:5px; }
.shift-contact { padding:60px 4vw; background:var(--accent); color:var(--accent-ink); display:flex; align-items:end; justify-content:space-between; gap:30px; }
.shift-contact h2 { font-size:clamp(2.8rem,6vw,6.5rem); font-weight:700; letter-spacing:-.065em; }
.shift-contact h2 em { color:inherit; }
.shift-connect { border:1px solid currentColor; padding:20px 25px; display:flex; gap:40px; align-items:center; flex-shrink:0; }
.shift-connect:hover { background:var(--accent-ink); color:var(--accent); }

/* SCHEMA — compact 1920s ledger / typewriter UI + morphing color wash. */
html[data-design="schema"] {
  --header-height:62px;
  --bg:#efe6d4;
  --surface:#f7f0e2;
  --text:#1a1410;
  --muted:#5c5348;
  --line:#2a2218;
  --accent:#1a1410;
  --accent-ink:#efe6d4;
  --display:'Fraunces',Georgia,serif;
  --font:'DM Sans',sans-serif;
  --hand:'Caveat',cursive;
  --mono:'Special Elite',ui-monospace,monospace;
  --schema-sky-a:#f0a0b8;
  --schema-sky-b:#7eb8e0;
  --schema-sky-c:#e8c78a;
  --schema-sky-d:#c9b6f0;
}
html[data-design="schema"][data-mode="dark"] {
  --bg:#14110e;
  --surface:#1c1814;
  --text:#f3ead8;
  --muted:#b0a490;
  --line:#f3ead8;
  --accent:#f3ead8;
  --accent-ink:#14110e;
  --schema-sky-a:#6a3048;
  --schema-sky-b:#2a4a68;
  --schema-sky-c:#5a4828;
  --schema-sky-d:#3a3058;
}
[data-design="schema"] .brand-name {
  font-family:var(--hand); font-weight:700; letter-spacing:.01em;
}
[data-design="schema"] .design-toggle,
[data-design="schema"] .icon-button,
[data-design="schema"] .button { border-radius:0; font-family:var(--mono); }
[data-design="schema"] .button.primary {
  background:var(--text); color:var(--bg); border:1px solid var(--text); box-shadow:3px 3px 0 color-mix(in srgb,var(--schema-sky-a) 70%,var(--line));
}
[data-design="schema"] .button.secondary { background:var(--surface); color:var(--text); border:1px solid var(--line); box-shadow:2px 2px 0 var(--line); }
[data-design="schema"] .page-footer .text-link,
[data-design="schema"] .experience span,
[data-design="schema"] .eyebrow { font-family:var(--mono); }
[data-design="schema"] .experience h3 { font-family:var(--display); font-weight:600; }
[data-design="schema"] .stack-strip span {
  border-radius:0; border:1px solid var(--line); background:color-mix(in srgb,var(--surface) 90%,transparent);
  font-family:var(--mono); font-size:.65rem; letter-spacing:.06em;
}

.schema-page {
  position:relative; color:var(--text); background:transparent; isolation:isolate;
}
.schema-sky {
  position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden;
  background:var(--bg);
}
.schema-blob {
  position:absolute; border-radius:50%; filter:blur(64px); will-change:transform,opacity;
  mix-blend-mode:multiply; opacity:.9;
}
html[data-design="schema"][data-mode="dark"] .schema-blob { mix-blend-mode:screen; opacity:.65; }
.schema-blob-a {
  width:62vw; height:62vw; left:-16vw; top:-22vh; background:var(--schema-sky-a);
  animation:schema-drift-a 9s ease-in-out infinite alternate;
}
.schema-blob-b {
  width:56vw; height:56vw; right:-18vw; top:-12vh; background:var(--schema-sky-b);
  animation:schema-drift-b 11s ease-in-out infinite alternate;
}
.schema-blob-c {
  width:48vw; height:48vw; left:18vw; top:26vh; background:var(--schema-sky-c);
  animation:schema-drift-c 8s ease-in-out infinite alternate;
}
.schema-blob-d {
  width:52vw; height:52vw; right:4vw; bottom:-22vh; background:var(--schema-sky-d);
  animation:schema-drift-d 10s ease-in-out infinite alternate;
}
.schema-grain {
  position:absolute; inset:0; opacity:.22; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
html[data-design="schema"][data-mode="dark"] .schema-grain { mix-blend-mode:overlay; opacity:.3; }
@keyframes schema-drift-a {
  0% { transform:translate3d(0,0,0) scale(1); opacity:.75; }
  100% { transform:translate3d(18vw,14vh,0) scale(1.28); opacity:1; }
}
@keyframes schema-drift-b {
  0% { transform:translate3d(0,0,0) scale(1.05); opacity:.8; }
  100% { transform:translate3d(-16vw,18vh,0) scale(1.32); opacity:1; }
}
@keyframes schema-drift-c {
  0% { transform:translate3d(0,0,0) scale(1); opacity:.7; }
  100% { transform:translate3d(14vw,-12vh,0) scale(1.35); opacity:1; }
}
@keyframes schema-drift-d {
  0% { transform:translate3d(0,0,0) scale(1.08); opacity:.75; }
  100% { transform:translate3d(-18vw,-10vh,0) scale(1.3); opacity:1; }
}

.schema-shell {
  position:relative; z-index:1; width:min(1080px,100%); margin:0 auto; padding:0 4vw 28px;
}
.schema-hero-stage {
  min-height:calc(100svh - var(--header-height));
  display:flex; flex-direction:column; justify-content:center;
  padding-block:32px; box-sizing:border-box;
}
.schema-hero {
  position:relative; min-height:0; padding:28px 22px 30px; margin:0;
  border:1px solid var(--line); background:color-mix(in srgb,var(--surface) 78%,transparent);
  box-shadow:4px 4px 0 color-mix(in srgb,var(--line) 35%,transparent);
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px;
  width:100%;
}
.schema-marks { position:absolute; inset:8px; pointer-events:none; }
.schema-marks i {
  position:absolute; width:14px; height:14px; border-color:var(--line); border-style:solid; border-width:0;
  opacity:.55;
}
.schema-marks i:nth-child(1) { top:0; left:0; border-top-width:2px; border-left-width:2px; }
.schema-marks i:nth-child(2) { top:0; right:0; border-top-width:2px; border-right-width:2px; }
.schema-marks i:nth-child(3) { bottom:0; left:0; border-bottom-width:2px; border-left-width:2px; }
.schema-marks i:nth-child(4) { bottom:0; right:0; border-bottom-width:2px; border-right-width:2px; }

.schema-news {
  display:block; width:min(480px,100%); border:1px solid var(--line); background:var(--surface);
  text-align:left; color:inherit; text-decoration:none; box-shadow:2px 2px 0 var(--line);
}
.schema-news-bar {
  display:flex; align-items:center; gap:10px; padding:6px 10px; background:var(--text); color:var(--bg);
  font:400 .65rem/1.2 var(--mono); letter-spacing:.03em;
}
.schema-win { letter-spacing:.15em; opacity:.7; }
.schema-news-body {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:10px 12px; font-size:.82rem; line-height:1.35; font-family:var(--mono);
}
.schema-news-body em {
  flex-shrink:0; font-style:normal; font:400 .7rem var(--mono);
  border:1px solid var(--line); padding:4px 8px;
}
.schema-news:hover .schema-news-body em { background:var(--text); color:var(--bg); }
.schema-dotted {
  margin:4px 0 0; font:400 .7rem/1.35 var(--mono); color:var(--muted);
  letter-spacing:.03em; max-width:40rem;
}
.schema-brand {
  margin:4px 0 0; font:700 clamp(2.6rem,7vw,4.8rem)/.95 var(--hand);
  letter-spacing:.01em; color:var(--text);
}
.schema-hero h1 {
  margin:0; font:italic 500 clamp(1.35rem,3.2vw,2.1rem)/1.2 var(--display);
  letter-spacing:-.02em; max-width:22ch;
}
.schema-sub { margin:0; max-width:48ch; color:var(--muted); font-size:.92rem; line-height:1.5; font-family:var(--font); }
.schema-hero .stack-strip { margin-top:2px; justify-content:center; }
.schema-hero .actions { justify-content:center; margin-top:2px; gap:10px; }

.schema-work,
.schema-about { padding:28px 0 8px; border-bottom:0; }
.schema-about {
  border:1px solid var(--line); padding:16px 18px 14px; margin-top:14px;
  background:color-mix(in srgb,var(--surface) 92%,transparent);
}
.schema-panel {
  border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  color:var(--text);
}
.schema-work-block {
  border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  color:var(--text);
}
.schema-work-head {
  padding:14px 16px 12px; margin:0;
  border:0; border-bottom:1px solid var(--line);
  background:transparent;
}
.schema-work-head h2,
.schema-about h2,
.schema-faq h2,
.schema-contact h2 {
  margin:0; font:italic 600 clamp(1.4rem,2.8vw,2rem)/1.15 var(--display); letter-spacing:-.02em; color:var(--text);
}
.schema-about h2 { margin-bottom:14px; }
.schema-faq h2 { margin:0 0 12px; padding:0; }
.schema-project-list {
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  border:0; background:transparent; color:var(--text);
}
.schema-project {
  display:grid; grid-template-columns:40px 1fr auto 18px; gap:10px; align-items:center;
  width:100%; padding:16px 14px; border:0; border-bottom:1px solid var(--line); border-right:1px solid var(--line);
  background:transparent; color:var(--text); text-align:left; cursor:pointer; border-radius:0; min-height:88px;
}
.schema-project:nth-child(2n) { border-right:0; }
.schema-project:nth-child(n+3) { border-bottom:0; }
.schema-project:hover { background:color-mix(in srgb,var(--schema-sky-b) 18%,var(--surface)); }
.schema-project-num { font:400 .7rem var(--mono); color:var(--muted); }
.schema-project-main small {
  display:block; font:400 .62rem var(--mono); letter-spacing:.08em; color:var(--muted); margin-bottom:4px;
}
.schema-project-main h3 {
  margin:0; font:600 clamp(1.05rem,1.8vw,1.35rem)/1.15 var(--display); letter-spacing:-.02em; color:var(--text);
}
.schema-project-tag { font:400 .65rem var(--mono); border:1px dashed var(--line); padding:4px 7px; white-space:nowrap; color:var(--text); }
.schema-project svg { width:16px; height:16px; }

.schema-manifesto {
  display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); margin-bottom:16px;
  background:color-mix(in srgb,var(--surface) 92%,transparent); color:var(--text);
}
.schema-manifesto article { padding:16px 18px; }
.schema-manifesto article:first-child { border-right:1px solid var(--line); }
.schema-manifesto h3 {
  margin:0 0 6px; font:700 1.15rem var(--hand); letter-spacing:.01em; color:var(--text);
}
.schema-manifesto p { margin:0; color:var(--muted); line-height:1.45; font-size:.86rem; font-family:var(--font); }
.schema-profile {
  border:1px solid var(--line); padding:14px 16px;
  background:color-mix(in srgb,var(--surface) 94%,transparent); color:var(--text);
}
.schema-profile > p {
  max-width:68ch; font-size:.95rem; line-height:1.55; margin:0 0 12px; font-family:var(--font); color:var(--text);
}
.schema-skills { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px; }
.schema-skills span {
  border:1px solid var(--line); padding:4px 8px; font:400 .65rem var(--mono); background:var(--surface); color:var(--text);
}
[data-design="schema"] .experience {
  display:grid; grid-template-columns:1fr 1fr; gap:10px 18px; margin-top:4px;
}
[data-design="schema"] .experience > div { padding:8px 0; border-top:1px dashed var(--line); }
[data-design="schema"] .experience h3 { font-size:1rem; margin:2px 0; color:var(--text); }
[data-design="schema"] .experience p { margin:0; font-size:.8rem; color:var(--muted); }

.schema-lower {
  display:grid; grid-template-columns:1.15fr .85fr; gap:18px; align-items:start;
  padding:18px 0 8px; border-top:1px solid var(--line); margin-top:8px;
}
.schema-faq,
.schema-contact {
  padding:16px; min-height:0; box-sizing:border-box;
}
.schema-faq {
  display:flex; flex-direction:column;
}
.schema-faq-list {
  border:1px solid var(--line); background:var(--surface); flex:0 0 auto;
}
.schema-faq-item { border-bottom:1px solid var(--line); }
.schema-faq-item:last-child { border-bottom:0; }
.schema-faq-item summary {
  list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:10px 12px; font:500 .92rem var(--display); letter-spacing:-.01em; color:var(--text);
}
.schema-faq-item summary::-webkit-details-marker { display:none; }
.schema-faq-item summary span { font:400 1rem var(--mono); transition:transform .25s var(--ease); color:var(--text); }
.schema-faq-item[open] summary span { transform:rotate(45deg); }
.schema-faq-item p {
  margin:0; padding:0 12px 12px; color:var(--muted); max-width:68ch; line-height:1.45; font-size:.84rem; font-family:var(--font);
}
.schema-contact {
  box-shadow:3px 3px 0 color-mix(in srgb,var(--schema-sky-a) 45%,var(--line));
  display:flex; flex-direction:column; gap:10px;
}
.schema-contact h2 { margin-top:0; }
.schema-contact-compose {
  display:flex; flex-direction:column; align-items:stretch; gap:12px; margin-top:4px; flex:1;
}
.schema-note {
  width:100%; min-height:96px; resize:vertical; box-sizing:border-box;
  border:1px solid var(--line); border-radius:0; background:var(--surface); color:var(--text);
  padding:10px 12px; font:400 .88rem/1.45 var(--font);
}
.schema-note:focus {
  outline:none; border-color:var(--text);
  box-shadow:2px 2px 0 color-mix(in srgb,var(--schema-sky-b) 50%,var(--line));
}
.schema-note::placeholder { color:var(--muted); }
.schema-connect {
  align-self:flex-end; margin-top:auto; min-height:44px; padding:10px 16px;
}

[data-design="schema"] .schema-footer {
  margin-top:18px; padding:14px 16px;
  border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  box-shadow:3px 3px 0 color-mix(in srgb,var(--schema-sky-b) 40%,var(--line));
  display:flex; align-items:center; gap:18px;
}
[data-design="schema"] .footer-brand-link {
  display:inline-flex; align-items:center; gap:12px; margin-right:auto; color:var(--text); text-decoration:none;
}
[data-design="schema"] .footer-brand-link .brand-mark { width:38px; height:38px; }
[data-design="schema"] .footer-brand-link .brand-name {
  font-family:var(--hand); font-weight:700; font-size:1.35rem; letter-spacing:.01em; line-height:1.1; color:var(--text);
}
[data-design="schema"] .schema-footer nav {
  display:flex; align-items:center; gap:18px; margin:0; align-self:center;
}
[data-design="schema"] .schema-footer nav .text-link {
  padding:0; border-bottom-color:transparent; line-height:1; font-size:.8rem;
}

/* SCHEMA header: compact + animated mid nav */
[data-design="schema"] .site-header {
  height:var(--header-height); padding:0 18px; gap:14px;
  border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 90%,transparent);
}
[data-design="schema"] .brand-mark { width:34px; height:34px; }
[data-design="schema"] .brand-name { font-size:1.35rem; }
[data-design="schema"] .center-nav {
  border:1px solid var(--line); border-radius:0; background:var(--surface); padding:3px; gap:3px;
  box-shadow:2px 2px 0 var(--line);
}
[data-design="schema"] .center-nav a,
[data-design="schema"] .center-nav .header-resume {
  position:relative; overflow:hidden; isolation:isolate;
  border-radius:0; border-right:0; margin:0; padding:8px 14px;
  font-weight:400; font-size:.72rem; font-family:var(--mono); text-transform:uppercase; letter-spacing:.05em;
  transition:color .25s var(--ease), background .25s var(--ease), transform .28s var(--ease), box-shadow .28s var(--ease);
}
[data-design="schema"] .center-nav a::before,
[data-design="schema"] .center-nav .header-resume::before {
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(120deg, color-mix(in srgb,var(--schema-sky-a) 55%,var(--text)), color-mix(in srgb,var(--schema-sky-b) 55%,var(--text)));
  transform:translateY(105%); transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
[data-design="schema"] .center-nav a::after {
  content:""; position:absolute; left:10px; right:10px; bottom:5px; height:1px;
  background:currentColor; transform:scaleX(0); transform-origin:left center;
  transition:transform .3s cubic-bezier(.2,.8,.2,1); opacity:.7;
}
[data-design="schema"] .center-nav a:hover,
[data-design="schema"] .center-nav a.active {
  color:var(--bg); transform:translateY(-2px); box-shadow:0 4px 0 color-mix(in srgb,var(--line) 70%,transparent);
  background:transparent;
}
[data-design="schema"] .center-nav a:hover::before,
[data-design="schema"] .center-nav a.active::before { transform:translateY(0); }
[data-design="schema"] .center-nav a:hover::after,
[data-design="schema"] .center-nav a.active::after { transform:scaleX(1); opacity:0; }
[data-design="schema"] .center-nav .header-resume {
  background:var(--text); color:var(--bg); border-right:0;
}
[data-design="schema"] .center-nav .header-resume::before {
  background:linear-gradient(120deg, var(--schema-sky-c), var(--schema-sky-a));
}
[data-design="schema"] .center-nav .header-resume:hover {
  color:var(--text); transform:translateY(-2px) scale(1.02);
  box-shadow:0 5px 0 var(--line); background:transparent;
}
[data-design="schema"] .center-nav .header-resume:hover::before { transform:translateY(0); }
[data-design="schema"] .icon-button,
[data-design="schema"] .design-toggle { height:34px; min-height:34px; }
[data-design="schema"] .icon-button { width:34px; }
[data-design="schema"] .design-toggle { padding:0 10px; font-size:.75rem; }

/* Terminal boot loader */
.boot-loader {
  position:fixed; inset:0; z-index:10000; margin:0; padding:clamp(18px,4vw,36px);
  background:#000; color:#33ff66; overflow:auto;
  font:400 clamp(.85rem,2.2vw,1rem)/1.55 'IBM Plex Mono',ui-monospace,monospace;
  display:flex; align-items:flex-start; justify-content:flex-start;
}
.boot-terminal {
  margin:0; white-space:pre-wrap; word-break:break-word; width:min(720px,100%);
  text-shadow:0 0 8px color-mix(in srgb,#33ff66 35%,transparent);
}
.boot-line { min-height:1.55em; }
.boot-line::after {
  content:"▋"; display:inline-block; margin-left:2px; animation:boot-caret .8s steps(1) infinite;
  color:#33ff66;
}
.boot-line:not(:last-child)::after { content:none; }
@keyframes boot-caret {
  0%,49% { opacity:1; }
  50%,100% { opacity:0; }
}
.boot-loader.is-exiting {
  animation:boot-exit .75s cubic-bezier(.2,.8,.2,1) forwards;
}
@keyframes boot-exit {
  0% { opacity:1; clip-path:inset(0 0 0 0); filter:none; }
  45% { opacity:1; filter:contrast(1.2); }
  100% { opacity:0; clip-path:inset(0 0 100% 0); pointer-events:none; }
}
html.is-booting { overflow:hidden; }
html.is-booting body > :not(.boot-loader) { visibility:hidden; }
html.is-revealing .site-header,
html.is-revealing #main,
html.is-revealing .habib-chat-root {
  animation:site-rise .85s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes site-rise {
  from { opacity:0; transform:translateY(18px) scale(.985); filter:blur(6px); }
  to { opacity:1; transform:none; filter:none; }
}
@media (prefers-reduced-motion:reduce) {
  .boot-loader.is-exiting { animation:none; opacity:0; }
  .boot-line::after { animation:none; }
  html.is-revealing .site-header,
  html.is-revealing #main,
  html.is-revealing .habib-chat-root { animation:none; }
}

/* Header design chooser and study dialog. */
dialog { color:var(--text); background:var(--bg); border:1px solid var(--line); border-radius:24px; box-shadow:0 35px 100px #0006; padding:30px; max-height:calc(100svh - 40px); overflow-y:auto; overscroll-behavior:contain; }
dialog::backdrop { background:#050709b8; backdrop-filter:blur(10px); }
dialog[open] { animation:panel-in .25s var(--ease); }
html:has(dialog[open]),
body:has(dialog[open]) { overflow:hidden; overscroll-behavior:none; touch-action:none; }
body.is-scroll-locked {
  position:fixed; left:0; right:0; width:100%; overflow:hidden; overscroll-behavior:none;
}
.resume-dialog {
  width:min(980px, calc(100vw - 24px));
  height:min(900px, calc(100svh - 24px));
  max-height:calc(100svh - 24px);
  padding:0; overflow:hidden; border-radius:22px;
  background:color-mix(in srgb,var(--bg) 96%,var(--surface));
  overscroll-behavior:contain;
}
.resume-dialog::backdrop { background:#050709cc; backdrop-filter:blur(12px); }
.resume-shell { display:grid; grid-template-rows:auto 1fr; height:100%; min-height:0; overscroll-behavior:contain; }
.resume-toolbar {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:16px 18px; border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 70%,transparent);
}
.resume-heading { display:flex; flex-direction:column; gap:2px; min-width:0; }
.resume-heading strong { font:700 1rem/1.3 var(--display); letter-spacing:-.02em; }
.resume-heading span { color:var(--muted); font-size:.75rem; }
.resume-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.resume-actions .button { min-height:40px; padding:8px 14px; gap:10px; font-size:.8125rem; }
.resume-frame-wrap { min-height:0; background:color-mix(in srgb,var(--surface) 55%,#000); overscroll-behavior:contain; touch-action:pan-y; }
.resume-frame { display:block; width:100%; height:100%; min-height:70svh; border:0; background:#111; }
@media (max-width:700px) {
  .resume-toolbar { flex-direction:column; align-items:stretch; }
  .resume-actions { width:100%; }
  .resume-actions .button { flex:1 1 auto; justify-content:center; }
  .resume-frame { min-height:62svh; }
}
#project-dialog { width:min(740px,calc(100% - 28px)); padding:48px; }
.project-close { position:absolute; right:20px; top:20px; }
#project-title { margin:22px 30px 20px 0; font-size:2.8rem; }
.project-intro { font-size:1.1rem; }
.detail-metric { margin:28px 0; padding:23px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; align-items:center; gap:25px; }
.detail-metric strong { font:500 4rem/1 var(--display); color:var(--accent); }
.detail-metric span { font-size:.875rem; color:var(--muted); }
#project-detail h3 { font-size:1.25rem; margin-bottom:12px; }
#project-detail .skill-pills { margin-top:23px; }
#project-detail .actions { margin-top:30px; }

@keyframes float { 0%,100% { transform:translateY(0) rotate(-6deg); } 50% { transform:translateY(-15px) rotate(6deg); } }
@keyframes blink { 0%,60% { opacity:1; } 61%,100% { opacity:0; } }
@keyframes panel-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }

@media (min-width:1600px) { .orbit-hero { min-height:800px; } }
@media (max-width:1200px) {
  .site-header { gap:15px; padding:0 22px; }
  .brand-name { font-size:1.05rem; }
  .brand-mark { width:45px; height:45px; }
  .center-nav a { padding:8px 12px; }
  .current-design { display:none; }
  .shift-title h1 { font-size:7.2vw; }
  .shift-hero-copy { align-items:start; flex-direction:column; }
}
@media (max-width:860px) {
  :root { --header-height:64px; }
  html { scroll-padding-top:84px; }
  .site-header { grid-template-columns:minmax(0,1fr) auto; grid-template-rows:64px; height:64px; gap:10px; padding:0 16px; padding-top:env(safe-area-inset-top); }
  .nav-toggle { display:inline-flex; }
  .center-nav {
    position:fixed; top:calc(var(--header-height) + env(safe-area-inset-top,0px) + 10px);
    left:max(12px, env(safe-area-inset-left,0px)); right:max(12px, env(safe-area-inset-right,0px));
    z-index:45; display:flex; flex-direction:column; gap:6px; padding:14px;
    border:1px solid var(--line); border-radius:22px; background:color-mix(in srgb,var(--bg) 92%,var(--surface));
    box-shadow:0 24px 70px color-mix(in srgb,#000 35%,transparent); backdrop-filter:blur(24px);
    opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-10px) scale(.98);
    transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s;
  }
  html.nav-open .center-nav { opacity:1; visibility:visible; pointer-events:auto; transform:none; }
  .center-nav a { width:100%; min-height:48px; display:flex; align-items:center; justify-content:flex-start; padding:12px 16px; border-radius:14px; font-size:1rem; font-weight:500; }
  .center-nav a:hover, .center-nav a.active { transform:none; }
  .center-nav .header-resume { margin-left:0; margin-top:4px; justify-content:center; background:var(--accent); color:var(--accent-ink); }
  .nav-backdrop { display:block; position:fixed; inset:0; z-index:28; background:color-mix(in srgb,#000 42%,transparent); backdrop-filter:blur(6px); opacity:0; pointer-events:none; transition:opacity .22s var(--ease); }
  html.nav-open .nav-backdrop:not([hidden]) { opacity:1; pointer-events:auto; }
  .header-tools { gap:8px; }
  .icon-button, .design-toggle { width:40px; height:40px; }
  .design-toggle { padding:0; justify-content:center; border-radius:50%; }
  .design-toggle>span:nth-child(2),#chevron-icon { display:none; }
  [data-design="aura"] .site-header { height:64px; margin:0; top:0; border-radius:0; padding:0 16px; }
  [data-design="folio"] .site-header { height:64px; }
  [data-design="shift"] .center-nav a { border:0; padding:12px 16px; text-transform:none; }
  [data-design="shift"] .center-nav a:last-child { border:0; }
  [data-design="schema"] .center-nav a,
  [data-design="schema"] .center-nav .header-resume { border-right:0; width:100%; }
  .orbit-hero { min-height:calc(100svh - var(--header-height)); padding:48px 6vw 120px; align-items:end; }
  .orbit-copy { width:min(100%,540px); }
  .orbit-universe { width:min(120%,520px); right:-18%; top:8%; bottom:18%; opacity:.55; }
  .orbit-copy h1 { font-size:clamp(2.6rem,9vw,4rem); }
  .orbit-project { padding:22px; }
  .orbit-project h3 { font-size:1.5rem; }
  .orbit-about { gap:6vw; }
  .signal-hero { grid-template-columns:1fr; gap:28px; padding:40px 5vw 48px; min-height:auto; }
  .signal-hero-copy h1 { font-size:clamp(2.8rem,10vw,4.4rem); }
  .signal-metrics { grid-template-columns:1fr; gap:12px; }
  .signal-stage-frame { min-height:340px; }
  .signal-stage .scene { min-height:280px; height:300px; }
  .signal-channels { grid-template-columns:1fr; }
  .signal-about { grid-template-columns:1fr; gap:28px; padding:56px 5vw; }
  .signal-contact { margin:10px 5vw 56px; padding:32px 22px; flex-direction:column; align-items:stretch; }
  .aura-hero { min-height:700px; }
  .aura-constellation { gap:25px; }
  .aura-card { padding:27px; }
  .folio-cover-bottom { gap:20px; }
  .folio-cover-bottom>p { font-size:1.4rem; }
  .folio-study summary { grid-template-columns:40px 1fr 25px; gap:15px; }
  .folio-category { display:none; }
  .shift-slide { flex-basis:92%; }
  .shift-glyph { font-size:6rem; }
  .shift-connect { gap:20px; padding:18px; }
  .schema-hero-stage { min-height:calc(100svh - var(--header-height)); padding-block:20px; }
  .schema-hero { min-height:auto; padding:22px 14px 24px; margin:0; }
  .schema-news-body { flex-direction:column; align-items:flex-start; }
  .schema-project-list { grid-template-columns:1fr; }
  .schema-project { grid-template-columns:36px 1fr 18px; gap:10px; padding:14px 12px; min-height:0; border-right:0; }
  .schema-project:nth-child(n) { border-bottom:1px solid var(--line); }
  .schema-project:last-child { border-bottom:0; }
  .schema-project-tag { display:none; }
  .schema-manifesto { grid-template-columns:1fr; }
  .schema-manifesto article:first-child { border-right:0; border-bottom:1px solid var(--line); }
  [data-design="schema"] .experience { grid-template-columns:1fr; gap:0; }
  .schema-lower { grid-template-columns:1fr; gap:14px; }
  .schema-work, .schema-about { padding:20px 0 4px; }
  .page-footer { flex-wrap:wrap; gap:18px; padding:28px 5vw; }
  .footer-brand { width:100%; }
  .page-footer nav { width:100%; gap:10px; }
  .page-footer nav .text-link { padding:10px 14px; border:1px solid var(--line); border-radius:100px; border-bottom-color:var(--line); }
  .page-footer nav .text-link:hover { border-color:var(--accent); }
}
@media (max-width:700px) {
  :root { --header-height:60px; }
  html { scroll-padding-top:76px; }
  .site-header { height:60px; grid-template-rows:60px; padding:0 14px; gap:8px; }
  .brand { gap:8px; min-width:0; }
  .brand-mark { width:36px; height:36px; }
  .brand-name { font-size:.92rem; }
  .header-tools { gap:6px; }
  .icon-button, .design-toggle, .nav-toggle { width:38px; height:38px; }
  [data-design="aura"] .site-header { padding:0 14px; height:60px; }
  [data-design="folio"] .site-header { height:60px; }
  [data-design="folio"] .brand-name { font-size:.95rem; }
  h1 { font-size:clamp(2.4rem,10vw,3rem); }
  h2 { font-size:clamp(2rem,8vw,2.5rem); }
  .eyebrow { font-size:.6875rem; letter-spacing:.04em; }
  .section-wrap { padding:56px 5vw; }
  .button { min-height:48px; padding:12px 18px; gap:12px; }
  .actions { width:100%; gap:10px; }
  .actions .button { flex:1 1 100%; }
  .orbit-hero {
    min-height:calc(100svh - var(--header-height));
    padding:28px 5vw 28px; align-items:stretch; display:flex; flex-direction:column; justify-content:flex-end;
    background:
      radial-gradient(ellipse 100% 60% at 50% 18%, color-mix(in srgb,var(--accent) 16%,transparent), transparent 68%),
      linear-gradient(180deg, color-mix(in srgb,var(--bg) 15%,transparent) 0%, var(--bg) 56%);
  }
  .orbit-copy { width:100%; position:relative; z-index:2; padding-top:12px; }
  .orbit-copy h1 { font-size:clamp(2.35rem,9vw,3.4rem); line-height:1.1; letter-spacing:-.05em; }
  .orbit-copy p { font-size:1rem; margin:18px 0 22px; max-width:34ch; }
  .orbit-copy p br { display:none; }
  .orbit-copy .eyebrow { margin-bottom:16px; max-width:100%; }
  .orbit-universe {
    position:absolute; left:-12%; right:-12%; top:2%; height:46%;
    width:auto; bottom:auto; opacity:.88; z-index:1; pointer-events:none;
  }
  .orbit-universe .scene { width:100%; height:100%; }
  .orbit-keywords { width:min(60cqmin, 82%); height:min(60cqmin, 82%); }
  .orbit-ring-outer .orbit-chip { --radius:30cqmin; font-size:.56rem; padding:4px 7px; }
  .orbit-ring-mid .orbit-chip { --radius:20cqmin; font-size:.52rem; padding:3px 6px; }
  .orbit-ring-inner .orbit-chip { --radius:11cqmin; font-size:.48rem; padding:3px 5px; }
  .orbit-ring-outer .orbit-chip:nth-child(n+5),
  .orbit-ring-mid .orbit-chip:nth-child(n+4),
  .orbit-ring-inner .orbit-chip:nth-child(n+3) { display:none; }
  .scene-coordinate.top { top:10%; right:8%; }
  .scene-coordinate.bottom { display:none; }
  .orbit-bottom { position:relative; bottom:auto; left:auto; right:auto; margin-top:20px; z-index:2; justify-content:flex-start; width:100%; }
  .orbit-bottom a { font-size:.6875rem; }
  .orbit-projects { grid-template-columns:1fr; gap:1px; }
  .orbit-project { padding:20px; border-radius:0; }
  .orbit-project h3 { font-size:1.45rem; }
  .project-visual { height:168px; }
  .orbit-about { grid-template-columns:1fr; gap:36px; }
  .orbit-contact { padding-top:40px; padding-bottom:72px; }
  .orbit-contact h2 { font-size:clamp(2.1rem,9vw,2.8rem); }
  .page-footer { flex-direction:column; align-items:stretch; gap:16px; padding:28px 5vw calc(28px + env(safe-area-inset-bottom)); }
  .footer-brand { width:100%; }
  .page-footer nav { width:100%; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .page-footer nav .text-link { justify-content:center; margin:0; }
  .page-footer nav .text-link:last-child { grid-column:1/-1; }
  .signal-page { display:block; }
  .signal-hero { padding:28px 5vw 36px; gap:22px; }
  .signal-hero-copy h1 { font-size:clamp(2.5rem,12vw,3.6rem); }
  .signal-metrics { margin-top:24px; padding-top:20px; }
  .signal-stage-frame { min-height:300px; border-radius:16px; }
  .signal-stage .scene { height:260px; min-height:260px; }
  .signal-work { padding:48px 5vw 20px; }
  .signal-channel { padding:22px; border-radius:16px; }
  .signal-channel h3 { font-size:1.35rem; }
  .signal-about { padding:40px 5vw; gap:24px; }
  .signal-about-path { padding:20px; }
  .signal-contact { margin:8px 5vw 48px; padding:28px 20px; }
  .aura-hero { min-height:calc(100svh - var(--header-height)); height:auto; padding:110px 5vw 90px; }
  .aura-hero>.scene { inset:0 -8%; opacity:.75; }
  .aura-copy h1 { font-size:clamp(2.5rem,9vw,3.6rem); margin:20px 0; }
  .aura-copy .eyebrow { max-width:280px; margin:auto; }
  .aura-copy p { font-size:1rem; }
  .aura-copy p br { display:none; }
  .aura-constellation { grid-template-columns:1fr; padding-bottom:0; gap:18px; }
  .aura-card { padding:24px; border-radius:24px; margin:0!important; }
  .aura-card-orb { width:68px; height:68px; font-size:2.6rem; margin-bottom:20px; }
  .aura-about .experience { grid-template-columns:1fr; margin-top:28px; gap:0; }
  .aura-about .experience>div { padding:20px 0; }
  .aura-contact { padding-top:28px; }
  .folio-page { padding:0 5vw; }
  .folio-kicker { font-size:.5625rem; gap:16px; flex-wrap:wrap; }
  .folio-cover h1 { font-size:clamp(2.6rem,13vw,4.2rem); line-height:1.05; padding:24px 0; }
  .folio-cover h1 em { display:block; }
  .folio-cover-bottom { grid-template-columns:1fr; gap:18px; padding-bottom:24px; }
  .folio-cover-bottom>p { font-size:1.2rem; }
  .folio-cover-bottom .scene { height:200px; }
  .folio-cover-bottom>div:last-child { display:flex; flex-direction:column; align-items:stretch; gap:14px; }
  .folio-cover-bottom>div:last-child p { font-size:.9rem; }
  .folio-cover-bottom .button { margin:0; width:100%; justify-content:center; }
  .folio-section-label { gap:12px; padding:20px 0; }
  .folio-section-label h2 { font-size:1.2rem; }
  .folio-section-label>span:last-child:not(:first-child) { display:none; }
  .folio-study summary { grid-template-columns:25px 1fr 21px; gap:12px; padding:22px 0; }
  .folio-study summary h3 { font-size:clamp(1.35rem,6.5vw,1.7rem); }
  .folio-study-body { grid-template-columns:1fr; padding:0 0 28px 37px; gap:18px; }
  .folio-large-number { font-size:3.5rem; text-align:left; }
  .folio-profile-body { grid-template-columns:1fr; gap:24px; padding:28px 0; }
  .folio-profile-body>h3 { font-size:clamp(1.9rem,9vw,2.5rem); }
  .folio-contact { padding:28px 0 48px; }
  .folio-contact h2 { font-size:clamp(2.1rem,10vw,3rem); }
  .shift-hero { grid-template-columns:1fr; }
  .shift-title { padding:28px 5vw; }
  .shift-title h1 { font-size:clamp(2.6rem,12vw,4rem); margin:20px 0; }
  .shift-hero-copy { flex-direction:column; align-items:stretch; gap:14px; }
  .shift-hero-copy p { font-size:.9rem; }
  .shift-hero-copy .button { width:100%; justify-content:center; }
  .shift-object { height:300px; border-left:0; border-top:2px solid var(--text); }
  .shift-work { padding:28px 5vw; }
  .shift-section-heading { flex-wrap:wrap; gap:12px; }
  .shift-section-heading h2 { font-size:1.05rem; }
  .carousel-controls { gap:8px; font-size:.6875rem; }
  .carousel-controls .icon-button { width:36px; height:36px; }
  .shift-track { gap:12px; }
  .shift-slide { flex-basis:100%; padding:20px; min-height:420px; }
  .shift-slide-top { font-size:.625rem; }
  .shift-slide-body { flex-direction:column-reverse; align-items:start; gap:16px; padding:18px 0; }
  .shift-glyph { font-size:3.5rem; }
  .shift-slide-body h3 { font-size:clamp(1.9rem,8vw,2.4rem); }
  .shift-slide-bottom { gap:14px; }
  .shift-slide-bottom p { font-size:.875rem; }
  .shift-open { width:44px; height:44px; }
  .shift-about { grid-template-columns:1fr; padding:36px 5vw; gap:28px; }
  .shift-about h2 { font-size:clamp(2.2rem,10vw,3rem); }
  .shift-star { font-size:3.4rem; margin-bottom:16px; }
  .shift-contact { padding:36px 5vw; flex-direction:column; align-items:start; }
  .shift-contact h2 { font-size:clamp(2rem,9vw,3.2rem); }
  .shift-connect { padding:14px 18px; gap:24px; max-width:100%; width:100%; justify-content:space-between; }
  dialog { padding:22px; border-radius:18px; width:min(740px,calc(100% - 20px)); }
  .dialog-heading h2 { font-size:1.35rem; }
  .design-options { grid-template-columns:1fr; gap:8px; }
  .design-description { font-size:.6875rem; }
  .dialog-footer { flex-wrap:wrap; gap:10px; }
  #project-dialog { padding:42px 22px 24px; }
  #project-title { font-size:clamp(1.5rem,7vw,2rem); }
  .project-intro { font-size:1rem; }
}
/* Respect system settings and the visitor's pause choice across CSS and WebGL. */
[data-motion="off"] *:not(.schema-blob):not(.brand-mark):not(.brand-ring):not(.brand-node),
[data-motion="off"] *::before,
[data-motion="off"] *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
[data-motion="off"] .reveal { opacity:1; transform:none; }
[data-motion="off"] .tilt { transform:none!important; }
@media (prefers-reduced-motion:reduce) {
  *:not(.schema-blob):not(.brand-mark):not(.brand-ring):not(.brand-node),
  *::before,
  *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .reveal { opacity:1; transform:none; }
}
/* Schema color wash always drifts (signature ambient motion). */
html[data-design="schema"] .schema-blob-a { animation:schema-drift-a 9s ease-in-out infinite alternate !important; }
html[data-design="schema"] .schema-blob-b { animation:schema-drift-b 11s ease-in-out infinite alternate !important; }
html[data-design="schema"] .schema-blob-c { animation:schema-drift-c 8s ease-in-out infinite alternate !important; }
html[data-design="schema"] .schema-blob-d { animation:schema-drift-d 10s ease-in-out infinite alternate !important; }

/* ATLAS — cartographic depth: teal globe field, frosted panels, layered scroll. */
html[data-design="atlas"] { --bg:#041018; --surface:#0a1c26; --text:#eef6f4; --muted:#8fa8ad; --line:#1f3a45; --accent:#4fd6b5; --accent-ink:#04241c; --display:'Manrope',sans-serif; --font:'DM Sans',sans-serif; }
html[data-design="atlas"][data-mode="light"] { --bg:#eaf4f3; --surface:#d7e9e7; --text:#0e262c; --muted:#4f686e; --line:#aec9c7; --accent:#0a6e5c; --accent-ink:#fff; }
[data-design="atlas"] body { background-image:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 32%),linear-gradient(120deg,color-mix(in srgb,var(--surface) 65%,transparent),transparent 50%); }
[data-design="atlas"] .site-header {
  border-bottom-color:color-mix(in srgb,var(--accent) 24%,var(--line));
  background:color-mix(in srgb,var(--bg) 62%,transparent);
  backdrop-filter:blur(20px) saturate(1.2);
}
[data-design="atlas"] .center-nav { background:color-mix(in srgb,var(--surface) 75%,transparent); }
.atlas-page { position:relative; isolation:isolate; overflow:clip; }
.atlas-backdrop { position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.atlas-backdrop::before { content:''; position:absolute; width:min(74vw,900px); aspect-ratio:1; left:50%; top:56%; transform:translate(-50%,-50%); border:1px solid color-mix(in srgb,var(--accent) 16%,transparent); border-radius:50%; box-shadow:0 0 120px color-mix(in srgb,var(--accent) 9%,transparent),inset 0 0 120px color-mix(in srgb,var(--accent) 5%,transparent); }
.atlas-backdrop .scene { position:absolute; inset:14% 12% 2%; opacity:.72; }
.atlas-page > :not(.atlas-backdrop) { position:relative; z-index:1; }
.atlas-keywords { position:absolute; inset:0; display:grid; place-items:center; transform:translateY(7%); }
.atlas-ring {
  position:absolute; left:50%; top:50%;
  width:min(78vw,860px); aspect-ratio:1;
  transform:translate(-50%,-50%);
  border:1px dashed color-mix(in srgb,var(--accent) 18%,transparent);
  border-radius:50%;
}
.atlas-ring-outer { animation:atlas-ring-spin 48s linear infinite; }
.atlas-ring-inner {
  width:min(52vw,560px);
  border-style:solid;
  border-color:color-mix(in srgb,var(--accent) 22%,transparent);
  animation:atlas-ring-spin-rev 36s linear infinite;
}
.atlas-chip {
  --radius:clamp(180px, 36vw, 400px);
  transform: translate(-50%,-50%) rotate(var(--angle)) translateX(var(--radius)) rotate(calc(var(--angle) * -1));
  background:color-mix(in srgb,var(--bg) 78%,transparent);
  color:color-mix(in srgb,var(--accent) 70%,var(--text));
}
.atlas-ring-inner .atlas-chip { --radius:clamp(120px, 24vw, 260px); font-size:.68rem; padding:6px 10px; }
.atlas-hero,.atlas-work,.atlas-about,.atlas-path,.atlas-contact { position:relative; z-index:1; width:min(1220px,88vw); margin-inline:auto; }
.atlas-hero { min-height:calc(100svh - var(--header-height)); display:grid; grid-template-columns:1fr .42fr; align-items:start; gap:8vw; padding:36px 0 80px; }
.atlas-hero-copy { max-width:740px; margin-top:0; }
.atlas-hero h1 { font-size:clamp(3.7rem,7vw,7.5rem); margin:28px 0; line-height:1.02; }
.atlas-hero h1 em { color:var(--accent); }
.atlas-hero-copy>p { color:var(--text); max-width:600px; font-size:1.08rem; text-shadow:0 2px 22px var(--bg); }
.atlas-hero .stack-strip { margin-top:22px; }
.atlas-hero .actions { margin-top:28px; }
.atlas-intro { align-self:end; margin-bottom:8vh; padding:23px; border:1px solid var(--line); background:color-mix(in srgb,var(--bg) 72%,transparent); backdrop-filter:blur(18px); border-radius:18px; }
.atlas-intro>span { color:var(--accent); font:500 .75rem var(--mono); }
.atlas-intro p { margin-top:10px; font-size:.875rem; color:var(--text); }
.atlas-work { padding:110px 0; }
.atlas-heading { max-width:650px; padding:34px; background:color-mix(in srgb,var(--bg) 82%,transparent); border:1px solid var(--line); backdrop-filter:blur(22px); border-radius:25px; }
.atlas-heading h2 { margin-top:18px; }
.atlas-project-list { display:grid; gap:18px; width:min(760px,72vw); margin:70px 0 0 auto; }
.atlas-project { width:100%; display:grid; grid-template-columns:45px 1fr 28px; gap:24px; align-items:start; padding:30px; text-align:left; border:1px solid var(--line); border-radius:22px; background:color-mix(in srgb,var(--surface) 78%,transparent); backdrop-filter:blur(22px); box-shadow:0 24px 65px #0002; }
.atlas-project>span { font:500 .75rem var(--mono); color:var(--accent); }
.atlas-project small { font:500 .7rem var(--mono); color:var(--muted); letter-spacing:.07em; }
.atlas-project h3 { margin:8px 0 12px; font-size:2rem; }
.atlas-project p { font-size:.95rem; }
.atlas-project>svg { margin-top:4px; }
.atlas-project:hover { transform:translateX(-12px); background:color-mix(in srgb,var(--surface) 92%,transparent); border-color:var(--accent); box-shadow:0 25px 80px color-mix(in srgb,var(--accent) 9%,transparent); }
.atlas-project:hover>svg { transform:translate(4px,-4px); }
.atlas-about { min-height:700px; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:10vw; padding:110px 0; }
.atlas-statement,.atlas-toolkit,.atlas-path,.atlas-contact { border:1px solid var(--line); background:color-mix(in srgb,var(--bg) 80%,transparent); backdrop-filter:blur(22px); border-radius:28px; }
.atlas-statement { padding:38px; }
.atlas-statement h2 { margin:20px 0; }
.atlas-statement p { font-size:1.05rem; color:var(--text); }
.atlas-toolkit { padding:38px; }
.atlas-skills { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.atlas-skills span { padding:9px 13px; border:1px solid var(--line); border-radius:100px; font-size:.875rem; color:var(--text); background:color-mix(in srgb,var(--surface) 70%,transparent); }
.atlas-skills span:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
.atlas-path { display:grid; grid-template-columns:.65fr 1fr; gap:8vw; padding:50px; margin-top:100px; margin-bottom:100px; }
.atlas-path h2 { margin-top:20px; }
.atlas-contact { padding:70px 50px; margin-bottom:100px; }
.atlas-contact h2 { margin:18px 0 30px; font-size:clamp(3rem,5vw,5.7rem); }

/* Compact design dropdown: familiar list behavior, keyboard navigation and no modal card wall.
   Theme tokens are scoped to html so option buttons with data-design do not inherit dark-theme ink. */
.design-menu {
  position:absolute; top:calc(100% + 14px); right:0; left:auto;
  width:min(310px,calc(100vw - 24px)); max-width:calc(100vw - 24px); max-height:min(70vh,520px);
  overflow:auto; overscroll-behavior:contain; padding:12px; color:var(--text);
  background:color-mix(in srgb,var(--bg) 96%,var(--surface)); border:1px solid var(--line); border-radius:17px;
  box-shadow:0 22px 65px color-mix(in srgb,#000 38%,transparent); backdrop-filter:blur(24px);
  transform-origin:top right; animation:menu-in .2s var(--ease); z-index:50;
}
.design-menu button { color:var(--text); }
.design-menu[hidden] { display:none; }
.design-menu-heading { padding:7px 8px 12px; border-bottom:1px solid var(--line); color:var(--text); }
.design-menu-heading strong { font-size:.875rem; color:var(--text); }
.design-menu-heading span { font-size:.7rem; color:var(--muted); }
.design-menu .design-options { display:flex; flex-direction:column; gap:3px; padding:7px 0; }
.design-menu .design-option { display:grid; grid-template-columns:34px minmax(0,1fr) 25px; gap:11px; align-items:center; width:100%; min-height:52px; padding:6px 9px; border:0; border-radius:10px; background:transparent; color:var(--text); text-align:left; }
.design-menu .design-option:hover,.design-menu .design-option:focus-visible { background:var(--surface); transform:none; }
.design-menu .design-option[aria-checked="true"] { background:color-mix(in srgb,var(--accent) 13%,var(--surface)); box-shadow:none; }
.design-symbol { display:grid; place-items:center; width:32px; height:32px; border:1px solid var(--line); border-radius:8px; color:var(--accent); background:color-mix(in srgb,var(--surface) 70%,transparent); font:500 .95rem var(--mono); }
.design-option[aria-checked="true"] .design-symbol { color:var(--accent-ink); background:var(--accent); border-color:var(--accent); }
.design-option>span:nth-child(2) { min-width:0; }
.design-option strong { display:block; color:var(--text); font-size:.875rem; font-weight:600; }
.design-option small { display:block; color:var(--muted); font-size:.7rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.design-number { color:var(--muted); font:400 .7rem var(--mono); }
html[data-mode="light"] .design-option small,
html[data-mode="light"] .design-number { color:color-mix(in srgb,var(--text) 58%,var(--muted)); }

/* Keep menus fully on-screen on phone, tablet, and small laptop widths. */
@media (max-width:1024px) {
  .design-menu {
    position:fixed;
    top:calc(var(--header-height) + env(safe-area-inset-top,0px) + 10px);
    left:max(12px, env(safe-area-inset-left,0px));
    right:max(12px, env(safe-area-inset-right,0px));
    width:auto; max-width:none; max-height:min(70svh,560px);
    transform-origin:top center; border-radius:18px;
  }
  .design-option small { white-space:normal; }
  #project-dialog { width:min(740px,calc(100vw - 24px)); max-width:calc(100vw - 24px); }
}
@media (max-width:700px) {
  .design-menu {
    top:calc(var(--header-height) + env(safe-area-inset-top,0px) + 8px);
    left:max(10px, env(safe-area-inset-left,0px));
    right:max(10px, env(safe-area-inset-right,0px));
    max-height:min(68svh,520px); padding:10px; border-radius:16px;
  }
  .design-menu .design-option { min-height:48px; gap:10px; padding:8px; grid-template-columns:32px minmax(0,1fr) 22px; }
  .design-symbol { width:30px; height:30px; }
}

/* The content is shared, while each visual system gives its footer a distinct finish. */
[data-design="atlas"] .page-footer { position:relative; z-index:1; width:88vw; margin:0 auto 30px; border:1px solid var(--line); border-radius:18px; background:color-mix(in srgb,var(--bg) 84%,transparent); backdrop-filter:blur(20px); }
[data-design="signal"] .page-footer { border-top:2px solid var(--accent); font-family:var(--mono); text-transform:uppercase; background:var(--surface); }
[data-design="aura"] .page-footer { width:min(1180px,88vw); margin:0 auto 25px; border:1px solid var(--line); border-radius:100px; background:color-mix(in srgb,var(--surface) 65%,transparent); padding-inline:28px; }
[data-design="folio"] .page-footer { border-top:3px double var(--line); font-family:var(--serif); font-size:.9rem; }
[data-design="folio"] .page-footer nav { font-style:italic; }
[data-design="shift"] .page-footer { border-top:2px solid var(--text); background:var(--text); color:var(--bg); font-weight:600; text-transform:uppercase; }

@keyframes brand-float { 0%,100% { translate:0 0; } 50% { translate:0 -2px; } }
@keyframes brand-ring-a { to { transform:rotateZ(360deg) rotateY(24deg); } }
@keyframes brand-ring-b { to { transform:rotateZ(360deg) rotateX(25deg); } }
@keyframes brand-ring-c { to { transform:rotateZ(-360deg) rotateY(-22deg); } }
@keyframes node-pulse { 0%,100% { opacity:.55; transform:scale(.8); } 50% { opacity:1; transform:scale(1.35); } }
@keyframes atlas-spin { to { transform:translate(-50%,-50%) rotate(360deg); } }
@keyframes atlas-ring-spin { to { transform:translate(-50%,-50%) rotate(360deg); } }
@keyframes atlas-ring-spin-rev { to { transform:translate(-50%,-50%) rotate(-360deg); } }
@keyframes orbit-chip-spin {
  from { transform: translate(-50%,-50%) rotate(var(--angle)) translateX(var(--radius)) rotate(calc(var(--angle) * -1)); }
  to { transform: translate(-50%,-50%) rotate(calc(var(--angle) + 360deg)) translateX(var(--radius)) rotate(calc((var(--angle) + 360deg) * -1)); }
}
@keyframes orbit-chip-spin-rev {
  from { transform: translate(-50%,-50%) rotate(var(--angle)) translateX(var(--radius)) rotate(calc(var(--angle) * -1)); }
  to { transform: translate(-50%,-50%) rotate(calc(var(--angle) - 360deg)) translateX(var(--radius)) rotate(calc((var(--angle) - 360deg) * -1)); }
}
@keyframes menu-in { from { opacity:0; transform:translateY(-8px) scale(.97); } }

@media (max-width:1200px) {
  .center-nav .header-resume { margin-left:5px; padding-inline:14px; }
  .atlas-project-list { width:min(760px,78vw); }
}
@media (max-width:1000px) {
  .atlas-backdrop { inset:0 -20vw 0 0; }
  .atlas-backdrop .scene { inset:16% 6% 0; }
  .atlas-keywords { transform:translateY(8%); }
  .atlas-ring-outer { width:min(88vw,720px); }
  .atlas-ring-inner { width:min(58vw,460px); }
  .atlas-hero { grid-template-columns:1fr; align-content:center; }
  .atlas-intro { width:260px; justify-self:end; margin:0; }
  .atlas-project-list { width:82vw; }
}
@media (max-width:700px) {
  [data-design="aura"] .page-footer { border-radius:22px; width:min(1180px,92vw); padding-inline:18px; flex-wrap:wrap; }
  [data-design="atlas"] .page-footer { width:92vw; }
  .atlas-backdrop { opacity:.8; }
  .atlas-backdrop::before { width:110vw; }
  .atlas-backdrop .scene { inset:18% 0 16%; opacity:.8; }
  .atlas-keywords { transform:translateY(6%); }
  .atlas-ring-outer { width:min(96vw,420px); }
  .atlas-ring-inner { width:min(68vw,280px); }
  .atlas-chip { --radius:clamp(140px, 42vw, 200px); font-size:.62rem; padding:5px 9px; }
  .atlas-ring-inner .atlas-chip { --radius:clamp(90px, 28vw, 130px); }
  .atlas-ring-inner .atlas-chip:nth-child(n+4),
  .atlas-ring-outer .atlas-chip:nth-child(n+5) { display:none; }
  .atlas-hero,.atlas-work,.atlas-about,.atlas-path,.atlas-contact { width:min(1220px,92vw); }
  .atlas-hero { min-height:auto; padding:36px 0 70px; }
  .atlas-hero h1 { font-size:clamp(2.6rem,12vw,4.7rem); }
  .atlas-hero-copy>p { font-size:1rem; }
  .atlas-intro { width:min(100%,280px); justify-self:start; }
  .atlas-work { padding:70px 0; }
  .atlas-heading { padding:26px; }
  .atlas-project-list { width:100%; margin-top:35px; }
  .atlas-project { grid-template-columns:28px 1fr 20px; gap:13px; padding:23px 19px; border-radius:17px; }
  .atlas-project h3 { font-size:1.6rem; }
  .atlas-project p { font-size:.875rem; }
  .atlas-about { grid-template-columns:1fr; gap:25px; padding:70px 0; min-height:0; }
  .atlas-statement,.atlas-toolkit { padding:26px; }
  .atlas-path { grid-template-columns:1fr; gap:40px; padding:28px; margin:20px auto 70px; }
  .atlas-contact { padding:45px 28px; margin-bottom:70px; }
  .atlas-contact h2 { font-size:clamp(2.4rem,10vw,4rem); }
}
@media (max-width:420px) {
  .brand-name { max-width:46vw; overflow:hidden; text-overflow:ellipsis; }
  .orbit-universe { top:0; height:42%; opacity:.9; }
  .orbit-bottom { flex-wrap:wrap; gap:10px; }
  #project-dialog { width:calc(100% - 16px); padding:40px 18px 22px; }
}
@media (max-width:360px) {
  .brand-name { font-size:.8125rem; }
  .brand-mark { width:32px; height:32px; }
  .site-header { padding:0 10px; }
  .orbit-copy h1 { font-size:2.15rem; }
  .actions { gap:8px; }
  .button { padding:10px 13px; gap:10px; font-size:.8125rem; }
  .shift-slide-body h3 { font-size:2rem; }
}

/* Habib local chat */
.habib-chat-root { position:fixed; right:18px; bottom:18px; z-index:80; font-family:var(--font); }
.habib-chat-fab {
  display:inline-flex; align-items:center; gap:8px; min-height:52px; padding:0 16px 0 14px;
  border-radius:999px; border:1px solid color-mix(in srgb,var(--line) 70%,transparent);
  background:color-mix(in srgb,var(--surface) 88%,transparent); color:var(--text);
  box-shadow:0 12px 40px color-mix(in srgb,#000 35%,transparent); backdrop-filter:blur(16px);
  transition:transform .35s cubic-bezier(.22,1.2,.36,1), background .25s, color .25s, border-color .25s, box-shadow .35s;
}
.habib-chat-fab:hover {
  transform:translateY(-3px) scale(1.03);
  box-shadow:0 16px 44px color-mix(in srgb,var(--accent) 22%,transparent), 0 12px 36px color-mix(in srgb,#000 28%,transparent);
}
.habib-chat-fab:active { transform:translateY(-1px) scale(.98); }
.habib-chat-fab-icon { width:20px; height:20px; flex:0 0 auto; transition:transform .35s cubic-bezier(.22,1.2,.36,1); }
.habib-chat-fab:hover .habib-chat-fab-icon { transform:rotate(-8deg) scale(1.06); }
.habib-chat-fab-label { font:600 .875rem/1 var(--display); letter-spacing:-.02em; }
.habib-chat-fab.is-open {
  background:var(--accent); color:var(--accent-ink); border-color:transparent;
  transform:translateY(-2px);
}
.habib-chat-fab.is-open:hover { transform:translateY(-3px) scale(1.02); }
.habib-chat-panel {
  position:absolute; right:0; bottom:66px; width:min(420px,calc(100vw - 24px)); height:min(560px,calc(100vh - 110px));
  display:flex; flex-direction:column; overflow:hidden; border-radius:22px;
  border:1px solid var(--line); background:color-mix(in srgb,var(--bg) 92%,var(--surface));
  box-shadow:0 24px 70px color-mix(in srgb,#000 42%,transparent); backdrop-filter:blur(18px);
  opacity:0; visibility:hidden; pointer-events:none;
  transform:translateY(18px) scale(.94);
  filter:blur(6px);
  transform-origin:bottom right;
  transition:
    opacity .32s cubic-bezier(.22,1,.36,1),
    transform .38s cubic-bezier(.22,1.2,.36,1),
    filter .32s ease,
    visibility 0s linear .32s,
    box-shadow .35s ease;
}
.habib-chat-panel.is-open {
  opacity:1; visibility:visible; pointer-events:auto;
  transform:translateY(0) scale(1);
  filter:blur(0);
  transition:
    opacity .28s cubic-bezier(.22,1,.36,1),
    transform .4s cubic-bezier(.22,1.2,.36,1),
    filter .28s ease,
    visibility 0s linear 0s,
    box-shadow .35s ease;
  box-shadow:0 28px 80px color-mix(in srgb,#000 46%,transparent), 0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent);
}
.habib-chat-header {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 14px 12px; border-bottom:1px solid var(--line);
}
.habib-chat-header strong { display:block; font:700 .95rem/1.2 var(--display); letter-spacing:-.03em; }
.habib-chat-close {
  width:34px; height:34px; border-radius:10px; background:transparent; color:var(--muted); font-size:1.35rem; line-height:1;
  transition:transform .25s cubic-bezier(.22,1.2,.36,1), background .2s, color .2s;
}
.habib-chat-close:hover { background:var(--surface); color:var(--text); transform:rotate(90deg); }
.habib-chat-status {
  position:relative; margin:10px 12px 0; padding:8px 10px; border-radius:12px; font-size:.75rem; color:var(--muted);
  background:var(--surface); overflow:hidden;
}
.habib-chat-status::after {
  content:""; position:absolute; left:0; bottom:0; height:2px; width:var(--habib-chat-progress,0%);
  background:var(--accent); transition:width .25s linear;
}
.habib-chat-messages {
  flex:1; overflow:auto; padding:14px 12px; display:flex; flex-direction:column; gap:10px;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb,var(--accent) 70%,transparent) color-mix(in srgb,var(--surface) 80%,transparent);
}
.habib-chat-messages::-webkit-scrollbar { width:8px; }
.habib-chat-messages::-webkit-scrollbar-track {
  margin:8px 0; background:color-mix(in srgb,var(--surface) 70%,transparent); border-radius:999px;
}
.habib-chat-messages::-webkit-scrollbar-thumb {
  border-radius:999px;
  background:linear-gradient(180deg, color-mix(in srgb,var(--accent) 85%,#fff), var(--accent));
  border:2px solid transparent; background-clip:padding-box;
  box-shadow:0 0 12px color-mix(in srgb,var(--accent) 35%,transparent);
  transition:background .25s ease, box-shadow .25s ease;
}
.habib-chat-messages::-webkit-scrollbar-thumb:hover {
  background:var(--accent);
  box-shadow:0 0 16px color-mix(in srgb,var(--accent) 55%,transparent);
}
.habib-chat-messages:hover::-webkit-scrollbar-thumb {
  animation:habib-scroll-glow 1.6s ease-in-out infinite;
}
@keyframes habib-scroll-glow {
  0%,100% { box-shadow:0 0 10px color-mix(in srgb,var(--accent) 30%,transparent); }
  50% { box-shadow:0 0 18px color-mix(in srgb,var(--accent) 55%,transparent); }
}
.habib-chat-msg { display:flex; flex-direction:column; gap:6px; max-width:92%; animation:habib-chat-in .28s cubic-bezier(.22,1.2,.36,1) both; }
.habib-chat-msg--user { align-self:flex-end; }
.habib-chat-msg--bot { align-self:flex-start; }
.habib-chat-bubble {
  padding:10px 12px; border-radius:16px; font-size:.875rem; line-height:1.45; white-space:normal;
  transition:transform .2s ease, box-shadow .2s ease;
}
.habib-chat-msg--bot:hover .habib-chat-bubble { transform:translateY(-1px); box-shadow:0 8px 20px color-mix(in srgb,#000 16%,transparent); }
.habib-chat-msg--user .habib-chat-bubble { background:var(--accent); color:var(--accent-ink); border-bottom-right-radius:6px; }
.habib-chat-msg--bot .habib-chat-bubble { background:var(--surface); color:var(--text); border:1px solid var(--line); border-bottom-left-radius:6px; }
.habib-chat-actions { display:flex; flex-wrap:wrap; gap:6px; }
.habib-chat-actions a {
  display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; font-size:.72rem; font-weight:600;
  border:1px solid var(--line); background:color-mix(in srgb,var(--surface) 80%,transparent); color:var(--text);
  transition:transform .22s cubic-bezier(.22,1.2,.36,1), border-color .2s, color .2s, background .2s;
}
.habib-chat-actions a:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
.habib-chat-form { display:grid; grid-template-columns:1fr auto; gap:8px; padding:10px 12px; border-top:1px solid var(--line); }
.habib-chat-form input {
  width:100%; min-width:0; border:1px solid var(--line); border-radius:12px; background:var(--surface);
  color:var(--text); padding:10px 12px; font:inherit; font-size:.875rem;
  transition:border-color .2s, box-shadow .2s;
}
.habib-chat-form input:focus { outline:none; border-color:color-mix(in srgb,var(--accent) 55%,var(--line)); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent); }
.habib-chat-form button[type="submit"] {
  border-radius:12px; padding:0 14px; background:var(--accent); color:var(--accent-ink); font:700 .8125rem/1 var(--display);
  transition:transform .22s cubic-bezier(.22,1.2,.36,1), filter .2s;
}
.habib-chat-form button[type="submit"]:hover { transform:translateY(-1px); filter:brightness(1.05); }
@keyframes habib-chat-in {
  from { opacity:0; transform:translateY(8px) scale(.98); }
  to { opacity:1; transform:translateY(0) scale(1); }
}
@media (prefers-reduced-motion:reduce) {
  .habib-chat-fab, .habib-chat-panel, .habib-chat-msg, .habib-chat-close, .habib-chat-actions a, .habib-chat-form button[type="submit"] { transition:none!important; animation:none!important; }
  .habib-chat-panel { filter:none; }
}
@media (max-width:520px) {
  .habib-chat-root { right:12px; bottom:12px; }
  .habib-chat-panel { width:calc(100vw - 24px); height:min(70vh,560px); bottom:62px; }
  .habib-chat-fab-label { font-size:.75rem; }
}

/* Availability — one shared statement of what Habib is open to, in every design's footer.
   Inherits colour so it stays legible on inverted footers (e.g. Shift). */
.page-footer .footer-availability {
  display:flex; align-items:center; gap:8px; margin:0 auto 0 0;
  max-width:62ch; font-size:.78rem; font-weight:600; letter-spacing:.005em;
  color:inherit; text-transform:none;
}
.page-footer .footer-availability .footer-status {
  width:7px; height:7px; flex:none; border-radius:50%;
  background:currentColor; box-shadow:0 0 0 3px color-mix(in srgb, currentColor 24%, transparent);
}
@media (prefers-reduced-motion:no-preference) {
  .page-footer .footer-availability .footer-status { animation:footer-status-pulse 2.8s ease-in-out infinite; }
}
@keyframes footer-status-pulse { 0%,100% { opacity:1; } 50% { opacity:.4; } }
@media (max-width:900px) {
  .page-footer .footer-availability { flex:1 1 100%; margin-right:0; }
}
