/* =====================================================================
   Akshay Desai — Portfolio
   Design system tokens + layout + animations
   ===================================================================== */

/* --- Reset & base --- */
html, body { margin:0; height:100%; overflow:hidden; background:#17161a; color:var(--color-text); font-family:'Archivo', system-ui, sans-serif; -webkit-font-smoothing:antialiased; }
*, *::before, *::after { box-sizing:border-box; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--color-accent); }
::selection { background:color-mix(in srgb, var(--color-accent) 26%, transparent); }
:focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }

/* --- Design system fallback tokens --- */
:root {
  --pz: 1;
  --color-text: #201e1d;
  --color-bg: #f3f2f2;
  --color-surface: #eae9e9;
  --color-accent: #c22a17;
  --color-accent-600: #a3220f;
  --color-accent-700: #7d1a0c;
  --color-neutral-300: #d7d3d3;
  --color-neutral-500: #9b9797;
  --color-neutral-600: #7d7979;
  --color-neutral-700: #605d5d;
  --color-neutral-800: #444141;
  --color-divider: color-mix(in srgb, var(--color-text) 11%, transparent);
  --font-body: 'Archivo', system-ui, sans-serif;
}

/* --- Scrollbar --- */
[data-pane] { scrollbar-width:thin; scrollbar-color:color-mix(in srgb, var(--color-text) 28%, transparent) transparent; scroll-behavior:smooth; }
[data-pane]::-webkit-scrollbar { width:8px; }
[data-pane]::-webkit-scrollbar-track { background:transparent; }
[data-pane]::-webkit-scrollbar-thumb { background:color-mix(in srgb, var(--color-text) 26%, transparent); border-radius:999px; border:2px solid transparent; background-clip:content-box; }
[data-pane]::-webkit-scrollbar-thumb:hover { background:color-mix(in srgb, var(--color-accent) 70%, transparent); background-clip:content-box; }

/* --- Keyframes --- */
@keyframes mn-drift {
  0%   { transform:translate3d(0,0,0) scale(1); }
  50%  { transform:translate3d(2%,-2%,0) scale(1.06); }
  100% { transform:translate3d(0,0,0) scale(1); }
}

@keyframes mn-sheen {
  0%   { transform:translate3d(-30%,0,0) rotate(8deg); opacity:.18; }
  50%  { transform:translate3d(40%,6%,0) rotate(8deg); opacity:.38; }
  100% { transform:translate3d(-30%,0,0) rotate(8deg); opacity:.18; }
}

@keyframes mn-in {
  from { opacity:0; transform:translateY(10px); }
  to   { opacity:1; transform:none; }
}

/* --- Stage (full viewport) --- */
.stage {
  height:100vh; width:100%; position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center; padding:24px;
}

/* --- Background gradient layer --- */
.bg {
  position:fixed; inset:-12%; z-index:0;
  animation:mn-drift 4s ease-in-out infinite;
}

/* --- Orb field --- */
.orb-field {
  position:fixed; inset:0; z-index:0; overflow:hidden; pointer-events:none;
}
.orb {
  position:absolute; border-radius:999px;
}
.orb--0 { top:-18vh; left:0; width:62vw; height:62vw; filter:blur(70px); opacity:0.72; background:radial-gradient(circle at 40% 40%, rgba(255,255,255,0.55), transparent 68%); }
.orb--1 { top:-10vh; left:0; width:54vw; height:54vw; filter:blur(78px); opacity:0.6; background:radial-gradient(circle at 50% 50%, rgba(255,255,255,0.5), transparent 66%); }
.orb--2 { top:-14vh; left:0; width:68vw; height:68vw; filter:blur(90px); opacity:0.55; background:radial-gradient(circle at 45% 55%, rgba(255,255,255,0.45), transparent 70%); }
.orb--3 { top:-20vh; left:0; width:46vw; height:46vw; filter:blur(64px); opacity:0.5; background:radial-gradient(circle at 55% 45%, rgba(255,255,255,0.5), transparent 64%); }
.sheen {
  position:absolute; top:-30%; left:0; width:46%; height:170%;
  filter:blur(50px); background:linear-gradient(90deg, transparent, rgba(255,255,255,0.5), transparent);
  opacity:0.22; animation:mn-sheen 4.5s ease-in-out infinite;
}

