/* V3 · Illustrated academic / engineering portfolio · MkDocs Material */
:root{--navy:#061322;--navy-2:#091c32;--surface:#0c2138;--surface-2:#112943;--line:#29415a;--bright:#77b6ff;--electric:#317eff;--text:#edf5ff;--muted:#b1c3d7;--gold:#d8ae70;--body:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
[data-md-color-scheme=slate]{--md-primary-fg-color:#071524;--md-primary-bg-color:#eef5ff;--md-accent-fg-color:#7ab7ff;--md-typeset-a-color:#8dc1ff;--md-default-bg-color:#061322;--md-default-fg-color:#e9f3ff;--md-code-bg-color:#122b42;--md-code-fg-color:#e9f3ff}
[data-md-color-scheme=default]{--md-primary-fg-color:#f5f8fd;--md-primary-bg-color:#152c45;--md-accent-fg-color:#2469c1;--md-typeset-a-color:#206bc4;--md-default-bg-color:#f4f8fc;--md-default-fg-color:#142c45;--navy:#e8f2ff;--navy-2:#d9e9f9;--surface:#fff;--surface-2:#edf5fd;--line:#c7d7e9;--bright:#1558a6;--electric:#2e70d2;--text:#122b46;--muted:#536b85;--gold:#8b5f28}
html{scroll-behavior:smooth}body,.md-typeset{font-family:var(--body)}.md-grid{max-width:1380px}.md-header{box-shadow:none;background:var(--md-primary-fg-color);border-bottom:1px solid var(--line)}.md-tabs{background:var(--md-primary-fg-color);border-bottom:1px solid var(--line)}.md-header__title{font-weight:760;letter-spacing:.015em}.md-header__button.md-logo img{width:1.7rem;height:1.7rem}[data-md-color-scheme=slate] .md-header__button.md-logo img{filter:brightness(0) invert(1)}.md-typeset{font-size:.77rem;line-height:1.56;color:var(--text)}.md-typeset h1,.md-typeset h2,.md-typeset h3{color:var(--text);font-family:var(--body)}.md-typeset h1{font-size:clamp(1.9rem,3vw,3rem);letter-spacing:-.045em}.md-typeset h2{font-size:1.56rem;letter-spacing:-.035em}.md-typeset a{color:var(--bright)}.md-typeset a:hover{color:var(--electric)}.md-content__inner{padding-bottom:1.6rem}.md-footer{background:#081728}.md-footer-meta{background:#05101e}.md-typeset .headerlink{color:var(--electric)}
@media(min-width:76.25em){.md-sidebar--primary{display:none}.md-sidebar--secondary{display:none}.md-main__inner{max-width:1340px}.md-content{margin:0;max-width:none}.md-content__inner{max-width:none;padding-left:.65rem;padding-right:.65rem}}
.md-content__inner:before{height:0}.md-typeset .home-shell{margin:0 auto}.home-shell{max-width:1340px}.md-typeset .home-shell p{margin:0}.md-main__inner{margin-top:0}.md-content__inner{padding-top:0}.micro-label{font-size:.59rem!important;font-weight:750;letter-spacing:.145em;color:var(--bright)!important}.micro-point{display:inline-block;height:7px;width:7px;vertical-align:middle;border-radius:50%;background:#6acdf1;box-shadow:0 0 10px #3abafa;margin-right:.34rem}
/* Hero: tight two-column composition with real illustration, not blank padding. */
.showcase-hero{min-height:330px;position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);align-items:center;gap:.4rem;border:1px solid var(--line);border-radius:14px;background:radial-gradient(circle at 78% 44%,rgba(26,99,177,.32),transparent 35%),linear-gradient(110deg,var(--navy) 10%,var(--navy-2) 100%);margin:.85rem 0 1.15rem;padding:1.55rem clamp(1rem,3.2vw,2.3rem)}
.showcase-hero:before{content:"";pointer-events:none;position:absolute;inset:0;background-image:linear-gradient(90deg,transparent 99%,rgba(123,174,236,.12) 100%),linear-gradient(0deg,transparent 99%,rgba(123,174,236,.12) 100%);background-size:42px 42px;opacity:.2;mask-image:linear-gradient(90deg,transparent 15%,black 100%)}
.hero-copy{position:relative;z-index:2}.md-typeset .showcase-hero h1{font:780 clamp(1.75rem,3.4vw,3rem)/1.1 var(--body);letter-spacing:-.048em;color:var(--text);margin:.55rem 0 .28rem;white-space:normal}.showcase-hero h1 span{color:var(--electric)}.md-typeset .hero-intro{font-size:clamp(1.04rem,1.55vw,1.4rem);letter-spacing:-.03em;font-weight:450;margin:.24rem 0 .42rem;color:var(--text)}.hero-intro strong{font-weight:700;color:var(--bright)}.md-typeset .hero-description{font-size:.72rem;line-height:1.54;color:var(--muted);max-width:520px;margin:.5rem 0 .8rem}.hero-actions{display:flex;align-items:center;gap:.62rem;flex-wrap:wrap;margin:.84rem 0 .78rem}.md-typeset .action-primary,.md-typeset .action-outline{display:inline-flex;gap:1rem;align-items:center;justify-content:space-between;border-radius:7px;padding:.53rem .9rem;text-decoration:none!important;font-size:.63rem;font-weight:740;min-width:126px;transition:transform .18s,background .18s}.action-primary{background:#2877eb;color:white!important;box-shadow:0 3px 18px rgba(27,102,231,.22)}.action-primary:hover{background:#4d90ff;transform:translateY(-1px)}.action-outline{border:1px solid #547397;color:var(--text)!important;background:rgba(51,99,151,.09)}.action-outline:hover{background:rgba(73,123,180,.16);transform:translateY(-1px)}.hero-metrics{display:flex;align-items:center;gap:0;margin-top:.68rem}.hero-metrics>div{padding:.1rem .8rem .1rem 0;margin-right:.8rem;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.12rem}.hero-metrics>div:last-child{border:0}.hero-metrics b{font-size:.73rem;font-weight:760;letter-spacing:-.02em;color:var(--text)}.hero-metrics span{font-size:.49rem;line-height:1.3;color:var(--muted)}
.hero-art{height:295px;position:relative;display:grid;place-items:center;min-width:0;isolation:isolate;overflow:visible}.hero-art:before{content:"";position:absolute;inset:4% 8%;border-radius:50%;background:radial-gradient(circle,rgba(23,105,202,.27),transparent 66%);filter:blur(17px);z-index:-1}.hero-art img{display:block;width:min(100%,450px);height:100%;max-width:100%;object-fit:contain;object-position:center;position:relative;filter:drop-shadow(0 0 18px rgba(42,129,218,.2))}[data-md-color-scheme=default] .hero-art{background:radial-gradient(ellipse at center,rgba(44,118,208,.17),transparent 70%)}
/* Edge-to-edge cards, illustrated headers, minimal whitespace. */
.featured-section{padding:.1rem .12rem .7rem}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:1.6rem;margin:.4rem 0 .8rem}.md-typeset .section-heading h2{font-weight:780;font-size:clamp(1.25rem,2.1vw,1.92rem);margin:.17rem 0 .15rem;letter-spacing:-.045em}.section-heading h2 span,.heading-dot{color:var(--electric)}.md-typeset .section-heading p{font-size:.64rem;color:var(--muted)}.md-typeset .all-projects{font-size:.63rem;font-weight:730;text-decoration:none;white-space:nowrap;padding:.4rem .1rem}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.md-typeset a.portfolio-card{display:flex;flex-direction:column;color:var(--text)!important;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:11px;overflow:hidden;min-width:0;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;line-height:1.45}.md-typeset a.portfolio-card:hover{border-color:var(--electric);transform:translateY(-3px);box-shadow:0 8px 30px rgba(7,45,90,.3)}.portfolio-card-visual{height:114px;position:relative;overflow:hidden;background:#0e2943}.portfolio-card-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,13,26,.32),transparent 46%)}.portfolio-card-visual img{height:100%;width:100%;object-fit:cover;display:block;filter:saturate(1.1);transition:transform .4s ease}.portfolio-card:hover .portfolio-card-visual img{transform:scale(1.04)}.card-corner{position:absolute;z-index:3;right:.65rem;top:.56rem;display:grid;place-items:center;border:1px solid rgba(230,244,255,.62);background:rgba(4,23,45,.4);border-radius:50%;width:27px;height:27px;color:#fff;font-size:.72rem}.portfolio-card-body{padding:.82rem .95rem .77rem;display:flex;flex-direction:column;flex:1}.card-eyebrow{font-size:.49rem;color:var(--bright);font-weight:770;letter-spacing:.135em;line-height:1.2}.md-typeset .portfolio-card h3{font:780 1.13rem/1.17 var(--body);margin:.2rem 0 .1rem;letter-spacing:-.035em;color:var(--text)}.card-subtitle{font-size:.65rem;color:var(--bright);font-weight:520}.md-typeset .portfolio-card p{font-size:.64rem;line-height:1.43;color:var(--muted);margin:.32rem 0 .6rem;flex:1}.portfolio-card-foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.25rem;border-top:1px solid var(--line);padding-top:.55rem;font-size:.54rem;color:var(--muted)}.portfolio-card-foot strong{font-weight:740;color:var(--bright)}.owner-chip{display:inline-block;vertical-align:middle;margin-left:.2rem;border:1px solid #936e43;background:rgba(221,166,81,.12);color:var(--gold);font-weight:780;font-size:.43rem;letter-spacing:.045em;border-radius:4px;padding:.17rem .27rem;white-space:nowrap}.is-external{border-color:#5c4d40!important}.md-typeset .ownership-note{font-size:.54rem;line-height:1.52;color:var(--muted);padding:.55rem .12rem .25rem}.ownership-note strong{color:var(--text)}.ownership-note span{opacity:.75}
.compact-bottom{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid var(--line);border-radius:9px;padding:.9rem 1.15rem;background:linear-gradient(95deg,var(--surface),var(--navy-2));margin:.5rem .1rem 1rem}.compact-bottom>div{display:flex;flex-direction:column;gap:.23rem}.compact-bottom strong{font-size:.73rem;font-weight:730}.compact-bottom p{font-size:.61rem;color:var(--muted);margin:0}.compact-bottom>a{font-size:.64rem;font-weight:760;white-space:nowrap}.compact-heading{padding:1rem 0 .9rem;margin:.1rem 0 .8rem;border-bottom:1px solid var(--line)}.md-typeset .compact-heading h1{font:800 clamp(1.75rem,2.5vw,2.6rem)/1.08 var(--body);letter-spacing:-.05em;margin:.25rem 0}.compact-heading>p:not(.micro-label){font-size:.72rem;color:var(--muted);max-width:850px;margin:.3rem 0}.work-overview{margin:.8rem 0 1rem}
/* Project detail pages: articles remain colocated. */
.project-lead{position:relative;isolation:isolate;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:linear-gradient(110deg,var(--surface),var(--navy));padding:1rem 1.35rem 1.22rem;margin:1rem 0 1.1rem}.project-art{position:absolute;z-index:-1;top:0;right:0;width:49%;height:100%;opacity:.52;mask-image:linear-gradient(90deg,transparent 0%,#000 34%)}.project-art img{width:100%;height:100%;object-fit:cover;filter:saturate(1.1)}.project-lead-breadcrumb{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding-bottom:.55rem;border-bottom:1px solid var(--line);font-size:.6rem;color:var(--muted)}.project-lead-breadcrumb span{font-size:.51rem;font-weight:750;letter-spacing:.1em;color:var(--bright)}.lead-columns{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:1.7rem;align-items:center;margin-top:.8rem}.md-typeset .project-lead h1{font:800 clamp(2rem,3vw,3rem)/1.08 var(--body);letter-spacing:-.05em;margin:.28rem 0}.project-lead p:not(.micro-label):not(.overline){max-width:750px;color:var(--muted);font-size:.73rem;margin:.43rem 0}.md-typeset .project-lead .project-punchline{color:var(--text)!important;font-size:1.07rem!important;font-weight:650;line-height:1.36}.project-lead .overline{font-size:.52rem;font-weight:750;letter-spacing:.14em;color:var(--bright)}.big-mark{display:grid;place-items:center;height:105px;width:105px;border:1px solid rgba(145,187,231,.5);border-radius:13px;background:rgba(6,20,39,.65);font-size:2.3rem;font-weight:750;color:#b7d7ff}.lead-links,.source-links{display:flex;gap:1rem;flex-wrap:wrap;margin:.65rem 0;font-size:.7rem;font-weight:720}.project-prose{max-width:1100px}.md-typeset .project-prose h2{font-size:1.28rem;font-weight:760;letter-spacing:-.02em;margin:1.05rem 0 .6rem;padding-bottom:.35rem;border-bottom:1px solid var(--line)}.project-prose>p,.project-prose>ul{max-width:900px;font-size:.73rem;line-height:1.57;color:var(--muted)}.paper-feature{border-left:3px solid var(--electric);background:var(--surface);border-radius:0 8px 8px 0;padding:.7rem 1rem;max-width:950px}.paper-tag{display:block;font-size:.54rem;font-weight:740;letter-spacing:.13em;color:var(--bright)}.paper-feature strong{display:block;font-size:1rem;margin:.25rem 0}.paper-feature p{font-size:.69rem;color:var(--muted)}.paper-row{display:grid;grid-template-columns:28px 1fr;gap:.5rem;border-bottom:1px solid var(--line);padding:.39rem .15rem}.paper-row span{font-size:.57rem;font-weight:780;color:var(--bright)}.paper-row p{font-size:.69rem;margin:0;color:var(--text)}.next-project{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:1rem 0;margin-top:1.4rem;font-size:.65rem;font-weight:720}.backlink{font-size:.67rem}.work-summary{border-top:1px solid var(--line);padding:.9rem .12rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.work-summary h2{font-size:1.3rem;margin:.2rem 0}.work-summary p:not(.overline){font-size:.7rem;color:var(--muted);max-width:800px}.work-summary.employer{background:var(--surface)}.md-typeset .pill{border:1px solid var(--line);border-radius:7px;padding:.42rem .7rem;font-size:.64rem;font-weight:750;white-space:nowrap}.ownership{background:rgba(211,159,86,.12);color:var(--gold);border:1px solid var(--gold);border-radius:4px;font-size:.51rem;padding:.15rem .25rem}.heritage-table{overflow-x:auto}.heritage-table table{font-size:.71rem!important}.heritage-table th,.heritage-table td{padding:.45rem!important}.history-research{border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:.9rem 1rem}.profile-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.profile-columns section{padding:.9rem 1rem;background:var(--surface);border:1px solid var(--line);border-radius:9px}.md-typeset .profile-columns h2{font-size:1.25rem;margin:.3rem 0}.profile-columns p:not(.overline){font-size:.7rem;color:var(--muted)}.profile-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:1rem 0}.profile-facts>div{background:var(--surface);border:1px solid var(--line);padding:.8rem;border-radius:8px;display:flex;flex-direction:column}.profile-facts span{font-size:1.35rem;font-weight:790;color:var(--bright)}.profile-facts strong{font-size:.69rem}.profile-facts small{font-size:.57rem;color:var(--muted)}
@media(max-width:950px){.showcase-hero{grid-template-columns:1fr .84fr}.md-typeset .showcase-hero h1{font-size:clamp(1.7rem,3vw,2.3rem)}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-art{height:280px}.hero-art img{width:100%;max-width:400px}}
@media(max-width:680px){.showcase-hero{grid-template-columns:1fr;padding:1.1rem .98rem .7rem;gap:0;border-radius:9px;margin:.45rem 0 .8rem}.showcase-hero .hero-copy{grid-row:1}.showcase-hero h1{font-size:clamp(1.7rem,6vw,2.4rem)!important}.md-typeset .hero-description{font-size:.73rem}.hero-metrics{flex-wrap:wrap}.hero-metrics>div{padding-right:.6rem;margin-right:.6rem}.hero-art{grid-row:2;height:185px;margin-top:-.15rem;overflow:visible}.hero-art img{width:260px;height:100%;max-width:100%;object-fit:contain}.portfolio-grid{grid-template-columns:1fr 1fr;gap:.55rem}.portfolio-card-visual{height:95px}.portfolio-card-body{padding:.65rem .7rem}.md-typeset .portfolio-card h3{font-size:.98rem}.card-eyebrow{font-size:.43rem}.md-typeset .portfolio-card p{font-size:.59rem}.portfolio-card-foot{font-size:.5rem}.section-heading{align-items:start}.section-heading h2{font-size:1.3rem!important}.section-heading .all-projects{font-size:.58rem}.compact-bottom{align-items:flex-start;flex-direction:column;gap:.55rem}.lead-columns{grid-template-columns:1fr}.big-mark{display:none}.project-art{opacity:.21;width:80%}.project-lead{padding:.8rem}.profile-columns{grid-template-columns:1fr}.profile-facts{grid-template-columns:1fr 1fr}.md-content__inner{padding-left:.6rem;padding-right:.6rem}}
@media(max-width:435px){.portfolio-grid{grid-template-columns:1fr}.portfolio-card-visual{height:117px}.portfolio-card-body{padding:.7rem .85rem}.portfolio-card-foot{font-size:.55rem}.section-heading{gap:.5rem}.hero-metrics span{font-size:.48rem}.hero-metrics b{font-size:.68rem}.hero-art{height:155px}.hero-art img{width:220px}.profile-facts{grid-template-columns:1fr}.compact-bottom strong{font-size:.69rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* V4: keep the pictorial hero dark and legible independent of palette. */
.showcase-hero{background:radial-gradient(circle at 72% 51%,rgba(28,92,174,.28),transparent 42%),linear-gradient(112deg,#061525 0%,#0b2340 100%);border-color:#294562;--text:#f0f6ff;--muted:#b7cbe0;--bright:#89c5ff;--electric:#69a8ff;--line:#2b4561}
.showcase-hero .hero-art img{max-height:295px}
@media(max-width:680px){.showcase-hero .hero-art img{max-height:185px}}
@media(max-width:435px){.showcase-hero .hero-art img{max-height:155px}}
@media(max-width:960px) and (min-width:681px){.showcase-hero{gap:.1rem}.showcase-hero .hero-copy{min-width:0}}
.md-typeset .showcase-hero .hero-description,.md-typeset .showcase-hero .hero-intro{color:#c3d5e8}
.md-typeset .showcase-hero h1{color:#f0f6ff}
.md-typeset .showcase-hero h1 span{color:#7fb9ff}
.md-typeset .showcase-hero .hero-intro strong{color:#a5d9ff}
.md-typeset .showcase-hero .hero-metrics b{color:#f0f6ff}
.md-typeset .showcase-hero .hero-metrics span{color:#afc5df}
/* Ensure a responsive single-source-of-truth frame, with no overflow. */
.home-shell,.portfolio-grid,.showcase-hero,.portfolio-card{box-sizing:border-box}
.md-content__inner{min-width:0}
@media(max-width:600px){.hero-metrics>div{max-width:32%}.hero-metrics{justify-content:space-between}.hero-metrics>div{padding-right:.35rem;margin-right:.35rem}.hero-metrics>div:last-child{margin-right:0}}
@media(max-width:435px){
  .showcase-hero .hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .md-typeset .showcase-hero .action-primary,.md-typeset .showcase-hero .action-outline{min-width:0;padding:.52rem .55rem;gap:.25rem;font-size:.57rem;white-space:nowrap}
  .showcase-hero .hero-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:.2rem}
  .showcase-hero .hero-metrics>div{min-width:0;max-width:none!important;padding:0 .28rem 0 0;margin:0 .2rem 0 0}
  .showcase-hero .hero-metrics b{font-size:.62rem}
  .showcase-hero .hero-metrics span{overflow-wrap:anywhere}
}
