/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-body);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.start{inset-inline-start:var(--spacing)}.grid{display:grid}.inline{display:inline}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--paper:#efe6d6;--paper-light:#fff8eb;--ink:#111;--muted:#59544c;--white:#fff;--accent:#c99a3e;--accent-soft:#eadfc0;--accent-secondary:#435b72;--accent-secondary-soft:#d7dee5;--accent-red:#e5352b;--hairline:#1111111f;--hairline-strong:#1111113d;--terminal-bg:#14140f;--terminal-green:#9bbf3f;--surface-ink:#14140f;--on-ink:#f4ecdd;--on-ink-muted:#f4ecddb3;--on-ink-faint:#f4ecdd8c;--on-ink-line:#f4ecdd33;--grid-major:#435b721a;--grid-minor:#1111110d;--border:3px solid var(--ink);--shadow-sm:4px 4px 0 var(--ink);--shadow:6px 6px 0 var(--ink);--shadow-lg:10px 10px 0 var(--ink);--max-width:1180px;--section-space:60px;--nav-height:66px;--font-display:var(--font-space-grotesk), "Arial Black", "Segoe UI", system-ui, sans-serif;--font-body:var(--font-inter), "Segoe UI", Arial, sans-serif;--font-mono:var(--font-space-mono), "Courier New", ui-monospace, monospace}:root[data-theme=dark]{--paper:#14130d;--paper-light:#1e1b12;--ink:#ece3d2;--muted:#a59d89;--white:#211f14;--accent:#d8a94a;--accent-soft:#2b2716;--accent-secondary:#85a0b6;--accent-secondary-soft:#2a343d;--accent-red:#fb5c4f;--hairline:#ece3d224;--hairline-strong:#ece3d24d;--terminal-bg:#0e0d09;--surface-ink:#0e0d09;--grid-major:#85a0b61a;--grid-minor:#ece3d20d}*{box-sizing:border-box}html{background:var(--surface-ink);color:var(--ink);scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + 12px)}body{background:linear-gradient(90deg, var(--grid-major) 0 1px, transparent 1px 100%), linear-gradient(0deg, var(--grid-minor) 0 1px, transparent 1px 100%), var(--paper);min-height:100vh;color:var(--ink);font-family:var(--font-body);letter-spacing:0;background-size:42px 42px;margin:0}body::selection{background:var(--accent-soft);color:var(--ink)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}img,svg,canvas{max-width:100%;display:block}h1,h2,h3,.hero-title,.section-title,.eyebrow,.tag,.brutal-button,.skill-badge,.timeline-date,.matrix-row span,.publication-link,.contact-form-field span,.contact-link span:first-child,.brand{font-weight:700}.mono{font-family:var(--font-mono);letter-spacing:.02em}.site-shell{padding-top:var(--nav-height);overflow:hidden}.section{padding:var(--section-space) 24px;position:relative}.section-inner{width:min(100%, var(--max-width));margin:0 auto}.section-band{border-top:var(--border);border-bottom:var(--border);background:var(--paper-light)}.eyebrow{border:var(--border);background:var(--accent);color:var(--surface-ink);box-shadow:var(--shadow-sm);font-family:var(--font-display);text-transform:uppercase;letter-spacing:0;align-items:center;gap:10px;margin:0 0 18px;padding:8px 12px;font-size:.78rem;line-height:1;display:inline-flex}.section-title{max-width:880px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:0;margin:0;font-size:clamp(2.75rem,4.3vw,3.25rem);line-height:1.12}.section-copy{max-width:680px;color:var(--muted);margin:14px 0 0;font-size:1.04rem;font-weight:700;line-height:1.55}.highlight{background:var(--accent);color:var(--surface-ink);-webkit-box-decoration-break:clone;box-decoration-break:clone;box-shadow:var(--shadow-sm);padding:.12em .14em;display:inline}.highlight-blue{background:var(--accent-secondary);color:var(--white)}.highlight-red{background:var(--ink);color:var(--white);box-shadow:4px 4px 0 var(--accent)}.brutal-button{border:var(--border);min-height:48px;box-shadow:var(--shadow);background:var(--white);color:var(--ink);font-family:var(--font-display);text-transform:uppercase;letter-spacing:0;justify-content:center;align-items:center;gap:10px;padding:12px 18px;font-size:.92rem;line-height:1.1;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.brutal-button:hover,.brutal-button:focus-visible{box-shadow:3px 3px 0 var(--ink);outline:none;transform:translate(3px,3px)}.brutal-button:disabled{cursor:wait;opacity:.72;transform:none}.brutal-button[data-variant=yellow]{background:var(--accent);color:var(--surface-ink)}.brutal-button[data-variant=blue]{background:var(--accent-secondary);color:var(--white)}.brutal-button[data-variant=ink]{background:var(--surface-ink);color:var(--on-ink);box-shadow:6px 6px 0 var(--accent)}.brutal-card{border:var(--border);background:var(--white);box-shadow:var(--shadow)}.tag{border:2px solid var(--ink);background:var(--paper);font-family:var(--font-display);text-transform:uppercase;letter-spacing:0;align-items:center;gap:6px;padding:6px 9px;font-size:.72rem;line-height:1;display:inline-flex}.tag[data-accent=yellow]{background:var(--accent-soft)}.tag[data-accent=blue]{background:var(--accent-secondary);color:var(--white)}.tag[data-accent=red]{background:var(--accent-soft)}.tag[data-accent=green]{background:var(--accent-secondary-soft)}.hero{min-height:auto;padding-top:24px;position:relative;overflow:hidden}.nav{width:min(100%, var(--max-width));grid-template-columns:auto minmax(0,1fr);align-items:center;gap:20px;margin:0 auto 30px;display:grid}.brand{font-family:var(--font-display);text-transform:uppercase;align-items:center;gap:12px;font-size:1.05rem;display:inline-flex}.brand-mark{border:var(--border);background:var(--accent);width:40px;height:40px;color:var(--surface-ink);box-shadow:var(--shadow-sm);place-items:center;display:grid}.nav-links{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.nav-links a{text-transform:uppercase;white-space:nowrap;border:2px solid #0000;padding:8px 10px;font-size:.82rem;font-weight:900}.nav-links a:hover,.nav-links a:focus-visible{border-color:var(--ink);background:var(--white);outline:none}.hero-grid{width:min(100%, var(--max-width));grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);align-items:center;gap:42px;margin:0 auto;display:grid}.hero-grid>*{min-width:0}.hero-copy{flex-direction:column;align-items:flex-start;display:flex}.hero-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:0;margin:0;font-size:4.55rem;line-height:1.22}.hero-subtitle{max-width:670px;margin:24px 0 0;font-size:1.08rem;font-weight:900;line-height:1.5}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:24px;display:flex}.hero-profile-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;margin-top:26px;display:grid}.hero-profile-card{border:var(--border);background:var(--white);min-height:118px;box-shadow:var(--shadow-sm);padding:14px 14px 13px;position:relative}.hero-profile-card:after{content:"";background:var(--accent-red);width:28px;height:4px;position:absolute;top:10px;right:10px}.hero-profile-card span{color:var(--muted);margin-bottom:10px;font-size:.62rem;display:block}.hero-profile-card strong{font-family:var(--font-display);text-transform:uppercase;font-size:.9rem;line-height:1.12;display:block}.hero-profile-card p{margin:8px 0 0;font-weight:900;line-height:1.25}.hero-profile-card small{color:var(--muted);margin-top:6px;font-weight:800;line-height:1.25;display:block}.hero-visual{min-height:510px;position:relative}.hero-portrait-panel{border:var(--border);box-shadow:var(--shadow-lg);position:absolute;inset:0;overflow:hidden}.hero-portrait-image{object-fit:cover;filter:grayscale()contrast(1.08);width:100%;height:100%;position:absolute;inset:0}.loop-grid{grid-template-columns:minmax(0,.84fr) minmax(340px,1.16fr);align-items:start;gap:36px;margin-top:28px;display:grid}.loop-panel{border:var(--border);background:var(--accent-soft);box-shadow:var(--shadow-lg);padding:26px}.loop-panel h3,.matrix h3,.cv-panel h3{font-family:var(--font-display);text-transform:uppercase;margin:0 0 20px;font-size:1.1rem}.loop-steps{gap:16px;display:grid}.loop-step{border:var(--border);background:var(--white);box-shadow:var(--shadow-sm);padding:18px}.loop-step strong{font-family:var(--font-display);text-transform:uppercase;font-size:1.25rem;display:block}.loop-step p{color:var(--muted);margin:8px 0 0;font-weight:800;line-height:1.45}.matrix{border:var(--border);background:var(--ink);color:var(--white);box-shadow:var(--shadow);padding:26px}.matrix-list{gap:14px;display:grid}.matrix-row{border:2px solid #ffffff73;grid-template-columns:32px 74px 1fr;align-items:center;gap:12px;padding:12px 14px;display:grid}.matrix-row span{font-family:var(--font-display);text-transform:uppercase;color:var(--accent)}.matrix-icon{justify-content:center;align-items:center;display:inline-flex}.matrix-row p{margin:0;font-weight:800;line-height:1.45}.publication-grid,.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:28px;display:grid}.publication-card,.project-card{flex-direction:column;justify-content:space-between;min-height:310px;padding:22px;display:flex}.publication-card h3,.project-card h3,.timeline-card h3{font-family:var(--font-display);text-transform:uppercase;margin:16px 0 12px;font-size:1.24rem;line-height:1.08}.publication-card p,.project-card p,.timeline-card p{color:var(--muted);margin:0;font-weight:800;line-height:1.48}.publication-meta,.project-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.publication-link{font-family:var(--font-display);text-transform:uppercase;align-items:center;gap:8px;margin-top:18px;font-size:.82rem;display:inline-flex}.project-card{min-height:280px}.timeline{gap:20px;margin-top:28px;padding-left:36px;display:grid;position:relative}.timeline:before{content:"";background:var(--ink);width:3px;position:absolute;top:8px;bottom:8px;left:9px}.timeline-card{grid-template-columns:188px 1fr auto;align-items:start;gap:20px;padding:22px;transition:transform .15s,box-shadow .15s;display:grid;position:relative}.timeline-card:hover{box-shadow:9px 9px 0 var(--ink);transform:translate(-3px,-3px)}.timeline-icon{border:2px solid var(--ink);background:var(--paper);width:44px;height:44px;color:var(--accent-secondary);justify-content:center;align-items:center;display:inline-flex}.timeline-node-impact{background:var(--accent-secondary)}.timeline-node{z-index:1;border:3px solid var(--ink);background:var(--accent);border-radius:50%;width:20px;height:20px;position:absolute;top:26px;left:-36px}.timeline-date{border:var(--border);background:var(--accent-secondary);color:var(--white);font-family:var(--font-display);text-transform:uppercase;padding:12px;line-height:1.1}.skills-layout{grid-template-columns:minmax(0,.8fr) minmax(320px,1.2fr);align-items:stretch;gap:34px;margin-top:28px;display:grid}.skills-terminal{border:var(--border);background:var(--terminal-bg);color:var(--on-ink);box-shadow:var(--shadow-lg);font-family:var(--font-mono);padding:24px}.skills-terminal p{margin:0 0 14px;font-weight:700;line-height:1.5}.skills-terminal span{color:var(--accent)}.skill-cloud{flex-wrap:wrap;align-content:flex-start;gap:14px;display:flex}.skill-badge{border:var(--border);background:var(--white);box-shadow:var(--shadow-sm);font-family:var(--font-display);text-transform:uppercase;align-items:center;gap:8px;padding:11px 14px;font-size:.9rem;transition:transform .14s,box-shadow .14s;display:inline-flex}.skill-badge svg{color:var(--accent-secondary);flex-shrink:0}.skill-badge[data-gold=true]{background:var(--accent)}.skill-badge[data-gold=true] svg{color:var(--ink)}.skill-badge:hover{box-shadow:6px 6px 0 var(--ink);transform:translate(-2px,-2px)}.skill-marquee{align-self:center;width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 32px calc(100% - 32px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 32px calc(100% - 32px),#0000 100%)}.skill-marquee-track{gap:14px;width:max-content;animation:34s linear infinite skill-scroll;display:flex}.skill-marquee:hover .skill-marquee-track,.skill-marquee:focus-within .skill-marquee-track{animation-play-state:paused}@keyframes skill-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.cv-grid{grid-template-columns:minmax(0,.9fr) minmax(330px,1.1fr);align-items:center;gap:34px;margin-top:28px;display:grid}.cv-panel{border:var(--border);background:var(--accent-soft);box-shadow:var(--shadow-lg);padding:28px}.cv-panel p{color:var(--ink);margin:0 0 22px;font-weight:900;line-height:1.55}.cv-chart-panel{border:var(--border);background:var(--white);box-shadow:var(--shadow);padding:24px}.cv-chart-panel>.tag{margin-bottom:14px}.citation-chart{gap:18px;display:grid}.citation-chart svg{width:100%;height:auto}.citation-legend{flex-wrap:wrap;gap:16px;display:flex}.citation-legend-item{text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;font-size:.78rem;font-weight:800;display:inline-flex}.citation-legend-item i{border:2px solid var(--ink);width:12px;height:12px;display:inline-block}.citation-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.citation-metric-card{border:2px solid var(--ink);text-align:center;gap:4px;padding:10px;transition:transform .16s;display:grid}.citation-metric-card:hover,.citation-metric-card:focus-visible{outline:none;transform:translate(2px,2px)}.citation-metric-card strong{font-family:var(--font-display);font-size:1.35rem;line-height:1}.citation-metric-card span{color:var(--muted);text-transform:uppercase;font-size:.68rem;font-weight:800;line-height:1.3}.contact-grid{grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);gap:26px;margin-top:22px;display:grid}.contact-card{background:var(--surface-ink);color:var(--on-ink);box-shadow:var(--shadow);padding:22px}.contact-card h3{font-family:var(--font-display);text-transform:uppercase;margin:0 0 18px;font-size:2rem;line-height:1}.contact-card p{color:var(--on-ink-muted);margin:0;font-weight:800;line-height:1.55}.contact-form{gap:12px;margin-top:16px;display:grid}.contact-form-row{grid-template-columns:90px minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr);gap:10px;display:grid}.contact-form-field{gap:5px;display:grid}.contact-form-field span{font-family:var(--font-display);text-transform:uppercase;color:var(--on-ink);font-size:.68rem}.contact-form-field input,.contact-form-field select,.contact-form-field textarea{border:var(--border);background:var(--white);color:var(--ink);font-family:var(--font-body);padding:9px 10px;font-size:.9rem;font-weight:600}.contact-form-field input:focus-visible,.contact-form-field select:focus-visible,.contact-form-field textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.contact-form-field textarea{resize:vertical;min-height:96px}.contact-form-field--full{grid-column:1/-1}.contact-form-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px;display:flex}.contact-honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.contact-form-status{color:var(--on-ink-muted);font-family:var(--font-mono);text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.contact-form-status[data-state=success]{color:var(--terminal-green)}.contact-form-status[data-state=error]{color:var(--accent-red)}.contact-links{gap:14px;display:grid}.contact-link{border:var(--border);background:var(--white);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:16px;padding:16px;font-weight:900;display:flex}.contact-link span:first-child{font-family:var(--font-display);text-transform:uppercase}@media (width<=1040px){.hero-grid,.loop-grid,.skills-layout,.cv-grid,.contact-grid{grid-template-columns:1fr}.hero-visual{min-height:520px}.publication-grid,.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){:root{--section-space:46px}.section{padding-inline:16px}.nav{grid-template-columns:1fr;align-items:flex-start;margin-bottom:26px}.nav-links{grid-template-columns:repeat(3,max-content);justify-content:flex-start;width:100%;display:grid}.nav-links a{padding-inline:6px;font-size:.76rem}.hero-title{font-size:2.55rem;line-height:1.24}.hero-bg-ann{width:250px;top:116px}.hero-bg-route{width:360px;top:280px;right:-60px}.hero-subtitle{overflow-wrap:anywhere;max-width:100%;font-size:.98rem}.eyebrow{overflow-wrap:anywhere;white-space:normal;max-width:100%;line-height:1.15;display:inline-block}.section-title{font-size:clamp(2.05rem,9.8vw,2.6rem);line-height:1.08}.publication-grid,.project-grid{grid-template-columns:1fr}.hero-visual{min-height:320px}.matrix-row,.timeline-card{grid-template-columns:1fr}.hero-actions,.brutal-button{width:100%}.contact-form-row{grid-template-columns:1fr}.contact-world-frame{min-height:128px}.citation-metrics-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.skill-marquee-track{animation-duration:34s!important;animation-iteration-count:infinite!important}}.hero-bg-ann,.hero-bg-route{pointer-events:none;z-index:0;position:absolute}.hero-bg-ann{left:max(16px, calc((100% - var(--max-width)) / 2));width:min(360px,42vw);color:var(--ink);opacity:.09;top:86px}.hero-bg-route{right:max(12px, calc((100% - var(--max-width)) / 2 - 30px));width:min(520px,52vw);color:var(--accent-secondary);opacity:.13;top:72px}.ann-background path,.ann-background circle,.gis-route-background path,.gis-route-background circle{stroke:currentColor;stroke-width:1.5px}.ann-background circle,.gis-route-background circle{fill:var(--white)}.ann-background .accent-fill,.gis-route-background .accent-fill{fill:var(--accent);stroke:var(--ink)}.gis-route-background .route-line{stroke:var(--accent);stroke-width:4px}.gis-route-background .route-line-secondary{stroke:currentColor;stroke-dasharray:9 9;stroke-width:2.2px}.hero-grid{z-index:1;position:relative}.hero-visual{overflow:visible}.hero-contour{width:240px;height:180px;color:var(--accent-secondary);opacity:.22;z-index:0;pointer-events:none;position:absolute;top:-30px;right:-36px}.hero-cross{color:var(--ink);opacity:.45;z-index:2;pointer-events:none;position:absolute}.hero-cross-tr{top:-12px;right:-12px}.hero-portrait-panel{background:var(--paper-light)}.hero-portrait-panel:before{content:"";border:2px solid var(--white);z-index:1;pointer-events:none;position:absolute;inset:12px}.hero-portrait-index{background:var(--surface-ink);color:var(--accent);z-index:2;padding:5px 9px;font-size:.72rem;position:absolute;top:18px;right:18px}.hero-geo{background:var(--surface-ink);border:2px solid var(--ink);color:var(--on-ink);z-index:2;gap:2px;padding:8px 10px;font-size:.68rem;display:grid;position:absolute;bottom:18px;right:18px}.hero-geo span:first-child{color:var(--accent)}.loop-grid{grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);align-items:start}.loop-stage{padding:8px 0 4px;position:relative}.loop-coord{color:var(--muted);font-size:.66rem;display:block}.loop-coord-top{margin-bottom:6px}.loop-diagram{aspect-ratio:1;width:100%;max-width:500px;margin:0 auto;position:relative;overflow:visible}.loop-bg-scatter{color:var(--ink);opacity:.28;z-index:0;pointer-events:none;position:absolute;inset:6%}.loop-bg-contour{color:var(--accent-secondary);opacity:.3;z-index:0;pointer-events:none;position:absolute;inset:-4%}.loop-orbit{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.loop-node-anchor{left:var(--x);top:var(--y);z-index:2;width:128px;position:absolute;transform:translate(-50%,-50%)}.loop-node{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.loop-node-badge{border:3px solid var(--ink);background:var(--ink);width:52px;height:52px;color:var(--accent);box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.loop-node strong{font-family:var(--font-display);text-transform:uppercase;font-size:.82rem}.loop-node p{max-width:130px;color:var(--muted);margin:0;font-size:.62rem;font-weight:700;line-height:1.3}.loop-engine{border:3px solid var(--ink);background:var(--accent-secondary);width:150px;height:150px;color:var(--white);box-shadow:var(--shadow);text-align:center;z-index:3;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:14px;display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.loop-engine-net{color:#ffffff80;width:70px;height:34px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.loop-engine strong{font-family:var(--font-display);text-transform:uppercase;margin-top:14px;font-size:.78rem;line-height:1.15}.loop-engine span{color:#fffc;font-size:.56rem;font-weight:600;line-height:1.3}.loop-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:14px;display:flex}.loop-flow{color:var(--muted);align-items:center;gap:14px;font-size:.62rem;display:flex}.loop-flow-title{color:var(--ink)}.loop-flow span{align-items:center;gap:6px;display:inline-flex}.loop-flow-line{width:18px;height:3px;display:inline-block}.loop-flow-gold{background:var(--accent)}.loop-flow-ink{background:var(--ink)}.loop-cross{color:var(--ink);opacity:.5;pointer-events:none;position:absolute}.loop-cross-bl{bottom:26px;left:-6px}.loop-right{flex-direction:column;gap:16px;display:flex}.loop-gis-layers{border:var(--border);box-shadow:var(--shadow-sm);background:var(--white);color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 14px;font-size:.68rem;display:flex}.loop-gis-icon{color:var(--accent-secondary);display:inline-flex}.loop-gis-title{color:var(--ink);font-weight:700}.matrix{position:relative}.matrix-label{font-size:.95rem}.exp-head{position:relative}.exp-route{background:var(--accent-secondary);color:var(--white);border:2px solid var(--ink);padding:5px 9px;font-size:.66rem;position:absolute;top:4px;right:0}.exp-grid{grid-template-columns:minmax(0,1fr) minmax(210px,.32fr);align-items:start;gap:28px;margin-top:26px;display:grid}.exp-timeline-wrap{padding-left:24px;position:relative}.exp-coord{color:var(--muted);margin-bottom:10px;font-size:.66rem;display:block}.exp-vehicles{color:var(--muted);opacity:.65;z-index:2;flex-direction:column;gap:150px;display:flex;position:absolute;top:96px;left:-2px}.timeline-body h3{margin-top:0}.timeline-impact{grid-template-columns:188px 1fr}.timeline-impact-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.timeline-impact-item strong{font-family:var(--font-display);font-size:1.6rem;line-height:1;display:block}.timeline-impact-item span{color:var(--muted);text-transform:uppercase;margin-top:6px;font-size:.7rem;font-weight:800;line-height:1.3;display:block}.exp-foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;font-size:.66rem;display:flex}.exp-aside{flex-direction:column;gap:16px;display:flex;position:relative}.exp-network{border:var(--border);min-height:220px;box-shadow:var(--shadow);background:var(--white);color:var(--ink);position:relative;overflow:hidden}.exp-network-svg{opacity:.85;width:84%;height:84%;position:absolute;inset:8%}.exp-north{color:var(--ink);position:absolute;top:12px;right:12px}.exp-legend{border:var(--border);box-shadow:var(--shadow-sm);background:var(--paper-light);gap:8px;padding:14px;font-size:.72rem;display:grid}.exp-legend-title{color:var(--ink);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.exp-legend-item{color:var(--muted);align-items:center;gap:8px;display:inline-flex}.exp-legend-item i{border:2px solid var(--ink);border-radius:50%;width:12px;height:12px}.exp-legend-item i[data-tone=blue]{background:var(--accent-secondary)}.exp-legend-item i[data-tone=soft]{background:var(--accent-secondary-soft)}.exp-legend-item i[data-tone=ink]{background:var(--ink)}.exp-legend-item i[data-tone=gold]{background:var(--accent)}.exp-cross{color:var(--ink);opacity:.5;position:absolute;bottom:-8px;right:6px}#skills .section-inner{z-index:1;position:relative}.skills-bg{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.skills-bg-scatter{color:var(--ink);opacity:.16;position:absolute;inset:4%}.skills-bg-contour{width:40%;height:80%;color:var(--accent-secondary);opacity:.2;position:absolute;top:6%;right:-4%}.skills-terminal-bar{border-bottom:1px solid var(--on-ink-line);align-items:center;gap:8px;margin-bottom:10px;padding-bottom:9px;display:flex}.term-dot{background:var(--on-ink-line);border-radius:50%;width:11px;height:11px}.term-dot:first-child{background:var(--accent)}.skills-terminal-title{color:var(--on-ink-faint);margin-left:auto;font-size:.68rem}.term-prompt,.term-key{color:var(--accent)}.term-ok{color:var(--terminal-green)}.term-cursor{background:var(--terminal-green);vertical-align:middle;width:8px;height:14px;margin-left:4px;animation:1.1s step-end infinite term-blink;display:inline-block}@keyframes term-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.skill-grid{flex-wrap:wrap;align-content:flex-start;gap:12px;display:flex}.skills-foot{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:26px;display:flex;position:relative}.skills-legend{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:.66rem;display:flex}.skills-legend-item{text-transform:uppercase;align-items:center;gap:7px;display:inline-flex}.skills-legend-item i{border-top:2px dashed var(--ink);width:20px;height:0}.skills-node-id{color:var(--muted);font-size:.66rem}.skills-foot-map{align-items:center;gap:12px;display:flex}.site-footer{border-top:var(--border);background:var(--surface-ink);color:var(--on-ink);padding:40px 24px 26px;position:relative;overflow:hidden}.footer-accents{color:var(--on-ink-line);pointer-events:none;position:absolute;inset:0}.footer-scatter{width:100%;height:92%;position:absolute;inset:4% 0}.footer-cross{color:var(--on-ink-faint);position:absolute}.footer-cross-a{top:20px;left:40px}.footer-cross-b{bottom:24px;right:60px}.footer-inner{z-index:1;width:min(100%, var(--max-width));grid-template-columns:1.1fr .8fr 1fr;align-items:center;gap:26px;margin:0 auto;display:grid;position:relative}.footer-brand{align-items:center;gap:12px;display:flex}.footer-mark{border:2px solid var(--on-ink);background:var(--accent);width:40px;height:40px;color:var(--surface-ink);flex-shrink:0;place-items:center;display:grid}.footer-brand-text{flex-direction:column;gap:3px;display:flex}.footer-brand-text strong{font-family:var(--font-display);text-transform:uppercase;font-size:1.05rem}.footer-brand-text span{color:var(--on-ink-faint);font-size:.64rem}.footer-clock{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.footer-clock-label{color:var(--accent);font-size:.64rem}.footer-clock-time{letter-spacing:.04em;font-size:1.7rem;line-height:1}.footer-clock-date{color:var(--on-ink-faint);font-size:.68rem}.footer-meta{color:var(--on-ink-muted);text-align:right;flex-direction:column;align-items:flex-end;gap:8px;font-size:.66rem;display:flex}.footer-marginalia{border:2px solid var(--ink);background:var(--paper);align-items:center;gap:12px;padding:6px 10px;display:inline-flex}.footer-baseline{z-index:1;width:min(100%, var(--max-width));border-top:1px solid var(--on-ink-line);color:var(--on-ink-faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:24px auto 0;padding-top:16px;font-size:.66rem;display:flex;position:relative}.publication-card,.project-card{transition:transform .17s,box-shadow .17s}.publication-card:hover,.project-card:hover{box-shadow:10px 10px 0 var(--ink);transform:scale(1.02)}@media (width<=1040px){.footer-inner{text-align:center;grid-template-columns:1fr;gap:20px}.footer-brand,.footer-clock{justify-content:center}.footer-meta{text-align:center;align-items:center}}@media (width<=900px){.loop-grid{grid-template-columns:1fr}.loop-diagram{aspect-ratio:auto;flex-direction:column;gap:12px;max-width:100%;height:auto;display:flex;overflow:visible}.loop-orbit,.loop-bg-scatter,.loop-bg-contour,.loop-cross{display:none}.loop-node-anchor{width:100%;position:static;transform:none}.loop-node{text-align:left;border:var(--border);background:var(--white);box-shadow:var(--shadow-sm);flex-direction:row;align-items:center;gap:14px;padding:14px 16px}.loop-node p{max-width:none}.loop-engine{text-align:left;border-radius:0;align-items:flex-start;width:100%;height:auto;padding:18px;position:static;transform:none}.loop-engine-net{display:none}.loop-engine strong{margin-top:0;font-size:.95rem}.loop-engine span{font-size:.72rem}.exp-grid{grid-template-columns:1fr}.exp-route{margin-bottom:12px;display:inline-block;position:static}}@media (width<=760px){.exp-vehicles{display:none}.timeline-impact-grid{grid-template-columns:1fr}.footer-baseline{text-align:center;justify-content:center}}.site-nav{z-index:50;height:var(--nav-height);background:var(--paper-light);border-bottom:var(--border);position:fixed;inset:0 0 auto}.site-nav-inner{width:min(100%, var(--max-width));align-items:center;gap:18px;height:100%;margin:0 auto;padding:0 24px;display:flex}.site-nav .brand{white-space:nowrap;font-size:1rem}.site-nav .brand-mark{width:34px;height:34px}.site-nav-links{align-items:center;gap:4px;min-width:0;margin-left:auto;display:flex}.site-nav-link{font-family:var(--font-display);text-transform:uppercase;white-space:nowrap;border-bottom:4px solid #0000;padding:8px 10px;font-size:.82rem;font-weight:900;transition:color .14s,border-color .14s;position:relative}.site-nav-link:hover,.site-nav-link:focus-visible{color:var(--accent-secondary);outline:none}.site-nav-link[data-active=true]{border-bottom-color:var(--accent-red)}.site-nav-actions{align-items:center;gap:10px;display:flex}.nav-cv{border:var(--border);box-shadow:var(--shadow-sm);background:var(--accent);color:var(--surface-ink);font-family:var(--font-display);text-transform:uppercase;align-items:center;gap:6px;padding:8px 12px;font-size:.78rem;transition:transform .14s,box-shadow .14s;display:inline-flex}.nav-cv:hover,.nav-cv:focus-visible{box-shadow:2px 2px 0 var(--ink);outline:none;transform:translate(2px,2px)}.theme-toggle{border:var(--border);width:40px;height:40px;box-shadow:var(--shadow-sm);background:var(--white);color:var(--ink);cursor:pointer;place-items:center;transition:transform .14s,box-shadow .14s;display:inline-grid}.theme-toggle:hover,.theme-toggle:focus-visible{box-shadow:2px 2px 0 var(--ink);outline:none;transform:translate(2px,2px)}.section-title{padding-bottom:16px;position:relative}.section-title:after{content:"";background:var(--accent-red);width:76px;height:6px;position:absolute;bottom:0;left:0}@media (width<=760px){.site-nav-inner{gap:10px;padding:0 14px}.site-nav .brand>span:last-child{display:none}.site-nav-links{gap:0;overflow-x:auto}.site-nav-link{border-bottom-width:3px;padding:6px;font-size:.72rem}.nav-cv span{display:none}.nav-cv{padding:8px}}.papers-layout{grid-template-columns:minmax(0,1.25fr) minmax(320px,.85fr);align-items:start;gap:34px;margin-top:28px;display:grid}.papers-list{border-top:var(--border);margin:0;padding:0;list-style:none}.paper-row{border-bottom:var(--border);grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:20px;padding:18px 6px;transition:background .15s,transform .15s;display:grid}.paper-row:hover{background:var(--accent-soft);transform:translate(4px)}.paper-tags{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.paper-main h3{font-family:var(--font-display);text-transform:uppercase;margin:0;font-size:1.12rem;line-height:1.16}.paper-venue{color:var(--muted);margin:6px 0 0;font-size:.86rem;font-weight:800;line-height:1.4}.paper-doi{border:2px solid var(--ink);background:var(--white);box-shadow:var(--shadow-sm);font-family:var(--font-display);text-transform:uppercase;white-space:nowrap;align-items:center;gap:6px;padding:8px 12px;font-size:.74rem;transition:transform .14s,box-shadow .14s;display:inline-flex}.paper-doi:hover,.paper-doi:focus-visible{box-shadow:2px 2px 0 var(--ink);outline:none;transform:translate(2px,2px)}@media (width<=1040px){.papers-layout{grid-template-columns:1fr}}@media (width<=760px){.paper-row{grid-template-columns:1fr;gap:12px}.paper-tags{flex-direction:row}.paper-doi{justify-self:start}}.section-copy,.hero-subtitle{font-size:1.16rem}.paper-venue{font-size:.92rem}.timeline-card p{font-size:1rem}.timeline-node-edu{background:var(--accent-secondary)}.exp-highlights{gap:14px;margin:0;padding:0;list-style:none;display:grid}.exp-highlights li{border-left:4px solid var(--accent);grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:14px;padding-left:14px;display:grid}.exp-highlights strong{font-family:var(--font-display);color:var(--accent-secondary);font-size:1.5rem;line-height:1}.exp-highlights span{color:var(--ink);font-size:.98rem;font-weight:800;line-height:1.42}.contact-icons{flex-wrap:wrap;align-content:flex-start;gap:14px;display:flex}.contact-icon{border:var(--border);width:60px;height:60px;box-shadow:var(--shadow-sm);background:var(--white);color:var(--ink);place-items:center;transition:transform .15s,box-shadow .15s,background .15s,color .15s;display:grid}.contact-icon:hover,.contact-icon:focus-visible{box-shadow:6px 6px 0 var(--ink);background:var(--accent);color:var(--surface-ink);outline:none;transform:translate(-3px,-3px)}.section-progress{z-index:40;opacity:.74;flex-direction:column;gap:9px;display:flex;position:fixed;top:50%;right:14px;transform:translateY(-50%)}.section-progress-item{flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:10px;display:flex}.section-progress-dot{border:2px solid var(--ink);background:var(--paper-light);width:30px;height:30px;color:var(--ink);box-shadow:3px 3px 0 var(--ink);place-items:center;transition:transform .18s,background .18s,color .18s;display:grid}.section-progress-dot svg{width:14px;height:14px}.section-progress-label{font-family:var(--font-display);text-transform:uppercase;color:var(--ink);opacity:0;pointer-events:none;font-size:.6rem;transition:opacity .18s,transform .18s;transform:translate(6px)}.section-progress-item:hover .section-progress-label,.section-progress-item:focus-within .section-progress-label{opacity:1;transform:translate(0)}.section-progress-item[data-active=true] .section-progress-dot{background:var(--accent);color:var(--surface-ink);transform:translate(1px,1px)}.scroll-top-compass{z-index:45;border:var(--border);background:var(--paper-light);width:54px;height:54px;color:var(--ink);box-shadow:var(--shadow);cursor:pointer;opacity:0;pointer-events:none;place-items:center;transition:opacity .2s,transform .2s,background .16s;display:grid;position:fixed;bottom:22px;right:22px;transform:translateY(16px)scale(.9)}.scroll-top-compass[data-visible=true]{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.scroll-top-compass:hover,.scroll-top-compass:focus-visible{background:var(--accent);outline:none;transform:translateY(-2px)}@media (width<=1100px){.section-progress{display:none}}@media (width<=760px){.scroll-top-compass{width:46px;height:46px;bottom:14px;right:14px}.contact-icon{width:52px;height:52px}}.papers-groups{gap:30px;display:grid}.papers-group-title{border:var(--border);background:var(--surface-ink);color:var(--on-ink);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;box-shadow:var(--shadow-sm);align-items:center;gap:10px;margin:0;padding:10px 14px;font-size:.84rem;display:flex}.papers-group-title:before{content:"";background:var(--accent);flex-shrink:0;width:8px;height:8px;display:inline-block}.papers-group-count{font-family:var(--font-mono);opacity:.75;margin-left:auto;font-size:.74rem}.paper-authors{color:var(--muted);margin:6px 0 0;font-size:.82rem;font-weight:700;line-height:1.42}.paper-meta{color:var(--muted);margin:4px 0 0;font-size:.74rem;font-weight:700;line-height:1.4}.paper-note{color:var(--muted);margin:4px 0 0;font-size:.76rem;font-style:italic;font-weight:700;line-height:1.4}.papers-chart{top:calc(var(--nav-height) + 16px);align-self:start;position:sticky}.exp-group{margin-top:24px}.exp-group:first-of-type{margin-top:18px}.exp-group-title{border:var(--border);background:var(--accent-secondary);color:var(--white);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;box-shadow:var(--shadow-sm);align-items:center;gap:8px;margin:0;padding:8px 12px;font-size:.84rem;display:flex}.exp-group-title:before{content:"";background:var(--accent);flex-shrink:0;width:7px;height:7px;display:inline-block}.exp-list .paper-row{grid-template-columns:132px minmax(0,1fr) auto;align-items:start}.exp-body{color:var(--muted);margin:6px 0 0;font-size:.9rem;font-weight:800;line-height:1.42}@media (width<=1040px){.papers-chart{position:static}}@media (width<=760px){.exp-list .paper-row{grid-template-columns:1fr;gap:12px}}.section-title:after{content:"";border:2px solid var(--ink);background:var(--accent-red);width:min(148px,36vw);height:5px;box-shadow:3px 3px 0 var(--ink);margin-top:12px;display:block}.tech-accent{color:var(--ink);fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:square;stroke-linejoin:miter;pointer-events:none;display:block}.tech-accent .accent-fill,.accent-fill{fill:var(--accent);stroke:var(--ink)}.tech-accent .accent-line,.accent-line{stroke:var(--accent)}.tech-accent .svg-label,.svg-label{fill:currentColor;stroke:none;font-family:var(--font-mono);letter-spacing:.08em;font-size:10px;font-weight:700}.contour-map{opacity:.24}.earth-sketch{opacity:.55}.ann-sketch .ann-link{opacity:.24}.route-sketch .route-dash{stroke-dasharray:7 8;opacity:.55}.route-sketch .route-main{stroke-width:7px}.route-sketch .route-node-outer{fill:var(--accent);stroke:var(--ink);stroke-width:4px}.route-sketch .route-node-inner{fill:var(--surface-ink)}.map-frame,.map-sheet{position:relative}.map-frame{border:var(--border);background:var(--white);box-shadow:var(--shadow)}.map-frame-label{z-index:2;border:2px solid var(--ink);background:var(--accent);color:var(--surface-ink);font-family:var(--font-mono);text-transform:uppercase;padding:4px 8px;font-size:.62rem;font-weight:800;position:absolute;top:-14px;left:14px}.map-frame-corner{pointer-events:none;width:34px;height:34px;position:absolute}.map-frame-corner-a{border-top:2px solid var(--ink);border-right:2px solid var(--ink);top:8px;right:8px}.map-frame-corner-b{border-bottom:2px solid var(--ink);border-left:2px solid var(--ink);bottom:8px;left:8px}.map-sheet-readout{z-index:2;color:var(--muted);text-transform:uppercase;flex-wrap:wrap;justify-content:flex-end;gap:10px;font-size:.64rem;display:flex;position:absolute;top:-4px;right:0}.map-sheet-readout span{border:2px solid var(--ink);background:var(--paper-light);padding:4px 7px}.signal-grid path{opacity:.22;stroke-width:.8px}.project-signal-mark{color:var(--ink);stroke-width:2.6px}.project-signal-mark .signal-route{stroke:var(--accent-secondary);stroke-width:3.2px}.project-signal-mark .signal-route-strong{stroke:var(--accent);stroke-width:5px}.project-signal-mark .signal-route-dash,.project-signal-mark .signal-curb-dash{stroke-dasharray:8 8}.project-signal-mark .signal-curb{stroke:var(--ink);stroke-width:4px}.project-signal-mark .signal-contour{opacity:.7;stroke:var(--accent-secondary);stroke-width:2px}.project-signal-mark .signal-pin path,.project-signal-mark .signal-bolt,.project-signal-mark .signal-p-tag{fill:var(--accent);stroke:var(--ink);stroke-width:3px}.project-signal-mark .signal-pin circle{fill:var(--white);stroke:var(--ink);stroke-width:2px}.project-signal-mark .signal-vehicle rect,.project-signal-mark .signal-vehicle path,.project-signal-mark .signal-vehicle circle,.project-signal-mark .signal-locker rect{fill:var(--paper-light);stroke:var(--ink);stroke-width:3px}.project-signal-mark .signal-locker path,.project-signal-mark .signal-ann path{stroke:var(--ink);stroke-width:2px}.project-signal-mark .signal-node,.project-signal-mark .signal-ann circle{fill:var(--white);stroke:var(--ink);stroke-width:3px}.project-signal-mark .signal-h2{fill:var(--ink);stroke:none;font-family:var(--font-display);font-size:24px;font-weight:700}.project-signal-mark .signal-occupancy{stroke:var(--accent-red);stroke-width:4px}.publications-shell{padding-top:24px}.publications-bg-accent{opacity:.18;pointer-events:none;width:260px;position:absolute;top:18px;right:-12px}.papers-earth-accent{width:170px;color:var(--ink);opacity:.12;pointer-events:none;position:absolute;bottom:-48px;right:-34px}.layer-switcher{border:var(--border);background:linear-gradient(90deg, var(--grid-major) 0 1px, transparent 1px 100%), linear-gradient(0deg, var(--grid-minor) 0 1px, transparent 1px 100%), var(--paper-light);box-shadow:var(--shadow);background-size:34px 34px;margin:0 0 22px;padding:12px;position:relative;overflow:hidden}.layer-switcher:after{content:"";border:2px solid var(--ink);background:var(--accent-red);width:78px;height:5px;position:absolute;bottom:11px;right:14px}.layer-switcher-label{border:2px solid var(--ink);background:var(--surface-ink);color:var(--on-ink);text-transform:uppercase;margin-bottom:10px;padding:5px 8px;font-size:.62rem;display:inline-flex}.section-tabs{flex-wrap:wrap;gap:8px;margin:0;display:flex}.section-tab{border:var(--border);box-shadow:var(--shadow-sm);background:var(--white);color:var(--ink);font-family:var(--font-display);text-transform:uppercase;cursor:pointer;align-items:stretch;gap:0;padding:0;font-size:.7rem;font-weight:900;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.section-tab>span:last-child{align-items:center;padding:8px 10px;display:inline-flex}.tab-code{border-right:2px solid var(--ink);background:var(--paper);align-items:center;padding:8px 7px;font-size:.58rem;display:inline-flex}.section-tab:hover,.section-tab:focus-visible,.section-tab[data-active=true]{background:var(--accent);color:var(--surface-ink);box-shadow:2px 2px 0 var(--ink);outline:none;transform:translate(2px,2px)}.section-tab[data-active=true] .tab-code{background:var(--surface-ink);color:var(--on-ink)}.papers-layout{grid-template-columns:minmax(0,1.26fr) minmax(310px,.74fr);gap:26px}.papers-list{border-top:0;gap:12px;display:grid}.papers-groups .paper-row{border:var(--border);background:var(--white);box-shadow:var(--shadow-sm);grid-template-columns:104px minmax(0,1fr) minmax(76px,auto);align-items:start;gap:14px;padding:12px;position:relative}.papers-groups .paper-row:before{content:"";background:var(--hairline-strong);width:2px;position:absolute;top:10px;bottom:10px;left:104px}.papers-groups .paper-row:hover{background:var(--paper-light);transform:translate(3px)}.papers-groups .paper-tags{gap:6px;padding-right:6px}.papers-groups .paper-tags .tag{text-align:center;justify-content:flex-start;width:auto;padding:5px 7px;font-size:.62rem}.paper-main{min-width:0}.paper-main h3{margin-bottom:6px;font-size:1rem;line-height:1.16}.papers-groups .paper-authors,.papers-groups .paper-meta,.papers-groups .paper-note{margin-top:5px;font-size:.82rem;line-height:1.38}.paper-doi{background:var(--surface-ink);color:var(--on-ink);box-shadow:4px 4px 0 var(--accent);justify-self:end}.paper-doi-static{border:2px solid var(--ink);background:var(--accent-soft);color:var(--ink);box-shadow:var(--shadow-sm);font-family:var(--font-display);text-transform:uppercase;white-space:nowrap;padding:7px 9px;font-size:.62rem}.research-instrument{top:calc(var(--nav-height) + 16px);background:linear-gradient(90deg, var(--grid-major) 0 1px, transparent 1px 100%), linear-gradient(0deg, var(--grid-minor) 0 1px, transparent 1px 100%), var(--paper-light);background-size:32px 32px;padding:18px;position:sticky;overflow:hidden}.research-instrument:before,.research-instrument:after{content:"";pointer-events:none;width:42px;height:42px;position:absolute}.research-instrument:before{border-top:3px solid var(--ink);border-right:3px solid var(--ink);top:10px;right:10px}.research-instrument:after{border-left:3px solid var(--ink);border-bottom:3px solid var(--ink);bottom:10px;left:10px}.instrument-header,.instrument-footer{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.instrument-header{margin-bottom:10px}.instrument-status,.instrument-footer span{color:var(--muted);text-transform:uppercase;font-size:.62rem}.instrument-footer{margin-top:10px}.research-instrument-cross{color:var(--accent-red);opacity:.42;position:absolute;top:64px;right:22px}.research-instrument-earth{width:138px;color:var(--ink);opacity:.13;position:absolute;bottom:-42px;right:-40px}.research-instrument .citation-chart{z-index:1;gap:12px;position:relative}.research-instrument .citation-metric-card{background:var(--white);padding:9px}.project-grid{align-items:stretch;gap:18px}.project-card{grid-template-rows:128px 1fr;min-height:318px;padding:0;display:grid;position:relative;overflow:hidden}.project-card:hover{box-shadow:10px 10px 0 var(--ink)}.project-visual-pane{border-bottom:var(--border);background:linear-gradient(90deg, var(--grid-major) 0 1px, transparent 1px 100%), linear-gradient(0deg, var(--grid-minor) 0 1px, transparent 1px 100%), var(--paper-light);background-size:30px 30px;padding:10px;position:relative;overflow:hidden}.project-card[data-accent=yellow] .project-visual-pane{background-color:var(--accent-soft)}.project-card[data-accent=blue] .project-visual-pane,.project-card[data-accent=green] .project-visual-pane{background-color:var(--accent-secondary-soft)}.project-card[data-accent=red] .project-visual-pane{background-color:var(--paper)}.project-index{z-index:2;border:2px solid var(--ink);background:var(--surface-ink);color:var(--on-ink);padding:4px 7px;font-size:.62rem;position:absolute;top:9px;left:10px}.project-identity-mark{width:100%;height:100%}.project-card-contour{opacity:.12;pointer-events:none;width:210px;position:absolute;bottom:-80px;right:-92px}.project-card-body{z-index:1;padding:16px;position:relative}.project-card h3{max-width:92%;margin:12px 0 8px;font-size:1.14rem;line-height:1.12}.project-card p{margin:0 0 12px;line-height:1.42}.project-meta{gap:6px}.project-meta .tag{padding:6px 8px;font-size:.64rem}.experience-timeline-layout{margin-top:24px}.experience-groups{min-width:0}.exp-row{background:var(--white);position:relative}.exp-row-node{border:2px solid var(--ink);background:var(--accent);width:14px;height:14px;box-shadow:2px 2px 0 var(--ink);position:absolute;top:20px;left:-10px}.experience-groups .papers-list{border-left:3px solid var(--ink);padding-left:14px}.skills-layout{grid-template-columns:minmax(0,.72fr) minmax(340px,1.28fr);align-items:start;gap:24px}.skills-terminal{box-shadow:var(--shadow);align-self:start;padding:18px;position:relative;overflow:hidden}.skills-terminal p{margin-bottom:9px;font-size:.86rem;line-height:1.42}.skills-terminal:after{content:"";border:2px solid var(--on-ink-line);opacity:.42;pointer-events:none;border-radius:50%;width:118px;height:118px;position:absolute;bottom:-34px;right:-42px}.skills-layer-stack{border:var(--border);background:linear-gradient(90deg, var(--grid-major) 0 1px, transparent 1px 100%), linear-gradient(0deg, var(--grid-minor) 0 1px, transparent 1px 100%), var(--paper-light);box-shadow:var(--shadow);background-size:32px 32px;gap:8px;padding:14px;display:grid;position:relative;overflow:hidden}.skills-stack-label{z-index:2;border:2px solid var(--ink);background:var(--surface-ink);color:var(--on-ink);text-transform:uppercase;justify-self:start;padding:5px 8px;font-size:.62rem;position:relative}.skills-layer{z-index:1;border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);font-family:var(--font-display);text-transform:uppercase;justify-content:space-between;gap:12px;padding:9px 12px;font-size:.72rem;font-weight:900;display:flex;position:relative}.skills-layer:first-of-type,.skills-layer:nth-of-type(5){background:var(--accent);color:var(--surface-ink)}.skills-layer:nth-of-type(2),.skills-layer:nth-of-type(4){background:var(--white);color:var(--ink)}.skills-layer:nth-of-type(3){background:var(--accent-secondary);color:var(--white)}.skills-layer small{font-family:var(--font-mono);text-transform:none;opacity:.85;font-size:.58rem;font-weight:700}.skills-layer-ann{z-index:1;opacity:.5;justify-self:center;width:min(100%,420px);height:86px;position:relative}.skills-layer-contour{opacity:.11;width:180px;position:absolute;bottom:-34px;right:-24px}.skill-layer-groups{border:var(--border);background:linear-gradient(90deg, var(--grid-major) 0 1px, transparent 1px 100%), linear-gradient(0deg, var(--grid-minor) 0 1px, transparent 1px 100%), var(--paper-light);box-shadow:var(--shadow);background-size:30px 30px;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:20px;padding:12px;display:grid}.skill-layer-group{border:2px solid var(--ink);background:linear-gradient(90deg, var(--grid-major) 0 1px, transparent 1px 100%), linear-gradient(0deg, var(--grid-minor) 0 1px, transparent 1px 100%), var(--white);box-shadow:none;background-size:28px 28px;padding:10px;position:relative}.skill-layer-group h3{border-bottom:3px solid var(--accent-red);font-family:var(--font-display);text-transform:uppercase;margin:0 0 8px;padding-bottom:6px;font-size:.7rem;line-height:1.1}.skill-layer-group .skill-grid{gap:7px}.skill-layer-group .skill-badge{box-shadow:none;padding:7px 8px;font-size:.68rem}.contact-grid{grid-template-columns:minmax(0,1fr) minmax(300px,.72fr)}.contact-card{background:linear-gradient(90deg, var(--on-ink-line) 0 1px, transparent 1px 100%), linear-gradient(0deg, var(--on-ink-line) 0 1px, transparent 1px 100%), var(--surface-ink);background-size:34px 34px;position:relative;overflow:hidden}.contact-card:after{content:"";border-top:3px solid var(--accent);border-right:3px solid var(--accent);pointer-events:none;width:58px;height:58px;position:absolute;top:16px;right:16px}.contact-card-header{z-index:1;border-bottom:1px solid var(--on-ink-line);color:var(--on-ink-muted);text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:10px;padding-bottom:9px;font-size:.6rem;display:flex;position:relative}.contact-card .contact-form{z-index:1;margin-top:14px;position:relative}.contact-aside{flex-direction:column;gap:12px;display:flex}.contact-world-panel{border:var(--border);background:linear-gradient(90deg, var(--grid-major) 0 1px, transparent 1px 100%), linear-gradient(0deg, var(--grid-minor) 0 1px, transparent 1px 100%), var(--paper-light);box-shadow:var(--shadow);background-size:30px 30px;padding:12px;position:relative;overflow:hidden}.contact-world-frame{border:2px solid var(--ink);background:var(--white);pointer-events:none;min-height:150px;position:relative;overflow:hidden}.contact-world-dots,.contact-world-arcs{width:100%;height:100%;position:absolute;inset:0}.world-dotted-map circle{fill:var(--ink);opacity:.2}.world-dotted-map .pardubice-node circle:first-child{fill:var(--accent);opacity:1;stroke:var(--ink);stroke-width:3px}.world-dotted-map .pardubice-node circle:not(:first-child){fill:none;opacity:.42;stroke:var(--accent-red);stroke-width:2px}.contact-global-arcs path{stroke:var(--accent-secondary);stroke-dasharray:7 7;stroke-width:2px;opacity:.85}.contact-global-arcs .arc-node{fill:var(--accent);stroke:var(--ink);stroke-width:2px}.contact-world-labels{color:var(--muted);text-transform:uppercase;gap:6px;margin-top:10px;font-size:.58rem;display:grid}.contact-world-labels span{border:2px solid var(--ink);background:var(--white);width:max-content;max-width:100%;padding:4px 7px}.contact-icons{border:var(--border);background:linear-gradient(90deg, var(--grid-major) 0 1px, transparent 1px 100%), linear-gradient(0deg, var(--grid-minor) 0 1px, transparent 1px 100%), var(--paper-light);box-shadow:var(--shadow);background-size:30px 30px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;display:grid;position:relative}.contact-icons:before{content:"";border-top:2px dashed var(--hairline-strong);pointer-events:none;position:absolute;top:50%;left:16px;right:16px}.contact-icon{z-index:1;background:var(--white);width:auto;height:50px;position:relative}.contact-icon:after{content:"";border:2px solid var(--ink);background:var(--accent);width:7px;height:7px;position:absolute;top:6px;right:6px}.contact-dispatch{border:var(--border);background:var(--surface-ink);color:var(--on-ink);box-shadow:var(--shadow);padding:18px;position:relative;overflow:hidden}.contact-dispatch-header{z-index:1;border-bottom:1px solid var(--on-ink-line);justify-content:space-between;align-items:start;gap:10px;margin-bottom:10px;padding-bottom:9px;display:flex;position:relative}.contact-dispatch h3{color:var(--accent);font-family:var(--font-display);text-transform:uppercase;margin:0;font-size:.9rem}.contact-dispatch-header span{color:var(--on-ink-muted);text-align:right;text-transform:uppercase;font-size:.58rem}.contact-dispatch-status{z-index:1;gap:6px;display:grid;position:relative}.contact-dispatch p{font-family:var(--font-mono);color:var(--terminal-green);align-items:center;gap:7px;margin:0;font-size:.72rem;line-height:1.42;display:flex}.status-light{border:1px solid var(--on-ink);background:var(--accent);width:9px;height:9px;box-shadow:0 0 0 2px var(--on-ink-line);flex:none}@media (width<=1120px){.skill-layer-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=1040px){.papers-layout,.skills-layout,.contact-grid{grid-template-columns:1fr}.research-instrument{position:static}}@media (width<=900px){.publications-bg-accent,.papers-earth-accent{display:none}}@media (width<=760px){.section-title:after{width:118px;height:5px;margin-top:10px}.map-sheet-readout{justify-content:flex-start;margin-bottom:12px;position:static}.publication-tabs,.section-tabs{grid-template-columns:1fr;display:grid}.section-tab{width:100%}.papers-groups .paper-row,.exp-list .paper-row{grid-template-columns:1fr;gap:12px}.papers-groups .paper-row:before{display:none}.papers-groups .paper-tags{flex-direction:row;padding-right:0}.papers-groups .paper-tags .tag{width:auto}.paper-doi,.paper-doi-static{justify-self:start}.project-grid{grid-template-columns:1fr}.project-card{grid-template-rows:120px 1fr;min-height:auto}.experience-groups .papers-list{padding-left:12px}.skill-layer-groups{grid-template-columns:1fr}.skills-layer{gap:4px;display:grid}.contact-icons,.contact-form-row{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-dispatch-header{display:grid}.contact-dispatch-header span{text-align:left}.scroll-top-compass{display:none}}@media (width<=520px){.site-nav-inner{gap:8px;padding:0 10px}.site-nav-links{flex:auto;justify-content:space-between;overflow:visible}.site-nav-link{padding:6px 3px;font-size:.62rem}.nav-cv{display:none}.theme-toggle{width:36px;height:36px}.hero-profile-cards{grid-template-columns:1fr}.hero-profile-card{min-height:auto}.layer-switcher,.research-instrument,.skill-layer-stack,.skill-layer-groups,.skill-layer-group,.contact-icons,.contact-dispatch{box-shadow:var(--shadow-sm)}.contact-form-row{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.tech-accent,.skills-layer-stack{animation:none}.hero-copy,.hero-visual,.paper-row,.project-card,.exp-row,.skills-terminal,.contact-card{opacity:1!important;transform:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