/* --- Radial wash overlay --- */
.radial-wash {
  position:fixed; inset:0; z-index:0;
  background:radial-gradient(120% 80% at 50% 0%, rgba(255,255,255,0.12), transparent 62%);
}

/* --- Lightbox --- */
.lightbox {
  position:fixed; inset:0; z-index:40; display:none; align-items:center; justify-content:center;
  padding:clamp(16px, 4vw, 56px); background:rgba(23,22,26,0.86);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); cursor:zoom-out;
}
.lightbox__fig {
  margin:0; max-width:100%; max-height:100%;
  display:flex; flex-direction:column; gap:12px; align-items:center;
}
.lightbox__fig img {
  display:block; max-width:100%; max-height:80vh; object-fit:contain;
  border-radius:10px; background:#fff;
}
.lightbox__cap {
  font-size:13px; color:rgba(255,255,255,0.82); text-align:center; max-width:70ch;
}
.lightbox__close {
  position:absolute; top:clamp(12px, 3vw, 28px); right:clamp(12px, 3vw, 28px);
  width:38px; height:38px; display:flex; align-items:center; justify-content:center;
  border-radius:999px; border:1px solid rgba(255,255,255,0.4);
  background:rgba(255,255,255,0.12); color:#fff; font-size:18px; line-height:1; cursor:pointer;
}

/* --- Glass panel --- */
.glass {
  position:relative; z-index:1;
  width:1140px; height:680px;
  max-width:calc((100vw - 48px) / var(--pz, 1));
  max-height:calc((100vh - 48px) / var(--pz, 1));
  zoom:var(--pz, 1);
  padding:20px; border-radius:32px;
  background:rgba(255,255,255,0.10);
  backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
  box-shadow:0 30px 70px rgba(16,14,14,0.32);
}

/* --- Shell (grid: sidebar + content) --- */
.shell {
  position:relative; height:100%;
  display:grid; grid-template-columns:238px 1fr;
  background:color-mix(in srgb, var(--color-bg) 90%, transparent);
  backdrop-filter:blur(18px) saturate(1.3); -webkit-backdrop-filter:blur(18px) saturate(1.3);
  border:1px solid var(--color-divider);
  border-radius:20px; overflow:hidden;
}

/* --- Rail (sidebar) --- */
.rail {
  display:flex; flex-direction:column; justify-content:space-between; gap:24px;
  padding:26px 24px; border-right:1px solid var(--color-divider);
}
.rail__brand {
  display:block; font-family:'Newsreader', Georgia, serif;
  font-weight:500; font-size:19px; line-height:1.2; margin-bottom:2px;
}
.rail__sub {
  font-size:12px; color:var(--color-neutral-600); margin-bottom:30px;
}
.rail__nav {
  display:flex; flex-direction:column; gap:2px;
}
.nav-link {
  display:flex; align-items:baseline; gap:10px; padding:7px 0;
  font-size:15px; transition:color 200ms ease, transform 260ms cubic-bezier(.2,.7,.2,1);
}
.nav-link.is-active {
  color:var(--color-accent);
  transform:translateX(4px);
}
.nav-link.is-active .nav-mark {
  color:var(--color-accent);
}
.nav-mark {
  width:14px; font-family:ui-monospace, Menlo, monospace;
  font-size:10px; color:var(--color-neutral-500); transition:color 200ms ease;
}
.rail__foot {
  display:flex; flex-direction:column; gap:8px;
}
.rail__meta {
  display:inline-flex; align-items:center; gap:7px;
  font-size:12px; color:var(--color-neutral-600);
}
.rail__weather {
  display:inline-flex; align-items:center; gap:5px;
}
.rail__hint {
  font-size:11px; line-height:1.5; color:var(--color-neutral-500);
}

/* --- Main content area --- */
.main {
  position:relative; overflow:hidden;
}
.scroll-fade {
  position:absolute; left:0; right:0; bottom:0; height:64px;
  pointer-events:none; z-index:2;
  background:linear-gradient(180deg, transparent, var(--color-bg) 78%);
  opacity:0; transition:opacity 260ms ease;
}
.scroll-cue {
  position:absolute; right:30px; bottom:12px; z-index:3;
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 12px; border-radius:999px;
  background:var(--color-bg); border:1px solid var(--color-divider);
  font-size:10px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--color-neutral-600); pointer-events:none;
  opacity:0; transition:opacity 260ms ease;
}
.pane {
  position:relative; height:100%; overflow-y:auto; overflow-x:hidden;
  padding:44px 44px 56px;
}

