@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--ink:#20211e;--paper:#fafaf7;--lime:#d6fa52;--muted:#65665f;--line:#dcded5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid currentColor;outline-offset:6px}.skip{position:absolute;left:20px;top:-60px;z-index:3;background:var(--lime);padding:12px}.skip:focus{top:15px}header,main>section,footer{padding-left:6%;padding-right:6%}header{height:105px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.monogram{font-size:38px;font-weight:800;letter-spacing:-4px}.monogram span{font-size:13px;vertical-align:top;letter-spacing:0;margin-left:7px}nav{display:flex;gap:36px;font-size:14px}nav a:last-child{border-bottom:1px solid var(--ink);padding-bottom:5px}nav a:hover{opacity:.6}.eyebrow{font-size:12px;letter-spacing:1.5px;font-weight:600}.hero{padding-top:72px}.hero h1{font-family:Manrope,Arial,sans-serif;font-size:clamp(70px,13.65vw,220px);font-weight:650;letter-spacing:-.075em;line-height:1.1;margin:23px 0 35px;white-space:nowrap}.name-period{color:#7c9825}.hero-bottom{display:flex;justify-content:space-between;align-items:center}.hero-bottom p{font-size:clamp(21px,2.1vw,32px);line-height:1.4;letter-spacing:-.7px;margin:0}.round-link{width:68px;height:68px;display:grid;place-items:center;border-radius:50%;background:var(--lime);font-size:30px;transition:transform .2s}.round-link:hover{transform:translateY(5px)}.hero-meta{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:58px;padding:22px 0;font-size:12px;letter-spacing:1px}.work{padding-top:78px;padding-bottom:110px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:36px}h2{font-family:Manrope,Arial,sans-serif;font-weight:500;font-size:clamp(32px,4vw,58px);line-height:1.14;letter-spacing:-2px;margin:20px 0 0}.section-heading h2{font-size:34px;letter-spacing:-1.3px}.section-number{font-size:12px;color:var(--muted)}.projects{display:grid;grid-template-columns:1fr 1fr;gap:48px 28px}.featured{grid-column:1/-1}.project-art{height:310px;padding:25px 28px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.featured .project-art{height:420px}.art-index,.art-foot{font-size:12px;letter-spacing:.5px}.art-foot{align-self:flex-end}.project-art>div{align-self:center;font-size:clamp(56px,7vw,110px);font-family:Manrope,Arial,sans-serif;font-weight:700;letter-spacing:-6px}.ryvn{background:#dfddf1;color:#34304c}.project-art .ryvn-word{font-size:150px;letter-spacing:-12px}.ryvn-word span{font-size:110px;color:#736790;margin-left:14px}.umph{background:#f0a77f;color:#743b2f}.umph-word{font-style:italic}.umph-word span{font-size:24px;vertical-align:top;letter-spacing:0}.zenvy{background:#d4e9e4;color:#22544b}.zenvy-word span{color:#4d8979;margin-left:8px}.cinestox{background:#232c44;color:#f4f6fe}.cinestox-word span{color:#b9c9f2;font-weight:400}.gigdash{background:#e1f480;color:#344018}.gigdash-word span{color:#739121}.project-caption{padding-top:20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px}.project-caption h3{font-size:22px;letter-spacing:-.6px;margin:0 0 5px;font-weight:550}.project-caption p{font-size:14px;color:var(--muted);margin:0}.tags{font-size:11px;letter-spacing:.5px;padding-top:7px}.process{background:var(--ink);color:var(--paper);padding-top:80px;padding-bottom:85px}.process h2{font-size:clamp(45px,5.5vw,80px)}.accent{color:var(--lime)}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:70px}.process-grid article{border-top:1px solid #53544e;padding-top:20px}.process-grid article>span{font-size:12px;color:var(--lime)}.process-grid h3{font-size:23px;font-weight:500;margin:32px 0 13px}.process-grid p{font-size:16px;line-height:1.6;color:#bfc1b8;margin:0;max-width:230px}.about{padding-top:110px;padding-bottom:110px;display:grid;grid-template-columns:1fr 1fr;gap:65px}.about h2{font-size:clamp(30px,3.4vw,49px)}.about-copy>p{font-size:18px;line-height:1.65;margin:0 0 23px;color:#55574f}.about-copy>p:first-child{color:var(--ink)}.core-title{font-size:14px;font-weight:500;margin-top:42px}.core-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 22px;border-top:1px solid var(--line);padding-top:24px}.core-grid h3{font-size:15px;font-weight:550;margin:0 0 8px}.core-grid p{font-size:14px;line-height:1.5;color:var(--muted);margin:0}.domains{padding-top:78px;padding-bottom:100px;border-top:1px solid var(--line)}.domains h2{margin-bottom:45px}.domain-list>div{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:23px 0}.domain-list>div:last-child{border-bottom:1px solid var(--line)}.domain-list h3{font-size:27px;font-weight:450;letter-spacing:-.8px;margin:0}.domain-list p{font-size:16px;color:var(--muted);margin:0}.contact{background:var(--lime);padding-top:66px;padding-bottom:65px}.contact h2{font-size:clamp(80px,12vw,180px);letter-spacing:-.07em;display:flex;justify-content:space-between;margin:26px 0 43px}.contact h2 span{font-weight:400;font-size:.85em}.contact-bottom{display:flex;justify-content:space-between;align-items:end;gap:30px}.contact-bottom p{font-size:18px;line-height:1.5;margin:0}.contact-links{display:flex;gap:27px;align-items:start;font-size:16px}.contact-links>a{border-bottom:1px solid;padding-bottom:5px}.contact-links>span{color:#4f5c2d}.contact-links small{display:block;font-size:11px;margin-top:8px}footer{display:flex;justify-content:space-between;padding-top:26px;padding-bottom:26px;font-size:12px;letter-spacing:.4px}@media(min-width:1600px){header,main>section,footer{padding-left:max(6%,calc((100vw - 1400px)/2));padding-right:max(6%,calc((100vw - 1400px)/2))}.hero h1{font-size:210px}}@media(max-width:760px){header{height:82px}nav{gap:23px}.hero{padding-top:52px}.hero h1{font-size:13.5vw;margin:29px 0 30px}.hero-bottom p{font-size:20px;letter-spacing:-.5px;max-width:80%}.desktop{display:none}.round-link{width:46px;height:46px;flex-shrink:0;font-size:24px}.hero-meta{font-size:10px;margin-top:40px;letter-spacing:.4px}.work{padding-top:50px;padding-bottom:65px}.section-heading h2{font-size:27px;letter-spacing:-1px}.section-number{display:none}.projects{grid-template-columns:1fr;gap:32px}.featured{grid-column:auto}.project-art,.featured .project-art{height:300px}.project-art>div{font-size:78px}.project-art .ryvn-word{font-size:100px;letter-spacing:-7px}.ryvn-word span{font-size:75px}.project-caption{gap:8px}.tags{font-size:10px}.process{padding-top:60px;padding-bottom:60px}.process-grid{grid-template-columns:1fr 1fr;gap:34px 22px;margin-top:45px}.process-grid h3{font-size:20px;margin-top:24px}.process-grid p{font-size:15px}.about{grid-template-columns:1fr;gap:34px;padding-top:65px;padding-bottom:65px}.about h2{font-size:37px}.about-copy>p{font-size:17px}.core-grid{gap:28px 16px}.domains{padding-top:60px;padding-bottom:65px}.domain-list>div{display:block;padding:21px 0}.domain-list h3{font-size:24px;margin-bottom:9px}.domain-list p{font-size:14px}.contact{padding-top:52px;padding-bottom:46px}.contact h2{font-size:17vw;margin-bottom:30px}.contact-bottom{display:block}.contact-bottom p{font-size:16px}.contact-links{margin-top:30px;gap:28px}footer{font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.round-link{transition:none}}
.tags,.contact-links small{font-size:12px}@media(max-width:760px){.hero-meta,.tags,footer{font-size:12px}.hero-meta{gap:15px;flex-wrap:wrap}}
/* Full-screen rhythm and blue contact treatment. */
header{justify-content:flex-end}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:70px}.hero-meta{margin-top:auto}.hero .eyebrow{margin-top:auto}.hero-bottom{margin-bottom:65px}.name-period{color:#2878ef}.projects{grid-template-columns:1fr;gap:60px}.project{display:flex;flex-direction:column;min-height:90svh}.project-art,.featured .project-art{height:auto;min-height:0;flex:1;position:relative;justify-content:center;padding-top:64px;padding-bottom:64px}.art-index{position:absolute;top:28px;left:28px}.project-art>div{font-size:clamp(65px,12vw,180px)}.project-art .ryvn-word{font-size:clamp(100px,15vw,220px)}.project-caption{padding-bottom:8px;min-height:80px}.project:focus-visible{outline:3px solid #2878ef;outline-offset:8px}.project-art>div{transition:transform .3s}.project:hover .project-art>div{transform:scale(1.035)}.process{min-height:100svh;display:flex;flex-direction:column;justify-content:center}.process-grid{margin-top:clamp(65px,12vh,160px)}.contact{background:linear-gradient(125deg,#edf6ff 0%,#c9e5ff 48%,#a7cafa 100%);padding-bottom:0}.contact h2{display:block}.contact h2 a{display:inline-flex;align-items:center;gap:.18em}.contact h2 span{font-size:.74em}.contact-links{gap:20px}.contact-links .social-icon{display:inline-flex;width:42px;height:42px;color:#203249;align-items:center;justify-content:center}.social-icon svg{width:26px;height:26px;fill:currentColor}.contact footer{padding:27px 0;margin-top:65px;border-top:1px solid #8babce}.loader{position:fixed;inset:0;background:var(--paper);display:grid;place-items:center;z-index:1000;transition:opacity .2s}.loader[hidden]{display:none}.loader-content{width:min(320px,65vw)}.loader-track{height:3px;background:#dbe3ef;overflow:hidden}.loader-fill{width:0;height:100%;background:#2878ef}.loader-percentage{display:block;text-align:right;font-size:14px;font-variant-numeric:tabular-nums;margin-top:16px}.loader.loaded{opacity:0;pointer-events:none}.is-loading{overflow:hidden}.detail-header{justify-content:space-between;font-size:14px}.detail-hero{padding-top:90px;padding-bottom:65px}.detail-hero h1{font-family:Manrope,Arial,sans-serif;font-size:clamp(64px,10vw,150px);letter-spacing:-.065em;line-height:1.1;margin:30px 0}.detail-subtitle{font-size:26px;letter-spacing:-.7px}.detail-intro{max-width:650px;line-height:1.6;font-size:20px;color:var(--muted)}.detail-visual .project-art{height:55svh;min-height:300px}.detail-overview{padding-top:80px;padding-bottom:70px;max-width:1100px}.detail-overview>p{font-size:22px;line-height:1.6;max-width:780px}.detail-focus{padding-bottom:90px}.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:30px}.focus-grid article{border-top:1px solid var(--line);padding-top:20px}.focus-grid h3{font-size:22px;font-weight:500}.focus-grid p{font-size:17px;line-height:1.6;color:var(--muted)}.next-project{background:#dfedff;padding-top:55px;padding-bottom:65px}@media(max-width:760px){.hero{padding-top:50px}.hero-bottom{margin-bottom:45px}.project{min-height:90svh}.project-art,.featured .project-art{height:auto;min-height:300px}.project-caption{min-height:110px;flex-direction:column;justify-content:center}.process-grid{margin-top:50px}.contact h2{font-size:16vw}.contact-links{margin-top:25px}.contact footer{margin-top:45px}.focus-grid{grid-template-columns:1fr}.detail-hero{padding-top:60px}.detail-subtitle{font-size:22px}.detail-intro{font-size:18px}}@media(prefers-reduced-motion:reduce){.project-art>div,.loader{transition:none}}
/* Reference hero: split oversized name and information at the edges. */
.portfolio-header{height:44px;padding:0 2%;border:0;justify-content:space-between}.portfolio-header nav{gap:25px}.portfolio-header a{font:12px/1.4 monospace}.portfolio-header nav a:last-child{border:0;padding:0}.reference-hero{min-height:calc(100svh - 44px);padding:0 2%;display:grid;grid-template-rows:1fr auto auto;align-content:stretch;gap:0}.reference-hero h1{width:100%;display:flex;flex-direction:column;align-self:center;font-family:Manrope,Arial,sans-serif;font-weight:800;font-size:clamp(90px,18.5vw,320px);line-height:.78;letter-spacing:-.075em;margin:0;padding:60px 0 35px;white-space:normal}.reference-hero .first-name{align-self:flex-start}.reference-hero .last-name{align-self:flex-end;margin-top:-.01em}.reference-hero .name-period{font-size:.55em;letter-spacing:-.1em}.hero-role{font-family:Manrope,Arial,sans-serif;font-size:clamp(23px,3.35vw,48px);font-weight:750;letter-spacing:-.065em;line-height:1.02;margin:20px 0 0}.reference-hero .hero-meta{margin:0;padding:clamp(45px,10vh,110px) 0 22px;border:0;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:20px;font:12px/1.55 monospace;letter-spacing:0}.reference-hero .hero-meta>span:nth-child(2){justify-self:center}.availability{justify-self:end;display:flex;align-items:center;gap:12px}.availability i{width:8px;height:8px;border-radius:50%;background:#2878ef;display:inline-block}@media(min-width:1600px){.portfolio-header,.reference-hero{padding-left:2%;padding-right:2%}.reference-hero h1{font-size:18.5vw}}@media(max-width:760px){.portfolio-header{padding:0 5%;height:50px}.portfolio-header nav{gap:18px}.portfolio-header a{font-size:11px}.reference-hero{padding:0 5%;min-height:calc(100svh - 50px)}.reference-hero h1{font-size:18.5vw;padding-top:60px;padding-bottom:40px;line-height:.88}.reference-hero .last-name{margin-top:.15em}.hero-role{font-size:clamp(25px,5vw,38px);letter-spacing:-.05em}.reference-hero .hero-meta{grid-template-columns:1fr 1fr;font-size:10px;gap:20px;padding-top:60px}.reference-hero .hero-meta>span:nth-child(2){justify-self:end}.availability{grid-column:1/-1;justify-self:start}}
.reference-hero{grid-template-columns:minmax(0,1fr);justify-content:stretch;position:relative}.reference-hero .hero-meta{width:100%;align-self:end;position:relative;z-index:1;border-top:1px solid var(--line);padding-top:18px}@media(max-width:760px){.portfolio-header a,.reference-hero .hero-meta{font-size:12px}.reference-hero .hero-meta{padding-top:16px}}
.project-caption{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.project-caption>div:first-child{grid-column:1}.project-caption .tags{grid-column:2;grid-row:1;text-align:center;justify-self:center}.project-arrow{grid-column:3;grid-row:1;justify-self:end;font-size:28px;line-height:1;font-weight:350;transition:transform .2s}.project:hover .project-arrow{transform:translate(4px,-4px)}@media(max-width:760px){.project-caption{display:grid;grid-template-columns:1fr auto}.project-caption .tags{grid-column:1;grid-row:2;text-align:left;justify-self:start}.project-arrow{grid-column:2;grid-row:1 / span 2}}
