@import url('https://fonts.googleapis.com/css2?family=Anton&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{--paper:#f5f5f2;--ink:#202024;--muted:#62626c;--line:#d8d8dc;--accent:#6351a7;--soft:#ededf0;--display:'Anton','Arial Narrow',Impact,sans-serif;--mono:'IBM Plex Mono',monospace}
:root[data-theme=dark]{--paper:#111115;--ink:#eeedf1;--muted:#b4b1bd;--line:#303039;--accent:#b5edce;--soft:#1a1a21}
body{background-image:linear-gradient(color-mix(in srgb,var(--line) 20%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 20%,transparent) 1px,transparent 1px);background-size:48px 48px}
html{scroll-padding-top:115px}
.site-header.wrap{position:fixed;top:20px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);min-height:60px;padding:10px 22px;border:1px solid #34333e;border-radius:50px;background:#141419ed;backdrop-filter:blur(18px);box-shadow:0 8px 35px #0002;gap:27px;z-index:40;color:#eeedf1}
.site-header .wordmark{font-size:17px;letter-spacing:-.6px}.site-header .wordmark span{color:#b5edce}.site-header nav{gap:23px;margin:0}.site-header nav a{font:13px var(--mono);color:#ccc7d8}.site-header nav a:hover{color:#b5edce}.site-header .header-actions{gap:9px}.site-header .header-resume{font:12px var(--mono);margin-left:6px}.site-header .header-resume span{color:#b5edce;margin-left:5px}.site-header .theme-toggle,.site-header .motion-toggle{border-color:#46434f;color:#d4cddd;width:32px;height:32px}.site-header :focus-visible{outline-color:#d6c2ff}
.hero.wrap{width:100%;padding:140px max(28px,calc((100vw - 1240px)/2)) 32px;background-color:#111115;background-image:linear-gradient(#ffffff04 1px,transparent 1px),linear-gradient(90deg,#ffffff04 1px,transparent 1px);background-size:48px 48px;color:#f0e9f2;min-height:760px;min-height:100svh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.hero-kicker{margin-bottom:24px}.hero .eyebrow,.hero .edition{font:11px var(--mono);letter-spacing:1.2px;color:#bdb5ca}.hero h1{font-family:var(--display);font-size:clamp(140px,27vw,390px);font-weight:400;text-transform:uppercase;letter-spacing:-.035em;line-height:1.07;margin:0;text-align:center;color:#b5edce;white-space:nowrap}.hero-period{color:#d3bcfa}.hero-bottom{display:flex;flex-direction:column;gap:27px;text-align:center;margin-top:22px}.hero-bottom>p{font-family:var(--serif);font-size:clamp(25px,3vw,40px);line-height:1.18;max-width:750px;color:#e8d8e2}.hero-bottom>p em{color:#b7afbd;font-size:.88em}.hero-links{display:flex;justify-content:center;gap:12px}.hero-links a{font:14px var(--mono);padding:18px 27px;border-radius:40px;display:flex;gap:26px;align-items:center;transition:transform .25s,background .25s}.hero-primary{background:#d3bcfa;color:#24202b}.hero-secondary{background:#ffffff08;border:1px solid #49434f;color:#eeedf1}.hero-links a:hover{transform:translateY(-3px);background:#b5edce;color:#17171b}.hero :focus-visible{outline-color:#d3bcfa}.hero-footnote{margin-top:64px;padding-top:24px;border-color:#33303c;display:flex;justify-content:space-between;gap:20px;font:11px var(--mono);color:#a9a2b2}.hero-footnote strong{color:#d3bcfa;font-weight:400}.hero-footnote>a{color:#b5edce}.hero.enter{animation:hero-arrive .9s ease-out}.hero h1{animation:name-arrive 1s cubic-bezier(.2,.8,.2,1) both}
@keyframes name-arrive{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:none}}
@keyframes hero-arrive{from{opacity:.6}to{opacity:1}}
.eyebrow,.subsection-label,.project-overline,.project-number,.stat-label,.project-filters button,.project-count{font-family:var(--mono)}
.signal-section{padding-top:90px}.signal-intro{margin-bottom:28px}.signal-intro>p{font-size:26px}.data-studio{background:#191b22;border:1px solid #373442;border-radius:24px;padding:38px;color:#f1edf7;box-shadow:0 24px 60px #0001}.studio-top h2{font-size:32px;font-weight:450}.studio-source{font-family:var(--mono)}.metric-switch button[aria-pressed=true]{background:#d3bcfa;color:#201a2b}.market-label select{background:#262630;border-color:#595264}.data-studio .chart-grid{stroke:#333543}.data-studio .studio-bottom{border-color:#3e3b49}[data-theme=dark] .data-studio{outline:0}
.section-heading h2,.about-top h2{font-size:clamp(40px,5vw,64px);line-height:1.05;letter-spacing:-2px}.section-heading h2 em,.about-top h2 em{color:var(--accent)}.work-section{padding-top:100px}.project-controls{padding-bottom:26px}.project-filters button{border-radius:30px;font-size:12px}.project{border:1px solid var(--line);border-radius:24px;background:var(--paper);padding:36px;gap:28px;margin:0 0 24px;grid-template-columns:30px minmax(0,1fr) 32%;transition:border-color .25s}.project:hover{border-color:var(--accent)}.project-main h3{font-size:36px;line-height:1.15}.project-main>p{font-size:16px}.project-stat{border-radius:16px;background:#e4e9e4;min-height:270px}.project:nth-of-type(2) .project-stat{background:#e8e2f2}.project:nth-of-type(3) .project-stat{background:#eee1e7}.project-stat>strong{font-family:var(--display);font-size:86px;letter-spacing:-2px}.project-stat>strong span{font-family:var(--font);font-size:.45em}.project-stat.stat-words>strong{font-family:var(--font);font-size:35px;letter-spacing:-1px}.project .stat-label{font-size:10px}.project .case-detail{border-radius:14px;background:var(--soft)}.project-main summary{font-family:var(--mono);font-size:12px;min-height:44px}.tags span{font-size:12px}
[data-theme=dark] .project-stat{background:#21342d}[data-theme=dark] .project:nth-of-type(2) .project-stat{background:#302840}[data-theme=dark] .project:nth-of-type(3) .project-stat{background:#3c2932}[data-theme=dark] .project:hover .project-stat{background:#2c3b35}[data-theme=dark] .project-stat>strong{color:#b5edce}[data-theme=dark] .project:nth-of-type(2) .project-stat>strong{color:#d3bcfa}[data-theme=dark] .project:nth-of-type(3) .project-stat>strong{color:#f0c3d8}
.about-section{margin-top:50px;background:var(--soft);padding-block:90px;border-block:1px solid var(--line)}.about-copy p{font-size:18px}.experience-block{margin-top:60px}.role-head h3{font-size:22px}.role>p{font-size:16px}.knowledge-grid{gap:35px}.knowledge-grid p,.learning-list{font-size:14px}.knowledge-grid .tool-type{font-size:32px}.contact-section{padding-top:100px}.contact-section h2{font-family:var(--display);font-size:clamp(55px,8vw,108px);font-weight:400;letter-spacing:-1px;text-transform:uppercase;line-height:1.05}.contact-section h2 em{font-family:var(--serif);text-transform:none;color:var(--accent)}.contact-button{background:var(--accent);color:var(--paper);font-family:var(--mono)}.contact-email>a{font-size:clamp(20px,3vw,34px)}.site-footer{padding-block:30px}.site-footer a{font-size:13px}.site-footer .wordmark{font-size:24px}
@media(max-width:900px){.hero.wrap{padding-top:130px;min-height:780px}.hero h1{font-size:29vw}.hero-footnote{flex-wrap:wrap}.project{grid-template-columns:20px minmax(0,1fr);padding:28px}.project-stat{grid-column:2;min-height:0;width:100%;padding:24px}.project-stat>strong{margin:12px 0}.project-stat>div{flex-direction:row}.project-main h3{font-size:32px}.signal-section{padding-top:60px}.data-studio{padding:28px}.hero-bottom>p{max-width:90%;font-size:34px}.knowledge-grid{gap:24px}}
@media(max-width:600px){.site-header.wrap{display:flex;flex-wrap:nowrap;gap:14px;padding:10px 14px;min-height:56px;top:14px;border-radius:40px}.site-header .wordmark{display:none}.site-header nav{gap:15px;grid-column:auto;grid-row:auto}.site-header nav a{font-size:12px}.site-header .header-actions{gap:7px;grid-column:auto;grid-row:auto}.site-header .header-resume{display:none}.hero.wrap{padding:125px 20px 25px;min-height:680px;min-height:92svh;justify-content:center}.hero-kicker{justify-content:center;margin-bottom:40px}.hero .eyebrow{font-size:10px}.hero .edition{display:none}.hero h1{font-size:29vw;letter-spacing:-.045em}.hero-bottom{margin-top:36px;gap:27px;align-items:center}.hero-bottom>p{max-width:100%;font-size:30px}.hero-links{gap:9px}.hero-links a{padding:15px 19px;font-size:12px;gap:14px}.hero-footnote{margin-top:56px;gap:15px;font-size:10px;justify-content:center;text-align:center}.hero-footnote>span:nth-child(2){display:none}.hero-footnote>a{width:100%;padding-top:10px}.signal-intro{display:block}.signal-intro>p{font-size:22px;margin-top:12px}.data-studio{border-radius:18px;padding:24px 17px}.studio-top h2{font-size:25px}.section-heading h2,.about-top h2{font-size:43px;letter-spacing:-1.5px}.work-section{padding-top:65px}.project{padding:24px 18px;gap:15px 9px;border-radius:18px;grid-template-columns:20px minmax(0,1fr)}.project-main h3{font-size:29px}.project-main>p{font-size:15px}.project-overline{font-size:10px;line-height:1.7}.project-stat{grid-column:1/-1;border-radius:12px;margin-top:10px}.project-stat>strong{font-size:75px}.project-stat>div{font-size:12px}.case-detail p{font-size:14px}.about-section{padding-block:60px;margin-top:20px}.about-copy p{font-size:16px}.role-head h3{font-size:20px}.role>p{font-size:15px}.knowledge-grid{grid-template-columns:1fr;gap:30px}.knowledge-grid>div:first-child{grid-column:auto}.contact-section{padding-top:65px}.contact-section h2{font-size:57px}.contact-arrow{display:none}.contact-email{gap:17px}.contact-email>a{font-size:24px}}
@media(prefers-reduced-motion:reduce){.hero h1,.hero.enter{animation:none}}
@media print{body{background:white}.site-header.wrap{display:none}.hero.wrap{min-height:0;background:white;color:#202024;padding:20px;width:100%}.hero h1{font-size:75px;color:#202024;animation:none}.hero-bottom,.hero-footnote,.hero-kicker{display:none}.project{border-color:#ddd}.about-section{padding:20px 0}}
/* A complete light appearance for the opening and its floating navigation. */
@media screen{
:root:not([data-theme=dark]) .hero.wrap{background-color:#f5f5f2;background-image:linear-gradient(#22202c08 1px,transparent 1px),linear-gradient(90deg,#22202c08 1px,transparent 1px);color:#26272a}
:root:not([data-theme=dark]) .hero h1{color:#245943}
:root:not([data-theme=dark]) .hero-period{color:#7955aa}
:root:not([data-theme=dark]) .hero .eyebrow,:root:not([data-theme=dark]) .hero .edition{color:#60606b}
:root:not([data-theme=dark]) .hero-bottom>p{color:#33313c}
:root:not([data-theme=dark]) .hero-bottom>p em{color:#67616e}
:root:not([data-theme=dark]) .hero-primary{background:#dfd0f5;color:#30233f}
:root:not([data-theme=dark]) .hero-secondary{background:#ffffff88;border-color:#c8c3cf;color:#39323f}
:root:not([data-theme=dark]) .hero-links a:hover{background:#c5e7d5;color:#193d2e}
:root:not([data-theme=dark]) .hero-footnote{border-color:#d7d4dc;color:#65606d}
:root:not([data-theme=dark]) .hero-footnote strong{color:#704b9c}
:root:not([data-theme=dark]) .hero-footnote>a{color:#245943}
:root:not([data-theme=dark]) .hero :focus-visible{outline-color:#704b9c}
:root:not([data-theme=dark]) .site-header.wrap{background:#fafaf5ed;border-color:#d9d5df;color:#29262f;box-shadow:0 8px 35px #2520300c}
:root:not([data-theme=dark]) .site-header nav a{color:#5f5869}
:root:not([data-theme=dark]) .site-header nav a:hover,:root:not([data-theme=dark]) .site-header .wordmark span,:root:not([data-theme=dark]) .site-header .header-resume span{color:#245943}
:root:not([data-theme=dark]) .site-header .theme-toggle,:root:not([data-theme=dark]) .site-header .motion-toggle{border-color:#cec8d6;color:#5e536c}
:root:not([data-theme=dark]) .site-header :focus-visible{outline-color:#704b9c}
}
.about-top{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:28px 65px;align-items:center}.about-top>div:first-child{grid-column:1;grid-row:1}.about-copy{grid-column:1;grid-row:2;padding-top:0}.about-portrait{grid-column:2;grid-row:1/3;margin:0;max-width:380px;justify-self:end;width:100%;transform:rotate(2deg);padding:12px 12px 16px;background:var(--paper);border:1px solid var(--line);border-radius:17px;box-shadow:0 16px 40px #0002}.about-portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 49%;border-radius:8px}.about-portrait figcaption{font:12px var(--mono);text-align:center;padding-top:14px;color:var(--muted)}
.art-section{margin-top:85px;padding-top:55px;border-top:1px solid var(--line)}.art-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:32px}.art-heading h2{font-size:48px;line-height:1.1;letter-spacing:-1.7px;margin-top:15px}.art-heading h2 em{color:var(--accent)}.art-heading p{font-size:16px;color:var(--muted)}.art-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.art-card{display:block;min-width:0}.art-image{position:relative;overflow:hidden;border-radius:15px;background:var(--paper);border:1px solid var(--line)}.art-image img{width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;display:block;transition:transform .35s}.art-image>span{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#17171bed;color:#f5f2f7;font:12px var(--mono);padding:10px 15px;border-radius:30px;opacity:0;transition:opacity .2s}.art-card:hover .art-image img{transform:scale(1.025)}.art-card:hover .art-image>span,.art-card:focus-visible .art-image>span{opacity:1}.art-caption{display:flex;justify-content:space-between;gap:15px;font:13px var(--mono);padding-top:15px;color:var(--ink)}
#art-viewer{padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--paper);color:var(--ink);width:min(900px,calc(100% - 30px));max-height:94svh}#art-viewer::backdrop{background:#08090be8}#art-viewer-image{display:block;max-width:100%;max-height:76svh;object-fit:contain;margin:auto}.art-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.art-viewer-bar h2{font:16px var(--mono)}#close-art{border:1px solid var(--line);background:var(--soft);color:var(--ink);border-radius:24px;padding:10px 17px;font:13px var(--mono)}
@media(max-width:760px){.about-top{grid-template-columns:1fr;gap:28px}.about-top>div:first-child,.about-copy,.about-portrait{grid-column:auto;grid-row:auto}.about-portrait{justify-self:center;max-width:330px;transform:rotate(1deg)}.about-copy{grid-row:3}.art-section{margin-top:50px;padding-top:35px}.art-heading{display:block}.art-heading h2{font-size:40px}.art-heading p{margin-top:18px}.art-grid{gap:20px;grid-template-columns:1fr}.art-image img{max-height:490px;aspect-ratio:3/4}.art-card{max-width:420px;width:100%;margin-inline:auto}.art-image>span{opacity:1}.art-viewer-bar h2{font-size:13px}}
/* Portrait-first flow: introduction, experience, analytics, art, contact. */
.portrait-hero.wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:65px;align-items:center;padding-top:145px;padding-bottom:65px;min-height:90svh}.portrait-hero .hero-message{min-width:0}.portrait-hero h1{text-align:left;font-size:clamp(95px,13vw,185px);line-height:1.08}.portrait-hero .hero-kicker{margin-bottom:25px}.portrait-hero .edition{display:none}.portrait-hero .hero-bottom{align-items:flex-start;text-align:left;margin-top:20px;gap:20px}.portrait-hero .hero-bottom>p{font-size:30px}.portrait-hero .about-copy{padding:0;max-width:610px}.portrait-hero .about-copy p{font-family:var(--font);font-size:16px;color:#b7afbd;line-height:1.75}.portrait-hero .about-copy .inline-link{color:#d3bcfa;margin-top:14px}.portrait-hero .hero-links{justify-content:flex-start}.portrait-hero .hero-footnote{margin-top:30px;flex-wrap:wrap}.hero-portrait{grid-column:2;grid-row:1;max-width:430px;transform:none;justify-self:end;background:#1c1c23;border-color:#37333f}.hero-portrait img{aspect-ratio:4/5;object-position:center 45%}.hero-portrait figcaption{color:#c1b8ca}.experience-section{padding-block:65px}.experience-section .experience-block{margin-top:0}.art-section.wrap{padding-top:60px;padding-bottom:50px;margin-top:40px}.art-image.art-crop{aspect-ratio:3/4;position:relative;overflow:hidden;border-radius:4px;border:10px solid var(--paper);outline:1px solid var(--line);box-shadow:0 12px 28px #0001}.art-crop img{display:block}.art-crop.is-fitted img{position:absolute;left:0;top:0;max-width:none!important;max-height:none!important;aspect-ratio:auto!important;object-fit:fill;transform-origin:0 0;transition:none}.art-card:hover .art-crop.is-fitted img{transform:var(--crop-transform)}.art-image>span{z-index:2}.viewer-crop{position:relative;overflow:hidden;aspect-ratio:3/4;width:min(100%,54svh);margin:auto}.viewer-crop img{width:100%;height:auto}.site-header.wrap{gap:20px}.site-header nav{gap:17px}
:root:not([data-theme=dark]) .portrait-hero .about-copy p{color:#67616e}:root:not([data-theme=dark]) .portrait-hero .about-copy .inline-link{color:#704b9c}:root:not([data-theme=dark]) .hero-portrait{background:#fff;border-color:#ded9e4}:root:not([data-theme=dark]) .hero-portrait figcaption{color:#67616e}
@media(max-width:900px){.portrait-hero.wrap{gap:30px;grid-template-columns:1fr .75fr}.portrait-hero .hero-links a{padding:14px 17px;font-size:12px}.site-header .wordmark{display:none}.site-header nav{gap:14px}}
@media(max-width:650px){.portrait-hero.wrap{grid-template-columns:1fr;padding-top:120px;gap:30px}.hero-portrait{grid-column:1;grid-row:1;justify-self:center;max-width:260px}.hero-portrait img{aspect-ratio:1;object-position:50% 37%}.hero-portrait figcaption{display:none}.portrait-hero h1{font-size:100px;text-align:center}.portrait-hero .hero-kicker{justify-content:center}.portrait-hero .hero-bottom{align-items:center;text-align:center}.portrait-hero .hero-bottom>p{font-size:26px}.portrait-hero .hero-footnote{margin-top:25px}.portrait-hero .hero-links{justify-content:center}.site-header.wrap{width:calc(100% - 24px);max-width:none;gap:10px;flex-wrap:wrap;justify-content:center;padding:8px 12px}.site-header nav{gap:13px;justify-content:center;flex-wrap:wrap}.site-header nav a{font-size:11px}.site-header .header-actions{gap:6px}.site-header .motion-toggle,.site-header .theme-toggle{width:28px;height:28px}.experience-section{padding-block:40px}.art-section.wrap{padding-top:35px}.art-image.art-crop{max-height:none}.viewer-crop{width:min(100%,52svh)}}