/* --- Entrance animation --- */
[data-view] > * { animation:mn-in 520ms cubic-bezier(.2,.7,.2,1) both; }
[data-view] > *:nth-child(2) { animation-delay:60ms; }
[data-view] > *:nth-child(3) { animation-delay:110ms; }
[data-view] > *:nth-child(4) { animation-delay:160ms; }
[data-view] > *:nth-child(5) { animation-delay:210ms; }
[data-view] > *:nth-child(n+6) { animation-delay:250ms; }

/* --- Views (shared) --- */
.view { display:grid; gap:22px; }

/* --- Home --- */
.home-headline {
  font-family:'Newsreader', Georgia, serif; font-weight:400;
  font-size:42px; line-height:1.1; letter-spacing:-0.015em;
  margin:0; max-width:17ch;
}
.home-body {
  font-size:17px; line-height:1.7; margin:0;
  color:var(--color-neutral-800); text-wrap:pretty; max-width:60ch;
}
.home-body--secondary {
  font-size:16px; color:var(--color-neutral-700);
}
.home-ctas {
  display:flex; gap:20px; align-items:center; padding-top:4px;
}

/* --- Buttons --- */
.btn--primary {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--color-accent); color:var(--color-bg);
  font-size:15px; font-weight:500; padding:12px 22px; border-radius:999px;
  border:none; cursor:pointer; transition:background 200ms ease;
}
.btn--primary:hover { background:var(--color-accent-600); color:var(--color-bg); }
.btn--text {
  font-size:15px; color:var(--color-neutral-700);
  border-bottom:1px solid var(--color-divider); padding-bottom:2px;
}
.btn--text:hover { color:var(--color-accent); border-color:var(--color-accent); }

/* --- Kicker --- */
.kicker {
  font-size:11px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--color-accent-700);
}

/* --- Section label --- */
.section-label {
  font-size:11px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--color-neutral-600); margin:0 0 6px;
}

/* --- Work listing --- */
.view--work { gap:0; }
.work-row {
  display:grid; grid-template-columns:1fr 84px; gap:20px; align-items:baseline;
  padding:20px 0; border-top:1px solid var(--color-divider);
  transition:padding-left 260ms cubic-bezier(.2,.7,.2,1);
}
.work-row:hover, .work-row:focus { padding-left:10px; }
.work-row__title {
  display:block; font-family:'Newsreader', Georgia, serif;
  font-weight:500; font-size:23px; line-height:1.2; margin-bottom:6px;
}
.work-row__blurb {
  display:block; font-size:15px; line-height:1.65;
  color:var(--color-neutral-800); max-width:54ch;
}
.work-row__years {
  font-size:13px; color:var(--color-neutral-600); text-align:right;
}
.work-nda {
  margin:18px 0 0; font-size:13px; line-height:1.6; color:var(--color-neutral-600);
  border-top:1px solid var(--color-divider); padding-top:18px;
}

/* --- Case study detail --- */
.view--case { gap:24px; }
.back-link {
  display:inline-block; font-size:12px; color:var(--color-neutral-600); margin-bottom:18px;
}
.back-link:hover { color:var(--color-accent); }
.case-title {
  font-family:'Newsreader', Georgia, serif; font-weight:400;
  font-size:36px; line-height:1.12; letter-spacing:-0.015em;
  margin:0 0 16px; max-width:20ch;
}
.case-lede {
  font-size:17px; line-height:1.7; margin:0; max-width:58ch;
  color:var(--color-neutral-800); text-wrap:pretty;
}
.case-meta {
  display:grid; grid-template-columns:repeat(var(--cols, 3), 1fr); gap:20px;
  padding:18px 0; border-top:1px solid var(--color-divider); border-bottom:1px solid var(--color-divider);
}
.case-meta__label {
  font-size:10px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--color-neutral-600); margin-bottom:5px;
}
.case-meta__value { font-size:14px; line-height:1.5; }
.case-meta__sub { font-size:12px; line-height:1.5; color:var(--color-neutral-600); margin-top:3px; }

