body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.footer-style{border-top:1px solid var(--line);color:var(--muted);padding:24px 32px;font-size:12px}.footer-content{max-width:1100px;margin:auto}.footer-content p{margin:0}.video-intro{width:min(100%,1160px);color:var(--ink);margin:52px auto 64px;padding:24px}.video-intro h1{margin:24px 0;font-size:28px}.video-intro-back{color:var(--link);align-items:center;gap:10px;display:inline-flex}.video-intro-back:hover{color:#8cddd3}.video-intro-player{aspect-ratio:16/9;background:#111;border:0;width:100%;display:block}@media (max-width:600px){.video-intro{padding:16px}}.site-header{border-bottom:1px solid var(--line);background:var(--background)}.site-navigation{justify-content:space-between;align-items:center;gap:28px;width:min(1280px,100% - 64px);min-height:88px;margin:auto;display:flex}.site-brand{min-width:0;color:var(--ink);align-items:center;gap:12px;font-size:17px;font-weight:650;text-decoration:none;display:inline-flex}.site-logo{object-fit:contain;flex-shrink:0;width:44px;height:44px}.primary-nav{align-items:center;gap:24px;font-size:13px;display:flex}.primary-nav a{color:var(--muted);border-bottom:2px solid #0000;padding:29px 0;text-decoration:none}.primary-nav a.active{color:var(--accent);border-color:var(--accent)}.primary-nav a:hover{color:var(--ink)}.menu-toggle,.artwork-motion-toggle{border:1px solid var(--line);background:var(--surface);width:42px;height:42px;color:var(--ink);border-radius:4px;flex:0 0 42px;justify-content:center;align-items:center;display:inline-flex}.menu-toggle{display:none}.artwork-motion-toggle{margin-left:auto}@media (max-width:1050px){.site-navigation{flex-wrap:wrap;gap:12px;min-height:76px;padding:18px 0}.menu-toggle{justify-content:center;align-items:center;display:inline-flex}.primary-nav{width:100%;display:none}.primary-nav.is-open{grid-template-columns:1fr 1fr;gap:0 20px;display:grid}.primary-nav a{padding:13px 0}}@media (max-width:600px){.site-navigation{width:calc(100% - 40px)}.site-brand{flex:140px;font-size:15px}.site-logo{width:34px;height:34px}}.portfolio-artwork{pointer-events:none;display:block;overflow:hidden}.portfolio-artwork img{object-fit:cover;width:100%;height:100%;display:block}.portfolio-page.illustrated-page{width:100%;margin-top:0}.illustrated-page>:not(.page-heading):not(.home-hero){width:min(1100px,100% - 64px);margin-left:auto;margin-right:auto}.page-heading--illustrated,.home-hero{isolation:isolate;color:#fff;background:#101916;position:relative}.illustrated-page>.page-heading--illustrated{align-items:center;max-width:none;min-height:320px;margin-bottom:40px;padding:48px 0;display:flex}.page-heading-artwork{z-index:-2;position:absolute;inset:0}.page-heading--illustrated:after,.home-hero:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#050c0aed,#050c0a8c);position:absolute;inset:0}.page-heading--illustrated .page-heading-inner{width:min(1100px,100% - 64px);margin:auto}.illustrated-page .page-heading--illustrated h1,.illustrated-page .home-hero h1{color:#fff}.page-heading--illustrated .page-introduction,.home-hero .page-introduction,.home-hero .entry-meta{color:#e4ece8}.page-heading--illustrated .page-introduction{max-width:760px}.page-heading--illustrated .entry-details summary,.page-heading--illustrated .academic-links a,.page-heading--illustrated .academic-links button,.home-hero .academic-links a,.home-hero .academic-links button{color:#b5eed9}.home-hero{margin-bottom:40px;padding:48px 0 32px}.home-hero .home-introduction{width:min(1100px,100% - 64px);margin-left:auto;margin-right:auto}.home-hero .page-introduction{max-width:710px}.home-hero .eyebrow,.home-hero .home-headline{color:#b5eed9}.home-section-link .section-artwork{aspect-ratio:1;background:var(--surface);border-radius:6px;flex:0 0 84px;width:84px;height:84px}.home-section-link:first-child .section-artwork img{object-fit:contain}@media (max-width:700px){.illustrated-page>:not(.page-heading):not(.home-hero),.page-heading--illustrated .page-heading-inner,.home-hero .home-introduction{width:calc(100% - 40px)}.illustrated-page>.page-heading--illustrated{min-height:260px;margin-bottom:28px;padding:32px 0}.home-hero{margin-bottom:28px;padding:32px 0}.page-heading--illustrated:after,.home-hero:after{background:#050c0ad4}.home-section-link .section-artwork{flex-basis:72px;width:72px;height:72px}}@media print{.portfolio-artwork,.page-heading--illustrated:after,.home-hero:after{display:none}.illustrated-page>.page-heading--illustrated,.home-hero{color:#000;background:#fff;min-height:0;padding:0}.illustrated-page .page-heading--illustrated h1,.page-heading--illustrated .page-introduction,.illustrated-page .home-hero h1,.home-hero .page-introduction,.home-hero .home-headline,.home-hero .eyebrow{color:#000}}.profile-portrait{aspect-ratio:1;border:3px solid var(--line);background:var(--surface);border-radius:50%;flex:none;width:300px;max-width:100%;overflow:hidden}.profile-portrait img{object-fit:cover;width:100%;height:100%;display:block}.profile-portrait .asset-unavailable{text-align:center;overflow-wrap:anywhere;justify-content:center;align-items:center;width:100%;height:100%;padding:24px;display:flex}@media (max-width:991px){.profile-portrait{width:200px}}.home-introduction{justify-content:space-between;align-items:center;gap:40px;display:flex}.home-introduction-copy{flex:1;min-width:0}.home-introduction h1{margin:14px 0;font-family:Georgia,serif;font-size:44px;font-weight:500}.home-headline{color:var(--accent);margin-bottom:18px;font-size:21px}.profile-availability{color:var(--accent);font-size:15px;font-weight:600}.method-list{color:var(--muted);flex-wrap:wrap;gap:10px 22px;padding:0;font-size:14px;list-style:none;display:flex}.home-directory{grid-template-columns:1fr 1fr;gap:0 40px;margin-top:44px;display:grid}.home-section-link{border-bottom:1px solid var(--line);color:var(--ink);align-items:center;gap:18px;min-width:0;padding:25px 0;text-decoration:none;display:flex}.home-section-link:first-child{grid-column:1/-1}.home-section-link h2{margin:0 0 5px;font-size:19px}.home-section-link p{color:var(--muted);margin:0;font-size:14px}.section-arrow{flex-shrink:0;margin-left:auto}.home-section-link:hover h2{color:var(--accent);text-decoration:underline}@media (max-width:991px){.home-introduction{flex-direction:column;align-items:stretch;gap:24px}.home-introduction .profile-portrait{align-self:center}}@media (max-width:600px){.home-introduction h1{font-size:32px}.home-headline{font-size:19px}.home-directory{grid-template-columns:1fr;gap:0}}.contact-social{flex-wrap:wrap;gap:24px;margin:-12px 0 36px;display:flex}.contact-social a{align-items:center;gap:9px;font-size:14px;display:inline-flex}.contact-form-section{border-top:1px solid var(--line);max-width:680px;padding-top:30px}.contact-form-section h2{margin-bottom:24px}.contact-field{flex-direction:column;gap:6px;margin-bottom:22px;display:flex}.contact-field label{font-size:14px;font-weight:600}.contact-field input,.contact-field textarea{border:1px solid var(--control-border);background:var(--surface);width:100%;color:var(--ink);border-radius:4px;padding:10px 12px}.contact-field textarea{resize:vertical}.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--muted);opacity:1}.form-error{color:var(--error);font-size:14px}.admin-media-preview{min-width:0}.admin-asset-visual{border:1px solid var(--line);color:var(--ink);background:#101412;border-radius:4px;justify-content:center;align-items:center;width:100%;height:164px;padding:8px;display:flex;position:relative;overflow:hidden}button.admin-asset-visual:hover{border-color:var(--accent)}button.admin-asset-visual:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.admin-asset-visual img{object-fit:contain;width:100%;height:100%}.admin-asset-placeholder{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:12px;font-size:.85rem;display:flex}.admin-asset-placeholder svg{font-size:1.75rem}.admin-asset-inspect-icon{border:1px solid var(--line);background:#101412;border-radius:4px;place-items:center;width:30px;height:30px;display:grid;position:absolute;bottom:8px;right:8px}.admin-asset-meta{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px;min-height:18px;margin-top:10px;font-size:.75rem;display:flex}.admin-asset-type{color:var(--accent);font-weight:600}.admin-asset-filename{overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:5px;font-size:.8rem;line-height:1.5;display:-webkit-box;overflow:hidden}.admin-asset-host{color:var(--muted);overflow-wrap:anywhere;margin-top:2px;font-size:.75rem}.admin-asset-link-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.admin-asset-link-actions .btn{justify-content:center;align-items:center;width:34px;height:32px;padding:0;display:inline-flex}.admin-asset-copy-status{color:var(--muted);font-size:.75rem}.admin-media-modal .modal-content{background:var(--surface);color:var(--ink)}.admin-media-modal .modal-title{overflow-wrap:anywhere;font-size:1.1rem}.admin-media-modal .modal-body{min-width:0;padding:16px}.admin-asset-viewer-toolbar{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:16px;display:flex}.admin-asset-viewer-toolbar .form-range{flex:140px;width:auto;min-width:100px;max-width:260px}.admin-asset-viewer-toolbar output{min-width:44px;font-size:.85rem}.admin-asset-viewer-toolbar .form-check{margin:0 0 0 auto}.admin-asset-image-viewer{text-align:center;background:#101412;min-height:260px;max-height:65vh;overflow:auto}.admin-asset-image-viewer img{object-fit:contain;vertical-align:middle;max-width:100%;height:auto;max-height:65vh;display:inline-block}.admin-asset-image-viewer--round img{aspect-ratio:1;border:2px solid var(--accent);object-fit:cover;border-radius:50%;width:min(100%,380px);max-height:none}.admin-document-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;font-size:.85rem;display:flex}.admin-document-toolbar .form-select{width:130px;margin-left:auto}.admin-document-canvas{scrollbar-gutter:stable;text-align:center;background:#202320;height:65vh;padding:12px;overflow:auto scroll}.admin-document-canvas canvas{vertical-align:top;display:inline-block}.admin-document-canvas canvas[hidden]{display:none}.admin-document-status{color:var(--muted);justify-content:center;align-items:center;gap:8px;min-height:180px;padding:16px;display:flex}.admin-asset-player{background:#101412;border:0;width:100%;max-height:65vh}iframe.admin-asset-player{aspect-ratio:16/9}.admin-asset-viewer-details{overflow-wrap:anywhere;flex:100%;max-height:140px;font-size:.85rem;overflow:auto}.admin-asset-viewer-details p{white-space:pre-wrap;margin:8px 0 0}.admin-asset-viewer-details strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}@media (max-width:575px){.admin-asset-viewer-toolbar{gap:10px}.admin-asset-viewer-toolbar .form-check{flex-basis:100%;margin:0}.admin-asset-image-viewer{min-height:200px}}.admin-page{background:var(--background);color:var(--ink);min-height:calc(100vh - 150px);padding-bottom:48px}.admin-shell{max-width:1440px}.admin-hero{background:var(--surface);border-bottom:1px solid var(--line);padding:28px 0}.admin-title{letter-spacing:0;margin-bottom:4px;font-size:1.75rem;font-weight:700}.admin-subtitle{color:var(--muted);margin:0}.admin-panel{background:var(--surface);border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 24px #0003}.admin-panel-header{border-bottom:1px solid var(--line);padding:18px 20px}.admin-panel-body{padding:20px}.admin-resource-tabs{gap:8px}.admin-resource-tabs .nav-link{border:1px solid var(--control-border);color:var(--ink);border-radius:6px;padding:10px 14px;font-weight:600}.admin-resource-tabs .nav-link.active{background:var(--selected-surface);border-color:var(--accent);color:var(--ink)}.admin-list{border:1px solid var(--line);border-radius:6px;max-height:620px;overflow:auto}.admin-list .list-group-item{cursor:pointer;border-left:0;border-right:0}.admin-list .list-group-item:first-child{border-top:0}.admin-list .list-group-item:last-child{border-bottom:0}.admin-list .list-group-item.active{background:var(--selected-surface);border-color:var(--accent);color:var(--ink)}.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.admin-form-grid .admin-field-wide{grid-column:1/-1}.admin-field-label{justify-content:space-between;align-items:center;gap:8px;font-weight:700;display:flex}.admin-field-key{background:var(--surface-raised);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:600}.admin-field-help{color:var(--muted);margin-top:6px;display:block}.admin-url-upload{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.admin-url-upload>.admin-media-preview{max-width:360px;margin-bottom:14px}.admin-asset-rows{gap:14px;display:grid}.admin-asset-row{border-bottom:1px solid var(--line);grid-template-columns:200px repeat(2,minmax(0,1fr));gap:12px;min-width:0;padding:16px 0;display:grid}.admin-asset-row>*{min-width:0}.admin-asset-preview-column{grid-area:1/1/span 3}.admin-asset-url-field{grid-column:2/-1}.admin-asset-row .form-label{color:var(--muted);margin-bottom:6px;font-size:.8rem;line-height:1.45}.admin-asset-actions{grid-column:2/-1;align-self:end}.admin-array-control{min-height:118px}.admin-description-control{min-height:160px}.admin-save-bar{background:var(--surface);border:1px solid var(--line);z-index:30;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex;position:sticky;bottom:12px;box-shadow:0 10px 30px #0000004d}.admin-muted{color:var(--muted)}@media (max-width:991px){.admin-form-grid{grid-template-columns:1fr}.admin-asset-row{grid-template-columns:160px minmax(0,1fr)}.admin-asset-preview-column{grid-row:1/span 4}.admin-asset-row>.form-group,.admin-asset-row>.admin-asset-url-field,.admin-asset-actions{grid-column:2}.admin-field-label{flex-wrap:wrap}.admin-save-bar{flex-direction:column;align-items:stretch}}@media (max-width:575px){.admin-panel-body{padding:14px}.admin-asset-row{grid-template-columns:minmax(0,1fr)}.admin-asset-preview-column{grid-area:auto/1}.admin-asset-row>.form-group,.admin-asset-row>.admin-asset-url-field,.admin-asset-actions{grid-column:1}.admin-asset-preview-column .admin-asset-visual{height:200px}}.image-caption{align-items:flex-start;gap:6px;min-width:0;display:flex}.image-caption-text{-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;white-space:normal;-webkit-box-orient:vertical;flex:1;min-width:0;max-height:3em;line-height:1.5;display:-webkit-box;overflow:hidden}.image-caption-info{width:28px;height:28px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:4px;flex:0 0 28px;place-items:center;padding:0;display:inline-grid}.image-caption-info:hover,.image-caption-info:focus-visible{color:var(--accent);border-color:var(--control-border)}.image-caption-popover{--bs-popover-bg:var(--surface);--bs-popover-body-color:var(--ink);--bs-popover-border-color:var(--line);width:min(360px,100vw - 32px);max-width:calc(100vw - 32px)}.image-caption-popover .popover-body{overflow-wrap:anywhere;white-space:pre-line;max-height:min(360px,60vh);overflow-y:auto}.skill-filter-modal .modal-content{max-height:calc(100dvh - 56px)}.skill-filter-modal .modal-header,.skill-filter-modal .modal-footer,.skill-filter-search{flex:none}.skill-filter-search{border-bottom:1px solid var(--line);padding:12px 16px}.skill-filter-modal .modal-body{overscroll-behavior:contain;min-height:0;overflow-y:auto}.skill-filter-modal .form-check{overflow-wrap:anywhere;margin-bottom:10px}@media (max-width:575px){.skill-filter-modal .modal-content{max-height:calc(100dvh - 16px)}}.project-collection{grid-template-columns:1fr;display:grid}.project-entry{border-bottom:1px solid var(--line);grid-template-columns:280px minmax(0,1fr);gap:34px;padding:32px 0;display:grid}.project-entry[id]{scroll-margin-top:90px}.project-entry-media{min-width:0}.project-entry--text{grid-template-columns:minmax(0,1fr)}.project-entry--text .project-entry-media{display:none}.project-entry h2{font-size:23px}.project-entry .eyebrow{margin-bottom:9px}.project-entry-copy{min-width:0}.project-description{white-space:pre-line;margin-top:20px}.project-collection--grid{grid-template-columns:1fr 1fr;gap:32px}.project-collection--grid .project-entry{display:block}.project-collection--grid .project-entry-media{margin-bottom:24px}.view-segment{display:flex}.view-segment button:first-child{border-radius:4px 0 0 4px}.view-segment button:last-child{border-radius:0 4px 4px 0;margin-left:-1px}@media (max-width:700px){.project-collection--grid{grid-template-columns:1fr}.project-entry{grid-template-columns:1fr;gap:22px}}.research-page .page-heading .profile-portrait img{transform-origin:50%;transform:scale(1.05)}.research-page .nav-tabs{border-color:var(--line);gap:12px}.research-page .nav-tabs .nav-link{color:var(--muted);border:0;border-bottom:2px solid #0000;border-radius:0;padding:12px 16px;font-size:15px}.research-page .nav-tabs .nav-link.active{color:var(--accent);border-bottom-color:var(--accent);background:0 0;font-weight:650}.research-output{border-bottom:1px solid var(--line);grid-template-columns:200px minmax(0,1fr);grid-template-areas:"media title""media copy";gap:0 32px;padding:36px 0;display:grid}.research-output-title{grid-area:title}.research-output-copy{grid-area:copy;min-width:0}.research-output-media{grid-area:media}.research-output-media summary{color:var(--link);cursor:pointer;font-size:14px}.research-output[id]{scroll-margin-top:90px}.research-page .research-output h3{margin-bottom:12px;font-size:21px}.research-output--text>div:last-child{max-width:900px}.research-group-heading{margin:0;padding-top:32px}.research-output--text{grid-template-columns:minmax(0,1fr);grid-template-areas:"title""copy"}.research-output--text .research-output-media{display:none}.personal-contribution{white-space:pre-line}.research-output-media{min-width:0}.research-output .output-description{white-space:pre-line;margin:18px 0}.research-output .personal-contribution{border-left:2px solid var(--accent);padding-left:16px}.related-role-link{color:var(--link);text-align:left;text-underline-offset:4px;background:0 0;border:0;padding:0;font-size:14px;text-decoration:underline}.related-output{margin-top:18px}.project-metadata{color:var(--muted);font-size:13px}.project-metadata p{margin-bottom:8px}.project-type-status{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.project-methods{margin:12px 0}.project-methods summary{cursor:pointer;color:var(--link)}.project-methods ul{flex-wrap:wrap;gap:5px 16px;margin-top:8px;padding:0;list-style:none;display:flex}.project-links{flex-wrap:wrap;gap:10px 24px;margin:16px 0;padding:0;font-size:14px;list-style:none;display:flex}.project-links a{overflow-wrap:anywhere;align-items:center;gap:7px;display:inline-flex}.project-media{--project-media-height:220px;background:var(--surface);min-width:0}.project-media img{width:100%;height:var(--project-media-height);object-fit:contain;display:block}.project-image-link{display:block;position:relative}.project-image-figure{margin:0}.project-image-enlarge{border:1px solid var(--control-border);background:var(--surface);width:32px;height:32px;color:var(--ink);border-radius:4px;place-items:center;display:grid;position:absolute;top:8px;right:8px}.project-image-link:hover .project-image-enlarge,.project-image-link:focus-visible .project-image-enlarge{color:var(--accent);border-color:var(--accent)}.research-output .project-media{--project-media-height:165px}.project-media .carousel-control-prev,.project-media .carousel-control-next{width:30px;height:38px;top:calc(var(--project-media-height) / 2 - 19px);opacity:.9;background:#183c31}.project-media .carousel-indicators{top:calc(var(--project-media-height) - 28px);margin-bottom:0;bottom:auto}.project-media .carousel-indicators button{background-color:var(--accent)}.project-media-placeholder{height:165px;color:var(--muted);justify-content:center;align-items:center;font-size:13px;display:flex}@media (max-width:700px){.research-output{grid-template-columns:1fr;grid-template-areas:"title""copy""media";gap:0}.research-output-media{max-width:180px;margin-top:16px}.research-output .project-media{--project-media-height:130px}.research-page .nav-tabs{gap:0}.research-page .nav-tabs .nav-link{padding:12px;font-size:13px}}:root{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0b0d0c;--ink:#eef3f0;--muted:#b5c1ba;--accent:#8cd4b2;--link:#a1cdf4;--line:#3d4b43;--control-border:#63756a;--surface:#151a18;--surface-raised:#202723;--selected-surface:#233d30;--warm:#efb397;--error:#ffb4a8;--error-surface:#34211f;--status:#f6c7a9;--status-surface:#362920;--bs-body-bg:var(--background);--bs-body-color:var(--ink);--bs-emphasis-color:var(--ink);--bs-secondary-color:var(--muted);--bs-secondary-bg:var(--surface-raised);--bs-tertiary-bg:var(--surface);--bs-border-color:var(--line);--bs-link-color:var(--link);--bs-link-hover-color:#c6e3ff}html{font-size:16px}html,body{background:var(--background);min-height:100%;color:var(--ink);margin:0}body{line-height:1.65}*{box-sizing:border-box;letter-spacing:0}#root{flex-direction:column;min-height:100vh;display:flex}a{color:var(--link);text-underline-offset:4px}a:hover{color:var(--bs-link-hover-color)}button,input,select,textarea{font:inherit}.form-control,.form-select,.form-check-input{border-color:var(--control-border)}.form-control::placeholder{color:var(--muted);opacity:1}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--warm);outline-offset:4px}.content-wrapper{flex:1;min-width:0}.portfolio-page{width:min(1100px,100% - 64px);margin:60px auto 88px}.portfolio-page:focus{outline:none}.project-media .asset-unavailable{text-align:center;min-height:220px;padding:24px 44px}.research-output .asset-unavailable{min-height:165px}.portfolio-page h1,.portfolio-page h2,.portfolio-page h3{color:var(--ink);overflow-wrap:anywhere;line-height:1.25}.portfolio-page h1{font-size:36px;font-weight:600}.portfolio-page h2{font-size:23px}.portfolio-page h3{font-size:17px}.portfolio-page p,.portfolio-page li,.academic-links a{overflow-wrap:anywhere}.page-heading{max-width:820px;margin-bottom:36px}.page-heading h1{margin-bottom:16px}.page-heading-inner{align-items:center;gap:40px;display:flex}.page-heading-copy{flex:1;min-width:0}@media (max-width:991px){.page-heading-inner{flex-direction:column;align-items:stretch;gap:24px}.page-heading-inner .profile-portrait{align-self:center}}.page-introduction{white-space:pre-line;max-width:760px;color:var(--muted);font-size:17px;line-height:1.8}.academic-links{flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:22px;font-size:14px;display:flex}.academic-links a,.academic-links button,.text-link{align-items:center;gap:9px;font-weight:600;display:inline-flex}.academic-links button{color:var(--link);text-underline-offset:4px;background:0 0;border:0;padding:0;text-decoration:underline}.eyebrow{text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:700}.eyebrow-row{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:16px;display:flex}.content-status{color:var(--status);background:var(--status-surface);border-radius:3px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-block}.entry-meta{color:var(--muted);margin:0 0 10px;font-size:14px}.thesis-overview{border-top:2px solid var(--accent);border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 300px;gap:40px;margin-bottom:44px;padding:34px 0;display:grid}.thesis-overview h2{max-width:700px;margin-bottom:18px;font-size:25px}.thesis-copy>p{white-space:pre-line;max-width:780px}.thesis-diagram{align-self:start;min-width:0;margin:0}.thesis-diagram img{border-radius:4px;width:100%;height:auto}.thesis-diagram figcaption{color:var(--muted);text-align:center;margin-top:9px;font-size:12px}.thesis-questions{margin:16px 0}.thesis-questions summary{cursor:pointer;color:var(--link)}.thesis-questions ul{padding-left:20px}.thesis-questions li{margin-bottom:7px}.method-list{margin:20px 0 0}.method-list li{border-left:2px solid var(--line);padding-left:12px}.portfolio-toolbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 30px;padding:16px 0;display:flex}.portfolio-toolbar label{margin:0;font-size:13px}.portfolio-toolbar select{border:1px solid var(--control-border);color:var(--ink);background:var(--surface);border-radius:4px;max-width:100%;padding:7px 10px}.public-button{border:1px solid var(--control-border);background:var(--surface);color:var(--accent);border-radius:4px;justify-content:center;align-items:center;gap:9px;padding:7px 13px;font-size:14px;text-decoration:none;display:inline-flex}.public-button:hover,.public-button[aria-pressed=true]{background:var(--selected-surface);color:var(--ink)}.record-list{border-top:1px solid var(--line)}.record-entry{border-bottom:1px solid var(--line);grid-template-columns:160px minmax(0,1fr);gap:32px;padding:30px 0;display:grid}.record-entry h2{margin-bottom:8px;font-size:21px}.record-entry h3{margin-bottom:8px;font-size:19px}.record-section-heading{margin:32px 0 0;font-size:23px}.programme-group{border-bottom:1px solid var(--line);padding-top:28px}.programme-group>h2{margin-bottom:12px;font-size:23px}.programme-status{flex-wrap:wrap;gap:12px;display:flex}.programme-status .content-status{color:var(--muted);background:0 0;margin-bottom:24px;padding:0;font-weight:400}.programme-coursework{margin-top:20px}.programme-group .record-entry:last-child{border-bottom:0}.record-entry p{margin-bottom:12px}.record-entry .entry-summary{max-width:800px}.record-entry .entry-summary li{margin-bottom:8px}.entry-details{margin-top:16px}.entry-details summary{color:var(--link);cursor:pointer;font-size:14px;font-weight:600}.empty-state{color:var(--muted);padding:32px 0}.asset-unavailable{background:var(--surface);min-height:165px;color:var(--muted);overflow-wrap:anywhere;justify-content:center;align-items:center;padding:20px;font-size:13px;display:flex}.portfolio-data-status{max-width:1100px;color:var(--muted);margin:20px auto 0;padding:12px 24px}.portfolio-data-status--error{background:var(--error-surface);color:var(--error)}.skip-link{z-index:2000;background:var(--surface);padding:12px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:12px}.modal-content{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px}.modal-90w{max-width:min(1000px,100% - 32px)}.modal-content .modal-header,.modal-content .modal-body,.modal-content .modal-footer{background:var(--surface)}.modal-title{font-size:23px}.modal-body{font-size:15px}.modal-detail-media{grid-template-columns:1fr 1fr;gap:24px;margin-top:28px;display:grid}.modal-detail-media figure{min-width:0;margin:0}.modal-detail-media img{object-fit:contain;background:var(--surface);width:100%;height:260px}.modal-detail-media .institution-logo img{width:160px;max-width:100%;height:120px}.modal-detail-media figcaption{color:var(--muted);overflow-wrap:anywhere;margin-top:8px;font-size:13px}.map-address{margin-top:4px;display:block}.map-external-link{align-items:center;gap:7px;margin-top:8px;display:inline-flex}.modal-detail-media iframe{border:0;width:100%;min-height:280px}.modal-skill-list{margin:24px 0 0}.modal-skill-list summary{cursor:pointer;color:var(--link)}.modal-skill-list ul{color:var(--muted);flex-wrap:wrap;gap:8px 18px;margin-top:16px;padding:0;list-style:none;display:flex}@media (max-width:700px){.portfolio-page{width:calc(100% - 40px);margin:36px auto 64px}.portfolio-page h1{font-size:30px}.thesis-overview{grid-template-columns:1fr;gap:20px;padding:26px 0}.thesis-overview h2{font-size:23px}.thesis-diagram{justify-self:center;width:min(100%,300px)}.thesis-overview--compact .thesis-diagram{display:none}.record-entry{grid-template-columns:1fr;gap:6px;padding:24px 0}.modal-detail-media{grid-template-columns:1fr}.portfolio-toolbar{align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{:root{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#fff;--ink:#111;--muted:#444;--accent:#176451;--link:#225d89;--line:#ccc;--surface:#f3f6f5;--surface-raised:#e6ebe8;--status:#7c392c;--status-surface:#fff0ea}.site-header,.footer-style,.academic-links,.skip-link{display:none!important}.portfolio-page{width:100%;margin:0}.record-entry,article{break-inside:avoid}body{font-size:11pt}a{color:inherit}}