:root{--paper:#f2efeb;--ink:#533a33;--lime:#849dbb;--orange:#b5aca3;--blue:#648ec0;--deep-blue:#533a33;--pale-blue:#b0d2ec;--moonstone:#849dbb;--rock-blue:#849dbb;--saffron:#b5aca3;--silver-chalice:#b5aca3;--royal-brown:#533a33;--line:rgba(83,58,51,.18);--mono:"DM Mono",monospace;--sans:"Manrope",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);overflow-x:hidden}body.no-scroll{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}.noise{position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}.site-header{position:fixed;z-index:15;top:0;left:0;width:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:22px 34px;mix-blend-mode:difference;color:white;font:400 12px var(--mono);text-transform:uppercase;letter-spacing:.06em}.brand{font:600 18px var(--sans)}.brand span{font:400 10px var(--mono);margin-left:5px}.site-header nav{display:flex;gap:32px}.site-header nav a,.availability{position:relative}.site-header nav a:after,.availability:after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:currentColor;transition:right .3s}.site-header a:hover:after{right:0}.availability{justify-self:end}.availability i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lime);margin-right:8px;animation:pulse 2s infinite}.hero{min-height:100svh;position:relative;padding:115px 3vw 40px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.hero-kicker,.eyebrow{font:400 11px var(--mono);text-transform:uppercase;letter-spacing:.1em}.hero-title{font-size:clamp(63px,11.6vw,178px);line-height:.78;letter-spacing:-.082em;font-weight:500;margin:8vh 0 4vh;position:relative;z-index:2}.hero-title .line{display:block;overflow:hidden;padding:0 .04em .15em}.hero-title .line>span{display:block;transform:translateY(115%);animation:lineIn .9s cubic-bezier(.16,1,.3,1) forwards}.hero-title .line:nth-child(2)>span{animation-delay:.12s}.hero-title em,.section-heading em,.contact em{font-weight:400;font-family:Georgia,serif}.accent-line{text-align:right}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;position:relative;z-index:3}.hero-bottom p{max-width:540px;font-size:clamp(18px,2vw,29px);line-height:1.25;letter-spacing:-.035em;margin:0}.scroll-cue{display:flex;gap:25px;align-items:center;font:400 10px var(--mono);text-transform:uppercase}.scroll-cue b{font-size:20px}.hero-orbit{position:absolute;display:grid;place-items:center;border-radius:50%;font:500 clamp(18px,2.1vw,30px) var(--mono);will-change:transform}.orbit-a{width:clamp(90px,11vw,170px);aspect-ratio:1;background:var(--lime);top:16%;right:13%;transform:rotate(10deg)}.orbit-b{width:clamp(75px,8vw,125px);aspect-ratio:1;background:var(--orange);top:49%;left:7%;transform:rotate(-12deg)}.orbit-c{width:clamp(58px,6vw,95px);aspect-ratio:1;background:var(--blue);color:white;right:4%;bottom:15%}.proof{background:var(--ink);color:var(--paper);padding:110px 3vw 130px}.proof>.eyebrow{padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.25)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr)}.metric{padding:42px 25px 0 0;border-right:1px solid rgba(255,255,255,.2);min-height:230px}.metric:not(:first-child){padding-left:25px}.metric:last-child{border:0}.metric strong{display:block;font:400 clamp(57px,7vw,108px)/1 var(--sans);letter-spacing:-.08em}.metric strong:after{content:"+";font-size:.35em;vertical-align:top;margin-left:4px;color:var(--lime)}.metric:first-child strong:before{content:"~";font-size:.4em;vertical-align:top;margin-right:2px}.metric span{display:block;margin-top:35px;font:300 12px/1.5 var(--mono);text-transform:uppercase}.work{padding:130px 3vw;position:relative}.section-heading{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:end;margin-bottom:100px}.section-heading h2{font-size:clamp(62px,8vw,126px);line-height:.82;letter-spacing:-.075em;font-weight:500;margin:0}.section-heading>p:last-child{max-width:310px;font-size:14px;line-height:1.5}.project{display:grid;grid-template-columns:70px 1fr 210px 45px;gap:20px;align-items:center;padding:34px 5px;border-top:1px solid var(--line);cursor:pointer;position:relative;transition:padding .35s}.project:last-child{border-bottom:1px solid var(--line)}.project:hover{padding-left:16px}.project-index,.project-meta{font:400 10px/1.5 var(--mono);letter-spacing:.05em}.project h3{font-size:clamp(32px,4vw,62px);letter-spacing:-.055em;font-weight:500;margin:0}.project>div:nth-child(2)>p{margin:4px 0 0;font-size:13px;color:#5f5e58}.project-arrow{font-size:25px;transition:transform .3s}.project[aria-expanded="true"] .project-arrow{transform:rotate(90deg)}.project-detail{grid-column:2/4;display:grid;grid-template-columns:1fr 1fr;gap:50px;max-height:0;overflow:hidden;opacity:0;transition:max-height .6s cubic-bezier(.16,1,.3,1),opacity .35s,padding .6s}.project[aria-expanded="true"] .project-detail{max-height:520px;opacity:1;padding:45px 0 20px}.detail-lead{font-size:22px;line-height:1.35;letter-spacing:-.03em;margin:0}.project-detail ul{margin:0;padding-left:17px;font-size:13px;line-height:1.7}.floating-preview{position:fixed;z-index:8;width:300px;height:210px;left:0;top:0;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.75) rotate(-4deg);transition:opacity .2s,transform .35s cubic-bezier(.16,1,.3,1)}.floating-preview.show{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(2deg)}.preview-art{height:100%;padding:20px;color:white;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(135deg,#3115ef,#8c7bff);overflow:hidden;position:relative}.preview-art:after{content:"";width:170px;height:170px;border:40px solid var(--lime);position:absolute;border-radius:50%;right:-50px;bottom:-75px}.preview-code{font:400 10px var(--mono)}.preview-title{font-size:48px;letter-spacing:-.07em;z-index:1}.preview-art i{position:absolute;width:75px;height:75px;border-radius:50%;background:var(--orange);top:40px;right:48px}.bridge{background:var(--lime);padding:0 0 130px;overflow:hidden}.bridge-marquee{display:flex;width:max-content;font-size:clamp(70px,11vw,170px);letter-spacing:-.07em;white-space:nowrap;animation:marquee 22s linear infinite;border-bottom:1px solid rgba(0,0,0,.2)}.bridge p{font-size:clamp(30px,4.2vw,66px);line-height:1.08;letter-spacing:-.05em;max-width:1100px;margin:120px auto 0;padding:0 3vw;text-align:center}.about{padding:140px 3vw}.timeline{border-top:1px solid var(--line)}.timeline-item{display:grid;grid-template-columns:190px 1.3fr 1fr;gap:25px;align-items:center;padding:28px 0;border-bottom:1px solid var(--line)}.timeline time,.timeline-item>span{font:400 10px var(--mono);text-transform:uppercase}.timeline h3{font-size:22px;margin:0 0 5px;letter-spacing:-.03em}.timeline p{font-size:12px;margin:0;color:#6b6962}.capabilities{background:var(--ink);color:var(--paper);padding:130px 3vw}.cap-copy{display:grid;grid-template-columns:1fr 1.1fr;gap:8vw;align-items:end}.cap-copy .eyebrow{grid-column:1/-1}.cap-copy h2{font-size:clamp(55px,7.8vw,120px);line-height:.85;letter-spacing:-.075em;margin:65px 0 0;font-weight:500}.cap-copy>p:last-child{font-size:clamp(18px,2.1vw,28px);line-height:1.4;color:#bab8b0}.language-cards{display:grid;grid-template-columns:repeat(3,1fr);margin-top:120px;border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}.language{min-height:250px;padding:25px;border-right:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column;justify-content:space-between}.language:last-child{border:0}.language span{font-size:42px}.language strong{font-size:24px;margin-top:auto}.language p{font:400 10px var(--mono);color:var(--lime);text-transform:uppercase}.skill-cloud{display:flex;flex-wrap:wrap;gap:10px;margin-top:70px}.skill-cloud span{border:1px solid rgba(255,255,255,.35);border-radius:50px;padding:12px 18px;font:300 10px var(--mono);text-transform:uppercase}.education{display:grid;grid-template-columns:1fr 1.3fr 1.3fr;gap:30px;padding:70px 3vw;border-bottom:1px solid var(--line)}.education h3{font-size:18px;margin:0 0 7px}.education p{font-size:11px;line-height:1.6;margin:0;color:#6b6962}.contact{padding:130px 3vw 28px;background:var(--orange);min-height:88vh;display:flex;flex-direction:column}.contact h2{font-size:clamp(64px,10.5vw,162px);line-height:.78;letter-spacing:-.08em;font-weight:500;margin:10vh 0}.contact-row{display:grid;grid-template-columns:2fr 1fr;gap:80px;align-items:end;margin-top:auto}.contact-mail{font-size:clamp(20px,3vw,42px);letter-spacing:-.05em;border-bottom:2px solid;padding-bottom:10px;display:flex;justify-content:space-between}.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:9px;font:400 11px var(--mono);text-transform:uppercase}.contact-links button{border:0;background:none;padding:0;cursor:pointer;text-transform:uppercase}.contact footer{display:grid;grid-template-columns:1fr 1fr 1fr;margin-top:80px;padding-top:18px;border-top:1px solid rgba(0,0,0,.3);font:400 9px var(--mono);text-transform:uppercase}.contact footer span:nth-child(2){text-align:center}.contact footer span:last-child{text-align:right}.reveal{opacity:0;transform:translateY(45px);transition:opacity .8s,transform .8s cubic-bezier(.16,1,.3,1)}.reveal.visible{opacity:1;transform:none}.cursor{position:fixed;width:74px;height:74px;border-radius:50%;background:var(--lime);z-index:30;display:grid;place-items:center;pointer-events:none;transform:translate(-50%,-50%) scale(0);transition:transform .25s;mix-blend-mode:difference}.cursor.active{transform:translate(-50%,-50%) scale(1)}.cursor span{font:500 9px var(--mono)}
@keyframes lineIn{to{transform:none}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes pulse{50%{opacity:.35;transform:scale(.7)}}
@media(max-width:850px){.site-header{grid-template-columns:1fr 1fr;padding:18px}.site-header nav{display:none}.availability{font-size:0}.availability i{margin:0}.hero{padding:100px 18px 30px}.hero-title{font-size:18vw;margin:16vh 0 8vh}.hero-bottom p{max-width:80%;font-size:17px}.scroll-cue span{display:none}.orbit-a{top:18%;right:5%}.orbit-b{top:50%;left:3%}.orbit-c{display:none}.proof,.work,.about,.capabilities{padding:90px 18px}.metric-grid{grid-template-columns:1fr 1fr}.metric{min-height:180px;border-bottom:1px solid rgba(255,255,255,.2)}.metric:nth-child(2){border-right:0}.metric:nth-child(3),.metric:nth-child(4){border-bottom:0}.metric strong{font-size:16vw}.section-heading{grid-template-columns:1fr;margin-bottom:65px;gap:30px}.section-heading h2{font-size:20vw}.section-heading>p:last-child{display:none}.project{grid-template-columns:36px 1fr 30px;padding:25px 0}.project-meta{display:none}.project-arrow{grid-column:3}.project-detail{grid-column:1/-1;grid-template-columns:1fr;gap:20px}.project[aria-expanded="true"] .project-detail{max-height:800px}.floating-preview,.cursor{display:none}.bridge{padding-bottom:85px}.bridge p{margin-top:80px;text-align:left}.timeline-item{grid-template-columns:1fr}.timeline-item>span{display:none}.cap-copy{grid-template-columns:1fr}.cap-copy h2{font-size:18vw}.language-cards{margin-top:70px}.language{min-height:190px;padding:14px}.language span{font-size:28px}.language strong{font-size:15px}.education{grid-template-columns:1fr;padding:60px 18px}.contact{padding:90px 18px 24px}.contact h2{font-size:19vw;margin:12vh 0}.contact-row{grid-template-columns:1fr;gap:38px}.contact footer{grid-template-columns:1fr 1fr}.contact footer span:nth-child(2){display:none}}
@media(hover:none){.floating-preview,.cursor{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
@media print{.site-header,.cursor,.noise,.scroll-cue,.floating-preview,.bridge-marquee{display:none!important}.hero{min-height:auto;padding-top:30px}.hero-title{font-size:78px;margin:45px 0}.hero-orbit{display:none}.proof,.work,.about,.capabilities,.contact{padding:40px 28px;break-inside:avoid}.project-detail{max-height:none!important;opacity:1!important;padding:15px 0!important}.contact{min-height:auto}.contact h2{font-size:70px;margin:30px 0}.reveal{opacity:1;transform:none}}

/* Content-first profile layout */
.hero-profile{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.55fr);gap:6vw;align-items:center;padding-top:125px}.hero-copy{align-self:center}.hero-name{font:500 clamp(18px,2vw,28px) var(--sans);letter-spacing:-.04em;margin:38px 0 20px}.hero-name span{color:#6f6d66;font-weight:400}.professional-title{font-size:clamp(62px,7.9vw,122px);line-height:.86;margin:0 0 36px;letter-spacing:-.072em}.professional-title .line:nth-child(2){text-align:left}.hero-summary{font-size:clamp(17px,1.6vw,24px);line-height:1.42;letter-spacing:-.03em;max-width:760px;margin:0}.hero-actions{display:flex;align-items:center;gap:30px;margin-top:42px;font:400 11px var(--mono);text-transform:uppercase}.primary-action{background:var(--ink);color:var(--paper);padding:17px 20px;min-width:215px;display:flex;justify-content:space-between}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#73a82b;margin-right:9px}.portrait-card{align-self:center;max-width:390px;margin-left:auto;width:100%}.portrait-placeholder{aspect-ratio:4/5;background:#d8d5cc;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:25px}.portrait-placeholder:before{content:"";position:absolute;width:75%;aspect-ratio:1;border-radius:50%;background:var(--lime);top:-18%;right:-25%}.portrait-placeholder:after{content:"";position:absolute;width:65%;height:70%;border-radius:48% 48% 5% 5%;background:#aaa69d;bottom:-12%;left:17%}.portrait-placeholder>span{position:absolute;z-index:2;top:22px;left:22px;font:500 13px var(--mono)}.portrait-placeholder p{z-index:2;margin:0 0 0 auto;font:400 9px/1.4 var(--mono);text-transform:uppercase;text-align:right}.portrait-caption{border:1px solid var(--line);border-top:0;padding:16px;display:flex;flex-direction:column;gap:7px;font:400 9px var(--mono);text-transform:uppercase}.profile-overview{padding:120px 3vw;display:grid;grid-template-columns:.8fr 1.45fr;gap:10vw;border-top:1px solid var(--line)}.overview-intro h2{font-size:clamp(44px,5.5vw,82px);line-height:.95;letter-spacing:-.06em;font-weight:500;margin:50px 0 0}.overview-body{max-width:850px}.overview-body>p{max-width:690px;font-size:15px;line-height:1.65;color:#5e5c56}.overview-body .overview-lead{font-size:clamp(23px,2.6vw,39px);line-height:1.3;letter-spacing:-.04em;color:var(--ink);margin-top:0}.overview-facts{display:grid;grid-template-columns:1fr 1fr;margin-top:55px;border-top:1px solid var(--line)}.overview-facts div{padding:20px 18px 20px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:9px}.overview-facts div:nth-child(odd){border-right:1px solid var(--line)}.overview-facts div:nth-child(even){padding-left:18px}.overview-facts span{font:400 9px var(--mono);text-transform:uppercase;color:#77746c}.overview-facts strong{font-size:13px;font-weight:500}.proof{padding-top:90px;padding-bottom:100px}.metric{min-height:195px}.work{padding-top:110px}.floating-preview{width:240px;height:165px}.preview-title{font-size:37px}.section-heading{margin-bottom:75px}.project h3{font-size:clamp(30px,3.3vw,50px)}.bridge p{max-width:980px;font-size:clamp(28px,3.6vw,54px)}
@media(max-width:850px){.hero-profile{display:block;padding:105px 18px 60px}.hero-name{margin-top:50px}.professional-title{font-size:15vw;margin-bottom:28px}.hero-summary{max-width:95%}.hero-actions{margin-top:30px}.portrait-card{margin:70px 0 0;max-width:100%;display:grid;grid-template-columns:1fr 1fr}.portrait-placeholder{aspect-ratio:1}.portrait-caption{border-top:1px solid var(--line);justify-content:flex-end}.profile-overview{padding:80px 18px;grid-template-columns:1fr;gap:55px}.overview-intro h2{font-size:14vw;margin-top:30px}.overview-facts{grid-template-columns:1fr}.overview-facts div:nth-child(odd){border-right:0}.overview-facts div:nth-child(even){padding-left:0}.professional-title .line:nth-child(2){text-align:left}.proof{padding-top:75px}.section-heading h2{font-size:16vw}}

/* Blue-led color layer */
.primary-action{background:var(--blue);color:#fff}.status-dot{background:var(--blue)}
.portrait-placeholder{background:var(--pale-blue)}
.portrait-placeholder:before{background:var(--blue)}
.portrait-placeholder:after{background:#aeb7ec}
.proof{background:var(--deep-blue)}
.proof>.eyebrow{color:#c5ccff}
.metric strong:after{color:#9cacff}
.profile-overview{background:var(--paper)}
.overview-intro .eyebrow,.overview-facts span{color:var(--blue)}
.project:hover h3{color:var(--blue)}
.language p{color:#9cacff}
@media(max-width:850px){.profile-overview{background:var(--paper)}}

/* Portfolio photography */
.portrait-loaded:before,.portrait-loaded:after{display:none}.portrait-loaded img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 34%}.portrait-loaded>span,.portrait-loaded p{background:rgba(242,240,233,.82);backdrop-filter:blur(8px);padding:7px 9px}.portrait-loaded>span{top:16px;left:16px}.portrait-loaded p{margin-left:auto}
.project[aria-expanded="true"] .project-detail{max-height:1200px}.project-media{grid-column:1/-1;margin:15px 0 0;position:relative;background:#e7e7e2;overflow:hidden}.project-media img{display:block;width:100%;height:min(42vw,480px);object-fit:cover}.project-media figcaption{position:absolute;left:14px;bottom:14px;background:rgba(242,240,233,.9);padding:9px 12px;font:400 9px var(--mono);text-transform:uppercase}.logo-media{background:#111}.logo-media img{height:300px;object-fit:contain;padding:60px}.field-notes{padding:130px 3vw;background:#dfe4ff}.field-heading{display:grid;grid-template-columns:1fr 1.4fr 1fr;align-items:end;gap:40px;margin-bottom:75px}.field-heading h2{font-size:clamp(54px,7.2vw,108px);line-height:.86;letter-spacing:-.07em;font-weight:500;margin:0}.field-heading>p:last-child{font-size:14px;line-height:1.55;max-width:320px}.field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.field-card{margin:0;background:var(--paper);overflow:hidden}.field-card img{display:block;width:100%;height:390px;object-fit:cover;transition:transform .7s cubic-bezier(.16,1,.3,1)}.field-card:hover img{transform:scale(1.025)}.field-card figcaption{display:grid;grid-template-columns:1fr auto;gap:8px;padding:18px}.field-card figcaption span{font-size:17px;font-weight:600}.field-card figcaption p{grid-column:1;max-width:470px;font-size:12px;line-height:1.5;margin:0;color:#5f5d56}.field-card figcaption b{grid-column:2;grid-row:1;font:400 9px var(--mono)}.field-wide img{height:520px}.source-note{font:400 9px var(--mono);text-transform:uppercase;margin:25px 0 0;color:#5f6591}
@media(max-width:850px){.project-media img{height:260px}.logo-media img{height:210px;padding:45px}.field-notes{padding:90px 18px}.field-heading{grid-template-columns:1fr;gap:25px}.field-heading h2{font-size:16vw}.field-heading>p:last-child{display:block}.field-grid{grid-template-columns:1fr}.field-card img,.field-wide img{height:290px}.field-card figcaption{grid-template-columns:1fr}.field-card figcaption b{grid-column:1;grid-row:auto}}

/* Readability-first refinement */
.profile-overview{gap:7vw;padding-top:105px;padding-bottom:105px}.overview-facts{gap:12px;border-top:0}.overview-facts div,.overview-facts div:nth-child(odd),.overview-facts div:nth-child(even){border:1px solid var(--line);background:#fff;padding:18px;border-radius:3px}.overview-facts span{color:#5864b0}.work{padding-top:105px}.section-heading h2,.field-heading h2{font-size:clamp(50px,6.2vw,92px);line-height:.93}.work-browser{display:grid;grid-template-columns:minmax(230px,.7fr) 1.5fr;gap:40px;align-items:end;background:#fff;border:1px solid var(--line);padding:24px;margin-bottom:42px}.browser-label{font:500 10px var(--mono);text-transform:uppercase;color:var(--blue)}.work-browser p{font-size:13px;line-height:1.5;margin:8px 0 0;color:#625f58}.filter-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.filter-button{border:1px solid var(--line);background:transparent;border-radius:100px;padding:10px 14px;font:400 10px var(--mono);text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.filter-button:hover{border-color:var(--blue)}.filter-button.active{background:var(--blue);border-color:var(--blue);color:#fff}.project[hidden]{display:none}.project{grid-template-columns:58px 1fr 190px 40px;padding:27px 8px}.project:hover{padding-left:8px;background:rgba(78,99,245,.045)}.project h3{font-size:clamp(28px,3vw,44px)}.project-detail{background:#fff;margin-top:14px;padding-left:22px!important;padding-right:22px!important}.project[aria-expanded="false"] .project-detail{padding-top:0!important;padding-bottom:0!important}.detail-lead:before,.project-detail ul:before{display:block;font:500 9px var(--mono);text-transform:uppercase;color:var(--blue);margin-bottom:11px;letter-spacing:.08em}.detail-lead:before{content:"Overview"}.project-detail ul:before{content:"Key contributions";margin-left:-17px}.floating-preview,.cursor{display:none!important}.bridge{background:var(--lime);padding:90px 3vw}.bridge-marquee{display:none}.bridge p{font-size:clamp(28px,3.2vw,48px);max-width:900px;margin:0 auto;text-align:left;padding:0}.field-notes{background:var(--pale-blue);padding-top:110px}.field-grid{gap:22px}.field-card{border:1px solid rgba(39,53,141,.13)}.capabilities{background:#20211f}.contact{background:#d9856e}.language p{color:#bdc7ff}
@media(max-width:850px){.profile-overview{padding-top:75px;padding-bottom:75px}.overview-facts{gap:8px}.work-browser{grid-template-columns:1fr;padding:18px;gap:20px}.filter-buttons{justify-content:flex-start}.project{grid-template-columns:34px 1fr 28px;padding:23px 0}.project-detail{margin-left:-34px;padding-left:16px!important;padding-right:16px!important}.bridge{padding:70px 18px}.bridge p{text-align:left}.field-heading h2,.section-heading h2{font-size:14vw}}

/* Muted blue / royal brown palette */
.portrait-loaded>span,.portrait-loaded p,.project-media figcaption{background:rgba(242,239,235,.9)}
.portrait-caption{background:var(--paper)}
.proof{background:var(--deep-blue)}
.proof>.eyebrow{color:var(--pale-blue)}
.metric strong:after{color:var(--pale-blue)}
.overview-facts span,.browser-label,.detail-lead:before,.project-detail ul:before{color:var(--blue)}
.work-browser,.project-detail,.overview-facts div,.overview-facts div:nth-child(odd),.overview-facts div:nth-child(even){background:#faf8f5}
.work-browser p{color:#52666a}
.filter-button:hover{border-color:var(--moonstone);background:rgba(176,210,236,.4)}
.filter-button.active{background:var(--blue);border-color:var(--blue);color:#fff}
.project:hover{background:rgba(132,157,187,.14)}
.bridge{background:var(--rock-blue)}
.field-notes{background:var(--pale-blue)}
.field-card{border-color:rgba(83,58,51,.14)}
.source-note{color:var(--blue)}
.capabilities{background:var(--ink)}
.contact{background:var(--silver-chalice)}
.language p{color:var(--pale-blue)}

/* Lighten the two large information panels */
.proof{background:var(--blue);color:#fff}
.proof>.eyebrow{color:#eef5fb;border-color:rgba(255,255,255,.36)}
.proof .metric{border-color:rgba(255,255,255,.3)}
.metric strong:after{color:var(--pale-blue)}
.capabilities{background:var(--pale-blue);color:var(--ink)}
.cap-copy>p:last-child{color:#6b554f}
.language-cards{border-color:rgba(83,58,51,.25)}
.language{border-color:rgba(83,58,51,.25)}
.language p{color:var(--blue)}
.skill-cloud span{border-color:rgba(83,58,51,.35)}

/* Contact collage and persistent CTA */
.floating-contact-button{position:fixed;right:24px;bottom:22px;z-index:18;display:flex;align-items:center;justify-content:space-between;gap:28px;min-width:150px;padding:15px 17px;border-radius:100px;background:var(--royal-brown);color:#fff;box-shadow:0 10px 32px rgba(83,58,51,.22);font:500 10px var(--mono);text-transform:uppercase;letter-spacing:.05em;transition:transform .25s,background .25s,box-shadow .25s}.floating-contact-button:hover{transform:translateY(-4px);background:var(--blue);box-shadow:0 14px 36px rgba(83,58,51,.3)}.floating-contact-button b{font-size:17px;font-weight:400}.contact{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(135deg,#648ec0 0%,#849dbb 100%);color:#fff}.contact:before,.contact:after{content:"";position:absolute;z-index:-1;border-radius:50%;filter:blur(28px);opacity:.72}.contact:before{width:360px;height:360px;right:8%;top:8%;background:rgba(176,210,236,.8)}.contact:after{width:250px;height:250px;right:33%;bottom:2%;background:rgba(245,242,234,.42)}.contact>.eyebrow,.contact h2,.contact-row,.contact footer{position:relative;z-index:2}.contact h2{max-width:78%;font-size:clamp(62px,9vw,136px);text-shadow:0 2px 20px rgba(83,58,51,.1)}.contact-collage{position:absolute;z-index:1;inset:0;pointer-events:none}.contact-slice{position:absolute;margin:0;border:1px solid rgba(255,255,255,.8);box-shadow:0 14px 35px rgba(40,54,76,.16);overflow:hidden}.contact-slice:before,.contact-slice:after{content:"";position:absolute;width:7px;height:7px;background:#fff;border-radius:50%;z-index:2;top:-4px}.contact-slice:before{left:-4px}.contact-slice:after{right:-4px}.contact-slice img{width:100%;height:100%;object-fit:cover;display:block}.slice-profile{width:150px;height:190px;right:5%;top:10%;transform:rotate(3deg)}.slice-event{width:185px;height:125px;right:20%;top:45%;transform:rotate(-2deg)}.slice-event img{object-position:center 34%}.slice-ama{width:145px;height:100px;right:4%;bottom:19%;transform:rotate(2deg)}.glass-orb{position:absolute;border-radius:50%;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:rgba(255,255,255,.23);border:1px solid rgba(255,255,255,.4);box-shadow:inset 0 0 28px rgba(255,255,255,.35)}.orb-one{width:130px;height:130px;right:14%;top:24%}.orb-two{width:85px;height:85px;right:31%;bottom:19%}.collage-note{position:absolute;padding:7px 9px;border:1px solid rgba(255,255,255,.65);font:400 8px var(--mono);text-transform:uppercase;letter-spacing:.05em}.note-one{right:18%;top:17%}.note-two{right:5%;bottom:12%}.contact-mail{border-color:rgba(255,255,255,.85)}.contact footer{border-color:rgba(255,255,255,.42)}
@media(max-width:850px){.floating-contact-button{right:14px;bottom:14px;min-width:auto;padding:13px 15px}.floating-contact-button span{display:none}.contact h2{max-width:100%;font-size:17vw}.contact-collage{opacity:.65}.slice-profile{width:90px;height:120px;right:4%;top:22%}.slice-event{width:115px;height:80px;right:24%;top:46%}.slice-ama{display:none}.orb-one{width:80px;height:80px;right:18%;top:30%}.orb-two,.collage-note{display:none}.contact-row{z-index:3}.contact-links{background:rgba(100,142,192,.7);padding:12px}}
@media print{.floating-contact-button,.contact-collage{display:none!important}}

/* Glass surfaces across interactive information */
.profile-overview,.work,.proof,.capabilities{position:relative;isolation:isolate;overflow:hidden}.profile-overview:before,.work:before,.capabilities:before{content:"";position:absolute;z-index:-1;border-radius:50%;filter:blur(42px);pointer-events:none}.profile-overview:before{width:330px;height:330px;right:4%;top:8%;background:rgba(176,210,236,.42)}.work:before{width:420px;height:420px;left:-12%;top:28%;background:rgba(132,157,187,.2)}.capabilities:before{width:360px;height:360px;right:-6%;top:12%;background:rgba(255,255,255,.34)}.overview-facts div,.overview-facts div:nth-child(odd),.overview-facts div:nth-child(even),.work-browser,.project-detail{background:rgba(255,255,255,.56);border-color:rgba(255,255,255,.72);box-shadow:0 12px 34px rgba(83,58,51,.055),inset 0 1px 0 rgba(255,255,255,.8);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.work-browser{border-radius:7px}.project-detail{border:1px solid rgba(255,255,255,.7);border-radius:5px}.proof:before,.proof:after{content:"";position:absolute;z-index:-1;border-radius:50%;filter:blur(36px);opacity:.42}.proof:before{width:280px;height:280px;background:var(--pale-blue);right:8%;top:-12%}.proof:after{width:200px;height:200px;background:#fff;left:20%;bottom:-24%}.metric-grid{background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.metric{padding-left:25px}.language{background:rgba(255,255,255,.2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.skill-cloud span{background:rgba(255,255,255,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.field-card{background:rgba(255,255,255,.5);box-shadow:0 14px 34px rgba(83,58,51,.07);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.field-card figcaption{background:rgba(255,255,255,.48);box-shadow:inset 0 1px 0 rgba(255,255,255,.72)}.portrait-caption{background:rgba(242,239,235,.65);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}

/* Expand-on-hover contact button */
.floating-contact-button{width:54px;min-width:54px;height:54px;padding:0 17px;gap:10px;justify-content:flex-end;overflow:hidden;background:rgba(83,58,51,.86);border:1px solid rgba(255,255,255,.48);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:width .38s cubic-bezier(.16,1,.3,1),transform .25s,background .25s,box-shadow .25s}.floating-contact-button span{max-width:0;opacity:0;white-space:nowrap;overflow:hidden;transition:max-width .38s cubic-bezier(.16,1,.3,1),opacity .2s}.floating-contact-button b{font-size:16px;line-height:1}.floating-contact-button:hover,.floating-contact-button:focus-visible{width:164px;background:rgba(100,142,192,.9)}.floating-contact-button:hover span,.floating-contact-button:focus-visible span{max-width:100px;opacity:1}.floating-contact-button:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(max-width:850px){.floating-contact-button{width:50px;min-width:50px;height:50px;padding:0 15px}.floating-contact-button span{display:block}.floating-contact-button:hover,.floating-contact-button:focus-visible{width:145px}.overview-facts div,.overview-facts div:nth-child(odd),.overview-facts div:nth-child(even),.work-browser,.project-detail{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}}

/* Final alignment, hierarchy, and interaction polish */
.portrait-loaded p{font-size:11px;line-height:1.45;padding:9px 11px}.portrait-caption{font-size:11px;line-height:1.45;gap:9px;padding:19px 18px}.portrait-loaded>span{font-size:10px;padding:8px 10px}
.metric{display:flex;flex-direction:column;justify-content:flex-start;gap:26px;min-height:220px;padding-top:38px;padding-bottom:30px;transition:background .3s}.metric strong{line-height:.86;transition:color .28s,transform .35s cubic-bezier(.16,1,.3,1);transform-origin:left center}.metric span{margin-top:0;line-height:1.55}.metric strong:before,.metric strong:after{color:#b0d2ec;transition:color .28s}.metric:hover{background:rgba(255,255,255,.08)}.metric:hover strong{color:#f1c3b8;transform:translateY(-5px)}.metric:hover strong:before,.metric:hover strong:after{color:#f1c3b8}.metric strong:after{animation:numberAccent 2.8s ease-in-out infinite}.metric:nth-child(2) strong:after{animation-delay:.35s}.metric:nth-child(3) strong:after{animation-delay:.7s}.metric:nth-child(4) strong:after{animation-delay:1.05s}
@keyframes numberAccent{0%,72%,100%{opacity:.65;transform:translateY(0)}82%{opacity:1;transform:translateY(-4px)}}
.skill-cloud{align-items:center;row-gap:14px}.skill-cloud span{position:relative;transition:background .3s,color .3s,border-color .3s,box-shadow .3s,transform .3s;animation:tagDrift 5.5s ease-in-out infinite alternate}.skill-cloud span:nth-child(2n){animation-direction:alternate-reverse;animation-duration:6.5s}.skill-cloud span:nth-child(3n){animation-delay:-2s}.skill-cloud span:hover{animation-play-state:paused;background:rgba(255,255,255,.72);color:var(--blue);border-color:rgba(255,255,255,.95);box-shadow:0 8px 24px rgba(83,58,51,.1);transform:translateY(-4px) scale(1.025)}
@keyframes tagDrift{from{translate:-3px 0}to{translate:5px 0}}
.floating-contact-button{display:flex;justify-content:center;align-items:center;width:54px;min-width:54px;padding:0;border:1px solid rgba(255,255,255,.56);outline:0;transform-origin:right center}.floating-contact-button span{flex:0 0 auto;text-align:center}.floating-contact-button b{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px}.floating-contact-button:hover,.floating-contact-button:focus-visible{width:172px;padding:0 17px;gap:9px;justify-content:center;outline:0;box-shadow:0 12px 34px rgba(83,58,51,.26),0 0 0 2px rgba(255,255,255,.5)}
@media(max-width:850px){.metric{min-height:235px;padding:28px 18px;gap:20px}.metric strong{font-size:14vw}.metric span{font-size:10px}.portrait-caption{font-size:10px}.floating-contact-button{width:50px;min-width:50px;padding:0}.floating-contact-button:hover,.floating-contact-button:focus-visible{width:154px;padding:0 14px}.skill-cloud span{animation-duration:7s}}

/* Navigation separation and linked evidence cards */
.site-header{mix-blend-mode:normal;color:var(--ink);background:rgba(242,239,235,.78);border-bottom:1px solid rgba(83,58,51,.1);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);padding-top:17px;padding-bottom:17px}.site-header .availability i{background:var(--blue)}.skill-cloud{justify-content:center;padding-left:2vw;padding-right:2vw}.metric{gap:34px}.metric span{margin-top:10px}.field-card{position:relative}.field-card-link{position:absolute;inset:0;z-index:4}.field-card-link:after{content:"View source";position:absolute;right:16px;top:16px;padding:9px 11px;border:1px solid rgba(255,255,255,.76);background:rgba(83,58,51,.68);color:#fff;font:500 8px var(--mono);text-transform:uppercase;letter-spacing:.05em;opacity:0;transform:translateY(-5px);transition:opacity .25s,transform .25s,background .25s;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.field-card:hover .field-card-link:after,.field-card-link:focus-visible:after{opacity:1;transform:none}.field-card-link:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}.field-card:hover img{transform:scale(1.025)}
@media(max-width:850px){.site-header{padding:14px 18px}.metric{gap:27px}.metric span{margin-top:8px}.skill-cloud{justify-content:flex-start;padding-left:0;padding-right:0}.field-card-link:after{opacity:1;transform:none;right:10px;top:10px}}

/* Typographic descenders, experience context, and keyword motion */
.professional-title{line-height:.92}.hero-title .line{padding-bottom:.24em;margin-bottom:-.1em}.experience-total{display:flex;flex-direction:column;gap:10px;max-width:280px;margin:0 0 5px;align-self:end}.experience-total strong{font-size:clamp(28px,3.2vw,48px);font-weight:500;letter-spacing:-.05em;color:var(--blue)}.experience-total span{font-size:12px;line-height:1.55;color:#675952}.filter-button:not(.active){animation:filterDrift 6.5s ease-in-out infinite alternate}.filter-button:nth-child(2n):not(.active){animation-direction:alternate-reverse;animation-duration:7.5s}.filter-button:nth-child(3n):not(.active){animation-delay:-2s}.filter-button:hover{animation-play-state:paused;transform:translateY(-3px);box-shadow:0 7px 18px rgba(83,58,51,.08)}
@keyframes filterDrift{from{translate:-2px 0}to{translate:3px 0}}
.floating-contact-button b{font-size:0}.floating-contact-button b svg{display:block;width:18px;height:18px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:850px){.professional-title{line-height:.94}.hero-title .line{padding-bottom:.26em;margin-bottom:-.11em}.experience-total{max-width:100%;margin-top:-5px}.experience-total strong{font-size:34px}.filter-button:not(.active){animation-duration:8s}}

/* Text-first controls and calmer Contact spacing */
.project-arrow{font-size:23px;line-height:1;display:grid;place-items:center;transition:color .25s}.project[aria-expanded="true"] .project-arrow{transform:none;color:var(--blue);font-size:0}.project[aria-expanded="true"] .project-arrow:after{content:"−";font-size:23px}.contact{padding-top:165px}.contact h2{margin:13vh 0 11vh;padding-top:22px}.contact-mail span{font:500 9px var(--mono);text-transform:uppercase;letter-spacing:.06em}.download-status{min-height:12px;font-size:8px;color:rgba(255,255,255,.82)}#resume-download.cooldown{opacity:.55;pointer-events:none}.floating-contact-button{width:92px;min-width:92px;padding:0 16px;justify-content:center}.floating-contact-button .contact-short{display:block;max-width:none;opacity:1;overflow:visible}.floating-contact-button .contact-long{display:none;max-width:none;opacity:0}.floating-contact-button:hover,.floating-contact-button:focus-visible{width:174px;padding:0 18px}.floating-contact-button:hover .contact-short,.floating-contact-button:focus-visible .contact-short{display:none}.floating-contact-button:hover .contact-long,.floating-contact-button:focus-visible .contact-long{display:block;opacity:1}.floating-contact-button b{display:none}
@media(max-width:850px){.contact{padding-top:125px}.contact h2{margin:9vh 0 10vh;padding-top:18px}.floating-contact-button{width:82px;min-width:82px;height:46px;padding:0 13px}.floating-contact-button:hover,.floating-contact-button:focus-visible{width:150px}.contact-mail span{font-size:8px}}

/* Copy deterrence and single-focus keyword motion */
.copy-protected{-webkit-user-select:none;user-select:none}.copy-protected img{-webkit-user-drag:none;user-drag:none}.copy-notice{position:fixed;z-index:40;left:50%;bottom:24px;transform:translate(-50%,20px);padding:11px 15px;border:1px solid rgba(255,255,255,.62);border-radius:100px;background:rgba(83,58,51,.9);color:#fff;font:500 9px var(--mono);text-transform:uppercase;letter-spacing:.05em;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.copy-notice.show{opacity:1;transform:translate(-50%,0)}.skill-cloud span{animation:none;opacity:.72;transform:scale(.98);transition:opacity .42s,background .42s,color .42s,border-color .42s,box-shadow .42s,transform .42s cubic-bezier(.16,1,.3,1)}.skill-cloud span.keyword-active{opacity:1;background:rgba(255,255,255,.82);color:var(--blue);border-color:rgba(255,255,255,.96);box-shadow:0 10px 28px rgba(83,58,51,.12),inset 0 1px 0 #fff;transform:translateY(-4px) scale(1.055)}.skill-cloud span:hover,.skill-cloud span:focus-visible{opacity:1;background:rgba(255,255,255,.9);color:var(--blue);border-color:#fff;transform:translateY(-4px) scale(1.055)}
@media(max-width:850px){.copy-notice{bottom:76px;width:max-content;max-width:calc(100vw - 30px);text-align:center}.skill-cloud span.keyword-active{transform:translateY(-2px) scale(1.025)}}

/* Mobile project alignment and Contact title rhythm */
.contact h2{line-height:.9;letter-spacing:-.065em}.contact h2 em{display:inline-block;padding-bottom:.09em}.project-detail{margin-top:0}
@media(max-width:850px){.project{grid-template-columns:1fr 28px;margin-left:-18px;margin-right:-18px;padding:23px 18px}.project-index{display:none}.project>div:nth-child(2){grid-column:1;min-width:0}.project-arrow{grid-column:2;grid-row:1}.project-detail{grid-column:1/-1;margin-left:-18px;margin-right:-18px;padding-left:28px!important;padding-right:28px!important}.project[aria-expanded="false"] .project-detail{padding-left:28px!important;padding-right:28px!important}.contact h2{line-height:.92;letter-spacing:-.055em}.contact h2 em{padding-bottom:.12em}}
.project:focus{outline:none}.project:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}

/* Cursor-reactive ambient temperature field */
.temperature-field{position:fixed;z-index:0;inset:0;overflow:hidden;pointer-events:none;mix-blend-mode:multiply;contain:strict}.temperature-core,.temperature-trail{position:absolute;left:0;top:0;display:block;border-radius:50%;will-change:transform,opacity,background;transform:translate3d(50vw,50vh,0) translate(-50%,-50%)}.temperature-core{width:62vmax;height:62vmax;opacity:.31;background:radial-gradient(circle at 50% 50%,var(--temperature-core-color,rgba(100,142,192,.72)) 0%,rgba(125,194,197,.5) 22%,rgba(100,142,192,.24) 43%,transparent 72%);filter:blur(42px) saturate(128%)}.temperature-trail{width:78vmax;height:78vmax;opacity:.17;background:radial-gradient(circle at 53% 47%,var(--temperature-trail-color,rgba(176,210,236,.55)) 0%,rgba(220,182,174,.34) 29%,rgba(176,210,236,.14) 51%,transparent 74%);filter:blur(64px) saturate(120%)}
@media(prefers-reduced-motion:reduce){.temperature-field{display:none}}@media(hover:none){.temperature-field{display:none}}

/* Keep the temperature field behind all information, never over it. */
main{position:relative;z-index:1}.proof{background:rgba(100,142,192,.87)}.field-notes{background:rgba(176,210,236,.82)}.bridge{background:rgba(132,157,187,.87)}.capabilities{background:rgba(176,210,236,.82)}

/* Finder-inspired evidence archive */
.evidence-archive{margin:0 0 34px;border:1px solid rgba(83,58,51,.16);border-radius:14px;background:rgba(250,248,245,.48);box-shadow:0 22px 55px rgba(83,58,51,.08),inset 0 1px 0 rgba(255,255,255,.82);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);overflow:hidden}.archive-toolbar{min-height:48px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 17px;border-bottom:1px solid rgba(83,58,51,.12);background:rgba(255,255,255,.34);font:400 9px var(--mono);text-transform:uppercase;letter-spacing:.04em}.archive-toolbar p{margin:0}.archive-toolbar p span{color:var(--blue)}.archive-view{justify-self:end;color:rgba(83,58,51,.6)}.window-controls{display:flex;gap:7px}.window-controls i{width:9px;height:9px;border-radius:50%;background:#d9a59c;border:1px solid rgba(83,58,51,.1)}.window-controls i:nth-child(2){background:#d7c29a}.window-controls i:nth-child(3){background:#a9c6c2}.archive-folders{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:30px 24px 27px;background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(176,210,236,.18))}.archive-folder{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;padding:12px 8px 14px;border:0;border-radius:10px;background:transparent;cursor:pointer;transition:background .3s,transform .35s cubic-bezier(.16,1,.3,1),box-shadow .3s}.archive-folder:hover,.archive-folder:focus-visible{background:rgba(255,255,255,.44);transform:translateY(-5px);outline:0}.archive-folder:focus-visible{box-shadow:0 0 0 2px var(--blue)}.folder-shape{position:relative;display:grid;place-items:center;width:clamp(82px,9vw,124px);height:clamp(58px,6.4vw,88px);margin:13px 0 17px;border-radius:8px 12px 12px 12px;background:linear-gradient(155deg,#b9ddf6 0%,#75add6 55%,#648ec0 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.72),inset 0 -8px 18px rgba(70,118,171,.13),0 13px 22px rgba(74,111,154,.18);transition:filter .3s,transform .4s cubic-bezier(.16,1,.3,1)}.folder-shape:before{content:"";position:absolute;z-index:-1;left:0;top:-13px;width:46%;height:24px;border-radius:9px 9px 0 0;background:#8ebfe2;clip-path:polygon(0 0,72% 0,100% 55%,100% 100%,0 100%)}.folder-shape:after{content:"";position:absolute;inset:7px 7px auto;height:42%;border-radius:7px;background:linear-gradient(180deg,rgba(255,255,255,.33),rgba(255,255,255,.04));border-top:1px solid rgba(255,255,255,.5)}.folder-shape b{position:relative;z-index:1;color:rgba(255,255,255,.9);font:500 clamp(15px,1.8vw,24px) var(--mono);letter-spacing:-.06em}.archive-folder:hover .folder-shape{filter:saturate(1.12) brightness(1.05);transform:rotate(-2deg) scale(1.035)}.archive-folder.active{background:rgba(255,255,255,.56);box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),0 10px 25px rgba(83,58,51,.06)}.archive-folder.active .folder-shape{background:linear-gradient(155deg,#d0e9f8 0%,#88bae0 48%,#648ec0 100%);transform:translateY(-3px)}.archive-folder strong{font-size:13px;font-weight:600;letter-spacing:-.02em}.archive-folder small{margin-top:4px;color:rgba(83,58,51,.58);font:400 8px var(--mono);text-transform:uppercase}.archive-status{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;min-height:38px;padding:0 17px;border-top:1px solid rgba(83,58,51,.1);background:rgba(255,255,255,.38);font:400 8px var(--mono);text-transform:uppercase;letter-spacing:.04em;color:rgba(83,58,51,.62)}.archive-status p{margin:0}.archive-status-dot{width:6px;height:6px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px rgba(100,142,192,.12)}.field-card[hidden]{display:none}.field-card.archive-enter{animation:archiveCardIn .48s cubic-bezier(.16,1,.3,1)}@keyframes archiveCardIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:850px){.evidence-archive{margin-bottom:24px;border-radius:10px}.archive-toolbar{grid-template-columns:1fr auto;padding:0 12px}.archive-toolbar p{display:none}.archive-folders{grid-template-columns:repeat(2,1fr);padding:22px 12px 17px}.folder-shape{width:94px;height:66px}.archive-status{grid-template-columns:auto 1fr;padding:0 12px}.archive-status>span:last-child{display:none}.archive-folder strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){.field-card.archive-enter{animation:none}.archive-folder,.folder-shape{transition:none}}

/* macOS-style folder construction: back shell, document layer, and curved front */
.folder-shape{isolation:isolate;width:clamp(92px,9.5vw,132px);height:clamp(68px,7.2vw,98px);margin:9px 0 18px;border-radius:0;background:none;box-shadow:none;filter:drop-shadow(0 13px 12px rgba(49,105,157,.2));overflow:visible}.folder-shape:before,.folder-shape:after{content:none}.folder-shape>i{position:absolute;display:block;margin:0;pointer-events:none}.folder-back{z-index:1;left:3%;right:3%;top:13%;bottom:5%;border-radius:13px 15px 16px 16px;background:linear-gradient(180deg,#76c8f6 0%,#55afe8 48%,#3d9bdc 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.58)}.folder-back:before{content:"";position:absolute;left:0;top:-14%;width:45%;height:27%;border-radius:10px 10px 3px 2px;background:linear-gradient(180deg,#80cdf6 0%,#67bcea 100%)}.folder-back:after{content:"";position:absolute;left:34%;top:-8%;width:21%;height:17%;background:#6bc0ee;transform:skewX(38deg);border-radius:3px}.folder-paper{z-index:2;left:9%;right:8%;top:25%;height:43%;border:1px solid rgba(255,255,255,.58);border-radius:9px 9px 7px 7px;background:linear-gradient(180deg,rgba(239,249,255,.83),rgba(184,222,244,.5));box-shadow:0 -2px 7px rgba(54,125,177,.13);transform:rotate(-1deg)}.folder-front{z-index:3;left:0;right:0;top:32%;bottom:0;border-radius:12px 14px 18px 18px;background:linear-gradient(178deg,#6bc3f3 0%,#43a8e7 44%,#238bd7 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.58),inset 0 -9px 18px rgba(20,112,185,.12),0 2px 2px rgba(29,106,166,.08)}.folder-front:before{content:"";position:absolute;left:8%;right:8%;top:8%;height:42%;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.22),transparent);filter:blur(4px)}.archive-folder:hover .folder-shape{filter:drop-shadow(0 17px 14px rgba(49,105,157,.24)) saturate(1.04) brightness(1.03);transform:translateY(-3px) rotate(-1.5deg) scale(1.025)}.archive-folder.active .folder-shape{background:none;transform:translateY(-3px);filter:drop-shadow(0 16px 14px rgba(49,105,157,.23)) saturate(1.06)}.archive-folder.active .folder-front{background:linear-gradient(178deg,#7acef6 0%,#4db0ea 43%,#2b91d9 100%)}
@media(max-width:850px){.folder-shape{width:102px;height:76px;margin:8px 0 17px}.folder-back{border-radius:11px 12px 13px 13px}.folder-front{border-radius:10px 11px 14px 14px}}

/* User-selected macOS folder asset */
.folder-shape.folder-image{width:clamp(105px,10.4vw,146px);height:clamp(89px,8.9vw,124px);margin:2px 0 14px;background:url("assets/folder.svg") center/contain no-repeat;filter:none;isolation:auto}.archive-folder:hover .folder-shape.folder-image{background:url("assets/folder.svg") center/contain no-repeat;filter:brightness(1.035) saturate(1.025) drop-shadow(0 13px 12px rgba(49,105,157,.14));transform:translateY(-4px) scale(1.025)}.archive-folder.active .folder-shape.folder-image{background:url("assets/folder.svg") center/contain no-repeat;filter:drop-shadow(0 12px 11px rgba(49,105,157,.12));transform:translateY(-3px)}
@media(max-width:850px){.folder-shape.folder-image{width:112px;height:95px;margin:0 0 12px}}

/* Left-align the compact contact panel and remove empty status space. */
.contact-links{width:100%;align-items:flex-start;justify-content:center;text-align:left;gap:11px}.contact-links a{display:block;width:100%;text-align:left}.download-status:empty{display:none}.download-status:not(:empty){display:block;width:100%;text-align:left}
@media(max-width:850px){.contact-row{align-items:start;grid-auto-rows:max-content}.contact-links{align-self:start;padding:16px 24px;gap:12px}}

/* Content-density and ambient-layer refinement */
.work .section-heading>p:last-child{max-width:380px;font-size:18px;line-height:1.55}.work-browser p{font-size:15px;line-height:1.55}.browser-label{font-size:11px}.field-grid{align-items:start}.field-card{align-self:start}
@media(min-width:851px){.project-media img{height:min(31vw,370px)}.project[aria-expanded="true"] .project-detail{padding-top:30px;padding-bottom:16px;gap:34px}.field-grid{gap:14px}.field-card img,.field-wide img{height:clamp(280px,28vw,350px)}.field-card figcaption{min-height:96px;align-content:start}.field-card.reveal{transform:translateY(18px)}.field-card.reveal.visible{transform:none}}

/* Scroll-triggered metric count sequence */
.metric strong{font-variant-numeric:tabular-nums}.metric strong.counting{will-change:transform,filter,opacity;animation:metricCountIn 1.65s cubic-bezier(.16,1,.3,1) both}.metric strong.counted{animation:metricCountSettle .38s cubic-bezier(.16,1,.3,1)}
@keyframes metricCountIn{0%{opacity:.15;transform:translateY(20px) scale(.965);filter:blur(7px)}28%{opacity:1;filter:blur(0)}72%{transform:translateY(-3px) scale(1.012)}100%{opacity:1;transform:none;filter:blur(0)}}
@keyframes metricCountSettle{0%{transform:translateY(-3px) scale(1.012)}100%{transform:none}}
@media(prefers-reduced-motion:reduce){.metric strong.counting,.metric strong.counted{animation:none}}

/* Balanced capability tag grid — prevents a single orphaned final tag. */
.skill-cloud{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;max-width:none;margin:70px auto 0;padding:0}.skill-cloud span{display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;padding:10px 12px;text-align:center;white-space:nowrap}
@media(max-width:1150px){.skill-cloud{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.skill-cloud{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:52px}.skill-cloud span{min-height:42px;padding:9px 8px;white-space:normal;line-height:1.35}}

/* Full Notion portfolio archive media treatments */
.field-card.field-logo img{object-fit:contain;background:rgba(255,255,255,.72);padding:42px}.field-card-art{height:350px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;overflow:hidden}.blocore-art{position:relative;background:radial-gradient(circle at 72% 24%,rgba(176,210,236,.34),transparent 30%),linear-gradient(145deg,#171717,#533a33);color:#fff}.blocore-art:before{content:"";position:absolute;width:210px;height:210px;border:1px solid rgba(255,255,255,.15);border-radius:50%;left:-55px;bottom:-95px}.blocore-art span{font-size:clamp(34px,4vw,58px);font-weight:500;letter-spacing:-.06em}.blocore-art small{font:400 9px var(--mono);letter-spacing:.12em;color:var(--pale-blue)}
@media(max-width:850px){.field-card.field-logo img{padding:32px}.field-card-art{height:290px}.blocore-art span{font-size:42px}}

/* Final section rhythm and continuous ambient temperature */
.field-heading h2{line-height:1.04}
.bridge p{width:100%;max-width:1680px}
.contact{
  background-image:
    radial-gradient(circle 38vmax at var(--temperature-x,72vw) var(--temperature-y,36vh),var(--temperature-contact-color,rgba(176,210,236,.78)) 0%,rgba(220,182,174,.34) 27%,rgba(100,142,192,.08) 52%,transparent 72%),
    linear-gradient(135deg,rgba(100,142,192,.78) 0%,rgba(132,157,187,.74) 100%);
  background-attachment:fixed;
}
@media(max-width:850px){.field-heading h2{line-height:1.02}.bridge p{width:100%;max-width:none}.contact{background-attachment:scroll}}
@media(prefers-reduced-motion:reduce),(hover:none){.contact{background-image:linear-gradient(135deg,rgba(100,142,192,.82) 0%,rgba(132,157,187,.8) 100%)}}

/* Preserve breathing room between the upper glass orb and portrait. */
.orb-one{right:calc(5% + 178px)}
@media(max-width:850px){.orb-one{right:calc(4% + 106px)}}

/* Large display copy enters with a deliberate editorial reveal on scroll. */
.scroll-title{
  opacity:0;
  clip-path:inset(0 0 22% 0);
  transform:translate3d(0,72px,0) scale(.985);
  filter:blur(8px);
  transform-origin:left bottom;
  will-change:transform,opacity,clip-path,filter;
  transition:
    opacity .75s cubic-bezier(.16,1,.3,1) var(--title-delay,0ms),
    transform 1.05s cubic-bezier(.16,1,.3,1) var(--title-delay,0ms),
    clip-path 1.05s cubic-bezier(.16,1,.3,1) var(--title-delay,0ms),
    filter .8s ease var(--title-delay,0ms);
}
.scroll-title.title-visible{opacity:1;clip-path:inset(-.2em 0 -.28em 0);transform:none;filter:blur(0)}
@media(max-width:850px){.scroll-title{transform:translate3d(0,46px,0) scale(.99);filter:blur(5px)}}
@media(prefers-reduced-motion:reduce){.scroll-title{opacity:1;clip-path:none;transform:none;filter:none;transition:none}}

/* Let logo artwork sit directly on the Evidence section instead of a white canvas. */
.field-card.field-logo{background:transparent;border-color:transparent}
.field-card.field-logo img{background:transparent}
.field-card.field-logo figcaption{
  background:rgba(250,248,245,.72);
  border:1px solid rgba(83,58,51,.12);
  border-top:0;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

/* Open up the capabilities composition and give the headline room to breathe. */
.cap-copy{
  grid-template-columns:minmax(0,1.65fr) minmax(300px,.65fr);
  grid-template-areas:"label label" "title summary";
  column-gap:clamp(54px,8vw,150px);
  row-gap:clamp(54px,6vw,96px);
  align-items:end;
}
.cap-copy .eyebrow{
  grid-area:label;
  margin:0;
  padding-bottom:20px;
  border-bottom:1px solid rgba(83,58,51,.2);
}
.cap-copy h2{
  grid-area:title;
  margin:0;
  max-width:none;
  font-size:clamp(56px,6.35vw,102px);
  line-height:.98;
  letter-spacing:-.065em;
}
.cap-copy h2 span{display:block;white-space:nowrap}
.cap-copy h2 span:last-child{margin-left:clamp(34px,5vw,92px)}
.cap-copy>p:last-child{
  grid-area:summary;
  max-width:470px;
  margin:0 0 8px;
  font-size:clamp(17px,1.65vw,24px);
  line-height:1.5;
}
.language-cards{margin-top:clamp(82px,8vw,128px)}
@media(max-width:850px){
  .cap-copy{grid-template-columns:1fr;grid-template-areas:"label" "title" "summary";row-gap:34px}
  .cap-copy h2{font-size:14vw;line-height:1.02}
  .cap-copy h2 span{white-space:normal}
  .cap-copy h2 span:last-child{margin-left:0}
  .cap-copy>p:last-child{max-width:94%;margin-top:8px}
  .language-cards{margin-top:62px}
}

/* Balance the positioning statement around the page center axis. */
.bridge p{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
  text-wrap:balance;
}

/* Preserve italic descenders below large editorial headings. */
.section-heading h2{padding-bottom:.16em;margin-bottom:-.16em}

/* Remove the dark canvas around logos in expanded project details. */
.project-media.logo-media{background:transparent}

/* Never crop descenders in the long positioning statement. */
.bridge p.scroll-title,.bridge p.scroll-title.title-visible{
  clip-path:none;
  padding-bottom:.2em;
}

/* Global safeguard: display-title motion must never crop glyph outlines. */
.scroll-title,.scroll-title.title-visible{clip-path:none}
.cap-copy h2.scroll-title{padding-bottom:.2em;margin-bottom:-.2em}

/* Protect the final-line descenders in the Evidence heading. */
.field-heading h2.scroll-title{padding-bottom:.2em;margin-bottom:-.2em}

/* Keep the primary hero action optically centered. */
.primary-action{justify-content:center;text-align:center}

/* Denser Evidence grid: more projects visible without oversized cards. */
@media(min-width:1101px){
  .field-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .field-card img,.field-wide img{height:clamp(220px,18vw,300px)}
  .field-card-art{height:clamp(220px,18vw,300px)}
  .field-card figcaption{min-height:100px;padding:16px}
}

/* Pull the capabilities headline and summary toward a shared center axis. */
@media(min-width:851px){
  .cap-copy h2{position:relative;left:clamp(18px,2vw,42px)}
  .cap-copy>p:last-child{position:relative;right:clamp(18px,2vw,42px)}
  .overview-body{padding-top:clamp(72px,6vw,92px)}
}

/* Let the profile content reach the same outer edge as the headline. */
@media(min-width:851px){
  .overview-body{width:100%;max-width:none}
  .overview-body>p{max-width:none}
}

/* Purpose-built 16:9 brand thumbnails fill the media area without logo padding. */
.field-card.field-brand-thumbnail img{padding:0;background:transparent;object-fit:cover}

/* Final responsive rhythm: keep the complete hero visible on shorter desktop screens. */
@media(min-width:851px) and (max-height:820px){
  .hero-profile{min-height:100svh;padding-top:88px;padding-bottom:28px}
  .hero-name{margin:24px 0 14px}
  .professional-title{font-size:clamp(58px,7.2vw,106px);line-height:.9;margin-bottom:22px}
  .hero-summary{max-width:720px;font-size:clamp(16px,1.35vw,20px);line-height:1.4}
  .hero-actions{margin-top:22px}
  .portrait-card{max-width:350px}
}

/* Preserve a clear bottom-right contact zone in the final collage. */
@media(min-width:851px){
  .slice-ama{right:10%}
  .note-two{right:10%}
}

/* Center and balance the three-part Evidence heading composition. */
.field-heading{align-items:center}
.field-heading>.eyebrow{justify-self:center;text-align:center}
.field-heading h2{text-align:center}
.field-heading>p:last-child{justify-self:center}
@media(max-width:850px){
  .field-heading{align-items:start}
  .field-heading>.eyebrow,.field-heading h2,.field-heading>p:last-child{justify-self:start;text-align:left}
}


/* Leo / 2026 — résumé content and responsive adaptations. */
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-500.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-600.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:'DM Mono';src:url('assets/fonts/dm-mono-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--sans:'Manrope','PingFang SC','Microsoft YaHei',sans-serif;--mono:'DM Mono','PingFang SC','Microsoft YaHei',monospace}
[hidden]{display:none!important}
section[id],article[id]{scroll-margin-top:90px}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:6px}
.skip-link{position:fixed;top:12px;left:16px;z-index:100;padding:14px 20px;background:var(--ink);color:white;transform:translateY(-160%)}
.skip-link:focus{transform:none}
.reveal{opacity:1;transform:none}
.js .reveal:not(.visible){opacity:0;transform:translateY(28px)}
.hero-profile{column-gap:5vw;padding-bottom:88px}
.hero-summary{max-width:720px;line-height:1.65;font-size:clamp(16px,1.3vw,20px);letter-spacing:0}
.hero-scroll{position:absolute;bottom:30px;left:3vw;display:flex;align-items:center;gap:26px;font:10px var(--mono);text-transform:uppercase;letter-spacing:.08em}
.hero-scroll span{font:20px var(--sans)}
.identity-art{aspect-ratio:4/5;position:relative;overflow:hidden;background:#b4c9dd;color:var(--ink);padding:24px;isolation:isolate}
.identity-art:before{content:'';position:absolute;width:106%;aspect-ratio:1;border-radius:50%;left:29%;top:33%;background:radial-gradient(circle at 20% 35%,#ede9de 0%,#d5dad9 32%,#95b7d5 70%);box-shadow:-22px 12px 70px #7da6c052;z-index:-1}
.identity-grid{position:absolute;inset:0;z-index:-2;background-image:linear-gradient(#ffffff28 1px,transparent 1px),linear-gradient(90deg,#ffffff28 1px,transparent 1px);background-size:38px 38px}
.identity-top{font:9px/1.6 var(--mono);letter-spacing:.08em;position:absolute;top:26px;left:24px}
.identity-cn{position:absolute;left:23px;top:31%;font:400 clamp(38px,4vw,58px)/1.15 'Songti SC','STSong',serif;letter-spacing:.08em}
.identity-leo{position:absolute;left:17px;bottom:19%;font:italic 400 clamp(100px,13vw,186px)/.8 Georgia,serif;letter-spacing:-.09em}
.identity-leo span{display:inline-block;color:#648ec0;font:normal 70px/1 Georgia,serif;vertical-align:top;margin:0 0 0 20px;transform:rotate(-15deg)}
.identity-orbit{position:absolute;width:62%;aspect-ratio:1;right:-8%;top:5%;transform:rotate(-25deg)}
.identity-orbit i{position:absolute;inset:5% 0;border:1px solid #f4f4ebbf;border-radius:50%;transform:rotate(28deg)}
.identity-orbit i:nth-child(2){inset:20% -5%;transform:rotate(-24deg)}
.identity-orbit i:nth-child(3){inset:-5% 20%;transform:rotate(24deg)}
.identity-bottom{position:absolute;left:24px;right:24px;bottom:23px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #533a3340;padding-top:18px;font:8px var(--mono);letter-spacing:.02em}
.identity-bottom b{font-size:26px;font-weight:400}
.portrait-caption{font-family:var(--sans);font-size:11px;line-height:1.6}
.section-side-note{float:right;font:11px var(--sans);letter-spacing:.02em;text-transform:none;opacity:.72}
.metric strong::before,.metric:first-child strong::before{content:attr(data-prefix);font-size:.36em;vertical-align:top;margin-right:3px}
.metric strong::after{content:attr(data-suffix);font-size:.38em;vertical-align:top;margin-left:4px}
.metric-note{font:11px/1.7 var(--sans);opacity:.65;margin:28px 0 0}
.overview-body p{line-height:1.75}
.overview-facts strong{line-height:1.7}
.project-title{min-width:0}
.project h3{font-size:clamp(27px,3.4vw,52px);letter-spacing:-.045em}
.project-title>p{line-height:1.7!important}
.project-toggle{border:0;border-radius:50%;width:40px;height:40px;background:transparent;display:grid;place-items:center;cursor:pointer;padding:0;justify-self:end}
.project-toggle:hover{background:#648ec01a}
.project-arrow{grid-column:auto;grid-row:auto}
.project[aria-expanded=true] .project-detail{max-height:1600px}
.detail-lead{font-size:clamp(17px,1.55vw,22px);line-height:1.8;letter-spacing:0}
.project-detail ul{font-size:14px;line-height:1.95}
.project-detail li+li{margin-top:7px}
.project-media{margin-top:0}
.project-media img{object-fit:contain;background:#dbe3e7}
.field-card img{height:auto;aspect-ratio:1.6;object-fit:cover}
.field-card figcaption{line-height:1.6}
.field-card figcaption span{font-size:16px}
.field-card figcaption b{font-size:8px}
.campus-art{position:relative;grid-column:1/-1;min-height:330px;padding:42px;background:#b9c8be;overflow:hidden}
.campus-art>span{display:block;font:500 clamp(45px,6vw,86px)/.95 var(--sans);letter-spacing:-.07em;position:relative;z-index:1}
.campus-art em{font-family:Georgia,serif;font-weight:400}
.campus-art b{display:block;margin-top:30px;font:11px var(--mono)}
.campus-art i{position:absolute;right:5%;top:20%;font:normal 180px/1 var(--sans);color:#e5e7d8}
.about-note{max-width:800px;margin:70px 0 0 auto;font-size:17px;line-height:1.9;color:#7b6861}
.bridge p{font-size:clamp(28px,3.5vw,52px);line-height:1.65;letter-spacing:-.025em}
.bridge em{font-family:'Songti SC','STSong',serif}
.cap-copy h2{font-size:clamp(45px,5.1vw,82px);left:0}
.cap-copy h2 span{white-space:normal}
.cap-copy h2 span:last-child{margin-left:clamp(20px,3vw,48px)}
.cap-copy>p:last-child{line-height:1.75;right:0;font-size:18px}
.language strong{font-size:clamp(20px,2.7vw,40px);font-weight:500}
.language>p{font:9px/1.5 var(--mono);margin:14px 0 0}
.skill-cloud span{white-space:normal;font-size:11px}
.contact h2{max-width:78%;font-size:clamp(64px,9.3vw,145px);line-height:1.04}
.contact-mail{font-size:clamp(19px,2.4vw,36px);overflow-wrap:anywhere;letter-spacing:-.04em}
.contact-links button{background:none;border:0;padding:0;text-align:left;font:inherit;cursor:pointer;color:inherit;line-height:1.6}
.contact-links button:hover{text-decoration:underline;text-underline-offset:5px}
#contact-status{font:11px/1.6 var(--sans);min-height:18px;color:white}
@media(min-width:851px) and (max-height:820px){.hero-profile{padding-bottom:70px}.hero-summary{line-height:1.65}}
@media(max-width:1100px) and (min-width:851px){.professional-title{font-size:7.1vw}.hero-profile{grid-template-columns:minmax(0,1.45fr) minmax(260px,.65fr);gap:3vw}.identity-leo{font-size:135px}.identity-leo span{font-size:48px;margin-left:14px}.cap-copy{grid-template-columns:1.6fr 1fr;column-gap:40px}.cap-copy h2{font-size:5vw}}
@media(max-width:850px){
 .hero-profile{grid-template-columns:1fr;padding:105px 18px 78px;gap:52px;min-height:auto}
 .hero-name{margin:32px 0 22px}.hero-kicker{font-size:9px;letter-spacing:.02em}
 .professional-title{font-size:clamp(48px,10.8vw,87px);line-height:.96;margin:0 0 24px}
 .hero-summary{font-size:15px;line-height:1.9;max-width:580px}
 .hero-actions{gap:22px;margin-top:28px;font-size:9px;flex-wrap:wrap}.primary-action{min-width:200px}
 .portrait-card{width:78%;max-width:340px;margin:0 0 0 auto}.identity-leo{font-size:clamp(110px,32vw,160px)}.identity-leo span{font-size:54px}.identity-cn{font-size:40px}
 .hero-scroll{left:18px;bottom:28px;font-size:8px}
 .section-side-note{display:none}.metric{min-height:185px;padding-left:14px!important;padding-right:8px;gap:20px}.metric strong{font-size:14vw}.metric span{font-size:9px}.metric-note{font-size:10px}
 .section-heading h2{font-size:15vw}.field-heading h2{font-size:14vw}
 .project-toggle{grid-column:2;grid-row:1;width:32px;height:40px}.project h3{font-size:clamp(25px,6.7vw,42px)}
 .project-detail{margin-left:-18px;margin-right:-18px;grid-template-columns:1fr;padding-left:18px!important;padding-right:18px!important}
 .project[aria-expanded=true] .project-detail{max-height:1800px;gap:24px}
 .project-detail ul{font-size:13px;line-height:1.95}.detail-lead{font-size:17px}
 .project-media img{height:auto;min-height:0;aspect-ratio:1.6}.project-media figcaption{font-size:8px}
 .campus-art{min-height:250px;padding:28px}.campus-art>span{font-size:48px}.campus-art i{font-size:120px;top:37%}
 .bridge p{text-align:left;font-size:clamp(22px,5.5vw,42px);line-height:1.9;padding:0}.bridge{padding:70px 18px}
 .about-note{font-size:15px;margin-top:42px}.overview-facts strong{font-size:12px}.overview-lead{font-size:22px!important}.overview-body p{font-size:15px}
 .cap-copy h2{font-size:12.3vw;left:0}.cap-copy h2 span:last-child{margin-left:0}.cap-copy>p:last-child{font-size:16px}
 .language-cards{gap:8px}.language{min-height:180px;padding:15px 10px}.language strong{font-size:19px}.language>p{font-size:7px;overflow-wrap:anywhere}
 .contact{padding-top:95px}.contact h2{max-width:100%;font-size:13vw;line-height:1.13;letter-spacing:-.055em;margin:10vh 0 14vh}
 .contact-mail{font-size:clamp(18px,5vw,30px)}.contact-links{padding:20px}.contact-collage{opacity:.25}.slice-event{top:52%;right:6%}.slice-profile{top:33%}
 .contact-row{gap:30px}.source-note{font:10px/1.8 var(--sans)}
}
@media(prefers-reduced-motion:reduce){.js .reveal:not(.visible){opacity:1;transform:none}}
@media print{.skip-link,.temperature-field,.hero-scroll,.project-toggle{display:none!important}.js .reveal:not(.visible){opacity:1;transform:none}.scroll-title{opacity:1;transform:none;filter:none}}

/* Verified phone layout: preserve the identity card and detail gutters. */
@media(max-width:850px){
 .hero-profile{display:grid}
 .portrait-card{display:block;grid-template-columns:none;margin-top:0}
 .project,.project:hover{grid-template-columns:minmax(0,1fr) 32px;padding:23px 18px;gap:20px}
 .project-detail,.project[aria-expanded=false] .project-detail,.project[aria-expanded=true] .project-detail{min-width:0;width:auto;margin-left:0;margin-right:0;padding-left:18px!important;padding-right:18px!important}
 .project-detail>*{min-width:0}
 .project-media{max-width:100%}
}
#contact-status{text-transform:none}
.field-card-link:after{content:'View project ↗'}

/* Detail pass / 2026-10-16 — consistent rhythm, controls and small-screen polish. */
:root{--gutter:clamp(24px,3vw,64px);--ease:cubic-bezier(.22,1,.36,1)}
::selection{color:#fff;background:#648ec0}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,a{touch-action:manipulation}
button:focus-visible,a:focus-visible{outline:2px solid #3f6b9c;outline-offset:5px}
.site-header{min-height:66px;border-bottom:1px solid #533a3310;padding:14px var(--gutter);background:rgba(242,239,235,.9);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);mix-blend-mode:normal;color:var(--ink)}
.site-header .brand{letter-spacing:-.04em}
.site-header nav a{display:flex;align-items:center;min-height:36px;font-size:10px;letter-spacing:.07em}
.site-header nav a[aria-current=location]{color:#3f6b9c}
.site-header nav a[aria-current=location]:after{right:0;bottom:1px;background:#648ec0}
.availability{font-size:10px;letter-spacing:.05em}
.nav-toggle,.mobile-nav{display:none}
.hero-profile{padding-left:var(--gutter);padding-right:var(--gutter);grid-template-columns:minmax(0,1.7fr) minmax(280px,.67fr);column-gap:5vw}
.hero-copy{min-width:0}
.hero-kicker{font-size:10px;letter-spacing:.08em}
.hero-name{font-size:25px;letter-spacing:-.035em;margin:32px 0 24px}
.professional-title{font-size:clamp(62px,7.5vw,126px);line-height:.92;letter-spacing:-.068em;margin-bottom:28px}
.hero-title .line{overflow:visible;padding:0 0 .13em;margin:0}
.hero-title .line>span{animation-duration:1.05s}
.hero-summary{max-width:670px;font-size:clamp(16px,1.25vw,19px);line-height:1.85;color:#67534d}
.hero-actions{gap:30px;margin-top:30px}
.hero-actions a{min-height:48px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;letter-spacing:.045em}
.primary-action{min-width:220px;padding:17px 23px;background:#6488b0;transition:background .2s,transform .25s var(--ease),box-shadow .25s}
.primary-action:hover{background:#5076a3;box-shadow:0 7px 18px #4c709426;transform:translateY(-2px)}
.primary-action:active{transform:none}
.hero-actions>a:not(.primary-action){border-bottom:1px solid #533a332e;transition:color .2s,border-color .2s}
.hero-actions>a:not(.primary-action):hover{color:#476f9d;border-color:#648ec0}
.portrait-card{width:100%;max-width:360px;box-shadow:0 14px 42px #594c4010;border:1px solid #533a3314;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.identity-art{container-type:inline-size}
.identity-leo{font-size:clamp(115px,43cqw,165px);left:6%;bottom:22%;white-space:nowrap}
.identity-leo span{font-size:.37em;margin-left:.25em}
.identity-cn{top:32%;font-size:clamp(38px,14cqw,52px);left:7%}
.portrait-caption{border:0;padding:19px 22px;gap:7px;font-size:11px;letter-spacing:0;text-transform:none;background:#f0eeea}
.hero-scroll{left:var(--gutter);font-size:9px;color:#7e7069}
.hero-scroll span{transition:transform .25s}.hero-scroll:hover span{transform:translateY(4px)}
.proof,.profile-overview,.work,.field-notes,.about,.capabilities,.contact{padding-left:var(--gutter);padding-right:var(--gutter)}
.eyebrow{font-size:10px;letter-spacing:.11em;line-height:1.7}
.proof{padding-top:76px;padding-bottom:70px;background:#6b8fb6}
.proof>.eyebrow{padding-bottom:22px;margin-top:0}
.metric{padding-top:30px;padding-bottom:24px;min-height:205px;gap:26px}
.metric strong{font-size:clamp(56px,6.7vw,100px);letter-spacing:-.065em}
.metric strong:after{animation:none}
.metric span{font-size:11px;line-height:1.85;margin:0;letter-spacing:.025em}
.metric-note{opacity:.88;font-size:11px;margin-top:25px}
.profile-overview{padding-top:105px;padding-bottom:105px;align-items:start}
.overview-intro h2{line-height:1.03;letter-spacing:-.055em}
.overview-body{padding-top:53px}
.overview-facts div{min-height:105px;padding:20px;border-radius:3px}
.overview-facts div>span{font-size:10px;line-height:1.7;letter-spacing:.04em}
.overview-facts strong{font-size:13px;font-weight:500}
.work,.about{padding-top:110px;padding-bottom:110px}
.section-heading{margin-bottom:64px;column-gap:32px}
.section-heading h2{font-size:clamp(58px,6.5vw,110px);line-height:.95;letter-spacing:-.065em}
.work .section-heading>p:last-child{font-size:15px;line-height:1.85;max-width:290px;color:#79645d}
.work-browser{padding:22px 25px;border-radius:8px;margin-bottom:30px;gap:24px}
.browser-label{font-size:10px}.work-browser p{font-size:13px;margin:8px 0 0;line-height:1.7;color:#72655f}
.filter-buttons{gap:8px}
.filter-button{min-height:42px;padding:10px 17px;font-size:11px;line-height:1.4;animation:none!important;transition:background .2s,color .2s,border-color .2s,box-shadow .2s;box-shadow:none}
.filter-button:not(.active){color:#6b5650;background:#f4f2eea6;border-color:#533a3329}
.filter-button:not(.active):hover{background:#e5edf2;border-color:#8ba9c6;transform:none}
.filter-button.active{background:#668bb4;color:#fff;border-color:#668bb4;box-shadow:0 2px 6px #36536c18}
.project,.project:hover{grid-template-columns:44px minmax(0,1fr) 184px 44px;padding:30px 0;gap:22px;transition:background .25s}
.project:hover{background:rgba(132,157,187,.06)}
.project h3{font-size:clamp(28px,3.15vw,46px);font-weight:500;letter-spacing:-.045em;line-height:1.3;transition:color .25s}
.project-title>p{font-size:13px!important;line-height:1.8!important;color:#7b6962!important;margin-top:7px!important}
.project-index{font-size:10px;color:#8c7b72}.project-meta{font-size:9px;line-height:1.9;color:#8a7970;letter-spacing:.03em}
.project-toggle{width:44px;height:44px;min-height:44px;border:1px solid #533a331c;background:#f2efeb50;transition:background .2s,border-color .2s}
.project-toggle:hover,.project[aria-expanded=true] .project-toggle{background:#e1e9ee;border-color:#9cb6cd}
.project[aria-expanded=true] h3{color:#557da8}
.project-detail{grid-column:2/-2;cursor:auto;box-shadow:none;border-radius:6px;border:1px solid #fff9;background:#ffffff70;gap:34px}
.project[aria-expanded=true] .project-detail{padding:30px 28px 28px;gap:30px}
.detail-lead{font-size:18px;line-height:1.9;color:#66534d}.detail-lead b{color:#3f617f;font-weight:600}
.project-detail ul{font-size:13px;line-height:1.95;color:#76625b}
.detail-lead:before,.project-detail ul:before{font-size:9px;letter-spacing:.1em;margin-bottom:13px;color:#6c8caa}
.project-media{border-radius:3px;overflow:hidden}
.project-media img{display:block;width:100%;height:auto!important;aspect-ratio:1.6;object-fit:contain}
.project-media figcaption{font-size:8px;padding:7px 10px;color:#68564e}
.field-notes{padding-top:105px;padding-bottom:100px}
.field-heading{grid-template-columns:.9fr 2fr .9fr;gap:32px;margin-bottom:65px}
.field-heading>.eyebrow{justify-self:start;text-align:left}
.field-heading h2{font-size:clamp(58px,6vw,96px);line-height:1.03;letter-spacing:-.06em;text-align:left}
.field-heading>p:last-child{font-size:14px;line-height:1.9;color:#5b7182;max-width:240px}
.evidence-archive{border-radius:12px;box-shadow:0 16px 45px #446e9810;margin-bottom:30px}
.archive-folders{padding:24px 20px 20px;gap:15px}
.archive-folder{border-radius:9px;padding:15px 12px;transition:background .25s,border-color .25s,box-shadow .25s}
.archive-folder strong{font-size:12px;font-weight:500}.archive-folder small{font-size:9px;letter-spacing:.06em;margin-top:7px}
.archive-folder.active{box-shadow:0 8px 22px #335a7b0d;background:#f7fbfd65}
.archive-status{height:auto;min-height:42px;padding-top:10px;padding-bottom:10px}.archive-status p{font-size:10px}
.field-grid{gap:20px;align-items:stretch}
.field-card{display:flex;flex-direction:column;align-self:stretch;border-radius:5px;border:1px solid #ffffff4d;background:#f9f7f2bd;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.field-card img{height:auto;aspect-ratio:1.6;object-fit:cover;transition:transform .65s var(--ease)}
.field-card figcaption{padding:20px 18px;min-height:116px;gap:8px 12px;flex:1;grid-template-columns:minmax(0,1fr) auto}
.field-card figcaption span{font-size:16px;font-weight:500;letter-spacing:-.02em}
.field-card figcaption p{font-size:12px;line-height:1.8;color:#7b7068;max-width:100%}
.field-card figcaption b{font-size:8px;align-self:center;letter-spacing:.04em;color:#8d8179}
.field-card-link{border-radius:5px;outline-offset:4px}
.field-card-link:after{font-size:9px;letter-spacing:.04em;padding:9px 12px;background:#f5f2ecf2;color:#65524a;border:1px solid #ffffff70;border-radius:2px}
.field-card-link:focus-visible:after{opacity:1;transform:none}
.source-note{font-size:10px;line-height:1.9;color:#5a748b;letter-spacing:.02em;text-transform:none}
.bridge{padding:90px var(--gutter)}
.bridge p{font-size:clamp(27px,3.1vw,48px);line-height:1.75;margin:0;letter-spacing:0}
.timeline-item{padding:30px 0;gap:30px}
.timeline-item time{font-size:10px;color:#8b776e;line-height:1.7}
.timeline-item h3{font-size:21px;font-weight:500;line-height:1.6;letter-spacing:-.01em}
.timeline-item p,.timeline-item>span{font-size:12px;line-height:1.8;color:#7d6a61}
.experience-total strong{font-size:clamp(26px,2.7vw,42px);line-height:1.35}.experience-total span{line-height:1.8}
.about-note{font-size:15px;max-width:760px;line-height:2;margin-top:55px}
.capabilities{padding-top:100px;padding-bottom:100px}
.cap-copy{row-gap:55px}.cap-copy h2{font-size:clamp(46px,5vw,82px);line-height:1.1}
.cap-copy>p:last-child{font-size:16px;line-height:1.9}
.language-cards{margin-top:75px}
.language{min-height:220px;padding:28px 25px;background:#ffffff0f;transition:background .3s}
.language:hover{background:#ffffff26}.language strong{font-size:28px;font-weight:500}.language>span{font-size:30px}.language>p{font-size:9px;letter-spacing:.05em}
.skill-cloud{margin-top:45px;gap:10px}.skill-cloud span{font-size:10px;min-height:42px;animation:none!important;border-color:#533a3328;transition:background .35s,color .35s,border-color .35s,transform .35s}
.skill-cloud span.keyword-active{transform:translateY(-2px);box-shadow:0 6px 16px #4b729815}
.contact{isolation:isolate;padding-top:100px;background-color:#5e7ea2;background-image:radial-gradient(ellipse at 80% 20%,#a4b7cc55,transparent 55%),linear-gradient(125deg,#4d6f94,#7c94b1);background-attachment:scroll;color:#fff}
.contact h2{font-size:clamp(70px,9.2vw,148px);line-height:.99;letter-spacing:-.065em;max-width:76%;margin:65px 0 32px;padding-top:0;position:relative;z-index:2}
.contact-intro{font-size:16px;line-height:1.85;color:#f0f4f8;max-width:580px;margin:0 0 68px;position:relative;z-index:2}
.contact-row{grid-template-columns:minmax(0,1.3fr) minmax(290px,.8fr);gap:7vw;align-items:start;margin-bottom:80px}
.contact-mail{position:relative;display:flex;flex-direction:column;gap:18px;padding:18px 40px 24px 0;border-bottom:1px solid #ffffff65;letter-spacing:0;transition:border-color .25s}
.contact-mail:hover{border-bottom-color:#fff}
.contact-mail strong{font-size:clamp(22px,2.6vw,40px);font-weight:400;letter-spacing:-.045em;line-height:1.4}
.contact-mail>b{position:absolute;right:0;bottom:27px;font-size:26px;font-weight:400;transition:transform .25s}
.contact-mail:hover>b{transform:translate(3px,-3px)}
.contact-action-label,.contact-mail .contact-action-label{font:400 9px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#e0eaf4;display:block}
.contact-links{gap:0;padding:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;font-family:var(--sans);text-transform:none}
.contact-links>a,.contact-links>button{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;min-height:59px;padding:15px 0;border:0;border-bottom:1px solid #ffffff35;border-radius:0;color:#fff;transition:background .25s,border-color .25s;line-height:1.5;text-align:left;letter-spacing:0}
.contact-links>a:hover,.contact-links>button:hover{background:#ffffff0b;text-decoration:none;border-color:#ffffffa6}
.contact-links strong{font-size:14px;font-weight:400;letter-spacing:0}
.contact-links b{font:400 12px/1.4 var(--mono)}
.contact-links>button.is-copied{background:#e4f0f21c}.contact-links>button.is-copied b{color:#edf9dc}
#contact-status{min-height:35px;padding-top:11px;line-height:1.7;font-size:11px;color:#edf3fa;text-transform:none}
.contact-collage{z-index:1;pointer-events:none;opacity:.67}
.contact-slice{box-shadow:0 18px 40px #203e5d25}.slice-profile{right:5%;top:20%;width:145px;height:175px}.slice-event{right:13%;top:39%;width:165px;height:105px}.slice-ama{display:none}
.orb-one{right:22%;top:24%;width:100px;height:100px}.orb-two{right:6%;top:50%;width:66px;height:66px}.collage-note{display:none}
.contact footer{font-size:9px;letter-spacing:.04em;padding-top:24px;border-color:#ffffff35;line-height:1.8}
.contact footer a{min-height:36px;display:inline-flex;align-items:center;justify-content:flex-end}
.floating-contact-button{right:25px;bottom:25px;box-shadow:0 8px 25px #533a3320;background:#65514c;height:48px;min-width:88px;font-size:9px;z-index:30}
@media(hover:hover){.portrait-card:hover{transform:translateY(-5px);box-shadow:0 20px 48px #594c4018}.field-card:hover{transform:translateY(-4px);box-shadow:0 16px 32px #335b7c1c}}
@media(min-width:1500px){.hero-profile,.proof,.profile-overview,.work,.field-notes,.about,.capabilities,.contact{padding-left:max(var(--gutter),calc((100vw - 1440px)/2));padding-right:max(var(--gutter),calc((100vw - 1440px)/2))}}
@media(max-width:1100px) and (min-width:851px){
 .site-header nav{gap:22px}.availability{font-size:9px}.hero-profile{grid-template-columns:minmax(0,1.65fr) minmax(255px,.7fr);gap:35px}.professional-title{font-size:7.2vw}
 .project,.project:hover{grid-template-columns:32px minmax(0,1fr) 150px 44px;gap:16px}.project h3{font-size:30px}.project-detail{grid-column:2/-1}
 .work-browser{grid-template-columns:1fr;gap:17px}.filter-buttons{justify-content:flex-start}.section-heading{grid-template-columns:.7fr 1.6fr 1fr;gap:24px}
 .field-heading{grid-template-columns:.7fr 1.8fr 1fr;gap:24px}.field-heading h2{font-size:6.3vw}
 .cap-copy{column-gap:42px}.contact-links>a,.contact-links>button{grid-template-columns:70px minmax(0,1fr) auto;gap:8px}
}
@media(max-width:850px){
 :root{--gutter:24px}
 section[id],article[id]{scroll-margin-top:84px}
 .site-header{grid-template-columns:1fr auto;min-height:64px;height:64px;padding:10px 24px;z-index:45}
 .site-header .desktop-nav,.site-header .availability{display:none}
 .nav-toggle{display:flex;align-items:center;gap:12px;justify-content:flex-end;background:none;border:0;cursor:pointer;min-height:44px;min-width:82px;padding:8px 0 8px 8px;font:10px var(--mono);text-transform:uppercase;letter-spacing:.05em}
 .nav-toggle i{position:relative;display:block;width:19px;height:14px}
 .nav-toggle i:before,.nav-toggle i:after{content:'';position:absolute;right:0;top:3px;width:19px;height:1px;background:currentColor;transition:transform .2s,top .2s}
 .nav-toggle i:after{top:10px;width:13px}.nav-toggle[aria-expanded=true] i:before{transform:rotate(45deg);top:7px}.nav-toggle[aria-expanded=true] i:after{transform:rotate(-45deg);top:7px;width:19px}
 .mobile-nav{display:block;position:fixed;top:74px;left:14px;right:14px;z-index:44;padding:26px 24px 22px;background:#f4f1ecf5;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid #fff;border-radius:12px;box-shadow:0 20px 80px #533a3329}
 .mobile-nav>p{font:9px var(--mono);letter-spacing:.12em;color:#9a877c;margin:0 0 14px}
 .mobile-nav>a{display:grid;grid-template-columns:22px 1fr auto;gap:13px;align-items:center;font-size:23px;letter-spacing:-.02em;padding:17px 0;border-bottom:1px solid #533a331c}
 .mobile-nav>a span{font:9px var(--mono);color:#9a877c}.mobile-nav>a b{font-size:22px;font-weight:400;color:#8d7a70}.mobile-nav>a[aria-current=location]{color:#557da8}
 .mobile-nav>small{display:block;font:9px/1.8 var(--mono);color:#88776c;margin-top:20px}.mobile-nav>small i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#648ec0;margin-right:6px}
 .hero-profile{grid-template-columns:1fr;padding-top:115px;padding-bottom:80px;gap:45px}
 .hero-kicker{font-size:8px;letter-spacing:.045em}.hero-name{font-size:22px;margin:32px 0 25px}
 .professional-title{font-size:clamp(44px,11.9vw,83px);line-height:.98;margin-bottom:25px;letter-spacing:-.065em}
 .hero-title .line{padding-bottom:.1em}.hero-summary{font-size:14px;line-height:1.95}
 .hero-actions{gap:18px;margin-top:27px;flex-wrap:wrap}.hero-actions a{font-size:9px}.primary-action{min-width:190px;padding:15px 18px}
 .hero-actions>a:not(.primary-action){min-width:0;min-height:42px}.portrait-card{display:block;width:80%;max-width:320px;margin:0 0 0 auto}
 .identity-art{aspect-ratio:4/5}.identity-leo{font-size:45cqw}.identity-cn{font-size:14cqw;top:31%}.identity-top{font-size:8px;left:21px}.identity-bottom{left:21px;right:21px;font-size:7px}
 .portrait-caption{font-size:10px;padding:17px 20px;gap:7px}.hero-scroll{font-size:8px;bottom:29px}
 .proof{padding-top:55px;padding-bottom:48px}.proof>.eyebrow{font-size:9px;line-height:1.8;padding-bottom:20px}
 .metric,.metric:not(:first-child){padding:26px 12px!important;min-height:182px;gap:22px}.metric strong{font-size:clamp(48px,14vw,85px);line-height:1}
 .metric span{font-size:10px;line-height:1.75;letter-spacing:0}.metric-note{font-size:10px;line-height:1.9;margin-top:22px}
 .profile-overview,.work,.field-notes,.about,.capabilities{padding-top:74px;padding-bottom:74px}
 .profile-overview{gap:28px}.overview-intro h2{font-size:12vw;line-height:1.05}.overview-body{padding-top:0}.overview-body p{font-size:14px;line-height:1.95}.overview-body .overview-lead{font-size:21px!important;line-height:1.75}
 .overview-facts{gap:10px}.overview-facts div{padding:16px;min-height:110px}.overview-facts div>span{font-size:9px;letter-spacing:0}.overview-facts strong{font-size:12px;line-height:1.8}
 .section-heading{grid-template-columns:1fr;gap:22px;margin-bottom:38px}.section-heading h2{font-size:14vw;line-height:1.04}.section-heading .eyebrow{margin:0}
 .work .section-heading>p:last-child{display:block;margin:0;font-size:13px;line-height:1.85;max-width:100%}
 .work .section-heading>p:last-child br{display:none}
 .work-browser{padding:20px 17px;margin-bottom:22px;gap:18px}.browser-label{font-size:9px;line-height:1.7}.work-browser p{font-size:12px;min-height:40px}
 .filter-buttons{gap:7px}.filter-button{font-size:10px;min-height:42px;padding:10px 13px}
 .project,.project:hover{grid-template-columns:minmax(0,1fr) 44px;gap:18px 10px;padding:26px 0;margin:0}
 .project h3{font-size:clamp(24px,6.4vw,42px);line-height:1.4;letter-spacing:-.035em}.project-title>p{font-size:11px!important;line-height:1.85!important;margin-top:6px!important}
 .project-toggle{width:44px;height:44px;grid-column:2;grid-row:1}.project-arrow{font-size:22px}
 .project-detail{grid-column:1/-1;margin:0!important;width:auto;gap:24px;min-width:0}
 .project[aria-expanded=true] .project-detail{padding:25px 18px 18px;gap:24px}
 .detail-lead{font-size:15px;line-height:1.9}.project-detail ul{font-size:12px;line-height:1.95;padding-left:16px}.project-detail li+li{margin-top:9px}
 .project-media figcaption{font-size:7px;padding:7px}.campus-art{padding:24px;min-height:235px}.campus-art>span{font-size:42px;line-height:1.03}.campus-art b{font-size:9px}.campus-art i{font-size:105px}
 .field-heading{grid-template-columns:1fr;gap:22px;margin-bottom:35px}.field-heading h2{font-size:13.8vw;text-align:left;line-height:1.06}.field-heading>.eyebrow{margin:0}.field-heading>p:last-child{max-width:100%;font-size:13px;line-height:1.9;margin:0}
 .evidence-archive{border-radius:10px;margin-bottom:24px}.archive-folders{padding:14px 10px;gap:6px}.archive-folder{padding:14px 5px}.folder-shape.folder-image{width:96px;height:82px;margin:0 0 10px}
 .archive-folder strong{font-size:10px}.archive-folder small{font-size:8px;margin-top:6px}.archive-status p{font-size:9px;line-height:1.7}.archive-status{min-height:42px}
 .field-grid{grid-template-columns:1fr;gap:20px}.field-card figcaption{padding:18px;min-height:110px;grid-template-columns:minmax(0,1fr) auto}.field-card figcaption span{font-size:16px}.field-card figcaption p{font-size:12px}.field-card figcaption b{grid-row:1;grid-column:2;font-size:7px}
 .source-note{font-size:10px;line-height:1.9;margin-top:20px}
 .bridge{padding:67px var(--gutter)}.bridge p{font-size:clamp(21px,5.35vw,34px);line-height:1.95;text-align:left;text-wrap:pretty}
 .timeline-item{gap:12px;padding:26px 0}.timeline-item time{font-size:10px}.timeline-item h3{font-size:18px;line-height:1.5}.timeline-item p{font-size:12px;margin-top:6px}.timeline-item>span{display:block;font-size:10px}
 .about-note{font-size:14px;line-height:1.95;margin-top:36px}
 .cap-copy{row-gap:29px}.cap-copy h2{font-size:11.3vw;line-height:1.15}.cap-copy>p:last-child{font-size:14px;line-height:1.9;margin-top:0;max-width:100%}
 .language-cards{grid-template-columns:1fr;margin-top:35px;gap:0;border-top:1px solid #533a3326}.language{display:grid;grid-template-columns:44px 1fr;gap:4px 16px;min-height:0;padding:25px 4px;border-right:0;border-top:0;border-bottom:1px solid #533a3326;background:none;align-items:center}
 .language>span{font-size:16px;grid-row:1/3}.language strong{font-size:22px}.language>p{font-size:8px;grid-column:2;margin:3px 0 0;letter-spacing:.06em}
 .skill-cloud{margin-top:30px;gap:8px}.skill-cloud span{font-size:9px;min-height:44px;padding:10px 7px}
 .contact{padding-top:70px;padding-bottom:24px}.contact h2{font-size:15.2vw;line-height:1.06;max-width:100%;margin:50px 0 23px;letter-spacing:-.06em;padding:0}
 .contact-intro{font-size:13px;line-height:1.95;margin:0 0 45px;max-width:100%}.contact-intro br{display:none}
 .contact-row{grid-template-columns:1fr;gap:24px;margin-bottom:45px}.contact-mail{gap:15px;padding:14px 30px 20px 0}.contact-mail strong{font-size:clamp(20px,6.1vw,35px);letter-spacing:-.045em}.contact-mail>b{font-size:22px;bottom:24px}
 .contact-links{padding:0;background:none}.contact-links>a,.contact-links>button{grid-template-columns:77px minmax(0,1fr) auto;gap:10px;min-height:62px;padding:16px 0}.contact-links strong{font-size:13px}.contact-action-label,.contact-mail .contact-action-label{font-size:8px}
 .contact-links b{font-size:11px}#contact-status{min-height:31px;font-size:10px}
 .contact-collage{display:none}.contact footer{grid-template-columns:1fr auto;gap:10px;padding-top:22px;font-size:8px}.contact footer span:nth-child(2){display:none}
 .floating-contact-button{right:16px;bottom:max(16px,env(safe-area-inset-bottom));width:76px;min-width:76px;height:42px;font-size:8px;box-shadow:0 5px 20px #533a3320}.floating-contact-button:hover,.floating-contact-button:focus-visible{width:76px;padding:0 12px}.floating-contact-button .contact-long,.floating-contact-button:hover .contact-long,.floating-contact-button:focus-visible .contact-long{display:none}.floating-contact-button:hover .contact-short,.floating-contact-button:focus-visible .contact-short{display:block}
}
@media(max-width:370px){:root{--gutter:20px}.site-header{padding-left:20px;padding-right:20px}.hero-actions{gap:12px}.primary-action{min-width:176px}.hero-actions a{font-size:8px}.field-card figcaption{grid-template-columns:1fr}.field-card figcaption b{grid-column:1;grid-row:auto}.overview-facts{grid-template-columns:1fr}.metric span{font-size:9px}.project h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.hero-title .line>span{transform:none!important}.js .reveal,.scroll-title{opacity:1!important;transform:none!important;filter:none!important}.field-card:hover,.portrait-card:hover{transform:none}}
@media print{.nav-toggle,.mobile-nav,.floating-contact-button{display:none!important}.project-detail[hidden]{display:grid!important}.project-detail{height:auto!important;max-height:none!important;opacity:1!important}.contact{background:#fff;color:#533a33}.contact *{color:inherit!important}}

/* Final contrast and hit-area details. */
.contact-links>a,.contact-links>button{text-transform:none}
.floating-contact-button.is-in-contact{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px)}
.project:focus-within .project-title h3{color:#557da8}
@media(hover:none){.project:hover{background:transparent}.field-card:hover,.portrait-card:hover{transform:none}.field-card img{transform:none!important}}

/* Keep filter targets comfortably tappable without changing their visual rhythm. */
.filter-button{min-height:44px}