/* --- Hero image / plate --- */
.case-hero { margin:0; }
.case-hero__btn {
  display:block; width:100%; padding:0;
  border:1px solid var(--color-divider); border-radius:12px; overflow:hidden;
  background:var(--color-surface); cursor:zoom-in; transition:border-color 220ms ease;
}
.case-hero__btn:hover { border-color:var(--color-accent); }
.case-hero__btn img { display:block; width:100%; height:auto; }
.case-hero__cap {
  display:flex; align-items:baseline; justify-content:space-between; gap:14px;
  margin-top:8px; font-size:12px; color:var(--color-neutral-600);
}
.case-hero__enlarge { flex:none; color:var(--color-accent); }
.plate {
  aspect-ratio:16/9; background-color:var(--color-surface);
  background-image:repeating-linear-gradient(90deg, var(--color-neutral-300) 0 1px, transparent 1px 12px);
  border:1px solid var(--color-divider); border-radius:12px;
  display:flex; align-items:flex-end; padding:14px;
}
.plate__label {
  font-family:ui-monospace, Menlo, monospace; font-size:10px;
  letter-spacing:0.04em; color:var(--color-neutral-600);
}

/* --- Content blocks --- */
.block {
  display:grid; gap:16px; padding-top:30px;
  border-top:1px solid var(--color-divider);
}
.block__header {
  display:flex; align-items:baseline; gap:14px;
}
.block__n {
  flex:none; font-family:ui-monospace, Menlo, monospace;
  font-size:11px; color:var(--color-accent);
}
.block__label {
  font-size:11px; font-weight:600; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--color-neutral-600);
}
.block__title {
  font-family:'Newsreader', Georgia, serif; font-weight:400;
  font-size:28px; line-height:1.18; letter-spacing:-0.01em;
  margin:0; max-width:26ch;
}
.block__para {
  font-size:16px; line-height:1.72; margin:0; max-width:62ch;
  color:var(--color-neutral-800); text-wrap:pretty;
}
.block__note {
  margin:0; padding:14px 16px; border-left:2px solid var(--color-accent);
  background:var(--color-surface); font-size:14px; line-height:1.7;
  color:var(--color-neutral-800); max-width:64ch;
}

/* --- Cards --- */
.card-grid {
  display:grid; grid-template-columns:repeat(3, 1fr); gap:18px;
}
.card {
  display:grid; gap:8px; align-content:start; padding:18px;
  border:1px solid var(--color-divider); border-radius:12px;
}
.card__n {
  font-family:ui-monospace, Menlo, monospace; font-size:10px; color:var(--color-accent);
}
.card__title {
  font-family:'Newsreader', Georgia, serif; font-weight:500;
  font-size:18px; line-height:1.25;
}
.card__body {
  font-size:14px; line-height:1.65; color:var(--color-neutral-800);
}

/* --- Steps --- */
.step-list { display:grid; }
.step-row {
  display:grid; grid-template-columns:40px 1fr; gap:18px;
  padding:16px 0; border-bottom:1px solid var(--color-divider); align-items:baseline;
}
.step-row__n {
  font-family:ui-monospace, Menlo, monospace; font-size:11px; color:var(--color-neutral-600);
}
.step-row__title {
  display:block; font-family:'Newsreader', Georgia, serif;
  font-weight:500; font-size:19px; line-height:1.25; margin-bottom:6px;
}
.step-row__body {
  display:block; font-size:15px; line-height:1.7;
  color:var(--color-neutral-800); max-width:58ch;
}

/* --- Flow cards --- */
.flow-grid {
  display:flex; flex-wrap:wrap; align-items:stretch; gap:10px;
  padding:18px; border:1px solid var(--color-divider); border-radius:12px;
  background:var(--color-surface);
}
.flow-card {
  flex:1 1 150px; min-width:140px; display:grid; gap:5px; align-content:start;
  padding:12px 14px; background:var(--color-bg);
  border:1px solid var(--color-divider); border-radius:9px;
}
.flow-card__step { font-size:13px; font-weight:600; line-height:1.35; }
.flow-card__sub { font-size:12px; line-height:1.55; color:var(--color-neutral-600); }

/* --- Table blocks --- */
.table-block {
  display:grid; border:1px solid var(--color-divider); border-radius:12px; overflow:hidden;
}
.table-row {
  display:grid; grid-template-columns:150px 1fr 1fr; gap:18px;
  padding:14px 16px; border-bottom:1px solid var(--color-divider); align-items:baseline;
}
.table-row:last-child { border-bottom:none; }
.table-row__role {
  font-family:'Newsreader', Georgia, serif; font-size:17px; line-height:1.3;
}
.table-row__types { font-size:13px; line-height:1.6; color:var(--color-neutral-700); }
.table-row__owes { font-size:13px; line-height:1.6; color:var(--color-neutral-800); }

