
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
/* Self-hosted variable fonts (Google Fonts latin subsets, served same-origin
   per the font-src 'self' CSP) so every platform renders the designed faces
   and intermediate weights instead of the Apple-only system stacks. */
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:200 900;font-stretch:normal;font-display:swap;src:url('/assets/fonts/SourceSerif4-Variable.2a24bad466f09b88.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:200 900;font-stretch:normal;font-display:swap;src:url('/assets/fonts/SourceSerif4-Italic-Variable.011e0ca2bd14c5df.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url('/assets/fonts/SourceSans3-Variable.ac057a5593cbe3df.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:italic;font-weight:200 900;font-display:swap;src:url('/assets/fonts/SourceSans3-Italic-Variable.dba77455b9c18867.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --n0:#1c2228;
  --cyan:#22d3ee; --teal:#2dd4bf; --amber:#f59e0b; --rose:#fb7185;
  --accent:#f472b6;
  /* Shared text roles keep the homepage, navigation, and detail views in one palette. */
  --text-primary:#eef1f5; --text-secondary:#bac3ca; --text-muted:#a2adb8;
  --dtext:var(--text-primary); --dmute:var(--text-secondary); --dfaint:var(--text-muted);
  --reading-text:var(--text-primary); --reading-muted:var(--text-secondary);
  --text-pink:color-mix(in srgb,var(--accent) 60%,white);
  --text-cyan:color-mix(in srgb,var(--cyan) 60%,white);
  --paper-hi:#f0f3f6; --paper-lo:#d4dce3;
  --paper-border:rgba(255,255,255,.50); --paper-line:rgba(18,24,32,.105);
  --paper-text:#18212b; --paper-muted:#3f4b57;
  --paper-shadow:inset 0 1px 0 rgba(255,255,255,.58),0 14px 36px rgba(0,0,0,.14);
  --card-radius:4px;
  --disp:'Source Serif 4','Iowan Old Style','Baskerville','Palatino Linotype',Georgia,serif;
  --sans:'Source Sans 3','Avenir Next','Helvetica Neue',Arial,sans-serif;
  --mono:'Source Sans 3','Avenir Next','Helvetica Neue',Arial,sans-serif;
  --pad:clamp(1.4rem,5vw,4.5rem);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-in:cubic-bezier(.55,0,.65,.35);
  --scene-transition-duration:220ms;
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--n0);color:var(--dtext);font-family:var(--sans);font-size:16px;line-height:1.62;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.locked{overflow:hidden}
body.locked #tabMain{overflow:hidden}
body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.2;
  background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:72px 72px;mask-image:linear-gradient(to bottom,black,transparent 80%)}
