:root{color-scheme:dark;--pf-bg:#050505;--pf-text:#ededed;--pf-muted:#909094;--pf-line:#28282b;--pf-accent:#00dfff}
body{background:var(--pf-bg);color:var(--pf-text);font-family:var(--font-sans);line-height:1.6;word-break:keep-all}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--pf-accent);outline-offset:7px}::selection{background:var(--pf-accent);color:#050505}.accent{color:var(--pf-accent)}.micro{font-size:10px;font-weight:600;letter-spacing:.14em;line-height:1.7}.skip{position:fixed;top:10px;left:10px;z-index:200;background:var(--pf-accent);color:black;padding:10px;transform:translateY(-160%)}.skip:focus{transform:none}
.portfolio-header{min-height:92px;padding:20px 4.4%;display:flex;align-items:center;justify-content:space-between;gap:32px;border-bottom:1px solid var(--pf-line);background:#050505;position:relative;z-index:10}.wordmark{font-family:var(--font-impact);font-size:32px;letter-spacing:-.07em;line-height:1}.wordmark span{font-family:Arial;font-size:12px;color:var(--pf-accent);vertical-align:top;letter-spacing:0;margin-left:7px}#portfolio-nav{display:flex;gap:clamp(20px,3vw,46px);align-items:center}#portfolio-nav a{font-size:11px;letter-spacing:.055em;font-weight:700;padding:10px 0}#portfolio-nav a:hover,#portfolio-nav a[aria-current]{color:var(--pf-accent)}.nav-toggle{display:none}
.banner{height:min(70vw,650px);min-height:380px;border-bottom:1px solid var(--pf-line);position:relative;background:#0c0c0e;display:flex;flex-direction:column;justify-content:space-between;padding:26px 4.4%;isolation:isolate}.banner video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}.banner-top,.banner-bottom{display:flex;justify-content:space-between;gap:24px;color:#aaa}.banner-bottom a{color:var(--pf-accent)}.banner-empty{position:absolute;inset:0;display:flex;flex-direction:column;gap:18px;align-items:center;justify-content:center;color:#5c5c62;pointer-events:none}.banner-play{width:62px;height:62px;border:1px solid #37373b;display:grid;place-items:center;font-size:28px;padding-left:3px}.banner:has(video) .banner-empty{display:none}
.intro{padding:110px 8% 90px;scroll-margin-top:30px}.intro h1{font-family:var(--font-impact);font-size:clamp(44px,6.6vw,100px);line-height:1.12;letter-spacing:-.035em;margin:28px 0 35px}.intro h1 span{color:var(--pf-accent)}.intro-bottom{display:flex;justify-content:space-between;align-items:end;gap:24px}.intro-bottom p,.description{color:var(--pf-muted);font-size:14px;line-height:1.9}.intro-bottom>.micro{text-align:right;color:var(--pf-muted)}
.features{padding-bottom:100px}.feature{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:9%;padding:55px 8% 55px 0}.feature:nth-child(even){grid-template-columns:1fr 1.15fr;padding:55px 0 55px 8%}.feature:nth-child(even) .feature-media{order:2}.feature:nth-child(even) .feature-copy{order:1}.empty-media{position:relative;background:#101012;border:1px solid #252528;overflow:hidden}.feature-media{display:block;aspect-ratio:1.35}.empty-media:after{content:"";position:absolute;inset:12px;border:1px solid #1c1c1f;pointer-events:none}.media-corner{position:absolute;top:27px;left:27px;font-size:9px;letter-spacing:.14em;color:#67676c}.media-cross{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:26px;font-weight:200;color:#38383d}.media-caption{position:absolute;bottom:27px;left:27px;font-size:9px;letter-spacing:.14em;color:#67676c}.feature-copy h2{font-family:var(--font-impact);font-size:clamp(26px,3.4vw,52px);line-height:1.16;letter-spacing:-.025em;margin:23px 0}.feature-copy h2 a:hover{color:var(--pf-accent)}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:65px;border-bottom:1px solid #666;font-size:10px;letter-spacing:.13em;padding:15px 0 11px;margin-top:20px}.text-link span{color:var(--pf-accent);font-size:18px}.feature-media:hover{border-color:var(--pf-accent)}
.portfolio-footer{border-top:1px solid var(--pf-line);margin:0 4.4%;padding:45px 0 28px;display:grid;grid-template-columns:1fr 1fr;gap:40px}.footer-name{font-family:var(--font-impact);font-size:clamp(19px,2.7vw,36px);letter-spacing:-.03em}.footer-name span{font-family:Arial;font-size:12px;color:var(--pf-accent);vertical-align:top;margin-left:7px}.portfolio-footer>div{justify-self:end}.portfolio-footer>div>a{display:block;font-size:14px;margin-top:7px;overflow-wrap:anywhere}.portfolio-footer .micro,.portfolio-footer>p,.portfolio-footer>a:last-child{color:var(--pf-muted);font-size:10px;letter-spacing:.07em}.portfolio-footer>a:last-child{justify-self:end}
.page-heading{padding:90px 6% 55px}.page-heading h1{font-family:var(--font-impact);font-size:clamp(38px,6.5vw,94px);line-height:1.15;letter-spacing:-.035em;margin:23px 0 24px}.page-heading>p:last-child,.gallery-heading-bottom>p{font-size:14px;color:var(--pf-muted)}.gallery-heading-bottom{display:flex;justify-content:space-between;gap:20px;color:var(--pf-muted)}.about-layout{margin:0 8% 100px;display:grid;grid-template-columns: .85fr 1.15fr;gap:12%;align-items:center}.portrait{aspect-ratio:4/5}.about-copy h2{font-size:36px;margin:20px 0}.about-copy h2 span{display:block;font-family:var(--font-display);font-size:13px;letter-spacing:.14em;margin-top:12px;color:var(--pf-muted)}.contact{margin-top:40px}.contact>div{border-top:1px solid var(--pf-line);padding:18px 0}.contact dt{font-size:10px;letter-spacing:.14em;color:var(--pf-muted)}.contact dd{margin:7px 0 0;font-size:clamp(13px,1.5vw,19px);overflow-wrap:anywhere}.contact a:hover{color:var(--pf-accent)}.resume-section{margin:0 8%;padding:44px 0 60px;border-top:1px solid var(--pf-line);display:grid;grid-template-columns:1fr 1.6fr;gap:32px}.resume-section h2{font-family:var(--font-impact);font-size:clamp(24px,3vw,40px);margin-top:12px}.resume-section:last-child{margin-bottom:70px}.resume-empty{padding:15px 0 45px}.resume-empty .micro{color:#737379}.resume-empty p{color:var(--pf-muted);font-size:13px;margin-top:23px}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 14px;padding:0 4.4% 100px}.square{aspect-ratio:1}.project-card:hover .empty-media{border-color:var(--pf-accent)}.project-card:hover h2{color:var(--pf-accent)}.project-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 2px}.project-caption h2{font-size:12px;letter-spacing:.07em}.project-caption>span{font-size:8px;letter-spacing:.06em;color:var(--pf-muted)}.detail-heading .text-link{margin:0 0 34px}.project-images{margin:0 auto;width:88%;max-width:1400px;display:grid;gap:20px}.detail-wide{aspect-ratio:16/9}.detail-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.detail-tall{aspect-ratio:4/3}.project-images img{width:100%;height:auto;display:block}.project-pagination{display:flex;justify-content:space-between;gap:20px;margin:55px 6% 90px;font-size:10px;letter-spacing:.1em}.project-pagination a:hover{color:var(--pf-accent)}
@media(min-width:1600px){.features,.intro,.page-heading,.about-layout,.resume-section,.project-grid{max-width:1600px;margin-left:auto;margin-right:auto}}
@media(max-width:850px){.portfolio-header{min-height:76px;gap:20px}.nav-toggle{display:flex;background:none;border:1px solid #38383d;color:var(--pf-text);padding:8px 12px;gap:18px;align-items:center;font-size:10px;letter-spacing:.1em;cursor:pointer}#portfolio-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:20px 6% 30px;background:#090909;border-bottom:1px solid var(--pf-line);align-items:stretch;gap:5px}#portfolio-nav.is-open{display:flex;flex-direction:column}#portfolio-nav a{padding:12px 0}.intro{padding:72px 6%}.feature{gap:6%;padding:35px 6% 35px 0}.feature:nth-child(even){padding:35px 0 35px 6%}.feature-copy .micro{font-size:8px}.feature-copy h2{font-size:clamp(23px,4vw,36px)}.page-heading{padding-top:60px}.about-layout{gap:7%;margin-left:6%;margin-right:6%}.resume-section{margin-left:6%;margin-right:6%}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.banner{min-height:420px;height:65vh;max-height:620px;padding:22px 6%}.banner-top{flex-direction:column;gap:5px}.banner-bottom{font-size:8px;gap:10px}.intro h1{font-size:clamp(32px,8.8vw,48px)}.intro-bottom{align-items:start}.intro-bottom p{font-size:12px}.intro-bottom .micro{font-size:8px}.feature,.feature:nth-child(even){display:flex;flex-direction:column;gap:26px;align-items:stretch;padding:25px 6% 45px}.feature:nth-child(even) .feature-media,.feature:nth-child(even) .feature-copy{order:initial}.feature-copy h2{font-size:32px;margin:13px 0}.feature-copy .description{font-size:12px}.text-link{margin-top:12px}.features{padding-bottom:25px}.portfolio-footer{gap:28px 16px}.portfolio-footer>div{justify-self:start;grid-column:1/-1}.footer-name{grid-column:1/-1}.portfolio-footer>p{font-size:8px}.portfolio-footer>a:last-child{font-size:8px}.about-layout{grid-template-columns:1fr;margin-bottom:55px;gap:30px}.portrait{max-width:100%;aspect-ratio:1}.about-copy h2{font-size:30px}.resume-section{grid-template-columns:1fr;gap:15px;padding:30px 0}.resume-empty{padding-bottom:20px}.gallery-heading-bottom{flex-direction:column;gap:12px}.project-grid{gap:22px 10px;padding-bottom:60px}.media-corner{top:18px;left:18px;font-size:8px}.media-caption{left:18px;bottom:18px;font-size:8px}.project-caption{align-items:start;flex-direction:column;gap:4px}.project-caption h2{font-size:10px}.detail-pair{grid-template-columns:1fr;gap:12px}.project-images{gap:12px}.project-pagination{font-size:8px}.page-heading h1{overflow-wrap:anywhere}.page-heading{padding-bottom:35px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

.footer-contact-name{margin-top:12px;font-size:15px;font-weight:600;letter-spacing:.03em}

.awards-list{min-width:0}.award-entry{padding:6px 0 30px}.award-entry+.award-entry{border-top:1px solid var(--pf-line);padding-top:28px}.award-entry time{color:var(--pf-muted)}.award-entry h3{font-size:17px;font-weight:600;line-height:1.65;margin:12px 0;overflow-wrap:anywhere}.award-result{color:var(--pf-accent);font-size:13px;font-weight:600;line-height:1.7}.award-project{color:var(--pf-text);font-size:13px;line-height:1.9;margin-top:8px}.award-organization{color:var(--pf-muted);font-size:12px;line-height:1.9;margin-top:12px}.award-organization span{margin-right:9px;color:#b0b0b5}@media(max-width:540px){.award-entry h3{font-size:15px}.award-entry{padding-bottom:24px}}

.resume-section{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}.resume-content{min-width:0}.resume-entry{padding:6px 0 30px}.resume-entry+.resume-entry{border-top:1px solid var(--pf-line);padding-top:28px}.resume-date{color:var(--pf-muted)}.resume-entry h3,.certifications-list h3{font-size:19px;line-height:1.6;font-weight:600;margin:12px 0 6px;overflow-wrap:anywhere}.resume-role{color:var(--pf-accent);font-size:13px}.resume-duty{font-size:13px;color:var(--pf-text);line-height:1.9;margin-top:22px}.resume-duty>span{display:block;color:var(--pf-muted);font-size:10px;letter-spacing:.07em;margin-bottom:5px}.experience-bullets{margin-top:14px;display:grid;gap:8px}.experience-bullets li{position:relative;padding-left:14px;color:var(--pf-muted);font-size:13px;line-height:1.9}.experience-bullets li::before{content:'—';position:absolute;left:0;color:var(--pf-accent)}.education-gpa{margin-top:24px;color:var(--pf-muted);font-size:13px}.education-gpa>span:first-child{font-size:10px;letter-spacing:.1em;margin-right:15px}.education-gpa strong{color:var(--pf-text);font-size:26px;font-weight:600}.skills-list{margin:0}.skills-list>div{padding:15px 0 22px;border-bottom:1px solid var(--pf-line)}.skills-list>div:first-child{padding-top:6px}.skills-list>div:last-child{border:0}.skills-list dt{color:var(--pf-muted);font-size:10px;letter-spacing:.13em;margin-bottom:13px}.skills-list dd{display:flex;flex-wrap:wrap;gap:8px;margin:0}.skill-label{font-size:12px;color:var(--pf-text);border:1px solid #333338;padding:7px 11px}.certifications-list li{padding:6px 0 24px}.certifications-list li+li{padding-top:24px;border-top:1px solid var(--pf-line)}.certifications-list h3{font-size:16px}@media(max-width:540px){.resume-section{grid-template-columns:minmax(0,1fr)}.resume-entry h3{font-size:17px}.skill-label{font-size:11px;padding:6px 9px}}

/* Keep wide display lettering inside the resume heading column. */
.resume-section>div:first-child{min-width:0;container-type:inline-size}
.resume-section h2{font-size:clamp(18px,6.5cqw,40px);line-height:1.3;max-width:100%;letter-spacing:-.035em;overflow-wrap:anywhere}
@media(max-width:850px){.resume-section{grid-template-columns:minmax(0,1fr);gap:26px}.resume-section h2{font-size:clamp(20px,5cqw,36px)}}

.feature-media--image img{width:100%;height:100%;object-fit:cover;display:block}

.banner-top{position:relative;z-index:1;color:#fff;text-shadow:0 1px 6px #000}.banner::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(#0007,transparent 25%,transparent 80%,#0004)}.banner-control{position:absolute;bottom:24px;right:4.4%;z-index:2;color:#fff;border:1px solid #ffffff80;background:#0008;font-size:10px;letter-spacing:.12em;padding:12px 18px;min-height:44px;cursor:pointer}.banner-control:hover{border-color:var(--pf-accent);color:var(--pf-accent)}

.feature-media--marketing img{object-fit:cover;object-position:50% 48%}

.project-images>video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#000;margin-bottom:80px}

.feature-media--art{overflow:hidden}.feature-media--art img{object-fit:cover;object-position:center;transform:none}

.project-credits{display:flex;flex-wrap:wrap;gap:20px 48px;margin-top:26px}.project-credits>div{display:grid;gap:8px}.project-credits dt{font-size:11px;color:var(--pf-muted);letter-spacing:.06em}.project-credits dd{margin:0;font-size:14px;line-height:1.7}

.project-text-cover{width:100%;height:100%;padding:12%;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,#232323,#101010);color:var(--pf-muted)}.project-text-cover span{font-size:10px;letter-spacing:.08em}.project-text-cover strong{font-size:clamp(18px,2.3vw,34px);line-height:1.5;color:var(--pf-accent);word-break:keep-all}.project-work-summary{padding:clamp(24px,5vw,64px);border:1px solid #333}.project-work-summary h2{font-size:20px;margin-bottom:24px}.project-work-summary ul{padding-left:20px;list-style:disc}.project-work-summary li{font-size:14px;line-height:1.9;margin:10px 0;word-break:keep-all}.project-disclosure{border-top:1px solid #333;padding-top:24px;margin-top:32px}

.project-filter-bar{margin:0 4.4% 32px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--pf-line)}.project-year-filters{display:flex;gap:clamp(8px,2vw,28px)}.project-year-filters button{position:relative;display:flex;align-items:center;gap:10px;padding:16px 6px 19px;border:0;background:transparent;color:var(--pf-muted);font:inherit;font-size:14px;cursor:pointer;white-space:nowrap;transition:color .18s}.project-year-filters button:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--pf-accent);transform:scaleX(0);transition:transform .18s}.project-year-filters button[aria-pressed="true"]{color:var(--pf-accent)}.project-year-filters button[aria-pressed="true"]:after{transform:scaleX(1)}.project-year-filters button:hover{color:var(--pf-text)}.project-filter-count{font-size:9px;opacity:.65;align-self:flex-start;padding-top:2px}.project-filter-status{color:var(--pf-muted);white-space:nowrap}.project-grid>.project-card[hidden],.project-filter-empty[hidden]{display:none}.project-filter-empty{grid-column:1/-1;padding:80px 20px;text-align:center;color:var(--pf-muted);font-size:14px;border:1px solid var(--pf-line)}
@media(max-width:600px){.project-filter-bar{flex-direction:column;align-items:stretch;gap:0;margin-bottom:24px}.project-year-filters{justify-content:space-between;gap:4px}.project-year-filters button{font-size:12px;gap:6px;padding:14px 3px}.project-filter-status{padding:14px 3px;border-top:1px solid var(--pf-line);font-size:9px}.project-year-filters button:after{bottom:0}}

.project-achievements{padding:clamp(24px,5vw,64px);border:1px solid var(--pf-line);background:linear-gradient(135deg,#0b191c,#0c0c0e 65%)}.project-achievements h2{font-size:22px;margin-bottom:30px}.achievement-layout{display:grid;grid-template-columns:1fr 1.6fr;gap:40px;align-items:center}.achievement-funding{display:flex;flex-direction:column;gap:12px}.achievement-funding .micro{color:var(--pf-muted)}.achievement-funding strong{font-family:var(--font-impact);font-size:clamp(64px,9vw,124px);line-height:1.1;color:var(--pf-accent);letter-spacing:-.04em}.achievement-layout ul{list-style:none;padding:0;margin:0}.achievement-layout li{padding:16px 0;border-bottom:1px solid var(--pf-line);font-size:14px}.achievement-layout li:first-child{color:var(--pf-text);font-weight:700}.project-external-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}.project-external-links a{padding:14px 22px;border:1px solid var(--pf-accent);font-size:12px;color:var(--pf-accent);transition:background .18s,color .18s}.project-external-links a:first-child,.project-external-links a:hover{background:var(--pf-accent);color:#050505}.project-external-links a:first-child:hover{background:#9af1ff}@media(max-width:600px){.achievement-layout{grid-template-columns:1fr;gap:24px}.project-external-links{flex-direction:column}.project-external-links a{text-align:center}}

.achievement-layout--list{grid-template-columns:1fr}.achievement-layout--list li{font-size:16px;padding:20px 0}

.project-trailer{margin-top:24px}.project-trailer h2{font-size:20px;margin-bottom:20px}.project-trailer video{display:block;width:100%;aspect-ratio:16/9;background:#101012;object-fit:contain;border:1px solid var(--pf-line)}.project-trailer>a{display:inline-block;margin-top:14px}.project-trailer>a:hover{color:var(--pf-accent)}

.resume-section-caption{font-size:12px;color:var(--pf-muted);margin-top:12px}.activity-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:22px}.activity-columns h4{font-size:11px;color:var(--pf-accent);letter-spacing:.05em;font-weight:500}.activity-columns .experience-bullets{margin-top:10px}.activity-columns>div+div{padding-left:22px;border-left:1px solid var(--pf-line)}.resume-publication{color:var(--pf-muted);font-size:12px;line-height:1.9;margin-top:10px}@media(max-width:600px){.activity-columns{grid-template-columns:1fr;gap:22px}.activity-columns>div+div{padding-left:0;padding-top:20px;border-left:0;border-top:1px solid var(--pf-line)}}