/* --- Pair rows --- */
.pair-list { display:grid; }
.pair-row {
  display:grid; grid-template-columns:220px 1fr; gap:22px;
  padding:14px 0; border-bottom:1px solid var(--color-divider); align-items:baseline;
}
.pair-row__key { font-size:15px; font-weight:600; line-height:1.4; }
.pair-row__val { font-size:15px; line-height:1.7; color:var(--color-neutral-800); }

/* --- Stat grid --- */
.stat-grid {
  display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; padding-top:6px;
}
.stat__value {
  font-family:'Newsreader', Georgia, serif; font-weight:400;
  font-size:24px; line-height:1.15; letter-spacing:-0.01em;
}
.stat__label {
  font-size:12px; line-height:1.5; color:var(--color-neutral-600); margin-top:6px;
}

/* --- Next project --- */
.next-project {
  display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center;
  padding:20px 0; border-top:1px solid var(--color-divider);
}
.next-project:hover { color:var(--color-accent); }
.next-project__label {
  display:block; font-size:10px; font-weight:600; letter-spacing:0.12em;
  text-transform:uppercase; color:var(--color-neutral-600); margin-bottom:6px;
}
.next-project__title {
  display:block; font-family:'Newsreader', Georgia, serif;
  font-weight:500; font-size:21px;
}
.next-project__arrow {
  font-family:'Newsreader', Georgia, serif; font-size:21px; color:var(--color-accent);
}

/* --- About --- */
.about-grid {
  display:grid; grid-template-columns:4fr 8fr; gap:30px; align-items:start;
}
.about-portrait {
  border-radius:12px; overflow:hidden; border:1px solid var(--color-divider);
}
.about-portrait img { display:block; width:100%; height:auto; }
.about-bio { display:grid; gap:16px; }
.about-bio p {
  margin:0; font-size:16px; line-height:1.72; color:var(--color-neutral-800); text-wrap:pretty;
}
.practice { }
.practice__heading {
  margin:0 0 18px; border-top:1px solid var(--color-divider); padding-top:22px;
}
.practice__grid {
  display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;
}
.practice__title {
  font-family:'Newsreader', Georgia, serif; font-weight:500;
  font-size:19px; line-height:1.25; margin:0 0 8px;
}
.practice__body {
  margin:0; font-size:14px; line-height:1.7; color:var(--color-neutral-800);
}

/* --- Experience --- */
.view--experience { gap:0; }
.exp-row {
  display:grid; grid-template-columns:132px 1fr 168px; gap:22px;
  padding:20px 0; border-top:1px solid var(--color-divider); align-items:baseline;
}
.exp-row__period { font-size:13px; color:var(--color-neutral-600); }
.exp-row__title {
  display:block; font-family:'Newsreader', Georgia, serif;
  font-weight:500; font-size:20px; line-height:1.25; margin-bottom:6px;
}
.exp-row__body {
  display:block; font-size:14px; line-height:1.7;
  color:var(--color-neutral-800); max-width:52ch;
}
.exp-row__company {
  font-size:13px; color:var(--color-neutral-600); text-align:right;
}

/* --- Contact --- */
.view--contact { max-width:56ch; }
.contact-headline {
  font-family:'Newsreader', Georgia, serif; font-weight:400;
  font-size:32px; line-height:1.2; letter-spacing:-0.01em; margin:0;
}
.contact-body {
  margin:0; font-size:16px; line-height:1.72; color:var(--color-neutral-800);
}
.contact-email {
  font-family:'Newsreader', Georgia, serif; font-weight:400; font-size:25px;
  color:var(--color-accent-700);
  border-bottom:1px solid color-mix(in srgb, var(--color-accent) 45%, transparent);
  padding-bottom:3px; justify-self:start;
}
.contact-email:hover { color:var(--color-accent); border-color:var(--color-accent); }
.contact-footer {
  display:flex; gap:22px; flex-wrap:wrap; padding-top:22px;
  border-top:1px solid var(--color-divider); margin-top:4px;
}
.contact-footer__link { font-size:15px; color:var(--color-neutral-700); }
.contact-footer__link:hover { color:var(--color-accent); }
.contact-footer__location { font-size:15px; color:var(--color-neutral-600); }

