/* Cursor-tracking character hero only. */

.designer-home .avatar-hero{font-family:'Outfit Hero',var(--body);padding:24px 0 0;margin-bottom:34px;position:relative}.avatar-topline{display:flex;align-items:center;justify-content:space-between;padding:15px 0;font-size:8px;letter-spacing:.1em;color:var(--muted);border-top:1px solid var(--line)}.avatar-composition{position:relative;min-height:565px;background:transparent;border-radius:0;isolation:isolate;overflow:hidden;color:#273221}.avatar-headline{position:absolute;z-index:2;left:33px;top:128px;width:27%;pointer-events:none}.avatar-kicker{font-size:8px;letter-spacing:.07em;color:#6a7561;display:block;max-width:200px;line-height:1.7}.designer-home .avatar-hero h1{font:500 clamp(40px,4vw,56px)/1.12 'Outfit Hero',var(--body);letter-spacing:-.035em;margin:22px 0 26px}.avatar-hero h1 em{font:500 1em/1.12 'Outfit Hero',var(--body);letter-spacing:inherit;color:#718261}.avatar-caption{font-size:10px;letter-spacing:.01em;color:#68735e}.avatar-stage{position:absolute;inset:0 22%;z-index:1;min-width:0;min-height:0}.avatar-stage canvas{width:100%;height:100%;display:block;position:absolute;inset:0;pointer-events:none}.avatar-fallback{width:100%;height:100%;display:block;object-fit:contain}/* Swap complete frames without blending transparent layers over the background. */
.avatar-stage .avatar-fallback{visibility:visible;pointer-events:none}.avatar-stage.is-rendered .avatar-fallback{visibility:hidden}.avatar-stage canvas{visibility:hidden}.avatar-stage.is-rendered canvas{visibility:visible}.avatar-intro{position:absolute;right:32px;top:172px;width:23%;z-index:2}.avatar-wave{display:block;font-size:33px;color:#7b9064;line-height:1;margin-bottom:21px}.avatar-intro h2{font:500 27px/1.2 'Outfit Hero',var(--body);letter-spacing:-.025em;margin:0 0 16px}.avatar-intro p{font-size:14px;line-height:1.65;color:#64705a;max-width:230px;margin:0 0 23px}.avatar-work-link{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px 15px;border-radius:3px;background:#293722;color:#f3f6ec;font-size:12px;font-weight:500;max-width:205px;transition:background .2s,transform .2s}.avatar-work-link span{font-size:20px}.avatar-work-link:hover{background:#435936;transform:translateY(-2px)}.avatar-experience{font-size:8px;letter-spacing:.06em;color:#728065;display:block;margin-top:22px}.avatar-bottomline{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 0 0;color:var(--muted);font-size:7px;letter-spacing:.08em}.avatar-hint span{margin-left:25px;color:var(--ink)}.avatar-pause{font-size:8px;letter-spacing:0;background:none;border:0;border-bottom:1px solid var(--line);color:var(--muted);padding:5px 0;cursor:pointer}.avatar-pause[hidden]{display:none}.avatar-pause span{margin-left:12px}.avatar-pause:hover{color:var(--ink)}
:root[data-theme=dark] .avatar-composition{background:transparent;color:#f0f1e8}:root[data-theme=dark] .avatar-kicker,:root[data-theme=dark] .avatar-caption,:root[data-theme=dark] .avatar-intro p,:root[data-theme=dark] .avatar-experience{color:#b2bea7}:root[data-theme=dark] .avatar-wave{color:#c4d6aa}:root[data-theme=dark] .avatar-work-link{background:#c9dea9;color:#26321e}
@media(max-width:1000px){.avatar-composition{min-height:525px}.avatar-headline{left:25px;top:125px;width:28%}.designer-home .avatar-hero h1{font-size:43px}.avatar-stage{inset:0 18%}.avatar-intro{right:24px;top:175px;width:23%}.avatar-intro h2{font-size:22px}.avatar-intro p{font-size:12px}.avatar-kicker{font-size:6px}.avatar-work-link{font-size:9px;padding:10px}.avatar-wave{font-size:26px}.avatar-experience{font-size:6px}}
@media(max-width:850px){.designer-home .avatar-hero{padding-top:12px;margin-bottom:25px}.avatar-topline{font-size:6px;gap:10px;letter-spacing:.05em}.avatar-topline>span:last-child{font-size:5px}.avatar-composition{min-height:0;height:auto;display:flex;flex-direction:column;padding:25px 22px 28px;overflow:hidden}.avatar-headline{position:relative;left:auto;top:auto;width:100%;text-align:center}.avatar-kicker{font-size:6px;max-width:none}.designer-home .avatar-hero h1{font-size:clamp(37px,9.4vw,51px);line-height:1.12;margin:16px 0 0}.avatar-hero h1 br{display:none}.avatar-hero h1 br::after{content:' '}.avatar-caption{display:none}.avatar-stage{position:relative;inset:auto;height:350px;width:calc(100% + 44px);margin:0 -22px -26px;order:1}.avatar-intro{position:relative;right:auto;top:auto;width:100%;text-align:center;order:2}.avatar-wave{display:none}.avatar-intro h2{font-size:22px;margin:0 0 10px}.avatar-intro p{font-size:11px;max-width:280px;margin:0 auto 17px}.avatar-work-link{margin:auto;max-width:190px;font-size:10px;padding:10px 14px}.avatar-experience{font-size:6px;margin-top:16px}.avatar-bottomline{font-size:6px;align-items:center;letter-spacing:.04em}.avatar-hint{max-width:220px;line-height:1.8}.avatar-hint span{display:block;margin:3px 0 0}.avatar-pause{font-size:7px;white-space:nowrap}.avatar-pause span{margin-left:7px}}

:root[data-theme=dark] .avatar-hero h1 em{color:#b5c99c}
/* Larger type and a shared vertical alignment around the character. */
@media(min-width:851px){
 .avatar-composition{display:grid;grid-template-columns:1.05fr 1.55fr .95fr;align-items:center;gap:28px;overflow:visible}
 .avatar-headline{position:relative;left:auto;top:auto;width:auto;padding-left:0}
 .avatar-stage{position:relative;inset:auto;width:100%;height:565px;align-self:stretch}
 .avatar-intro{position:relative;right:auto;top:auto;width:auto;padding-right:0}
 .designer-home .avatar-hero h1{font-size:clamp(50px,5vw,72px);line-height:1.06;letter-spacing:-.04em;margin:21px 0 24px}
 .avatar-kicker{font-size:10px;line-height:1.6;max-width:260px;letter-spacing:.055em}
 .avatar-caption{font-size:12px;line-height:1.5}
 .avatar-intro h2{font-size:34px;line-height:1.12;margin-bottom:18px}
 .avatar-intro p{font-size:16px;line-height:1.65;max-width:290px;margin-bottom:26px}
 .avatar-work-link{font-size:14px;padding:14px 17px;max-width:245px}
 .avatar-experience{font-size:10px;line-height:1.5;margin-top:23px}
 .avatar-wave{margin-bottom:22px}
}
@media(min-width:851px) and (max-width:1000px){
 .avatar-composition{grid-template-columns:1fr 1.15fr .9fr;gap:18px}
 .avatar-stage{height:525px}
 .designer-home .avatar-hero h1{font-size:clamp(39px,4.7vw,49px)}
 .avatar-kicker{font-size:8px}
 .avatar-caption{font-size:10px}
 .avatar-intro h2{font-size:26px}
 .avatar-intro p{font-size:14px}
 .avatar-work-link{font-size:12px;padding:12px}
 .avatar-experience{font-size:8px}
}
@media(max-width:850px){
 .designer-home .avatar-hero h1{font-size:clamp(43px,11vw,62px);line-height:1.07;margin-top:18px}
 .avatar-kicker{font-size:9px;line-height:1.6}
 .avatar-intro h2{font-size:29px;line-height:1.15;margin-bottom:13px}
 .avatar-intro p{font-size:15px;line-height:1.65;max-width:330px;margin-bottom:20px}
 .avatar-work-link{font-size:13px;padding:13px 16px;max-width:220px}
 .avatar-experience{font-size:9px;line-height:1.5}
}
/* Readable hero labels and consistent navigation in both themes. */
.avatar-bottomline{font-size:12px;line-height:1.6;letter-spacing:.035em;padding-top:22px}
.avatar-pause{font-family:'Outfit Hero',var(--body);font-size:13px;line-height:1.5;padding:8px 0;min-height:36px}
.avatar-hint span{margin-left:24px;font-weight:500}
@media(min-width:1001px){
 .designer-home .avatar-hero h1{font-size:clamp(55px,5.6vw,80px)}
 .avatar-intro h2{font-size:38px}
 .avatar-intro p{font-size:17px}
 .avatar-kicker{font-size:12px;max-width:310px}
 .avatar-caption{font-size:14px}
 .avatar-experience{font-size:12px;letter-spacing:.035em}
}
@media(min-width:851px) and (max-width:1000px){
 .designer-home .avatar-hero h1{font-size:clamp(42px,5vw,53px)}
 .avatar-intro h2{font-size:29px}
 .avatar-kicker,.avatar-experience{font-size:10px}
 .avatar-caption{font-size:12px}
 .avatar-bottomline{font-size:11px}
 }
@media(max-width:850px){
 .designer-home .avatar-hero h1{font-size:clamp(46px,11.8vw,66px)}
 .avatar-intro h2{font-size:32px}
 .avatar-kicker,.avatar-experience{font-size:11px}
 .avatar-bottomline{font-size:10px;gap:15px;align-items:center}
 .avatar-hint{max-width:240px;line-height:1.6}
 .avatar-hint span{margin-left:0;margin-top:6px}
 .avatar-pause{font-size:11px;padding:8px 0;white-space:nowrap}
      }
/* Tighten the space above and inside the About section. */
.designer-home #about.about-section{margin-top:64px;padding-top:32px}
@media(max-width:850px){.designer-home #about.about-section{margin-top:40px;padding-top:28px}}
/* Subtler size for the cursor hint and motion control. */
.avatar-bottomline{font-size:10px}
.avatar-pause{font-size:11px}
@media(max-width:850px){.avatar-bottomline{font-size:9px}.avatar-pause{font-size:10px}}

/* Projects temporarily hidden from the homepage. */
.designer-home .projects>.project-card[hidden]{display:none!important}

/* Let grid items shrink and use the stacked hero on portrait tablets. */
.avatar-headline,.avatar-intro{min-width:0}
@media(max-width:850px){
 .avatar-stage{height:clamp(300px,75vw,390px);margin-bottom:0;flex-shrink:0}
 .avatar-composition{gap:16px;padding-inline:12px}
 .avatar-stage{width:calc(100% + 24px);margin-inline:-12px}
 .avatar-bottomline{align-items:flex-start}
 .avatar-hint{min-width:0;flex:1}
 .avatar-pause{min-height:44px;flex-shrink:0}
 .avatar-work-link{min-height:44px}
}

/* Original Melo cover, in the landing page's sage and cream palette. */
.designer-home .project-card.featured .art-melo{background-color:#e9eee3;color:#273221}
.designer-home .project-card.featured .art-melo .cover-pill{background:#293722;color:#f3f6ec}
:root[data-theme="dark"] .designer-home .project-card.featured .art-melo{background-color:#293126;color:#f0f1e8}
:root[data-theme="dark"] .designer-home .project-card.featured .art-melo .cover-pill{background:#c9dea9;color:#26321e}

.avatar-load-status{position:absolute;inset:auto 0 16px;text-align:center;font-size:12px;color:var(--muted)}
.avatar-load-status[hidden]{display:none}

/* A little more presence without changing the hero columns or text. */
.avatar-stage canvas,.avatar-stage .avatar-fallback{transform:scale(1.1);transform-origin:50% 50%}
@media(max-width:850px){.avatar-stage canvas,.avatar-stage .avatar-fallback{transform:scale(1.06)}}

/* Experience cards use the portfolio's type, spacing and sage palette. */
#experience.experience-section{--experience-sage:#c9dea9;--experience-deep:#293722;margin:64px 0 0;padding:40px 0 0;border-top:1px solid var(--line);scroll-margin-top:100px}
#work .section-head h2,#approach .section-head h2,#about.about-section h2,#experience .experience-header h2{font:600 clamp(var(--font-size-48),6vw,var(--font-size-84))/.98 var(--display);letter-spacing:-.08em}
#experience .experience-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}
#experience .experience-card{min-width:0;padding:28px;border:1px solid var(--line);border-radius:var(--radius-card,12px);background:var(--paper)}
#experience .experience-header{grid-column:span 7;padding:32px}
#experience .experience-header h2{max-width:580px;margin:0 0 24px}
#experience .experience-header p{max-width:620px;font-size:15px;line-height:1.75;color:var(--muted);margin:0}
#experience .experience-header strong{color:var(--ink);font-weight:500}
#experience .experience-impact{grid-column:span 5;display:flex;flex-direction:column;justify-content:space-between;gap:36px;background:var(--experience-deep);color:#f3f6ec;border-color:var(--experience-deep);padding:32px}
#experience .experience-card-top{display:flex;justify-content:space-between;align-items:center;gap:16px}
#experience .experience-label{font-family:var(--body);font-size:11px;font-weight:600;letter-spacing:.12em;line-height:1.5;margin:0;color:inherit}
#experience .experience-impact .experience-label{color:#d2dfc3}
#experience .experience-impact-mark{width:34px;height:34px;color:var(--experience-sage)}
#experience .experience-number{font:600 clamp(64px,7.5vw,106px)/1 var(--display);letter-spacing:-.075em;color:var(--experience-sage);margin:0 0 14px}
#experience .experience-impact-copy{font-size:15px;line-height:1.7;margin:0;color:#e0e7d8;max-width:420px}
#experience .experience-role,#experience .experience-research,#experience .experience-systems{grid-column:span 4}
#experience .experience-role{display:flex;flex-direction:column;align-items:flex-start}
#experience .experience-location{font-size:12px;color:var(--muted);margin:0 0 8px}
#experience .experience-role h3{font:600 clamp(23px,2.4vw,30px)/1.2 var(--body);letter-spacing:-.035em;margin:0 0 6px}
#experience .experience-company{font-size:15px;margin:0;line-height:1.5}
#experience .experience-tenure{width:100%;margin-top:auto;padding-top:40px}
#experience .experience-timeline{height:2px;background:var(--ink);display:flex;align-items:center;justify-content:space-between;margin:0 4px 14px}
#experience .experience-timeline span{width:8px;height:8px;border:2px solid var(--ink);border-radius:50%;background:var(--ink);box-sizing:border-box}
#experience .experience-timeline span:last-child{background:var(--experience-sage)}
#experience .experience-tenure p{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);margin:0;line-height:1.5}
#experience .experience-icon{display:block;width:30px;height:30px;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:20px}
#experience :is(.experience-research,.experience-systems,.experience-collaboration)>p,#experience .experience-collaboration>div>p{font-size:14px;line-height:1.75;color:var(--muted);margin:14px 0 0}
#experience .experience-collaboration{grid-column:span 7;display:flex;align-items:center;gap:24px}
#experience .experience-collaboration-mark{width:90px;min-width:90px;height:60px;stroke:currentColor;stroke-width:1.5}
#experience .experience-education{grid-column:span 5;background:#e9eee3;color:#273221;border-color:#d4ddca}
#experience .experience-education h3{font:600 20px/1.35 var(--body);letter-spacing:-.025em;margin:18px 0 8px}
#experience .experience-education p{font-size:13px;line-height:1.7;margin:0;color:#526047}
#experience .experience-study-date{font-size:11px;font-weight:600;letter-spacing:.04em;white-space:nowrap}
#experience .experience-footer{display:flex;justify-content:flex-end;align-items:center;gap:24px;margin-top:20px}
#experience .experience-footer p{font-size:12px;line-height:1.7;margin:0}
#experience .experience-footer p>span{color:var(--muted)}
#experience .experience-resume{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:10px 16px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:4px;font-size:13px;font-weight:500;transition:background .2s,color .2s}
#experience .experience-file-type{font-size:10px;opacity:.65}
#experience .experience-resume:hover{background:var(--paper);color:var(--ink)}
#experience .experience-resume:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
@media(max-width:1000px){
 #experience .experience-grid{gap:16px}
 #experience .experience-card,#experience .experience-header,#experience .experience-impact{padding:24px}
 #experience .experience-header{grid-column:span 7}
 #experience .experience-impact{grid-column:span 5}
 #experience .experience-header p,#experience .experience-impact-copy{font-size:14px}
 #experience .experience-collaboration{gap:16px}
 #experience .experience-collaboration-mark{width:64px;min-width:64px}
}
@media(max-width:700px){
 #experience .experience-header,#experience .experience-impact{grid-column:1/-1}
 #experience .experience-impact{gap:28px}
 #experience .experience-impact-copy{max-width:none}
 #experience .experience-role{grid-column:1/-1}
 #experience .experience-research,#experience .experience-systems{grid-column:span 6}
 #experience .experience-collaboration,#experience .experience-education{grid-column:1/-1}
 #experience .experience-header h2{max-width:500px}
 #experience .experience-footer{align-items:flex-start;flex-wrap:wrap;gap:12px}
 #experience .experience-tenure{padding-top:28px}
}
@media(max-width:450px){
 #experience.experience-section{margin-top:40px;padding-top:28px;scroll-margin-top:80px}
 #experience .experience-card,#experience .experience-header,#experience .experience-impact{padding:22px}
 #experience .experience-research,#experience .experience-systems{grid-column:1/-1}
 #experience .experience-collaboration{align-items:flex-start;gap:18px;flex-direction:column}
 #experience .experience-collaboration-mark{width:70px;min-width:70px;height:45px}
 #experience .experience-header h2{margin:0 0 20px}
 #experience .experience-education h3{font-size:19px}
 #experience .experience-footer p>span{display:block}
 #experience .experience-resume{width:100%}
}

#about.about-section h2{margin-top:0}
