﻿:root{--bg:#09111f;--bg2:#0d1728;--surface:#111d31;--surface2:#17253b;--text:#f5f7fb;--muted:#9eabc0;--line:rgba(255,255,255,.12);--accent:#73d7c7;--accent2:#9f8cff;--ink:#09111f;--shadow:0 28px 80px rgba(0,0,0,.28);--radius:24px;--font-display:"Manrope",sans-serif;--font-body:"DM Sans",sans-serif;color-scheme:dark}
html[data-theme=ivory]{--bg:#f5f0e7;--bg2:#ece4d7;--surface:#fffaf1;--surface2:#e8ddcc;--text:#20221f;--muted:#6c6a62;--line:rgba(25,28,23,.15);--accent:#087f72;--accent2:#b05b41;--ink:#fffaf1;--shadow:0 25px 70px rgba(72,54,34,.14);color-scheme:light}
html[data-theme=ocean]{--bg:#041c2c;--bg2:#06283d;--surface:#08354c;--surface2:#0a435b;--text:#effcff;--muted:#9fc1ca;--line:rgba(177,235,242,.16);--accent:#42d9d0;--accent2:#5f9cff;--ink:#041c2c}
html[data-theme=graphite]{--bg:#151719;--bg2:#1d2023;--surface:#23272a;--surface2:#2e3337;--text:#f1f2ed;--muted:#a9aca6;--line:rgba(255,255,255,.13);--accent:#d6e86d;--accent2:#9aa4ff;--ink:#151719}
html[data-theme=emerald]{--bg:#071b16;--bg2:#0b2920;--surface:#10372b;--surface2:#164838;--text:#f2fbf6;--muted:#a0c4b2;--line:rgba(200,255,224,.14);--accent:#62e6a5;--accent2:#f2c66d;--ink:#071b16}
html[data-theme=burgundy]{--bg:#241015;--bg2:#34151d;--surface:#431c26;--surface2:#572632;--text:#fff4ef;--muted:#d1aaa7;--line:rgba(255,232,220,.14);--accent:#ff9d83;--accent2:#e1c276;--ink:#241015}
html[data-theme=arctic]{--bg:#eaf5fb;--bg2:#dcecf5;--surface:#f9fdff;--surface2:#cfe4ef;--text:#102635;--muted:#5e7482;--line:rgba(16,38,53,.14);--accent:#087fb0;--accent2:#6f59c7;--ink:#f9fdff;--shadow:0 25px 70px rgba(21,65,90,.14);color-scheme:light}
html[data-theme=violet]{--bg:#171126;--bg2:#241a3b;--surface:#30234d;--surface2:#402d64;--text:#fbf7ff;--muted:#bcaed1;--line:rgba(241,225,255,.14);--accent:#c19bff;--accent2:#61e4cf;--ink:#171126}
html[data-theme=sandstone]{--bg:#30261f;--bg2:#413329;--surface:#4e3e32;--surface2:#614d3e;--text:#fff8ed;--muted:#cdbba9;--line:rgba(255,244,222,.14);--accent:#f4b76f;--accent2:#76cfc0;--ink:#30261f}
html[data-theme=mono]{--bg:#000;--bg2:#0b0b0b;--surface:#131313;--surface2:#202020;--text:#fff;--muted:#c3c3c3;--line:#555;--accent:#fff;--accent2:#fff;--ink:#000;--shadow:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.65;overflow-x:hidden;transition:background .25s,color .25s}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 85% 0,var(--accent),transparent 28%);opacity:.06;z-index:-1}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input{font:inherit}.shell{width:min(1180px,calc(100% - 48px));margin-inline:auto}.skip-link{position:fixed;left:1rem;top:-5rem;background:var(--accent);color:var(--ink);padding:.75rem 1rem;z-index:1000}.skip-link:focus{top:1rem}.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;width:min(1380px,calc(100% - 48px));margin:auto;position:relative;z-index:50}.brand{display:flex;align-items:center;gap:12px;font-family:var(--font-display);font-weight:700;line-height:1.1}.brand small{display:block;font-family:var(--font-body);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:5px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:13px;background:var(--surface)}.site-nav{display:flex;align-items:center;gap:6px}.site-nav a{padding:10px 14px;border-radius:999px;font-size:14px;color:var(--muted);transition:.2s}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--text);background:var(--surface)}.menu-toggle{display:none;background:none;border:1px solid var(--line);color:var(--text);border-radius:999px;padding:8px 14px}.kicker,.section-index{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:700;color:var(--muted)}.kicker{display:flex;align-items:center;gap:10px}.kicker span{width:30px;height:1px;background:var(--accent)}h1,h2,h3{font-family:var(--font-display);line-height:1.08;margin:0}h1 em,h2 em{font-style:normal;color:var(--accent)}.hero{min-height:calc(100vh - 88px);display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:70px;padding-block:72px 100px}.hero h1{font-size:clamp(48px,6.6vw,96px);letter-spacing:-.06em;max-width:900px}.hero-lede{color:var(--muted);font-size:20px;max-width:720px;margin:28px 0 34px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 19px;border-radius:999px;font-weight:700;font-size:14px;border:1px solid var(--line);transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--accent);color:var(--ink);border-color:transparent}.button.quiet{background:var(--surface)}.button.light{background:#fff;color:#111;border-color:#fff}.hero-visual{min-height:520px;display:grid;place-items:center;position:relative}.orbital{width:min(430px,80vw);aspect-ratio:1;border:1px solid var(--line);border-radius:50%;position:relative;display:grid;place-items:center;background:radial-gradient(circle,var(--surface),transparent 65%)}.orbital:before,.orbital:after{content:"";position:absolute;border:1px solid var(--line);border-radius:50%;inset:14%;transform:rotate(28deg)}.orbital:after{inset:31%;transform:rotate(-20deg)}.core{width:135px;height:135px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--ink);font:800 36px var(--font-display);box-shadow:0 0 80px color-mix(in srgb,var(--accent),transparent 55%)}.core small{font:600 10px var(--font-body);text-transform:uppercase;letter-spacing:.1em;margin-top:-34px}.orbit{position:absolute;width:64px;height:64px;border-radius:50%;background:var(--surface2);border:1px solid var(--line);display:grid;place-items:center;font-size:12px}.o1{left:-8px;top:46%}.o2{right:7%;top:4%}.o3{right:-5%;bottom:17%;width:74px;height:74px}.hero-note{position:absolute;right:0;bottom:10px;background:color-mix(in srgb,var(--surface),transparent 4%);border:1px solid var(--line);padding:16px 18px;border-radius:16px;max-width:260px;box-shadow:var(--shadow)}.hero-note strong,.hero-note span{display:block}.hero-note span{color:var(--muted);font-size:13px;margin-top:4px}.signal-strip{border-block:1px solid var(--line);background:var(--bg2)}.signal-strip .shell{display:grid;grid-template-columns:repeat(4,1fr);padding-block:24px}.signal-strip span{color:var(--muted);font-size:13px;border-right:1px solid var(--line);padding-left:28px}.signal-strip span:first-child{padding-left:0}.signal-strip span:last-child{border:0}.signal-strip strong{color:var(--text);display:block;font:700 19px var(--font-display)}.section{padding-block:130px}.intro-grid,.about-grid,.two-column,.code-principles,.conference-block{display:grid;grid-template-columns:.85fr 1.15fr;gap:100px}.section h2{font-size:clamp(38px,5vw,68px);letter-spacing:-.045em}.intro-grid>div:last-child>p,.prose-large p{font-size:21px;color:var(--muted);margin-top:0}.pill-row,.skill-cloud{display:flex;flex-wrap:wrap;gap:9px;margin-top:30px}.pill-row span,.skill-cloud span{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 13px;font-size:13px}.section-heading{display:grid;grid-template-columns:1fr auto;align-items:end;margin-bottom:50px}.section-heading h2{grid-row:2}.section-heading a{grid-column:2;grid-row:2;color:var(--accent);font-weight:700}.project-row{display:grid;grid-template-columns:70px 1fr 180px 30px;gap:28px;align-items:center;padding:28px 0;border-top:1px solid var(--line);position:relative}.project-row:last-child{border-bottom:1px solid var(--line)}.project-row:before{content:"";position:absolute;inset:0;background:var(--accent);opacity:0;transition:.25s;z-index:-1}.project-row:hover:before{opacity:.07}.project-number{font:700 13px var(--font-display);color:var(--accent)}.project-row small,.project-row strong,.project-row em{display:block}.project-row small{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-size:11px}.project-row strong{font:700 clamp(20px,2.3vw,31px) var(--font-display);margin:5px 0}.project-row em{font-style:normal;color:var(--muted);font-size:14px}.project-row img{width:180px;height:102px;object-fit:cover;border-radius:12px;filter:saturate(.8)}.project-row>i{font-style:normal;font-size:24px}.publication-tease{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}.tease-list>a:not(.text-link){display:grid;grid-template-columns:60px 1fr;gap:10px;padding:22px 0;border-top:1px solid var(--line)}.tease-list>a span{color:var(--accent);font-size:13px}.tease-list>a strong{font:600 19px var(--font-display)}.tease-list>a em{grid-column:2;color:var(--muted);font-style:normal;font-size:13px}.text-link{display:inline-block;color:var(--accent);font-weight:700;margin-top:22px}.contact-band{background:var(--accent);color:var(--ink);padding-block:100px}.contact-band .shell{display:grid;grid-template-columns:1fr auto;align-items:end}.contact-band p{grid-column:1/-1;text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:700}.contact-band h2{font-size:clamp(46px,7vw,90px);letter-spacing:-.055em}.site-footer{width:min(1380px,calc(100% - 48px));margin:auto;padding:70px 0 36px;display:grid;grid-template-columns:1fr auto;gap:36px;border-top:1px solid var(--line)}.site-footer>div:first-child{display:flex;gap:14px;align-items:center}.site-footer p{color:var(--muted);font-size:13px}.footer-links{display:flex;gap:20px;align-items:center;font-size:14px}.footer-links a:hover{color:var(--accent)}.fineprint{grid-column:1/-1;border-top:1px solid var(--line);padding-top:22px}.page-hero{padding:120px 0 95px;max-width:1180px}.page-hero h1{font-size:clamp(54px,8vw,105px);letter-spacing:-.06em;max-width:1050px}.page-hero>p:last-of-type{font-size:21px;color:var(--muted);max-width:720px;margin:28px 0}.profile-links{display:flex;gap:10px}.profile-links a{border:1px solid var(--line);border-radius:999px;padding:9px 14px;font-size:13px}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:96px 34px;padding-bottom:130px}.project-card:nth-child(3n){grid-column:1/-1}.project-card:nth-child(3n) .card-image{aspect-ratio:2.35/1}.card-image{display:block;aspect-ratio:1.45/1;overflow:hidden;border-radius:var(--radius);position:relative;background:var(--surface)}.card-image:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(0,0,0,.65))}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.card-image span{position:absolute;bottom:20px;right:20px;z-index:2;background:#fff;color:#111;padding:9px 13px;border-radius:999px;font-weight:700;font-size:12px}.project-card:hover img{transform:scale(1.025)}.card-copy{padding:23px 7px}.card-copy small{color:var(--accent);text-transform:uppercase;letter-spacing:.11em}.card-copy h2{font-size:clamp(26px,3vw,43px);margin:10px 0}.card-copy p{color:var(--muted);max-width:700px}.card-copy>div{display:flex;gap:8px;flex-wrap:wrap}.card-copy>div span{border:1px solid var(--line);border-radius:99px;padding:6px 10px;font-size:11px}.project-hero{padding:100px 0;display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}.project-hero h1{font-size:clamp(46px,6.7vw,88px);letter-spacing:-.055em}.project-hero>div>p:not(.kicker){font-size:19px;color:var(--muted);max-width:700px}.back-link{display:inline-block;color:var(--muted);font-size:13px;margin-bottom:54px}.project-hero-image{width:100%;max-height:570px;object-fit:cover;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.metric-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.metric-row span{padding:7px 11px;border:1px solid var(--line);border-radius:99px;font-size:11px}.article-layout{display:grid;grid-template-columns:220px minmax(0,780px);gap:80px;justify-content:center;padding-bottom:120px}.article-rail>div{position:sticky;top:30px}.article-rail>div>span{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}#toc{margin-top:14px;display:grid;gap:7px}#toc a{font-size:12px;color:var(--muted);line-height:1.35;padding-left:10px;border-left:1px solid var(--line)}#toc a:hover,#toc a.active{color:var(--accent);border-color:var(--accent)}.project-body{font-size:17px}.project-body>h2{font-size:clamp(34px,4vw,52px);letter-spacing:-.04em;margin:110px 0 24px;scroll-margin-top:24px}.project-body>h2:first-of-type{margin-top:0}.project-body h3{font-size:27px;margin:55px 0 20px}.project-body p{color:color-mix(in srgb,var(--text),var(--muted) 28%);margin:0 0 23px}.project-body strong{color:var(--text)}.project-body ul,.project-body ol{color:var(--muted)}.research-figure{margin:68px calc((780px - min(1000px,90vw))/2) 18px;width:min(1000px,90vw);background:#fff;border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}.research-figure button{border:0;background:#fff;padding:0;width:100%;cursor:zoom-in}.research-figure img{width:100%;height:auto}.research-figure+p,.research-figure+p>em{font-size:13px!important;color:var(--muted)!important;line-height:1.5}.content-notice,.content-warning{background:color-mix(in srgb,var(--accent2),transparent 87%);border:1px solid color-mix(in srgb,var(--accent2),transparent 55%);padding:18px 20px;border-radius:14px;margin-bottom:48px;color:var(--muted)}.content-notice strong{display:block;color:var(--text);margin-bottom:4px}.next-project{border-top:1px solid var(--line);padding:70px 0 120px}.next-project p{color:var(--muted);font-size:13px}.next-project a{font:700 clamp(30px,4vw,54px) var(--font-display)}.next-project a span{color:var(--accent)}.bibliography{padding-bottom:120px}.publication{display:grid;grid-template-columns:100px 1fr;gap:25px;padding:34px 0;border-top:1px solid var(--line)}.publication:last-child{border-bottom:1px solid var(--line)}.pub-year{font:700 15px var(--font-display);color:var(--accent)}.publication p{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0 0 7px}.publication h2{font-size:clamp(23px,3vw,36px);max-width:900px}.publication>div>span{display:block;color:var(--muted);margin:9px 0}.publication .doi{font-size:12px;color:var(--accent)}.timeline-section{background:var(--bg2);padding:100px 0}.timeline{display:grid;grid-template-columns:repeat(3,1fr);margin-top:40px}.timeline article{padding:28px;border-left:1px solid var(--line)}.timeline span{color:var(--accent);font-size:12px}.timeline h3{font-size:24px;margin:10px 0}.timeline p{color:var(--muted);font-size:14px}.clean-list{list-style:none;padding:0;margin:0}.clean-list li{padding:16px 0;border-top:1px solid var(--line);color:var(--muted)}.clean-list strong{color:var(--accent);display:inline-block;width:70px}.principle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.principle-grid article,.repo-card{padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:18px}.principle-grid span,.repo-card small{color:var(--accent);font-size:12px}.principle-grid h3{font-size:19px;margin:35px 0 10px}.principle-grid p,.repo-card p{color:var(--muted);font-size:14px}.repo-showcase{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-top:0}.repo-card h2{font-size:32px;margin:45px 0 12px}.repo-card a{color:var(--accent);font-size:13px;font-weight:700}.github-note{padding:0 0 130px}.github-note p{border:1px solid var(--line);border-radius:16px;padding:20px;color:var(--muted)}.github-note strong{color:var(--text);display:block}.github-note code{color:var(--accent)}.theme-dock{position:fixed;left:18px;bottom:18px;z-index:200}.theme-button{border:1px solid var(--line);background:color-mix(in srgb,var(--surface),transparent 5%);backdrop-filter:blur(15px);color:var(--text);border-radius:999px;padding:9px 13px;display:flex;gap:8px;align-items:center;font-size:11px;box-shadow:var(--shadow)}.theme-button span{width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2))}.theme-panel{position:absolute;bottom:48px;left:0;width:255px;background:color-mix(in srgb,var(--surface),transparent 3%);backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:var(--shadow)}.theme-panel p{margin:0 0 10px;font-size:11px;text-transform:uppercase;color:var(--muted);letter-spacing:.1em}.theme-grid{display:grid;gap:3px}.theme-grid button{border:0;background:transparent;color:var(--text);text-align:left;padding:7px;border-radius:9px;font-size:12px}.theme-grid button:hover{background:var(--surface2)}.theme-grid i{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:8px;background:var(--accent)}.lightbox{width:min(96vw,1400px);height:min(94vh,1000px);border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--text);padding:50px 14px 14px}.lightbox::backdrop{background:rgba(0,0,0,.88);backdrop-filter:blur(8px)}.lightbox img{width:100%;height:100%;object-fit:contain}.lightbox>button{position:absolute;right:14px;top:12px;border:1px solid var(--line);background:var(--surface2);color:var(--text);border-radius:99px;padding:6px 11px;font-size:12px}.lightbox p{display:none}.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:none}
/* Private visitor map */
.page-visitors{background:#06111a;overflow:hidden}.page-visitors main{min-height:100vh}.page-visitors .theme-dock,.page-visitors .lightbox{display:none}#visitor-map{position:fixed;inset:0;background:#091723;z-index:0}.visitor-shade{position:fixed;inset:0;background:linear-gradient(90deg,rgba(4,10,16,.96) 0%,rgba(4,10,16,.82) 47%,rgba(4,10,16,.22));z-index:1;pointer-events:none}.visitor-shell{position:relative;z-index:2;width:min(1500px,calc(100% - 48px));margin:auto;min-height:100vh;padding:28px 0 60px}.visitor-shell>header{display:flex;justify-content:space-between;align-items:center}.visitor-shell>header button,.visitor-title button,#visitor-refresh{border:1px solid rgba(255,255,255,.2);background:rgba(10,21,32,.82);color:#fff;padding:9px 13px;border-radius:99px}.visitor-login{margin-top:15vh;max-width:620px;background:rgba(8,18,28,.82);backdrop-filter:blur(18px);padding:45px;border:1px solid rgba(255,255,255,.14);border-radius:24px;box-shadow:0 30px 90px #000}.visitor-login h1,.visitor-title h1{font-size:clamp(50px,7vw,90px);letter-spacing:-.06em}.visitor-login>p{color:#9eabc0}.visitor-login label{display:block;text-transform:uppercase;font-size:10px;letter-spacing:.14em;margin:30px 0 7px}.visitor-login form>div{display:flex}.visitor-login input{flex:1;min-width:0;background:#101e2b;border:1px solid rgba(255,255,255,.16);color:#fff;padding:13px;border-radius:10px 0 0 10px}.visitor-login form button{border:0;background:#73d7c7;color:#07131b;padding:0 18px;font-weight:700;border-radius:0 10px 10px 0}.form-message{color:#ff9e94;font-size:13px}.visitor-dashboard{margin-top:60px}.visitor-title{display:flex;justify-content:space-between;align-items:end;max-width:1080px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:40px 0}.stats-grid article,.visitor-panels>section{background:rgba(8,18,28,.85);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.13);border-radius:18px;padding:20px}.stats-grid span{display:block;color:#9eabc0;font-size:11px;text-transform:uppercase;letter-spacing:.09em}.stats-grid strong{display:block;font:700 29px var(--font-display);margin-top:8px}.visitor-panels{display:grid;grid-template-columns:1.5fr .5fr;gap:12px}.visitor-panels h2{font-size:17px;margin-bottom:16px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:left;padding:11px;border-top:1px solid rgba(255,255,255,.1);white-space:nowrap}th{color:#9eabc0}.country-list>div{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid rgba(255,255,255,.1);font-size:13px}.privacy-note{font-size:11px;color:#9eabc0}.leaflet-tile{filter:saturate(.25) brightness(.55) hue-rotate(155deg)}.leaflet-control-container{opacity:.45}
@media (max-width:900px){.site-header{height:74px}.menu-toggle{display:block}.site-nav{display:none;position:absolute;right:0;top:65px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:8px;min-width:180px;box-shadow:var(--shadow)}.site-nav.open{display:grid}.hero{grid-template-columns:1fr;min-height:auto}.hero-visual{min-height:420px}.signal-strip .shell{grid-template-columns:repeat(2,1fr);gap:20px}.signal-strip span{border:0;padding:0}.intro-grid,.about-grid,.two-column,.code-principles,.conference-block,.publication-tease{grid-template-columns:1fr;gap:40px}.section-heading{grid-template-columns:1fr}.section-heading a{grid-column:1;grid-row:3;margin-top:20px}.project-grid,.repo-showcase{grid-template-columns:1fr}.project-card:nth-child(3n){grid-column:auto}.project-card:nth-child(3n) .card-image{aspect-ratio:1.45/1}.project-hero{grid-template-columns:1fr}.project-hero-image{max-height:450px}.article-layout{grid-template-columns:1fr}.article-rail{display:none}.research-figure{margin-left:0;width:100%}.timeline{grid-template-columns:1fr}.principle-grid{grid-template-columns:1fr}.contact-band .shell{grid-template-columns:1fr}.contact-band .button{justify-self:start;margin-top:25px}.site-footer{grid-template-columns:1fr}.footer-links{flex-wrap:wrap}.stats-grid{grid-template-columns:repeat(2,1fr)}.visitor-panels{grid-template-columns:1fr}}
@media (max-width:620px){.shell,.site-header,.site-footer,.visitor-shell{width:min(100% - 28px,1180px)}body{font-size:16px}.hero{padding-top:45px}.hero h1,.page-hero h1{font-size:45px}.hero-visual{min-height:340px}.orbital{width:280px}.core{width:100px;height:100px;font-size:28px}.hero-note{max-width:220px}.signal-strip .shell{grid-template-columns:1fr 1fr}.section{padding-block:85px}.project-row{grid-template-columns:38px 1fr 24px}.project-row img{display:none}.project-grid{gap:45px}.page-hero{padding:75px 0 65px}.project-hero{padding:65px 0}.project-hero h1{font-size:43px}.article-layout{padding-bottom:80px}.project-body>h2{margin-top:80px}.publication{grid-template-columns:55px 1fr}.contact-band{padding-block:75px}.footer-links{display:grid;grid-template-columns:1fr 1fr}.theme-dock{left:10px;bottom:10px}.stats-grid{grid-template-columns:1fr}.visitor-login{padding:28px;margin-top:10vh}.visitor-login form>div{display:grid}.visitor-login input,.visitor-login form button{border-radius:10px}.visitor-login form button{padding:12px;margin-top:8px}.visitor-title{align-items:start;gap:20px}.visitor-title h1{font-size:47px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.project-row img,.card-image img{transition:none}}
h1,h2,h3{overflow-wrap:anywhere}
@media (max-width:620px){.hero h1,.page-hero h1{font-size:42px;letter-spacing:-.05em}.project-hero h1{font-size:41px}.visitor-title h1{font-size:44px}}

/* Resume-led home */
.cv-hero{min-height:calc(100vh - 88px);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:80px;align-items:center;padding-block:80px 110px}.availability{display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);font-size:11px;font-weight:700}.availability span{width:28px;height:1px;background:var(--accent)}.cv-hero h1{font-size:clamp(76px,10.5vw,155px);letter-spacing:-.075em;line-height:.84;margin:30px 0 35px}.cv-title{font:700 clamp(16px,2vw,24px)/1.4 var(--font-display);max-width:850px}.cv-title i{color:var(--accent);font-style:normal;padding-inline:6px}.cv-intro{max-width:720px;color:var(--muted);font-size:20px}.cv-identity{border-left:1px solid var(--line);padding-left:60px}.monogram{aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),var(--accent2));color:var(--ink);font:800 clamp(60px,8vw,110px) var(--font-display);position:relative}.monogram span{position:absolute;bottom:21%;font:700 9px/1.4 var(--font-body);text-transform:uppercase;letter-spacing:.13em;text-align:center}.identity-links{display:grid;margin-top:30px}.identity-links a{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}.identity-links a:hover{color:var(--accent)}.impact-bar{background:var(--accent);color:var(--ink)}.impact-bar>.shell{display:grid;grid-template-columns:repeat(4,1fr);position:relative}.impact-bar div{padding:34px;border-right:1px solid color-mix(in srgb,var(--ink),transparent 78%)}.impact-bar div:first-child{padding-left:0}.impact-bar strong,.impact-bar span{display:block}.impact-bar strong{font:800 43px var(--font-display)}.impact-bar span{font-size:12px;font-weight:700}.impact-bar p{position:absolute;right:0;bottom:-30px;color:var(--muted);font-size:10px}.cv-bio,.cv-highlights{display:grid;grid-template-columns:.82fr 1.18fr;gap:100px}.prose-large a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.ev-feature{padding-block:130px;background:var(--bg2);border-block:1px solid var(--line)}.ev-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.ev-grid h2{font-size:clamp(65px,9vw,130px);letter-spacing:-.065em;margin:16px 0}.feature-label{display:inline-block;border:1px solid var(--line);border-radius:99px;padding:7px 11px;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.ev-lede{font:600 24px/1.35 var(--font-display)}.ev-grid>div>p:not(.section-index):not(.ev-lede){color:var(--muted)}.ev-visual{min-height:520px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;position:relative;background:radial-gradient(circle,var(--surface2),transparent 68%)}.barcode-lines{display:flex;height:260px;align-items:stretch;gap:10px}.barcode-lines i{display:block;width:8px;background:var(--accent);border-radius:4px}.barcode-lines i:nth-child(2n){height:65%;align-self:center;background:var(--accent2)}.barcode-lines i:nth-child(3n){width:20px;height:82%;align-self:center}.ev-visual>span{position:absolute;text-transform:uppercase;letter-spacing:.12em;font-size:10px}.ev-visual>span:nth-of-type(1){left:10%;bottom:23%}.ev-visual>span:nth-of-type(2){right:7%;top:22%}.ev-visual>b{position:absolute;right:17%;top:35%;color:var(--accent);font-size:42px}.lead-publication{display:grid;grid-template-columns:80px 1fr 30px;gap:25px;padding:31px 0;border-top:1px solid var(--line);align-items:start}.lead-publication:last-child{border-bottom:1px solid var(--line)}.lead-publication>span{color:var(--accent);font:700 14px var(--font-display)}.lead-publication small{color:var(--muted);text-transform:uppercase;letter-spacing:.11em;font-size:10px}.lead-publication h3{font-size:clamp(23px,3vw,37px);margin:7px 0 12px;max-width:950px}.lead-publication .doi{color:var(--accent);font-size:11px}.lead-publication>i{font-style:normal;font-size:21px}.research-field-section{padding-block:120px;background:var(--surface)}.research-field-section>.shell{display:grid;grid-template-columns:1fr 1fr;gap:80px}.research-field-section h2{font-size:clamp(42px,6vw,76px);letter-spacing:-.05em}.research-fields{display:grid;grid-template-columns:1fr 1fr}.research-fields span{padding:18px 5px;border-bottom:1px solid var(--line);font:600 17px var(--font-display)}.research-fields span:before{content:"+";color:var(--accent);margin-right:12px}.highlight-list article{display:grid;grid-template-columns:70px 1fr;column-gap:20px;padding:22px 0;border-top:1px solid var(--line)}.highlight-list article>span{grid-row:1/3;color:var(--accent);font-size:12px}.highlight-list h3{font-size:23px}.highlight-list p{color:var(--muted);margin:7px 0;font-size:14px}.contact-actions{grid-column:1/-1;display:flex;gap:10px;margin-top:34px}.button.outline-dark{border-color:color-mix(in srgb,var(--ink),transparent 55%);color:var(--ink)}
/* Public-safe resume */
.resume-hero{padding:105px 0 70px;display:grid;grid-template-columns:1fr auto;gap:50px;border-bottom:1px solid var(--line)}.resume-hero h1{font-size:clamp(58px,9vw,120px);letter-spacing:-.065em}.resume-hero>div>p:last-child{font:600 20px var(--font-display);color:var(--muted)}.resume-contact{display:grid;align-content:end;gap:8px;text-align:right;font-size:12px;color:var(--muted)}.resume-contact a:hover{color:var(--accent)}.resume-contact button{margin-top:10px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:99px;padding:8px 12px}.resume-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:80px;padding-block:80px 130px}.resume-side{border-right:1px solid var(--line);padding-right:45px}.resume-side section{margin-bottom:48px}.resume-side h2{font-size:14px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:15px}.resume-side p,.resume-side li{color:var(--muted);font-size:13px}.resume-side ul{padding-left:18px}.resume-metrics{display:grid;gap:10px}.resume-metrics span{color:var(--muted);font-size:12px}.resume-metrics strong{display:inline-block;width:50px;color:var(--accent);font:800 26px var(--font-display)}.resume-side small{display:block;color:var(--muted);font-size:9px;margin-top:12px}.resume-main>section{margin-bottom:75px}.resume-summary{font-size:23px;color:var(--muted);max-width:800px}.resume-item,.resume-pub{display:grid;grid-template-columns:130px 1fr;gap:25px;padding:22px 0;border-top:1px solid var(--line)}.resume-item>span,.resume-pub>span{color:var(--accent);font-size:11px}.resume-item h2,.resume-pub h2{font-size:23px}.resume-item p,.resume-pub p{color:var(--muted);margin:6px 0;font-size:13px}
@media (max-width:900px){.cv-hero{grid-template-columns:1fr;padding-top:60px}.cv-identity{border-left:0;padding-left:0;display:grid;grid-template-columns:280px 1fr;gap:40px;align-items:center}.impact-bar>.shell{grid-template-columns:repeat(2,1fr)}.impact-bar div:nth-child(2){border-right:0}.cv-bio,.cv-highlights,.ev-grid,.research-field-section>.shell{grid-template-columns:1fr}.ev-visual{min-height:430px}.resume-layout{grid-template-columns:1fr}.resume-side{border-right:0;border-bottom:1px solid var(--line);padding:0 0 35px;display:grid;grid-template-columns:1fr 1fr;gap:25px}.resume-hero{grid-template-columns:1fr}.resume-contact{text-align:left}}
@media (max-width:620px){.cv-hero{min-height:auto;gap:55px;padding-bottom:75px}.cv-hero h1{font-size:65px}.cv-title{font-size:17px}.cv-intro{font-size:17px}.cv-identity{grid-template-columns:1fr}.monogram{width:230px;justify-self:center}.impact-bar>.shell{grid-template-columns:1fr 1fr}.impact-bar div{padding:22px 12px}.impact-bar div:first-child{padding-left:12px}.impact-bar div:nth-child(2n){border-right:0}.impact-bar strong{font-size:33px}.impact-bar p{right:12px}.cv-bio,.cv-highlights{grid-template-columns:1fr;gap:40px}.ev-feature{padding-block:85px}.ev-visual{min-height:330px}.barcode-lines{height:180px}.research-field-section>.shell{gap:45px}.research-fields{grid-template-columns:1fr}.lead-publication{grid-template-columns:50px 1fr 18px}.contact-actions{display:grid}.resume-hero{padding-top:70px}.resume-contact{text-align:left}.resume-layout{padding-top:50px}.resume-side{grid-template-columns:1fr}.resume-item,.resume-pub{grid-template-columns:80px 1fr}.resume-summary{font-size:19px}}
@media print{.site-header,.site-footer,.theme-dock,.resume-contact button{display:none!important}body{background:#fff;color:#111}.resume-hero,.resume-layout{width:100%;padding:25px}.resume-side p,.resume-side li,.resume-summary,.resume-item p,.resume-pub p{color:#444}.resume-layout{grid-template-columns:240px 1fr;gap:35px}.resume-side{border-right:1px solid #ccc;border-bottom:0}.resume-main>section{break-inside:avoid;margin-bottom:35px}}

/* Keep the resume hero intrinsically responsive on narrow viewports. */
.cv-hero>*{min-width:0}
@media (max-width:620px){
  .cv-hero h1{font-size:clamp(48px,17vw,65px)}
  .cv-hero .hero-actions{display:grid;grid-template-columns:1fr;width:100%}
  .cv-hero .hero-actions .button{width:100%}
  .cv-identity{max-width:100%}
  .identity-links,.identity-links a{min-width:0}
  .monogram{width:min(230px,70vw)}
}

/* Data-portfolio direction */
.data-hero{padding:95px 0 65px;border-bottom:1px solid var(--line)}.data-hero-top{display:flex;justify-content:space-between;font:500 11px/1.4 var(--font-body);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.status-dot:after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-left:9px}.data-hero-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.45fr);gap:80px;align-items:end;margin-top:85px}.data-hero h1{font-size:clamp(54px,7.4vw,104px);line-height:.95;letter-spacing:-.065em;white-space:nowrap}.data-hero-role{font:600 clamp(16px,1.7vw,22px)/1.45 var(--font-display);color:var(--muted);margin:25px 0}.data-hero-role i{font-style:normal;color:var(--accent)}.data-hero aside{border-left:1px solid var(--line);padding-left:30px;color:var(--muted)}.metric-section{display:grid;grid-template-columns:repeat(4,1fr);position:relative;margin-top:28px}.metric-section article{background:var(--surface);border:1px solid var(--line);border-right:0;padding:24px}.metric-section article:last-of-type{border-right:1px solid var(--line)}.metric-section small,.feature-panel>small,.focus-panel>small,.academic-heading small,.academic-page-head>small,.full-cv section>small{font:600 10px var(--font-body);letter-spacing:.11em;color:var(--muted)}.metric-section strong{display:block;font:700 42px var(--font-display);margin-top:15px}.metric-section>p{position:absolute;right:0;bottom:-28px;font-size:10px;color:var(--muted)}.section-compact{padding-block:90px}.dashboard-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}.dashboard-grid>article{background:var(--surface);border:1px solid var(--line);padding:38px}.feature-panel h2{font-size:clamp(35px,4vw,54px);margin:20px 0 12px}.panel-lede{font:600 20px/1.4 var(--font-display);max-width:720px}.feature-panel>p:not(.panel-lede){color:var(--muted)}.focus-panel ul{list-style:none;padding:0;margin:25px 0 0}.focus-panel li{padding:12px 0;border-top:1px solid var(--line);font-size:14px}.academic-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.academic-heading h2{font-size:42px;margin-top:7px}.academic-heading>a{color:var(--accent);font-size:13px}.compact-pubs article,.home-projects>a{display:grid;grid-template-columns:70px 1fr 25px;gap:20px;border-top:1px solid var(--line);padding:25px 0}.compact-pubs article:last-child,.home-projects>a:last-child{border-bottom:1px solid var(--line)}.compact-pubs article>span,.home-projects>a>span{color:var(--accent);font-size:12px}.compact-pubs p{margin:0 0 4px;color:var(--muted);font-size:12px}.compact-pubs h3,.home-projects h3{font-size:20px;line-height:1.3;margin:0}.compact-pubs i,.home-projects i{font-style:normal}.home-projects p{margin:8px 0 0;color:var(--muted);font-size:13px}.contact-panel{background:var(--accent);color:var(--ink);padding:70px 0}.contact-panel h2{font-size:clamp(30px,4vw,54px);margin:12px 0 25px}.contact-panel a{font-weight:700}.academic-page-head{padding:105px 0 70px;border-bottom:1px solid var(--line)}.academic-page-head h1{font-size:clamp(55px,7vw,92px);letter-spacing:-.06em;margin:15px 0}.academic-page-head>p{max-width:780px;color:var(--muted);font-size:18px}.project-catalogue{padding:45px 0 110px}.project-catalogue>article{display:grid;grid-template-columns:340px 1fr;gap:45px;padding:40px 0;border-bottom:1px solid var(--line)}.catalogue-image{position:relative}.catalogue-image img{width:100%;height:215px;object-fit:cover;border:1px solid var(--line)}.catalogue-image span{position:absolute;inset:auto 12px 12px auto;background:var(--surface);padding:8px 11px;font-size:11px}.catalogue-copy h2{font-size:clamp(23px,2.6vw,34px);margin:10px 0}.catalogue-copy>p{color:var(--muted)}.technical-focus{display:grid;grid-template-columns:130px 1fr;gap:16px;border-top:1px solid var(--line);padding-top:15px;font-size:12px}.technical-focus b{font-size:10px;letter-spacing:.08em}.technical-focus span{color:var(--muted)}.academic-bibliography{padding-bottom:110px}.academic-bibliography>article{display:grid;grid-template-columns:75px 1fr;gap:25px;padding:30px 0;border-bottom:1px solid var(--line)}.academic-bibliography>article>span{color:var(--accent);font-weight:700}.academic-bibliography .authors{font-size:13px;color:var(--text);margin:0}.academic-bibliography h2{font-size:24px;margin:8px 0}.academic-bibliography h2+ p{color:var(--muted);margin:0}.pub-meta{display:flex;gap:20px;margin-top:12px;font-size:11px}.pub-meta b{color:var(--accent)}.resume-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.resume-links a,.resume-links button{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:9px 13px;font-size:12px}.full-cv{display:grid;grid-template-columns:270px 1fr;gap:60px;padding:55px 0 120px}.full-cv>aside{border-right:1px solid var(--line);padding-right:35px}.full-cv section{margin-bottom:55px}.full-cv aside dl{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full-cv aside dt{font:700 28px var(--font-display);color:var(--accent)}.full-cv aside dd{margin:0;font-size:11px;color:var(--muted)}.full-cv aside p,.full-cv aside li{font-size:12px;color:var(--muted)}.full-cv aside ul{padding-left:17px}.cv-row,.cv-publication{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:19px 0;border-bottom:1px solid var(--line)}.cv-row>b,.cv-publication>b{font-size:11px;color:var(--accent)}.cv-row h2,.cv-publication h2{font-size:19px;margin:0}.cv-row p,.cv-publication p{font-size:12px;color:var(--muted);margin:4px 0}.cv-list{padding-left:18px}.cv-list li{padding:6px 0;color:var(--muted)}.cv-columns{display:grid;grid-template-columns:1fr 1fr;gap:30px;color:var(--muted);font-size:13px}.project-hero h1{font-size:clamp(40px,5vw,70px);line-height:1.03}.project-body{font-size:16px}.project-body>h2{font-size:clamp(30px,3vw,43px)}
@media(max-width:900px){.data-hero-grid,.dashboard-grid,.full-cv{grid-template-columns:1fr}.data-hero-grid{margin-top:55px;gap:35px}.data-hero aside{border-left:0;padding-left:0}.project-catalogue>article{grid-template-columns:260px 1fr}.full-cv>aside{border-right:0;border-bottom:1px solid var(--line);padding-right:0}.data-hero h1{white-space:normal}}
@media(max-width:620px){.data-hero{padding:60px 0 45px}.data-hero-top{display:grid;gap:8px}.data-hero h1{font-size:48px}.metric-section{grid-template-columns:1fr 1fr}.metric-section article:nth-child(2){border-right:1px solid var(--line)}.section-compact{padding-block:65px}.dashboard-grid>article{padding:25px}.academic-heading{align-items:start;display:grid;gap:12px}.compact-pubs article,.home-projects>a{grid-template-columns:42px 1fr 15px}.project-catalogue>article{grid-template-columns:1fr;gap:24px}.catalogue-image img{height:auto}.technical-focus{grid-template-columns:1fr}.academic-bibliography>article{grid-template-columns:48px 1fr}.academic-bibliography h2{font-size:19px}.full-cv{gap:35px}.cv-row,.cv-publication{grid-template-columns:75px 1fr}.cv-columns{grid-template-columns:1fr}.pub-meta{display:grid;gap:5px}.site-header{position:relative}}
.data-hero h1{font-size:clamp(50px,6.2vw,82px);line-height:1;letter-spacing:-.055em}.academic-page-head h1{font-size:clamp(48px,5.6vw,72px);letter-spacing:-.05em}
@media(max-width:620px){.data-hero h1{font-size:46px}.academic-page-head h1{font-size:46px}}
.scientific-values{display:flex;gap:35px;margin-top:30px;border-top:1px solid var(--line);padding-top:20px}.scientific-values span{font-size:12px;color:var(--muted)}.scientific-values b{display:block;color:var(--accent);font:700 28px var(--font-display)}.focus-panel li a{display:block;color:var(--text)}.focus-panel li a:hover{color:var(--accent)}.pending-record>h2{font-size:32px;margin:0 0 20px}.pending-record>article>span{font-size:10px;color:var(--accent);font-weight:700;letter-spacing:.09em}.pending-record>article h2{font-size:20px}.skills-large{font-size:15px!important;line-height:1.8!important;color:var(--text)!important}.resume-memberships{border-top:1px solid var(--line);padding-top:30px}.contact-page{min-height:calc(100vh - 88px);padding:120px 0;background:var(--bg2)}.contact-page h1{font-size:clamp(52px,8vw,105px);letter-spacing:-.065em;max-width:900px;margin:18px 0 28px}.contact-lede{font-size:23px;line-height:1.45;color:var(--muted);max-width:780px}.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;margin-top:95px}.contact-grid section{border-top:1px solid var(--line);padding-top:20px}.contact-grid section>a{display:block;color:var(--accent);font-size:20px;margin:18px 0}.contact-grid section>p{color:var(--muted);max-width:480px}.contact-email{font-size:clamp(24px,3vw,38px)!important}.resume-top h1{font-size:clamp(48px,6vw,78px)}
@media(max-width:620px){.scientific-values{gap:17px}.contact-page{padding:70px 0}.contact-grid{grid-template-columns:1fr;gap:45px;margin-top:55px}.contact-lede{font-size:19px}}
.home-introduction{max-width:820px;color:var(--muted);font-size:16px;line-height:1.7;margin-top:28px}.home-introduction p{margin:0 0 17px}.home-introduction a{color:var(--accent)}.project-hero h1{font-size:clamp(36px,3.9vw,56px)!important;line-height:1.08!important;max-width:720px}.project-hero{grid-template-columns:minmax(0,1fr) minmax(300px,.8fr)!important;gap:55px!important}.project-hero-image{max-height:430px;object-fit:contain}.project-body{max-width:820px;font-size:16px;line-height:1.75}.project-body h2{font-size:32px!important}.full-cv>aside>section:nth-child(3){display:none}.full-cv>aside{font-size:15px}.full-cv>aside p,.full-cv>aside li{font-size:15px}.full-cv>aside dt{font-size:32px}
@media(max-width:900px){.project-hero{grid-template-columns:1fr!important}.project-hero-image{max-height:360px}}
@media(max-width:620px){.home-introduction{font-size:15px}.project-hero h1{font-size:34px!important}}
.project-hero h1{font-size:clamp(34px,3vw,46px)!important;max-width:650px!important}.project-hero>div{min-width:0}.project-hero-image{width:100%;max-width:560px;justify-self:end}
.article-layout{width:min(80vw,1400px)!important;grid-template-columns:150px minmax(0,1fr)!important;gap:32px!important}.project-body{width:100%;max-width:none!important}.research-figure{width:100%!important;margin:32px 0!important}.research-figure img{width:100%!important;height:auto!important;max-height:none!important;object-fit:contain}.article-rail{font-size:12px}.aside-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-block:1px solid var(--line);padding:16px 0;margin:20px 0}.aside-metrics span{font-size:10px;color:var(--muted)}.aside-metrics b{display:block;color:var(--accent);font:700 25px var(--font-display)}
@media(max-width:900px){.article-layout{width:min(100% - 32px,1180px)!important;grid-template-columns:1fr!important}.article-rail{display:none}}
html[data-theme=mist]{--bg:#eef4f3;--bg2:#e3edeb;--surface:#f8fcfb;--surface2:#d6e5e2;--text:#18302e;--muted:#607773;--line:rgba(24,48,46,.16);--accent:#0c8b7d;--accent2:#d47b5e;--ink:#f8fcfb;--shadow:0 25px 70px rgba(30,73,68,.13);color-scheme:light}
html[data-theme=paper]{--bg:#f7f7f4;--bg2:#eceeea;--surface:#fff;--surface2:#e1e5df;--text:#202624;--muted:#68716c;--line:rgba(32,38,36,.15);--accent:#245f9b;--accent2:#c2764d;--ink:#fff;--shadow:0 25px 70px rgba(30,42,52,.12);color-scheme:light}
html[data-theme=ocean],html[data-theme=graphite]{--muted:var(--text)}html[data-theme=mist],html[data-theme=paper]{--muted:#111}
.article-layout{grid-template-columns:240px minmax(0,1fr)!important;gap:48px!important}.article-rail{font-size:15px!important}.article-rail #toc{gap:12px!important}.article-rail #toc a{font-size:15px!important;line-height:1.45!important}.cv-columns{gap:28px!important}.cv-columns>div{display:grid;gap:12px}.cv-columns p{margin:0!important;padding:12px 0;border-bottom:1px solid var(--line);line-height:1.45}.conference-list{display:grid;gap:0}.conference-list article{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.conference-list article b{color:var(--accent)}.conference-list article p{margin:0!important;color:var(--muted)}.left-skills h3{font-size:14px;margin:18px 0 4px;color:var(--text)}.left-skills p{margin:0 0 14px!important;line-height:1.55}.full-cv>main>.resume-memberships{margin-top:70px}.project-catalogue .technical-focus{display:grid!important}
.shell{width:min(90vw,1500px)}.site-header,.site-footer{width:min(92vw,1550px)}.article-layout{width:min(90vw,1500px)!important}.project-catalogue{width:min(90vw,1500px)}.project-catalogue .technical-focus{font-size:15px;line-height:1.6;grid-template-columns:155px 1fr}.project-catalogue .technical-focus b{font-size:12px}.project-catalogue .catalogue-copy h2{font-size:clamp(27px,3vw,42px)}
.article-layout{column-gap:90px!important}
.title-only-projects{border-top:1px solid var(--line)}.title-only-projects>a{display:grid;grid-template-columns:55px 1fr 25px;gap:20px;align-items:start;padding:19px 0;border-bottom:1px solid var(--line)}.title-only-projects span{color:var(--accent);font-size:12px}.title-only-projects strong{font:600 21px/1.35 var(--font-display)}.title-only-projects i{font-style:normal}.home-skills{background:var(--bg2);max-width:none!important;width:100%!important;padding-inline:5vw}.skills-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:0 60px}.skills-groups article{border-top:1px solid var(--line);padding:23px 0}.skills-groups h3{font-size:18px;margin:0 0 8px}.skills-groups p{margin:0;color:var(--muted);font-size:15px;line-height:1.65}@media(max-width:620px){.title-only-projects>a{grid-template-columns:38px 1fr 15px}.skills-groups{grid-template-columns:1fr}.home-skills{padding-inline:16px}}
@media(max-width:900px){.shell,.site-header,.site-footer,.article-layout,.project-catalogue{width:min(100% - 32px,1500px)!important}}
.profile-table{border-left:1px solid var(--line);padding-left:30px;align-self:start;margin-top:12px;display:grid}.profile-table>div{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.profile-table>div span{color:var(--muted)}.profile-table>div b{font:700 25px var(--font-display);color:var(--accent)}.profile-table>div a{color:var(--text);width:100%}.profile-table>div a:hover{color:var(--accent)}.profile-table>small{color:var(--muted);font-size:10px;margin-top:16px}
.profile-table>div:nth-child(-n+3){padding:18px 0}.profile-table>div:nth-child(-n+3) b{font-size:38px}.profile-table>div:nth-child(-n+3) span{font-size:13px}.skills-groups{grid-template-columns:1fr!important;max-width:1000px}.skills-groups article{display:grid;grid-template-columns:310px 1fr;gap:30px;align-items:start}.skills-groups h3{font-size:18px}.skills-groups p{font-size:16px}
.intro-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.intro-links a{border:1px solid var(--line);border-radius:999px;padding:9px 13px;color:var(--text);font-size:12px}.intro-links a:hover{border-color:var(--accent);color:var(--accent)}
.profile-table:before{content:"";display:block;width:150px;height:150px;border-radius:50%;background:url("/assets/sriram.jpg") center 22%/cover no-repeat;margin:0 auto 24px;border:1px solid var(--line)}
.home-project-index,.home-skills{width:90vw!important;max-width:1500px!important;margin-left:auto!important;margin-right:auto!important}.home-project-index .academic-heading,.home-project-index .title-only-projects{width:100%!important;max-width:none!important}.home-skills .academic-heading,.home-skills .skills-groups{width:100%!important;max-width:none!important}.home-skills{padding:90px 5vw!important}.home-skills .skills-groups article{grid-template-columns:minmax(260px,32%) 1fr}.title-only-projects strong{font-size:23px}.skills-groups h3{font-size:17px}.skills-groups p{font-size:17px}
.full-cv>main{display:flex;flex-direction:column}.full-cv>main>.resume-memberships{order:99;margin-top:70px}.cv-columns p:before{content:"\2022  ";color:var(--accent);font-weight:700}
.full-cv>main>.resume-memberships{order:0!important;margin-top:0}.cv-columns .cv-list{margin:0;padding-left:20px}.cv-columns .cv-list li{padding:8px 0;border-bottom:1px solid var(--line)}
.profile-table:before{width:190px;height:190px;margin-bottom:30px}.profile-table>div:nth-child(-n+3) b{font-size:44px}.profile-table>div:nth-child(-n+3) span{font-size:14px}.home-introduction{font-size:17px;line-height:1.78}.project-body{font-size:18px}.article-rail,.article-rail #toc a{font-size:16px!important}.full-cv aside p,.full-cv aside li{font-size:16px}.full-cv main p,.full-cv main li{font-size:15px}.left-skills h3{font-size:16px}.left-skills p{font-size:16px!important}.academic-bibliography .authors,.academic-bibliography h2+ p{font-size:15px}.site-nav a{font-size:16px}
.full-cv aside>section:first-child>p{font-size:0}.full-cv aside>section:first-child>p:after{content:"Research impact";font-size:16px;color:var(--muted)}
.home-skills .academic-heading small{font-size:0}.home-skills .academic-heading small:after{content:"TECHNICAL SKILLS";font-size:10px}
@media(max-width:900px){.profile-table{border-left:0;border-top:1px solid var(--line);padding:20px 0 0;margin-top:0}}
.shell{width:min(85vw,1400px)}.site-header{width:min(90vw,1500px);height:92px}.site-nav{gap:9px}.site-nav a{font-size:15px;font-weight:700;padding:11px 16px}.brand{font-weight:800}.brand small{font-weight:700}.article-layout{width:min(85vw,1400px)!important;grid-template-columns:190px minmax(0,1fr)!important;gap:42px!important}.article-rail{font-size:13px}.article-rail #toc{gap:10px}.article-rail #toc a{font-size:13px;line-height:1.4}.project-body{font-size:17px;line-height:1.8}.research-figure{width:100%!important}.technical-focus{display:none!important}
@media(max-width:900px){.shell{width:min(100% - 32px,1400px)}.site-header{width:calc(100% - 32px)}.article-layout{width:min(100% - 32px,1400px)!important;grid-template-columns:1fr!important}.article-rail{display:none}}


.footer-identity{display:flex;gap:14px;align-items:flex-start}.footer-identity strong{font:700 17px var(--font-display)}.footer-identity p{margin:4px 0 0}.footer-identity a{color:var(--text);font-weight:600}.footer-links a{display:inline-flex;align-items:center;gap:7px}

/* Unified 96 percent page grid. */
.shell,.site-header,.site-footer{width:92%;max-width:none}
.home-project-index,.home-skills{width:92%!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important}
.project-catalogue,.academic-bibliography,.full-cv,.article-layout,.next-project{width:92%;max-width:none;margin-left:auto;margin-right:auto}
.article-layout{grid-template-columns:240px minmax(0,1fr);gap:80px;justify-content:start}
.project-body{max-width:1120px}
.academic-page-head,.data-hero{width:92%;max-width:none;margin-left:auto;margin-right:auto}
@media(max-width:900px){.shell,.site-header,.site-footer,.project-catalogue,.academic-bibliography,.full-cv,.article-layout,.next-project,.academic-page-head,.data-hero{width:calc(100% - 28px)}.article-layout{grid-template-columns:1fr}}

/* Final spacing, alignment and typography corrections. */
.data-hero{padding:34px 0 54px}.data-hero-grid{grid-template-columns:minmax(0,1fr) 330px;gap:42px;align-items:start;margin-top:0}.home-introduction{width:100%;max-width:none;margin-top:22px}.profile-table{margin-top:0}.profile-table h2{font-size:20px;margin:0 0 8px;color:var(--text)}
.title-only-projects strong{font-size:17px;line-height:1.45}.title-only-projects>a{padding:22px 0}
.page-projects .academic-page-head{padding:42px 0 34px}.page-projects .project-catalogue{padding-top:18px}.project-catalogue>article{padding:64px 0}.project-catalogue .catalogue-copy h2{font-size:clamp(25px,2.45vw,38px)}
.article-layout{width:92%!important;max-width:none!important;grid-template-columns:240px minmax(0,1fr)!important;gap:72px!important}.project-body{width:100%!important;max-width:none!important}.research-figure{width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important}
.full-cv main section{margin-bottom:38px}.full-cv main section>p{margin:7px 0;line-height:1.55}.full-cv .cv-list{margin-top:12px}.full-cv .cv-list li{padding:8px 0}.cv-row,.cv-publication{padding:17px 0}.cv-row p,.cv-publication p{margin:4px 0!important;line-height:1.5}
@media(max-width:900px){.data-hero-grid{grid-template-columns:1fr;gap:28px}.profile-table{margin-top:8px}.article-layout{width:calc(100% - 28px)!important;grid-template-columns:1fr!important}.project-catalogue>article{padding:46px 0}}

/* Make the private visitor map an explicit dashboard panel. */
.page-visitors{overflow:auto;background:#06111a}.page-visitors #visitor-map{position:relative;inset:auto;width:100%;height:520px;z-index:0;background:#102231;border-radius:16px;overflow:hidden}.page-visitors .visitor-shell{min-height:100vh}.visitor-map-card{background:rgba(8,18,28,.94);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:20px;margin:0 0 12px}.visitor-map-card>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:14px}.visitor-map-card h2{font-size:20px}.visitor-map-card p{margin:0;color:#9eabc0;font-size:12px}.page-visitors .leaflet-tile{filter:saturate(.72) brightness(.82) hue-rotate(145deg)}
@media(max-width:620px){.page-visitors #visitor-map{height:390px}.visitor-map-card>div:first-child{display:block}.visitor-map-card p{margin-top:5px}}

/* Strong, consistent research-profile controls. */
.intro-links,.profile-links,.resume-links{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.intro-links a,.profile-links a,.resume-links a,.resume-links button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 15px;border:2px solid color-mix(in srgb,var(--text),transparent 35%);border-radius:10px;background:color-mix(in srgb,var(--surface),transparent 8%);color:var(--text);font-size:13px;font-weight:700;line-height:1.2;box-shadow:0 3px 0 color-mix(in srgb,var(--line),transparent 10%);transition:background .18s,border-color .18s,color .18s,transform .18s,box-shadow .18s}
.intro-links a:hover,.profile-links a:hover,.resume-links a:hover,.resume-links button:hover{background:var(--accent);border-color:var(--accent);color:var(--ink);transform:translateY(-2px);box-shadow:0 6px 16px color-mix(in srgb,var(--accent),transparent 68%)}
.intro-links a:focus-visible,.profile-links a:focus-visible,.resume-links a:focus-visible,.resume-links button:focus-visible{outline:3px solid var(--accent2);outline-offset:3px}

/* Clear, readable Technical skills layout on phones. */
@media(max-width:700px){
  .home-skills{width:calc(100% - 28px)!important;padding:42px 16px!important;border-radius:16px}
  .home-skills .academic-heading{margin-bottom:22px}
  .home-skills .academic-heading h2{font-size:30px;line-height:1.15}
  .home-skills .skills-groups{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
  .home-skills .skills-groups article{display:block!important;padding:18px!important;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
  .home-skills .skills-groups h3{font-size:17px;line-height:1.3;margin:0 0 9px}
  .home-skills .skills-groups p{font-size:15px;line-height:1.65;margin:0;color:var(--text);overflow-wrap:anywhere}
}