::selection{background:rgba(244,114,182,.30);color:var(--text-primary)}
img{max-width:100%}
a{color:inherit}
button{font:inherit}
a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip{position:fixed;top:.75rem;left:.75rem;z-index:10000;padding:.65rem 1rem;border-radius:6px;background:var(--dtext);color:var(--n0);font-size:.78rem;font-weight:700;text-decoration:none;transform:translateY(-180%);transition:transform .2s}
.skip:focus{transform:none}
[data-launch-hidden]{display:none!important}
body:has(.noscript-fallback)>:not(noscript){display:none!important}
.noscript-fallback{position:fixed;inset:0;z-index:10001;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(circle at 18% 12%,rgba(45,212,191,.14),transparent 32rem),radial-gradient(circle at 82% 16%,rgba(244,114,182,.12),transparent 34rem),#1c2228;color:var(--text-primary)}
.noscript-card{width:min(620px,100%);padding:clamp(1.4rem,5vw,2.5rem);border:1px solid rgba(255,255,255,.16);border-radius:4px;background:rgba(10,14,18,.88);box-shadow:0 24px 70px rgba(0,0,0,.28)}
.noscript-card strong{display:block;font-family:var(--disp);font-size:clamp(2rem,8vw,3.6rem);font-weight:500;line-height:1.02;letter-spacing:-.035em}
.noscript-card p{margin-top:1rem;color:var(--dmute)}
.noscript-links{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.35rem}
.noscript-links a{display:inline-flex;min-height:44px;align-items:center;padding:.62rem .88rem;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:var(--text-primary);font-size:.78rem;font-weight:700;text-decoration:none}

/* ══ FIXED MOLECULAR STAGE ══════════════════════════════ */
#bg{position:fixed;inset:0;width:100vw;height:100dvh;z-index:0;pointer-events:none;display:block}

/* The molecular stage remains a canvas, but these transparent hit regions
   follow its live geometry. Hover or keyboard focus adds a clean highlight and
   a plain-language caption without altering the animation itself. */
#molecularInspector{position:fixed;inset:0;z-index:8;pointer-events:none}
.molecular-hotspot{position:absolute;display:block;width:var(--inspector-width,80px);height:var(--inspector-height,80px);margin:0;padding:0;transform:translate3d(-50%,-50%,0);border:1px solid transparent;border-radius:999px;background:transparent;box-shadow:none;opacity:0;pointer-events:auto;cursor:default;transition:opacity .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}
.molecular-hotspot[hidden]{display:none!important;pointer-events:none!important}
.molecular-hotspot:hover,.molecular-hotspot:focus-visible,.molecular-hotspot.is-active{opacity:1;border-color:color-mix(in srgb,var(--inspector-color,#8fe9ff) 72%,white);background:radial-gradient(circle, color-mix(in srgb,var(--inspector-color,#8fe9ff) 17%,transparent) 0 38%,transparent 72%);box-shadow:inset 0 0 24px color-mix(in srgb,var(--inspector-color,#8fe9ff) 14%,transparent),0 0 0 4px color-mix(in srgb,var(--inspector-color,#8fe9ff) 8%,transparent),0 0 30px color-mix(in srgb,var(--inspector-color,#8fe9ff) 22%,transparent)}
.molecular-hotspot:focus-visible{outline:2px solid var(--inspector-color,#8fe9ff);outline-offset:4px}
@media(min-width:901px) and (max-width:1280px){.molecular-hotspot{overflow:hidden}.molecular-hotspot:hover,.molecular-hotspot:focus-visible,.molecular-hotspot.is-active{box-shadow:inset 0 0 24px color-mix(in srgb,var(--inspector-color,#8fe9ff) 18%,transparent)}.molecular-hotspot:focus-visible{outline-offset:-3px}}
.molecular-caption{position:fixed;width:min(268px,calc(100vw - 24px));padding:.68rem .76rem .72rem;border:1px solid rgba(255,255,255,.18);border-top-color:color-mix(in srgb,var(--inspector-color,#8fe9ff) 54%,rgba(255,255,255,.18));border-radius:4px;background:rgba(8,12,18,.90);box-shadow:0 16px 42px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.06);color:var(--dtext);backdrop-filter:blur(14px) saturate(108%);-webkit-backdrop-filter:blur(14px) saturate(108%);pointer-events:none}
.molecular-caption strong{display:block;font-family:var(--disp);font-size:.92rem;font-weight:560;line-height:1.22;color:var(--text-primary)}
.molecular-caption span{display:block;margin-top:.2rem;font-size:.68rem;line-height:1.48;color:var(--text-secondary)}

/* Vector-only directional marks cannot be substituted with platform emoji. */
.ar{display:inline-block;width:1em;height:1em;margin-left:.28em;flex:0 0 auto;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M14 7l5 5-5 5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M14 7l5 5-5 5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
:where(a[target="_blank"],.vector-link)::after{content:"";display:inline-block;width:.76em;height:.76em;margin-left:.28em;vertical-align:.04em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 16 16 8M10 8h6v6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 16 16 8M10 8h6v6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.inline-flow-icon{display:inline-block;width:1.05em;height:.72em;margin:0 .2em;vertical-align:-.02em;color:currentColor}
.evolution-sheet .inline-flow-icon{width:.525em}
.inline-flow-icon path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ══ PRELOADER ══════════════════════════════════════════ */
#loader{--loader-child-fade:210ms;--loader-backdrop-fade:650ms;--loader-cargo-duration:4.6s;--loader-bounce-duration:3.083s;--loader-bounce-beat:.77075s;--loader-flight-duration:4.8s;--loader-flight-delay:1.8s;--loader-handoff-hold:.3s;position:fixed;inset:0;z-index:9999;overflow:hidden;background:radial-gradient(circle at 26% 24%,rgba(96,165,250,.13),transparent 34%),radial-gradient(circle at 72% 68%,rgba(246,172,216,.105),transparent 34%),radial-gradient(circle at 56% 42%,rgba(181,167,255,.075),transparent 28%),linear-gradient(145deg,#191e23 0%,#252c32 50%,#171b20 100%);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:1.05rem;transition:opacity var(--loader-backdrop-fade) cubic-bezier(.22,.61,.36,1),visibility 0s linear var(--loader-backdrop-fade)}
#loader > :is(.lmk,.loader-controls){transition:opacity var(--loader-child-fade) ease,transform var(--loader-child-fade) cubic-bezier(.22,.61,.36,1)}
#loader > .loader-proteostasis{transition:opacity var(--loader-backdrop-fade) ease,transform var(--loader-backdrop-fade) cubic-bezier(.22,.61,.36,1)}
#loader.done > :is(.lmk,.loader-proteostasis,.loader-controls){opacity:0;transform:translateY(-4px)}#loader.done > .loader-proteostasis{transform:translateY(-6px) scale(calc(var(--loader-stage-scale,1)*1.045))}@media(min-width:621px){#loader{gap:1.4rem}.lmk{font-size:clamp(1.9rem,4.5vw,3.4rem)}}@media(min-width:901px){#loader{gap:1.35rem}.loader-proteostasis{--loader-stage-scale:1.5}}@media(min-width:1400px){.loader-proteostasis{--loader-stage-scale:1.66}}
#loader.done{opacity:0;visibility:hidden;pointer-events:none}
#loader.cleaned{display:none}
.skip-loader #loader{display:none}
.lmk{display:flex;align-items:center;justify-content:center;gap:.38em;font-family:var(--disp);font-weight:400;font-size:clamp(1.5rem,4vw,2.2rem);letter-spacing:-.02em;color:var(--dtext)}
.brand-logo{display:block;width:100%;height:100%;object-fit:contain}
.loader-em2-mark{display:block;width:1.56em;height:1.56em;flex:0 0 auto;filter:drop-shadow(0 10px 24px rgba(0,0,0,.28)) drop-shadow(0 0 18px rgba(99,162,255,.13))}
.loader-proteostasis{position:relative;isolation:isolate;width:min(420px,88vw);height:142px;transform:scale(var(--loader-stage-scale,1));display:grid;place-items:center;margin:calc(71px*(var(--loader-stage-scale,1) - 1) + .35rem) 0 calc(71px*(var(--loader-stage-scale,1) - 1) + .1rem);padding:9px 12px;overflow:visible;border:1px solid rgba(255,255,255,.14);border-radius:6px;background:radial-gradient(circle at 18% 44%,rgba(125,220,255,.13),transparent 34%),radial-gradient(circle at 80% 54%,rgba(246,172,216,.12),transparent 34%),linear-gradient(145deg,rgba(9,13,24,.82),rgba(24,29,40,.62));box-shadow:inset 0 1px 0 rgba(255,255,255,.11),inset 0 -1px 0 rgba(255,255,255,.035),0 22px 64px rgba(0,0,0,.28);backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%)}
.loader-proteostasis::after{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;background:linear-gradient(118deg,rgba(255,255,255,.055),transparent 34% 68%,rgba(155,184,255,.045));pointer-events:none}
.loader-proteostasis svg{position:relative;z-index:1;display:block;width:100%;height:100%;overflow:visible}
.loader-cargo,.loader-cargo-squash,.loader-ground-ub,.loader-cargo-ub,.loader-unfolded-substrate,.loader-proteasome-launch,.loader-proteasome-sweep,.loader-proteasome-bank,.loader-proteasome,.loader-proteasome-pore,.loader-peptide-thrust{transform-box:fill-box;transform-origin:center}
/* The visible sequence and the late UI tracker start from one readiness gate.
   Without this hold, slow delivery can exhaust the CSS clock before Ub tracking
   and the progress/handoff timers exist. */
.loader-pending #loader :is(.loader-cargo,.loader-cargo-squash,.loader-unfolded-substrate,.loader-proteasome-launch,.loader-proteasome-sweep,.loader-proteasome-bank,.loader-proteasome,.loader-proteasome-pore,.loader-peptide-thrust,.loader-fuel-path,.loader-fuel-peptide){animation-play-state:paused}
.loader-cargo{transform-origin:center 88%;filter:drop-shadow(0 6px 9px rgba(95,142,205,.2));animation:loaderCargo var(--loader-cargo-duration) cubic-bezier(.4,0,.2,1) 1 both}
.loader-cargo-squash{transform-origin:50% 100%;will-change:transform;animation:loaderCargoSquash var(--loader-cargo-duration) linear 1 both}
.loader-protein-link{fill:none;stroke:rgba(220,238,255,.38);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.loader-protein-sphere{stroke:rgba(255,255,255,.38);stroke-width:1}
.loader-ground-ub{transform-box:view-box;transform-origin:0 0}
.loader-cargo-ub{opacity:0}
.loader-cargo-ub-node-layer{visibility:hidden}
.loader-cargo-ub-link-layer{pointer-events:none}
.loader-cargo-ub-link{fill:none;stroke:rgba(246,172,216,.78);stroke-width:1.9;stroke-linecap:round}
.loader-ub-node{fill:rgba(246,172,216,.92);stroke:rgba(255,255,255,.62);stroke-width:1;transform-box:fill-box;transform-origin:center}
.loader-ub-text{fill:#18202d;font:700 7px var(--sans);text-anchor:middle;dominant-baseline:central;text-rendering:geometricPrecision;transform-box:fill-box;transform-origin:center}
.loader-unfolded-substrate{opacity:0;transform-origin:right center;filter:drop-shadow(0 0 5px rgba(125,220,255,.5));animation:loaderUnfoldedSubstrate var(--loader-cargo-duration) cubic-bezier(.37,0,.23,1) var(--loader-handoff-hold) 1 both}
.loader-unfolded-chain{fill:none;stroke:url(#loaderProteinA);stroke-width:4.4;stroke-linecap:round;stroke-linejoin:round}
.loader-unfolded-bead{fill:#9de8ff;stroke:rgba(255,255,255,.54);stroke-width:.75}
.loader-proteasome-launch{--loader-hook-x:clamp(-61px,-5vw,-38px);--loader-tail-x:clamp(83px,12.2vw,150px);--loader-flight-clearance:8px;transform-origin:37% 50%;filter:blur(0) brightness(1) saturate(1);will-change:opacity,transform,filter;animation:loaderProteasomeLaunch var(--loader-flight-duration) linear var(--loader-flight-delay) 1 both}
.loader-proteasome-sweep,.loader-proteasome-bank{transform-origin:37% 50%;will-change:transform}
.loader-proteasome-sweep{animation:loaderProteasomeSweep var(--loader-flight-duration) linear var(--loader-flight-delay) 1 both}
.loader-proteasome-bank{animation:loaderProteasomeBank var(--loader-flight-duration) linear var(--loader-flight-delay) 1 both}
@media(max-width:640px){.loader-proteasome-launch{--loader-hook-x:-31px;--loader-tail-x:76px;--loader-flight-clearance:20px}}
.loader-proteasome{filter:drop-shadow(0 7px 12px rgba(111,145,222,.2));animation:loaderProteasomeBreathe .68s cubic-bezier(.45,0,.55,1) 3 both}
.loader-proteasome-shell{fill:url(#loaderProteasomeCore);stroke:rgba(205,225,255,.4);stroke-width:1;opacity:.34}
.loader-proteasome-cap{fill:url(#loaderProteasomeCap);stroke:rgba(215,208,255,.4);stroke-width:1;opacity:.32}
.loader-proteasome-band{fill:none;stroke:rgba(242,247,255,.24);stroke-width:1}
.loader-proteasome-bead{stroke:rgba(244,249,255,.48);stroke-width:.75}
.loader-proteasome-bead.core-a{fill:url(#loaderProteasomeBeadA)}
.loader-proteasome-bead.core-b{fill:url(#loaderProteasomeBeadB)}
.loader-proteasome-bead.cap{fill:url(#loaderProteasomeBeadCap)}
.loader-proteasome-pore{fill:#111827;stroke:#8bdfff;stroke-width:1.4;animation:loaderPorePulse 1s cubic-bezier(.45,0,.55,1) infinite}
.loader-peptide-thrust{opacity:0;transform-origin:left center;filter:drop-shadow(0 0 4px rgba(143,233,255,.52));animation:loaderPeptideThrust var(--loader-flight-duration) linear var(--loader-flight-delay) 1 both}
.loader-fuel-path{fill:none;stroke:rgba(163,224,255,.28);stroke-width:1.15;stroke-linecap:round;stroke-dasharray:2 4;animation:loaderFuelFlow .9s linear infinite}
.loader-fuel-peptide{stroke:rgba(255,255,255,.58);stroke-width:.65;transform-box:fill-box;transform-origin:center;animation:loaderFuelPeptidePulse .56s cubic-bezier(.45,0,.55,1) infinite alternate}
.loader-fuel-peptide:nth-of-type(2n){animation-delay:-.18s}.loader-fuel-peptide:nth-of-type(3n){animation-delay:-.37s}
.loader-fuel-cyan{fill:#8fe9ff}.loader-fuel-violet{fill:#cbbcff}.loader-fuel-rose{fill:#f6acd8}.loader-fuel-amber{fill:#f7c66b}
.loader-peptide-vortex{--vortex-x:50vw;--vortex-y:50vh;position:absolute;inset:0;z-index:8;overflow:hidden;pointer-events:none}
.loader-vortex-bloom{position:absolute;left:var(--vortex-x);top:var(--vortex-y);width:32vmax;aspect-ratio:1;border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.02);background:radial-gradient(circle at 38% 34%,rgba(255,255,255,.76) 0 5%,rgba(143,233,255,.54) 18%,rgba(203,188,255,.38) 38%,rgba(246,172,216,.27) 58%,rgba(96,165,250,.07) 78%,transparent 100%);box-shadow:0 0 6vmax rgba(143,233,255,.14),0 0 9vmax rgba(246,172,216,.09)}
.loader-vortex-field{position:absolute;inset:0;transform-origin:var(--vortex-x) var(--vortex-y)}
.loader-vortex-particle{position:absolute;left:var(--vortex-x);top:var(--vortex-y);width:var(--particle-size,4px);aspect-ratio:1;border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.15);background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.98) 0 16%,var(--particle-light,#d9f8ff) 34%,var(--particle-color,#8fe9ff) 72%,rgba(99,102,241,.28) 100%);box-shadow:0 0 calc(var(--particle-size,4px)*1.8) color-mix(in srgb,var(--particle-color,#8fe9ff) 62%,transparent)}
#loader.vortexing .loader-vortex-field{animation:loaderVortexSpin .62s cubic-bezier(.22,.61,.36,1) both}
#loader.vortexing .loader-vortex-bloom{animation:loaderVortexBloom .62s cubic-bezier(.22,.61,.36,1) both}
#loader.vortexing .loader-vortex-particle{animation:loaderParticleConsume var(--particle-duration,.56s) cubic-bezier(.22,.61,.36,1) var(--particle-delay,0s) both}
/* Four equal .77075-second bounce beats span 3.083 seconds: exactly .5 seconds
   longer than the prior three-bounce run. The extra half-second shifts the
   downstream proteasome handoff intact instead of overlapping it. A further
   .3-second hold lets the fourth Ub seat after contact before unfolding. */
@keyframes loaderCargo{0%,3%{opacity:0;transform:translate(-18px,0)}5%{opacity:1;transform:translate(0,0)}9%{transform:translate(5px,.5px)}17.378%{transform:translate(24px,-24px) rotate(-.6deg)}25.755%{transform:translate(44px,.5px) rotate(.22deg)}34.133%{transform:translate(63px,-20px) rotate(.42deg)}42.511%{transform:translate(82px,.5px) rotate(0)}50.889%{transform:translate(101px,-18px) rotate(-.42deg)}59.266%{transform:translate(120px,0) rotate(.12deg)}67.644%{transform:translate(139px,-16px) rotate(.38deg)}76.022%{transform:translate(158px,0) rotate(0)}84.522%{opacity:1;transform:translate(158px,0)}86.522%,100%{opacity:0;transform:translate(158px,0)}}
/* One planted deformation owner makes the substrate, every seated Ub, and
   every K48 linkage anticipate, stretch, impact, and rebound as one cargo.
   The near-reciprocal scales preserve apparent molecular volume. */
@keyframes loaderCargoSquash{
  0%,8%{transform:scale(1)}
  9%{transform:scale(1.075,.925)}
  10.596%,11.393%{transform:scale(.965,1.065)}
  17.378%{transform:scale(1)}
  24.558%{transform:scale(.97,1.055)}
  25.755%,26.314%{transform:scale(1.12,.89)}
  27.191%{transform:scale(.975,1.045)}
  28.149%{transform:scale(1)}
  29.346%{transform:scale(1.075,.925)}
  30.942%,31.341%{transform:scale(.965,1.065)}
  34.133%{transform:scale(1)}
  41.314%{transform:scale(.97,1.055)}
  42.511%,43.070%{transform:scale(1.12,.89)}
  43.947%{transform:scale(.975,1.045)}
  44.905%{transform:scale(1)}
  46.102%{transform:scale(1.075,.925)}
  47.698%,48.097%{transform:scale(.965,1.065)}
  50.889%{transform:scale(1)}
  58.069%{transform:scale(.97,1.055)}
  59.266%,59.825%{transform:scale(1.12,.89)}
  60.702%{transform:scale(.975,1.045)}
  61.660%{transform:scale(1)}
  62.857%{transform:scale(1.075,.925)}
  64.453%,64.852%{transform:scale(.965,1.065)}
  67.644%{transform:scale(1)}
  74.825%{transform:scale(.97,1.055)}
  76.022%,76.581%{transform:scale(1.12,.89)}
  77.458%{transform:scale(.975,1.045)}
  78.4%,83.98%{transform:scale(1)}
  84.922%{transform:scale(.925,1.07)}
  85.722%{transform:scale(1.025,.985)}
  86.522%,100%{transform:scale(1)}
}
@keyframes loaderUnfoldedSubstrate{0%,78%{opacity:0;transform:translate(-4px,0) scaleX(1)}80%{opacity:.3;transform:translate(-2px,0) scaleX(1)}83%,90%{opacity:1;transform:translate(0,0) scaleX(1)}93%{opacity:.72;transform:translate(3px,0) scaleX(.72)}95.2%,100%{opacity:0;transform:translate(8px,0) scaleX(.05)}}
@keyframes loaderProteasomeBreathe{0%,100%{transform:scale(.86)}50%{transform:scale(.875)}}
/* Translation/recession, horizontal sweep, and bank belong to separate nested
   groups. The horizontal velocity reaches zero at the turn while the machine
   keeps climbing and rotates monotonically, eliminating the previous cusp. */
@keyframes loaderProteasomeLaunch{
  0%,60%{opacity:1;filter:blur(0) brightness(1) saturate(1);transform:translateY(0) scale(1)}
  61.1%{opacity:1;filter:blur(0) brightness(1) saturate(1);transform:translateY(-.15px) scale(.999)}
  62.2%{opacity:1;filter:blur(0) brightness(1) saturate(1);transform:translateY(-.65px) scale(.996)}
  63.3%{opacity:1;filter:blur(0) brightness(1) saturate(1);transform:translateY(-1.45px) scale(.992)}
  64.4%{opacity:1;filter:blur(0) brightness(1) saturate(1);transform:translateY(-2.6px) scale(.987)}
  65.5%{opacity:1;filter:blur(0) brightness(1) saturate(1);transform:translateY(clamp(-4.5px,-.52vh,-3.2px)) scale(.981)}
  66.6%{opacity:1;filter:blur(0) brightness(1) saturate(1);transform:translateY(clamp(-6px,-.75vh,-4px)) scale(.975)}
  69.2%{opacity:1;filter:blur(0) brightness(1) saturate(1);transform:translateY(clamp(-14px,-1.6vh,-9px)) scale(.95)}
  71.8%{opacity:1;filter:blur(0) brightness(1) saturate(1);transform:translateY(clamp(-23px,-2.5vh,-15px)) scale(.92)}
  74.3%{opacity:1;filter:blur(0) brightness(1) saturate(1);transform:translateY(clamp(-33px,-3.6vh,-21px)) scale(.88)}
  76.9%{opacity:1;filter:blur(0) brightness(1) saturate(1);transform:translateY(clamp(-44px,-4.8vh,-28px)) scale(.83)}
  79.5%{opacity:1;filter:blur(0) brightness(1) saturate(1);transform:translateY(clamp(-55px,-6vh,-36px)) scale(.76)}
  82.1%{opacity:1;filter:blur(0) brightness(1) saturate(1);transform:translateY(clamp(-66px,-7.1vh,-43px)) scale(.69)}
  84.7%{opacity:1;filter:blur(0) brightness(1.01) saturate(1);transform:translateY(clamp(-76px,-8.1vh,-50px)) scale(.63)}
  87.3%{opacity:1;filter:blur(0) brightness(1.01) saturate(1);transform:translateY(clamp(-86px,-9vh,-57px)) scale(.57)}
  89.8%{opacity:1;filter:blur(0) brightness(1.02) saturate(.99);transform:translateY(clamp(-95px,-9.8vh,-63px)) scale(.52)}
  92.4%{opacity:.97;filter:blur(.03px) brightness(1.04) saturate(.97);transform:translateY(clamp(-103px,-10.5vh,-68px)) scale(.46)}
  93.3%{opacity:.95;filter:blur(.04px) brightness(1.045) saturate(.965);transform:translateY(clamp(-105px,-10.7vh,-69px)) scale(.445)}
  94%{opacity:.93;filter:blur(.055px) brightness(1.048) saturate(.96);transform:translateY(clamp(-106px,-10.85vh,-70px)) scale(.43)}
  94.6%{opacity:.91;filter:blur(.07px) brightness(1.05) saturate(.955);transform:translateY(clamp(-107px,-10.95vh,-71px)) scale(.425)}
  95%{opacity:.88;filter:blur(.08px) brightness(1.05) saturate(.95);transform:translateY(clamp(-108px,-11vh,-72px)) scale(.42)}
  95.6%{opacity:.72;filter:blur(.15px) brightness(1.06) saturate(.93);transform:translateY(clamp(-111px,-11.3vh,-81px)) scale(.39)}
  96.2%{opacity:.56;filter:blur(.23px) brightness(1.07) saturate(.91);transform:translateY(clamp(-113px,-11.55vh,-82px)) scale(.36)}
  97%{opacity:.38;filter:blur(.32px) brightness(1.08) saturate(.89);transform:translateY(clamp(-115px,-11.75vh,-84px)) scale(.32)}
  98%{opacity:.20;filter:blur(.42px) brightness(1.09) saturate(.87);transform:translateY(clamp(-117px,-12vh,-85px)) scale(.28)}
  99%{opacity:.08;filter:blur(.50px) brightness(1.10) saturate(.85);transform:translateY(clamp(-119px,-12.1vh,-86px)) scale(.24)}
  100%{opacity:0;filter:blur(.58px) brightness(1.12) saturate(.82);transform:translateY(clamp(-120px,-12.2vh,-87px)) scale(.2)}
}
@keyframes loaderProteasomeSweep{
  0%{transform:translate(0,0)}
  60%{transform:translate(0,0);animation-timing-function:cubic-bezier(.45,0,.55,1)}
  80%{transform:translate(var(--loader-hook-x),var(--loader-flight-clearance));animation-timing-function:cubic-bezier(.45,0,.22,1)}
  100%{transform:translate(var(--loader-tail-x),var(--loader-flight-clearance))}
}
@keyframes loaderProteasomeBank{
  0%{transform:rotate(0)}
  60%{transform:rotate(0);animation-timing-function:cubic-bezier(.45,0,.55,1)}
  100%{transform:rotate(180deg)}
}
/* The trail remains a child of the banking machine; as the 26S turns through
   180 degrees its local-right plume naturally becomes the receding tail. */
@keyframes loaderPeptideThrust{0%,60%{opacity:0;transform:scaleX(.08) scaleY(.8)}64%{opacity:.3;transform:scaleX(.34) scaleY(.88)}69%{opacity:.72;transform:scaleX(.82) scaleY(.97)}75%{opacity:1;transform:scaleX(1.1) scaleY(1.04)}82%{opacity:.96;transform:scaleX(1.03) scaleY(1)}88%{opacity:.86;transform:scaleX(.94) scaleY(.97)}92%{opacity:.70;transform:scaleX(.82) scaleY(.93)}95%{opacity:.48;transform:scaleX(.70) scaleY(.90)}99%{opacity:.18;transform:scaleX(.56) scaleY(.84)}100%{opacity:0;transform:scaleX(.5) scaleY(.8)}}
@keyframes loaderFuelFlow{to{stroke-dashoffset:-12}}
@keyframes loaderFuelPeptidePulse{0%{transform:translateX(-.8px) scale(.86);opacity:.72}100%{transform:translateX(1px) scale(1.14);opacity:1}}
@keyframes loaderPorePulse{0%,100%{stroke:#8bdfff;stroke-width:1.3}50%{stroke:#d0baff;stroke-width:1.85}}
@keyframes loaderVortexSpin{0%{transform:rotate(0deg) scale(.96)}40%{transform:rotate(118deg) scale(.99)}75%{transform:rotate(268deg) scale(1.04)}100%{transform:rotate(390deg) scale(1.08)}}
@keyframes loaderVortexBloom{0%,6%{opacity:0;transform:translate(-50%,-50%) scale(.02)}24%{opacity:.16;transform:translate(-50%,-50%) scale(.14)}55%{opacity:.36;transform:translate(-50%,-50%) scale(.48)}82%{opacity:.48;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.5)}}
@keyframes loaderParticleConsume{0%,5%{opacity:0;transform:translate(-50%,-50%) translate(0,0) scale(.15)}18%{opacity:.96;transform:translate(-50%,-50%) translate(0,0) scale(.72)}55%{opacity:1;transform:translate(-50%,-50%) translate(var(--particle-mid-x),var(--particle-mid-y)) scale(1.38)}85%{opacity:.94}100%{opacity:0;transform:translate(-50%,-50%) translate(var(--particle-end-x),var(--particle-end-y)) scale(var(--particle-zoom,10))}}
.loader-controls{position:relative;z-index:9;display:grid;justify-items:center;gap:.55rem}
.lbar{width:min(246px,56vw);height:2px;border-radius:999px;background:transparent;position:relative;overflow:hidden}
.lfill{position:absolute;inset:0;width:0;border-radius:inherit;background:linear-gradient(90deg,rgba(244,114,182,.55),rgba(244,114,182,.86));box-shadow:0 0 8px rgba(244,114,182,.26);transition:width .375s cubic-bezier(.22,.61,.36,1)}
.lst{min-height:1.2em;font-family:var(--mono);font-size:.78rem;font-weight:650;letter-spacing:.16em;color:var(--text-secondary);transition:opacity .22s cubic-bezier(.4,0,.2,1),transform .22s cubic-bezier(.4,0,.2,1)}
.lst.changing{opacity:0;transform:translateY(4px)}
.loader-skip{position:static;min-height:44px;padding:.52rem .82rem;border:1px solid rgba(255,255,255,.22);border-radius:6px;background:rgba(7,10,16,.58);color:var(--text-primary);font-family:var(--mono);font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s var(--ease-out)}
.loader-skip:hover,.loader-skip:focus-visible{background:rgba(255,255,255,.09);border-color:rgba(143,233,255,.58);color:var(--text-primary)}
.loader-skip:hover{transform:translateY(-1px)}

/* ══ PROGRESS + NAV ═════════════════════════════════════ */
#prog{position:fixed;top:0;left:0;height:1px;z-index:1200;width:100%;transform:scaleX(0);transform-origin:left center;
  background:var(--accent);box-shadow:0 0 9px rgba(244,114,182,.28);will-change:transform}
nav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;isolation:isolate;
  padding:.86rem var(--pad);background:#11161b;border-bottom:1px solid rgba(238,241,248,.1);box-shadow:0 9px 30px rgba(0,0,0,.14)}
/* Scrolling can still flag the nav for state bookkeeping, but its appearance
   stays identical so the header never fades between transparent and black. */
nav.stuck{background:#11161b;border-bottom-color:rgba(238,241,248,.1);box-shadow:0 9px 30px rgba(0,0,0,.14);backdrop-filter:none;-webkit-backdrop-filter:none}
.nlogo{font-family:var(--disp);font-weight:500;font-size:1.02rem;letter-spacing:-.015em;text-decoration:none;
  display:flex;flex:0 1 auto;align-items:center;gap:.58rem;min-width:0;isolation:isolate;color:var(--dtext);transition:color .45s ease}
.nlogo .mk{display:block;width:38px;height:38px;flex-shrink:0;filter:drop-shadow(0 8px 18px rgba(0,0,0,.22)) drop-shadow(0 0 12px rgba(99,162,255,.09));transition:filter .25s ease,transform .25s ease}
.nlogo-name{display:block;font-size:clamp(.82rem,1.1vw,.98rem);line-height:1;letter-spacing:-.02em;color:var(--text-primary)}
.nlogo:hover .mk,.nlogo:focus-visible .mk{filter:drop-shadow(0 10px 24px rgba(0,0,0,.28)) drop-shadow(0 0 18px rgba(99,162,255,.18));transform:translateY(-1px) scale(1.02)}
.nlogo:focus-visible{outline:2px solid rgba(143,233,255,.72);outline-offset:5px;border-radius:6px}
.nav-m2{display:inline-block;width:1.16rem;height:1.16rem;margin-left:.24rem;vertical-align:-.28rem;filter:drop-shadow(0 3px 7px rgba(0,0,0,.18))}
.nlinks{display:flex;align-items:center;gap:.08rem;list-style:none;padding:.18rem;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:linear-gradient(135deg,rgba(9,12,18,.88),rgba(18,23,29,.82));box-shadow:0 8px 24px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.055);backdrop-filter:blur(14px) saturate(106%);-webkit-backdrop-filter:blur(14px) saturate(106%)}
.ncta{border:1px solid rgba(244,114,182,.42)!important;color:var(--accent)!important;padding:.4rem 1.05rem!important;
  background:rgba(244,114,182,.09);transition:background .25s,box-shadow .25s,border-color .25s}
.ncta:hover{background:rgba(244,114,182,.2);box-shadow:0 0 24px rgba(244,114,182,.22)}
.nburg{display:none;flex:0 0 44px;width:44px;height:44px;align-content:center;justify-items:center;gap:5px;background:none;border:0;cursor:pointer;padding:0;color:inherit}
.nburg span{display:block;width:22px;height:1.5px;background:currentColor;margin:0;transition:transform .3s,opacity .3s}
nav.open .nburg span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
nav.open .nburg span:nth-child(2){opacity:0}
nav.open .nburg span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ══ SHARED CONTROLS ════════════════════════════════════ */
main{position:relative;z-index:5}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.75rem 1.38rem;border:1px solid;border-radius:6px;text-decoration:none;font-size:.95rem;font-weight:600;line-height:1.2;transition:background .3s,border-color .3s,box-shadow .3s,color .3s,transform .3s}
.btn .ar{transition:transform .3s cubic-bezier(.4,0,.2,1)}
.btn:hover .ar{transform:translateX(4px)}
.btn-fill{background:#f1f3f6;color:#171d23;border-color:#f1f3f6;box-shadow:0 8px 24px rgba(0,0,0,.1)}
.btn-fill:hover{box-shadow:0 11px 30px rgba(238,241,248,.14);transform:translateY(-1px)}
.btn-out{background:rgba(8,11,16,.2);color:var(--dtext);border-color:rgba(238,241,248,.15)}
.btn-out:hover{border-color:rgba(238,241,248,.34);background:rgba(255,255,255,.065);transform:translateY(-1px)}

@media(prefers-reduced-motion:reduce){
  #loader{transition:none!important}
  #loader > :is(.lmk,.loader-proteostasis,.loader-controls),.loader-skip{transition:none!important}
  .loader-cargo,.loader-cargo-squash,.loader-ground-ub,.loader-cargo-ub,.loader-unfolded-substrate,.loader-proteasome-launch,.loader-proteasome-sweep,.loader-proteasome-bank,.loader-proteasome,.loader-proteasome-pore,.loader-peptide-thrust,.loader-fuel-path,.loader-fuel-peptide,.loader-vortex-field,.loader-vortex-bloom,.loader-vortex-particle{animation:none!important}
  .loader-cargo{opacity:1;transform:translate(136px,0)}
  .loader-cargo-squash{transform:scale(.98)}
  .loader-ground-ub,.loader-unfolded-substrate{opacity:0}
  .loader-cargo-ub{opacity:1;transform:none}
  .loader-peptide-thrust{display:none}
  .loader-peptide-vortex{display:none}
  .nlogo .mk,.btn,.btn .ar,#environmentBadge,#sceneExplainControl,.scene-explain-chevron{transition:none!important;transform:none!important}
}
#sceneScrollOverlay{position:sticky;top:0;z-index:610;flex:0 0 100dvh;align-self:stretch;width:100%;height:100dvh;margin-bottom:-100dvh;overflow:visible;pointer-events:none}
#sceneScrollOverlay #molecularInspector{position:absolute;inset:0}
#sceneScrollOverlay #environmentBadge{position:absolute}
@media(max-width:900px){#sceneScrollOverlay{margin-bottom:calc(-100dvh - clamp(14rem,42svh,24rem))}}
@media(max-width:1120px){
  .nburg{display:grid}
  .nlinks{position:fixed;inset:0;flex-direction:column;justify-content:center;align-items:center;height:100dvh;min-height:100vh;gap:1.6rem;background:#0d1118;padding:max(5.6rem,env(safe-area-inset-top)) 1.4rem max(2rem,env(safe-area-inset-bottom));border:0;border-radius:0;box-shadow:none;overflow-y:auto;transform:translate3d(0,-100%,0);visibility:hidden;pointer-events:none;transition:transform .55s cubic-bezier(.4,0,.2,1),visibility 0s linear .55s;z-index:-1}
  nav.open .nlinks{transform:translate3d(0,0,0);visibility:visible;pointer-events:auto;transition-delay:0s}
  .nlinks button{min-height:44px;padding:.62rem 1rem;font-size:1.15rem;color:var(--dtext)!important}
  .nlinks button.ncta{padding:.62rem 1.1rem!important}
}
@media(max-width:380px){.nlogo{gap:.42rem}.nlogo-name{font-size:.72rem}}

/* ══ CELL ATLAS: TABULAR PORTFOLIO ══════════════════════ */
body.tabular{height:100dvh;overflow:hidden}
body.tabular footer{display:none}
.nlinks button{position:relative;border:0;background:transparent;text-decoration:none;font-size:.88rem;font-weight:600;padding:.42rem .78rem;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:color .25s ease,background .25s ease}.nlinks button::after{content:'';position:absolute;left:.78rem;right:.78rem;bottom:.18rem;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.4,0,.2,1);opacity:.7}
.nlinks button:hover,.nlinks button[aria-current="location"]{color:var(--dtext);background:rgba(255,255,255,.08)}
.nlinks button[aria-current="location"]::after{transform:scaleX(1)}
.nlinks button.ncta::after{display:none}
body.tabular .nlinks button:hover:not(.ncta){background:color-mix(in srgb,var(--cyan) 8%,rgba(255,255,255,.045))}
body.tabular .nlinks button[aria-current="location"]:not(.ncta){
  background:color-mix(in srgb,var(--cyan) 13%,rgba(255,255,255,.045));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cyan) 32%,transparent),0 0 18px color-mix(in srgb,var(--cyan) 10%,transparent)}
body.tabular .nlinks button[aria-current="location"]:not(.ncta)::after{background:var(--cyan)}
body.tabular .nlinks button.ncta{background:rgba(244,114,182,.09);border-color:rgba(244,114,182,.42)!important;color:var(--accent)!important}
body.tabular .nlinks button.ncta:hover,body.tabular .nlinks button.ncta[aria-current="location"]{background:rgba(244,114,182,.18);box-shadow:0 0 22px rgba(244,114,182,.16)}
.nlinks button:not(.ncta):focus-visible{outline-color:var(--cyan)}
.nlinks button.ncta:focus-visible{outline-color:var(--accent)}

#tabMain{position:relative;z-index:6;display:flex;height:100dvh;flex-direction:column;gap:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:auto;scroll-behavior:smooth;scroll-padding-top:5.25rem;scrollbar-color:rgba(255,255,255,.2) transparent;scrollbar-width:thin}
.tab-panel{--tab-accent:var(--cyan);position:relative;display:block;flex:0 0 auto;min-height:100dvh;overflow:visible;padding:7.65rem var(--pad) 6rem;contain:layout paint;background:none;opacity:1;visibility:visible;pointer-events:auto;transform:none;scroll-margin-top:0}.tab-panel::before{content:none}.tab-panel.has-scene-band{--scene-band-h:min(72dvh,640px);padding-bottom:0!important}
/* Scene captions stay open and use a readable measure. A full-width wash here
   darkened the molecular canvas in a horizontal stripe during every handoff. */
.scene-band{position:relative;display:flex;align-items:center;height:var(--scene-band-h);margin:2.6rem calc(-1 * var(--pad)) 0;padding:2rem var(--pad);pointer-events:none}
.scene-band::before{content:none}
.scene-band-copy{position:relative;width:min(30rem,100%)}
.scene-band-label{margin:0;font-family:var(--sans);font-size:.76rem;font-weight:600;line-height:1.5;letter-spacing:.055em;color:var(--text-cyan)}
.scene-band-text{margin:.65rem 0 0;font-family:var(--disp);font-size:clamp(1.12rem,1.65vw,1.5rem);font-weight:400;line-height:1.5;color:var(--text-primary);text-wrap:pretty}
.tab-panel.has-final-scene{--scene-band-h:100vh;--scene-band-h:100svh}

.tab-panel.is-active{z-index:2}
.tab-panel[data-cell="about"]{--tab-accent:var(--cyan)}
.tab-panel[data-cell="research"]{--tab-accent:var(--cyan)}
.tab-panel[data-cell="independent"]{--tab-accent:var(--cyan)}
.tab-panel[data-cell="publications"]{--tab-accent:var(--cyan)}
.tab-panel[data-cell="contact"]{--tab-accent:var(--cyan)}
#environmentBadge{--scene-cta-accent:var(--teal);position:fixed;right:var(--pad);bottom:1.35rem;z-index:610;max-width:min(360px,calc(100vw - 1.5rem));border:1px solid rgba(255,255,255,.16);border-radius:6px;background:rgba(10,13,19,.76);color:var(--text-secondary);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);pointer-events:auto;transition:color .5s,border-color .5s,background .25s,box-shadow .25s}
#sceneExplainControl{display:flex;align-items:center;gap:.58rem;width:100%;min-height:44px;padding:.42rem .68rem;border:0;border-radius:inherit;background:transparent;color:inherit;text-align:left;cursor:pointer}
#sceneExplainControl::before{content:'';width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--scene-cta-accent);box-shadow:0 0 10px var(--scene-cta-accent)}
.environment-badge-copy{display:grid;min-width:0;gap:.02rem;line-height:1.2}
.environment-badge-label{max-width:28ch;overflow:hidden;font-family:var(--mono);font-size:.56rem;font-weight:650;letter-spacing:.1em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;color:var(--text-muted)}
.scene-explain-action{font-family:var(--mono);font-size:.72rem;font-weight:720;letter-spacing:.075em;text-transform:uppercase;color:var(--text-cyan)}
.scene-explain-chevron{display:block;width:14px;height:14px;flex:0 0 auto;margin-left:auto;transition:transform .2s ease}
.scene-explain-chevron path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#sceneExplainControl:hover,#sceneExplainControl:focus-visible,#sceneExplainControl[aria-expanded="true"]{background:rgba(255,255,255,.055);color:var(--dtext)}
#sceneExplainControl[aria-expanded="true"] .scene-explain-chevron{transform:rotate(180deg)}
.scene-explanation{position:absolute;right:0;bottom:calc(100% + .65rem);width:min(320px,calc(100vw - 1.5rem));padding:.82rem .88rem .86rem;border:1px solid rgba(255,255,255,.18);border-top-color:color-mix(in srgb,var(--scene-cta-accent) 58%,rgba(255,255,255,.18));border-radius:4px;background:rgba(8,12,18,.94);box-shadow:0 18px 48px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.06);color:var(--dtext);backdrop-filter:blur(16px) saturate(108%);-webkit-backdrop-filter:blur(16px) saturate(108%)}
.scene-explanation[hidden]{display:none!important}
.scene-explanation strong{display:block;font-family:var(--disp);font-size:1rem;font-weight:560;line-height:1.25;color:var(--text-primary)}
.scene-explanation span{display:block;margin-top:.28rem;font-size:.73rem;line-height:1.52;color:var(--text-secondary)}
.scene-age-legend{margin-top:.58rem;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.1)}
.scene-age-legend[hidden]{display:none!important}
.scene-age-ramp{height:4px;border-radius:999px;background:linear-gradient(90deg,#22d3ee 0%,#60a5fa 26%,#a78bfa 52%,#f6acd8 76%,#f59e0b 100%);box-shadow:0 0 10px rgba(96,165,250,.14)}
.scene-age-labels{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.24rem}
.scene-explanation .scene-age-labels span{display:inline;margin:0;font-family:var(--mono);font-size:.52rem;font-weight:650;line-height:1.2;letter-spacing:.045em;text-transform:uppercase;color:var(--text-muted)}
.scene-explanation small{display:block;margin-top:.48rem;padding-top:.45rem;border-top:1px solid rgba(255,255,255,.1);font-family:var(--mono);font-size:.62rem;line-height:1.45;letter-spacing:.035em;color:var(--text-muted)}
.scene-age-legend:not([hidden])+small{margin-top:.4rem;padding-top:0;border-top:0}
@media(max-width:620px){.scene-explanation .scene-age-labels span{font-size:.49rem}}
body.scene-explaining .molecular-hotspot:not([hidden]){opacity:.28;border-color:color-mix(in srgb,var(--inspector-color,#8fe9ff) 45%,transparent);background:radial-gradient(circle,color-mix(in srgb,var(--inspector-color,#8fe9ff) 10%,transparent),transparent 70%)}
body.scene-explaining .molecular-hotspot:hover,body.scene-explaining .molecular-hotspot:focus-visible,body.scene-explaining .molecular-hotspot.is-active{opacity:1}
.tab-layout{width:min(820px,63vw);min-height:calc(100dvh - 13.65rem);margin:0 auto 0 0;display:flex;flex-direction:column;gap:1.3rem;align-items:stretch;justify-content:center}
.tab-layout.wide{width:min(820px,63vw);align-items:stretch;justify-content:flex-start}
.tab-title{max-width:800px;color:var(--dtext);font-family:var(--disp);font-size:clamp(2.2rem,4.2vw,4rem);font-weight:350;letter-spacing:-.042em;line-height:.985;text-wrap:balance}
.tab-title .gradient{font-weight:550;color:var(--accent)}
.tab-title[tabindex="-1"]:focus{outline:none}
.tab-title[tabindex="-1"]:focus-visible{outline:none}
.tab-deck{max-width:680px;margin-top:1.3rem;color:var(--text-secondary);font-size:clamp(.98rem,1.34vw,1.1rem);line-height:1.72;text-wrap:pretty}
.about-hero{display:block}
.about-hero-copy{min-width:0}
.about-hero .tab-title{font-size:clamp(2.05rem,4vw,3.6rem)}
.about-intro{display:flow-root;margin-top:1.3rem}
.about-intro .tab-deck{max-width:none;margin-top:0}
.about-portrait{position:relative;float:left;width:min(198px,29%);margin:0 1.35rem .85rem 0;border:1px solid var(--paper-border);border-top-color:color-mix(in srgb,var(--tab-accent) 36%,var(--paper-border));border-radius:var(--card-radius);overflow:hidden;background:linear-gradient(145deg,var(--paper-hi),var(--paper-lo));box-shadow:var(--paper-shadow)}
.about-portrait-media{width:100%;aspect-ratio:3/4;overflow:hidden;background:#111722}
.about-portrait-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 8%;transform:scale(1.12);transform-origin:40% 28%}
.about-portrait figcaption{display:flex;flex-direction:column;gap:.12rem;padding:.72rem .78rem .78rem;color:#18212c}
.about-portrait figcaption strong{font-family:var(--disp);font-size:.88rem;font-weight:560;line-height:1.25}
.about-portrait figcaption span{font-family:var(--mono);font-size:.58rem;line-height:1.4;letter-spacing:.09em;text-transform:uppercase;color:var(--paper-muted)}
.tab-actions{display:flex;flex-wrap:wrap;gap:.68rem;margin-top:1.75rem}
#panel-overview .tab-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.68rem}
#panel-overview .tab-actions .btn{justify-content:center;min-width:0;padding:.78rem .72rem;white-space:nowrap}
#panel-overview .tab-actions .btn-out:is(:hover,:focus-visible){color:#fff;border-color:color-mix(in srgb,var(--tab-accent) 72%,white);background:color-mix(in srgb,var(--tab-accent) 22%,rgba(255,255,255,.13));box-shadow:0 12px 34px rgba(0,0,0,.2),0 0 26px color-mix(in srgb,var(--tab-accent) 28%,transparent),inset 0 1px 0 rgba(255,255,255,.22);text-shadow:0 0 14px rgba(255,255,255,.18);transform:translateY(-1px)}
#panel-overview .training-entry{display:block;margin-top:.48rem}
#panel-overview .training-entry b{display:block;font-family:var(--disp);font-size:.95rem;font-weight:520;line-height:1.36;color:#121820}
#panel-overview .training-entry span{display:block;font-size:.8rem;color:var(--paper-muted)}
@media(min-width:1121px){#panel-contact .matrix-table th{width:22%}#panel-contact .matrix-table td{font-size:.84rem}#panel-contact .matrix-table tr:nth-child(2) td{font-size:.79rem;white-space:nowrap}}
#panel-contact .data-sheet{border-top-color:var(--paper-border)}
#panel-contact .matrix-table td.contact-primary-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:.18rem .75rem}
#panel-contact .contact-primary-links a{white-space:nowrap}
.tab-actions button{cursor:pointer}

.data-sheet{color:var(--paper-text);border:1px solid var(--paper-border);border-top-color:color-mix(in srgb,var(--tab-accent) 34%,var(--paper-border));border-radius:var(--card-radius);overflow:hidden;background:linear-gradient(138deg,var(--paper-hi),var(--paper-lo));box-shadow:var(--paper-shadow)}
.data-sheet :focus-visible{outline-color:#151923}
.sheet-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.88rem 1.05rem;border-bottom:1px solid var(--paper-line);background:rgba(255,255,255,.065);font-family:var(--mono);font-size:.6rem;font-weight:680;letter-spacing:.14em;text-transform:uppercase;color:var(--paper-muted)}
.sheet-head strong{color:color-mix(in srgb,var(--tab-accent) 26%,#17202b);font-weight:700}
.matrix-table{width:100%;border-collapse:collapse}
.matrix-table th,.matrix-table td{padding:.92rem 1.05rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--paper-line)}
.matrix-table tr:last-child th,.matrix-table tr:last-child td{border-bottom:0}
.matrix-table th{width:29%;font-family:var(--mono);font-size:.62rem;line-height:1.45;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-muted);font-weight:650}
.matrix-table td{font-size:.86rem;line-height:1.62;color:#303a46;overflow-wrap:anywhere}
.matrix-table td strong{display:block;color:#121820;font-family:var(--disp);font-size:1rem;font-weight:520;line-height:1.38;margin-bottom:.12rem}
.matrix-table a{color:color-mix(in srgb,var(--tab-accent) 26%,#17202b);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--tab-accent) 38%,transparent);overflow-wrap:anywhere}
.matrix-table .status{display:inline-flex;margin-top:.35rem;padding:.22rem .48rem;border-radius:3px;font-family:var(--mono);font-size:.62rem;letter-spacing:.07em;text-transform:uppercase;color:#0b5a55;background:rgba(45,212,191,.14);border:1px solid rgba(15,95,90,.2)}
.evolution-sheet .matrix-table th{width:29%;padding-right:.7rem}
.timeline-year{display:block}
.timeline-institution{display:flex;align-items:center;justify-content:flex-start;width:min(142px,100%);min-height:44px;margin-top:.62rem}
.timeline-institution img{display:block;width:auto;max-width:100%;height:auto;max-height:42px;object-fit:contain;object-position:left center}
.timeline-institution--ucla{box-sizing:border-box;min-height:44px;padding:.42rem .64rem;background:#2774ae}
.timeline-institution--ucla img{width:100%;max-height:31px}
.timeline-institution--rochester{width:min(154px,100%)}
.timeline-future th,.timeline-future td{border-top:1px solid color-mix(in srgb,var(--tab-accent) 18%,var(--paper-line));background:rgba(103,86,173,.025)}
.timeline-future-label{display:block;color:var(--paper-muted)}
.timeline-future-mark{display:flex;align-items:center;justify-content:center;width:min(154px,100%);margin-top:.62rem}
.timeline-future-logo{display:block;width:84px;height:84px;border:0;background:transparent;box-shadow:none;object-fit:contain}
@media(max-width:620px){.timeline-future th{border-bottom:0}.timeline-future td{border-top:0}}

.research-matrix{color:var(--paper-text);border:1px solid var(--paper-border);border-top-color:color-mix(in srgb,var(--tab-accent) 34%,var(--paper-border));border-radius:var(--card-radius);overflow:hidden;background:linear-gradient(138deg,var(--paper-hi),var(--paper-lo));box-shadow:var(--paper-shadow)}
.research-programs{display:flex;flex-direction:column}
.research-program{--program-accent:var(--cyan);position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem;padding:1.45rem 1.4rem 1.5rem;border-bottom:1px solid var(--paper-line)}
.research-program::after{content:none}
.research-program:last-child{border-bottom:0}
.research-program:nth-child(2){--program-accent:var(--cyan)}
.research-program:nth-child(3){--program-accent:var(--cyan)}
.research-program:nth-child(4){--program-accent:var(--cyan)}
.research-program::before{content:"";position:absolute;top:0;left:1.4rem;width:38px;height:2px;background:var(--program-accent);box-shadow:0 0 8px color-mix(in srgb,var(--program-accent) 28%,transparent)}
.research-program-top{display:flex;grid-column:1/-1;order:0;align-items:baseline;gap:.65rem;margin-bottom:.15rem}
.research-program h3{color:#121820;font-family:var(--disp);font-size:1.2rem;font-weight:550;line-height:1.28;text-wrap:balance}
.research-program p{grid-column:1/-1;order:1;margin:0;color:#38434f;font-size:.84rem;line-height:1.68;text-wrap:pretty}
.research-program>p:first-of-type{margin-bottom:0}
.research-visual-slot+p{margin-top:0}
.research-visual-slot:empty{display:none}
.research-visual-slot{display:block;float:none;order:2;width:100%;margin:0}
.research-visual-slot--secondary{float:none;clear:none}
.research-visual-card{align-self:start;width:100%;margin:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--program-accent) 21%,rgba(18,20,29,.13));border-radius:4px;background:rgba(255,255,255,.3);box-shadow:inset 0 1px 0 rgba(255,255,255,.48),0 7px 16px rgba(0,0,0,.055)}
.research-visual-card .ga-zoom-button{aspect-ratio:16/9;padding:.68rem;background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(224,231,239,.7))}
.research-visual-card .ga-zoom-button img{position:absolute;inset:.68rem;width:calc(100% - 1.36rem);max-width:none;height:calc(100% - 1.36rem);max-height:none;object-fit:contain}
.research-visual-card--portrait{width:100%}
.research-visual-card--portrait .ga-zoom-button{aspect-ratio:16/9}
.research-visual-card--portrait .ga-zoom-button img{object-fit:contain}
.research-visual-card--degu .ga-zoom-button img{transform:scale(.92);transform-origin:center}
.research-visual-card--kctd7-cells .ga-zoom-button img{inset:50% auto auto 50%;width:auto;height:calc(100% - 1.36rem);aspect-ratio:372/305;object-fit:cover;object-position:center bottom;transform:translate(-50%,-50%)}
.research-visual-card--llorente-cells .ga-zoom-button{aspect-ratio:16/9}
.research-visual-card--llorente-cells .ga-zoom-button img{inset:50% auto auto 50%;width:auto;height:calc(100% - 1.36rem);aspect-ratio:736/520;object-fit:cover;object-position:center 69.12%;transform:translate(-50%,-50%)}
.research-program--bottom-stack{display:grid}
.research-visual-stack{box-sizing:border-box;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-column:1/-1;order:2;gap:1rem;width:100%;min-width:0;margin:0;padding:0;float:none;shape-outside:none}
.research-visual-stack .research-visual-slot{float:none;clear:none;order:initial;width:100%;margin:0}
.research-visual-caption{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.24rem .7rem;padding:.7rem .82rem;border-top:1px solid rgba(18,20,29,.09);color:#38434f}
.research-visual-caption>span{align-self:center;font-family:var(--mono);font-size:.6rem;font-weight:700;line-height:1.5;letter-spacing:.11em;text-transform:uppercase;color:color-mix(in srgb,var(--program-accent) 26%,#17202b)}
.research-visual-caption strong{grid-column:1/-1;font-family:var(--disp);font-size:clamp(.78rem,1.15vw,.86rem);font-weight:540;text-align:left;white-space:normal;color:#121820}
.research-visual-caption strong a{color:inherit;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--program-accent) 38%,transparent)}
.research-visual-caption small{grid-column:1/-1;font-size:.64rem;line-height:1.45;color:var(--paper-muted)}
.research-visual-caption small a{color:inherit;text-underline-offset:.16em}
.research-animation-link{grid-column:2;grid-row:1;display:inline-flex;width:max-content;max-width:100%;min-width:7.15rem;min-height:3.2rem;align-items:center;align-self:center;justify-content:center;gap:.38rem;padding:.46rem .64rem;border:1px solid color-mix(in srgb,var(--program-accent) 48%,var(--paper-border));border-radius:6px;background:color-mix(in srgb,var(--program-accent) 10%,var(--paper-hi));box-shadow:0 2px 8px rgba(18,24,32,.08);color:#18212b;font-family:var(--mono);font-size:.66rem;font-weight:750;line-height:1.2;letter-spacing:.065em;text-decoration:none;text-transform:uppercase;transition:border-color .2s ease,background-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease}
.research-animation-label{display:block;line-height:1.08;text-align:left}
.research-animation-link:hover{border-color:color-mix(in srgb,var(--program-accent) 72%,#17202b);background:color-mix(in srgb,var(--program-accent) 18%,var(--paper-hi));color:color-mix(in srgb,var(--program-accent) 62%,#17202b);box-shadow:0 4px 12px rgba(18,24,32,.12);transform:translateY(-1px)}
.research-animation-link:focus-visible{outline:2px solid var(--program-accent);outline-offset:2px}
@media(min-width:621px){
  .research-program:nth-child(2){padding-bottom:1.1rem}
}

.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:1.1rem}
.mini-card{padding:1.02rem 1.06rem;border:1px solid var(--paper-border);border-radius:var(--card-radius);background:linear-gradient(135deg,var(--paper-hi),var(--paper-lo));color:var(--paper-text);box-shadow:var(--paper-shadow)}
.mini-card span{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--paper-muted)}
.mini-card strong{display:block;margin-top:.3rem;font-family:var(--disp);font-size:1.06rem;font-weight:530;line-height:1.28}
.mini-card p{margin-top:.4rem;color:#3f4853;font-size:.82rem;line-height:1.58}
.degree-card{position:relative;padding:1.15rem 1.2rem 1.2rem;border-top:2px solid color-mix(in srgb,var(--degree-accent,#a78bfa) 58%,transparent)}
.degree-card--md{--degree-accent:var(--cyan)}.degree-card--phd{--degree-accent:var(--cyan)}
.degree-copy{display:flex;flex-direction:column;height:100%}
.degree-copy>span{color:color-mix(in srgb,var(--degree-accent,#a78bfa) 26%,#17202b)}
.degree-copy strong{font-size:1.08rem;line-height:1.28}
.degree-copy p{display:flex;flex:1;flex-direction:column;margin-top:.62rem;font-size:.86rem;line-height:1.55;color:#34404c}
.degree-school,.degree-detail,.degree-capstone{display:block}
.degree-card .degree-school,.degree-card .degree-detail{font-family:var(--sans);font-size:.86rem;letter-spacing:0;text-transform:none}
.degree-school{font-weight:680;color:#28323e}
.degree-detail{margin-top:.16rem;color:var(--paper-muted)}
.degree-capstone{box-sizing:border-box;min-height:5.45rem;margin-top:auto;padding-top:.48rem;border-top:1px solid rgba(18,20,29,.1)}
.degree-capstone b{display:block;font-family:var(--mono);font-size:.6rem;font-weight:700;line-height:1.5;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--degree-accent,#a78bfa) 26%,#17202b)}
.degree-capstone em{display:block;margin-top:.14rem;font-family:var(--disp);font-size:.9rem;font-style:normal;line-height:1.42;letter-spacing:0;text-transform:none;color:#394552}
.honors-card{display:grid;grid-template-columns:minmax(0,.5fr) minmax(0,1.6fr);gap:1rem;align-items:center;border-top:2px solid rgba(251,191,36,.58)}
.honors-card-body{min-width:0;padding-left:1rem;border-left:1px solid rgba(18,20,29,.12)}
.honors-card p{margin-top:0}
.honors-logos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.62rem;margin-top:.78rem}
.honors-logo{display:grid;place-items:center;min-width:0;min-height:70px;padding:.48rem .62rem;border:1px solid rgba(18,20,29,.1);border-radius:6px;background:rgba(255,255,255,.42);box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}
.honors-logo img{display:block;width:100%;height:54px;object-fit:contain}
.lab-gallery{padding:1.02rem 1.05rem 1.08rem;color:var(--paper-text);border:1px solid var(--paper-border);border-top-color:color-mix(in srgb,var(--tab-accent) 34%,var(--paper-border));border-radius:var(--card-radius);background:linear-gradient(138deg,var(--paper-hi),var(--paper-lo));box-shadow:var(--paper-shadow)}
.lab-gallery-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.35rem 1rem;align-items:baseline;margin-bottom:.8rem}
.lab-gallery-kicker{font-family:var(--mono);font-size:.6rem;font-weight:700;line-height:1.5;letter-spacing:.13em;text-transform:uppercase;color:color-mix(in srgb,var(--tab-accent) 26%,#17202b)}
.lab-gallery h3{font-family:var(--disp);font-size:1.2rem;font-weight:500;line-height:1.2;color:#121820}
.lab-gallery-head p{grid-column:2;margin-top:.08rem;color:var(--paper-muted);font-size:.72rem;line-height:1.5}
.lab-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.62rem}
.lab-photo-card{min-width:0;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.17);border-radius:4px;background:linear-gradient(145deg,rgba(248,250,252,.94),rgba(215,223,232,.88));box-shadow:inset 0 1px 0 rgba(255,255,255,.68),0 8px 18px rgba(0,0,0,.12)}
.lab-photo-media{aspect-ratio:8/5;overflow:hidden;background:#111722}
.lab-photo-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center 48%;background:#111722}
.lab-photo-image--portrait{object-position:center 42%}
.lab-photo-card figcaption{min-height:4.7rem;padding:.55rem .58rem .62rem;color:#18212c}
.lab-photo-card figcaption strong{display:block;font-family:var(--disp);font-size:.72rem;font-weight:590;line-height:1.22}
.lab-photo-card figcaption span{display:block;margin-top:.2rem;font-family:var(--mono);font-size:.56rem;line-height:1.35;letter-spacing:.06em;text-transform:uppercase;color:var(--paper-muted)}
.independent-work-list:empty{display:none}
.independent-work-list{display:grid;grid-template-columns:1fr;gap:.95rem;margin-top:1.6rem}
.independent-work-group{padding-top:1.15rem;border-top:1px solid rgba(255,255,255,.13)}
.independent-work-group:first-child{padding-top:0;border-top:0}
.independent-work-group-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:.7rem;margin-bottom:.75rem}
.independent-work-group-heading h3{font-family:var(--disp);font-size:clamp(1.55rem,3vw,2.25rem);font-weight:450;line-height:1;color:var(--dtext)}
.work-suite-link{display:inline-flex;align-items:center;gap:.38rem;min-height:38px;margin-left:auto;padding:.46rem .66rem;border:1px solid color-mix(in srgb,var(--work-group-accent) 42%,rgba(255,255,255,.16));border-radius:6px;background:color-mix(in srgb,var(--work-group-accent) 9%,transparent);color:var(--dtext);font-family:var(--mono);font-size:.68rem;font-weight:700;line-height:1.3;letter-spacing:.09em;text-decoration:none;text-transform:uppercase}.work-suite-link:hover{border-color:color-mix(in srgb,var(--work-group-accent) 70%,rgba(255,255,255,.22));background:color-mix(in srgb,var(--work-group-accent) 15%,transparent)}
.independent-work-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.78rem}
.independent-work-group[data-category="projects"]{--work-group-accent:var(--cyan)}
.independent-work-group[data-category="tools"]{--work-group-accent:var(--cyan)}
.independent-work-group[data-category="animations"]{--work-group-accent:var(--cyan)}
.independent-work-group[data-category="musings"]{--work-group-accent:var(--cyan)}
.independent-work-group[data-category="fun"]{--work-group-accent:var(--cyan)}
.independent-work-card{--work-accent:var(--cyan);position:relative;isolation:isolate;overflow:hidden;border:1px solid var(--paper-border);border-top-color:color-mix(in srgb,var(--work-accent) 29%,var(--paper-border));border-radius:var(--card-radius);background:linear-gradient(135deg,var(--paper-hi),var(--paper-lo));box-shadow:var(--paper-shadow);color:var(--paper-text);transition:transform .22s cubic-bezier(.16,1,.3,1),border-color .22s ease,background-color .22s ease,box-shadow .22s ease}
.independent-work-card::before{content:"";position:absolute;z-index:0;inset:0 auto 0 0;width:2px;background:var(--work-accent);box-shadow:0 0 10px color-mix(in srgb,var(--work-accent) 24%,transparent);opacity:.78;transition:width .22s ease,opacity .22s ease}
.independent-work-card::after{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(112deg,transparent 22%,color-mix(in srgb,var(--work-accent) 8%,transparent) 48%,transparent 72%);transform:translateX(-120%);transition:transform .5s cubic-bezier(.16,1,.3,1);pointer-events:none}
.independent-work-card:focus-within{outline:2px solid var(--work-accent);outline-offset:3px}
.independent-work-card[data-accent="violet"]{--work-accent:var(--cyan)}.independent-work-card[data-accent="amber"]{--work-accent:var(--cyan)}.independent-work-card[data-accent="rose"]{--work-accent:var(--cyan)}.independent-work-card[data-accent="blue"]{--work-accent:var(--cyan)}
.independent-work-copy{position:relative;z-index:1;align-self:center;padding:1.25rem 1.3rem}
.independent-work-title{display:grid;grid-template-columns:58px minmax(0,1fr);gap:.88rem;align-items:center;margin-top:.7rem}
.independent-work-title h4{margin-top:0!important;font-size:clamp(1rem,1.5vw,1.28rem)!important;line-height:1.2!important}
.independent-work-mark{position:relative;display:grid;place-items:center;width:56px;height:56px;border:1px solid color-mix(in srgb,var(--work-accent) 30%,rgba(18,20,29,.12));border-radius:6px;background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--work-accent) 14%,transparent),transparent 68%),rgba(255,255,255,.42);box-shadow:inset 0 1px 0 rgba(255,255,255,.62),0 6px 15px color-mix(in srgb,var(--work-accent) 7%,transparent);overflow:hidden}
.independent-work-mark::before{content:"";position:absolute;width:36px;height:36px;border:1px solid color-mix(in srgb,var(--work-accent) 36%,transparent);border-radius:50%;animation:workMarkSpin 16s linear infinite}
.independent-work-mark::after{content:"";position:absolute;width:7px;height:7px;left:8px;top:10px;border-radius:50%;background:var(--work-accent);box-shadow:30px 28px 0 -1px color-mix(in srgb,var(--work-accent) 72%,#fff),0 0 12px var(--work-accent)}
.independent-work-mark b{position:relative;z-index:1;font-family:var(--disp);font-size:.82rem;font-weight:680;letter-spacing:-.03em;color:#263443;text-shadow:none}
.bucket-hat-icon{position:relative;z-index:1;display:block;width:38px;height:30px;transform:rotate(-7deg);filter:drop-shadow(0 5px 4px rgba(43,31,82,.18))}
.bucket-hat-icon::before{content:"";position:absolute;left:9px;top:2px;width:20px;height:18px;border:1px solid #5d4ca1;border-radius:9px 9px 5px 5px;background:linear-gradient(135deg,#8ff4df 0 33%,#a78bfa 34% 68%,#fbbf24 69%);clip-path:polygon(17% 0,83% 0,100% 100%,0 100%)}
.bucket-hat-icon::after{content:"";position:absolute;left:1px;bottom:2px;width:36px;height:11px;border:1px solid #5d4ca1;border-radius:50%;background:linear-gradient(105deg,#7964c7,#a78bfa 54%,#8ff4df);box-shadow:inset 0 2px 0 rgba(255,255,255,.36)}
.protein-orb-icon{position:relative;z-index:1;display:block;width:40px;height:38px;transform:scale(.72);filter:drop-shadow(0 5px 8px rgba(54,45,84,.2))}
.protein-orb-icon span{position:absolute;display:block;border:1px solid rgba(255,255,255,.64);border-radius:50%;box-shadow:inset 2px 2px 3px rgba(255,255,255,.42),inset -3px -3px 5px rgba(35,39,68,.2),0 0 8px color-mix(in srgb,var(--work-accent) 24%,transparent)}
.protein-orb-icon span:nth-child(1){left:4px;top:10px;width:18px;height:18px;background:radial-gradient(circle at 32% 28%,#e9fbff 0 8%,#79dff2 30%,#518fd3 72%,#304e88)}
.protein-orb-icon span:nth-child(2){left:15px;top:3px;width:17px;height:17px;background:radial-gradient(circle at 32% 28%,#fff4fc 0 8%,#f5a9d6 32%,#b76cbb 72%,#694b91)}
.protein-orb-icon span:nth-child(3){right:2px;top:13px;width:15px;height:15px;background:radial-gradient(circle at 32% 28%,#f8f2ff 0 8%,#bca9ff 32%,#7a6fd0 72%,#4e467f)}
.protein-orb-icon span:nth-child(4){left:13px;bottom:1px;width:18px;height:18px;background:radial-gradient(circle at 32% 28%,#fff8df 0 8%,#f5cc72 32%,#d18b63 72%,#765276)}
.protein-orb-icon span:nth-child(5){left:1px;bottom:2px;width:13px;height:13px;background:radial-gradient(circle at 32% 28%,#efffff 0 8%,#8ff4df 32%,#4aa6a5 72%,#336c7d)}
@keyframes workMarkSpin{to{transform:rotate(360deg)}}
.independent-work-copy h3,.independent-work-copy h4{margin-top:.48rem;font-family:var(--disp);font-size:clamp(1.55rem,3vw,2.25rem);font-weight:460;line-height:1.08;color:#151923}
.independent-work-copy p{margin-top:.6rem;font-size:.84rem;line-height:1.62;color:var(--paper-muted)}
.independent-work-group[data-category="tools"] .independent-work-copy h4,.independent-work-group[data-category="fun"] .independent-work-copy h4{font-size:clamp(1rem,1.5vw,1.28rem);overflow-wrap:anywhere}
.work-preview-link{display:inline-flex;align-items:center;gap:.4rem;min-height:42px;margin-top:.88rem;padding:.56rem .76rem;border:1px solid color-mix(in srgb,var(--work-accent) 44%,rgba(18,20,29,.18));border-radius:6px;background:color-mix(in srgb,var(--work-accent) 10%,rgba(255,255,255,.62));color:#18212b;font-family:var(--mono);font-size:.7rem;font-weight:700;line-height:1.35;letter-spacing:.1em;text-decoration:none;text-transform:uppercase;transition:background .2s ease,border-color .2s ease,transform .2s ease}
.work-preview-link:hover{border-color:color-mix(in srgb,var(--work-accent) 68%,#18212b);background:color-mix(in srgb,var(--work-accent) 17%,rgba(255,255,255,.72));transform:translateY(-1px)}
.work-card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.88rem}.work-card-actions .work-preview-link{margin-top:0}
.work-card-actions .watch-action::before{content:"";width:0;height:0;border-top:.34em solid transparent;border-bottom:.34em solid transparent;border-left:.52em solid currentColor;flex:0 0 auto}
.work-card-actions [data-full-tool]::after{content:"";display:inline-block;width:1em;height:1em;margin-left:.28em;flex:0 0 auto;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M14 7l5 5-5 5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M14 7l5 5-5 5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .2s ease}
.work-card-actions [data-full-tool]:hover::after{transform:translateX(3px)}
.work-section-card{display:block;grid-column:1/-1}
.work-section-rows{position:relative;z-index:1}
.work-section-row{display:grid;grid-template-columns:minmax(250px,.68fr) minmax(0,1.32fr)}
.work-section-row+.work-section-row{border-top:1px solid color-mix(in srgb,var(--work-accent) 18%,rgba(18,20,29,.11))}
.work-collection-intro{align-self:stretch}
.work-section-row .work-collection-intro{display:flex;flex-direction:column;justify-content:center}
.work-section-row .work-collection-intro .independent-work-title{margin-top:0}
.work-section-row .work-collection-disclaimer{margin-top:.82rem;padding-top:.68rem;border-top:1px solid color-mix(in srgb,var(--work-accent) 18%,rgba(18,20,29,.11));color:var(--paper-muted);font-size:.62rem;line-height:1.5}.work-section-row .work-collection-disclaimer strong{display:block;margin-bottom:.18rem;color:color-mix(in srgb,var(--work-accent) 38%,#17202b);font-family:var(--mono);font-size:.54rem;letter-spacing:.08em;text-transform:uppercase}
.work-collection-items{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:.62rem;margin:0;padding:0 1.1rem 1.1rem;list-style:none}
.work-section-row .work-collection-items{grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;padding:1.1rem;border-left:1px solid color-mix(in srgb,var(--work-accent) 24%,rgba(18,20,29,.11))}
.independent-work-group[data-category="tools"] .work-section-row .work-collection-items,.independent-work-group[data-category="fun"] .work-section-row .work-collection-items{grid-template-columns:1fr}
.work-section-row--single .work-collection-items,.work-section-row--stacked .work-collection-items{grid-template-columns:1fr}
.work-collection-item{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:.38rem;padding:.78rem .82rem;border:1px solid color-mix(in srgb,var(--work-accent) 20%,rgba(18,20,29,.12));border-radius:4px;background:color-mix(in srgb,var(--work-accent) 5%,rgba(255,255,255,.42));transition:border-color .2s ease,background .2s ease,transform .2s ease}
.work-collection-item:focus-within{border-color:color-mix(in srgb,var(--work-accent) 70%,#18212b);background:color-mix(in srgb,var(--work-accent) 10%,rgba(255,255,255,.58))}
.independent-work-group[data-category="tools"] .work-collection-item{position:relative}
.work-flow-arrow{position:absolute;z-index:2;top:50%;right:-.72rem;display:grid;width:1.3rem;height:1.3rem;place-items:center;transform:translateY(-50%);border:1px solid color-mix(in srgb,var(--work-accent) 36%,rgba(18,20,29,.14));border-radius:50%;background:#eef1f5;color:color-mix(in srgb,var(--work-accent) 60%,#17202b);font:750 .68rem var(--mono);box-shadow:0 3px 8px rgba(0,0,0,.09)}
.work-flow-arrow--corner{top:auto;right:auto;bottom:-.72rem;left:-.72rem;transform:none}
.work-flow-arrow-narrow{display:none}
.independent-work-group[data-category="tools"] .work-flow-arrow{top:auto;right:50%;bottom:-.72rem;left:auto;transform:translateX(50%)}
.independent-work-group[data-category="tools"] .work-flow-arrow-wide{display:none}
.independent-work-group[data-category="tools"] .work-flow-arrow-narrow{display:inline}
.work-collection-item-head{display:flex;width:100%;align-items:flex-start;justify-content:space-between;gap:.65rem}
.work-collection-item h5{font-family:var(--disp);font-size:.94rem;font-weight:590;line-height:1.25;color:#151923;overflow-wrap:anywhere}
.work-collection-state{flex:0 0 auto;padding:.18rem .4rem;border:1px solid color-mix(in srgb,var(--work-accent) 30%,rgba(18,20,29,.12));border-radius:3px;color:var(--paper-muted);font-family:var(--mono);font-size:.5rem;font-weight:700;line-height:1.35;letter-spacing:.07em;text-transform:uppercase}
.work-collection-item p{margin-top:0;font-size:.75rem;line-height:1.5;color:var(--paper-muted)}
.work-collection-item .work-preview-link{min-height:44px;margin-top:0;padding:.48rem .65rem;font-size:.56rem}
.work-collection-item>.work-preview-link,.work-collection-item>.work-card-actions{margin-top:auto}
[id^="animated-abstract-"]{scroll-margin-block:7rem}
@media(forced-colors:active){.work-collection-item{border:1px solid CanvasText}.work-collection-item:focus-within{outline:2px solid Highlight;outline-offset:2px}}
@media(max-width:620px){
  .work-flow-arrow{top:auto;right:50%;bottom:-.72rem;left:auto;transform:translateX(50%)}
  .work-flow-arrow--corner{right:auto;left:-.72rem;transform:none}
  .work-flow-arrow-wide{display:none}.work-flow-arrow-narrow{display:inline}
}

/* Public-safe Works previews: one portfolio shell, five content modes. */
.work-preview{--preview-text-accent:color-mix(in srgb,var(--preview-accent) 60%,white);width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;overflow-y:auto;border:0;background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--preview-accent,#fb7185) 13%,transparent),transparent 30rem),#111820;color:var(--dtext);color-scheme:dark}
.work-preview:not([open]){display:none}.work-preview::backdrop{background:#080c11}
.work-preview[data-kind="project"]{--preview-accent:var(--cyan)}.work-preview[data-kind="tool"]{--preview-accent:var(--cyan)}.work-preview[data-kind="animation"]{--preview-accent:var(--cyan)}.work-preview[data-kind="musing"]{--preview-accent:var(--cyan)}.work-preview[data-kind="fun"]{--preview-accent:var(--cyan)}
.work-preview-bar{position:sticky;z-index:5;top:0;border-bottom:1px solid rgba(255,255,255,.12);background:rgba(17,24,32,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.work-preview-bar-inner{display:flex;width:min(1180px,calc(100% - 2rem));min-height:68px;margin:0 auto;align-items:center;justify-content:space-between;gap:1rem}
.work-preview-brand{display:inline-flex;align-items:center;gap:.68rem;color:var(--dtext);font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.work-preview-logo{display:grid;width:34px;height:34px;overflow:hidden;place-items:center;padding:2px;border:1px solid color-mix(in srgb,var(--preview-accent) 42%,rgba(255,255,255,.18));border-radius:6px;background:color-mix(in srgb,var(--preview-accent) 9%,transparent)}.work-preview-logo img{display:block;width:100%;height:100%;object-fit:contain}
.work-preview-close{display:inline-flex;min-height:42px;align-items:center;justify-content:center;padding:.58rem .82rem;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:rgba(255,255,255,.06);color:var(--dtext);font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.work-preview-close:hover{border-color:color-mix(in srgb,var(--preview-accent) 58%,rgba(255,255,255,.2));background:color-mix(in srgb,var(--preview-accent) 10%,transparent)}
.work-preview-tabs{position:static;inset:auto;z-index:auto;display:block;isolation:auto;padding:0;border:0;border-top:1px solid rgba(255,255,255,.08);background:transparent;transition:none}.work-preview-tabs-inner{display:grid;width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:.45rem 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem}.work-preview-tabs-inner[data-tab-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.work-preview-tabs-inner[data-tab-count="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}.work-preview-tab{display:flex;min-height:42px;align-items:center;justify-content:center;padding:.55rem .8rem;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:rgba(255,255,255,.035);color:var(--dmute);font-family:var(--mono);font-size:.68rem;font-weight:700;line-height:1.35;letter-spacing:.09em;text-align:center;text-transform:uppercase;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease}.work-preview-tab:hover{border-color:color-mix(in srgb,var(--preview-accent) 44%,rgba(255,255,255,.14));color:var(--dtext)}.work-preview-tab[aria-selected="true"]{border-color:color-mix(in srgb,var(--preview-accent) 68%,rgba(255,255,255,.18));background:color-mix(in srgb,var(--preview-accent) 13%,transparent);color:var(--preview-text-accent)}.work-preview-tab:focus-visible{outline:2px solid var(--preview-accent);outline-offset:2px}
.work-preview-tabs-inner[data-tab-count="5"]{grid-template-columns:repeat(5,minmax(0,1fr))}.work-preview-tabs-inner[data-tab-count="6"]{grid-template-columns:repeat(3,minmax(0,1fr))}
.work-preview-shell{width:min(1180px,calc(100% - 2rem));margin:0 auto}.work-preview-panel[hidden]{display:none}
.work-preview-hero{padding:clamp(3rem,7vw,6.4rem) 0 2.1rem}.work-preview-eyebrow{color:var(--preview-text-accent);font-family:var(--mono);font-size:.65rem;font-weight:700;line-height:1.5;letter-spacing:.14em;text-transform:uppercase}
.work-preview-hero h1{max-width:980px;margin-top:.62rem;font-family:var(--disp);font-size:clamp(2.3rem,6vw,5.1rem);font-weight:430;line-height:.92;letter-spacing:-.05em;color:var(--dtext)}
.work-preview-deck{max-width:800px;margin-top:1.25rem;color:var(--dmute);font-family:var(--disp);font-size:clamp(1.06rem,2.1vw,1.34rem);line-height:1.62}.work-preview-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:1.25rem;color:var(--dfaint);font-family:var(--mono);font-size:.6rem;font-weight:650;letter-spacing:.1em;text-transform:uppercase}.work-preview-meta span+span::before{content:"·";margin-right:1rem;color:var(--preview-text-accent)}
.work-preview-note{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;margin-bottom:1.15rem;padding:1rem;border:1px solid color-mix(in srgb,var(--preview-accent) 30%,rgba(255,255,255,.12));border-radius:4px;background:color-mix(in srgb,var(--preview-accent) 7%,transparent);color:var(--dmute);font-size:.84rem;line-height:1.6}.work-preview-note strong{color:var(--preview-text-accent);font-family:var(--mono);font-size:.61rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.work-preview-surface{margin-bottom:4rem;padding:clamp(1rem,2vw,1.4rem);border:1px solid rgba(255,255,255,.15);border-radius:4px;background:linear-gradient(145deg,rgba(19,28,39,.96),rgba(9,14,21,.9));box-shadow:0 30px 76px rgba(0,0,0,.24)}
.work-preview-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.work-preview-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:.62rem .85rem;border:1px solid color-mix(in srgb,var(--preview-accent) 46%,rgba(255,255,255,.16));border-radius:6px;background:color-mix(in srgb,var(--preview-accent) 10%,transparent);color:var(--dtext);font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.09em;text-decoration:none;text-transform:uppercase;cursor:pointer}
.case-study-gallery{margin:0 0 4rem;padding:clamp(1rem,2.2vw,1.5rem);border:1px solid rgba(255,255,255,.15);border-radius:4px;background:linear-gradient(145deg,rgba(19,28,39,.96),rgba(9,14,21,.9));box-shadow:0 30px 76px rgba(0,0,0,.24)}
.case-study-gallery-head{display:grid;grid-template-columns:minmax(220px,.58fr) minmax(0,1.42fr);gap:1rem 2rem;align-items:end;padding:.35rem .35rem 1.35rem;border-bottom:1px solid color-mix(in srgb,var(--preview-accent) 18%,rgba(255,255,255,.1))}.case-study-gallery-head>div{align-self:start}.case-study-gallery-head span{color:var(--preview-text-accent);font:760 .58rem var(--mono);letter-spacing:.12em;text-transform:uppercase}.case-study-gallery-head h2{max-width:420px;margin-top:.5rem;color:var(--dtext);font-family:var(--disp);font-size:clamp(1.8rem,3.8vw,3.15rem);font-weight:470;line-height:1.02;letter-spacing:-.035em}.case-study-gallery-head>p{max-width:720px;color:var(--dmute);font-size:.88rem;line-height:1.72}.case-study-lens{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin:0;padding:0}.case-study-lens>div{padding:.78rem .82rem;border:1px solid color-mix(in srgb,var(--preview-accent) 18%,rgba(255,255,255,.1));border-radius:4px;background:color-mix(in srgb,var(--preview-accent) 4%,rgba(4,8,13,.46))}.case-study-lens dt{margin:0 0 .32rem;color:var(--preview-text-accent);font:760 .54rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.case-study-lens dd{margin:0;color:var(--dmute);font-size:.72rem;line-height:1.55}
.case-study-shot-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:1rem}.case-study-shot{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.75fr);align-items:center;overflow:hidden;margin:1rem 0 0;border:1px solid color-mix(in srgb,var(--preview-accent) 24%,rgba(255,255,255,.12));border-radius:4px;background:rgba(4,8,13,.58)}.case-study-shot-grid .case-study-shot{margin:0}.case-study-shot--reverse{grid-template-columns:minmax(300px,.75fr) minmax(0,1.4fr)}.case-study-shot--reverse .case-study-visual{order:2}.case-study-visual{display:grid;align-self:stretch;place-items:center;padding:.55rem;background:radial-gradient(circle at 50% 20%,color-mix(in srgb,var(--preview-accent) 8%,transparent),transparent 58%),#080d13}.case-study-shot img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;object-position:top center;border-radius:2px;background:#080d13}.case-study-shot figcaption{display:grid;align-content:center;gap:.68rem;padding:clamp(1rem,2.4vw,1.65rem);color:var(--dmute);font-size:.78rem;line-height:1.62}.case-study-shot figcaption strong{color:var(--dtext);font-family:var(--disp);font-size:clamp(1.35rem,2.6vw,2.05rem);font-weight:500;line-height:1.06;letter-spacing:-.025em}.case-study-step{color:var(--preview-text-accent);font:760 .55rem var(--mono);letter-spacing:.11em;text-transform:uppercase}.case-study-shot figcaption p{margin:0}.case-study-points{display:grid;gap:.4rem;margin:.08rem 0 0;padding:0;list-style:none}.case-study-points li{position:relative;padding-left:.9rem;color:var(--dfaint);font-size:.7rem;line-height:1.48}.case-study-points li::before{content:"";position:absolute;left:0;top:.58em;width:5px;height:5px;border-radius:50%;background:var(--preview-accent);box-shadow:0 0 10px color-mix(in srgb,var(--preview-accent) 42%,transparent)}.case-study-closeout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem}.case-study-closeout>section{padding:1rem 1.05rem;border:1px solid color-mix(in srgb,var(--preview-accent) 18%,rgba(255,255,255,.1));border-radius:4px;background:rgba(4,8,13,.46)}.case-study-closeout h3{color:var(--preview-text-accent);font:760 .58rem var(--mono);letter-spacing:.11em;text-transform:uppercase}.case-study-closeout p{margin-top:.48rem;color:var(--dmute);font-size:.75rem;line-height:1.62}
.animation-case-study-still{margin:0}.animation-frame-crop{display:block;width:100%;overflow:hidden;border-radius:2px;background:#080d13;aspect-ratio:16/9}.animation-frame-crop--trim-controls{aspect-ratio:32/17}.animation-frame-crop>img{height:auto;aspect-ratio:auto;border-radius:0}.animation-frame-crop>img:focus-visible{outline:0;box-shadow:inset 0 0 0 3px var(--preview-accent)}
.case-study-visual img{cursor:zoom-in}.case-study-visual img:focus-visible{outline:3px solid var(--preview-accent);outline-offset:3px}.case-study-shot figcaption{font-size:.84rem}.case-study-points li{font-size:.75rem}.case-study-closeout p{font-size:.8rem}
.research-brief{margin:0 0 1.15rem;padding:clamp(1rem,2.4vw,1.5rem);border:1px solid color-mix(in srgb,var(--preview-accent) 32%,rgba(24,33,43,.14));border-radius:4px;background:linear-gradient(145deg,color-mix(in srgb,var(--preview-accent) 9%,#f4f1e9),color-mix(in srgb,var(--preview-accent) 4%,#dfe5ea));color:#18212b;box-shadow:0 24px 64px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.72)}
.research-brief-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding-bottom:.85rem;border-bottom:1px solid color-mix(in srgb,var(--preview-accent) 24%,rgba(24,33,43,.16))}.research-brief-head span{color:color-mix(in srgb,var(--preview-accent) 68%,#263443);font-family:var(--mono);font-size:.58rem;font-weight:760;letter-spacing:.12em;text-transform:uppercase}.research-brief-head h2{font-family:var(--disp);font-size:clamp(1.5rem,3vw,2.35rem);font-weight:480;line-height:1;color:#18212b}
.research-brief-grid{display:grid;grid-template-columns:minmax(0,1fr);margin:0}.research-brief-grid>div{padding:.9rem 0}.research-brief-grid>div+div{border-top:1px solid color-mix(in srgb,var(--preview-accent) 14%,rgba(24,33,43,.1))}.research-brief-grid dt{margin:0 0 .36rem;color:color-mix(in srgb,var(--preview-accent) 66%,#263443);font-family:var(--mono);font-size:.56rem;font-weight:780;letter-spacing:.11em;text-transform:uppercase}.research-brief-grid dd{max-width:82ch;margin:0;color:#3f4b56;font-size:.81rem;line-height:1.62}
@media(max-width:680px){.research-brief-head{display:block}.research-brief-head h2{margin-top:.35rem}.research-brief-grid>div{padding:.82rem 0}}
.project-preview-surface{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(230px,.55fr);gap:1rem}.project-preview-stage{display:grid;min-height:320px;place-content:center;padding:clamp(1.2rem,4vw,3rem);border:1px solid color-mix(in srgb,var(--preview-accent) 25%,rgba(255,255,255,.12));border-radius:4px;background:radial-gradient(circle at 50% 20%,color-mix(in srgb,var(--preview-accent) 10%,transparent),transparent 58%),rgba(4,8,13,.42);text-align:center}.project-preview-mark{display:grid;width:72px;height:72px;margin:0 auto 1.1rem;place-items:center;border:1px solid color-mix(in srgb,var(--preview-accent) 52%,rgba(255,255,255,.16));border-radius:6px;background:color-mix(in srgb,var(--preview-accent) 10%,transparent);color:var(--preview-text-accent);font-family:var(--disp);font-size:1.25rem}.project-preview-stage h2{font-family:var(--disp);font-size:clamp(1.5rem,3.8vw,2.8rem);font-weight:450;line-height:1}.project-preview-stage p{max-width:620px;margin:.9rem auto 0;color:var(--dmute);font-size:.86rem;line-height:1.65}.project-preview-outline{display:grid;align-content:start;gap:.65rem;padding:1rem;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:rgba(4,8,13,.42)}.project-preview-outline strong{margin-bottom:.25rem;color:var(--preview-text-accent);font-family:var(--mono);font-size:.61rem;letter-spacing:.1em;text-transform:uppercase}.project-preview-outline span{display:block;padding:.75rem;border:1px dashed rgba(255,255,255,.16);border-radius:3px;color:var(--dfaint);font-family:var(--mono);font-size:.6rem;letter-spacing:.09em;text-transform:uppercase}
.vcc-case-study{display:grid;gap:1rem;margin-bottom:4rem}.vcc-case-study>section{border:1px solid rgba(255,255,255,.14);border-radius:4px;background:linear-gradient(145deg,rgba(18,31,38,.96),rgba(7,15,21,.94));box-shadow:0 26px 66px rgba(0,0,0,.22)}
.vcc-thesis{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.62fr);gap:clamp(1rem,3vw,2.5rem);padding:clamp(1.25rem,3.8vw,2.8rem)}.vcc-kicker{color:var(--preview-text-accent);font:780 .59rem var(--mono);letter-spacing:.12em;text-transform:uppercase}.vcc-thesis h2{max-width:720px;margin-top:.55rem;color:var(--dtext);font-family:var(--disp);font-size:clamp(1.7rem,4vw,3.6rem);font-weight:440;line-height:.98;letter-spacing:-.045em}.vcc-thesis-copy>p{max-width:760px;margin-top:1rem;color:var(--dmute);font-size:.87rem;line-height:1.72}.vcc-question-card{align-self:stretch;padding:1.15rem;border:1px solid color-mix(in srgb,var(--preview-accent) 30%,rgba(255,255,255,.12));border-radius:4px;background:color-mix(in srgb,var(--preview-accent) 7%,rgba(4,8,13,.64))}.vcc-question-card blockquote{margin:.75rem 0 1rem;color:var(--dtext);font-family:var(--disp);font-size:clamp(1.25rem,2.3vw,1.75rem);font-weight:480;line-height:1.28}.vcc-question-card dl{display:grid;gap:.55rem;margin:0}.vcc-question-card dl>div{padding-top:.55rem;border-top:1px solid rgba(255,255,255,.1)}.vcc-question-card dt{color:var(--preview-text-accent);font:760 .53rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.vcc-question-card dd{margin:.25rem 0 0;color:var(--dmute);font-size:.71rem;line-height:1.5}
.vcc-evaluation{padding:clamp(1.15rem,3vw,2rem)}.vcc-section-head{display:grid;grid-template-columns:minmax(190px,.42fr) minmax(0,1fr);gap:1rem 2rem;align-items:end;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.11)}.vcc-section-head h2{color:var(--dtext);font-family:var(--disp);font-size:clamp(1.6rem,3.2vw,2.6rem);font-weight:480;line-height:1}.vcc-section-head p{max-width:760px;color:var(--dmute);font-size:.8rem;line-height:1.62}.vcc-pipeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:1rem}.vcc-pipeline article{min-height:205px;padding:1rem;border:1px solid color-mix(in srgb,var(--preview-accent) 18%,rgba(255,255,255,.1));border-radius:4px;background:rgba(4,8,13,.48)}.vcc-pipeline article>span{display:grid;width:2rem;height:2rem;place-items:center;border:1px solid color-mix(in srgb,var(--preview-accent) 44%,rgba(255,255,255,.14));border-radius:3px;color:var(--preview-text-accent);font:760 .57rem var(--mono)}.vcc-pipeline h3{margin-top:.9rem;color:var(--dtext);font-family:var(--disp);font-size:1.18rem;font-weight:520;line-height:1.15}.vcc-pipeline p{margin-top:.5rem;color:var(--dmute);font-size:.71rem;line-height:1.55}
.vcc-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.vcc-report-card{padding:1.1rem;border:1px solid rgba(255,255,255,.14);border-radius:4px;background:rgba(4,8,13,.5)}.vcc-report-card h2{color:var(--preview-text-accent);font:780 .59rem var(--mono);letter-spacing:.11em;text-transform:uppercase}.vcc-report-card p{margin-top:.55rem;color:var(--dmute);font-size:.76rem;line-height:1.6}.vcc-report-card ul{display:grid;gap:.48rem;margin:.75rem 0 0;padding:0;list-style:none}.vcc-report-card li{position:relative;padding-left:1rem;color:var(--dfaint);font-size:.7rem;line-height:1.48}.vcc-report-card li::before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--preview-accent)}
.vcc-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.vcc-status>section{padding:1rem 1.05rem;border:1px solid color-mix(in srgb,var(--preview-accent) 18%,rgba(255,255,255,.1));border-radius:4px;background:color-mix(in srgb,var(--preview-accent) 4%,rgba(4,8,13,.5))}.vcc-status h2{color:var(--preview-text-accent);font:780 .58rem var(--mono);letter-spacing:.11em;text-transform:uppercase}.vcc-status p{margin-top:.48rem;color:var(--dmute);font-size:.75rem;line-height:1.62}

.tool-demo{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:1rem}.tool-demo-control,.tool-demo-results{padding:1rem;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:rgba(4,8,13,.42)}.tool-demo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.tool-demo-card{min-height:120px;padding:.85rem;border:1px solid rgba(167,139,250,.2);border-radius:4px;background:rgba(167,139,250,.055)}.tool-demo-card span{color:var(--preview-text-accent);font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase}.tool-demo-card strong{display:block;margin-top:.45rem;font-family:var(--disp);font-size:1.1rem;font-weight:520}.tool-demo-card p{margin-top:.35rem;color:var(--dmute);font-size:.76rem;line-height:1.5}
.suite-demo-lead{display:grid;align-content:start;gap:.72rem;min-height:100%}.suite-demo-kicker{color:var(--preview-text-accent);font-family:var(--mono);font-size:.59rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.suite-demo-lead>strong{font-family:var(--disp);font-size:clamp(2rem,4vw,3.15rem);font-weight:460;line-height:1;color:var(--dtext)}.suite-demo-lead>p{color:var(--dmute);font-size:.8rem;line-height:1.58}.suite-demo-facts{display:grid;gap:.5rem;margin-top:.2rem}.suite-demo-facts span{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;padding:.58rem .65rem;border:1px solid rgba(167,139,250,.16);border-radius:3px;background:rgba(167,139,250,.045);color:var(--dmute);font-size:.72rem}.suite-demo-facts b{color:var(--preview-text-accent);font-family:var(--mono);font-size:.59rem;letter-spacing:.08em;text-transform:uppercase}
.molecular-demo-stage{position:relative;min-height:430px;overflow:hidden;border:1px solid rgba(251,191,36,.18);border-radius:4px;background:radial-gradient(circle at 72% 44%,rgba(167,139,250,.18),transparent 31%),radial-gradient(circle at 22% 45%,rgba(34,211,238,.13),transparent 30%),#08111a}.molecular-demo-stage::after{content:"body-scale → protein-scale";position:absolute;left:50%;bottom:1rem;transform:translateX(-50%);color:var(--text-muted);font:700 .58rem var(--mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}.molecular-person{position:absolute;left:22%;top:50%;width:104px;height:250px;transform:translate(-50%,-50%)}.molecular-person .head{position:absolute;left:35px;top:0;width:34px;height:34px;border:4px solid #8fe9ff;border-radius:50%}.molecular-person .torso{position:absolute;left:49px;top:38px;width:6px;height:92px;border-radius:6px;background:#8fe9ff}.molecular-person .limb{position:absolute;left:49px;top:62px;width:6px;height:82px;border-radius:6px;background:#8fe9ff;transform-origin:top}.molecular-person .arm-a{transform:rotate(48deg)}.molecular-person .arm-b{transform:rotate(-48deg)}.molecular-person .leg-a{top:124px;transform:rotate(24deg)}.molecular-person .leg-b{top:124px;transform:rotate(-24deg)}
.molecular-network{position:absolute;left:68%;top:47%;width:260px;height:250px;transform:translate(-50%,-50%)}.molecular-node{position:absolute;width:30px;height:30px;border:2px solid #cbbcff;border-radius:50%;background:#131a2a;box-shadow:0 0 18px rgba(167,139,250,.28)}.molecular-node:nth-child(1){left:18px;top:105px}.molecular-node:nth-child(2){left:86px;top:38px}.molecular-node:nth-child(3){left:160px;top:78px}.molecular-node:nth-child(4){left:111px;top:154px}.molecular-node:nth-child(5){left:205px;top:168px}.molecular-bond{position:absolute;height:2px;background:rgba(203,188,255,.55);transform-origin:left center}.molecular-bond.b1{left:45px;top:114px;width:88px;transform:rotate(-42deg)}.molecular-bond.b2{left:112px;top:57px;width:83px;transform:rotate(29deg)}.molecular-bond.b3{left:176px;top:103px;width:91px;transform:rotate(54deg)}.molecular-bond.b4{left:125px;top:167px;width:105px;transform:rotate(15deg)}.molecular-particle{position:absolute;left:33%;top:48%;width:10px;height:10px;border-radius:50%;background:#fb7185;box-shadow:0 0 16px #fb7185;opacity:.35}.molecular-demo-stage.is-playing .molecular-node{animation:previewPulse 2.4s ease-in-out infinite}.molecular-demo-stage.is-playing .molecular-node:nth-child(2n){animation-delay:-1.1s}.molecular-demo-stage.is-playing .molecular-particle{animation:previewFlow 4s ease-in-out infinite}@keyframes previewPulse{50%{transform:scale(1.18);box-shadow:0 0 28px rgba(167,139,250,.62)}}@keyframes previewFlow{0%{left:33%;top:48%;opacity:0}20%{opacity:1}100%{left:63%;top:45%;opacity:0}}
.molecular-demo-caption{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;padding:1rem .2rem 0}.molecular-demo-caption p{color:var(--dmute);font-size:.82rem;line-height:1.55}
.ub-question-stage{position:relative;min-height:420px;overflow:hidden;border:1px solid rgba(251,191,36,.18);border-radius:4px;background:radial-gradient(circle at 50% 48%,rgba(251,191,36,.1),transparent 35%),#08111a}.ub-substrate{position:absolute;left:50%;top:48%;width:250px;height:92px;transform:translate(-50%,-50%);border:2px solid #8fe9ff;border-radius:46% 54% 50% 45%;background:linear-gradient(145deg,rgba(34,211,238,.16),rgba(96,165,250,.06));box-shadow:0 0 28px rgba(34,211,238,.14)}.ub-substrate::after{content:"target protein";position:absolute;inset:0;display:grid;place-items:center;color:#cceff6;font:700 .62rem var(--mono);letter-spacing:.11em;text-transform:uppercase}.ub-chain-demo{position:absolute;left:calc(50% + 78px);top:calc(48% - 22px);display:flex;flex-direction:column-reverse;gap:7px;transform:translate(-50%,-100%)}.ub-chain-demo span{display:grid;width:44px;height:31px;place-items:center;border:1px solid rgba(255,255,255,.45);border-radius:48% 52% 46% 54%;background:linear-gradient(145deg,#fbbf24,#fb7185);color:#15202a;font:800 .58rem var(--mono);box-shadow:0 0 14px rgba(251,191,36,.2);transform-origin:50% 120%}.ub-question-stage.is-playing .ub-chain-demo span{animation:ubGrammar 2.2s ease-in-out infinite}.ub-question-stage.is-playing .ub-chain-demo span:nth-child(2){animation-delay:-.45s}.ub-question-stage.is-playing .ub-chain-demo span:nth-child(3){animation-delay:-.9s}.ub-question-stage.is-playing .ub-chain-demo span:nth-child(4){animation-delay:-1.35s}.ub-grammar-labels{position:absolute;left:1rem;right:1rem;bottom:1rem;display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}.ub-grammar-labels span{padding:.55rem;border:1px solid rgba(255,255,255,.1);border-radius:3px;color:var(--dmute);font:650 .56rem var(--mono);letter-spacing:.08em;text-align:center;text-transform:uppercase}@keyframes ubGrammar{50%{transform:translateY(-7px) rotate(4deg);filter:saturate(1.3)}}

.animation-case-study .vcc-pipeline{grid-template-columns:repeat(3,minmax(0,1fr))}
.animation-embed{overflow:hidden;scroll-margin-top:9rem;outline:none}.animation-embed:focus-visible{outline:2px solid var(--preview-accent);outline-offset:4px}.animation-embed-head{padding:clamp(1.1rem,3vw,2rem)}.animation-embed-head>span{color:var(--preview-text-accent);font:780 .58rem var(--mono);letter-spacing:.12em;text-transform:uppercase}.animation-embed-head h2{max-width:780px;margin-top:.45rem;color:var(--dtext);font-family:var(--disp);font-size:clamp(1.8rem,4vw,3.2rem);font-weight:470;line-height:1;letter-spacing:-.035em}.animation-embed-head p{max-width:800px;margin-top:.72rem;color:var(--dmute);font-size:.8rem;line-height:1.64}
.animation-player-shell{position:relative;isolation:isolate;height:clamp(280px,55vw,640px);overflow:hidden;border-block:1px solid rgba(251,191,36,.18);background:#05070f}.animation-player-shell::after{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(5,7,15,.08),rgba(5,7,15,.34));transition:opacity .18s ease,visibility .18s ease}.animation-player-shell.is-playing::after,.animation-player-shell.is-restarting::after{visibility:hidden;opacity:0}.animation-play-control{position:absolute;z-index:4;top:50%;left:50%;display:inline-flex;min-height:52px;align-items:center;justify-content:center;gap:.7rem;padding:.82rem 1.08rem;border:1px solid color-mix(in srgb,var(--preview-accent) 62%,rgba(255,255,255,.36));border-radius:6px;background:rgba(5,7,15,.88);box-shadow:0 16px 42px rgba(0,0,0,.42),0 0 0 8px rgba(5,7,15,.22);color:var(--text-primary);font:760 .63rem/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;transform:translate(-50%,-50%);transition:top .18s ease,right .18s ease,bottom .18s ease,left .18s ease,transform .18s ease,opacity .18s ease,background .18s ease,border-color .18s ease;white-space:nowrap}.animation-play-control::before{content:"";width:0;height:0;border-block:7px solid transparent;border-left:11px solid var(--preview-accent);filter:drop-shadow(0 0 7px color-mix(in srgb,var(--preview-accent) 58%,transparent))}.animation-play-control:hover{border-color:var(--preview-accent);background:rgba(10,14,24,.96)}.animation-play-control:focus-visible{outline:2px solid #fff;outline-offset:3px}.animation-play-control[aria-disabled="true"]{pointer-events:none}.animation-player-shell.is-loading .animation-play-control{cursor:wait}.animation-player-shell.is-loading .animation-play-control::before{width:16px;height:16px;border:2px solid rgba(255,255,255,.32);border-top-color:var(--preview-accent);border-radius:50%;filter:none;animation:animationLoadSpin .72s linear infinite}.animation-player-shell.is-playing .animation-play-control,.animation-player-shell.is-restarting .animation-play-control{top:auto;right:1rem;bottom:3.25rem;left:auto;min-height:40px;padding:.56rem .72rem;box-shadow:0 8px 24px rgba(0,0,0,.34);transform:none}.animation-player-shell.is-playing .animation-play-control::before{content:"↻";width:auto;height:auto;border:0;color:var(--preview-text-accent);font-size:1rem;filter:none}.animation-player-shell.is-playing .animation-play-control:not(:hover):not(:focus-visible){opacity:.78}.animation-poster,.rough-animation-frame{display:block;width:100%;height:100%;border:0}.animation-poster{position:relative;z-index:1}.animation-poster>[data-animation-stage]{width:100%;height:100%;min-height:0;border:0;border-radius:0}.animation-poster[hidden],.rough-animation-frame[hidden]{display:none}.rough-animation-frame{position:absolute;inset:0;z-index:2;background:#05070f;color-scheme:dark;opacity:1;transition:opacity .18s ease}.animation-player-shell.is-loading:not(.is-restarting) .rough-animation-frame{opacity:0}.animation-load-status{display:block;margin-top:.36rem;color:var(--dfaint);font:650 .55rem/1.5 var(--mono);letter-spacing:.07em;text-transform:uppercase}@keyframes animationLoadSpin{to{transform:rotate(1turn)}}
.animation-poster{overflow:hidden;margin:0;background:#05070f}.animation-poster>img{display:block;width:100%;height:100%;object-fit:cover}.animation-poster-caption{position:absolute;z-index:2;right:1rem;bottom:clamp(1rem,5vw,3.25rem);display:flex;max-width:min(72%,620px);align-items:center;gap:.7rem;padding:.58rem .72rem;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:rgba(5,7,15,.82);box-shadow:0 12px 32px rgba(0,0,0,.34);color:var(--text-primary);backdrop-filter:blur(10px);font-size:.68rem;line-height:1.35}.animation-poster-caption time{flex:0 0 auto;color:var(--preview-text-accent);font:760 .55rem/1 var(--mono);letter-spacing:.08em}.animation-poster-caption span{color:var(--text-primary)}
.abstract-motion-stage{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(251,191,36,.09),transparent 62%),#08111a}.abstract-motion-stage img{display:block;width:100%;height:100%;object-fit:contain;filter:saturate(.9) contrast(1.02);transform:scale(.94)}.abstract-motion-beats{position:absolute;right:clamp(.6rem,2vw,1.25rem);bottom:clamp(.6rem,2vw,1.25rem);left:clamp(.6rem,2vw,1.25rem);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.42rem}.abstract-motion-beats span{display:flex;min-height:54px;align-items:center;gap:.46rem;padding:.55rem .62rem;border:1px solid rgba(255,255,255,.16);border-radius:3px;background:rgba(5,7,15,.86);color:#eef3f6;font:650 .55rem/1.35 var(--mono);letter-spacing:.04em;text-transform:uppercase;box-shadow:0 10px 26px rgba(0,0,0,.2)}.abstract-motion-beats b{color:#f7d477;font-size:.5rem}

.animated-abstract-preview{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(250px,.65fr);gap:1rem}.animated-abstract-frame{min-width:0;margin:0;overflow:hidden;border:1px solid rgba(251,191,36,.18);border-radius:4px;background:#08111a}.animated-abstract-frame img{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:radial-gradient(circle at 50% 50%,rgba(251,191,36,.08),transparent 62%),#08111a}.animated-abstract-frame figcaption{padding:.75rem .82rem;border-top:1px solid rgba(255,255,255,.1);color:var(--dfaint);font-size:.7rem;line-height:1.5}.animated-abstract-frame figcaption strong{display:block;margin-bottom:.16rem;color:#f7d477;font-family:var(--mono);font-size:.58rem;letter-spacing:.09em;text-transform:uppercase}.animated-abstract-beats{display:grid;align-content:start;gap:.6rem;margin:0;padding:0;list-style:none}.animated-abstract-beats li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.12rem .62rem;padding:.76rem .8rem;border:1px solid rgba(251,191,36,.16);border-radius:4px;background:rgba(251,191,36,.045)}.animated-abstract-beats li>span{grid-row:1/3;display:grid;width:1.75rem;height:1.75rem;place-items:center;border:1px solid rgba(251,191,36,.3);border-radius:50%;color:#f7d477;font:750 .55rem var(--mono)}.animated-abstract-beats strong{font-family:var(--disp);font-size:.9rem;font-weight:560;color:var(--dtext)}.animated-abstract-beats p{color:var(--dmute);font-size:.72rem;line-height:1.48}


.article-preview-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.28fr);gap:1rem;align-items:start;margin-bottom:4rem}.article-preview-paper{overflow:hidden;border:1px solid rgba(255,255,255,.48);border-radius:4px;background:#f6f3eb;color:#18212b;box-shadow:0 32px 80px rgba(0,0,0,.28)}.article-preview-body{width:min(100%,800px);margin:0 auto;padding:clamp(1.3rem,5vw,4.5rem)}.article-preview-body h2{scroll-margin-top:144px;margin:3.2rem 0 1rem;font-family:var(--disp);font-size:clamp(1.85rem,4vw,2.7rem);font-weight:500;line-height:1.08;letter-spacing:-.028em;color:#18212b}.article-preview-body p,.article-preview-body li{font-family:var(--disp);font-size:clamp(1.02rem,1.65vw,1.14rem);line-height:1.78}.article-preview-body p{margin:0 0 1.3rem}.article-preview-body ul{padding-left:1.25rem}.article-preview-body li{margin-bottom:.62rem}.article-preview-body a{color:#075985;text-underline-offset:.18em}.article-preview-lede{margin-bottom:2.6rem!important;padding-bottom:2rem;border-bottom:1px solid #d8d2c6;font-size:clamp(1.22rem,2.4vw,1.52rem)!important;line-height:1.55!important}.article-preview-scope{margin:2.6rem 0;padding:1.15rem 1.2rem;border-left:4px solid #0891b2;background:#ecf8fa;color:#164e63}.article-preview-scope strong{display:block;margin-bottom:.45rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}.article-preview-scope p{margin:0;font-family:var(--sans);font-size:.9rem;line-height:1.62}.article-preview-aside{position:sticky;top:132px;display:grid;gap:.75rem}.article-preview-aside section{padding:1rem;border:1px solid rgba(255,255,255,.14);border-radius:4px;background:rgba(9,14,21,.58)}.article-preview-aside h2{margin:0 0 .65rem;color:var(--dtext);font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.article-preview-aside p,.article-preview-aside li{color:var(--dmute);font-size:.78rem;line-height:1.58}.article-preview-aside ul{margin:0;padding:0;list-style:none}
.article-preview-placeholder{min-height:620px}.article-placeholder-line{height:12px;margin:0 0 1rem;border-radius:999px;background:linear-gradient(90deg,#d8d2c6,#e7e2d8);width:82%}.article-placeholder-line.is-long{width:100%}.article-placeholder-line.is-short{width:58%;margin-bottom:3rem}
.dosing-argument{min-height:620px}.dosing-argument .article-preview-lede strong{color:#9f1239}.dosing-question{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:2rem 0}.dosing-question div{padding:1rem;border:1px solid #d8d2c6;border-radius:4px;background:#fff}.dosing-question span{display:block;color:#9f1239;font:750 .61rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.dosing-question strong{display:block;margin-top:.45rem;font-family:var(--disp);font-size:1.05rem;line-height:1.25}.dosing-visual{margin:2.2rem 0;padding:1.2rem;border:1px solid #d8d2c6;border-radius:4px;background:linear-gradient(145deg,#fff,#eee9df)}.dosing-visual>strong{display:block;color:#164e63;font:750 .62rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.dose-ladder{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;align-items:end;min-height:210px;margin-top:1rem}.dose-step{display:grid;place-items:end center;padding:.7rem;border:1px solid #c9c1b3;border-radius:4px 4px 2px 2px;background:#d8d2c6;color:#534e45;font:750 .58rem var(--mono);letter-spacing:.06em;text-align:center;text-transform:uppercase}.dose-step:nth-child(1){height:62px;border-style:dashed;background:#ecf8fa;color:#155e75}.dose-step:nth-child(2){height:104px;border-style:dashed;background:#ecf8fa;color:#155e75}.dose-step:nth-child(3){height:148px;background:#e4dbe7;color:#9f1239}.dose-step:nth-child(4){height:196px;background:#cbb8ca;color:#9f1239}.dosing-visual p{margin:.8rem 0 0!important;color:#3f4b57;font-family:var(--sans)!important;font-size:.82rem!important;line-height:1.55!important}.dosing-thesis{margin:2rem 0;padding:1.2rem;border-left:4px solid #9f1239;background:#f8e8ec}.dosing-thesis strong{display:block;margin-bottom:.42rem;color:#9f1239;font:750 .64rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.dosing-thesis p{margin:0!important;font-size:1.1rem!important}.manuscript-spine{counter-reset:spine;display:grid;gap:.65rem;margin:1rem 0 0;padding:0!important;list-style:none}.manuscript-spine li{counter-increment:spine;display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:start;margin:0!important;padding:.78rem;border:1px solid #d8d2c6;border-radius:4px;background:#fff}.manuscript-spine li::before{content:counter(spine,decimal-leading-zero);color:#9f1239;font:750 .65rem var(--mono)}.manuscript-spine strong{display:block;font-family:var(--sans);font-size:.82rem}.manuscript-spine span{display:block;margin-top:.14rem;color:#3f4b57;font-family:var(--sans);font-size:.75rem;line-height:1.45}

@media(max-width:900px){.tool-demo,.article-preview-layout,.project-preview-surface,.animated-abstract-preview,.vcc-thesis,.vcc-section-head,.vcc-status{grid-template-columns:1fr}.vcc-pipeline{grid-template-columns:repeat(2,minmax(0,1fr))}.vcc-report-grid{grid-template-columns:1fr}.case-study-gallery-head{grid-template-columns:1fr}.case-study-lens{grid-template-columns:1fr}.case-study-shot,.case-study-shot--reverse{grid-template-columns:1fr}.case-study-shot--reverse .case-study-visual{order:0}.case-study-closeout{grid-template-columns:1fr}.article-preview-aside{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.molecular-demo-stage{min-height:390px}.molecular-network{left:72%;transform:translate(-50%,-50%) scale(.82)}.molecular-person{left:20%;transform:translate(-50%,-50%) scale(.86)}}
@media(max-width:900px){.animation-case-study .vcc-pipeline{grid-template-columns:1fr}}
@media(max-width:760px){.work-preview-tabs-inner[data-tab-count="3"],.work-preview-tabs-inner[data-tab-count="4"],.work-preview-tabs-inner[data-tab-count="5"],.work-preview-tabs-inner[data-tab-count="6"]{display:flex;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin}.work-preview-tabs-inner[data-tab-count="3"] .work-preview-tab,.work-preview-tabs-inner[data-tab-count="4"] .work-preview-tab,.work-preview-tabs-inner[data-tab-count="5"] .work-preview-tab,.work-preview-tabs-inner[data-tab-count="6"] .work-preview-tab{flex:0 0 min(72vw,260px);scroll-snap-align:start}}
@media(max-width:620px){.work-preview-shell,.work-preview-bar-inner,.work-preview-tabs-inner{width:calc(100% - 1rem)}.work-preview-brand>span:not(.work-preview-logo){display:none}.work-preview-tab{padding:.5rem .42rem;font-size:.62rem;letter-spacing:.06em}.work-preview-note{grid-template-columns:1fr}.work-preview-note strong{white-space:normal}.work-preview-meta{display:grid;gap:.3rem}.work-preview-meta span+span::before{content:none}.vcc-pipeline{grid-template-columns:1fr}.case-study-gallery-head{display:block}.case-study-gallery-head p{margin-top:.45rem;text-align:left}.case-study-shot-grid{grid-template-columns:1fr}.tool-demo-grid{grid-template-columns:1fr}.molecular-demo-stage{min-height:360px}.molecular-person{left:19%;transform:translate(-50%,-50%) scale(.68)}.molecular-network{left:73%;transform:translate(-50%,-50%) scale(.62)}.molecular-demo-caption{grid-template-columns:1fr}.animation-poster-caption{right:.65rem;bottom:.65rem;left:.65rem;max-width:none;padding:.48rem .58rem;font-size:.6rem}.animation-poster-caption time{font-size:.5rem}.ub-question-stage{min-height:390px}.ub-substrate{transform:translate(-50%,-50%) scale(.78)}.ub-chain-demo{left:calc(50% + 60px);transform:translate(-50%,-100%) scale(.8)}.ub-grammar-labels,.abstract-motion-beats{grid-template-columns:repeat(2,1fr)}.abstract-motion-stage img{transform:scale(1)}.article-preview-body{padding:1.2rem}.article-preview-aside{grid-template-columns:1fr}.dosing-question{grid-template-columns:1fr}.dose-ladder{gap:.28rem}.dose-step{padding:.42rem;font-size:.48rem;letter-spacing:.025em}}
.ai-use-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.88rem;align-items:center;margin-top:1.25rem;padding:.96rem 1rem;border:1px solid var(--paper-border);border-top-color:rgba(167,139,250,.3);border-radius:var(--card-radius);background:linear-gradient(135deg,var(--paper-hi),var(--paper-lo));box-shadow:var(--paper-shadow)}
.ai-use-mark{display:flex;align-items:center;justify-content:center;gap:.28rem;min-width:82px;height:48px;padding:0 .55rem;border:1px solid rgba(103,86,173,.28);border-radius:6px;background:rgba(255,255,255,.5);font-family:var(--disp);font-size:.88rem;font-weight:650;letter-spacing:-.03em;color:#58498d;white-space:nowrap}
.ai-use-logo{width:36px;height:36px;flex:0 0 auto;filter:drop-shadow(0 4px 8px rgba(49,35,91,.16))}
.ai-use-note strong{display:block;font-family:var(--disp);font-size:1rem;font-weight:540;color:#151923}
.ai-use-note p{margin-top:.2rem;font-size:.78rem;line-height:1.55;color:var(--paper-muted)}
@media(hover:hover) and (pointer:fine){
  .independent-work-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--work-accent) 40%,var(--paper-border));box-shadow:inset 0 1px 0 rgba(255,255,255,.62),0 18px 38px rgba(0,0,0,.15),0 0 18px color-mix(in srgb,var(--work-accent) 6%,transparent)}
  .independent-work-card:hover::before{width:3px;opacity:1}
  .independent-work-card:hover::after{transform:translateX(120%)}
}
.ga-zoom-button{position:relative;display:grid;place-items:center;width:100%;overflow:hidden;border:0;color:inherit;text-align:left;cursor:zoom-in}
.ga-zoom-button img{display:block;width:100%;height:100%;object-fit:contain}
.ga-zoom-cue{position:absolute;right:.65rem;bottom:.65rem;padding:.34rem .55rem;border:1px solid rgba(255,255,255,.22);border-radius:6px;background:rgba(7,10,18,.82);color:var(--text-primary);font-family:var(--mono);font-size:.68rem;font-weight:700;line-height:1.45;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.ga-zoom-button:hover .ga-zoom-cue,.ga-zoom-button:focus-visible .ga-zoom-cue{background:color-mix(in srgb,var(--work-accent,var(--program-accent,#2dd4bf)) 35%,rgba(7,10,18,.9))}
.ga-lightbox{width:min(1120px,calc(100vw - 2rem));max-width:none;max-height:calc(100dvh - 2rem);margin:auto;padding:0;overflow:hidden;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:#090d16;color:var(--dtext);box-shadow:0 34px 110px rgba(0,0,0,.64)}
.ga-lightbox::backdrop{background:rgba(2,4,9,.82);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.ga-lightbox-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:calc(100dvh - 2rem);padding:1rem}
.ga-lightbox-close{justify-self:end;min-width:44px;min-height:44px;padding:.45rem .72rem;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:rgba(255,255,255,.07);color:var(--dtext);font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.ga-lightbox-media{display:grid;place-items:center;min-height:0;padding:.65rem 0}
.ga-lightbox-image{display:block;max-width:100%;max-height:calc(100dvh - 9rem);object-fit:contain}
.ga-lightbox-media--kctd7-cells{position:relative;align-self:center;justify-self:center;width:min(100%,calc((100dvh - 10rem)*1.22),960px);aspect-ratio:372/305;padding:0;overflow:hidden}
.ga-lightbox-media--kctd7-cells .ga-lightbox-image{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:center bottom}
.ga-lightbox-media--llorente-cells{position:relative;align-self:center;justify-self:center;width:min(100%,calc((100dvh - 10rem)*1.415),960px);aspect-ratio:736/520;padding:0;overflow:hidden}
.ga-lightbox-media--llorente-cells .ga-lightbox-image{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:center 69.12%}
.ga-lightbox-media--animation-frame{align-self:center;justify-self:center;width:min(100%,calc((100dvh - 9rem)*32/17));aspect-ratio:32/17;padding:0;overflow:hidden;background:#080d13}
.ga-lightbox-media--animation-frame .ga-lightbox-image{width:100%;height:auto;max-width:none;max-height:none;object-fit:initial}
.ga-lightbox-caption{max-width:860px;margin:.2rem auto 0;color:var(--dmute);font-size:.78rem;line-height:1.55;text-align:center}
.selected-record td:first-child{width:64px;color:color-mix(in srgb,var(--tab-accent) 26%,#17202b);font-family:var(--mono);font-size:.66rem;font-weight:700}
.selected-record td:nth-child(2){width:120px;font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.065em;color:var(--paper-muted)}
.professional-inquiry-form{margin-top:1rem;padding:1.15rem;border:1px solid var(--paper-border);border-top-color:color-mix(in srgb,var(--tab-accent) 32%,var(--paper-border));border-radius:var(--card-radius);background:linear-gradient(135deg,var(--paper-hi),var(--paper-lo));box-shadow:var(--paper-shadow);color:var(--paper-text)}
.professional-inquiry-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:1rem;padding-bottom:.9rem;border-bottom:1px solid rgba(18,20,29,.11)}
.professional-inquiry-head span,.professional-inquiry-field>span{display:block;font-family:var(--mono);font-size:.625rem;font-weight:650;line-height:1.45;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb,var(--tab-accent) 26%,#17202b)}
.professional-inquiry-head strong{display:block;margin-top:.28rem;font-family:var(--disp);font-size:1.08rem;font-weight:520;line-height:1.3;color:#151923}
.professional-inquiry-head a{font-size:.76rem;color:var(--paper-muted);text-decoration:none;white-space:nowrap}
.professional-inquiry-head a:hover{color:#9d2f66}
.professional-inquiry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.82rem;margin-top:1rem}
.professional-inquiry-field{display:grid;gap:.38rem;min-width:0}
.professional-inquiry-field.wide{grid-column:1/-1}
.professional-inquiry-field input,.professional-inquiry-field select,.professional-inquiry-field textarea{box-sizing:border-box;width:100%;min-width:0;border:1px solid rgba(18,24,32,.16);border-radius:6px;background:rgba(255,255,255,.43);color:var(--paper-text);font:inherit;font-size:.86rem;line-height:1.4;outline:none;transition:border-color .2s,background .2s,box-shadow .2s}
.professional-inquiry-field input,.professional-inquiry-field select{height:44px;padding:0 .78rem}
.professional-inquiry-field textarea{min-height:126px;padding:.72rem .78rem;resize:vertical}
.professional-inquiry-field input::placeholder,.professional-inquiry-field textarea::placeholder{color:var(--paper-muted);opacity:1}
.professional-inquiry-field select{color-scheme:light}
.professional-inquiry-field :is(input,select,textarea):focus{border-color:color-mix(in srgb,var(--tab-accent) 62%,#263443);background:rgba(255,255,255,.78);box-shadow:0 0 0 3px color-mix(in srgb,var(--tab-accent) 13%,transparent)}
.professional-inquiry-field :is(input,select,textarea):focus-visible{outline:2px solid color-mix(in srgb,var(--tab-accent) 66%,#263443);outline-offset:2px;box-shadow:0 0 0 5px color-mix(in srgb,var(--tab-accent) 12%,transparent)}
.professional-inquiry-actions{display:flex;align-items:center;gap:.9rem;margin-top:1rem}
.professional-inquiry-actions .btn{flex:0 0 auto;cursor:pointer}
.professional-inquiry-actions .btn-fill{background:#151923;color:var(--text-primary);border-color:#151923}
.professional-inquiry-status{margin:0;color:var(--paper-muted);font-size:.72rem;line-height:1.45}
.frank-signoff{--frank-accent:#9a6b17;display:grid;grid-template-columns:108px minmax(0,1fr);align-items:center;gap:1rem;margin:0;padding:.82rem;border:1px solid var(--paper-border);border-top-color:color-mix(in srgb,var(--frank-accent) 34%,var(--paper-border));border-radius:var(--card-radius);background:linear-gradient(138deg,var(--paper-hi),var(--paper-lo));box-shadow:var(--paper-shadow);color:var(--paper-text);overflow:hidden}
.frank-photo-media{width:100%;aspect-ratio:4/5;border:1px solid rgba(18,24,32,.14);border-radius:4px;overflow:hidden;background:rgba(255,255,255,.48);box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}
.frank-photo-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center 48%}
.frank-signoff figcaption{min-width:0;padding:.2rem .5rem .2rem 0;color:var(--paper-text)}
.frank-signoff figcaption span{font-family:var(--mono);font-size:.6rem;font-weight:700;line-height:1.5;letter-spacing:.13em;text-transform:uppercase;color:var(--frank-accent)}
.frank-signoff figcaption strong{display:block;margin-top:.24rem;font-family:var(--disp);font-size:1.2rem;font-weight:500;line-height:1.22}
.frank-signoff figcaption p{margin-top:.35rem;color:var(--paper-muted);font-size:.76rem;line-height:1.5}
@media(min-width:901px) and (max-height:800px){
  .tab-panel{padding-top:6.35rem;padding-bottom:4.25rem}
  .tab-layout{min-height:calc(100dvh - 10.6rem);gap:1rem}
  .matrix-table th,.matrix-table td{padding:.78rem 1rem}
}
@media(max-width:900px){
  #tabMain{gap:clamp(14rem,42vh,24rem);gap:clamp(14rem,42svh,24rem)}
  .tab-panel{scrollbar-gutter:auto;padding-top:6.85rem;padding-bottom:5.7rem}.tab-panel.has-scene-band{--scene-band-h:100vh;--scene-band-h:100svh}
  .scene-band{align-items:flex-start;padding-top:calc(6rem + env(safe-area-inset-top))}
  .scene-band-text{font-size:clamp(.96rem,4.1vw,1.1rem)}
  .tab-layout,.tab-layout.wide{width:100%;align-items:stretch;gap:1.3rem}
  .tab-layout{min-height:auto}
  #environmentBadge{right:.8rem;bottom:calc(.75rem + env(safe-area-inset-bottom))}
}
@media(max-width:900px) and (orientation:landscape){.scene-band-copy{width:min(42%,25rem)}}
@media(max-width:620px) and (max-height:740px) and (orientation:portrait){
  .scene-band{padding-top:calc(5.25rem + env(safe-area-inset-top))}
  .scene-band-copy{width:calc(100% - 5.5rem)}
  .scene-band-text{font-size:.9rem;line-height:1.5}
}
@media(max-width:620px){
  #environmentBadge{display:none}
  .tab-title{font-size:clamp(2rem,9.5vw,2.9rem);line-height:1}
  .about-hero .tab-title{font-size:clamp(2rem,9.5vw,2.9rem)}
  .about-intro{margin-top:1.15rem}
  .about-portrait{width:min(112px,33vw);margin:0 .78rem .65rem 0}
  .about-portrait figcaption{padding:.48rem .52rem .52rem}
  .about-portrait figcaption strong{font-size:.72rem}
  .about-portrait figcaption span{display:none}
  .tab-panel{padding-top:calc(6.25rem + env(safe-area-inset-top));padding-bottom:calc(4.8rem + env(safe-area-inset-bottom))}
  .tab-deck{margin-top:1.15rem;font-size:.98rem;line-height:1.68}
  #panel-overview .tab-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  #panel-overview .tab-actions .btn:first-child{grid-column:1/-1}
  .mini-grid{grid-template-columns:1fr}
  .honors-card{grid-template-columns:1fr;gap:.7rem}
  .honors-card-body{padding-left:0;border-left:0}
  .lab-gallery{padding:.9rem}
  .lab-gallery-head{grid-template-columns:1fr;gap:.26rem}
  .lab-gallery-head p{grid-column:1}
  .lab-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lab-photo-card{grid-column:auto}
  .lab-photo-card figcaption{min-height:0}
  .independent-work-group-grid{grid-template-columns:1fr}
  .ai-use-note{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.75rem;padding:.9rem}
  .ai-use-mark{justify-self:start;min-width:72px;height:44px;padding:0 .45rem;font-size:.8rem}
  .ai-use-logo{width:32px;height:32px}
  .independent-work-card{grid-template-columns:1fr}
  .independent-work-copy{padding:1rem}
  .work-section-row{grid-template-columns:1fr}
  .work-collection-items,.work-section-row .work-collection-items{grid-template-columns:1fr;padding:0 1rem 1rem;border-left:0}
  .work-collection-item-head{display:block}
  .work-collection-state{display:inline-block;margin-top:.35rem}
  .ga-lightbox{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}
  .ga-lightbox-card{max-height:calc(100dvh - 1rem);padding:.65rem}
  .ga-lightbox-image{max-height:calc(100dvh - 8rem)}
  .data-sheet,.research-matrix,.mini-card,.professional-inquiry-form,.ai-use-note,.independent-work-card,.lab-gallery,.frank-signoff{border-radius:4px}
  .research-program{grid-template-columns:1fr;min-height:0;border-left:0!important;border-bottom:1px solid rgba(18,20,29,.1)!important;padding:1.05rem .9rem 1.1rem}
  .research-program:last-child{border-bottom:0!important}
  .research-program::before{left:.9rem}
  .research-program--bottom-stack{display:grid}
  .research-visual-stack{grid-template-columns:1fr;width:100%;margin:.1rem 0 0;gap:.8rem}
  .research-visual-stack .research-visual-slot{width:100%;margin:0}
  .research-visual-slot,.research-visual-slot--secondary{float:none;clear:none;width:100%;margin:0}
  .research-visual-card,.research-visual-card--portrait{width:100%}
  .research-visual-caption strong{font-size:.7rem}
  .matrix-table th,.matrix-table td{display:block;width:100%;padding:.68rem .85rem}
  .matrix-table th{padding-bottom:.15rem;border-bottom:0}
  .matrix-table td{padding-top:.15rem}
  .selected-record tr{display:block;padding:.72rem .85rem;border-bottom:1px solid rgba(18,20,29,.1)}
  .selected-record tr:last-child{border-bottom:0}
  .selected-record td{padding:0;border:0}
  .selected-record td:first-child,.selected-record td:nth-child(2){padding:0 .4rem 0 0}
  .selected-record td:nth-child(3){display:block;padding-top:.24rem}
  .professional-inquiry-form{padding:1rem}
  .professional-inquiry-head,.professional-inquiry-grid{grid-template-columns:1fr}
  .professional-inquiry-head{align-items:start}
  .professional-inquiry-field.wide{grid-column:auto}
  .professional-inquiry-actions{align-items:flex-start;flex-direction:column}
  .frank-signoff{grid-template-columns:88px minmax(0,1fr);gap:.75rem}
  #sceneExplainControl{padding:.42rem .62rem}
  .environment-badge-label{display:none}
}
/* Open typography: the page provides the reading surface; prose stays unframed. */
.tab-panel{--paper-text:var(--text-primary);--paper-muted:var(--text-secondary);--paper-line:#35424b;--paper-border:#35424b;--tab-text-accent:color-mix(in srgb,var(--tab-accent) 60%,white);--reading-shade-core:rgba(16,22,28,.92);--reading-shade-near:rgba(16,22,28,.86);--reading-shade-mid:rgba(16,22,28,.62);--reading-shade-soft:rgba(16,22,28,.28);--reading-shade-trace:rgba(16,22,28,.06)}
/* Reading light follows the actual text measure. The canvas and scene windows
   stay clear; both text surfaces share one neutral, softly feathered falloff. */
.tab-panel{--surface-top:7.65rem;--surface-tail:5rem;--surface-feather:clamp(6rem,12vw,12rem);--surface-fade-in:6rem}
.tab-panel:first-child{--surface-fade-in:0rem}
.tab-layout{position:relative;isolation:isolate}
.tab-layout::before,.scene-band-copy::before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,var(--reading-shade-core) 0%,var(--reading-shade-near) calc(100% - var(--surface-feather)),var(--reading-shade-mid) calc(100% - var(--surface-feather)*.75),var(--reading-shade-soft) calc(100% - var(--surface-feather)*.45),var(--reading-shade-trace) calc(100% - var(--surface-feather)*.2),transparent 100%);
  --surface-edge-mask:linear-gradient(180deg,transparent 0,rgba(0,0,0,.16) calc(var(--surface-fade-in)*.3),rgba(0,0,0,.64) calc(var(--surface-fade-in)*.68),#000 var(--surface-fade-in),#000 calc(100% - var(--surface-tail)),rgba(0,0,0,.64) calc(100% - var(--surface-tail)*.68),rgba(0,0,0,.16) calc(100% - var(--surface-tail)*.3),transparent 100%);
  -webkit-mask-image:var(--surface-edge-mask);mask-image:var(--surface-edge-mask);
}
.tab-layout::before{inset:calc(-1 * var(--surface-top)) calc(-1 * var(--surface-feather)) calc(-1 * var(--surface-tail)) calc(-1 * var(--pad))}
.scene-band-copy{isolation:isolate;--surface-feather:6rem;--surface-fade-in:3.5rem;--surface-tail:3.5rem}
.scene-band-copy::before{inset:calc(-1 * var(--surface-fade-in)) calc(-1 * var(--surface-feather)) calc(-1 * var(--surface-tail)) calc(-1 * var(--pad));opacity:.94}
@media(min-width:901px) and (max-height:800px){.tab-panel{--surface-top:6.35rem}}
.tab-layout,.tab-layout.wide{gap:2.2rem}
.tab-deck{color:var(--reading-muted)}
.tab-title{line-height:1.08;letter-spacing:-.035em}
.about-hero .tab-title{max-width:28ch;font-size:clamp(2rem,3.3vw,3rem);font-weight:400;line-height:1.12}
.about-intro{display:grid;grid-template-columns:142px minmax(0,1fr);gap:1.75rem;margin-top:1.8rem;align-items:start}
.about-intro .tab-deck{grid-column:2;grid-row:1;font-size:1rem;line-height:1.75}
.about-portrait{float:none;grid-column:1;grid-row:1;width:100%;margin:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible}
.about-portrait-media{border-radius:1rem}
.about-portrait figcaption{padding:.65rem 0 0;color:var(--reading-text)}
.about-portrait figcaption strong{font-size:.84rem}
.about-portrait figcaption span{font-size:.55rem;color:var(--reading-muted)}
.tab-panel :is(.data-sheet,.research-matrix,.mini-card,.lab-gallery,.ai-use-note,.independent-work-card,.frank-signoff){border:0;border-radius:0;background:none;box-shadow:none;color:var(--reading-text);overflow:visible}
.tab-panel .data-sheet :focus-visible{outline-color:var(--tab-accent)}
.tab-panel .sheet-head{padding:.9rem 0;border-top:1px solid var(--paper-line);border-bottom:1px solid var(--paper-line);background:none;line-height:1.6}
.tab-panel .sheet-head strong{color:var(--tab-text-accent)}
.tab-panel .matrix-table th,.tab-panel .matrix-table td{padding:1.3rem 0}
.tab-panel .matrix-table th{padding-right:1.5rem;width:25%;font-size:.66rem;line-height:1.6}
.tab-panel .matrix-table td{color:var(--reading-muted);font-size:.98rem;line-height:1.72}
.tab-panel .matrix-table td strong{color:var(--reading-text);font-size:1.18rem;font-weight:450;line-height:1.35;margin-bottom:.35rem}
.tab-panel .matrix-table a{color:var(--tab-text-accent);text-underline-offset:.2em}
#panel-overview .training-entry b{color:var(--reading-text);font-size:1.05rem}
#panel-overview .training-entry span{font-size:.9rem}
.tab-panel .matrix-table .status{color:#83e9d7;border-color:#326058;background:#193a36}
.tab-panel .timeline-future th,.tab-panel .timeline-future td{background:none}
.timeline-institution:not(.timeline-institution--ucla){padding:.45rem .7rem;border-radius:0;background:#edf1f5}
.timeline-institution--ucla{border-radius:0}
.tab-panel .mini-grid{gap:0 2rem;margin-top:2.2rem}
.tab-panel .mini-card{padding:1.45rem 0;border-top:1px solid var(--paper-line)}
.tab-panel .mini-card strong{font-size:1.35rem;line-height:1.3;font-weight:450}
.tab-panel .mini-card p{color:var(--reading-muted);font-size:.98rem;line-height:1.7}
#panel-about .mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#panel-about .mini-grid>.mini-card,#panel-about .degree-copy{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}
#panel-about .mini-grid>.degree-card{display:block}
#panel-about .mini-grid>.mini-card>span,#panel-about .degree-copy>span{line-height:1.7}
#panel-about .mini-grid>.mini-card>strong,#panel-about .degree-copy>strong{margin-top:0}
#panel-about .mini-grid>.mini-card>p,#panel-about .degree-copy>p{margin-top:.1rem}
.tab-panel .degree-copy>span{color:var(--reading-muted)}
.tab-panel .degree-card .degree-school,.tab-panel .degree-card .degree-detail{font-size:.98rem;color:var(--reading-muted)}
.tab-panel .degree-card .degree-school{color:var(--reading-text);font-weight:550}
.tab-panel .degree-capstone{min-height:0;margin-top:.7rem;padding-top:0;border:0}
.tab-panel .degree-capstone b{color:var(--reading-muted);font-size:.6rem}
.tab-panel .degree-capstone em{color:var(--reading-muted);font-size:1rem}
.tab-panel .degree-capstone>span{font-family:var(--sans);font-size:.98rem;letter-spacing:0;text-transform:none}
.tab-panel .honors-card{grid-template-columns:150px minmax(0,1fr);gap:1.5rem}
.tab-panel .honors-card-body{padding:0;border:0}
.tab-panel .honors-logos{max-width:430px}
.tab-panel .honors-logo{border:0;border-radius:0;background:#edf1f5;box-shadow:none;padding:.6rem .8rem}
.tab-panel .lab-gallery{padding:1.5rem 0 0;border-top:1px solid var(--paper-line)}
.tab-panel .lab-gallery-head{grid-template-columns:150px minmax(0,1fr);gap:1.5rem;margin-bottom:1.2rem}
.tab-panel .lab-gallery-kicker{color:var(--reading-muted)}
.tab-panel .lab-gallery h3{color:var(--reading-text);font-size:1.45rem;font-weight:450}
.tab-panel .lab-gallery-head p{font-size:.9rem}
.tab-panel .lab-photo-grid{gap:1rem}
.tab-panel .lab-photo-card{border:0;background:none;box-shadow:none;border-radius:0}
.tab-panel .lab-photo-media{border-radius:.9rem}
.tab-panel .lab-photo-card figcaption{padding:.7rem 0 0;min-height:0;color:var(--reading-text)}
.tab-panel .lab-photo-card figcaption strong{font-size:.9rem;line-height:1.4;font-weight:500}
.tab-panel .research-program{padding:2rem 0 2.4rem;gap:1rem;border-bottom:1px solid var(--paper-line)}
.tab-panel .research-program:last-child{border-bottom:0}
.tab-panel .research-program::before{content:none}
.tab-panel .research-program h3{font-size:1.65rem;font-weight:450;color:var(--reading-text)}
.tab-panel .research-program p{font-size:1rem;line-height:1.78;color:var(--reading-muted)}
.tab-panel .research-visual-card{border:0;border-radius:0;background:none;box-shadow:none;overflow:visible}
.tab-panel .research-visual-card .ga-zoom-button{border-radius:1rem;overflow:hidden}
.tab-panel .research-visual-stack .research-visual-card{display:flex;flex-direction:column;height:100%}
.tab-panel .research-visual-card .ga-zoom-button{flex-shrink:0}
.tab-panel .research-visual-caption{flex:1;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto 1fr;gap:.35rem 1rem;padding:.85rem 0 .2rem;border:0;color:var(--reading-muted)}
.tab-panel .research-visual-caption>span{color:var(--reading-muted)}
.tab-panel .research-visual-caption strong{grid-column:1;color:var(--reading-text);font-size:1rem;font-weight:450}
.tab-panel .research-visual-caption small{grid-column:1;align-self:start;font-size:.72rem}
.tab-panel .research-animation-link{grid-column:2;grid-row:1/4;align-self:center;justify-self:end;min-width:0;min-height:44px;margin:0;color:var(--reading-text);background:color-mix(in srgb,var(--program-accent) 12%,transparent);box-shadow:none;padding:.6rem .95rem}
.tab-panel .research-animation-link:hover{color:var(--text-primary);background:color-mix(in srgb,var(--program-accent) 24%,transparent)}
.tab-panel .ai-use-note{padding:0;gap:1rem;align-items:start}
.tab-panel .ai-use-mark{background:rgba(34,211,238,.09);border-color:rgba(34,211,238,.35);color:var(--text-cyan)}
.tab-panel .ai-use-note strong{color:var(--reading-text);font-size:1.15rem;font-weight:450}
.tab-panel .ai-use-note p{font-size:.95rem;line-height:1.7}
.tab-panel .independent-work-list{margin-top:.5rem;gap:2.6rem}
.tab-panel .independent-work-group{padding-top:2rem;border-color:var(--paper-line)}
.tab-panel .independent-work-group:first-child{padding-top:0}
.tab-panel .independent-work-card:hover{transform:none;border:0;background:none;box-shadow:none}
.tab-panel .independent-work-card::before,.tab-panel .independent-work-card::after{content:none}
.tab-panel .independent-work-card:focus-within{outline:0}
.tab-panel .work-section-row{grid-template-columns:minmax(190px,.72fr) minmax(0,1.28fr);gap:1.75rem;padding:1.5rem 0}
.tab-panel .work-section-row+.work-section-row{border-color:var(--paper-line)}
.tab-panel .independent-work-copy{padding:0;align-self:start}
.tab-panel .work-section-row .work-collection-intro{justify-content:flex-start}
.tab-panel .independent-work-copy h4{color:var(--reading-text)}
.tab-panel .independent-work-title{grid-template-columns:44px minmax(0,1fr);gap:.7rem}
.tab-panel .independent-work-mark{width:42px;height:42px;border:0;border-radius:50%;background:none;box-shadow:none;overflow:visible}
.tab-panel .independent-work-mark b{color:var(--reading-text)}
.tab-panel .independent-work-copy p{font-size:.95rem;line-height:1.7}
.tab-panel .work-section-row .work-collection-disclaimer{font-size:.78rem;border-color:var(--paper-line)}
.tab-panel .work-section-row .work-collection-disclaimer strong{font-size:.6rem;color:color-mix(in srgb,var(--work-accent) 60%,white)}
.tab-panel .work-section-row .work-collection-items{padding:0;border:0;gap:1.5rem;grid-template-columns:1fr;align-content:start}
.tab-panel .work-collection-item{padding:0 0 1.4rem;border:0;border-bottom:1px solid var(--paper-line);border-radius:0;background:none;gap:.6rem}
.tab-panel .work-collection-item:last-child{padding-bottom:0;border-bottom:0}
.tab-panel .work-collection-item:focus-within{background:none;border-color:var(--paper-line)}
.tab-panel .work-collection-item h5{color:var(--reading-text);font-size:1.25rem;line-height:1.35;font-weight:450}
.tab-panel .work-collection-item p{font-size:.95rem;line-height:1.7}
.tab-panel .work-collection-state{padding:.3rem .65rem;font-size:.57rem;color:color-mix(in srgb,var(--work-accent) 60%,white);background:color-mix(in srgb,var(--work-accent) 8%,transparent);border-color:color-mix(in srgb,var(--work-accent) 30%,transparent)}
.tab-panel .work-preview-link{font-size:.65rem;padding:.6rem .9rem;color:var(--reading-text);background:color-mix(in srgb,var(--work-accent) 9%,transparent);border-color:color-mix(in srgb,var(--work-accent) 40%,transparent)}
.tab-panel .work-preview-link:hover{background:color-mix(in srgb,var(--work-accent) 20%,transparent);border-color:var(--work-accent)}
.tab-panel .work-collection-item>.work-card-actions,.tab-panel .work-collection-item>.work-preview-link{margin-top:.15rem}
.tab-panel .work-flow-arrow{display:none}
.tab-panel .selected-record td:first-child{color:var(--tab-text-accent);width:64px;font-size:.75rem}
.tab-panel .selected-record td:nth-child(2){width:120px;font-size:.68rem;padding-right:1rem}
.tab-panel .frank-signoff{grid-template-columns:128px minmax(0,1fr);gap:1.25rem;padding:1.5rem 0 0;border-top:1px solid var(--paper-line)}
.tab-panel .frank-signoff figcaption span{display:block;font-family:var(--disp);font-size:1.65rem;font-weight:450;line-height:1.2;letter-spacing:-.025em;text-transform:none;color:var(--text-pink)}
.tab-panel .frank-signoff figcaption strong{margin-top:.35rem;font-family:var(--sans);font-size:1.05rem;font-weight:550;line-height:1.45;color:var(--text-primary)}
.tab-panel .frank-signoff figcaption p{font-size:.95rem;line-height:1.7}
.tab-panel .frank-photo-media{border:0;border-radius:1.2rem;box-shadow:none}
.tab-panel .professional-inquiry-form{background:#19222b;border-color:#35424b;border-radius:1.5rem;box-shadow:none;padding:1.5rem;color:var(--reading-text)}
.tab-panel .professional-inquiry-head{border-color:var(--paper-line)}
.tab-panel .professional-inquiry-head strong{color:var(--reading-text);font-size:1.35rem;font-weight:450}
.tab-panel .professional-inquiry-head span,.tab-panel .professional-inquiry-field>span{color:var(--text-cyan)}
.tab-panel .professional-inquiry-head a{color:var(--text-cyan)}
.tab-panel .professional-inquiry-head a:hover{color:var(--text-primary)}
.tab-panel .professional-inquiry-field :is(input,select,textarea){background:#111920;border-color:#4a5661;color:var(--reading-text);font-size:1rem;padding-inline:1rem;color-scheme:dark}
.tab-panel .professional-inquiry-field :is(input,select,textarea):focus{background:#111920;border-color:var(--cyan)}
.tab-panel .professional-inquiry-field textarea{border-radius:1.2rem}
.tab-panel .professional-inquiry-actions .btn-fill{background:#f5a6ce;border-color:#f5a6ce;color:#17121a}
/* Compact controls remain visibly actionable, with the preferred pill silhouette. */
.btn,.nlinks button,body.tabular .nlinks button.ncta,.loader-skip,.research-animation-link,.work-suite-link,.work-preview-link,.work-collection-state,.ai-use-mark,.matrix-table .status,.ga-zoom-cue,.ga-lightbox-close,.work-preview-close,.work-preview-tab,.work-preview-button,.animation-play-control,.professional-inquiry-field input,.professional-inquiry-field select,#environmentBadge,#sceneExplainControl{border-radius:999px}
.ga-lightbox,.molecular-caption,.scene-explanation,.case-study-shot,.animation-player-shell,.research-brief,.work-preview-surface,.case-study-gallery,.article-preview-paper{border-radius:1.5rem}
/* Reports share the open reading treatment; interactive media keep their frames. */
.work-preview :is(.research-brief,.work-preview-note,.work-preview-surface,.case-study-gallery,.vcc-case-study>section,.vcc-question-card,.vcc-pipeline article,.vcc-report-card,.vcc-status>section,.case-study-lens>div,.case-study-closeout>section){border:0;border-radius:0;background:none;box-shadow:none}
.work-preview :is(.research-brief,.work-preview-surface,.case-study-gallery){padding-inline:0}
.work-preview .research-brief{color:var(--dtext)}
.work-preview .research-brief-head{border-color:#35424b}
.work-preview .research-brief-head h2{color:var(--dtext)}
.work-preview .research-brief-head span,.work-preview .research-brief-grid dt{color:var(--preview-text-accent)}
.work-preview .research-brief-grid>div{padding:1.2rem 0;border-color:#35424b}
.work-preview .research-brief-grid dd{color:var(--dmute);font-size:1rem;line-height:1.75}
.work-preview :is(.vcc-report-card,.vcc-status>section,.case-study-lens>div,.case-study-closeout>section){border-top:1px solid #35424b;padding-inline:0}
.work-preview .vcc-pipeline article{padding-inline:0;border-top:1px solid #35424b}
.work-preview .vcc-pipeline article>span{border-radius:999px}
/* Pearlescent glass echoes the eM² black-opal identity on controls and
   functional panels. Narrative remains open and unframed. */
:root{
  --pearl-surface:linear-gradient(125deg,rgba(40,55,75,.96),rgba(35,39,58,.98) 35%,rgba(49,36,55,.96) 75%,rgba(51,43,48,.97));
  --pearl-hover:linear-gradient(125deg,rgba(50,70,94,.98),rgba(45,47,70,.98) 35%,rgba(65,44,69,.98) 75%,rgba(65,53,59,.98));
  --pearl-edge:linear-gradient(115deg,rgba(160,237,255,.58),rgba(173,188,255,.28) 28%,rgba(213,179,250,.34) 52%,rgba(255,174,216,.54) 76%,rgba(255,225,189,.45));
  --pearl-shadow:inset 0 1px 0 rgba(255,245,253,.13),inset 0 -1px 0 rgba(165,198,255,.05),0 5px 16px rgba(5,9,17,.18);
}
:is(#tabMain,#workPreview) :is(.btn-out,.professional-inquiry-actions .btn-fill,.research-animation-link,.work-preview-link,.work-preview-button,.work-preview-tab,.work-preview-close,.work-suite-link){
  border-color:transparent;background:var(--pearl-surface) padding-box,var(--pearl-edge) border-box;box-shadow:var(--pearl-shadow);
}
#panel-overview .tab-actions .btn-out:is(:hover,:focus-visible),
:is(#tabMain,#workPreview) :is(.btn-out,.professional-inquiry-actions .btn-fill,.research-animation-link,.work-preview-link,.work-preview-button,.work-preview-tab,.work-preview-close,.work-suite-link):is(:hover,:focus-visible){
  border-color:transparent;background:var(--pearl-hover) padding-box,var(--pearl-edge) border-box;box-shadow:inset 0 1px 0 rgba(255,245,253,.23),0 5px 22px rgba(173,188,255,.10),0 2px 12px rgba(255,174,216,.07);
}
#workPreview .work-preview-tab[aria-selected="true"]{background:linear-gradient(125deg,color-mix(in srgb,var(--preview-accent) 18%,#253044),color-mix(in srgb,var(--preview-accent) 12%,#302339)) padding-box,var(--pearl-edge) border-box;box-shadow:var(--pearl-shadow),inset 0 -2px 0 var(--preview-accent)}
.tab-panel .professional-inquiry-form{
  border-color:transparent;background:linear-gradient(135deg,rgba(30,43,58,.98),rgba(29,34,46,.99) 45%,rgba(41,31,46,.98)) padding-box,var(--pearl-edge) border-box;box-shadow:var(--pearl-shadow);
}
#environmentBadge,.molecular-caption,.scene-explanation{border-color:transparent;background:var(--pearl-surface) padding-box,var(--pearl-edge) border-box;box-shadow:var(--pearl-shadow)}
@media(prefers-reduced-transparency:reduce){
  :is(#tabMain,#workPreview) :is(.btn-out,.professional-inquiry-actions .btn-fill,.research-animation-link,.work-preview-link,.work-preview-button,.work-preview-tab,.work-preview-close,.work-suite-link),
  #panel-overview .tab-actions .btn-out:is(:hover,:focus-visible),#workPreview .work-preview-tab[aria-selected="true"],.tab-panel .professional-inquiry-form,#environmentBadge,.molecular-caption,.scene-explanation{background:#202735;border-color:#aaa4c2;box-shadow:none}
}

/* Figure glass frames the artwork without tinting the scientific image. */
.tab-panel .professional-inquiry-actions .btn-fill{color:var(--text-primary)}
.tab-panel .research-visual-card .ga-zoom-button,
#workPreview .case-study-shot,.ga-lightbox{
  border:1px solid transparent;background:var(--pearl-surface) padding-box,var(--pearl-edge) border-box;box-shadow:var(--pearl-shadow);
}
.tab-panel .research-visual-card .ga-zoom-button{padding:.45rem}
.tab-panel .research-visual-card .ga-zoom-button img{border-radius:.65rem}
/* These 1600×900 schematics have a white matte outside their 30px corners.
   Match the image box to its artwork, then clip the matte in cards and zoom. */
.tab-panel .research-visual-card .ga-zoom-button img[data-rounded-schematic]{inset:50% auto auto 50%;height:auto;aspect-ratio:16/9;transform:translate(-50%,-50%);border-radius:0}
img[data-rounded-schematic]{clip-path:inset(0 round 2% / 3.556%)}
.ga-lightbox-image[data-rounded-schematic]{width:min(100%,calc((100dvh - 9rem)*16/9));height:auto;max-height:none;aspect-ratio:16/9}
.ga-lightbox-close{background:var(--pearl-surface) padding-box,var(--pearl-edge) border-box;border-color:transparent;box-shadow:var(--pearl-shadow)}
.tab-panel .research-visual-card .ga-zoom-button:is(:hover,:focus-visible){background:var(--pearl-hover) padding-box,var(--pearl-edge) border-box}
@media(prefers-reduced-transparency:reduce){
  .tab-panel .research-visual-card .ga-zoom-button,#workPreview .case-study-shot,.ga-lightbox,.ga-lightbox-close{background:#202735;border-color:#aaa4c2;box-shadow:none}
}

@media(min-width:901px){
  .nlinks{border-radius:999px}
  /* Soft reading fades meet the broad scene backdrop. */
  .tab-panel{--surface-tail:10rem}
  .tab-layout::before{
    background:linear-gradient(90deg,var(--reading-shade-core),var(--reading-shade-core) calc(100% - var(--surface-feather)*1.35),var(--reading-shade-near) calc(100% - var(--surface-feather)),var(--reading-shade-mid) calc(100% - var(--surface-feather)*.72),var(--reading-shade-soft) calc(100% - var(--surface-feather)*.43),var(--reading-shade-trace) calc(100% - var(--surface-feather)*.18),transparent 100%);
  }
  .scene-band-copy::before{
    inset:-8rem -12rem -8rem calc(-1 * var(--pad));
    background:radial-gradient(ellipse farthest-side at 18% 50%,var(--reading-shade-core) 0%,var(--reading-shade-near) 36%,var(--reading-shade-mid) 58%,var(--reading-shade-soft) 76%,var(--reading-shade-trace) 90%,transparent 100%);
    -webkit-mask-image:none;mask-image:none;opacity:1;
  }
}
@media(max-width:900px){
  .tab-panel{--surface-top:6.85rem;--surface-tail:4rem;--surface-feather:var(--pad);--surface-fade-in:5rem}
  .tab-panel:first-child{--surface-fade-in:0rem}
  .tab-layout::before{background:linear-gradient(100deg,var(--reading-shade-core),var(--reading-shade-near))}
  .scene-band-copy{margin-inline:auto;text-align:center}
  .scene-band-label,.scene-band-text{text-wrap:balance}
  .scene-band-copy::before{
    inset:-5rem -6rem;
    background:radial-gradient(ellipse farthest-side at 50% 50%,var(--reading-shade-core) 0%,var(--reading-shade-near) 40%,var(--reading-shade-mid) 64%,var(--reading-shade-soft) 84%,var(--reading-shade-trace) 95%,transparent 100%);
    -webkit-mask-image:none;mask-image:none;opacity:1;
  }
}
@media(max-width:620px){
  .tab-layout,.tab-layout.wide{gap:2rem}
  .tab-panel .frank-signoff{grid-template-columns:104px minmax(0,1fr);gap:1rem}
  .tab-panel .frank-signoff figcaption span{font-size:1.45rem}
  .about-hero .tab-title{font-size:clamp(1.9rem,8.5vw,2.7rem)}
  .about-intro{grid-template-columns:1fr;gap:1.2rem;margin-top:1.4rem}
  .about-portrait{grid-column:1;grid-row:1;display:grid;grid-template-columns:80px minmax(0,1fr);gap:1rem;align-items:center}
  .about-portrait figcaption{padding:0}.about-portrait figcaption strong{font-size:1rem}.about-portrait figcaption span{display:block}
  .about-intro .tab-deck{grid-column:1;grid-row:2}
  #panel-about .mini-grid{grid-template-columns:1fr}
  #panel-about .mini-grid>.mini-card,#panel-about .degree-copy{gap:.45rem}
  .tab-panel .honors-card,.tab-panel .lab-gallery-head{grid-template-columns:1fr;gap:.6rem}
  .tab-panel .sheet-head{flex-wrap:wrap;gap:.25rem .75rem}
  .tab-panel .matrix-table th,.tab-panel .matrix-table td{width:100%;padding:1rem 0}
  .tab-panel .matrix-table th{padding-bottom:.35rem}.tab-panel .matrix-table td{padding-top:0}
  .tab-panel .evolution-sheet .matrix-table th{display:grid;grid-template-columns:minmax(0,8rem) 110px;align-items:center;gap:1rem}
  .tab-panel .timeline-institution{margin-top:0;min-height:36px;width:110px}
  .tab-panel .timeline-future-mark{margin-top:0;width:110px}
  .tab-panel .research-program{padding:1.6rem 0 2rem;border-bottom-color:var(--paper-line)!important}
  .tab-panel .research-visual-caption strong{font-size:.95rem}
  .tab-panel .research-visual-stack{gap:1.5rem}
  .tab-panel .work-section-row{grid-template-columns:1fr;gap:1.5rem;padding:1.3rem 0}
  .tab-panel .work-collection-item-head{display:flex;flex-wrap:wrap;align-items:baseline}
  .tab-panel .work-collection-state{margin-top:0}
  .tab-panel .selected-record tr{padding:1.25rem 0;border-color:var(--paper-line)}
  .tab-panel .selected-record td{padding:0}
  .tab-panel .selected-record td:first-child,.tab-panel .selected-record td:nth-child(2){display:inline-block;width:auto;padding:0 .6rem .4rem 0}
  .tab-panel .professional-inquiry-form{padding:1.2rem}
}
@media (hover:none),(pointer:coarse),(max-width:900px){#molecularInspector{display:none}}
@media(prefers-reduced-motion:reduce){
  #tabMain{scroll-behavior:auto}
  .tab-panel{animation:none!important;transition:none!important;transform:none!important;filter:none!important;clip-path:none!important;scroll-behavior:auto}
  .independent-work-card,.independent-work-card::before,.independent-work-card::after,.research-animation-link{transition:none!important;transform:none!important}
  .molecular-demo-stage.is-playing .molecular-node,.molecular-particle,.ub-question-stage.is-playing .ub-chain-demo span{animation:none!important}
  .animation-player-shell.is-loading .animation-play-control::before{animation:none!important}
  .independent-work-mark::before{animation:none!important}
  .molecular-hotspot{transition:none!important}
  .ga-lightbox::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none}
  .nlinks,.nburg span{transition:none!important}
}
.performance-lite .loader-proteasome-launch{filter:none!important;will-change:opacity,transform}
.performance-lite :is(.nlinks,.loader-proteostasis,.loader-skip,#environmentBadge,.scene-explanation,.molecular-caption){backdrop-filter:none;-webkit-backdrop-filter:none}
.performance-lite .loader-proteostasis{background:radial-gradient(circle at 18% 44%,rgba(125,220,255,.1),transparent 34%),radial-gradient(circle at 80% 54%,rgba(246,172,216,.09),transparent 34%),linear-gradient(145deg,rgba(9,13,24,.96),rgba(24,29,40,.92))}
/* Adaptive governor: from level 2 the glass surfaces become opaque panels so
   the compositor stops re-blurring a molecular backdrop that changes every
   frame. The molecular population itself is never reduced. */
.governor-lite .nlinks,.governor-lite .loader-proteostasis,.governor-lite .loader-skip,.governor-lite .data-sheet,.governor-lite .research-matrix,.governor-lite .mini-card,.governor-lite .professional-inquiry-form,.governor-lite .ai-use-note,.governor-lite .independent-work-card,.governor-lite .work-preview-bar,.governor-lite #environmentBadge,.governor-lite .scene-explanation,.governor-lite .molecular-caption{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.governor-lite .nlinks{background:#111720!important}
.governor-lite .loader-proteostasis,.governor-lite #environmentBadge,.governor-lite .scene-explanation{background:#111720!important}
.governor-lite .professional-inquiry-form{background:#19222b!important}
.governor-lite .ga-lightbox::backdrop{background:rgba(2,4,9,.96);backdrop-filter:none;-webkit-backdrop-filter:none}
/* Support readout, rendered only for ?diag=1. */
.diag-readout{position:fixed;left:.6rem;bottom:.6rem;z-index:900;width:min(360px,calc(100vw - 1.2rem));padding:.5rem .6rem .55rem;border:1px solid rgba(255,255,255,.22);border-radius:6px;background:rgba(7,10,16,.93);color:#e6ebf2;font:11px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.diag-readout .diag-headline{display:block;font-weight:600;letter-spacing:.02em}
.diag-readout textarea{display:block;width:100%;height:10rem;margin:.35rem 0;padding:.3rem;border:1px solid rgba(255,255,255,.16);border-radius:4px;background:#05070d;color:#dfe6ee;font:inherit;resize:vertical}
.diag-readout button{font:inherit;padding:.25rem .55rem;border:1px solid rgba(255,255,255,.3);border-radius:4px;background:#1b2430;color:#fff;cursor:pointer}
@media(prefers-reduced-transparency:reduce){
  .nlinks,.loader-proteostasis,.loader-skip,.data-sheet,.research-matrix,.mini-card,.professional-inquiry-form,.ai-use-note,.independent-work-card,#environmentBadge,.scene-explanation,.molecular-caption{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .nlinks{background:#111720!important}
  .loader-proteostasis,#environmentBadge,.scene-explanation{background:#111720!important}
  .tab-layout::before,.scene-band-copy::before{background:#10161c!important;opacity:1}
  .professional-inquiry-form{background:#19222b!important}
  .ga-lightbox::backdrop{background:rgba(2,4,9,.96);backdrop-filter:none;-webkit-backdrop-filter:none}
}
@media(forced-colors:active){
  .tab-title .gradient{-webkit-text-fill-color:currentColor;background:none;color:CanvasText;filter:none}
  .data-sheet,.research-matrix,.mini-card,.professional-inquiry-form,.independent-work-card,.research-visual-card{border:1px solid CanvasText;background:Canvas;color:CanvasText;box-shadow:none}
  #sceneExplainControl::before,.research-program::before{box-shadow:none}
}

/* Availability changes retain the existing Works layout. */
#panel-independent .work-collection-state{border-radius:999px;white-space:nowrap}
#panel-independent .work-coming-soon{cursor:default;opacity:1;text-transform:none!important;letter-spacing:.015em!important;white-space:normal;line-height:1.45;max-width:100%}
.coming-soon-panel .work-collection-state{border-radius:999px;white-space:nowrap;padding:.25rem .55rem}
.coming-soon-dialog .work-preview-shell{max-width:880px;min-height:55vh;padding:clamp(1.5rem,6vw,5rem)}
.coming-soon-panel{position:relative;padding-top:3rem}
.coming-soon-panel .work-collection-state{position:absolute;right:0;top:0}
.coming-soon-panel h1{font-size:clamp(2rem,6vw,4rem);line-height:1.1;margin:.8rem 0 1.2rem}
.coming-soon-panel .translation-message{margin-top:2.5rem;color:#c6bedf}
@media(max-width:900px){#panel-independent .work-collection-item-head{position:relative;padding-top:1.9rem}#panel-independent .work-collection-state{position:absolute;right:0;top:0}.coming-soon-dialog .work-preview-shell{padding:1.5rem}}
