/* Screen-based reading, with accessible overflow when the viewport is very small. */
.screen-site{height:100dvh;min-height:620px;display:flex;flex-direction:column;overflow:hidden}.screen-site .header{flex:0 0 auto}.screen-site .header-inner{min-height:72px;padding:0 28px;gap:22px;max-width:1500px}.screen-site .desktop-nav{gap:20px;font-size:13px}.screen-site .brand{font-size:14px}.screen-site .header-controls{gap:15px}.terminal-trigger{display:flex;align-items:center;gap:9px;background:var(--accent);color:var(--button-ink);border:1px solid var(--accent);padding:9px 13px;border-radius:5px;font:13px var(--mono);white-space:nowrap}.terminal-trigger:hover{filter:brightness(1.1)}.terminal-trigger svg{width:16px;height:16px}.screen-site .terminal-launch{display:none!important}.screen-main{flex:1;min-height:0;width:min(1264px,100%);margin:auto;padding:24px 48px 18px;position:relative;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.screen-main>section,.screen-main>article{height:100%;min-height:0;display:flex;flex-direction:column;animation:screen-in .24s ease-out both}.screen-main .text-link{font-size:13px}.screen-footer{height:37px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 28px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.screen-footer>div{display:flex;gap:25px}.screen-footer .text-link{font-size:11px;gap:7px}.screen-mobile-nav{display:none}.screen-heading{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:22px}.screen-heading .eyebrow{font-size:11px;margin-bottom:9px}.screen-heading h1{font-size:clamp(29px,3.2vw,44px);line-height:1.13;letter-spacing:-.04em}.screen-heading>div>p:not(.eyebrow){font-size:14px;margin-top:10px;max-width:800px}.screen-heading h1+p{line-height:1.6}.screen-filters{display:flex;gap:8px;align-items:center;flex-shrink:0}.screen-filters input,.screen-filters select{padding:9px 10px;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--ink);font-size:12px}.screen-filters input{width:205px}.screen-filters select{width:110px}.screen-filters input::placeholder{color:var(--muted)}.screen-items{flex:1;min-height:0;display:grid;gap:16px}.screen-pager{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:15px;margin-top:16px;border-top:1px solid var(--line);font:12px var(--mono)}.screen-pager button,.screen-pager a{border:0;padding:6px 0;background:none;color:var(--ink);font:inherit}.screen-pager .disabled,.screen-pager button:disabled{opacity:.4;cursor:default}.collection-links{display:flex;gap:24px;flex-shrink:0;margin-top:12px}.collection-links .text-link{font-size:11px}.screen-tabs{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:22px;flex-shrink:0;align-items:center}.screen-tabs button{font-size:13px;border:1px solid var(--line);border-radius:4px;background:none;color:var(--muted);padding:8px 16px}.screen-tabs button[aria-selected=true]{background:var(--accent);border-color:var(--accent);color:var(--button-ink)}.tab-panel{flex:1;min-height:0;display:flex;flex-direction:column;animation:screen-in .2s ease-out}.tab-panel[hidden]{display:none!important}.local-pager{margin-top:auto}.experience-list,.education-list,.award-list{display:grid;gap:24px;grid-template-columns:1fr 1fr;min-height:0;flex:1;align-content:start}.experience-list article,.education-list article,.award-list article{border-top:1px solid var(--line);padding-top:23px;min-width:0}.experience-list h2,.education-list h2,.award-list h2{font-size:24px;line-height:1.3;margin-top:14px}.experience-list .org,.education-list .org{font-size:14px;color:var(--accent);margin-top:12px}.experience-list article>p:not(.eyebrow):not(.org),.education-list article>p:not(.eyebrow):not(.org),.award-list article>p:not(.eyebrow){font-size:14px;line-height:1.8;margin-top:15px}.award-list .text-link{margin-top:18px}.skills-screen .skills-grid{margin-top:3px;flex:1;align-content:center;gap:30px 36px}.skills-screen .skill-group h2{font-size:17px;letter-spacing:-.01em;margin-bottom:18px}.skills-screen .skill-group{padding-top:18px}.skills-screen .skill-group li{font-size:13px}.skills-screen .local-pager{flex:none}.paper-items{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.paper-tile{border:1px solid var(--line);border-radius:5px;padding:18px 21px;display:flex;flex-direction:column;min-height:0;background:var(--surface)}.paper-tile-meta{display:flex;justify-content:space-between;font:11px var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.paper-tile h2{font-size:20px;line-height:1.32;letter-spacing:-.025em;margin-top:11px}.paper-tile>p{font-size:13px;line-height:1.75;margin-top:10px}.paper-tile-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-top:auto;padding-top:12px}.paper-tile-bottom>span{font-size:11px;color:var(--muted);line-height:1.5}.paper-tile-bottom .text-link{white-space:nowrap;font-size:11px}.work-items{grid-template-columns:1fr 1fr;gap:28px}.work-tile{border:1px solid var(--line);border-radius:5px;overflow:hidden;display:flex;flex-direction:column;min-height:0}.mini-art{height:clamp(120px,22vh,220px);flex-shrink:0;position:relative;overflow:hidden;isolation:isolate}.mini-art .art-orbit{height:110px;width:110px;top:22px;right:60px}.mini-art>span{position:absolute;left:24px;bottom:20px;font:15px var(--mono);letter-spacing:.15em}.mini-art .art-orbit{transition:transform .35s}.work-tile:hover .art-orbit{transform:rotate(-10deg)}.work-text{padding:19px 23px;display:flex;flex-direction:column;flex:1;min-height:0}.work-text .eyebrow{font-size:11px}.work-text h2{font-size:27px;margin-top:12px}.work-text>p:not(.eyebrow){font-size:14px;line-height:1.8;margin-top:14px}.work-text>div{display:flex;justify-content:space-between;gap:20px;margin-top:auto;padding-top:20px}.work-text .text-link{font-size:12px}.empty-results{grid-column:1/-1;align-self:center;text-align:center;color:var(--muted);font-size:16px}.paper-screen .back-link{flex-shrink:0;margin-bottom:15px;font-size:12px}.paper-screen .screen-heading{margin-bottom:9px}.paper-screen h1{font-size:clamp(26px,3vw,38px);max-width:1080px}.paper-authors{font-size:12px;line-height:1.8;flex-shrink:0;margin-bottom:18px;max-width:1100px}.paper-prose{max-width:880px;min-height:0}.paper-prose h2{font-size:21px;margin-bottom:12px}.paper-prose p{font-size:17px;line-height:1.85;max-width:850px}.paper-prose h2:not(:first-child){margin-top:30px}.paper-links{display:flex;flex-wrap:wrap;gap:15px 28px;margin-bottom:24px}.paper-links .text-link{font-size:14px}.citation-text{font:13px/1.9 var(--mono);padding:17px;border:1px solid var(--line);border-radius:4px;background:var(--surface);max-width:1000px;overflow-wrap:anywhere}.source-note{font-size:13px;line-height:1.7;margin-top:18px;max-width:850px}.source-links{margin-top:20px}.source-links .text-link{font-size:12px}.not-found-screen{align-items:flex-start;justify-content:center}.not-found-screen img{width:140px;height:140px;object-fit:cover;border-radius:50%;margin-bottom:25px}.noscript-note{position:fixed;bottom:38px;left:20px;font-size:12px;background:var(--bg);padding:8px;z-index:10}.nojs-page-links{font:12px var(--mono);display:flex;flex-wrap:wrap;gap:12px}
/* The first screen combines the portrait with a restrained, one-time model update animation. */
.screen-main .home-screen{display:grid;grid-template-columns:1.15fr 1fr;gap:65px;align-items:center}.home-copy .eyebrow{display:flex;align-items:center;gap:9px;font-size:12px;letter-spacing:.075em;margin-bottom:24px}.home-copy h1{font-size:clamp(65px,6.6vw,95px);line-height:.98;letter-spacing:-.06em}.home-statement{color:var(--ink);font-size:26px;line-height:1.35;letter-spacing:-.02em;margin-top:22px}.home-statement em{color:var(--accent);font-size:29px}.home-description{font-size:16px;line-height:1.8;max-width:390px;margin-top:16px}.home-copy .hero-actions{margin-top:25px;gap:10px}.home-copy .button{font-size:13px;padding:11px 18px;min-height:46px;gap:14px}.terminal-invite{display:flex;gap:10px;align-items:center;margin-top:23px;padding:0;color:var(--accent);border:0;background:none;font-size:13px}.terminal-invite svg{width:17px;height:17px}.terminal-invite code{font-family:var(--mono);font-size:13px}.home-affiliations{display:flex;flex-wrap:wrap;gap:9px 18px;max-width:450px;margin-top:24px;padding-top:17px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.home-visual{position:relative;align-self:center;min-height:0;justify-self:end;width:min(100%,435px)}.home-photo{position:relative;width:100%;height:clamp(330px,63vh,580px);border-radius:48% 48% 5px 5px;overflow:hidden;border:1px solid var(--line)}.home-photo>img{width:100%;height:100%;object-fit:cover;object-position:center 43%;filter:saturate(.83)}.home-photo figcaption{position:absolute;bottom:17px;left:18px;right:18px;padding:10px 12px;font-size:11px;border-radius:3px;backdrop-filter:blur(9px);color:#fff;background:rgba(19,29,18,.62)}.fl-flow{position:absolute;left:-43px;bottom:70px;width:158px;padding:9px 10px 11px;border:1px solid var(--line);border-radius:5px;background:var(--header);backdrop-filter:blur(12px);box-shadow:0 7px 30px rgba(0,0,0,.08)}.fl-flow svg{width:100%;display:block}.flow-lines path{fill:none;stroke:var(--line);stroke-width:2}.flow-node circle{fill:var(--surface);stroke:var(--accent);stroke-width:1.5}.flow-center{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.5}.fl-flow text{font:12px var(--mono);fill:var(--accent)}.flow-packet{fill:var(--accent);opacity:0}.packet-1{animation:packet1 2.6s .3s ease-in-out 1}.packet-2{animation:packet2 2.6s .6s ease-in-out 1}.packet-3{animation:packet3 2.6s .9s ease-in-out 1}.packet-4{animation:packet4 2.6s 1.2s ease-in-out 1}.fl-flow p{font:10px/1.6 var(--mono);text-align:center;color:var(--muted)}.cat-mark{transition:transform .2s}.cat-mark:hover{transform:rotate(-8deg)}.cat-wiggle{animation:cat-wiggle .55s ease-in-out 1!important}.screen-site .contact-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:65px;flex:1;min-height:0;align-items:center}.contact-layout .lead{font-size:24px;max-width:400px}.contact-layout>div>p:not(.lead){font-size:16px;margin-top:18px}.contact-layout .contact-email{font-size:20px;margin-top:30px}.contact-layout .socials{margin-top:24px}.contact-layout>div>.terminal-open{margin-top:23px}.contact-layout #contact-form{max-width:550px}.contact-next,.contact-back{display:none}.contact-layout .form-footer{justify-content:flex-end}.contact-layout #contact-form label{margin-top:16px}.contact-layout #contact-form .form-privacy{font-size:11px;margin-top:13px!important}.terminal-pager{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:0 22px 13px;color:#a9bd9b;font:11px var(--mono)}.terminal-pager button{color:#b9d4a5;border:1px solid #3a4936;background:#232e23;border-radius:3px;font:12px var(--mono);padding:5px 9px}.terminal-pager button:disabled{opacity:.35;cursor:default}.terminal-output{height:min(370px,calc(100dvh - 240px))}.terminal-response{animation:reply-in .18s ease-out}.terminal-response .terminal-answer-title{margin-top:18px}.terminal-response .terminal-answer-title:first-of-type{margin-top:0}.terminal-result-link{display:inline-block;margin-right:18px;font-size:12px}#terminal-form{padding-top:11px;padding-bottom:11px}.terminal-command-help{font-size:12px}.screen-footer .footer-note{font-size:11px}
@keyframes screen-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes reply-in{from{opacity:0}to{opacity:1}}@keyframes packet1{0%,100%{opacity:0;transform:translate(0,0)}15%{opacity:1}75%{opacity:1;transform:translate(85px,55px)}90%{opacity:0;transform:translate(85px,55px)}}@keyframes packet2{0%,100%{opacity:0;transform:translate(0,0)}15%{opacity:1}75%{opacity:1;transform:translate(-85px,55px)}90%{opacity:0;transform:translate(-85px,55px)}}@keyframes packet3{0%,100%{opacity:0;transform:translate(0,0)}15%{opacity:1}75%{opacity:1;transform:translate(85px,-55px)}90%{opacity:0;transform:translate(85px,-55px)}}@keyframes packet4{0%,100%{opacity:0;transform:translate(0,0)}15%{opacity:1}75%{opacity:1;transform:translate(-85px,-55px)}90%{opacity:0;transform:translate(-85px,-55px)}}@keyframes cat-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(7deg)}}
@media(max-height:780px) and (min-width:851px){.screen-main{padding-top:20px}.home-copy h1{font-size:75px}.home-copy .eyebrow{margin-bottom:17px}.home-statement{font-size:23px;margin-top:16px}.home-statement em{font-size:25px}.home-description{font-size:14px;margin-top:13px}.home-copy .hero-actions{margin-top:19px}.terminal-invite{margin-top:17px}.home-affiliations{margin-top:20px;padding-top:13px}.home-photo{height:58vh}.screen-heading{margin-bottom:16px}.screen-heading h1{font-size:35px}.screen-heading>div>p:not(.eyebrow){font-size:13px;margin-top:7px}.paper-tile{padding:14px 17px}.paper-tile h2{font-size:18px;margin-top:8px}.paper-tile>p{font-size:12px;line-height:1.65;margin-top:8px}.paper-tile-bottom{padding-top:8px}.paper-tile-bottom>span{font-size:10px}.mini-art{height:130px}.work-text{padding:16px 20px}.work-text h2{font-size:25px}.screen-pager{margin-top:12px;padding-top:10px}.screen-tabs{margin-bottom:18px}.paper-prose p{font-size:15px}.paper-prose h2{font-size:20px}.paper-prose h2:not(:first-child){margin-top:20px}.contact-layout .lead{font-size:23px}}
@media(max-width:1100px){.screen-site .header-inner{padding:0 20px;gap:18px}.screen-site .brand{font-size:13px;gap:9px}.screen-site .desktop-nav{gap:15px;font-size:12px}.screen-site .header-controls{gap:10px}.screen-site .theme-picker svg{display:none}.screen-site .brand-suffix{display:none}.screen-main{padding-left:32px;padding-right:32px}.screen-main .home-screen{gap:38px}.home-copy h1{font-size:80px}.home-copy .button{padding:10px 13px;font-size:12px}.home-photo{height:57vh}.fl-flow{left:-27px;width:140px;bottom:62px}.paper-tile h2{font-size:19px}.screen-heading h1{font-size:35px}.screen-filters input{width:155px}.screen-filters select{width:100px}.contact-layout{gap:40px!important}.skills-screen .skills-grid{gap:24px 28px}}
@media(max-width:850px){.screen-site{min-height:620px}.screen-site .header-inner{min-height:65px;padding:0 20px;gap:15px}.screen-main{padding:22px 28px 18px}.screen-mobile-nav{display:flex;justify-content:space-around;gap:5px;order:4;height:50px;flex-shrink:0;border-top:1px solid var(--line);background:var(--bg);align-items:center;padding:0 12px;z-index:20}.screen-mobile-nav a{font-size:12px;padding:10px 5px}.screen-mobile-nav a[aria-current=page]{color:var(--accent);font-weight:600}.screen-footer{display:none}.screen-site .brand img{width:32px;height:32px}.screen-site .header-controls{margin-left:auto;gap:12px}.screen-site .header-controls>.terminal-trigger{display:flex}.screen-site .theme-picker svg{display:block;width:14px;height:14px}.screen-main .home-screen{gap:30px}.home-copy h1{font-size:68px}.home-copy .eyebrow{font-size:10px}.home-statement{font-size:22px}.home-statement em{font-size:24px}.home-description{font-size:14px}.home-photo{height:53vh;min-height:320px}.home-visual{width:310px;max-width:100%}.fl-flow{width:122px;left:-20px}.home-affiliations{font-size:10px;gap:8px}.screen-heading{display:block;margin-bottom:20px}.screen-heading h1{font-size:34px}.screen-heading>div>p:not(.eyebrow){font-size:13px;margin-top:8px}.screen-filters{margin-top:16px}.screen-filters input{flex:1;width:auto}.screen-filters select{width:130px}.paper-items{grid-template-rows:none;align-content:start;gap:16px}.paper-tile h2{font-size:21px}.paper-tile>p{font-size:14px;line-height:1.75}.paper-tile{padding:20px;min-height:200px}.paper-tile-bottom{padding-top:17px}.paper-tile-bottom>span{font-size:12px}.work-items{grid-template-columns:1fr}.work-tile{display:grid;grid-template-columns:40% 1fr;flex:none}.mini-art{height:100%;min-height:260px}.mini-art .art-orbit{right:30px;top:65px}.work-text{padding:27px}.work-text h2{font-size:30px}.work-text>p:not(.eyebrow){font-size:15px}.screen-tabs{gap:7px}.screen-tabs button{font-size:12px;padding:8px 13px}.experience-list,.education-list,.award-list{gap:25px}.experience-list h2,.education-list h2,.award-list h2{font-size:24px}.screen-site .contact-layout{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:28px!important}.contact-layout>div>.lead{font-size:20px;max-width:600px}.contact-layout>div>p:not(.lead){display:none}.contact-layout .contact-email{font-size:17px;margin-top:14px}.contact-layout .socials,.contact-layout>div>.terminal-open{display:none}.contact-layout #contact-form{max-width:none}.contact-layout .form-privacy{font-size:10px!important}.paper-prose p{font-size:16px}.paper-screen h1{font-size:29px}.paper-authors{font-size:12px}.terminal-output{font-size:13px}.skills-screen .skills-grid{align-content:start;margin-top:6px;gap:26px 30px}.skills-screen .skill-group h2{font-size:17px}.skills-screen .skill-group li{font-size:13px}}
@media(max-width:600px){.screen-site{height:100dvh;min-height:560px}.screen-site .header-inner{min-height:61px;padding:0 14px;gap:9px}.screen-site .brand{font-size:12px;gap:7px}.screen-site .brand img{width:28px;height:28px}.screen-site .header-controls{gap:10px}.screen-site .theme-picker svg{display:none}.screen-site .theme-picker select{width:61px;font-size:11px}.terminal-trigger{font-size:12px;padding:8px 10px;gap:7px}.terminal-trigger svg{width:15px;height:15px}.screen-main{padding:21px 21px 14px;overflow:auto}.screen-main .home-screen{grid-template-columns:1fr 37%;gap:18px;align-content:center;align-items:start}.home-copy{grid-column:1/-1;grid-row:1;position:relative;z-index:2}.home-copy h1{font-size:clamp(53px,13.6vw,77px);max-width:63%;line-height:.97;letter-spacing:-.06em}.home-copy .eyebrow{margin-bottom:21px;font-size:10px;letter-spacing:.035em;white-space:nowrap}.home-visual{grid-column:2;grid-row:1;align-self:start;margin-top:48px;width:100%;z-index:1}.home-photo{height:195px;min-height:0;border-radius:45% 45% 4px 4px}.home-photo figcaption{display:none}.home-photo>img{object-position:50% 35%}.fl-flow{width:104px;left:auto;right:0;bottom:-68px;box-shadow:none;padding:4px 7px}.fl-flow p{font-size:8px;line-height:1.4}.home-statement{margin-top:26px;font-size:22px;max-width:58%;line-height:1.4}.home-statement em{font-size:24px}.home-description{font-size:14px;max-width:100%;margin-top:24px;line-height:1.8}.home-copy .hero-actions{margin-top:22px;flex-wrap:nowrap;gap:9px}.home-copy .button{font-size:11px;min-height:43px;padding:9px 13px;gap:9px}.home-copy .button svg{width:14px;height:14px}.terminal-invite{font-size:12px;margin-top:23px;gap:8px}.terminal-invite code{font-size:12px}.home-affiliations{margin-top:24px;padding-top:15px;font-size:10px;gap:7px 13px}.screen-heading h1{font-size:29px;line-height:1.15}.screen-heading .eyebrow{font-size:10px;margin-bottom:8px}.screen-heading>div>p:not(.eyebrow){font-size:12px;line-height:1.65;margin-top:8px}.screen-heading{margin-bottom:16px}.screen-filters{margin-top:13px;gap:7px}.screen-filters input,.screen-filters select{font-size:11px;padding:8px 9px}.screen-filters select{width:105px}.paper-items{grid-template-columns:1fr;gap:12px}.paper-tile{padding:15px 17px;min-height:0;max-height:none}.paper-tile h2{font-size:19px;line-height:1.35;margin-top:8px}.paper-tile>p{font-size:12px;line-height:1.75;margin-top:9px}.paper-tile-meta{font-size:10px}.paper-tile-bottom{padding-top:11px;gap:15px}.paper-tile-bottom>span{font-size:10px}.paper-tile-bottom .text-link{font-size:10px}.screen-pager{font-size:11px;margin-top:13px;padding-top:9px;gap:15px}.collection-links{gap:17px;margin-top:10px}.collection-links .text-link{font-size:10px}.work-tile{display:flex}.mini-art{height:clamp(135px,21vh,200px);min-height:0}.mini-art .art-orbit{top:24px;right:45px;width:95px;height:95px}.mini-art>span{font-size:14px;left:20px;bottom:17px}.work-text{padding:20px}.work-text .eyebrow{font-size:10px}.work-text h2{font-size:26px;margin-top:10px}.work-text>p:not(.eyebrow){font-size:13px;line-height:1.8;margin-top:13px}.work-text>div{padding-top:22px;gap:15px}.work-text .text-link{font-size:11px}.screen-tabs{gap:6px;margin-bottom:15px;flex-wrap:nowrap}.screen-tabs button{font-size:11px;padding:7px 10px}.experience-list,.education-list,.award-list{grid-template-columns:1fr;gap:0}.experience-list article,.education-list article,.award-list article{padding-top:20px}.experience-list h2,.education-list h2,.award-list h2{font-size:24px;margin-top:15px}.experience-list .org,.education-list .org{font-size:14px;margin-top:14px}.experience-list article>p:not(.eyebrow):not(.org),.education-list article>p:not(.eyebrow):not(.org),.award-list article>p:not(.eyebrow){font-size:14px;line-height:1.9;margin-top:18px}.skills-screen .skills-grid{grid-template-columns:1fr;gap:22px}.skills-screen .skill-group h2{font-size:20px}.skills-screen .skill-group li{font-size:13px;padding:5px 10px}.skills-screen .skill-group{padding-top:22px}.skills-screen .skill-group ul{gap:8px}.paper-screen .back-link{font-size:11px;margin-bottom:12px}.paper-screen h1{font-size:24px;line-height:1.25}.paper-screen .screen-heading>div>p:not(.eyebrow){font-size:11px}.paper-authors{font-size:10px;line-height:1.8;margin-bottom:15px}.paper-prose h2{font-size:20px;margin-bottom:12px}.paper-prose p{font-size:14px;line-height:1.9}.paper-prose h2:not(:first-child){margin-top:24px}.paper-links{gap:14px 24px;margin-bottom:19px}.paper-links .text-link{font-size:12px}.citation-text{font-size:11px;padding:13px;line-height:1.85}.source-note{font-size:11px;line-height:1.75}.source-links .text-link{font-size:11px}.screen-site .contact-layout{gap:20px!important}.contact-layout>div>.lead{font-size:18px;line-height:1.6}.contact-layout .contact-email{font-size:15px;margin-top:10px}.contact-layout #contact-form{display:flex;flex-direction:column;flex:1;min-height:0}.contact-layout #contact-form label{font-size:12px}.contact-layout #contact-form input,.contact-layout #contact-form select,.contact-layout #contact-form textarea{font-size:13px;padding:10px 11px}.contact-layout #contact-form .form-row{gap:16px}.js .contact-step[data-contact-step="2"]{display:none}.js .contact-step.active{display:block}.js #contact-form.step-two [data-contact-step="1"]{display:none}.js #contact-form.step-two [data-contact-step="2"]{display:block}.js .contact-next{display:inline-flex;margin-top:19px;font-size:12px;min-height:43px}.js .contact-back{display:inline-flex;font-size:12px}.contact-layout .form-footer{justify-content:space-between;margin-top:24px}.contact-layout #contact-form textarea{min-height:135px}.contact-layout .form-privacy{margin-top:auto!important;padding-top:15px;max-width:350px;font-size:10px!important}.screen-mobile-nav{height:47px;padding:0 8px}.screen-mobile-nav a{font-size:11px;padding:10px 4px}.terminal-titlebar h2{font-size:12px}.terminal-suggestions{gap:5px;padding-bottom:10px}.terminal-suggestions button{font-size:11px}.terminal-output{height:calc(100dvh - 242px);max-height:460px;padding:16px 17px;font-size:12px;line-height:1.85}.terminal-response{margin-bottom:0}.terminal-response .terminal-answer-title{font-size:13px;margin-top:17px}.terminal-response p{font-size:12px;line-height:1.8}.terminal-result-link{font-size:11px;margin-right:14px;margin-top:6px}.terminal-pager{padding:0 17px 10px;font-size:10px}.terminal-pager button{font-size:11px;padding:5px 8px}.terminal-hint{font-size:10px}.noscript-note{position:static;padding:8px;margin:0;font-size:11px}}
@media(max-width:360px){.screen-site .header-controls{gap:7px}.screen-site .brand{font-size:11px}.terminal-trigger{font-size:11px;padding:7px 8px}.screen-main{padding:18px}.home-copy h1{font-size:52px}.home-copy .button{padding:9px 10px;font-size:10px}.home-statement{font-size:20px}.home-statement em{font-size:22px}.home-photo{height:180px}.fl-flow{width:96px;bottom:-61px}.home-description{font-size:13px}.screen-tabs button{padding:7px 8px;font-size:10px}.screen-heading h1{font-size:26px}}
@media(max-height:670px) and (min-width:851px){.screen-site{min-height:560px}.screen-main{overflow:auto}.home-copy h1{font-size:65px}.home-statement{font-size:20px}.home-statement em{font-size:21px}.home-copy .eyebrow{font-size:10px;margin-bottom:15px}.home-description{font-size:13px;margin-top:11px}.home-copy .hero-actions{margin-top:15px}.home-copy .button{min-height:39px;font-size:12px;padding:9px 13px}.home-photo{height:55vh;min-height:290px}.home-affiliations{margin-top:15px;font-size:10px}.terminal-invite{margin-top:13px;font-size:12px}.screen-heading h1{font-size:30px}.paper-tile h2{font-size:17px}.paper-tile>p{font-size:11px;line-height:1.6}.paper-tile-meta{font-size:10px}.paper-tile-bottom>span{font-size:9px}.paper-tile-bottom .text-link{font-size:10px}.screen-heading{margin-bottom:13px}.screen-pager{font-size:11px;margin-top:10px;padding-top:6px}.collection-links{margin-top:8px}.work-text>p:not(.eyebrow){font-size:13px}.mini-art{height:110px}.work-text{padding:15px}.work-text h2{font-size:24px;margin-top:8px}.contact-layout .lead{font-size:20px}.contact-layout .contact-email{font-size:17px}.contact-layout #contact-form label{font-size:12px;margin-top:10px}.contact-layout #contact-form input,.contact-layout #contact-form select,.contact-layout #contact-form textarea{padding:8px 10px;font-size:13px}.contact-layout .form-footer{margin-top:13px}.paper-prose p{font-size:14px}.paper-authors{font-size:11px}}
@media(max-height:650px) and (max-width:600px){.screen-site{min-height:520px}.screen-main{padding-top:16px}.home-copy h1{font-size:54px}.home-statement{font-size:20px;margin-top:19px}.home-statement em{font-size:21px}.home-photo{height:175px}.home-copy .eyebrow{margin-bottom:16px}.home-description{font-size:13px;margin-top:19px}.home-copy .hero-actions{margin-top:17px}.terminal-invite{margin-top:15px}.home-affiliations{margin-top:16px;padding-top:10px;font-size:9px}.fl-flow{width:95px;bottom:-56px}.screen-heading{margin-bottom:12px}.screen-heading h1{font-size:26px}.screen-heading>div>p:not(.eyebrow){font-size:11px}.screen-filters{margin-top:11px}.paper-tile h2{font-size:18px}.paper-tile>p{font-size:12px}.work-text{padding:17px}.mini-art{height:125px}.contact-layout .lead{font-size:16px}.contact-layout>div{display:none}.contact-layout #contact-form label{margin-top:12px}.contact-layout #contact-form input,.contact-layout #contact-form select{padding:8px 10px}.paper-screen h1{font-size:22px}.paper-prose p{font-size:13px}.paper-prose h2{font-size:18px}.paper-prose h2:not(:first-child){margin-top:20px}}
@media(prefers-reduced-motion:reduce){.flow-packet{display:none}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.screen-site{height:auto;min-height:0;overflow:visible}.screen-main{height:auto;overflow:visible;padding:20px}.screen-main>section,.screen-main>article{height:auto}.screen-mobile-nav,.screen-footer,.screen-tabs,.screen-pager,.terminal-trigger,.fl-flow,.screen-filters,.terminal-invite,.collection-links{display:none!important}[data-item][hidden],.tab-panel[hidden]{display:block!important}.paper-items,.work-items{display:block}.paper-tile,.work-tile{margin-bottom:20px;break-inside:avoid}.paper-tile>p{font-size:14px}.paper-tile h2{font-size:21px}.paper-screen .tab-panel{margin-top:25px}.home-photo{height:400px}.screen-main .home-screen{height:auto}}
html:not(.js) .screen-site{height:auto;min-height:100vh;overflow:visible}html:not(.js) .screen-main>section,html:not(.js) .screen-main>article{height:auto;min-height:520px}html:not(.js) .tab-panel[hidden]{display:block!important;margin:25px 0}html:not(.js) .screen-tabs{display:none}html:not(.js) .terminal-open{display:none}html:not(.js) .screen-main .home-screen{min-height:650px}html:not(.js) .screen-items{min-height:400px}html:not(.js) .experience-list,html:not(.js) .education-list,html:not(.js) .award-list{margin-top:25px}
/* Revision 3: scrollable lists, circular portrait, publication modal and compact chat. */
.screen-main{overflow:hidden}.catalogue-screen,.about-screen,.skills-screen{overflow:hidden}.screen-items{display:flex;flex-direction:column;gap:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding-right:12px;overscroll-behavior:contain}.screen-items:focus-visible,[data-scroll-list]:focus-visible{outline-offset:-2px}.paper-tile{display:flex;flex-direction:column;flex-shrink:0;min-height:auto;max-height:none;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:22px 5px 25px}.paper-tile:first-child{padding-top:7px}.paper-tile h2{font-size:24px;max-width:1050px;margin-top:10px}.paper-tile>p{font-size:15px;line-height:1.8;max-width:990px;margin-top:11px}.paper-tile-bottom{padding-top:14px;margin-top:0;align-items:center}.paper-tile-bottom>span{font-size:12px}.paper-tile-bottom .text-link{font-size:12px}.paper-tile h2 a:hover{color:var(--accent)}.work-tile{display:grid;grid-template-columns:160px 1fr;flex-shrink:0;min-height:170px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:21px 0;gap:28px;align-items:stretch}.work-tile:first-child{padding-top:4px}.work-tile .mini-art{height:100%;min-height:150px;border-radius:5px}.work-tile .mini-art .art-orbit{width:85px;height:85px;top:24px;right:27px}.work-tile .mini-art>span{font-size:12px;letter-spacing:.07em;left:16px;bottom:16px}.work-text{padding:7px 5px;min-height:auto}.work-text h2{font-size:27px;margin-top:10px}.work-text>p:not(.eyebrow){font-size:15px;line-height:1.8;margin-top:12px;max-width:840px}.work-text>div{justify-content:flex-start;gap:28px;margin-top:15px;padding-top:0}.work-text .text-link{font-size:13px}.screen-tabs{margin-bottom:15px}.tab-panel{overflow:hidden}.experience-list,.education-list,.award-list{display:flex;flex-direction:column;gap:0;min-height:0;overflow-y:auto;padding-right:12px;scrollbar-width:thin;scrollbar-color:var(--line) transparent;overscroll-behavior:contain}.experience-list article,.education-list article,.award-list article{flex-shrink:0;padding:24px 0 28px;border-top:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:150px 1fr;column-gap:28px}.experience-list article:first-child,.education-list article:first-child,.award-list article:first-child{padding-top:8px}.experience-list article>.eyebrow,.education-list article>.eyebrow,.award-list article>.eyebrow{grid-column:1;grid-row:1/span 4;margin-top:6px}.experience-list h2,.education-list h2,.award-list h2{grid-column:2;font-size:25px;margin-top:0;max-width:900px}.experience-list .org,.education-list .org{grid-column:2;margin-top:10px}.experience-list article>p:not(.eyebrow):not(.org),.education-list article>p:not(.eyebrow):not(.org),.award-list article>p:not(.eyebrow){grid-column:2;font-size:15px;line-height:1.8;margin-top:13px;max-width:850px}.award-list article>.text-link{grid-column:2;margin-top:15px;justify-self:start}.skills-screen .skills-grid{align-content:start;overflow-y:auto;min-height:0;scrollbar-width:thin;padding-right:12px;padding-bottom:25px}.screen-main .home-screen{overflow:visible}.home-visual{width:min(100%,420px)}.home-photo{aspect-ratio:1/1;height:auto!important;min-height:0!important;width:100%;border-radius:50%!important;overflow:hidden;box-shadow:0 16px 48px rgba(20,32,21,.08)}.home-photo>img{height:100%;width:100%;object-fit:cover;object-position:50% 34%}.home-photo figcaption,.fl-flow{display:none!important}.screen-site .terminal-launch{display:flex!important;position:fixed;right:22px;bottom:54px;z-index:30;padding:10px 13px;border:1px solid var(--accent);background:var(--accent);color:var(--button-ink);font-size:12px;gap:9px;border-radius:20px;box-shadow:0 5px 20px rgba(20,30,20,.15)}.screen-site.chat-open .terminal-launch{display:none!important}
#terminal{position:fixed;top:auto;left:auto;right:22px;bottom:54px;margin:0;width:360px;max-width:calc(100vw - 32px);height:465px;max-height:calc(100dvh - 110px);padding:0;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 50px rgba(0,0,0,.22);z-index:40;overflow:hidden}#terminal[open]{display:flex;flex-direction:column;animation:chat-in .18s ease-out}#terminal::backdrop{background:transparent;backdrop-filter:none}#terminal .terminal-titlebar{background:var(--accent);color:var(--button-ink);padding:12px 13px;gap:10px;border:0;flex-shrink:0}#terminal .terminal-titlebar>img{width:28px;height:28px;object-fit:cover;border-radius:50%;border:1px solid rgba(255,255,255,.3)}#terminal .terminal-titlebar h2{font:13px/1.4 var(--sans);font-weight:600;letter-spacing:0;color:var(--button-ink)}#terminal .terminal-titlebar>div>p{font-size:10px;line-height:1.5;opacity:.8;color:var(--button-ink);margin-top:3px}#terminal .terminal-titlebar .icon-button{width:25px;height:25px;color:var(--button-ink);border:0;background:transparent;flex-shrink:0;margin-left:0}#terminal .terminal-titlebar .icon-button:hover{background:rgba(255,255,255,.12)}#terminal #terminal-minimize{margin-left:auto;font:21px var(--sans)}#terminal .terminal-output{height:auto!important;max-height:none!important;flex:1;min-height:0;padding:15px 13px;overflow-y:auto;background:var(--surface);scrollbar-color:var(--line) transparent;font:13px/1.7 var(--sans);overscroll-behavior:contain}#terminal .chat-user-message{max-width:85%;width:max-content;margin:0 0 10px auto;padding:8px 12px;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:12px 12px 3px 12px;background:var(--accent);color:var(--button-ink);font:12px/1.65 var(--mono)}#terminal .chat-reply{max-width:94%;margin:0 0 15px;padding:11px 12px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:3px 12px 12px 12px;font:13px/1.7 var(--sans)}#terminal .chat-result+.chat-result{margin-top:17px;padding-top:14px;border-top:1px solid var(--line)}#terminal .chat-reply p{color:var(--muted);font:13px/1.75 var(--sans);margin-top:7px;white-space:pre-wrap}#terminal .chat-reply .terminal-answer-title{color:var(--ink);font-size:13px;font-weight:600;line-height:1.5;margin:0}#terminal .terminal-result-link{font-size:12px;line-height:1.7;display:block;width:auto;color:var(--accent)!important;margin:8px 0 0;text-decoration:underline}#terminal .terminal-error{color:var(--ink)}#terminal .terminal-suggestions{padding:9px 12px;gap:5px;background:var(--bg);border-top:1px solid var(--line);flex-shrink:0}#terminal .terminal-suggestions button{font:11px/1.4 var(--mono);padding:4px 7px;background:var(--surface);color:var(--muted);border:1px solid var(--line);border-radius:12px}#terminal .terminal-suggestions button:hover{color:var(--accent);border-color:var(--accent)}#terminal-form{margin:0!important;padding:10px 12px!important;border-top:1px solid var(--line)!important;gap:8px;flex-shrink:0}#terminal-form label{font:14px var(--mono)!important;color:var(--accent)!important}#terminal-input{color:var(--ink)!important;font:13px/1.5 var(--mono)!important;padding:7px 2px!important}#terminal-input::placeholder{color:var(--muted)!important;font-size:11px}#terminal-form button{color:var(--accent)!important;font-size:21px!important}#terminal .terminal-hint{padding:0 12px 10px;color:var(--muted);font-size:10px;background:var(--bg);flex-shrink:0}#terminal .terminal-hint>span{display:none}#terminal .terminal-cat{width:95px;height:95px;border-radius:9px}.terminal-pager,.screen-pager,.local-pager{display:none!important}
#paper-modal{width:min(820px,calc(100vw - 40px));height:min(650px,calc(100dvh - 56px));max-height:calc(100dvh - 56px);padding:0;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);box-shadow:var(--shadow);overflow:hidden}#paper-modal[open]{display:flex;flex-direction:column;animation:screen-in .18s ease-out}#paper-modal::backdrop{background:rgba(8,14,9,.5);backdrop-filter:blur(3px)}.paper-modal-toolbar{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:12px 22px;border-bottom:1px solid var(--line);flex-shrink:0}.paper-modal-toolbar .eyebrow{font-size:11px}.paper-modal-toolbar .icon-button{height:30px;width:30px}#paper-modal-content{display:flex;flex-direction:column;min-height:0;flex:1;padding:23px 28px}.paper-modal-heading{flex-shrink:0}.paper-modal-heading>.eyebrow{font-size:11px;margin-bottom:11px}.paper-modal-heading h2{font-size:29px;line-height:1.25;letter-spacing:-.03em}.paper-modal-heading .paper-authors{font-size:12px;line-height:1.7;margin-top:14px;margin-bottom:8px}.paper-modal-venue{font-size:12px;line-height:1.7}.paper-modal-heading+.screen-tabs{margin-top:20px;margin-bottom:20px}.paper-modal-panel{min-height:0;flex:1;overflow-y:auto;padding:3px 12px 20px 0;scrollbar-width:thin;scrollbar-color:var(--line) transparent;overscroll-behavior:contain}.paper-modal-panel h3{font-size:21px;line-height:1.4;margin-bottom:11px}.paper-modal-panel p{font-size:16px;line-height:1.85}.paper-modal-panel h3:not(:first-child){margin-top:27px}.paper-modal-panel .paper-links{gap:18px 26px}.paper-modal-panel .text-link{font-size:14px}.paper-modal-panel .source-note{font-size:13px}.paper-modal-panel .source-links{margin-top:24px}.paper-modal-panel .source-links .text-link{font-size:12px}
@keyframes chat-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){.screen-site .terminal-launch{bottom:64px;right:17px}#terminal{bottom:64px;right:17px;width:350px;max-height:calc(100dvh - 140px)}.paper-tile h2{font-size:22px}.work-tile{grid-template-columns:125px 1fr;gap:23px}.work-tile .mini-art .art-orbit{right:20px;width:70px;height:70px}.work-text{padding:5px 0}.work-text h2{font-size:25px}.experience-list article,.education-list article,.award-list article{grid-template-columns:110px 1fr;gap:20px}.skills-screen .skills-grid{gap:25px 28px}.home-visual{width:100%;max-width:330px}}
@media(max-width:600px){.screen-main{overflow:hidden}.paper-tile{padding:19px 0 22px}.paper-tile h2{font-size:20px;line-height:1.4}.paper-tile>p{font-size:13px;line-height:1.85}.paper-tile-bottom{align-items:flex-start;gap:14px;padding-top:12px}.paper-tile-bottom>span{font-size:11px}.paper-tile-bottom .text-link{font-size:11px}.screen-items{padding-right:8px}.work-tile{display:flex;gap:15px;padding:20px 0 25px}.work-tile .mini-art{width:100%;height:100px;min-height:100px}.work-tile .mini-art .art-orbit{width:75px;height:75px;top:10px;right:40px}.work-tile .mini-art>span{font-size:13px;left:20px;bottom:17px}.work-text{padding:0}.work-text h2{font-size:24px}.work-text>p:not(.eyebrow){font-size:14px}.work-text>div{margin-top:18px;gap:25px}.work-text .text-link{font-size:12px}.experience-list article,.education-list article,.award-list article{display:block;padding:22px 0 25px}.experience-list article>.eyebrow,.education-list article>.eyebrow,.award-list article>.eyebrow{margin:0 0 12px}.experience-list h2,.education-list h2,.award-list h2{font-size:24px;margin-top:0}.experience-list .org,.education-list .org{font-size:13px;margin-top:12px}.experience-list article>p:not(.eyebrow):not(.org),.education-list article>p:not(.eyebrow):not(.org),.award-list article>p:not(.eyebrow){font-size:14px;line-height:1.9;margin-top:13px}.skills-screen .skills-grid{gap:25px}.home-visual{margin-top:50px;max-width:100%}.home-photo{height:auto!important;min-height:0!important;aspect-ratio:1;max-width:100%;border-radius:50%!important}.home-statement{max-width:100%;margin-top:25px}.home-description{margin-top:20px}.screen-site .terminal-launch{right:14px;bottom:62px;padding:10px 12px;font-size:12px}#terminal{right:10px;bottom:60px;width:min(340px,calc(100vw - 20px));height:420px;max-height:calc(100dvh - 126px);border-radius:11px}#terminal .terminal-titlebar{padding:10px 12px}#terminal .terminal-titlebar>div>p{font-size:9px}#terminal .terminal-output{padding:12px 10px}#terminal .chat-reply{padding:10px;max-width:96%}#terminal .chat-user-message{font-size:11px;padding:7px 10px}#terminal .chat-reply p{font-size:12px}#terminal .chat-reply .terminal-answer-title{font-size:12px}#terminal .terminal-result-link{font-size:11px}#terminal .terminal-suggestions{padding:7px 10px;gap:4px}#terminal .terminal-suggestions button{font-size:10px;padding:4px 6px}#terminal-form{padding:8px 10px!important}#terminal .terminal-hint{font-size:9px;padding-bottom:8px}#paper-modal{width:calc(100vw - 20px);height:calc(100dvh - 44px);max-height:calc(100dvh - 44px);border-radius:10px}.paper-modal-toolbar{padding:10px 16px}.paper-modal-toolbar .eyebrow{font-size:10px}#paper-modal-content{padding:20px 18px}.paper-modal-heading h2{font-size:24px;line-height:1.3}.paper-modal-heading .paper-authors{font-size:11px}.paper-modal-venue{font-size:11px}.paper-modal-heading+.screen-tabs{margin-top:17px;margin-bottom:18px;gap:6px}.paper-modal-heading+.screen-tabs button{padding:7px 9px;font-size:11px}.paper-modal-panel{padding-right:8px}.paper-modal-panel h3{font-size:20px}.paper-modal-panel p{font-size:14px;line-height:1.9}.paper-modal-panel .paper-links{gap:17px 22px}.paper-modal-panel .text-link{font-size:13px}.paper-modal-panel .source-note{font-size:12px}}
@media(max-height:600px){#terminal{height:360px;max-height:calc(100dvh - 100px);bottom:50px}.screen-site .terminal-launch{bottom:50px}#terminal .terminal-hint{display:none}}
@media(prefers-reduced-motion:reduce){#terminal[open],#paper-modal[open]{animation:none!important}}
@media print{.screen-main,.screen-items,[data-scroll-list]{overflow:visible;height:auto;max-height:none}.paper-tile,.work-tile{break-inside:avoid}#paper-modal,.terminal-launch{display:none!important}}

/* Keep permanent paper pages and fallback content readable at every zoom level. */
.paper-screen .tab-panel,.contact-screen{overflow-y:auto;scrollbar-width:thin}
html:not(.js) .screen-main,html:not(.js) .screen-items,html:not(.js) [data-scroll-list],html:not(.js) .tab-panel{overflow:visible;height:auto;max-height:none}
@media(max-width:600px),(max-height:600px){.screen-main:has(.home-screen){overflow-y:auto}.screen-main .home-screen{height:auto;min-height:100%}}

/* Social links remain visible above the mobile navigation. */
@media screen and (max-width:850px){
 .screen-footer{display:flex;height:44px;padding:0 20px;gap:16px;background:var(--bg)}
 .screen-footer>div{gap:22px;align-items:center}
 .screen-footer .text-link{font-size:12px;white-space:nowrap}
 .screen-footer .footer-note{display:none}
 .screen-site .terminal-launch,#terminal{bottom:108px}
 #terminal{max-height:calc(100dvh - 180px)}
}
@media screen and (max-width:600px){
 .screen-footer{justify-content:center;padding:0 16px;height:44px}
 .screen-footer>span{display:none}
 .screen-footer>div{justify-content:center;gap:28px}
 .screen-mobile-nav{height:calc(47px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px)}
 .screen-site .terminal-launch,#terminal{bottom:calc(105px + env(safe-area-inset-bottom,0px))}
 #terminal{max-height:calc(100dvh - 180px - env(safe-area-inset-bottom,0px))}
}

@media(max-width:600px){.skills-screen .screen-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.skills-screen .screen-tabs button{white-space:normal;padding:8px 6px;line-height:1.5;font-size:11px}}
/* Project-specific illustrations. Each scene repeats while visible and supports pause/resume. */
.work-tile{grid-template-columns:220px 1fr;gap:30px;min-height:195px}.work-tile .project-scene{width:100%;height:170px;min-height:170px;align-self:center;isolation:isolate;border-radius:8px}.project-scene svg{display:block;width:100%;height:100%;overflow:visible}.project-scene{--scene-fill:#fcfbf4;--scene-soft:#ced9ba;--scene-accent:#5c8060;--scene-warm:#e4b366}.art-flame{background:#e6e6d7;color:#52634b;--scene-soft:#ced9ba;--scene-accent:#709478}.art-flora{background:#f0e0e0;color:#795562;--scene-soft:#dfbdc7;--scene-accent:#b37386;--scene-warm:#dab193}.art-resist{background:#dfebe6;color:#3e6762;--scene-soft:#b9d0ad;--scene-accent:#709977;--scene-water:#81b3bc;--scene-warm:#dcab65}.art-uniche{background:#eee4d7;color:#7b6251;--scene-soft:#d7c3a6;--scene-accent:#957458;--scene-warm:#c9a25f}.art-ariel{background:#e0e9e7;color:#466868;--scene-soft:#c3d9c8;--scene-accent:#6f9a92;--scene-warm:#d4b477}.art-flamenco{background:#e0e8f0;color:#506e8b;--scene-soft:#aec7df;--scene-accent:#759bbf;--scene-warm:#e0b964}.art-promote{background:#e9e7d9;color:#666d49;--scene-soft:#d1d7b7;--scene-accent:#919f65;--scene-warm:#d1a468}.scene-line,.scene-ground{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.scene-ground{opacity:.5}.scene-fine{stroke-width:1.6}.scene-fill{fill:var(--scene-fill)}.scene-soft{fill:var(--scene-soft)}.scene-accent{fill:var(--scene-accent)}.scene-warm{fill:var(--scene-warm)}.scene-water{fill:var(--scene-water)}.scene-panel{fill:#91a7a3}.scene-dot{fill:currentColor}.scene-paper-line{fill:none;stroke:var(--scene-fill);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.scene-map-road{stroke-width:7}.river-flow{stroke-dasharray:25 18}.map-route{stroke-dasharray:4 6}.window-glow{opacity:.6}.scene-toggle{position:absolute;right:7px;bottom:7px;z-index:2;width:30px;height:30px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;background:var(--scene-fill);color:inherit;font:20px/1 var(--sans);opacity:.75;padding:0}.scene-toggle:hover,.scene-toggle:focus-visible{opacity:1}.solar-sun,.phone-tap,.health-heart,.health-check,.child-tap,.game-star,.game-dot,.river-leaves,.charge-fill{transform-box:fill-box;transform-origin:center}.scene-active .solar-sun{animation:solar-warmth 3s ease-in-out 2}.scene-active .energy-dot{animation:solar-transfer 2s linear 3}.scene-active .window-glow{animation:solar-warmth 3s ease-in-out 2}.scene-active .phone-tap{animation:phone-touch 3s ease-in-out 2}.scene-active .health-heart{animation:health-pulse 1.5s ease-in-out 4}.scene-active .health-check{animation:health-confirm 6s ease both}.scene-active .river-flow{animation:river-current 2s linear 3}.scene-active .river-leaves{animation:river-breeze 3s ease-in-out 2}.scene-active .river-sensor{animation:health-pulse 3s ease-in-out 2;transform-origin:228px 146px}.scene-active .museum-visitor{animation:museum-visit 7s ease-in-out forwards}.scene-active .museum-highlight{animation:museum-art 7s ease both}.scene-active .ev-drive{animation:ev-arrive 7s ease-in-out forwards}.scene-active .ev-charge{animation:ev-status 7s ease both}.scene-active .charge-fill{transform-origin:left;animation:ev-battery 7s ease both}.scene-active .charging-cable{animation:ev-status 7s ease both}.scene-active .child-tap{animation:phone-touch 3s ease-in-out 2}.scene-active .game-star{animation:game-reward 3s ease-in-out 2}.scene-active .game-dot{animation:game-bounce 2s ease-in-out 3}.scene-active .map-traveler{animation:map-explore 7s ease-in-out forwards}.scene-active .map-pin{animation:map-destination 7s ease-in-out both;transform-origin:226px 75px}
@keyframes solar-warmth{0%,100%{opacity:.65}50%{opacity:1}}@keyframes solar-transfer{0%{transform:translate(0,0);opacity:0}10%{opacity:1}40%{transform:translate(28px,0)}60%{transform:translate(37px,9px)}80%{transform:translate(37px,33px)}95%{transform:translate(52px,33px);opacity:1}100%{transform:translate(52px,33px);opacity:0}}
@keyframes phone-touch{0%,45%,100%{transform:rotate(0)}55%,70%{transform:rotate(-5deg)}}@keyframes health-pulse{0%,100%{transform:scale(1)}45%{transform:scale(1.1)}60%{transform:scale(1.02)}75%{transform:scale(1.08)}}@keyframes health-confirm{0%,20%{opacity:0;transform:scale(.6)}35%,100%{opacity:1;transform:scale(1)}}
@keyframes river-current{from{stroke-dashoffset:0}to{stroke-dashoffset:-86}}@keyframes river-breeze{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}@keyframes museum-visit{0%{transform:translateX(-100px)}15%{transform:translateX(0)}35%,65%{transform:translateX(82px)}85%{transform:translateX(190px)}100%{transform:translateX(310px)}}@keyframes museum-art{0%,20%,80%,100%{opacity:0}35%,65%{opacity:.7}}
@keyframes ev-arrive{0%{transform:translateX(-115px)}12%{transform:translateX(0)}40%,78%{transform:translateX(145px)}100%{transform:translateX(340px)}}@keyframes ev-status{0%,38%,85%,100%{opacity:0}45%,78%{opacity:1}}@keyframes ev-battery{0%,40%{transform:scaleX(.1)}76%,100%{transform:scaleX(1)}}@keyframes game-reward{0%,35%,100%{transform:scale(1) rotate(0)}55%{transform:scale(1.16) rotate(-8deg)}75%{transform:scale(1.08) rotate(8deg)}}@keyframes game-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes map-explore{0%{transform:translate(0,0);opacity:0}8%{transform:translate(0,0);opacity:1}25%{transform:translate(23px,-22px)}45%{transform:translate(72px,-27px)}65%{transform:translate(94px,-56px)}90%{transform:translate(164px,-75px);opacity:1}100%{transform:translate(164px,-75px);opacity:0}}@keyframes map-destination{0%,70%,100%{transform:translateY(0)}80%{transform:translateY(-5px)}90%{transform:translateY(0)}}
@media(max-width:850px){.work-tile{grid-template-columns:180px 1fr;gap:24px}.work-tile .project-scene{height:160px;min-height:160px}}
@media(max-width:600px){.work-tile{display:flex;gap:18px}.work-tile .project-scene{height:170px;min-height:170px}.scene-toggle{width:32px;height:32px;right:10px;bottom:10px}}
@media(prefers-reduced-motion:reduce){.project-scene *{animation:none!important;transition:none!important}.scene-toggle{display:none}.energy-dot{opacity:0}.ev-drive{transform:translateX(145px)}.map-traveler{transform:translate(164px,-75px)}}

/* Keep project motion visible, pausing when the card leaves view. */
.scene-active [class]{animation-iteration-count:infinite}
.scene-active .museum-visitor,.scene-active .museum-highlight,.scene-active .ev-drive,.scene-active .ev-charge,.scene-active .charge-fill,.scene-active .charging-cable,.scene-active .map-traveler,.scene-active .map-pin{animation-duration:10s}
.scene-offscreen *,.scene-paused *{animation-play-state:paused!important}
.scene-toggle{font-size:15px}
/* A horizontal line through each About category, from earlier to recent. */
.timeline-caption{display:flex;justify-content:space-between;gap:16px;margin:0 0 16px;color:var(--muted);font:11px/1.6 var(--mono);flex-shrink:0}
.timeline-caption>span{font:11px/1.6 var(--sans)}
.timeline-scroll{display:block;overflow-x:auto;overflow-y:hidden;padding:4px 0 17px;scrollbar-width:thin;scrollbar-color:var(--accent) var(--surface);scroll-snap-type:x proximity;overscroll-behavior-x:contain;min-height:0;flex:1}
.timeline-scroll::-webkit-scrollbar{height:7px}
.timeline-scroll::-webkit-scrollbar-track{background:var(--surface);border-radius:6px}
.timeline-scroll::-webkit-scrollbar-thumb{background:var(--accent);border-radius:6px}
.timeline-list{list-style:none;display:flex;gap:28px;width:max-content;min-width:100%;height:100%;margin:0;padding:0;border:0}
.timeline-list .timeline-entry{position:relative;display:flex;flex-direction:column;flex:0 0 clamp(295px,28vw,350px);width:clamp(295px,28vw,350px);height:100%;min-height:0;padding:0;margin:0;scroll-snap-align:start}
.timeline-list .timeline-entry::after{content:"";position:absolute;top:47px;left:0;right:-28px;height:1px;background:var(--line);pointer-events:none}
.timeline-list .timeline-entry:last-child::after{right:0}
.timeline-list .timeline-entry::before{content:"";position:absolute;left:1px;top:42px;width:9px;height:9px;border:1px solid var(--accent);border-radius:50%;background:var(--bg);box-shadow:0 0 0 4px var(--bg);z-index:1}
.timeline-list .timeline-entry[data-current=true]::before{background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.timeline-list .timeline-entry .timeline-date{flex-shrink:0;height:30px;margin:0;padding:0;line-height:1.9;font-size:12px;letter-spacing:0;text-transform:none;white-space:nowrap}
.timeline-list .timeline-entry article{display:block;min-height:0;flex:1;margin-top:40px;border:0;padding:0 12px 12px 0;overflow-y:auto;scrollbar-width:thin;overscroll-behavior-y:contain}
.timeline-list .timeline-entry h2{margin:0;font-size:24px;line-height:1.4;letter-spacing:-.025em}
.timeline-list .timeline-entry .org{margin-top:11px;font-size:14px;line-height:1.7}
.timeline-list .timeline-entry article>p:not(.eyebrow):not(.org){margin-top:15px;font-size:15px;line-height:1.8;max-width:100%}
.timeline-present{color:var(--accent);font-weight:600}
@media(max-width:850px){.timeline-list .timeline-entry{flex-basis:310px;width:310px}.timeline-list .timeline-entry h2{font-size:23px}.timeline-list .timeline-entry .org{font-size:13px}.timeline-list .timeline-entry article>p:not(.eyebrow):not(.org){font-size:14px}}
@media(max-width:600px){.timeline-caption{font-size:10px;margin-bottom:15px;gap:12px}.timeline-caption>span{font-size:10px}.timeline-list{gap:24px}.timeline-list .timeline-entry{flex-basis:calc(100vw - 68px);width:calc(100vw - 68px)}.timeline-list .timeline-entry::after{right:-24px}.timeline-list .timeline-entry:last-child::after{right:0}.timeline-list .timeline-entry h2{font-size:22px;line-height:1.4}.timeline-list .timeline-entry article{padding-right:10px}.timeline-list .timeline-entry .org{font-size:13px}.timeline-list .timeline-entry article>p:not(.eyebrow):not(.org){font-size:14px;line-height:1.85}}
html:not(.js) .timeline-list{height:auto}.timeline-list .timeline-body:focus-visible{outline-offset:-2px}
@media print{.timeline-caption{display:none}.timeline-list{display:block;width:100%;height:auto}.timeline-list .timeline-entry{display:block;width:100%;height:auto;break-inside:avoid;margin-bottom:25px}.timeline-list .timeline-entry::before,.timeline-list .timeline-entry::after{display:none}.timeline-list .timeline-entry article{margin-top:10px;overflow:visible}}