/* --- Contact form --- */
.contact-form-wrap { margin-top:8px; }
.contact-form { display:grid; gap:14px; margin-top:14px; }
.contact-form__input {
  width:100%; padding:10px 14px; font-size:14px; font-family:inherit;
  background:var(--color-surface); border:1px solid var(--color-divider);
  border-radius:8px; color:var(--color-text); outline:none;
  transition:border-color 200ms ease;
}
.contact-form__input:focus { border-color:var(--color-accent); }
.contact-form__textarea { resize:vertical; min-height:100px; }
.contact-form__submit { justify-self:start; }
.contact-form__status {
  font-size:14px; margin:0; padding:8px 0;
}
.contact-form__status--success { color:var(--color-accent); }
.contact-form__status--error { color:#c22a17; }

/* --- Unlock gate --- */
.unlock-gate {
  display:grid; gap:14px; padding:30px; border:1px solid var(--color-divider);
  border-radius:16px; background:var(--color-surface); text-align:center;
  max-width:420px; margin:10px auto 0;
}
.unlock-gate__icon { color:var(--color-neutral-600); }
.unlock-gate__title {
  font-family:'Newsreader', Georgia, serif; font-weight:400;
  font-size:22px; margin:0;
}
.unlock-gate__body {
  font-size:14px; line-height:1.6; color:var(--color-neutral-700); margin:0;
}
.unlock-form { display:grid; gap:10px; }
.unlock-form__row { display:flex; gap:8px; }
.unlock-form__input {
  flex:1; padding:10px 14px; font-size:14px; font-family:inherit;
  background:var(--color-bg); border:1px solid var(--color-divider);
  border-radius:8px; color:var(--color-text); outline:none;
}
.unlock-form__input:focus { border-color:var(--color-accent); }
.unlock-form__btn {
  padding:10px 20px; font-size:14px; font-weight:500; font-family:inherit;
  background:var(--color-accent); color:var(--color-bg);
  border:none; border-radius:8px; cursor:pointer;
  transition:background 200ms ease;
}
.unlock-form__btn:hover { background:var(--color-accent-600); }
.unlock-form__error { font-size:13px; color:#c22a17; margin:0; }

/* --- Responsive zoom --- */
@media (min-width:1360px) and (min-height:800px)  { :root { --pz:1.10; } }
@media (min-width:1600px) and (min-height:910px)  { :root { --pz:1.26; } }
@media (min-width:1900px) and (min-height:1040px) { :root { --pz:1.45; } }
@media (min-width:2300px) and (min-height:1210px) { :root { --pz:1.70; } }
@media (min-width:2900px) and (min-height:1442px) { :root { --pz:2.05; } }
@media (max-width:1230px) { :root { --pz:0.94; } }
@media (max-width:1150px) { :root { --pz:0.86; } }
@media (max-height:720px) { :root { --pz:0.92; } }
@media (max-height:660px) { :root { --pz:0.84; } }

/* --- Full-width on small screens --- */
@media (max-width:1020px) {
  :root { --pz:1; }
  .glass { width:100% !important; height:100% !important; border-radius:0; padding:0; }
  .shell { border-radius:0; }
}

/* --- Mobile / narrow --- */
@media (max-width:860px) {
  .shell { grid-template-columns:1fr !important; }
  .rail { border-right:none !important; border-bottom:1px solid var(--color-divider); padding:18px 20px; }
  .rail__nav { flex-direction:row !important; flex-wrap:wrap; gap:4px 18px !important; }
  .rail__foot { display:none !important; }
  .about-grid,
  .card-grid,
  .practice__grid,
  .stat-grid,
  .case-meta { grid-template-columns:1fr !important; }
  .exp-row { grid-template-columns:1fr !important; gap:6px; }
  .exp-row__company { text-align:left; }
  .table-row { grid-template-columns:1fr !important; gap:8px; }
  .pair-row { grid-template-columns:1fr !important; gap:6px; }
  .pane { padding:24px 20px 40px; }
}

/* --- Reduced motion --- */
@media (prefers-reduced-motion:reduce) {
  .sheen, [data-view] > * { animation:none !important; }
  .bg { animation:none !important; }
}
