@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-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-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--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}.absolute{position:absolute}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.end\!{inset-inline-end:var(--spacing)!important}.contents{display:contents}.flex{display:flex}.grid{display:grid}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.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,)}}:root{--ink:#18201b;--muted:#5f6962;--line:#d9dfd8;--line-strong:#c7d0c5;--paper:#fbfcf8;--panel:#fff;--panel-warm:#fffefb;--teal:#17645d;--teal-dark:#0f4742;--rust:#8b4638;--violet:#5c527f;--ochre:#9a6b2e;--soft-green:#eef4ed;--soft-rust:#f7ece7;--soft-violet:#f0eef8;--shadow:0 18px 42px #18201b14;--shadow-soft:0 12px 28px #18201b0e;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:Georgia, "Iowan Old Style", "Palatino Linotype", Palatino, "Times New Roman", serif}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{color:var(--ink);font-family:var(--font-sans);background-color:#0000;background-image:linear-gradient(90deg,#17645d09 1px,#0000 1px),linear-gradient(0deg,#8b463808 1px,#0000 1px),linear-gradient(#fbfcf8 0%,#f7f8f1 58%,#fbfcf8 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:72px 72px,72px 72px,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;margin:0;overflow-x:hidden}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}code{border:1px solid var(--line);background:#fff;border-radius:4px;padding:.08rem .28rem;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.92em}.site-header{z-index:10;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(90deg,#eef4ed85,#fffefbe0),#fbfcf8f0;border-bottom:1px solid #c7d0c5d1;justify-content:space-between;align-items:center;gap:1.2rem;width:100%;max-width:100vw;padding:.82rem clamp(1rem,4vw,3rem);display:flex;position:sticky;top:0;box-shadow:inset 0 1px #ffffffc2}.site-name{color:var(--teal-dark);font-family:var(--font-display);flex:none;font-size:1.08rem;font-weight:700;line-height:1.2;text-decoration:none}.site-nav{min-width:0;color:var(--muted);flex-wrap:wrap;flex:auto;justify-content:flex-end;gap:.45rem 1rem;font-size:.92rem;font-weight:650;display:flex}.site-nav a{overflow-wrap:anywhere;line-height:1.2;text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--teal-dark)}.site-nav a[aria-current=page]{text-decoration:underline}.section-shell{width:calc(100% - 2rem);max-width:1120px;margin:0 auto}main,.section-shell,.hero-copy,.hero-visual,.publication-source-panel,.page-hero>*,.split-section>*,.research-hero>*,.software-hero>*,.teaching-hero>*,.publications-hero>*,.supervision-hero>*,.bio-hero>*,.aikido-hero>*{min-width:0;max-width:100%}.hero{isolation:isolate;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:center;gap:clamp(2rem,5vw,5rem);min-height:calc(100vh - 70px);padding:clamp(3rem,7vw,6rem) 0 3.5rem;display:grid;position:relative}.hero:before{z-index:-1;height:min(58vh,520px);box-shadow:var(--shadow-soft);content:"";background:linear-gradient(116deg,#fffefbdb,#eef4ed75),linear-gradient(90deg,#17645d1c 1px,#0000 1px) 0 0/34px 34px,linear-gradient(0deg,#5c527f14 1px,#0000 1px) 0 0/34px 34px;border:1px solid #c7d0c5b8;position:absolute;inset:clamp(1.2rem,3vw,2.4rem) max(30%,18rem) auto -2rem}.eyebrow{color:var(--rust);overflow-wrap:anywhere;margin:0 0 .75rem;font-size:.88rem;font-weight:760}h1,h2,h3,p{margin-top:0}h1{max-width:760px;color:var(--teal-dark);font-family:var(--font-display);margin-bottom:1rem;font-size:clamp(2.75rem,5.4vw,4.9rem);font-weight:700;line-height:1}h2{color:var(--teal-dark);font-family:var(--font-display);margin-bottom:.7rem;font-size:clamp(2rem,4vw,3.3rem);font-weight:700;line-height:1.04}h3{line-height:1.22}.hero h1{max-width:8.7ch;color:var(--ink);font-size:clamp(3.2rem,8vw,6.6rem);line-height:.96}.hero-lede,.section-intro,.page-hero p{max-width:720px;color:var(--muted);overflow-wrap:break-word;font-size:clamp(1.06rem,1.8vw,1.32rem);line-height:1.65}.hero-actions{flex-wrap:wrap;gap:.75rem;margin:2rem 0;display:flex}.primary-link,.secondary-link,.text-link{overflow-wrap:anywhere;border-radius:6px;align-items:center;max-width:100%;min-height:2.75rem;font-weight:720;line-height:1.25;text-decoration:none;display:inline-flex}.primary-link{border:1px solid var(--teal-dark);background:linear-gradient(180deg, #ffffff1f, transparent), var(--teal);color:#fff;text-align:center;justify-content:center;padding:.75rem 1rem;box-shadow:0 8px 18px #0f474224}.primary-link:hover{background:var(--teal-dark)}.secondary-link{border:1px solid var(--line-strong);color:var(--teal-dark);text-align:center;background:#fffefbdb;justify-content:center;padding:.7rem 1rem}.text-link{color:var(--teal-dark);text-align:left;justify-content:flex-start}.quick-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;max-width:760px;margin:0;display:grid}.quick-facts div,.stats-grid div,.supervision-stats div,.software-summary div{border:1px solid var(--line);background:#fffefbc2;border-radius:8px;padding:1rem}.quick-facts dt,.stats-grid span,.supervision-stats span,.software-summary span{color:var(--muted);font-size:.82rem;display:block}.quick-facts dd{margin:.2rem 0 0;font-weight:760}.hero-profiles{margin-top:1.2rem}.hero-profiles p{color:var(--muted);margin:0;font-size:.82rem;font-weight:760}.profile-links{grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;margin:1.2rem 0 0;padding:0;list-style:none;display:grid}.profile-links li{min-width:0}.profile-links a{--profile-accent:var(--teal);border:1px solid var(--line);background:var(--panel);overflow-wrap:anywhere;border-radius:8px;align-content:start;gap:.35rem;min-height:5rem;padding:.85rem;text-decoration:none;display:grid;position:relative;overflow:hidden}.profile-links a:before{background:var(--profile-accent);content:"";opacity:.78;height:4px;position:absolute;inset:0 0 auto}.profile-links li:nth-child(2) a{--profile-accent:var(--rust)}.profile-links li:nth-child(3) a{--profile-accent:var(--violet)}.profile-links li:nth-child(4) a{--profile-accent:var(--ochre)}.profile-links li:nth-child(5) a{--profile-accent:#496a54}.profile-links a:hover{border-color:var(--profile-accent)}.profile-links span{color:var(--teal-dark);font-weight:800;line-height:1.25}.profile-links small{color:var(--muted);font-size:.82rem;line-height:1.4}.profile-links-compact{flex-wrap:wrap;gap:.45rem;max-width:100%;margin-top:.55rem;display:flex}.profile-links-compact a{border-radius:6px;flex:0 auto;align-items:center;min-height:2.25rem;padding:.48rem .66rem;display:inline-flex}.profile-links-compact a:before{height:3px}.profile-links-compact span{font-size:.88rem}.hero-visual{flex-direction:column;justify-content:center;align-self:stretch;gap:1rem;display:flex;position:relative}.portrait-card{background:linear-gradient(135deg, #fffefbf5, #eef4ed94), var(--panel-warm);box-shadow:var(--shadow);border:1px solid #c7d0c5d6;border-radius:8px;justify-items:start;gap:.75rem;padding:.82rem;display:grid;position:relative}.portrait-card:before{content:"";opacity:.56;pointer-events:none;background-color:#0000;background-image:linear-gradient(90deg,#17645d1f 1px,#0000 1px),linear-gradient(0deg,#8b463817 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:18px 18px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border-left:1px solid #17645d24;width:38%;position:absolute;top:.82rem;bottom:5.2rem;right:.82rem}.portrait-card img{aspect-ratio:.89;object-fit:cover;border:1px solid var(--line);width:min(100%,380px);box-shadow:var(--shadow);border-radius:8px;display:block;position:relative}.portrait-card p{border-left:3px solid var(--rust);max-width:380px;color:var(--muted);margin:0;padding-left:.85rem;font-size:.92rem;line-height:1.55;position:relative}.math-plate{background:var(--panel-warm);width:100%;min-height:240px;box-shadow:var(--shadow);aspect-ratio:32/21;border:1px solid #c7d0c5e6;border-radius:8px;margin:0;position:relative;overflow:hidden}.math-plate:after{content:"";pointer-events:none;border:1px solid #d9dfd8c2;position:absolute;inset:.55rem}.math-plate svg{width:100%;height:100%;min-height:inherit;display:block}.math-plate pattern path{fill:none;stroke:#17645d1f;stroke-width:1px}.plate-paper{fill:var(--panel-warm)}.plate-grid{stroke:#d9dfd8eb;stroke-width:1.2px}.plate-contour{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.contour-a{stroke:#8b4638c7}.contour-b{stroke:#17645db8}.contour-c{stroke:#5c527fcc}.plate-tree{fill:none;stroke:var(--teal-dark);stroke-linecap:round;stroke-linejoin:round;stroke-width:4px}.plate-complex path:first-child{fill:#5c527f17;stroke:#5c527fbd;stroke-width:2.2px}.plate-complex path:last-child{fill:none;stroke:#5c527f85;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px}.plate-watershed path{fill:none;stroke:#9a6b2e94;stroke-linecap:round;stroke-width:3px}.plate-node{fill:#fffefb;stroke:var(--teal-dark);stroke-width:3px}.section-math-plate{min-height:150px;box-shadow:none;flex:0 0 min(300px,34vw)}.research-band,.software-band,.teaching-band,.publication-preview,.all-publications,.type-summary,.audit-panel{padding:clamp(3rem,7vw,5.5rem) 0}.research-band{border-top:1px solid var(--line)}.section-action{margin-top:1.4rem}.section-heading{max-width:760px}.row-heading{justify-content:space-between;align-items:end;gap:1rem;max-width:none;display:flex}.visual-heading{align-items:center}.topic-grid,.teaching-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:2rem 0 0;padding:0;list-style:none;display:grid}.topic-grid li,.teaching-list li{border:1px solid var(--line);background:#fffefbd6;border-radius:8px;min-height:4.25rem;padding:1rem;font-weight:690;line-height:1.35}.topic-grid li:nth-child(3n+1){background:var(--soft-green)}.topic-grid li:nth-child(3n+2){background:var(--soft-rust)}.topic-grid li:nth-child(3n+3){background:var(--soft-violet)}.split-section{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(280px,.86fr);align-items:center;gap:2rem;padding:clamp(2.5rem,6vw,4.5rem) 0;display:grid}.supervision-band{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);align-items:center;gap:2rem;padding:clamp(2.5rem,6vw,4.5rem) 0;display:grid}.software-band{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);align-items:center;gap:2rem;padding:clamp(2.5rem,6vw,4.5rem) 0;display:grid}.software-summary{grid-template-columns:1fr;gap:.75rem;display:grid}.software-summary div{min-width:0}.software-summary strong{color:var(--teal-dark);overflow-wrap:normal;font-size:clamp(1.35rem,2.4vw,1.95rem);line-height:1.08;display:block}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.supervision-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:2rem;display:grid}.supervision-stats.compact{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}.stats-grid strong,.supervision-stats strong{color:var(--teal-dark);font-size:clamp(2rem,4vw,3.4rem);line-height:1;display:block}.publication-list{gap:.85rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.publication-list.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.publication-item{--pub-accent:var(--teal);border:1px solid var(--line);background:var(--panel);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1rem;padding:1rem;display:grid;position:relative;overflow:hidden}.publication-item:before{background:var(--pub-accent);content:"";opacity:.74;width:4px;position:absolute;inset:0 auto 0 0}.publication-item[data-publication-type=Conference\ paper],.type-summary li[data-publication-type=Conference\ paper]{--pub-accent:var(--teal-dark)}.publication-item[data-publication-type=Journal\ article],.type-summary li[data-publication-type=Journal\ article]{--pub-accent:var(--rust)}.publication-item[data-publication-type=Book],.type-summary li[data-publication-type=Book]{--pub-accent:var(--violet)}.publication-item[data-publication-type=Book\ chapter],.type-summary li[data-publication-type=Book\ chapter]{--pub-accent:var(--ochre)}.publication-item[data-publication-type=Proceedings],.publication-item[data-publication-type=Special\ issue],.type-summary li[data-publication-type=Proceedings],.type-summary li[data-publication-type=Special\ issue]{--pub-accent:#496a54}.publication-item[data-publication-type=Thesis],.publication-item[data-publication-type=HDR\ thesis],.type-summary li[data-publication-type=Thesis],.type-summary li[data-publication-type=HDR\ thesis]{--pub-accent:#52668c}.publication-item[data-publication-type=Patent],.publication-item[data-publication-type=Poster],.publication-item[data-publication-type=Other],.type-summary li[data-publication-type=Patent],.type-summary li[data-publication-type=Poster],.type-summary li[data-publication-type=Other]{--pub-accent:#6e6158}.publication-meta{flex-wrap:wrap;gap:.35rem;margin-bottom:.65rem;display:flex}.publication-meta span{border:1px solid var(--line);background:var(--soft-green);color:var(--teal-dark);border-radius:999px;padding:.18rem .48rem;font-size:.78rem;font-weight:760}.publication-meta span:nth-child(2){border-color:var(--pub-accent)}@supports (color:color-mix(in lab, red, red)){.publication-meta span:nth-child(2){border-color:color-mix(in srgb, var(--pub-accent) 38%, var(--line))}}.publication-meta span:nth-child(2){background:var(--pub-accent)}@supports (color:color-mix(in lab, red, red)){.publication-meta span:nth-child(2){background:color-mix(in srgb, var(--pub-accent) 10%, #fff)}}.publication-meta span:nth-child(2){color:var(--pub-accent)}.publication-meta span:nth-child(3){background:var(--soft-rust);color:var(--rust)}.publication-item h3{margin-bottom:.45rem;font-size:1.04rem;font-weight:780}.authors,.venue,.cleanup-note,.data-note{color:var(--muted);margin-bottom:0;font-size:.92rem;line-height:1.5}.cleanup-note{color:var(--rust);margin-top:.7rem}.publication-links{flex-wrap:wrap;justify-content:flex-end;gap:.45rem;min-width:0;max-width:min(100%,240px);display:flex}.publication-links a{border:1px solid var(--line);color:var(--teal-dark);overflow-wrap:anywhere;background:#fff;border-radius:6px;justify-content:center;align-items:center;padding:.42rem .58rem;font-size:.83rem;font-weight:760;line-height:1.2;text-decoration:none;display:inline-flex}.publication-links a:hover{border-color:var(--teal);background:var(--soft-green)}.data-note{margin-top:1rem}.page-hero{padding:clamp(3rem,8vw,6rem) 0 clamp(2rem,5vw,3rem)}.page-hero h1{margin-bottom:1rem}.publications-hero{grid-template-columns:minmax(0,1fr) minmax(320px,.62fr);align-items:center;gap:clamp(2rem,5vw,4rem);display:grid}.publication-source-panel{gap:1rem;display:grid}.publications-visual{border:1px solid var(--line);width:100%;min-height:250px;box-shadow:var(--shadow);aspect-ratio:32/21;background:#fffefb;border-radius:8px;margin:0;overflow:hidden}.publications-visual svg{width:100%;height:100%;min-height:inherit;display:block}.publication-grid{fill:none;stroke:#17645d1a;stroke-width:1px}.publication-pages rect{fill:#fffefbd6;stroke:#17645d57;stroke-width:2px}.publication-pages rect:nth-child(2){stroke:#8b463861}.publication-pages rect:nth-child(3){stroke:#5c527f61}.publication-lines path{fill:none;stroke:#0f474294;stroke-linecap:round;stroke-width:4px}.publication-flow{fill:none;stroke-linecap:round;stroke-linejoin:round}.publication-flow.primary{stroke:#0f4742ad;stroke-width:4px}.publication-flow.secondary{stroke:#8b46388a;stroke-width:3px}.publication-nodes circle{fill:#fffefb;stroke:var(--teal-dark);stroke-width:3px}.publication-tags rect{fill:var(--soft-rust);stroke:#8b46385c;stroke-width:2px}.publication-tags rect:last-child{fill:var(--soft-green);stroke:#17645d57}.source-facts{gap:.65rem;margin:0;display:grid}.source-facts div{border:1px solid var(--line);background:#ffffffc7;border-radius:8px;padding:.8rem .9rem}.source-facts dt{color:var(--muted);font-size:.78rem;font-weight:760}.source-facts dd{color:var(--teal-dark);margin:.2rem 0 0;font-weight:760;line-height:1.35}.publication-metrics-section{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(280px,.62fr);align-items:center;gap:2rem;padding:clamp(2.5rem,6vw,4.5rem) 0;display:grid}.publication-process-note{border-left:3px solid var(--rust);padding-left:1rem}.supervision-hero{grid-template-columns:minmax(0,1fr) minmax(320px,.62fr);align-items:center;gap:clamp(2rem,5vw,4rem);display:grid}.supervision-visual{border:1px solid var(--line);width:100%;min-height:280px;box-shadow:var(--shadow);aspect-ratio:32/21;background:#fffefb;border-radius:8px;margin:0;overflow:hidden}.supervision-visual svg{width:100%;height:100%;min-height:inherit;display:block}.lineage-grid{fill:none;stroke:#17645d1a;stroke-width:1px}.lineage-link{fill:none;stroke-linecap:round;stroke-linejoin:round}.lineage-link.main{stroke:#0f4742b8;stroke-width:4px}.lineage-link.secondary{stroke:#8b46389e;stroke-width:3px}.lineage-link.tertiary{stroke:#5c527f7a;stroke-width:2.5px}.lineage-cluster circle{fill:#fffefb;stroke:currentColor;stroke-width:3px}.lineage-cluster.left{color:var(--rust)}.lineage-cluster.right{color:var(--teal-dark)}.lineage-cluster.center{color:var(--violet)}.lineage-hub{fill:var(--soft-green);stroke:var(--teal-dark);stroke-width:4px}.supervision-hero>.supervision-stats{grid-column:1/-1;margin-top:0}.wide-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.large-note{max-width:600px;margin-top:0}.type-summary{border-top:1px solid var(--line)}.type-summary ul{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.type-summary li{--pub-accent:var(--teal);border:1px solid var(--line);background:var(--panel);border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex;position:relative}.type-marker{border:2px solid var(--pub-accent);background:#fffefb;border-radius:999px;flex:none;width:.72rem;height:.72rem}.type-summary span{color:var(--muted)}.type-summary li>span:nth-child(2){flex:auto}.audit-panel{border-top:1px solid var(--line)}.audit-panel p{color:var(--muted)}.audit-panel ul{gap:.75rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.audit-panel li{border:1px solid var(--line);background:var(--soft-rust);border-radius:8px;grid-template-columns:minmax(0,.95fr) minmax(260px,1.05fr);gap:1rem;padding:1rem;display:grid}.audit-panel span,.candidate-links a{color:var(--rust);font-size:.9rem;display:block}.candidate-links{gap:.35rem;display:grid}.candidate-links a{color:var(--teal-dark);overflow-wrap:anywhere}.publications-explorer{margin-top:1.5rem}.type-shortcuts{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.55rem;margin-bottom:.75rem;display:grid}.type-shortcuts button{--shortcut-accent:var(--teal);appearance:none;border:1px solid var(--line);background:var(--panel);min-height:4.35rem;color:var(--ink);cursor:pointer;font:inherit;text-align:left;overflow-wrap:anywhere;border-radius:8px;align-content:space-between;gap:.65rem;padding:.8rem;display:grid}.type-shortcuts button:before{border-top:3px solid var(--shortcut-accent);content:"";opacity:.78;width:100%;display:block}.type-shortcuts button[data-category=journal]{--shortcut-accent:var(--rust)}.type-shortcuts button[data-category=books],.type-shortcuts button[data-category=chapters]{--shortcut-accent:var(--violet)}.type-shortcuts button[data-category=conferences]{--shortcut-accent:var(--teal-dark)}.type-shortcuts button[data-category=reports]{--shortcut-accent:var(--ochre)}.type-shortcuts button[data-category=issues-proceedings]{--shortcut-accent:#496a54}.type-shortcuts button[data-category=theses]{--shortcut-accent:#52668c}.type-shortcuts button[data-category=other-publications]{--shortcut-accent:#6e6158}.type-shortcuts button:hover{border-color:var(--teal)}.type-shortcuts button[aria-pressed=true]{border-color:var(--shortcut-accent);background:var(--shortcut-accent)}@supports (color:color-mix(in lab, red, red)){.type-shortcuts button[aria-pressed=true]{background:color-mix(in srgb, var(--shortcut-accent) 9%, #fff)}}.shortcut-label{align-items:center;gap:.5rem;display:flex}.shortcut-mark{border:2px solid var(--shortcut-accent);background:#fffefb;border-radius:999px;flex:none;width:.72rem;height:.72rem}.type-shortcuts .shortcut-label span:last-child{color:var(--muted);font-size:.82rem;font-weight:760;line-height:1.2;display:block}.type-shortcuts strong{color:var(--teal-dark);margin-top:.25rem;font-size:1.45rem;line-height:1;display:block}.filter-panel{border:1px solid var(--line);background:linear-gradient(to bottom, #eef4ed7a, transparent 72%), var(--panel);border-radius:8px;grid-template-columns:minmax(260px,1.5fr) minmax(160px,.7fr) minmax(140px,.55fr) minmax(260px,1fr);align-items:end;gap:.75rem;padding:1rem;display:grid}.filter-panel label,.status-toggle{gap:.38rem;display:grid}.filter-panel span,.status-toggle>span{color:var(--muted);font-size:.82rem;font-weight:760}.filter-panel input,.filter-panel select{border:1px solid var(--line);width:100%;min-height:2.7rem;color:var(--ink);font:inherit;background:#fff;border-radius:6px;padding:.55rem .7rem}.filter-panel input:focus,.filter-panel select:focus{border-color:var(--teal);outline:3px solid #17645d29}.status-toggle div{border:1px solid var(--line);border-radius:6px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.status-toggle button,.result-bar button{appearance:none;color:var(--muted);cursor:pointer;font:inherit;background:#fff;border:0;font-size:.88rem;font-weight:760}.status-toggle button{text-transform:capitalize;min-height:2.65rem;padding:0 .35rem;font-size:.8rem}.status-toggle button+button{border-left:1px solid var(--line)}.status-toggle button[aria-pressed=true]{background:var(--teal);color:#fff}.result-bar{color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0 .8rem;display:flex}.result-bar p{margin:0}.result-bar strong{color:var(--teal-dark)}.result-bar button{border:1px solid var(--line);border-radius:6px;min-height:2.35rem;padding:.45rem .75rem}.empty-results{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:8px;padding:1rem}.year-list{gap:.8rem;margin-top:2rem;display:grid}.year-group{border:1px solid var(--line);background:#ffffffc2;border-radius:8px;overflow:hidden}.year-group[open]{background:#ffffffe0;box-shadow:0 10px 28px #18201b0d}.year-group summary{cursor:pointer;color:var(--teal-dark);justify-content:space-between;align-items:center;padding:1rem;font-size:1.25rem;font-weight:800;display:flex}.year-group summary strong{border:1px solid var(--line);background:var(--soft-green);min-width:2.25rem;min-height:2.25rem;color:var(--teal-dark);border-radius:999px;place-items:center;font-size:.92rem;display:inline-grid}.year-group summary:hover{background:#eef4ed7a}.year-group .publication-list{margin:0;padding:0 1rem 1rem}.research-hero{isolation:isolate;grid-template-columns:minmax(0,1fr) minmax(300px,.65fr);align-items:center;gap:clamp(2rem,5vw,4rem);display:grid;position:relative}.research-hero:before{z-index:-1;content:"";background-color:#fffefb80;background-image:linear-gradient(90deg,#17645d1a 1px,#0000 1px),linear-gradient(0deg,#5c527f14 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border-top:1px solid #17645d26;border-bottom:1px solid #8b46381f;height:9rem;position:absolute;inset:auto 18% 1.6rem -1.5rem}.research-hero-plate{min-height:360px}.software-hero{grid-template-columns:minmax(0,1fr) minmax(320px,.64fr);align-items:center;gap:clamp(2rem,5vw,4rem);min-height:min(66vh,580px);padding:clamp(3rem,7vw,5.5rem) 0;display:grid}.software-panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;gap:1.1rem;padding:1rem;display:grid}.software-panel dl{gap:.6rem;margin:0;display:grid}.software-panel div{border-top:1px solid var(--line);grid-template-columns:minmax(7rem,.55fr) minmax(0,1fr);gap:.7rem;padding-top:.72rem;display:grid}.software-panel dt{color:var(--muted);font-size:.78rem;font-weight:760}.software-panel dd{margin:0;font-weight:760}.software-glyph{border:1px solid var(--line);background:linear-gradient(90deg, #17645d1a 1px, transparent 1px), linear-gradient(0deg, #5c527f1a 1px, transparent 1px), var(--soft-green);background-size:2.4rem 2.4rem;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:1rem;min-height:14rem;padding:1.25rem;display:grid;position:relative;overflow:hidden}.software-glyph:before,.software-glyph:after{content:"";transform-origin:0;border-top:2px solid #0f47425c;position:absolute}.software-glyph:before{width:62%;top:38%;left:18%;transform:rotate(17deg)}.software-glyph:after{width:68%;top:58%;left:16%;transform:rotate(-12deg)}.software-glyph span{z-index:1;border:2px solid var(--teal-dark);background:#fffefb;border-radius:999px;place-self:center;width:1.25rem;height:1.25rem;position:relative;box-shadow:0 0 0 .42rem #ffffffad}.software-glyph span:nth-child(2),.software-glyph span:nth-child(5){border-color:var(--rust)}.software-glyph span:nth-child(3),.software-glyph span:nth-child(6){border-color:var(--violet)}.software-projects{border-top:1px solid var(--line);padding:clamp(3rem,7vw,5rem) 0}.software-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-top:2rem;display:grid}.software-card{--software-accent:var(--teal);border:1px solid var(--line);background:var(--panel);border-radius:8px;align-content:start;gap:1rem;min-height:22rem;padding:1rem;display:grid;position:relative;overflow:hidden}.software-card:before{background:var(--software-accent);content:"";height:4px;position:absolute;inset:0 0 auto}.software-card:after{border:1px solid var(--software-accent);width:2.85rem;height:2.85rem;position:absolute;top:1rem;right:1rem}@supports (color:color-mix(in lab, red, red)){.software-card:after{border:1px solid color-mix(in srgb, var(--software-accent) 38%, var(--line))}}.software-card:after{background:linear-gradient(90deg, var(--software-accent) 1px, transparent 1px), linear-gradient(0deg, var(--software-accent) 1px, transparent 1px), var(--software-accent);border-radius:8px}@supports (color:color-mix(in lab, red, red)){.software-card:after{background:linear-gradient(90deg, color-mix(in srgb, var(--software-accent) 18%, transparent) 1px, transparent 1px), linear-gradient(0deg, color-mix(in srgb, var(--software-accent) 18%, transparent) 1px, transparent 1px), color-mix(in srgb, var(--software-accent) 7%, #fff)}}.software-card:after{content:"";opacity:.76;pointer-events:none;background-size:.7rem .7rem}.software-card.violet{--software-accent:var(--violet)}.software-card>div:first-child{min-width:0;padding-right:3.45rem}.software-status{border:1px solid var(--software-accent);width:fit-content;margin-bottom:.8rem}@supports (color:color-mix(in lab, red, red)){.software-status{border:1px solid color-mix(in srgb, var(--software-accent) 45%, var(--line))}}.software-status{background:var(--software-accent);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.software-status{background:color-mix(in srgb, var(--software-accent) 10%, #fff)}}.software-status{color:var(--software-accent);padding:.2rem .58rem;font-size:.74rem;font-weight:780}.software-card h3{margin-bottom:.35rem;font-size:clamp(1.6rem,3vw,2.25rem)}.software-subtitle{color:var(--muted);font-weight:720}.software-card>p{color:var(--muted);line-height:1.62}.software-role{border-left:3px solid var(--software-accent);background:var(--software-accent)}@supports (color:color-mix(in lab, red, red)){.software-role{background:color-mix(in srgb, var(--software-accent) 7%, #fff)}}.software-role{padding:.72rem .85rem}.software-links{flex-wrap:wrap;gap:.55rem;margin-top:auto;display:flex}.software-links a,.software-private-note{border:1px solid var(--line);background:var(--soft-green);color:var(--teal-dark);overflow-wrap:anywhere;border-radius:999px;justify-content:center;align-items:center;padding:.42rem .72rem;font-size:.84rem;font-weight:760;line-height:1.2;text-decoration:none;display:inline-flex}.software-card.violet .software-private-note{background:var(--soft-violet);color:var(--violet)}.software-reference{border-top:1px solid var(--line);grid-template-columns:minmax(0,.62fr) minmax(320px,1fr);align-items:start;gap:2rem;padding:clamp(3rem,7vw,5rem) 0;display:grid}.software-citation{border:1px solid var(--line);background:var(--soft-green);border-radius:8px;margin:0;padding:1rem}.software-citation blockquote{color:var(--ink);margin:0;font-size:clamp(1rem,1.8vw,1.18rem);line-height:1.62}.software-citation figcaption{color:var(--teal-dark);margin-top:1rem;font-weight:760}.teaching-hero{isolation:isolate;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);align-items:center;gap:clamp(2rem,5vw,4rem);display:grid;position:relative}.teaching-hero:before{z-index:-1;content:"";background:repeating-linear-gradient(#5c527f14 0 1px,#0000 1px 1.75rem),#fffefb85;border-top:1px solid #5c527f24;border-bottom:1px solid #17645d1f;height:11rem;position:absolute;inset:auto 22% 0 -1.5rem}.teaching-overview-panel{background:linear-gradient(180deg, #fffefbeb, #eef4ed70), var(--panel-warm);box-shadow:var(--shadow-soft);border:1px solid #c7d0c5e0;border-radius:8px;gap:1rem;padding:.82rem;display:grid}.teaching-visual{background:var(--panel-warm);width:100%;min-height:255px;box-shadow:none;aspect-ratio:32/21;border:1px solid #c7d0c5e6;border-radius:8px;margin:0;overflow:hidden}.teaching-visual svg{width:100%;height:100%;min-height:inherit;display:block}.teaching-grid-lines,.teaching-board path,.teaching-curve{fill:none}.teaching-grid-lines{stroke:#5c527f1f;stroke-width:1px}.teaching-board rect{fill:#fffefbdb;stroke:#17645d57;stroke-width:2px}.teaching-board path{stroke:#0f47427a;stroke-linecap:round;stroke-width:4px}.teaching-curve{stroke-linecap:round;stroke-linejoin:round}.teaching-curve.primary{stroke:#17645dad;stroke-width:4px}.teaching-curve.secondary{stroke:#8b463885;stroke-width:3px}.teaching-nodes circle{fill:#fffefb;stroke:var(--teal-dark);stroke-width:3px}.teaching-tiles rect{fill:var(--soft-violet);stroke:#5c527f5c;stroke-width:2px}.teaching-tiles rect:last-child{fill:var(--soft-rust);stroke:#8b463857}.teaching-facts{gap:.65rem;margin:0;display:grid}.teaching-facts div{border:1px solid var(--line);background:#fffefbd1;border-radius:8px;grid-template-columns:minmax(5.5rem,.45fr) minmax(0,1fr);align-items:start;gap:.75rem;padding:.85rem .9rem;display:grid}.teaching-facts dt{color:var(--muted);font-size:.78rem;font-weight:760}.teaching-facts dd{gap:.18rem;margin:0;display:grid}.teaching-facts strong{color:var(--teal-dark);line-height:1.2}.teaching-facts span{color:var(--muted);font-size:.9rem;line-height:1.4}.teaching-note-panel{gap:.75rem;display:grid}.teaching-note-panel p{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:8px;margin:0;padding:1rem;line-height:1.55}.teaching-note-panel p:first-child{background:var(--soft-green);color:var(--ink)}.teaching-theme-card{--teaching-accent:var(--teal-dark);background:linear-gradient(180deg, #fffefbf0, #fffefbbd), repeating-linear-gradient(to bottom, transparent 0, transparent 1.55rem, var(--teaching-accent) 1.55rem, var(--teaching-accent) calc(1.55rem + 1px)), var(--panel);align-content:start;min-height:12.5rem;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.teaching-theme-card{background:linear-gradient(180deg, #fffefbf0, #fffefbbd), repeating-linear-gradient(to bottom, transparent 0, transparent 1.55rem, color-mix(in srgb, var(--teaching-accent) 12%, transparent) 1.55rem, color-mix(in srgb, var(--teaching-accent) 12%, transparent) calc(1.55rem + 1px)), var(--panel)}}.teaching-theme-card:after{border:1px solid var(--teaching-accent);width:4.2rem;height:3rem;position:absolute;bottom:1rem;right:1rem}@supports (color:color-mix(in lab, red, red)){.teaching-theme-card:after{border:1px solid color-mix(in srgb, var(--teaching-accent) 20%, transparent)}}.teaching-theme-card:after{background:linear-gradient(90deg, var(--teaching-accent) 1px, transparent 1px), linear-gradient(0deg, var(--teaching-accent) 1px, transparent 1px)}@supports (color:color-mix(in lab, red, red)){.teaching-theme-card:after{background:linear-gradient(90deg, color-mix(in srgb, var(--teaching-accent) 12%, transparent) 1px, transparent 1px), linear-gradient(0deg, color-mix(in srgb, var(--teaching-accent) 12%, transparent) 1px, transparent 1px)}}.teaching-theme-card:after{content:"";opacity:.62;pointer-events:none;background-size:.65rem .65rem}.teaching-theme-card:before{background:var(--teaching-accent);content:"";opacity:.78;height:4px;position:absolute;inset:0 0 auto}.teaching-theme-card[data-teaching-area=computer-science]{--teaching-accent:var(--violet)}.teaching-theme-card[data-teaching-area=morphology]{--teaching-accent:var(--rust)}.teaching-theme-card[data-teaching-area=ai]{--teaching-accent:#496a54}.teaching-theme-card[data-teaching-area=signal]{--teaching-accent:var(--ochre)}.teaching-theme-card[data-teaching-area=supervision]{--teaching-accent:#52668c}.teaching-theme-mark{z-index:1;border:1px solid var(--teaching-accent);width:2.35rem;height:2.35rem;margin-bottom:1rem;display:block;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.teaching-theme-mark{border:1px solid color-mix(in srgb, var(--teaching-accent) 45%, var(--line))}}.teaching-theme-mark{background:var(--teaching-accent);border-radius:8px}@supports (color:color-mix(in lab, red, red)){.teaching-theme-mark{background:color-mix(in srgb, var(--teaching-accent) 9%, #fffefb)}}.teaching-theme-card h3,.teaching-theme-card p{z-index:1;position:relative}.teaching-theme-card h3{font-family:var(--font-display);font-size:1.22rem;font-weight:700}.teaching-theme-mark:before,.teaching-theme-mark:after{content:"";pointer-events:none;position:absolute}.teaching-theme-card[data-teaching-area=mathematics] .teaching-theme-mark{background:radial-gradient(circle at 28% 70%, var(--teaching-accent) 0 3px, transparent 4px), radial-gradient(circle at 72% 30%, var(--teaching-accent) 0 3px, transparent 4px), radial-gradient(circle at 72% 72%, var(--teaching-accent) 0 3px, transparent 4px), var(--teaching-accent)}@supports (color:color-mix(in lab, red, red)){.teaching-theme-card[data-teaching-area=mathematics] .teaching-theme-mark{background:radial-gradient(circle at 28% 70%, var(--teaching-accent) 0 3px, transparent 4px), radial-gradient(circle at 72% 30%, var(--teaching-accent) 0 3px, transparent 4px), radial-gradient(circle at 72% 72%, var(--teaching-accent) 0 3px, transparent 4px), color-mix(in srgb, var(--teaching-accent) 8%, #fffefb)}}.teaching-theme-card[data-teaching-area=mathematics] .teaching-theme-mark:before{background:var(--teaching-accent);transform-origin:0;width:1.28rem;height:2px;top:52%;left:30%;transform:rotate(-36deg)}.teaching-theme-card[data-teaching-area=mathematics] .teaching-theme-mark:after{background:var(--teaching-accent);width:1.3rem;height:2px;top:65%;left:31%}@supports (color:color-mix(in lab, red, red)){.teaching-theme-card[data-teaching-area=mathematics] .teaching-theme-mark:after{background:color-mix(in srgb, var(--teaching-accent) 70%, #fffefb)}}.teaching-theme-card[data-teaching-area=mathematics] .teaching-theme-mark:after{transform-origin:0;transform:rotate(4deg)}.teaching-theme-card[data-teaching-area=computer-science] .teaching-theme-mark:before{border:2px solid var(--teaching-accent);border-radius:4px;inset:.48rem .42rem}.teaching-theme-card[data-teaching-area=computer-science] .teaching-theme-mark:after{background:var(--teaching-accent);height:2px;box-shadow:0 .42rem 0 var(--teaching-accent);top:.94rem;left:.72rem;right:.66rem}@supports (color:color-mix(in lab, red, red)){.teaching-theme-card[data-teaching-area=computer-science] .teaching-theme-mark:after{box-shadow:0 .42rem 0 color-mix(in srgb, var(--teaching-accent) 65%, #fffefb)}}.teaching-theme-card[data-teaching-area=morphology] .teaching-theme-mark{border-radius:999px}.teaching-theme-card[data-teaching-area=morphology] .teaching-theme-mark:before{border:2px solid var(--teaching-accent);border-radius:47% 53% 42% 58%;inset:.42rem;transform:rotate(-12deg)}.teaching-theme-card[data-teaching-area=morphology] .teaching-theme-mark:after{border:2px solid var(--teaching-accent);inset:.84rem}@supports (color:color-mix(in lab, red, red)){.teaching-theme-card[data-teaching-area=morphology] .teaching-theme-mark:after{border:2px solid color-mix(in srgb, var(--teaching-accent) 72%, #fffefb)}}.teaching-theme-card[data-teaching-area=morphology] .teaching-theme-mark:after{border-radius:52% 48% 58% 42%;transform:rotate(18deg)}.teaching-theme-card[data-teaching-area=ai] .teaching-theme-mark{background:var(--teaching-accent);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.teaching-theme-card[data-teaching-area=ai] .teaching-theme-mark{background:color-mix(in srgb, var(--teaching-accent) 8%, #fffefb)}}.teaching-theme-card[data-teaching-area=ai] .teaching-theme-mark:before,.teaching-theme-card[data-teaching-area=ai] .teaching-theme-mark:after{display:none}.teaching-theme-network{width:100%;height:100%}.teaching-theme-network .network-lines{fill:none;stroke:var(--teaching-accent)}@supports (color:color-mix(in lab, red, red)){.teaching-theme-network .network-lines{stroke:color-mix(in srgb, var(--teaching-accent) 60%, #fffefb)}}.teaching-theme-network .network-lines{stroke-linecap:round;stroke-width:1.55px}.teaching-theme-network .network-nodes{fill:var(--teaching-accent);stroke:#fffefb;stroke-width:1.4px}.teaching-theme-card[data-teaching-area=signal] .teaching-theme-mark:before{border-top:2px solid var(--teaching-accent);border-bottom:2px solid var(--teaching-accent);inset:.58rem .38rem}@supports (color:color-mix(in lab, red, red)){.teaching-theme-card[data-teaching-area=signal] .teaching-theme-mark:before{border-bottom:2px solid color-mix(in srgb, var(--teaching-accent) 60%, #fffefb)}}.teaching-theme-card[data-teaching-area=signal] .teaching-theme-mark:before{border-radius:999px;transform:skew(-14deg)}.teaching-theme-card[data-teaching-area=signal] .teaching-theme-mark:after{background:var(--teaching-accent);height:2px;top:50%;left:.42rem;right:.42rem}@supports (color:color-mix(in lab, red, red)){.teaching-theme-card[data-teaching-area=signal] .teaching-theme-mark:after{background:color-mix(in srgb, var(--teaching-accent) 70%, #fffefb)}}.teaching-theme-card[data-teaching-area=supervision] .teaching-theme-mark{background:radial-gradient(circle at 50% 24%, var(--teaching-accent) 0 3px, transparent 4px), radial-gradient(circle at 28% 70%, var(--teaching-accent) 0 3px, transparent 4px), radial-gradient(circle at 72% 70%, var(--teaching-accent) 0 3px, transparent 4px), var(--teaching-accent)}@supports (color:color-mix(in lab, red, red)){.teaching-theme-card[data-teaching-area=supervision] .teaching-theme-mark{background:radial-gradient(circle at 50% 24%, var(--teaching-accent) 0 3px, transparent 4px), radial-gradient(circle at 28% 70%, var(--teaching-accent) 0 3px, transparent 4px), radial-gradient(circle at 72% 70%, var(--teaching-accent) 0 3px, transparent 4px), color-mix(in srgb, var(--teaching-accent) 8%, #fffefb)}}.teaching-theme-card[data-teaching-area=supervision] .teaching-theme-mark:before{background:var(--teaching-accent);width:2px;height:1rem;top:38%;left:50%;transform:translate(-50%)}.teaching-theme-card[data-teaching-area=supervision] .teaching-theme-mark:after{border-right:2px solid var(--teaching-accent);width:1.16rem;height:.8rem;top:48%;left:50%}@supports (color:color-mix(in lab, red, red)){.teaching-theme-card[data-teaching-area=supervision] .teaching-theme-mark:after{border-right:2px solid color-mix(in srgb, var(--teaching-accent) 70%, #fffefb)}}.teaching-theme-card[data-teaching-area=supervision] .teaching-theme-mark:after{border-left:2px solid var(--teaching-accent)}@supports (color:color-mix(in lab, red, red)){.teaching-theme-card[data-teaching-area=supervision] .teaching-theme-mark:after{border-left:2px solid color-mix(in srgb, var(--teaching-accent) 70%, #fffefb)}}.teaching-theme-card[data-teaching-area=supervision] .teaching-theme-mark:after{border-radius:0 0 8px 8px;transform:translate(-50%)}.teaching-book-list{grid-template-columns:repeat(3,minmax(0,1fr))}.teaching-book-list li{grid-template-columns:5.5rem minmax(0,1fr);align-items:start;min-height:12rem}.teaching-book-list img{width:5.5rem;height:7.25rem}.teaching-book-list p{color:var(--muted);margin:.45rem 0 0;line-height:1.5}.book-resource-links,.course-link-list,.course-topic-list{flex-wrap:wrap;gap:.42rem;display:flex}.book-resource-links{margin-top:.72rem}.book-resource-links a,.course-link-list a{border:1px solid var(--teal-dark);justify-content:center;align-items:center;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.book-resource-links a,.course-link-list a{border:1px solid color-mix(in srgb, var(--teal-dark) 24%, var(--line))}}.book-resource-links a,.course-link-list a{background:var(--soft-green);color:var(--teal-dark);border-radius:999px;padding:.28rem .56rem;font-size:.78rem;font-weight:800;line-height:1.2;text-decoration:none}.book-resource-links a:hover,.course-link-list a:hover{border-color:var(--rust);color:var(--rust)}.course-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-top:2rem;display:grid}.course-archive-card{--course-accent:var(--teal-dark);background:linear-gradient(180deg, #fffefbf0, #fffefbc7), repeating-linear-gradient(to bottom, transparent 0, transparent 1.7rem, var(--course-accent) 1.7rem, var(--course-accent) calc(1.7rem + 1px)), var(--panel);border:1px solid #c7d0c5e0;border-radius:8px;align-content:start;gap:.78rem;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.course-archive-card{background:linear-gradient(180deg, #fffefbf0, #fffefbc7), repeating-linear-gradient(to bottom, transparent 0, transparent 1.7rem, color-mix(in srgb, var(--course-accent) 9%, transparent) 1.7rem, color-mix(in srgb, var(--course-accent) 9%, transparent) calc(1.7rem + 1px)), var(--panel)}}.course-archive-card{box-shadow:var(--shadow-soft);padding:1.05rem}.course-archive-card:before{background:var(--course-accent);content:"";opacity:.76;height:4px;position:absolute;inset:0 0 auto}.course-archive-card:nth-child(3n+2){--course-accent:var(--rust)}.course-archive-card:nth-child(3n+3){--course-accent:var(--violet)}.course-archive-card:nth-child(3n+4){--course-accent:var(--ochre)}.course-archive-card h3,.course-archive-card p,.course-archive-card ul,.course-archive-card div,.course-archive-card .archive-label{z-index:1;position:relative}.course-archive-card h3{color:var(--ink);font-family:var(--font-display);margin:0;font-size:1.28rem;font-weight:700;line-height:1.22}.course-archive-card p{color:var(--muted);margin:0;line-height:1.56}.course-topic-list{margin:0;padding:0;list-style:none}.course-topic-list li{border:1px solid var(--course-accent)}@supports (color:color-mix(in lab, red, red)){.course-topic-list li{border:1px solid color-mix(in srgb, var(--course-accent) 24%, var(--line))}}.course-topic-list li{background:var(--course-accent);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.course-topic-list li{background:color-mix(in srgb, var(--course-accent) 8%, #fffefb)}}.course-topic-list li{color:var(--course-accent)}@supports (color:color-mix(in lab, red, red)){.course-topic-list li{color:color-mix(in srgb, var(--course-accent) 78%, var(--ink))}}.course-topic-list li{padding:.18rem .5rem;font-size:.76rem;font-weight:760;line-height:1.2}.course-link-list{margin-top:.18rem}.course-link-list a{border-color:var(--course-accent);background:#fffefb}@supports (color:color-mix(in lab, red, red)){.course-link-list a{border-color:color-mix(in srgb, var(--course-accent) 32%, var(--line))}}.course-link-list a{color:var(--course-accent)}@supports (color:color-mix(in lab, red, red)){.course-link-list a{color:color-mix(in srgb, var(--course-accent) 82%, var(--ink))}}.course-page-hero{grid-template-columns:minmax(0,1fr) minmax(260px,.34fr);align-items:end;gap:clamp(1.5rem,4vw,3rem);display:grid}.course-page-actions{flex-wrap:wrap;gap:.72rem;margin-top:1.5rem;display:flex}.course-page-panel{background:linear-gradient(180deg, #fffefbeb, #f4f9f3d1), var(--panel);box-shadow:var(--shadow-soft);border:1px solid #c7d0c5db;border-radius:8px;align-content:start;gap:.78rem;padding:1rem;display:grid}.course-page-panel span{color:var(--teal-dark);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:850}.course-page-panel strong{color:var(--ink);font-family:var(--font-display);font-size:clamp(3rem,8vw,4.8rem);line-height:.9}.course-page-panel p{color:var(--muted);margin:0;line-height:1.46}.course-context-section{gap:.75rem;max-width:880px;display:grid}.course-context-section p{color:var(--muted);margin:0;font-size:1.05rem;line-height:1.7}.course-material-layout{gap:1.65rem;margin-top:2rem;display:grid}.course-material-section{border-top:1px solid var(--line);gap:.95rem;padding-top:1.15rem;display:grid}.course-material-heading{gap:.35rem;display:grid}.course-material-heading h3{color:var(--ink);font-family:var(--font-display);margin:0;font-size:clamp(1.45rem,2.5vw,2rem);line-height:1.08}.course-material-heading p{max-width:760px;color:var(--muted);margin:0;line-height:1.58}.course-material-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.72rem;display:grid}.course-material-card{border:1px solid var(--teal-dark);align-content:start;gap:.42rem;min-height:8rem;display:grid}@supports (color:color-mix(in lab, red, red)){.course-material-card{border:1px solid color-mix(in srgb, var(--teal-dark) 20%, var(--line))}}.course-material-card{color:var(--ink);background:#fffefbe6;border-radius:8px;padding:.88rem;text-decoration:none;transition:border-color .16s,transform .16s,box-shadow .16s}.course-material-card:hover{border-color:var(--rust);transform:translateY(-1px);box-shadow:0 12px 28px #1936301a}.course-material-card.is-note{background:var(--soft-green);border-style:dashed}@supports (color:color-mix(in lab, red, red)){.course-material-card.is-note{background:color-mix(in srgb, var(--soft-green) 64%, #fffefb)}}.course-material-card.is-note:hover{border-color:var(--teal-dark)}@supports (color:color-mix(in lab, red, red)){.course-material-card.is-note:hover{border-color:color-mix(in srgb, var(--teal-dark) 20%, var(--line))}}.course-material-card.is-note:hover{box-shadow:none;transform:none}.course-material-card strong{color:var(--ink);overflow-wrap:anywhere;font-size:1.02rem;line-height:1.22}.course-material-card p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.45}.material-kind{border:1px solid var(--teal-dark);width:fit-content}@supports (color:color-mix(in lab, red, red)){.material-kind{border:1px solid color-mix(in srgb, var(--teal-dark) 20%, var(--line))}}.material-kind{background:var(--soft-green);color:var(--teal-dark);border-radius:999px;padding:.16rem .42rem;font-size:.68rem;font-weight:850;line-height:1.2}.research-map{grid-template-columns:repeat(2,minmax(0,1fr));align-self:stretch;gap:.75rem;min-height:360px;display:grid}.research-map span{border:1px solid var(--line);background:var(--panel);color:var(--teal-dark);text-align:center;border-radius:8px;place-items:center;font-size:clamp(1rem,2vw,1.25rem);font-weight:780;display:grid}.research-map span:nth-child(3n+1){background:var(--soft-green)}.research-map span:nth-child(3n+2){background:var(--soft-rust)}.research-map span:nth-child(3n+3){background:var(--soft-violet);color:var(--violet)}.research-themes{border-top:1px solid var(--line);padding:clamp(3rem,7vw,5rem) 0}.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2rem;display:grid}.theme-grid article{background:linear-gradient(180deg, #fffefbeb, #fffefbb8), var(--panel);box-shadow:var(--shadow-soft);border:1px solid #c7d0c5e0;border-radius:8px;padding:1.05rem}.theme-card{--theme-accent:var(--teal-dark);align-content:start;min-height:18.5rem;display:grid;position:relative;overflow:hidden}.theme-card:before{background:var(--theme-accent);content:"";opacity:.8;height:4px;position:absolute;inset:0 0 auto}.theme-card:after{border:1px solid var(--theme-accent);width:5.4rem;height:5.4rem;position:absolute;top:.85rem;right:.85rem}@supports (color:color-mix(in lab, red, red)){.theme-card:after{border:1px solid color-mix(in srgb, var(--theme-accent) 22%, transparent)}}.theme-card:after{background:linear-gradient(90deg, var(--theme-accent) 1px, transparent 1px), linear-gradient(0deg, var(--theme-accent) 1px, transparent 1px)}@supports (color:color-mix(in lab, red, red)){.theme-card:after{background:linear-gradient(90deg, color-mix(in srgb, var(--theme-accent) 13%, transparent) 1px, transparent 1px), linear-gradient(0deg, color-mix(in srgb, var(--theme-accent) 13%, transparent) 1px, transparent 1px)}}.theme-card:after{content:"";opacity:.72;pointer-events:none;background-size:.72rem .72rem}.theme-symbol{z-index:1;width:5.7rem;height:3.8rem;color:var(--theme-accent);margin-bottom:1rem;display:block;position:relative}.theme-symbol .theme-stroke,.theme-symbol .theme-network-lines{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.15px}.theme-symbol .theme-stroke-strong{stroke-width:2.55px}.theme-symbol .theme-stroke-soft{opacity:.72}.theme-symbol .theme-stroke-faint{opacity:.24}.theme-symbol .theme-fill-soft{fill:currentColor;opacity:.11}.theme-symbol .theme-dashed{stroke-dasharray:4 5}.theme-symbol .theme-cut{fill:none;stroke:currentColor;stroke-dasharray:5 4;stroke-linecap:round;stroke-width:2.5px}.theme-symbol .theme-node{fill:#fffefb;stroke:currentColor;stroke-width:2px}.theme-symbol .theme-dot,.theme-symbol .theme-network-nodes{fill:currentColor}.theme-symbol .theme-network-lines{opacity:.56}.theme-symbol .theme-network-nodes{stroke:#fffefb;stroke-width:1.5px}.theme-card.morphology{--theme-accent:var(--rust)}.theme-card.graphs{--theme-accent:var(--teal-dark)}.theme-card.topology{--theme-accent:var(--violet)}.theme-card.cuts{--theme-accent:var(--teal)}.theme-card.imaging{--theme-accent:var(--ochre)}.theme-card.learning{--theme-accent:#496a54}.theme-symbol.morphology{color:var(--rust)}.theme-symbol.graphs{color:var(--teal-dark)}.theme-symbol.topology{color:var(--violet)}.theme-symbol.cuts{color:var(--teal)}.theme-symbol.imaging{color:var(--ochre)}.theme-symbol.learning{color:#496a54}.theme-grid h3{z-index:1;color:var(--teal-dark);font-family:var(--font-display);margin-bottom:.7rem;font-size:1.24rem;font-weight:700;position:relative}.theme-grid p{z-index:1;color:var(--muted);line-height:1.55;position:relative}.theme-grid ul{z-index:1;flex-wrap:wrap;gap:.35rem;margin:1rem 0 0;padding:0;list-style:none;display:flex;position:relative}.theme-grid li{border:1px solid var(--line);background:var(--soft-green);color:var(--teal-dark);border-radius:999px;padding:.18rem .5rem;font-size:.78rem;font-weight:760}.selected-research-section{border-top:1px solid var(--line);padding:clamp(3rem,7vw,5rem) 0}.selected-research-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem;margin-top:2rem;display:grid}.selected-research-card{--selected-accent:var(--teal);background:linear-gradient(180deg, #fffefbf0, #fffefbc2), var(--panel);min-height:28rem;box-shadow:var(--shadow-soft);border:1px solid #c7d0c5e0;border-radius:8px;align-content:start;gap:1rem;padding:1.1rem;display:grid;position:relative;overflow:hidden}.selected-research-card:before{background:var(--selected-accent);content:"";opacity:.82;height:4px;position:absolute;inset:0 0 auto}.selected-research-card.watersheds{--selected-accent:var(--teal-dark)}.selected-research-card.morphology{--selected-accent:var(--rust)}.selected-research-card.topology{--selected-accent:var(--violet)}.selected-research-card.optimization{--selected-accent:var(--ochre)}.selected-research-card.learning{--selected-accent:#496a54}.selected-research-card.structural{--selected-accent:#7a5f3b}.selected-research-card.applications{--selected-accent:#8a4f52}.selected-research-card.software{--selected-accent:#52668c}.selected-research-card h3{color:var(--selected-accent);font-family:var(--font-display);margin-bottom:0;font-size:clamp(1.25rem,2vw,1.55rem);font-weight:700}.selected-research-card p{color:var(--muted);margin:0;line-height:1.6}.selected-research-card strong{color:var(--selected-accent);font-size:.82rem;font-weight:800;display:block}.selected-work-list{gap:0;margin:.65rem 0 0;padding:0;list-style:none;display:grid}.selected-work-list li{border-top:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.35rem .65rem;padding:.72rem 0;display:grid}.selected-work-list li:last-child{padding-bottom:0}.selected-work-list span{border:1px solid var(--selected-accent);grid-row:span 3;place-items:center;min-width:3.2rem;min-height:1.85rem;display:inline-grid}@supports (color:color-mix(in lab, red, red)){.selected-work-list span{border:1px solid color-mix(in srgb, var(--selected-accent) 38%, var(--line))}}.selected-work-list span{background:var(--selected-accent);border-radius:999px}@supports (color:color-mix(in lab, red, red)){.selected-work-list span{background:color-mix(in srgb, var(--selected-accent) 10%, #fff)}}.selected-work-list span{color:var(--selected-accent);font-size:.78rem;font-weight:800}.selected-work-list>li>a{color:var(--ink);font-weight:760;line-height:1.35;text-decoration-thickness:1px}.selected-work-list small{color:var(--muted);line-height:1.35}.selected-work-links{flex-wrap:wrap;grid-area:1/3/span 3;justify-content:flex-end;gap:.35rem;display:flex}.selected-work-links a,.selected-software-links a{border:1px solid var(--line);background:var(--soft-green);color:var(--teal-dark);overflow-wrap:anywhere;border-radius:999px;padding:.32rem .54rem;font-size:.78rem;font-weight:780;line-height:1.2;text-decoration:none}.selected-work-links a:hover,.selected-software-links a:hover{border-color:var(--selected-accent)}.selected-software-links{flex-wrap:wrap;gap:.45rem;margin-top:auto;display:flex}.portfolio-highlight-section{border-top:1px solid var(--line);padding:clamp(3rem,7vw,5rem) 0}.portfolio-highlight-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:1rem;margin-top:2rem;display:grid}.portfolio-highlight-card{box-shadow:var(--shadow-soft);background:#fffefbe0;border:1px solid #c7d0c5e0;border-radius:8px;align-content:start;display:grid;overflow:hidden}.portfolio-highlight-card:hover{border-color:var(--teal)}.portfolio-highlight-image{aspect-ratio:3/2;border-bottom:1px solid var(--line);background:linear-gradient(135deg, #216c6814, #b24a370f), var(--soft-green);place-items:center;padding:.65rem;display:grid;overflow:hidden}.portfolio-highlight-image.tall{aspect-ratio:4/3}.portfolio-highlight-image.wide{aspect-ratio:16/5}.portfolio-highlight-image img{object-fit:contain;width:100%;height:100%;display:block}.portfolio-highlight-body{gap:.65rem;padding:1rem;display:grid}.portfolio-highlight-label{color:var(--rust);letter-spacing:0;text-transform:uppercase;font-size:.76rem;font-weight:800}.portfolio-highlight-card h3{color:var(--teal-dark);font-family:var(--font-display);margin:0;font-size:clamp(1.18rem,1.7vw,1.38rem);font-weight:700}.portfolio-highlight-card p{color:var(--muted);margin:0;line-height:1.55}.portfolio-highlight-tags{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.portfolio-highlight-tags li{border:1px solid var(--line);background:var(--soft-green);color:var(--teal-dark);border-radius:999px;padding:.18rem .5rem;font-size:.76rem;font-weight:760}.portfolio-highlight-links{flex-wrap:wrap;gap:.42rem;margin-top:.2rem;display:flex}.portfolio-highlight-links a{border:1px solid var(--line);color:var(--teal-dark);background:#fffefb;border-radius:999px;padding:.32rem .54rem;font-size:.78rem;font-weight:780;text-decoration:none}.portfolio-highlight-links a:hover{border-color:var(--teal);background:var(--soft-green)}.archive-highlight-section{border-top:1px solid var(--line);padding:clamp(3rem,7vw,5rem) 0}.archive-highlight-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2rem;display:grid}.archive-highlight-card{box-shadow:var(--shadow-soft);background:#fffefbe0;border:1px solid #c7d0c5e0;border-radius:8px;align-content:start;display:grid;overflow:hidden}.archive-highlight-card:hover{border-color:var(--teal)}.archive-highlight-image{aspect-ratio:4/3;border-bottom:1px solid var(--line);background:var(--soft-green);display:block;position:relative;overflow:hidden}.archive-highlight-image img{object-fit:cover;width:100%;height:100%;transition:transform .18s;display:block}.archive-highlight-image img.contain{object-fit:contain}.archive-highlight-card:hover .archive-highlight-image img{transform:scale(1.025)}.archive-highlight-card:hover .archive-highlight-image img.contain{transform:none}.archive-highlight-card>div{gap:.55rem;padding:1rem;display:grid}.archive-highlight-card span{color:var(--rust);letter-spacing:0;text-transform:uppercase;font-size:.76rem;font-weight:800}.archive-highlight-card h3{color:var(--teal-dark);font-family:var(--font-display);margin:0;font-size:1.08rem;font-weight:700}.archive-highlight-card p{color:var(--muted);margin:0;line-height:1.55}.archive-highlight-links{flex-wrap:wrap;gap:.45rem .65rem;margin-top:.15rem;display:flex}.archive-highlight-links a{color:var(--teal-dark);text-underline-offset:.18em;font-size:.82rem;font-weight:800;line-height:1.3;-webkit-text-decoration:underline #17646547;text-decoration:underline #17646547}.archive-highlight-links a:hover{color:var(--rust);text-decoration-color:currentColor}.archive-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:2rem;display:grid}.archive-grid a{background:linear-gradient(180deg, #fffefbeb, #fffefbbd), repeating-linear-gradient(to bottom, transparent 0, transparent 1.7rem, #17645d14 1.7rem, #17645d14 calc(1.7rem + 1px)), var(--panel);min-height:8rem;box-shadow:var(--shadow-soft);overflow-wrap:anywhere;border:1px solid #c7d0c5e0;border-radius:8px;align-content:start;gap:.6rem;padding:1rem;text-decoration:none;display:grid;position:relative;overflow:hidden}.archive-grid a:before{background:var(--teal);content:"";opacity:.72;height:4px;position:absolute;inset:0 0 auto}.archive-grid a:nth-child(3n+2):before{background:var(--rust)}.archive-grid a:nth-child(3n+3):before{background:var(--violet)}.archive-grid a:hover{border-color:var(--teal);background:#ffffffd1}.archive-grid strong,.archive-grid span{display:block}.archive-label{border:1px solid var(--line);background:var(--soft-green);width:fit-content;color:var(--teal-dark);border-radius:999px;padding:.16rem .48rem;font-size:.72rem;font-weight:760}.archive-grid strong{color:var(--teal-dark);font-family:var(--font-display);margin:0;font-size:1.12rem;font-weight:700}.archive-grid span{color:var(--muted);line-height:1.5}.archive-grid .archive-label{color:var(--teal-dark);line-height:1.2}.bio-hero{isolation:isolate;grid-template-columns:minmax(0,1fr) minmax(260px,.55fr);align-items:center;gap:clamp(2rem,5vw,4rem);display:grid;position:relative}.bio-hero:before{z-index:-1;width:min(58vw,720px);box-shadow:var(--shadow-soft);content:"";background:linear-gradient(112deg,#fffefbd1,#f0eef847),linear-gradient(90deg,#17645d14 1px,#0000 1px) 0 0/28px 28px,linear-gradient(0deg,#8b46380f 1px,#0000 1px) 0 0/28px 28px;border:1px solid #c7d0c5a8;position:absolute;inset:clamp(1rem,3vw,2rem) auto 1.5rem -1.5rem}.bio-portrait-panel{background:linear-gradient(180deg, #fffefbf5, #eef4ed7a), var(--panel-warm);box-shadow:var(--shadow);border:1px solid #c7d0c5db;border-radius:8px;align-content:start;gap:.9rem;padding:.82rem;display:grid;position:relative}.bio-hero img{aspect-ratio:1.08;object-fit:cover;object-position:center 42%;border:1px solid var(--line);width:100%;box-shadow:none;border-radius:8px;display:block}.bio-status-list{border:1px solid var(--line);background:#fffefbd1;border-radius:8px;gap:0;margin:0;display:grid;overflow:hidden}.bio-status-list div{grid-template-columns:minmax(6.5rem,.45fr) minmax(0,1fr);gap:.75rem;padding:.85rem .9rem;display:grid}.bio-status-list div+div{border-top:1px solid var(--line)}.bio-status-list dt{color:var(--muted);font-size:.78rem;font-weight:760}.bio-status-list dd{color:var(--teal-dark);margin:0;font-weight:760;line-height:1.35}.aikido-hero{isolation:isolate;grid-template-columns:minmax(0,1fr) minmax(280px,.62fr);align-items:center;gap:clamp(2rem,5vw,4rem);display:grid;position:relative}.aikido-hero:before{z-index:-1;content:"";background-color:#fffefbad;background-image:linear-gradient(90deg,#9a6b2e1c 1px,#0000 1px),linear-gradient(0deg,#17645d17 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:4.2rem 4.2rem;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border:1px solid #9a6b2e38;width:min(46vw,520px);position:absolute;inset:1.5rem -1rem 1rem auto}.aikido-panel{background:linear-gradient(160deg, #eef4ede0, #fffefbdb), var(--soft-green);box-shadow:var(--shadow-soft);border:1px solid #c7d0c5e0;border-radius:8px;padding:clamp(1rem,3vw,1.5rem)}.aikido-panel p{color:var(--muted);line-height:1.6}.aikido-panel blockquote{border-left:4px solid var(--teal);color:var(--teal-dark);font-family:var(--font-display);margin:1.4rem 0 0;padding-left:1rem;font-size:clamp(1.2rem,2vw,1.55rem);font-weight:700;line-height:1.35}.aikido-story-section{border-top:1px solid var(--line);padding:clamp(3rem,7vw,5rem) 0}.aikido-story-card{background:linear-gradient(180deg, #fffefbf5, #fffefbd1), var(--panel);box-shadow:var(--shadow-soft);border:1px solid #c7d0c5e0;border-radius:8px;margin-top:2rem;padding:clamp(1.1rem,3vw,1.8rem)}.aikido-practice-card{background:linear-gradient(to bottom, #eef4ed9e, transparent 78%), repeating-linear-gradient(to bottom, transparent 0, transparent 2.25rem, #17645d12 2.25rem, #17645d12 calc(2.25rem + 1px)), var(--panel-warm);box-shadow:var(--shadow-soft);border:1px solid #c7d0c5e0;border-radius:8px;margin-top:2rem;padding:clamp(1.15rem,3vw,1.85rem)}.aikido-story-card p{max-width:780px;color:var(--muted);font-size:clamp(1.02rem,1.5vw,1.18rem);line-height:1.65}.aikido-story-text{border-left:4px solid #17645d6b;margin:0;padding-left:clamp(1rem,3vw,1.5rem)}.aikido-story-text p{max-width:840px;color:var(--ink);font-size:clamp(1rem,1.35vw,1.12rem);line-height:1.72}.aikido-story-text em{color:var(--teal-dark)}.aikido-story-text footer{color:var(--teal-dark);font-family:var(--font-display);margin-top:1.4rem;font-size:1.15rem;font-weight:700}.aikido-story-card .aikido-story-credit{border-top:1px solid var(--line);color:var(--ochre);margin-top:1rem;padding-top:1rem;font-size:.95rem}.aikido-practice-card p{max-width:830px;color:var(--muted);font-size:clamp(1.02rem,1.4vw,1.18rem);line-height:1.7}.aikido-practice-card p:last-child{margin-bottom:0}.aikido-link-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1rem;display:grid}.aikido-link-grid a{min-height:8.5rem;box-shadow:var(--shadow-soft);background:#fffefbd6;border:1px solid #c7d0c5e0;border-radius:8px;align-content:start;gap:.55rem;padding:1rem;text-decoration:none;display:grid;position:relative;overflow:hidden}.aikido-link-grid a:before{background:var(--teal);content:"";opacity:.74;height:4px;position:absolute;inset:0 0 auto}.aikido-link-grid a:nth-child(2):before{background:var(--rust)}.aikido-link-grid a:nth-child(3):before{background:var(--violet)}.aikido-link-grid a:hover{border-color:var(--teal);background:#fff}.aikido-link-grid strong{color:var(--teal-dark)}.aikido-link-grid span{color:var(--muted);line-height:1.5}.bio-summary,.cv-section{border-top:1px solid var(--line);padding:clamp(3rem,7vw,5rem) 0}.highlight-grid,.book-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:2rem 0 0;padding:0;list-style:none;display:grid}.highlight-grid li,.book-list li{box-shadow:var(--shadow-soft);color:var(--muted);background:#fffefbdb;border:1px solid #c7d0c5e0;border-radius:8px;padding:1rem;line-height:1.55}.highlight-grid li{--highlight-accent:var(--teal-dark);grid-template-columns:auto minmax(0,1fr);gap:.75rem;display:grid;position:relative;overflow:hidden}.highlight-grid li:before{background:var(--highlight-accent);content:"";opacity:.76;height:4px;position:absolute;inset:0 0 auto}.highlight-grid li:nth-child(2){--highlight-accent:var(--rust)}.highlight-grid li:nth-child(3){--highlight-accent:var(--violet)}.highlight-grid li:nth-child(4){--highlight-accent:var(--ochre)}.highlight-grid li:nth-child(5){--highlight-accent:#496a54}.book-list li{grid-template-columns:4.4rem minmax(0,1fr);align-items:center;gap:.85rem;display:grid}.book-list img{border:1px solid var(--line);background:var(--soft-green);object-fit:cover;border-radius:5px;width:4.4rem;height:5.8rem;display:block}.highlight-mark{border:2px solid var(--highlight-accent);background:#fffefb;border-radius:999px;width:.78rem;height:.78rem;margin-top:.35rem}.book-list strong{color:var(--ink);margin-bottom:.3rem;display:block}.book-list span{display:block}.genealogy-card{background:linear-gradient(90deg, #17645d14, transparent 42%), linear-gradient(0deg, #5c527f0f 1px, transparent 1px), var(--panel-warm);max-width:920px;box-shadow:var(--shadow-soft);background-size:auto,28px 28px;border:1px solid #c7d0c5e0;border-radius:8px;padding:1rem;position:relative;overflow:hidden}.genealogy-card:after{content:"";opacity:.7;pointer-events:none;background-color:#0000;background-image:linear-gradient(90deg,#5c527f1a 1px,#0000 1px),linear-gradient(0deg,#17645d14 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:.72rem .72rem;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border:1px solid #5c527f2e;width:8rem;height:5rem;position:absolute;top:1rem;right:1rem}.genealogy-card p{max-width:760px;color:var(--muted);font-size:clamp(1rem,1.7vw,1.14rem);line-height:1.7}.genealogy-card a{color:var(--teal-dark);font-weight:760}.genealogy-names{flex-wrap:wrap;gap:.48rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.genealogy-names li{border:1px solid var(--line);color:var(--teal-dark);background:#fffefb;border-radius:999px;padding:.32rem .62rem;font-size:.88rem;font-weight:720}.genealogy-names li:nth-child(3n+2){color:var(--rust)}.genealogy-names li:nth-child(3n+3){color:var(--violet)}.highlight-grid li:first-child{background:var(--soft-green);color:var(--ink)}.timeline{gap:.75rem;margin:2rem 0 0;padding:0;list-style:none;display:grid;position:relative}.timeline:before{content:"";border-left:1px solid #17645d38;position:absolute;top:.45rem;bottom:.45rem;left:4.95rem}.timeline li{--timeline-accent:var(--teal-dark);background:linear-gradient(180deg, #fffefbeb, #fffefbc7), var(--panel);box-shadow:var(--shadow-soft);border:1px solid #c7d0c5e0;border-radius:8px;grid-template-columns:140px minmax(0,1fr);gap:1rem;padding:1rem;display:grid;position:relative}.timeline li[data-timeline=education]{--timeline-accent:var(--violet)}.timeline li[data-timeline=service]{--timeline-accent:var(--rust)}.timeline span{z-index:1;border:1px solid var(--timeline-accent);place-items:center;width:fit-content;min-width:5rem;min-height:2.15rem;display:inline-grid;position:relative}@supports (color:color-mix(in lab, red, red)){.timeline span{border:1px solid color-mix(in srgb, var(--timeline-accent) 32%, var(--line))}}.timeline span{color:var(--timeline-accent);background:#fffefb;border-radius:999px;padding:0 .65rem;font-size:.82rem;font-weight:800}.timeline p{color:var(--muted);margin:0;line-height:1.5}.supervision-section{border-top:1px solid var(--line);padding:clamp(3rem,7vw,5rem) 0}.section-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.section-count{border:1px solid var(--line);background:var(--panel);min-height:2.2rem;color:var(--teal-dark);border-radius:999px;align-items:center;padding:.34rem .7rem;font-size:.82rem;font-weight:760;display:inline-flex}.supervision-list{gap:.95rem;margin:2rem 0 0;padding:0;list-style:none;display:grid;position:relative}.supervision-list:before{content:"";border-left:1px solid #17645d38;position:absolute;top:.45rem;bottom:.45rem;left:2.25rem}.supervision-item{border:1px solid var(--line);background:#ffffffd1;border-radius:8px;grid-template-columns:4.5rem minmax(0,1fr);gap:1rem;padding:1rem 1rem 1rem 0;display:grid;position:relative}.supervision-year-node{z-index:1;justify-content:center;align-items:flex-start;padding-top:.1rem;display:flex;position:relative}.supervision-year-node span{width:3.75rem;min-height:2.15rem;color:var(--teal-dark);background:#fffefb;border:1px solid #17645d52;border-radius:999px;place-items:center;font-size:.82rem;font-weight:820;display:inline-grid}.supervision-content{grid-template-columns:minmax(0,1fr) minmax(220px,.58fr);gap:1rem;display:grid}.supervision-item h3{margin-bottom:.45rem;font-size:1.08rem}.supervision-item h3 a{color:var(--teal-dark)}.supervision-item p a{color:var(--teal-dark);font-weight:720}.supervision-item p{color:var(--muted);margin:0;line-height:1.5}.supervision-links{flex-wrap:wrap;gap:.4rem;margin-top:.85rem;display:flex}.supervision-links a{border:1px solid var(--line);color:var(--teal-dark);overflow-wrap:anywhere;background:#fff;border-radius:6px;justify-content:center;align-items:center;padding:.38rem .58rem;font-size:.82rem;font-weight:760;line-height:1.2;text-decoration:none;display:inline-flex}.supervision-links a:hover{border-color:var(--teal)}.supervision-detail{border-left:1px solid var(--line);align-content:start;gap:.42rem;padding-left:1rem;display:grid}.supervision-detail span{color:var(--muted);font-size:.9rem;line-height:1.45;display:block}.supervision-start,.supervision-award{color:var(--rust);font-weight:800}.site-footer{border-top:1px solid var(--line);color:#fff;background:#17201b;grid-template-columns:minmax(0,1fr) auto;gap:2rem;padding:clamp(2rem,5vw,4rem) clamp(1rem,4vw,3rem);display:grid}.site-footer h2{font-size:clamp(1.8rem,4vw,3rem)}.site-footer p{color:#ffffffbd;max-width:720px;line-height:1.6}.site-footer nav{align-content:start;gap:.55rem;display:grid}.site-footer a{color:#fff}.footer-link-column{align-content:start;gap:1.1rem;display:grid}.footer-profile-heading{color:#ffffffa3;margin:0;font-size:.82rem;font-weight:760}.footer-profile-links.profile-links-compact{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.6rem;display:grid}.footer-profile-links a{background:#ffffff14;border-color:#ffffff2e}.footer-profile-links a:hover{background:#ffffff21;border-color:#ffffff9e}.footer-profile-links span{color:#fff}@media (max-width:920px){.hero,.split-section,.publication-metrics-section,.software-band,.supervision-band,.supervision-hero,.publications-hero,.bio-hero,.aikido-hero,.research-hero,.software-hero,.software-reference,.teaching-hero,.course-page-hero{grid-template-columns:1fr}.hero{min-height:auto}.section-math-plate{flex-basis:min(260px,42vw)}.publication-list.compact,.profile-links,.selected-research-grid,.portfolio-highlight-grid,.topic-grid,.teaching-list,.theme-grid,.archive-highlight-grid,.software-grid,.archive-grid,.course-archive-grid,.course-material-list,.aikido-link-grid,.highlight-grid,.book-list,.supervision-stats,.type-summary ul,.type-shortcuts,.filter-panel{grid-template-columns:1fr 1fr}.site-footer{grid-template-columns:1fr}.publication-process-note{max-width:none}}@media (max-width:680px){.site-header{flex-direction:column;align-items:flex-start;gap:.75rem;position:static}.site-nav{justify-content:flex-start;gap:.42rem .72rem;width:100%;font-size:.9rem}h1{overflow-wrap:anywhere;font-size:2.9rem}.hero h1{max-width:7.6ch;font-size:3.25rem}.hero:before{height:34rem;inset:1rem -.6rem auto}.research-hero:before{inset:auto 0 .8rem}.hero-actions .primary-link,.hero-actions .secondary-link{flex:100%}.row-heading,.visual-heading{flex-direction:column;align-items:flex-start}.math-plate{min-height:210px}.research-hero-plate,.section-math-plate{width:100%}.research-hero-plate{min-height:250px}.section-math-plate{flex-basis:auto}.portrait-card,.portrait-card img,.portrait-card p{width:100%;max-width:none}.portrait-card:before{display:none}.publications-visual{min-height:215px}.quick-facts,.stats-grid,.supervision-stats,.publication-list.compact,.profile-links,.selected-research-grid,.portfolio-highlight-grid,.topic-grid,.teaching-list,.theme-grid,.archive-highlight-grid,.software-grid,.archive-grid,.course-archive-grid,.course-material-list,.aikido-link-grid,.highlight-grid,.book-list,.software-summary,.type-summary ul,.type-shortcuts,.filter-panel,.row-heading,.publication-item,.audit-panel li,.timeline li,.supervision-item{grid-template-columns:1fr}.timeline:before{display:none}.bio-status-list div{grid-template-columns:1fr;gap:.2rem}.theme-card{min-height:auto}.publication-links{justify-content:flex-start;max-width:none}.selected-work-list li{grid-template-columns:1fr}.selected-work-list span{grid-row:auto;width:fit-content}.selected-work-links{grid-area:auto;justify-content:flex-start}.year-group summary{font-size:1.05rem}.supervision-stats.compact{grid-template-columns:1fr}.section-tools{justify-content:flex-start}.supervision-visual{min-height:220px}.software-glyph{min-height:11.5rem}.source-facts dd,.software-panel dd,.teaching-facts dd{overflow-wrap:anywhere;min-width:0}.software-panel div,.teaching-facts div{grid-template-columns:1fr;gap:.25rem}.supervision-list:before{left:1.6rem}.supervision-item{grid-template-columns:3.25rem minmax(0,1fr);gap:.75rem;padding:.85rem .85rem .85rem 0}.supervision-year-node span{width:3rem;min-height:2rem;font-size:.74rem}.supervision-content{grid-template-columns:1fr}.supervision-detail{border-top:1px solid var(--line);border-left:0;padding-top:.75rem;padding-left:0}}@media (max-width:480px){.section-shell{width:calc(100% - 1.25rem)}.hero-actions{gap:.55rem}.hero-actions .primary-link,.hero-actions .secondary-link{width:100%}.publication-links,.software-links,.supervision-links{justify-content:flex-start;width:100%}.publication-links a,.software-links a,.supervision-links a{flex:auto}.software-card:after{display:none}.software-card>div:first-child{padding-right:0}}@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-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}
