:root{--ink:#061c32;--ink-soft:#395064;--blue:#176da2;--blue-pale:#d9eaf5;--line:#cad6df;--paper:#f7f7f4;--paper-deep:#edf1f1;--white:#fff;--shadow:0 20px 55px #061c321f;color:var(--ink);background:var(--paper);font-synthesis:none;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{background:var(--paper);color:var(--ink);margin:0;overflow-x:clip}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}img{max-width:100%;display:block}.site-shell{width:min(1160px,100% - 48px);margin:0 auto}.site-header{backdrop-filter:blur(14px);z-index:5;background:#f7f7f4eb;border-bottom:1px solid #061c321f;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;height:64px;display:flex}.site-name{color:var(--blue);letter-spacing:-.02em;font-size:1.08rem;font-weight:800;text-decoration:none}.site-name:hover{color:var(--ink)}nav{gap:1.35rem;display:flex}nav a{color:var(--ink-soft);letter-spacing:.03em;font-size:.82rem;font-weight:700;text-decoration:none}nav a:hover,nav a[aria-current=true]{color:var(--blue)}.hero{grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr);align-items:start;gap:clamp(3rem,7vw,6.5rem);padding-top:clamp(3.5rem,7vw,6.5rem);padding-bottom:clamp(3rem,5vw,4.5rem);display:grid}.hero-portrait-wrap{max-width:330px}.hero-portrait-frame{aspect-ratio:1;border:4px solid var(--blue);border-radius:50%;overflow:hidden}.hero-portrait-frame img{object-fit:cover;object-position:center;filter:saturate(.9)contrast(1.02);width:100%;height:100%}.contact-links{gap:.48rem;margin:1.45rem 0 0;display:grid}.contact-links a{width:fit-content;color:var(--ink-soft);border-bottom:1px solid #0000;gap:.55rem;padding-bottom:.15rem;font-size:.8rem;font-weight:650;text-decoration:none;display:inline-flex}.contact-links a:hover{color:var(--blue);border-bottom-color:var(--blue)}.eyebrow{color:var(--blue);letter-spacing:.11em;text-transform:uppercase;margin:0 0 1rem;font-size:.73rem;font-weight:800;line-height:1.4}.hero h1,.project-header h1{letter-spacing:-.065em;margin:0 0 1.8rem;font-size:clamp(2.7rem,5.4vw,4.8rem);font-weight:720;line-height:.98}.hero-copy{max-width:610px}.hero-copy p:not(.eyebrow){color:var(--ink-soft);margin:0 0 1.05rem;font-size:clamp(1rem,1.5vw,1.08rem);line-height:1.75}.hero-copy .hero-lead{color:var(--ink);font-size:clamp(1.08rem,1.7vw,1.28rem);line-height:1.6}.text-link,.back-link{color:var(--blue);gap:.6rem;margin-top:1.2rem;font-size:.9rem;font-weight:800;text-decoration:none;display:inline-flex}.text-link:hover,.back-link:hover{text-underline-offset:.28em;text-decoration:underline}.contact-band{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin-bottom:0;display:grid}.contact-band a{border-right:1px solid var(--line);color:var(--ink-soft);gap:.35rem;padding:1.15rem 1.4rem;text-decoration:none;display:grid}.contact-band a:first-child{border-left:1px solid var(--line)}.contact-band span{color:var(--blue);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:800}.contact-band strong{overflow-wrap:anywhere;font-size:.82rem;line-height:1.35}.contact-band a:hover{background:var(--blue-pale);color:var(--ink)}.projects-section{background:var(--ink);color:var(--white);padding:clamp(3.8rem,7vw,6.5rem) 0}.portfolio-tab-area{background:var(--paper)}.portfolio-switch{z-index:1;align-items:end;gap:.35rem;display:flex;position:relative;transform:translateY(1px)}.portfolio-switch button{border:1px solid var(--line);border-bottom-color:var(--line);cursor:pointer;border-radius:.7rem .7rem 0 0;padding:.65rem .95rem;font-size:.78rem;font-weight:800;transition:filter .15s,margin .15s,padding .15s}.portfolio-switch button[data-portfolio-view=projects]{background:var(--ink);border-color:var(--ink);color:var(--white)}.portfolio-switch button[data-portfolio-view=academic]{background:var(--white);color:var(--ink)}.portfolio-switch button:not(.is-active){margin-bottom:.3rem}.portfolio-switch button.is-active{border-bottom-color:#0000;padding-bottom:.85rem}.portfolio-switch button:hover{filter:brightness(.95)}.section-intro{border-bottom:1px solid #ffffff38;grid-template-columns:minmax(150px,.45fr) minmax(0,1.55fr);gap:2rem;padding-bottom:2.5rem;display:grid}.section-intro .eyebrow{color:#8bc5e5}.section-intro h2{letter-spacing:-.052em;overflow-wrap:anywhere;max-width:760px;margin:0;font-size:clamp(1.8rem,3.3vw,3.1rem);font-weight:650;line-height:1.12}.project-filter{gap:1.35rem;min-width:0;display:grid}.filter-heading{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.filter-heading .eyebrow{color:#b6c5cf}.filter-reset{color:#b6c5cf;cursor:pointer;text-underline-offset:.3em;background:0 0;border:0;padding:0;font-size:.77rem;font-weight:800;text-decoration:underline}.filter-reset:disabled{cursor:default;opacity:.42;text-decoration:none}.filter-groups{gap:1.35rem;display:grid}.filter-group{border:0;min-width:0;margin:0;padding:0}.filter-group legend{color:#b6c5cf;letter-spacing:.09em;text-transform:uppercase;margin:0 0 .6rem;padding:0;font-size:.72rem;font-weight:800}.filter-tags{flex-wrap:wrap;gap:.5rem;display:flex}.filter-tag{color:var(--white);cursor:pointer;background:0 0;border:1px solid #ffffff45;border-radius:999px;padding:.53rem .72rem;font-size:.76rem;line-height:1.1;transition:background .15s,border-color .15s,color .15s}.filter-tag:hover:not(:disabled),.filter-tag.is-active{color:var(--ink);background:#a6d6ee;border-color:#a6d6ee}.filter-tag:disabled{color:#718392;cursor:not-allowed;border-color:#ffffff1a}.filter-result{color:#b6c5cf;margin:0;font-size:.79rem}.project-timeline{margin-top:2.6rem}.project-card{grid-template-columns:5rem 26px minmax(0,1fr);min-width:0;display:grid}.project-year{color:#8bc5e5;letter-spacing:.06em;padding-top:1.55rem;font-size:.78rem;font-weight:800}.timeline-track{border-left:1px solid #ffffff52;position:relative}.timeline-track:before{border:3px solid var(--ink);content:"";background:#8bc5e5;border-radius:50%;width:11px;height:11px;position:absolute;top:1.55rem;left:-6px}.project-card-link{border-bottom:1px solid #ffffff38;padding:1.35rem 3rem 1.45rem 1.2rem;text-decoration:none;transition:background .16s;display:block;position:relative}.project-card-link:hover{background:#ffffff0b}.project-card h3{letter-spacing:-.04em;max-width:840px;margin:0 0 .55rem;font-size:clamp(1.15rem,1.8vw,1.45rem);font-weight:650;line-height:1.2}.project-card p{color:#b6c5cf;margin:0;font-size:.83rem;line-height:1.5}.project-card-tags{flex-wrap:wrap;gap:.4rem;margin-top:.8rem;padding-right:1.5rem;display:flex}.project-card-tags span{color:#b6c5cf;border:1px solid #ffffff3d;border-radius:999px;padding:.31rem .48rem;font-size:.66rem;font-weight:650;line-height:1.2}.project-card-arrow{color:#8bc5e5;font-size:1.15rem;position:absolute;top:50%;right:1rem;transform:translateY(-50%)}.empty-state{color:#b6c5cf;border:1px solid #ffffff47;margin:2rem 0 0;padding:1.5rem}.academic-catalog{margin-top:0}.academic-overview-heading{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.35rem;display:flex}.academic-overview-heading .eyebrow{color:#b6c5cf;margin:0}.academic-overview-heading>p:last-child{color:#b6c5cf;margin:0;font-size:.78rem}.academic-block-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.academic-block-card{color:var(--white);cursor:pointer;text-align:left;background:#ffffff09;border:1px solid #ffffff38;gap:.8rem;min-height:210px;padding:1.2rem 3.5rem 1.2rem 1.25rem;transition:background .16s,border-color .16s,transform .16s;display:grid;position:relative}.academic-block-card:hover{background:#ffffff16;border-color:#8bc5e5;transform:translateY(-2px)}.academic-block-count{color:#8bc5e5;letter-spacing:.09em;text-transform:uppercase;font-size:.7rem;font-weight:800}.academic-block-card h3{letter-spacing:-.04em;margin:auto 0 0;font-size:clamp(1.1rem,1.7vw,1.42rem);font-weight:650;line-height:1.15}.academic-block-card p{color:#b6c5cf;margin:0;font-size:.83rem;line-height:1.55}.academic-block-arrow{color:#8bc5e5;font-size:1.2rem;position:absolute;top:50%;right:1.15rem;transform:translateY(-50%)}.academic-detail{max-width:880px}.academic-back{color:#8bc5e5;cursor:pointer;text-underline-offset:.3em;background:0 0;border:0;padding:0;font-size:.84rem;font-weight:800;text-decoration:underline}.academic-detail-heading{border-bottom:1px solid #ffffff38;margin-top:2.5rem;padding-bottom:2rem}.academic-detail-heading h3{letter-spacing:-.052em;margin:0;font-size:clamp(1.8rem,3.5vw,3rem);font-weight:650;line-height:1.1}.academic-detail-heading>p:last-child{color:#b6c5cf;max-width:700px;margin:1rem 0 0;font-size:1rem;line-height:1.65}.academic-level-filter{align-items:center;gap:1rem;margin:1.7rem 0 1.1rem;display:flex}.academic-level-filter>span{color:#b6c5cf;letter-spacing:.09em;text-transform:uppercase;font-size:.72rem;font-weight:800}.academic-level-tags{flex-wrap:wrap;gap:.45rem;display:flex}.academic-level-tag{color:var(--white);cursor:pointer;background:0 0;border:1px solid #ffffff45;border-radius:999px;padding:.45rem .68rem;font-size:.74rem;font-weight:750}.academic-level-tag:hover,.academic-level-tag.is-active{color:var(--ink);background:#a6d6ee;border-color:#a6d6ee}.academic-course-list{border-top:1px solid #ffffff38;margin:0;padding:0;list-style:none}.academic-course-list li{border-bottom:1px solid #ffffff38;justify-content:space-between;align-items:center;gap:1rem;padding:1rem .25rem;display:flex}.academic-course-copy{gap:.25rem;display:grid}.academic-course-title{letter-spacing:-.015em;font-size:.98rem;font-weight:650;line-height:1.35}.academic-course-original{color:#b6c5cf;font-size:.76rem;line-height:1.35}.academic-course-meta{flex:none;place-items:end;gap:.35rem;display:grid}.academic-course-list strong,.academic-course-list em{color:#b6c5cf;white-space:nowrap;border:1px solid #ffffff3d;border-radius:999px;padding:.34rem .5rem;font-size:.66rem;font-style:normal;font-weight:750;line-height:1.2}.academic-course-list li.is-in-progress{background:#ffffff12;padding-left:.75rem;padding-right:.75rem}.academic-empty-state{color:#b6c5cf;border:1px solid #ffffff47;margin:1.5rem 0 0;padding:1rem}.academic-feature{color:#b6c5cf;border-top:1px solid #ffffff38;margin-top:2.5rem;padding-top:2rem;font-size:.95rem;line-height:1.65}.academic-feature p{max-width:720px;margin:0}.academic-feature-gallery{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.academic-feature-gallery figure{margin:0}.academic-feature-gallery img{width:100%}.academic-feature-gallery figcaption{color:#b6c5cf;margin-top:.45rem;font-size:.76rem}.portfolio-section.is-academic{background:var(--white);color:var(--ink)}.portfolio-section.is-academic .section-intro{border-bottom-color:var(--line)}.portfolio-section.is-academic .section-intro .eyebrow{color:var(--blue)}.portfolio-section.is-academic .academic-overview-heading .eyebrow,.portfolio-section.is-academic .academic-overview-heading>p:last-child{color:var(--ink-soft)}.portfolio-section.is-academic .academic-block-card{background:var(--paper);border-color:var(--line);color:var(--ink)}.portfolio-section.is-academic .academic-block-card:hover{background:var(--blue-pale);border-color:var(--blue)}.portfolio-section.is-academic .academic-block-count,.portfolio-section.is-academic .academic-block-arrow{color:var(--blue)}.portfolio-section.is-academic .academic-block-card p{color:var(--ink-soft)}.portfolio-section.is-academic .academic-back{color:var(--blue)}.portfolio-section.is-academic .academic-detail-heading,.portfolio-section.is-academic .academic-course-list,.portfolio-section.is-academic .academic-course-list li,.portfolio-section.is-academic .academic-feature{border-color:var(--line)}.portfolio-section.is-academic .academic-detail-heading>p:last-child,.portfolio-section.is-academic .academic-feature,.portfolio-section.is-academic .academic-feature-gallery figcaption,.portfolio-section.is-academic .academic-level-filter>span{color:var(--ink-soft)}.portfolio-section.is-academic .academic-level-tag{border-color:var(--line);color:var(--ink)}.portfolio-section.is-academic .academic-level-tag:hover,.portfolio-section.is-academic .academic-level-tag.is-active{background:var(--blue-pale);border-color:var(--blue-pale);color:var(--ink)}.portfolio-section.is-academic .academic-course-original{color:var(--ink-soft)}.portfolio-section.is-academic .academic-course-list strong,.portfolio-section.is-academic .academic-course-list em{border-color:var(--line);color:var(--ink-soft)}.portfolio-section.is-academic .academic-course-list li.is-in-progress{background:var(--paper-deep)}.portfolio-section.is-academic .academic-empty-state{border-color:var(--line);color:var(--ink-soft)}.project-page{padding-top:clamp(3rem,7vw,7rem);padding-bottom:clamp(5rem,10vw,9rem)}.back-link{margin:0 0 clamp(3rem,6vw,5.5rem)}.project-header{max-width:950px}.project-header h1{margin-bottom:1.35rem;font-size:clamp(2.3rem,4.7vw,4.25rem);line-height:1}.project-meta{border-bottom:1px solid var(--line);border-top:1px solid var(--line);grid-template-columns:.65fr 1.35fr;gap:1.5rem;margin:clamp(3rem,7vw,6rem) 0;padding:1.4rem 0;display:grid}.project-meta div{gap:.38rem;display:grid}.project-meta span,.project-aside h2{color:var(--ink-soft);letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:800}.project-meta strong{font-size:.92rem;line-height:1.45}.project-detail-grid{grid-template-columns:minmax(200px,.58fr) minmax(0,1.42fr);gap:clamp(2.5rem,8vw,8rem);display:grid}.project-aside{align-content:start;gap:2rem;display:grid}.project-aside section{gap:.75rem;display:grid}.detail-tags{flex-wrap:wrap;gap:.42rem;display:flex}.detail-tags span{border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:.46rem .62rem;font-size:.72rem;font-weight:700;line-height:1.2}.project-prose{color:var(--ink-soft);font-size:1.03rem;line-height:1.76}.project-prose h2{color:var(--ink);letter-spacing:-.035em;margin:0 0 .8rem;font-size:1.4rem;line-height:1.2}.project-prose h2:not(:first-child){margin-top:2.9rem}.project-prose p{margin:0 0 1.25rem}.project-prose table{border-collapse:collapse;color:var(--ink-soft);width:100%;margin:1.6rem 0 2rem;font-size:.9rem}.project-prose th,.project-prose td{border-bottom:1px solid var(--line);text-align:left;padding:.72rem .8rem}.project-prose th{background:var(--blue-pale);color:var(--ink);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem}.project-prose th:last-child,.project-prose td:last-child{text-align:right;white-space:nowrap}.project-media,.project-resources{margin-top:3.5rem}.media-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.media-grid figure{margin:0}.media-trigger{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block;position:relative}.media-grid img{width:100%}.media-expand{color:var(--white);opacity:0;background:#061c32e0;padding:.55rem .7rem;font-size:.72rem;font-weight:750;transition:opacity .16s;position:absolute;bottom:0;right:0}.media-trigger:hover .media-expand,.media-trigger:focus-visible .media-expand{opacity:1}.media-grid figcaption{margin-top:.45rem;font-size:.78rem}.media-lightbox{background:0 0;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:clamp(1rem,4vw,3rem)}.media-lightbox::backdrop{background:#030d18e6}.media-lightbox-content{align-content:center;justify-items:center;height:100%;display:grid;position:relative}.media-lightbox img{object-fit:contain;max-width:min(1200px,100%);max-height:calc(100dvh - 8rem)}.media-lightbox p{color:var(--white);text-align:center;margin:.8rem 0 0;font-size:.82rem}.media-lightbox-close{background:var(--white);color:var(--ink);cursor:pointer;border:0;padding:.55rem .7rem;font-size:.78rem;font-weight:800;position:absolute;top:0;right:0}.resource-links{gap:.65rem;display:grid}.resource-links a{background:var(--white);border:1px solid var(--line);justify-content:space-between;align-items:center;padding:.9rem 1rem;font-size:.88rem;font-weight:750;text-decoration:none;display:flex}.resource-links a:hover{border-color:var(--blue);color:var(--blue)}.site-footer{border-top:1px solid var(--line);color:var(--ink-soft);font-size:.76rem}.footer-inner{justify-content:space-between;align-items:center;min-height:74px;display:flex}.footer-inner p{margin:0}.footer-inner a{color:var(--ink);font-weight:800;text-decoration:none}.footer-inner a:hover{color:var(--blue)}a:focus-visible,button:focus-visible{outline-offset:4px;outline:3px solid #e4a23c}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[hidden]{display:none!important}@media (width<=800px){.site-shell{width:min(100% - 36px,620px)}.hero{grid-template-columns:1fr;gap:3.8rem;padding-top:3.4rem}.hero-portrait-wrap{max-width:310px}.hero-copy{max-width:none}.section-intro{grid-template-columns:1fr;gap:.8rem}.academic-block-grid{grid-template-columns:1fr}.filter-result{margin-top:.2rem}.project-card{grid-template-columns:4.5rem 22px minmax(0,1fr)}.project-meta,.project-detail-grid{grid-template-columns:1fr}.project-meta{gap:1.2rem}.project-aside{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;padding-bottom:2rem}.contact-band{grid-template-columns:1fr}.contact-band a{border-bottom:1px solid var(--line);border-left:1px solid var(--line)}}@media (width<=480px){.site-shell{width:min(100% - 28px,620px)}.header-inner{height:64px}.site-name{font-size:.94rem}nav{gap:.42rem}nav a{letter-spacing:0;font-size:.64rem}.portfolio-switch{gap:.15rem}.portfolio-switch button{padding:.55rem .62rem;font-size:.72rem}.academic-overview-heading{flex-direction:column;align-items:flex-start}.academic-level-filter{flex-direction:column;align-items:flex-start;gap:.55rem}.academic-course-list li{align-items:flex-start}.hero h1{font-size:clamp(2.6rem,13vw,3.3rem)}.contact-links a{font-size:.72rem}.project-aside{grid-template-columns:1fr}.project-prose table{white-space:nowrap;display:block;overflow-x:auto}}
