.folio-page{--content-width:1200px;--grid-gap:16px;--section-gap:var(--space-20);--card-padding:24px;--card-image-radius:16px;min-height:100vh}.folio-width{width:min(var(--content-width),calc(100% - 64px));margin-inline:auto}.folio-page h2{font-size:32px;font-weight:600;line-height:1.25;letter-spacing:-.025em}.folio-page h3{font-size:20px;font-weight:600;line-height:1.3;letter-spacing:-.015em}.folio-page p{color:var(--text-secondary)}.folio-header{display:flex;align-items:center;justify-content:space-between;padding-block:16px}.folio-logo{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--text-primary);color:var(--surface);font-size:24px;font-weight:700;letter-spacing:-.06em;line-height:1}.folio-hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:start;padding-top:32px}.folio-positioning{display:flex;gap:8px;align-items:center;margin-bottom:16px;font-size:12px;font-weight:600;line-height:24px;letter-spacing:.065em;text-transform:uppercase;color:var(--text-secondary)}.location-flag{width:32px;height:24px;object-fit:cover;border-radius:4px}.folio-intro h1{font-size:clamp(40px,4.5vw,64px);line-height:1.12;letter-spacing:-.045em;font-weight:650}.folio-intro h1>span{display:block}.folio-intro .hero-role{max-width:60ch;margin-top:24px;color:var(--text-secondary);font-size:clamp(30px,3.5vw,48px);font-weight:650;line-height:1.2;min-height:2.4em}.hero-subtitle-rotation{--subtitle-ease:linear(0,0.1175,0.3616,0.6172,0.8246,0.9646,1.0415,1.071,1.0707,1.0557,1.0365,1.0193,1.0067,0.999,0.9954,0.9946,0.9953,0.9967,0.998,0.9991,0.9999,1.0002,1.0004,1.0004,1);display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden}.hero-subtitle-rotation>span{grid-area:1/1;align-self:start;min-width:0;visibility:hidden;overflow-wrap:break-word}.hero-subtitle-rotation>.is-current,.hero-subtitle-rotation>.is-incoming,.hero-subtitle-rotation>.is-outgoing{visibility:visible}.hero-subtitle-rotation>.is-outgoing{animation:hero-subtitle-out 1.2s var(--subtitle-ease) both}.hero-subtitle-rotation>.is-incoming{animation:hero-subtitle-in 1.2s var(--subtitle-ease) both}.hero-subtitle-rotation[data-paused=true]>span{animation-play-state:paused}@keyframes hero-subtitle-out{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}@keyframes hero-subtitle-in{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@media (prefers-reduced-motion:reduce){.hero-subtitle-rotation>span{animation:none;transform:none;visibility:hidden}.hero-subtitle-rotation>span:first-child{visibility:visible}}.text-link{display:inline;color:var(--primary);font-weight:600;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color var(--motion-duration)}.text-link svg{display:inline;vertical-align:-2px}.text-link:hover{text-decoration-color:currentColor}.hero-profile{padding:var(--card-padding)}.hero-profile>p+p{margin-top:16px}.profile-heading{display:flex;align-items:flex-start;gap:16px;margin-bottom:24px}.profile-heading h2{font-size:20px;letter-spacing:-.015em}.profile-heading p{font-size:14px;margin-top:4px}.profile-heading .profile-domain{color:var(--text-muted)}.hero-profile>.profile-tools{margin-top:16px}.profile-tools strong{font-weight:600;white-space:nowrap}.folio-portrait{position:relative;width:80px;height:80px;flex-shrink:0}.portrait-crop{position:absolute;inset:0;overflow:hidden;border-radius:16px}.portrait-badge{display:none;position:absolute;right:-1px;bottom:-1px;width:24px;height:24px;overflow:visible;pointer-events:none}.portrait-badge>path:first-child{fill:var(--text-secondary);stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;paint-order:stroke fill}.folio-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.portrait-dark,[data-theme=dark] .portrait-light{opacity:0}[data-theme=dark] .portrait-dark{opacity:1}.profile-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:24px}.folio-socials{display:flex;gap:0;margin-left:-8px}.folio-section{margin-top:var(--section-gap);scroll-margin-top:24px}.folio-section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:32px}.folio-section-heading .button{flex-shrink:0}.interactive-card{transition:transform var(--motion-duration) var(--motion-ease),border-color var(--motion-duration) var(--motion-ease),background-color var(--motion-duration) var(--motion-ease)}@media (hover:hover){.interactive-card:hover{transform:translateY(-3px);border-color:var(--border-hover)}}.interactive-card:active{transform:translateY(-1px)}.folio-projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--grid-gap)}.project-item{min-width:0}.folio-project{display:flex;flex-direction:column;height:100%;padding:var(--card-padding)}.folio-project-image{aspect-ratio:1.54;overflow:hidden;border-radius:var(--card-image-radius);background:var(--surface-soft)}.folio-project-image img{width:100%;height:100%;object-fit:cover}.project-copy{display:flex;flex:1;flex-direction:column;min-width:0;padding-top:24px}.folio-project-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;line-height:1.5;color:var(--text-secondary)}.folio-project h3{display:flex;align-items:start;gap:16px;justify-content:space-between;margin-top:12px}.project-item:not(.project-featured) h3{max-width:26ch}.project-copy>p{margin-top:12px;margin-bottom:24px;font-size:15px;line-height:1.6}.project-evidence{margin-top:auto}.folio-outcomes{display:grid;grid-template-columns:repeat(3,minmax(max-content,1fr));gap:8px}.folio-outcomes>div{min-width:0;display:flex;flex-direction:column;gap:4px;padding:8px;background:var(--surface-soft);border-radius:12px}.folio-outcomes dt{order:2;min-width:0;font-size:12px;line-height:1.45;color:var(--text-secondary);white-space:normal;overflow-wrap:anywhere}.folio-outcomes dd{font-size:16px;line-height:24px;font-weight:600;letter-spacing:-.02em;white-space:nowrap;font-variant-numeric:tabular-nums}.project-featured{grid-column:1/-1}.project-featured .folio-project{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:32px;padding:var(--card-padding)}.project-featured .folio-project-image{position:relative;aspect-ratio:4/3;min-height:320px;align-self:center}.project-featured .folio-project-image img{position:absolute;inset:0;object-fit:cover}.project-featured .project-copy{padding-top:0}.project-featured h3{font-size:28px}.project-featured .project-copy>p{font-size:16px}.project-featured .folio-outcomes dd{font-size:20px;line-height:24px}.experience-surface{padding:var(--card-padding)}.experience-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:40px;padding-block:24px}.experience-row+.experience-row{border-top:1px solid var(--border)}.experience-surface>.experience-row:first-child{padding-top:0}.experience-surface>.earlier-experience:last-child{padding-bottom:0}.experience-company{display:flex;align-items:start;gap:16px}.experience-company img{width:40px;height:40px;border-radius:var(--card-image-radius)}.experience-company p{font-size:13px;margin-top:4px}.experience-copy h4{font-size:16px;font-weight:600;line-height:1.5;margin-bottom:8px}.experience-copy>p{max-width:68ch}.experience-copy .experience-evidence{margin-top:12px;font-size:15px;color:var(--text-primary)}summary{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}summary svg{transition:transform var(--motion-duration) var(--motion-ease)}details[open]>summary svg{transform:rotate(180deg)}.earlier-experience{padding-block:32px;border-top:1px solid var(--border)}.earlier-experience>h3{font-size:16px;margin-bottom:24px}.earlier-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.earlier-grid h4{font-size:18px;font-weight:600;line-height:1.3}.earlier-grid p{font-size:13px;margin-top:12px}.earlier-grid .earlier-role{margin-top:4px;font-size:15px;color:var(--text-primary)}.plugin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:var(--grid-gap)}.plugin-card{display:flex;flex-direction:column;padding:var(--card-padding)}.plugin-heading{display:flex;align-items:center;gap:12px}.plugin-heading h3{flex:1;font-size:18px}.plugin-title{min-width:0}.plugin-audience{display:block;font-size:12px;color:var(--text-secondary);line-height:1.5;margin-top:4px}.plugin-icon{width:40px;height:40px;border-radius:var(--card-image-radius);flex-shrink:0;object-fit:cover}.palette-icon{display:flex;overflow:hidden}.palette-icon span{flex:1;background:#435f85}.palette-icon span:nth-child(2){background:#889fbe}.palette-icon span:nth-child(3){background:#c5d1e3}.plugin-card>p{min-height:3.2em;text-wrap:pretty;margin-top:16px;font-size:15px;line-height:1.6}.entry-note{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:auto;font-size:12px;line-height:1.5;color:var(--text-muted)}.media-list,.writing-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap)}.writing-row{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:8px;padding:var(--card-padding)}.writing-row>p{grid-column:1;font-size:16px;max-width:65ch}.publication-links{grid-column:1;grid-row:1;display:flex;align-items:center;flex-wrap:wrap;gap:8px 24px;margin-bottom:8px}.publication{display:flex;flex:1;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px}.publication-platform{display:flex;align-items:center;gap:8px;min-height:32px;font-size:15px;font-weight:500}.publication img{width:24px;height:24px;object-fit:contain;border-radius:4px;background:#fff}.publication time{font-size:12px;color:var(--text-muted)}.entry-date{display:inline-flex;align-items:center;gap:8px}.media-card{display:grid;grid-template-columns:144px minmax(0,1fr);align-items:stretch;gap:24px;padding:var(--card-padding)}.media-preview{position:relative;height:100%;min-height:80px;border-radius:var(--card-image-radius);overflow:hidden;background:var(--surface-soft)}.media-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.media-copy{min-width:0}.media-copy h3{font-size:18px;margin-top:8px}.media-copy>p{font-size:16px;line-height:1.6;margin-top:8px;max-width:65ch}.recognition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap)}.recognition-card{padding:var(--card-padding);display:grid;grid-template-columns:144px minmax(0,1fr);align-items:stretch;gap:24px}.recognition-copy{min-width:0;align-self:center}.recognition-preview{position:relative;width:100%;height:100%;min-height:80px;overflow:hidden;border-radius:var(--card-image-radius);background:#fff}.recognition-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.jury-profile-preview{background:#f2f2f2}.recognition-card:nth-child(2) .recognition-preview{background:#000}.recognition-wordmark{display:flex;align-items:center;padding:16px;background:var(--surface-soft);color:var(--text-secondary);font-size:24px;font-weight:600;line-height:1.05;letter-spacing:-.04em}.recognition-card h3{font-size:18px;margin:0}.recognition-card p{margin-top:4px;margin-bottom:8px;font-size:15px}.folio-contact{display:grid;grid-template-columns:1fr;gap:16px;justify-items:center;text-align:center;max-width:720px;margin-inline:auto;padding:0;margin-top:var(--section-gap)}.folio-page .folio-contact h2{font-size:24px;line-height:1.35}.folio-contact p{margin-top:8px;font-size:15px}.folio-email{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:20px;font-weight:600;color:var(--primary);letter-spacing:-.015em}.folio-contact nav{display:flex;justify-content:center;gap:0 24px;flex-wrap:wrap;align-items:center}.folio-contact nav a{display:flex;align-items:center;min-height:44px;font-size:15px;font-weight:500}.folio-contact nav a:not(.resume-link){color:var(--text-primary)}.folio-contact a:hover{text-decoration:underline;text-underline-offset:4px}.folio-footer{display:flex;justify-content:center;text-align:center;gap:16px;padding-block:16px 32px;color:var(--text-muted);font-size:12px}@media (max-width:1100px){.folio-hero{gap:32px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.hero-profile{padding:var(--card-padding)}.profile-bottom{flex-wrap:wrap;gap:12px}.folio-projects{grid-template-columns:repeat(2,minmax(0,1fr))}.project-item:last-child{grid-column:1/-1}.project-item:last-child .folio-project{display:grid;grid-template-columns:1fr 1fr;gap:24px}.project-item:last-child .project-copy{padding-top:0}.project-item:last-child .folio-project-image{aspect-ratio:auto}.project-item:last-child .folio-project-image img{object-fit:contain}.project-featured .folio-project{gap:24px;padding:var(--card-padding)}.project-featured h3{font-size:24px}.plugin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-card,.recognition-card{grid-template-columns:112px minmax(0,1fr);gap:16px}.recognition-wordmark{font-size:20px;padding:12px}}@media (max-width:800px){.folio-width{width:calc(100% - 48px)}.folio-hero{grid-template-columns:1fr;gap:32px;padding-top:24px}.hero-profile{padding:var(--card-padding)}.folio-intro h1{font-size:48px}.folio-section-heading{align-items:start}.folio-section-heading h2{font-size:28px}.folio-section-heading:has(.button){flex-direction:column;gap:16px}.project-featured .folio-project{grid-template-columns:1fr}.project-featured .folio-project-image{min-height:0;aspect-ratio:1.8}.experience-row{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:24px}.experience-company{flex-direction:column;gap:12px}.experience-surface{padding-inline:var(--card-padding)}.earlier-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-list,.writing-list,.writing-row{grid-template-columns:1fr}}@media (max-width:600px){.folio-page{--section-gap:56px}.folio-width{width:calc(100% - 32px)}.folio-header{gap:8px;padding-block:16px;flex-wrap:wrap}.folio-header .theme-toggle{width:44px}.folio-hero{padding-top:24px}.folio-positioning{font-size:12px;letter-spacing:.05em}.folio-intro h1{font-size:clamp(30px,8.2vw,44px)}.hero-profile{padding:var(--card-padding)}.folio-portrait{width:64px;height:64px}.profile-heading h2{font-size:18px}.profile-heading p{font-size:12px}.profile-bottom{flex-wrap:wrap}.folio-section-heading{margin-bottom:24px}.folio-section-heading h2{font-size:28px}.folio-projects,.plugin-grid{grid-template-columns:1fr;gap:16px}.recognition-grid{grid-template-columns:1fr}.project-featured .folio-project,.project-item:last-child .folio-project{display:flex;padding:var(--card-padding);gap:0}.project-featured .folio-project-image,.project-item:last-child .folio-project-image{aspect-ratio:1.54}.project-featured .project-copy,.project-item:last-child .project-copy{padding-top:24px}.project-featured h3{font-size:24px}.project-copy>p,.project-featured .project-copy>p{font-size:16px}.experience-row{grid-template-columns:1fr;gap:16px;padding-block:24px}.experience-company{flex-direction:row;gap:12px}.experience-surface{padding:var(--card-padding)}.earlier-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.plugin-card>p{font-size:16px}.media-card{grid-template-columns:80px minmax(0,1fr)}.folio-contact{padding:0}.folio-email{font-size:18px}.folio-footer{padding-bottom:80px}.scroll-to-top{right:16px;bottom:16px}}@media (prefers-reduced-motion:reduce){.interactive-card:active,.interactive-card:hover{transform:none}}