/*! 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-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@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{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.grid{display:grid}.hidden{display:none}.inline{display:inline}.list-item{display:list-item}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.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:#c12a24;--focus-ring:#164b73;--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:1200px;--section-space:96px;--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;--focus-ring:#f4ecdd;--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}:where(a,button,input,textarea,[tabindex]:not([tabindex="-1"])):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.skip-link{z-index:60;border:var(--border);background:var(--accent);box-shadow:var(--shadow-sm);color:var(--surface-ink);font-family:var(--font-display);text-transform:uppercase;padding:10px 14px;font-weight:700;transition:transform .14s;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus-visible{transform:translateY(0)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}img,svg,canvas{max-width:100%;display:block}h1,h2,h3,.hero-title,.section-title,.hero-kicker,.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-x:clip}.static-fallback,.site-error-fallback{place-items:center;min-height:100vh;padding:32px;display:grid}.static-fallback-panel,.site-error-panel{border:var(--border);background:var(--paper-light);width:min(100%,720px);box-shadow:var(--shadow);padding:clamp(24px,5vw,48px)}.static-fallback-kicker{color:var(--accent-secondary);font-family:var(--font-mono);text-transform:uppercase;margin:0 0 12px;font-size:.78rem;font-weight:700}.static-fallback-panel h1,.site-error-panel h1{font-family:var(--font-display);text-transform:uppercase;margin:0 0 18px;font-size:clamp(2.4rem,8vw,5rem);line-height:.95}.static-fallback-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.static-fallback-actions a,.static-fallback-actions button{border:var(--border);background:var(--accent);color:var(--ink);box-shadow:var(--shadow-sm);font-family:var(--font-display);text-transform:uppercase;padding:10px 14px;font-weight:700}.static-fallback-actions button{cursor:pointer}.section{padding:var(--section-space) 0;position:relative}.section-inner{width:min(100%, var(--max-width));margin:0 auto;padding-inline:24px}.section-band{border-top:var(--border);border-bottom:var(--border);background:var(--paper-light)}@media (width<=768px){:root{--section-space:56px}.section-inner{padding-inline:20px}}.hero-kicker{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-header{gap:14px;margin:0 0 28px;display:grid}.section-index{color:var(--accent-secondary);font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase;font-size:.7rem;font-weight:700;line-height:1}.section-title{max-width:880px;font-family:var(--font-display);text-transform:none;letter-spacing:0;margin:0;font-size:clamp(1.9rem,3.2vw,2.6rem);line-height:1.12}.section-copy{max-width:62ch;color:var(--muted);margin:14px 0 0;font-size:1.05rem;font-weight:400;line-height:1.55}.section-header-rule{background:var(--ink);width:100%;height:3px;margin-top:6px;display:block}.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);transform:translate(3px,3px)}.brutal-button:focus-visible{outline:3px solid var(--focus-ring);outline-offset: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)}.anim{transition:opacity .32s cubic-bezier(.25,1,.5,1),transform .32s cubic-bezier(.25,1,.5,1)}.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-rows:auto auto auto auto;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:24px 34px;margin:0 auto;display:grid}.hero-grid>*{min-width:0}.hero-copy{flex-direction:column;grid-area:1/1/auto/span 7;align-items:flex-start;animation:.56s cubic-bezier(.25,1,.5,1) both hero-name-rise;display:flex}.hero-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:0;margin:10px 0 0;font-size:clamp(3.5rem,8vw,6rem);line-height:.94}.hero-name-highlight{z-index:0;color:var(--surface-ink);padding:.09em .12em .04em;display:inline-block;position:relative}.hero-name-highlight:before{content:"";z-index:-1;background:var(--accent);box-shadow:var(--shadow-sm);transform-origin:0;animation:.65s cubic-bezier(.25,1,.5,1) .18s both hero-highlight-sweep;position:absolute;inset:.08em 0 0;transform:scaleX(1)}.hero-intro{grid-area:2/1/auto/span 7;animation:.56s cubic-bezier(.25,1,.5,1) 90ms both hero-name-rise}.hero-heading{max-width:680px;font-family:var(--font-display);letter-spacing:0;margin:0;font-size:clamp(1.75rem,3.1vw,2.45rem);line-height:1.08}.hero-subtitle{max-width:620px;margin:18px 0 0;font-size:1.08rem;font-weight:400;line-height:1.5}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:26px;display:flex}.hero-statements{border:var(--border);background:var(--paper-light);box-shadow:var(--shadow);grid-area:3/1/auto/span 7;align-self:stretch;gap:10px;padding:16px;animation:.56s cubic-bezier(.25,1,.5,1) .22s both hero-name-rise;display:grid}.hero-statement-line{border-bottom:2px solid var(--ink);font-family:var(--font-display);opacity:1;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:12px;margin:0;padding:0 0 9px;font-size:clamp(1rem,1.6vw,1.25rem);line-height:1.18;display:grid}.hero-statement-line:last-child{border-bottom:0;padding-bottom:0}.hero-statement-line .mono{color:var(--accent-secondary);font-size:.72rem;line-height:1.5}.hero-statement-text{opacity:0;vertical-align:top;white-space:nowrap;clip-path:inset(0 100% 0 0);max-width:100%;animation:hero-statement-type var(--statement-duration) steps(var(--statement-chars), end) var(--statement-delay) both;display:inline-block;position:relative;overflow:hidden}.hero-statement-text:after{content:"";background:var(--ink);vertical-align:-.12em;opacity:0;width:2px;height:1.05em;animation:hero-caret-blink .72s steps(1, end) var(--statement-delay) infinite, hero-caret-finish 1ms linear calc(var(--statement-delay) + var(--statement-duration) + .26s) both;margin-left:3px;display:inline-block}.hero-visual{grid-area:1/8/span 3/-1;min-height:clamp(560px,58vw,680px);animation:.6s cubic-bezier(.25,1,.5,1) .12s both hero-portrait-fade;position:relative}.hero-portrait-panel{width:100%;height:100%;min-height:inherit;border:var(--border);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.hero-portrait-image{object-fit:cover;filter:grayscale()contrast(1.08);width:100%;height:100%;position:absolute;inset:0}.hero-facts{border:var(--border);border-collapse:collapse;background:var(--white);width:100%;box-shadow:var(--shadow);grid-area:4/1/auto/-1;animation:.5s cubic-bezier(.25,1,.5,1) .36s both hero-facts-fade}.hero-facts tbody,.hero-facts tr{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.hero-facts td{border-right:var(--border);align-content:center;gap:5px;min-height:88px;padding:16px 18px;display:grid}.hero-facts td:last-child{border-right:0}.hero-facts strong{font-family:var(--font-display);font-size:clamp(1.45rem,2.6vw,2.1rem);font-weight:700;line-height:1}.hero-facts span{color:var(--muted);text-transform:uppercase;font-size:.72rem;line-height:1.15}@keyframes hero-name-rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-highlight-sweep{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes hero-portrait-fade{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-facts-fade{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-statement-type{0%{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}@keyframes hero-caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes hero-caret-finish{to{opacity: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:400;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:400;line-height:1.45}.publication-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:28px;display:grid}.publication-card{flex-direction:column;justify-content:space-between;min-height:310px;padding:22px;display:flex}.publication-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,.timeline-card p{color:var(--muted);margin:0;font-weight:400;line-height:1.48}.publication-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}.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}.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)}.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:400;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;margin:0;display:grid}.citation-chart svg{width:100%;height:auto}.citation-bar{transform-box:fill-box;transform-origin:bottom;transition:opacity .32s,transform .85s cubic-bezier(.25,1,.5,1);transform:scaleY(1)}.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{transform:translate(2px,2px)}.citation-metric-card:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.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-section{background:var(--surface-ink);color:var(--on-ink)}.contact-section .section-header{border-color:var(--on-ink)}.contact-section .section-index{color:var(--accent)}.contact-section .section-title{color:var(--on-ink)}.contact-section .section-header-rule{background:var(--on-ink)}.contact-form-shell{place-items:center;margin-top:24px;display:grid}.contact-card{background:var(--paper-light);width:100%;max-width:760px;color:var(--ink);box-shadow:var(--shadow);padding:20px}.contact-form{gap:12px;display:grid}.contact-form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.contact-form-row .contact-form-field:nth-child(3){grid-column:1/-1}.contact-form-field{gap:5px;display:grid}.contact-form-field span{font-family:var(--font-display);text-transform:uppercase;color:var(--ink);font-size:.68rem}.contact-form-field input,.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:500}.contact-form-field input{min-height:44px}.contact-form-field input:focus-visible,.contact-form-field textarea:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.contact-form-field input[aria-invalid=true],.contact-form-field textarea[aria-invalid=true]{border-color:var(--accent-red)}.contact-form-field textarea{resize:vertical;min-height:112px;max-height:220px;overflow-y:auto}.contact-form-field--full{grid-column:1/-1}.contact-form-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:2px;display:flex}.contact-honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.contact-form-status{color:var(--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(--accent-secondary)}.contact-form-status[data-state=error]{color:var(--accent-red)}.contact-form-error{font-weight:700;display:block;color:var(--accent-red)!important;font-family:var(--font-body)!important;text-transform:none!important;font-size:.84rem!important}@media (width<=1040px){.loop-grid,.cv-grid{grid-template-columns:1fr}.publication-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.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-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}.hero-kicker{overflow-wrap:anywhere;white-space:normal;max-width:100%;line-height:1.15;display:inline-block}.section-title{line-height:1.08}.publication-grid,.matrix-row,.timeline-card,.contact-form-row,.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}}.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;animation:8s ease-in-out infinite alternate hero-accent-float;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;animation:10s ease-in-out infinite alternate-reverse hero-accent-float;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;animation:6s linear infinite route-dash-shift}.hero-grid{z-index:1;position:relative}.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-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)}@media (width<=768px){.hero-grid{grid-template-columns:1fr;grid-template-areas:"copy""visual""intro""statements""facts";align-items:start;row-gap:22px}.hero-copy{grid-area:copy}.hero-intro{grid-area:intro}.hero-statements{grid-area:statements}.hero-statement-line{grid-template-columns:28px minmax(0,1fr);gap:10px}.hero-statement-text{white-space:normal}.hero-visual{aspect-ratio:4/5;grid-area:visual;width:min(100%,430px);min-height:auto}.hero-heading{font-size:clamp(1.65rem,7vw,2.15rem)}.hero-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.hero-actions .brutal-button{width:100%;min-width:0;padding-inline:10px}.hero-facts{grid-area:facts}.hero-facts tbody,.hero-facts tr{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-facts td{border-right:var(--border);border-bottom:var(--border);min-height:82px;padding:14px}.hero-facts td:nth-child(2n){border-right:0}.hero-facts td:nth-last-child(-n+2){border-bottom:0}}@media (width<=520px){.hero-actions{grid-template-columns:1fr}}@keyframes hero-accent-float{0%{transform:translate(0)}to{transform:translate(10px,-8px)}}@keyframes route-dash-shift{to{stroke-dashoffset:-36px}}.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:400;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%}.site-footer{border-top:var(--border);background:var(--surface-ink);color:var(--on-ink);padding:24px;position:relative;overflow:hidden}.footer-inner{width:min(100%, var(--max-width));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin:0 auto;display:flex;position:relative}.footer-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:24px;display:flex}.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;font-weight:400}.footer-clock{text-align:right;flex-direction:column;align-items:flex-end;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:5px;font-size:.66rem;display:flex}.publication-card{transition:transform .17s,box-shadow .17s}.publication-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}}.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;align-items:center;min-height:44px;font-size:1rem;display:inline-flex}.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{min-height:44px;font-family:var(--font-display);text-transform:uppercase;white-space:nowrap;border-bottom:4px solid #0000;align-items:center;padding:8px 10px;font-size:.82rem;font-weight:900;transition:color .14s,border-color .14s;display:inline-flex;position:relative}.site-nav-link:hover,.site-nav-link:focus-visible{color:var(--accent-secondary)}.site-nav-link:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.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);min-height:44px;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);transform:translate(2px,2px)}.nav-cv:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.theme-toggle{border:var(--border);width:44px;height:44px;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);transform:translate(2px,2px)}.theme-toggle:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}@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-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:400;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:400;line-height:1.42}.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:400;line-height:1.42}@media (width<=1040px){.papers-chart{position:static}}.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{border:var(--border);background:var(--white);box-shadow:var(--shadow);position:relative}.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}.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}.publication-filter-row{margin:0 0 20px}.publication-tabs{flex-wrap:wrap;gap:18px;margin:0;display:flex}.publication-tab{min-height:44px;color:var(--ink);font-family:var(--font-display);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;align-items:center;padding:0 0 7px;font-size:.88rem;font-weight:700;line-height:1.1;display:inline-flex;position:relative}.publication-tab:hover,.publication-tab:focus-visible,.publication-tab[data-active=true]{border-bottom-color:var(--accent-red)}.publication-tab:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.publication-metrics-strip{display:none}.papers-layout{grid-template-columns:minmax(0,8fr) minmax(300px,4fr);align-items:start;gap:28px;margin-top:0;display:grid}#publications .papers-list{border-top:0;gap:10px;display:grid}#publications .paper-row{border:var(--border);background:var(--white);min-height:90px;box-shadow:var(--shadow-sm);grid-template-columns:minmax(0,1fr);gap:8px;padding:12px 14px;display:grid}#publications .paper-row:hover{background:var(--paper-light);transform:translate(3px)}#publications .paper-tags{flex-flow:wrap;gap:6px;display:flex}#publications .paper-tags .tag{justify-content:flex-start;width:auto;padding:5px 7px;font-size:.62rem}#publications .paper-main{gap:7px;min-width:0;display:grid}#publications .paper-title{font-family:var(--font-display);text-transform:none;margin:0;font-size:1.15rem;font-weight:600;line-height:1.18}#publications .paper-details{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:7px 0 0;font-size:.84rem;font-weight:400;line-height:1.35;display:flex}#publications .paper-authors,#publications .paper-venue{color:var(--muted);font-size:inherit;font-weight:400;line-height:inherit;margin:0}#publications .paper-authors strong{color:var(--ink);font-weight:700}#publications .paper-venue{font-style:italic}#publications .paper-doi{color:var(--accent-secondary);box-shadow:none;min-height:44px;font-family:var(--font-display);text-transform:uppercase;background:0 0;border:0;justify-self:auto;align-items:center;gap:4px;padding:10px 0;font-size:.72rem;display:inline-flex}#publications .paper-doi:hover,#publications .paper-doi:focus-visible{color:var(--accent-red);box-shadow:none;outline:3px solid var(--focus-ring);outline-offset:3px;transform:none}#publications .papers-chart{display:block}.research-instrument{background:var(--paper-light);padding:18px;overflow:hidden}.instrument-header{align-items:center;gap:12px;margin-bottom:12px;display:flex}.research-instrument .citation-chart{gap:12px}.research-instrument .citation-metric-card{background:var(--white);padding:9px}@media (width>=1024px){.research-instrument{top:calc(var(--nav-height) + 24px);position:sticky}}@media (width<=768px){.publication-metrics-strip{border:var(--border);background:var(--white);box-shadow:var(--shadow-sm);grid-template-columns:repeat(4,minmax(86px,1fr));margin:0 0 18px;display:grid;overflow-x:auto}.publication-metrics-strip span{border-right:var(--border);color:var(--muted);text-transform:uppercase;white-space:nowrap;gap:3px;padding:10px 12px;font-size:.66rem;display:grid}.publication-metrics-strip span:last-child{border-right:0}.publication-metrics-strip strong{color:var(--ink);font-family:var(--font-display);font-size:1.15rem;line-height:1}.publication-tabs{flex-wrap:nowrap;gap:16px;padding-bottom:4px;overflow-x:auto}.publication-tab{white-space:nowrap;flex:none}.papers-layout{grid-template-columns:1fr}#publications .papers-chart{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}#publications .papers-chart .instrument-header,#publications .papers-chart svg,#publications .papers-chart .citation-legend,#publications .papers-chart .citation-metrics-grid{display:none}#publications .paper-row{min-height:auto}#publications .paper-main{flex-direction:column;display:flex}#publications .paper-title{order:1}#publications .paper-tags{order:2}#publications .paper-details{order:3}}.project-layout{gap:22px;display:grid}.project-featured-list{gap:18px;display:grid}.project-compact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.project-card{color:var(--ink);transition:transform .16s,box-shadow .16s,opacity .32s cubic-bezier(.25,1,.5,1);position:relative;overflow:hidden}.project-card:focus-visible,.project-card:hover{box-shadow:10px 10px 0 var(--ink);outline:none;transform:translate(-3px,-3px)}.project-card:focus-visible{outline:3px solid var(--focus-ring);outline-offset:5px}.project-card-featured{grid-template-columns:minmax(0,8fr) minmax(280px,4fr);min-height:250px;display:grid}.project-card-compact{grid-template-columns:112px minmax(0,1fr);min-height:auto;display:grid}.project-visual-pane{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-featured .project-visual-pane{border-left:var(--border);grid-area:1/2;min-height:250px;padding:16px}.project-card-featured .project-card-body{grid-area:1/1}.project-card-compact .project-visual-pane{border-right:var(--border);min-height:112px}.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%;transition:transform .22s cubic-bezier(.25,1,.5,1)}.project-card-body{z-index:1;flex-direction:column;align-items:flex-start;min-width:0;padding:20px;display:flex;position:relative}.project-card-featured .project-card-body{justify-content:center;padding:26px}.project-card h3{font-family:var(--font-display);text-transform:none;margin:0 0 8px;font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.1}.project-card-compact h3{font-size:1rem}.project-card p{margin:0 0 12px;line-height:1.42}.project-outcome{color:var(--ink);font-weight:600}.project-meta{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.project-meta .tag{padding:6px 8px;font-size:.64rem}.project-link-text{border-bottom:3px solid var(--accent-red);font-family:var(--font-display);text-transform:uppercase;align-items:center;gap:7px;margin-top:14px;font-size:.82rem;font-weight:700;display:inline-flex}.project-card .project-signal-mark path,.project-card .project-signal-mark line,.project-card .project-signal-mark circle,.project-card .project-signal-mark rect{transition:stroke-dashoffset .6s cubic-bezier(.25,1,.5,1),transform .22s cubic-bezier(.25,1,.5,1)}.project-card .project-signal-mark path,.project-card .project-signal-mark line{stroke-dasharray:1;stroke-dashoffset:0}.project-card:hover .project-identity-mark,.project-card:focus-visible .project-identity-mark{transform:translateY(-5px)}.project-card:hover .project-signal-mark .signal-route,.project-card:focus-visible .project-signal-mark .signal-route{stroke-dashoffset:-.16px}.project-card:hover .project-signal-mark .signal-node,.project-card:hover .project-signal-mark .accent-fill,.project-card:focus-visible .project-signal-mark .signal-node,.project-card:focus-visible .project-signal-mark .accent-fill{transform-box:fill-box;transform-origin:50%;transform:scale(1.08)}.experience-ledger{gap:28px;margin-top:24px;display:grid}.exp-ledger-group{grid-template-columns:minmax(180px,3fr) minmax(0,9fr);align-items:start;gap:22px;display:grid}.exp-group-label{top:calc(var(--nav-height) + 24px);border:var(--border);background:var(--accent-secondary);color:var(--white);box-shadow:var(--shadow-sm);padding:14px;position:sticky}.exp-group-label h3{font-family:var(--font-display);text-transform:uppercase;margin:0;font-size:1rem;line-height:1}.exp-ledger-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.exp-row{border:var(--border);background:var(--white);box-shadow:var(--shadow-sm);grid-template-columns:126px minmax(0,1fr);align-items:center;gap:18px;padding:12px 14px;display:grid}.exp-date{white-space:nowrap;color:var(--accent-secondary);font-size:.78rem}.exp-row-main{min-width:0}.exp-row-main h3{text-transform:none;align-items:baseline;gap:8px;min-width:0;margin:0;font-size:1rem;line-height:1.2;display:flex}.exp-row-main h3 span{flex:none;font-weight:600}.exp-row-main h3 small{min-width:0;color:var(--muted);font-size:.92rem;font-weight:400}.exp-body{color:var(--muted);margin:5px 0 0;font-size:.9rem;font-weight:400;line-height:1.35}@media (width<=1023px){.exp-ledger-group{grid-template-columns:1fr}.exp-group-label{position:static}}@media (width<=760px){.project-compact-grid,.project-card-featured{grid-template-columns:1fr}.project-card-featured .project-visual-pane{border-left:0;border-bottom:var(--border);grid-area:1/1;min-height:160px}.project-card-featured .project-card-body{grid-area:2/1;padding:20px}.project-card-featured .project-identity-mark{min-height:136px}.project-card-compact{grid-template-columns:96px minmax(0,1fr)}.project-card-compact .project-visual-pane{min-height:96px}.project-card-body{padding:16px}.project-meta .tag{padding:5px 7px}.experience-ledger{gap:22px}.exp-ledger-group{gap:10px}.exp-group-label{justify-content:space-between;align-items:baseline;gap:12px;padding:10px 12px;display:flex}.exp-group-label h3{margin:0}.exp-row{grid-template-columns:1fr;align-items:start;gap:7px}.exp-date{font-size:.72rem}.exp-row-main h3{gap:3px;display:grid}.exp-row-main h3 small{white-space:normal}}@media (width<=520px){.project-card-compact{grid-template-columns:1fr}.project-card-compact .project-visual-pane{border-right:0;border-bottom:var(--border);min-height:132px}}.skills-table{border:var(--border);background:var(--white);box-shadow:var(--shadow);margin-top:22px;display:grid}.skills-table-row{border-bottom:var(--border);grid-template-columns:minmax(180px,3fr) minmax(0,9fr);min-height:82px;display:grid}.skills-table-row:last-child{border-bottom:0}.skills-stage-label{border-right:var(--border);background:var(--accent-secondary);color:var(--white);text-transform:uppercase;align-items:center;margin:0;padding:16px;font-size:.78rem;line-height:1.2;display:flex}.skills-stage-badges{flex-wrap:wrap;align-items:center;gap:9px;padding:14px;display:flex}.skills-stage-badges .skill-badge{box-shadow:none;padding:8px 10px;font-size:.72rem}.education-block{margin-top:26px}.education-title{border:var(--border);background:var(--accent);color:var(--surface-ink);box-shadow:var(--shadow-sm);font-family:var(--font-display);text-transform:uppercase;margin:0 0 12px;padding:8px 12px;font-size:.92rem;line-height:1;display:inline-flex}.education-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.education-row{border:var(--border);background:var(--white);box-shadow:var(--shadow-sm);gap:8px;padding:14px;display:grid}.education-row h3{font-family:var(--font-display);margin:0;font-size:1rem;line-height:1.16}.education-row p{color:var(--muted);margin:0;font-size:.88rem;line-height:1.35}.skills-stage-badges .skill-badge{transition:background .16s,transform .16s,box-shadow .16s}@media (width<=1023px){.papers-layout,.education-list{grid-template-columns:1fr}.research-instrument{position:static}}@media (width<=760px){.paper-doi{justify-self:start}.skills-table-row{grid-template-columns:1fr}.skills-stage-label{border-right:0;border-bottom:var(--border);padding:10px 12px}.contact-form-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.site-nav-inner{gap:8px;padding:0 10px}.site-nav-links{flex:auto;justify-content:flex-start;overflow-x:auto}.site-nav-link{padding:6px 3px;font-size:.62rem}.nav-cv{display:none}.theme-toggle{width:44px;height:44px}.research-instrument,.skills-table,.contact-card{box-shadow:var(--shadow-sm)}.contact-form-row{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.tech-accent,.hero-copy,.hero-intro,.hero-statements,.hero-statement-line,.hero-statement-text,.hero-statement-text:after,.hero-visual,.hero-facts,.hero-name-highlight:before{animation:none!important}.anim,.anim[data-inview=false]{opacity:1!important;transition:none!important;transform:none!important}.hero-copy,.hero-intro,.hero-statements,.hero-statement-line,.hero-statement-text,.hero-visual,.hero-facts,.paper-row,.project-card,.exp-row,.contact-card{opacity:1!important;transform:none!important}.hero-statement-text{clip-path:none!important;white-space:normal!important;overflow:visible!important}.hero-statement-text:after{display:none!important}.project-card .project-signal-mark path,.project-card .project-signal-mark line,.citation-bar{opacity:1!important;stroke-dashoffset:0!important;transition:none!important;transform:none!important}}:root{--max-width:1312px;--page-gutter:clamp(32px, 4vw, 64px);--hero-grid-gap:24px}.section-inner,.hero-grid,.site-nav-inner,.footer-inner{width:min(calc(100% - (var(--page-gutter) * 2)), var(--max-width));padding-inline:0}.hero{padding:clamp(16px,2vw,28px) 0 22px;overflow:clip}.hero-grid{column-gap:var(--hero-grid-gap);grid-template-rows:repeat(4,auto);grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;row-gap:12px}.hero-copy,.hero-intro{grid-column:1/span 8}.hero-copy{grid-row:1;animation:none}.hero-title{text-wrap:balance;max-width:8ch;margin-top:8px;font-size:clamp(3.55rem,6vw,5.1rem);line-height:.92}.hero-name-highlight:before{animation:none}.hero-intro{grid-row:2;animation:none}.hero-heading{text-wrap:balance;max-width:22ch;font-size:clamp(1.55rem,2.35vw,2.05rem);line-height:1.08}.hero-subtitle{max-width:58ch;margin-top:12px;font-size:1rem;line-height:1.45}.hero-identity{gap:3px;max-width:62ch;margin-top:12px;display:grid}.hero-role,.hero-affiliation{margin:0}.hero-role{font-family:var(--font-display);font-size:.88rem;font-weight:700;line-height:1.2}.hero-affiliation{color:var(--muted);font-size:.88rem;line-height:1.35}.hero-actions{gap:10px;margin-top:18px}.hero-actions .brutal-button{min-height:46px;padding:10px 14px;font-size:.84rem}.hero-visual{aspect-ratio:4/5;grid-area:1/9/span 3/-1;align-self:start;width:100%;min-height:0;animation:none}.hero-portrait-panel{min-height:0}.hero-portrait-panel:before{inset:10px}.hero-geo{font-size:.62rem;bottom:10px;right:10px}.hero-statements{border:0;border-top:var(--border);border-bottom:var(--border);box-shadow:none;background:0 0;grid-area:3/1/auto/span 5;gap:0;padding:0;animation:none}.hero-statement-line{grid-template-columns:28px minmax(0,1fr);gap:10px;padding:9px 0;font-size:clamp(.94rem,1.35vw,1.12rem);line-height:1.18}.hero-statement-line:last-child{padding-bottom:9px}.hero-statement-text{opacity:1;white-space:normal;clip-path:none;animation:none;display:block;overflow:visible}.hero-statement-text:after{display:none}.hero-facts{border:var(--border);background:var(--white);width:100%;box-shadow:var(--shadow-sm);grid-area:3/6/auto/span 3;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;animation:none;display:grid}.hero-facts>div{border-right:var(--border);align-content:center;gap:4px;min-height:74px;padding:10px 14px;display:grid}.hero-facts>div:last-child{border-right:0}.hero-facts dt,.hero-facts dd{margin:0}.hero-facts dt{color:var(--muted);text-transform:uppercase;font-size:.64rem;line-height:1.2}.hero-facts dd{font-family:var(--font-display);order:-1;font-size:clamp(1.45rem,2.2vw,1.9rem);font-weight:700;line-height:1}@media (width>=1600px){:root{--max-width:1440px}.hero-copy,.hero-intro{grid-column:1/span 7}.hero-statements{grid-column:1/span 4}.hero-facts{grid-column:5/span 3}.hero-visual{grid-column:8/-1;justify-self:end;width:min(100%,480px)}}@media (width>=960px) and (width<=1199px){:root{--max-width:1120px;--page-gutter:32px;--hero-grid-gap:20px}.hero-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.hero-copy,.hero-intro,.hero-statements{grid-column:1/span 5}.hero-visual{grid-area:1/6/span 2/-1}.hero-facts{grid-area:3/6/auto/-1}.hero-title{font-size:clamp(3.2rem,6vw,4.5rem)}.hero-heading{font-size:clamp(1.55rem,2.6vw,1.9rem)}}@media (width>=960px) and (height<=820px){.hero{padding-top:14px;padding-bottom:18px}.hero-grid{row-gap:10px}.hero-kicker{margin-bottom:12px;padding:7px 10px;font-size:.7rem}.hero-title{margin-top:4px;font-size:clamp(3.1rem,5.4vw,4.65rem);line-height:.9}.hero-heading{font-size:clamp(1.4rem,2.1vw,1.8rem)}.hero-subtitle{margin-top:9px;font-size:.92rem;line-height:1.38}.hero-identity{margin-top:9px}.hero-actions{margin-top:12px}.hero-actions .brutal-button{min-height:44px;padding:8px 12px;font-size:.78rem}.hero-statement-line{padding:7px 0;font-size:.9rem}.hero-statement-line:last-child{padding-bottom:7px}.hero-facts>div{min-height:66px;padding:8px 10px}}@media (width<=959px){:root{--max-width:100%;--nav-height:116px;--page-gutter:24px;--hero-grid-gap:20px}.site-nav-inner{grid-template-rows:56px minmax(0,1fr);grid-template-columns:minmax(0,1fr) auto;gap:0 12px;display:grid}.site-nav .brand{grid-area:1/1;min-height:44px}.site-nav-actions{grid-area:1/2;justify-self:end}.site-nav-links{scroll-snap-type:x proximity;grid-area:2/1/auto/-1;gap:0;width:100%;min-width:0;margin:0;overflow:auto hidden}.site-nav-link{scroll-snap-align:start;flex:none;min-height:52px;padding-inline:10px}.nav-cv{display:none}.theme-toggle{width:44px;height:44px}.hero-grid{grid-template-columns:repeat(8,minmax(0,1fr));row-gap:16px}.hero-copy,.hero-intro{grid-column:1/span 5}.hero-copy{grid-row:1}.hero-intro{grid-row:2}.hero-visual{grid-area:1/6/span 2/-1;max-width:none}.hero-statements,.hero-facts{grid-column:1/-1}.hero-statements{grid-row:3}.hero-facts{grid-row:4}.hero-title{font-size:clamp(3rem,7.5vw,4.25rem)}.hero-heading{font-size:clamp(1.45rem,3vw,1.8rem)}.hero-actions{margin-top:14px}}@media (width<=719px){:root{--page-gutter:20px;--hero-grid-gap:12px}.site-nav-inner{grid-template-rows:54px minmax(0,1fr)}.site-nav .brand>span:last-child{font-size:.82rem;display:inline}.site-nav-link{min-height:50px;padding-inline:9px;font-size:.72rem}.hero{padding-top:16px;padding-bottom:24px}.hero-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"copy copy copy copy""intro intro intro intro""visual visual visual visual""statements statements statements statements""facts facts facts facts";row-gap:16px}.hero-copy,.hero-intro,.hero-visual,.hero-statements,.hero-facts{grid-area:auto/1/auto/-1}.hero-copy{grid-area:copy}.hero-intro{grid-area:intro}.hero-visual{aspect-ratio:4/5;grid-area:visual;width:100%;max-width:none}.hero-statements{grid-area:statements}.hero-facts{grid-area:facts}.hero-title{max-width:7ch;margin-top:6px;font-size:min(3.45rem,15.5vw)}.hero-kicker{white-space:normal;flex-wrap:wrap;max-width:100%;line-height:1.15}.hero-heading{max-width:18ch;font-size:clamp(1.5rem,7vw,1.85rem)}.hero-subtitle{margin-top:8px;font-size:.96rem;line-height:1.42}.hero-identity{margin-top:10px}.hero-role,.hero-affiliation{font-size:.8rem}.hero-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin-top:14px;display:grid}.hero-actions .brutal-button:first-child{grid-column:1/-1}.hero-actions .brutal-button{min-height:48px;padding-inline:8px;font-size:.78rem}.hero-portrait-panel:before{inset:12px}.hero-geo{bottom:12px;right:12px}.hero-statement-line{grid-template-columns:24px minmax(0,1fr);gap:8px;padding:8px 0;font-size:.96rem}.hero-facts>div{min-height:68px;padding:9px 8px}.hero-facts dd{font-size:1.45rem}.hero-facts dt{font-size:.56rem}}@media (width<=379px){:root{--page-gutter:16px}.site-nav .brand>span:last-child{display:none}.hero-actions .brutal-button{font-size:.74rem}}.section-header{gap:10px;margin-bottom:20px}.section-header-rule{margin-top:2px}.publications-shell{padding-top:0}.papers-layout{grid-template-columns:minmax(0,8fr) minmax(280px,4fr);gap:clamp(24px,3vw,44px)}#publications .papers-list{border-top:var(--border);gap:0}#publications .bibliography-entry{border:0;border-bottom:var(--border);min-height:0;box-shadow:none;background:0 0;grid-template-columns:42px minmax(0,1fr);gap:14px;padding:16px 0 18px;display:grid}#publications .bibliography-entry:hover{background:0 0;transform:none}.paper-number{color:var(--accent-secondary);padding-top:3px;font-size:.72rem;font-weight:700;line-height:1}#publications .paper-main{gap:8px}#publications .paper-title{text-wrap:pretty;order:1;max-width:58ch;font-size:clamp(1.08rem,1.35vw,1.28rem);line-height:1.2}#publications .paper-tags{order:2}#publications .paper-details{text-wrap:pretty;order:3;max-width:76ch;margin-top:0}#publications .paper-doi{margin-left:auto;padding:6px 0}.research-instrument{border:var(--border);background:var(--paper-light);box-shadow:var(--shadow-sm);padding:16px}.research-instrument .citation-metric-card{box-shadow:none}.project-layout{gap:24px}.project-featured-list{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:18px}.project-card-featured{grid-template-columns:1fr;min-height:338px}.project-card-featured .project-card-body{grid-area:1/1;justify-content:flex-start;align-self:stretch;padding:22px}.project-card-featured .project-visual-pane{border-top:var(--border);border-left:0;grid-area:2/1;min-height:146px;padding:12px}.project-card-featured .project-identity-mark{min-height:122px}.project-support-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;display:grid}.project-card-compact{border:0;border-top:var(--border);min-height:0;box-shadow:none;background:0 0;grid-template-columns:86px minmax(0,1fr)}.project-card-compact:nth-last-child(-n+2){border-bottom:var(--border)}.project-card-compact .project-visual-pane{border-right:0;min-height:136px;padding:8px}.project-card-compact .project-card-body{padding:16px 0 16px 14px}.project-card-compact h3{font-size:1.05rem;line-height:1.16}.project-card-compact p{margin-bottom:10px;font-size:.9rem;display:block;overflow:visible}.project-card-compact .project-meta{gap:5px}.project-card-compact .project-link-text{margin-top:10px}.project-card-compact:hover,.project-card-compact:focus-visible{box-shadow:none;transform:translate(4px)}.experience-ledger{gap:34px;margin-top:0}.exp-ledger-group{grid-template-columns:minmax(150px,2fr) minmax(0,10fr);gap:clamp(20px,3vw,42px)}.exp-group-label{border:0;border-bottom:var(--border);box-shadow:none;color:var(--accent-secondary);background:0 0;padding:0 0 10px}.exp-group-label h3{font-size:.82rem}.exp-ledger-list{gap:0;padding:0;position:relative}.exp-ledger-list:before{background:var(--ink);content:"";width:2px;position:absolute;top:8px;bottom:8px;left:6px}.exp-route-item{border:0;border-bottom:var(--border);box-shadow:none;background:0 0;grid-template-columns:16px minmax(112px,1.6fr) minmax(0,8.4fr);align-items:start;gap:14px;padding:0 0 18px;display:grid;position:relative}.exp-route-item+.exp-route-item{padding-top:18px}.exp-route-node{z-index:1;border:3px solid var(--ink);background:var(--paper);width:14px;height:14px;margin-top:3px}.exp-route-item:first-child .exp-route-node{background:var(--accent)}.exp-date{white-space:normal;color:var(--accent-secondary);font-size:.76rem;line-height:1.3}.exp-route-main h3{text-transform:none;margin:0;font-size:1.05rem;line-height:1.2}.exp-route-main h3 span,.exp-route-main h3 small{display:block}.exp-route-main h3 small{color:var(--muted);font-family:var(--font-body);margin-top:4px;font-size:.9rem;font-weight:500;line-height:1.35}.exp-body{max-width:70ch;color:var(--muted);white-space:normal;margin:8px 0 0;font-size:.92rem;line-height:1.45;overflow:visible}.skills-table{border:0;border-top:var(--border);border-bottom:var(--border);box-shadow:none;background:0 0}.skills-table-row{border-bottom:var(--border);min-height:74px}.skills-stage-label{color:var(--accent-secondary);border-right:var(--border);background:0 0;padding:14px 16px 14px 0;font-size:.72rem}.skills-stage-badges{gap:8px 14px;margin:0;padding:14px 0 14px 16px;list-style:none}.skills-stage-badges .skill-badge{box-shadow:none;color:var(--ink);background:0 0;border:0;gap:6px;padding:0;font-size:.78rem}.skills-stage-badges .skill-badge:after{background:var(--accent-secondary);content:"";width:4px;height:4px}.skills-stage-badges .skill-badge[data-gold=true]{color:var(--ink);background:0 0}.skills-stage-badges .skill-badge[data-gold=true]:after{background:var(--accent)}.education-block{border-top:var(--border);margin-top:34px;padding-top:16px}.education-title{box-shadow:none;color:var(--accent-secondary);background:0 0;border:0;margin:0 0 16px;padding:0;font-size:.82rem}.education-list{gap:18px}.education-row{border:0;border-top:var(--border);box-shadow:none;background:0 0;gap:7px;padding:14px 0 0}.education-row h3{text-wrap:pretty;font-size:1.02rem;line-height:1.2}.education-row p{font-size:.9rem;line-height:1.42}.contact-section{padding-block:clamp(64px,8vw,112px)}.contact-form-shell{max-width:760px;margin-top:0;display:block}.contact-card{border:var(--border);background:var(--paper-light);box-shadow:var(--shadow-sm);padding:clamp(18px,2.5vw,30px)}.contact-form{gap:16px}.contact-form-field textarea{min-height:156px;max-height:320px}.site-footer{padding:18px 0}.footer-inner{align-items:end}.footer-meta{flex-direction:row;align-items:center;gap:14px}@media (width<=1023px){.project-featured-list{grid-template-columns:1fr}.project-card-featured{grid-template-columns:minmax(0,7fr) minmax(220px,5fr);min-height:232px}.project-card-featured .project-card-body{grid-area:1/1;padding:22px}.project-card-featured .project-visual-pane{border-top:0;border-left:var(--border);grid-area:1/2;min-height:232px}.project-card-featured .project-identity-mark{min-height:184px}.exp-ledger-group{grid-template-columns:1fr;gap:14px}.exp-group-label{position:static}.education-list{grid-template-columns:1fr}}@media (width<=768px){#publications .bibliography-entry{grid-template-columns:30px minmax(0,1fr);gap:10px;padding-block:14px 16px}#publications .paper-title{font-size:1.06rem}#publications .paper-doi{margin-left:0}#publications .papers-chart{clip:auto;white-space:normal;width:auto;height:auto;margin:0;position:static;overflow:visible}#publications .papers-chart .instrument-header{display:flex}#publications .papers-chart svg{display:block}#publications .papers-chart .citation-legend{display:flex}#publications .papers-chart .citation-metrics-grid{display:grid}.project-support-list{grid-template-columns:1fr}.project-card-compact:nth-last-child(-n+2){border-bottom:0}.project-card-compact:last-child{border-bottom:var(--border)}.skills-table-row{grid-template-columns:1fr}.skills-stage-label{border-right:0;border-bottom:var(--border);padding:10px 0}.skills-stage-badges{padding:12px 0}}@media (width<=640px){.project-card-featured{grid-template-columns:1fr}.project-card-featured .project-visual-pane{border-top:var(--border);border-left:0;grid-area:2/1;min-height:158px}.project-card-featured .project-card-body{grid-area:1/1}.project-card-featured .project-identity-mark{min-height:132px}.exp-route-item{grid-template-columns:16px minmax(0,1fr);gap:10px}.exp-date,.exp-route-main{grid-column:2}.footer-inner{align-items:flex-start}.footer-meta{text-align:left;flex-direction:column;align-items:flex-start;gap:5px}}.atlas-ann-field,.atlas-gis-layers,.atlas-route-diagram{width:100%;height:auto}.atlas-ann-field .ann-connections path{opacity:.28;stroke:currentColor;stroke-width:1.2px}.atlas-ann-field .ann-node{fill:var(--paper-light);stroke:var(--ink);stroke-width:2px}.atlas-ann-field .ann-node-light{opacity:.72}.atlas-ann-field .ann-node-heavy{fill:var(--accent);stroke-width:2.8px}.atlas-ann-field .ann-layer-4 .ann-node{fill:var(--accent-secondary);stroke:var(--ink)}.atlas-ann-field .ann-layer-label,.atlas-gis-layers .gis-layer-label,.atlas-route-diagram text{fill:currentColor;stroke:none;font-family:var(--font-mono);letter-spacing:0;font-size:10px;font-weight:700}.atlas-route-diagram .route-corridor{stroke:var(--accent);stroke-width:6px}.atlas-route-diagram .route-direction-tick{stroke:currentColor;stroke-width:2px}.atlas-route-diagram .route-stop circle{fill:var(--paper-light);stroke:var(--ink);stroke-width:3px}.atlas-route-diagram .route-stop:first-of-type circle{fill:var(--accent)}.atlas-gis-layers .gis-layer-plane{fill:var(--paper-light);stroke:var(--ink);stroke-width:1.5px}.atlas-gis-layers .gis-layer-feature{stroke:currentColor;stroke-width:2.5px}.atlas-gis-layers .gis-layer-network .gis-layer-feature{stroke:var(--accent);stroke-width:5px}.atlas-gis-layers .gis-layer-land-use .gis-layer-feature{fill:var(--accent-secondary-soft);stroke:var(--accent-secondary)}.atlas-gis-layers .gis-layer-facilities .gis-layer-feature{stroke:var(--accent-red);stroke-width:3px}.atlas-gis-layers .gis-layer-demand .gis-layer-feature{opacity:.52;stroke:var(--accent-secondary);stroke-width:8px}.atlas-scale-bar{width:100%;color:var(--ink);fill:none;display:block}.atlas-scale-bar path,.atlas-scale-bar rect{stroke:currentColor;stroke-width:2px}.atlas-scale-bar .scale-segment-dark{fill:var(--ink)}.atlas-scale-bar .scale-segment-light{fill:var(--paper-light)}.atlas-scale-bar text{fill:currentColor;stroke:none;font-family:var(--font-mono);letter-spacing:0;font-size:11px;font-weight:700}.atlas-scale-bar .scale-nts{fill:var(--accent-red);font-size:11px}.coordinate-datum{gap:2px;display:grid}.coordinate-datum b{color:var(--on-ink-faint);font-weight:700}.hero-bg-ann .ann-layer-label,.hero-bg-route text{display:none}.hero-bg-ann{width:min(360px,42vw)}.hero-bg-route{width:min(500px,48vw);top:92px}.hero-bg-route .route-corridor{stroke-width:4px}.hero-bg-route .route-stop circle{fill:var(--paper)}.hero-geo .coordinate-place{color:var(--accent)}.skills-method-plate{border-top:var(--border);border-bottom:var(--border);grid-template-columns:minmax(0,7fr) minmax(280px,5fr);min-height:190px;margin:0 0 24px;display:grid}.skills-method-ann,.skills-method-gis{min-width:0;padding:14px 18px}.skills-method-ann{border-right:var(--border);align-items:center;display:flex}.skills-method-ann .atlas-ann-field{max-height:170px}.skills-method-gis{grid-template-rows:minmax(0,1fr) auto;align-items:center;display:grid}.skills-method-gis .atlas-gis-layers{max-height:152px}.skills-method-gis .atlas-scale-bar{justify-self:end;width:min(220px,72%)}.exp-group-route{width:min(240px,100%);color:var(--accent-secondary);margin-top:8px}.exp-group-route .route-corridor{stroke:var(--accent-secondary);stroke-width:4px}.exp-group-route .route-stop circle{fill:var(--paper)}.footer-coordinate{color:var(--on-ink-muted);flex-wrap:wrap;gap:4px 10px;display:flex}.footer-coordinate .coordinate-place{color:var(--accent)}.citation-gridline line{opacity:.26;stroke:var(--ink);stroke-width:1px}.citation-gridline:first-child line{opacity:1;stroke-width:2px}.citation-gridline text{fill:var(--muted);stroke:none;font-family:var(--font-mono);font-size:9px}@media (width<=768px){.skills-method-plate{grid-template-columns:1fr}.skills-method-ann{border-right:0;border-bottom:var(--border)}.skills-method-ann,.skills-method-gis{padding:12px 0}.skills-method-ann .atlas-ann-field,.skills-method-gis .atlas-gis-layers{width:min(100%,520px);margin-inline:auto}.exp-group-route{width:min(240px,72vw)}}@media (width<=719px){.hero-bg-ann{width:min(360px,100vw);left:0}}@media (width<=420px){.skills-method-plate{margin-bottom:18px}.skills-method-gis .atlas-scale-bar{width:min(200px,82%)}.footer-coordinate{display:grid}}@media (forced-colors:active){.atlas-ann-field .ann-node,.atlas-gis-layers .gis-layer-plane,.atlas-route-diagram .route-stop circle,.atlas-scale-bar .scale-segment-light{fill:canvas;stroke:canvastext}.atlas-ann-field .ann-node-heavy,.atlas-ann-field .ann-layer-4 .ann-node,.atlas-scale-bar .scale-segment-dark{fill:canvastext;stroke:canvastext}.atlas-ann-field,.atlas-gis-layers,.atlas-route-diagram,.atlas-scale-bar{color:canvastext}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
