:root{--paper:#f7f6f2;--ink:#20251e;--line:#c9cdc3}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid #9b5d24;outline-offset:6px}img{display:block;width:100%;height:auto}header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 3.2%;background:var(--paper);position:relative;z-index:10;border-bottom:1px solid var(--line)}.brand{font-size:25px;letter-spacing:-1.1px;font-weight:500}nav{display:flex;gap:38px}nav a{font-size:14px;padding:6px 0;border-bottom:1px solid transparent}nav a:hover,nav a[aria-current]{border-color:currentColor}.menu-toggle{display:none}.hero{height:calc(100svh - 94px);min-height:570px;max-height:1100px;position:relative;color:white;background:#443527;overflow:hidden}.hero>img{height:100%;object-fit:cover;object-position:center 55%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0003,transparent 35%,#0007)}.hero-top,.hero-caption,.hero h1{position:absolute;z-index:1}.hero-top{top:27px;left:3.2%;right:3.2%;display:flex;justify-content:space-between;font-size:13px;text-transform:uppercase;letter-spacing:1px}.hero-caption{bottom:27%;left:3.2%;right:3.2%;display:flex;align-items:end;justify-content:space-between;font-size:15px}.hero-caption small{font-size:14px;font-weight:400}.hero-caption>span:last-child{border-bottom:1px solid #fff8;padding-bottom:8px}.hero h1{bottom:8px;left:2.3%;margin:0;font-size:clamp(64px,14.8vw,250px);line-height:.92;letter-spacing:-.07em;font-weight:400;white-space:nowrap}.intro{padding:130px 8% 140px;display:grid;grid-template-columns:1fr 2fr;gap:40px}.eyebrow{text-transform:uppercase;letter-spacing:1.5px;font-size:12px}.intro p{font-family:Georgia,'Times New Roman',serif;font-size:clamp(28px,3.5vw,55px);line-height:1.22;margin:0;letter-spacing:-1.5px}.work{padding:0 3.2% 110px}.section-heading{border-top:1px solid var(--line);padding:20px 0 35px;display:flex;justify-content:space-between;align-items:center}.section-heading h2{font-size:16px;font-weight:400;margin:0}.section-heading>span{font-size:13px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:76px 28px}.project-card:nth-child(3n+1){grid-column:1/-1}.card-image{overflow:hidden;background:#e4e5df;aspect-ratio:1.3}.project-card:nth-child(3n+1) .card-image{aspect-ratio:2.1}.card-image img{height:100%;object-fit:cover;transition:transform .65s}.project-card:hover img{transform:scale(1.025)}.card-label{display:grid;grid-template-columns:1fr auto;position:relative;padding:18px 0 0;gap:4px}.card-label h2{font-size:24px;font-weight:400;letter-spacing:-.6px;line-height:1.2;margin:0}.card-label>span:not(.index){font-size:13px;grid-row:2;color:#575e53}.index{grid-column:2;grid-row:1/3;font-size:13px}.page-head{padding:85px 6% 75px}.page-head h1,.project-head h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(48px,7vw,110px);line-height:1.05;letter-spacing:-3px;margin:25px 0}.page-head p{font-size:18px}.project-head{padding:65px 6% 70px}.project-description{display:grid;grid-template-columns:1fr 1.3fr;gap:50px;margin-top:42px}.project-description>span{font-size:14px}.project-description p{font-size:19px;line-height:1.65;margin:0;max-width:700px}.project-cover{margin:0 3.2%}.project-cover img{max-height:85vh;object-fit:cover}.gallery{margin:80px 6%;display:grid;gap:42px}.gallery-image{padding:0;border:0;background:transparent;cursor:zoom-in}.gallery-image img{max-height:1000px;object-fit:contain}.next-project{display:flex;flex-direction:column;gap:18px;padding:65px 6% 95px;border-top:1px solid var(--line)}.next-project>span:last-child{font-family:Georgia,serif;font-size:clamp(28px,4vw,60px);line-height:1.2}.about-layout{padding:0 6% 110px;display:grid;grid-template-columns:1fr 1fr;gap:7%}.about-layout>img{height:100%;max-height:720px;object-fit:cover}.about-layout h2{font:36px Georgia,serif;margin:0 0 30px}.about-layout p{font-size:18px;line-height:1.8}.text-link{display:inline-block;border-bottom:1px solid;padding:10px 0;font-size:14px}.downloads{display:flex;gap:32px;flex-wrap:wrap}.resume-layout{padding:0 6% 110px;display:grid;grid-template-columns:1fr 1.6fr;gap:12%}.resume-layout h2{border-top:1px solid var(--line);padding-top:22px;font-size:16px;text-transform:uppercase;letter-spacing:1px;font-weight:400}.resume-layout h3{font-size:23px;font-weight:400;margin:25px 0 5px}.resume-layout p{line-height:1.75}.resume-layout article{padding:30px 0}.resume-layout article h3{margin-top:12px}.contact-page{padding:100px 6% 140px;min-height:70vh}.contact-page h1{font:clamp(60px,10vw,155px)/1.1 Georgia,serif;letter-spacing:-4px;margin:45px 0}.email{font-size:clamp(22px,4vw,58px);letter-spacing:-1px;border-bottom:1px solid;overflow-wrap:anywhere}.contact-details{margin:55px 0 30px}footer{background:#20271f;color:#f5f4ec;padding:65px 3.2% 25px}.footer-name{font-size:clamp(50px,12vw,190px);font-weight:400;line-height:1;letter-spacing:-.065em;display:block;margin-bottom:60px}footer>div{display:flex;justify-content:space-between;gap:25px;font-size:14px}.fine{border-top:1px solid #ffffff30;margin-top:50px;padding-top:20px;font-size:12px}dialog{border:0;padding:60px 25px 25px;background:var(--paper);max-width:96vw;width:1400px;max-height:95vh}dialog::backdrop{background:#000c}dialog img{max-height:80vh;object-fit:contain}.close{position:absolute;right:25px;top:16px;border:0;background:none;cursor:pointer}.skip{position:fixed;top:-60px;padding:10px;background:white;z-index:100}.skip:focus{top:0}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media(max-width:700px){header{height:76px;padding:0 6%}.brand{font-size:23px}.menu-toggle{display:block;border:0;background:none;padding:10px 0;font-size:14px}nav{display:none;position:absolute;top:76px;left:0;right:0;padding:24px 6% 35px;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;gap:18px}nav.open{display:flex}nav a{font-size:22px;width:max-content}.hero{height:calc(85svh - 76px);min-height:460px}.hero-top{left:6%;right:6%;font-size:11px;gap:30px}.hero-caption{left:6%;right:6%;bottom:22%;font-size:13px;gap:25px}.hero-caption small{font-size:12px}.hero h1{font-size:14.6vw;bottom:25px}.intro{padding:65px 6% 75px;grid-template-columns:1fr;gap:25px}.intro p{font-size:31px;letter-spacing:-.7px}.work{padding:0 6% 70px}.project-grid{grid-template-columns:1fr;gap:42px}.project-card:nth-child(3n+1){grid-column:auto}.project-card:nth-child(3n+1) .card-image,.card-image{aspect-ratio:1.25}.card-label h2{font-size:22px}.page-head{padding:55px 6% 45px}.page-head h1,.project-head h1{letter-spacing:-2px}.project-head{padding:45px 6%}.project-description{grid-template-columns:1fr;gap:22px;margin-top:30px}.project-description p{font-size:17px}.project-cover{margin:0}.gallery{margin:35px 4%;gap:22px}.about-layout,.resume-layout{grid-template-columns:1fr;gap:45px;padding-bottom:65px}.about-layout img{max-height:400px}.contact-page{padding:60px 6% 90px}.contact-page h1{letter-spacing:-2px}.contact-details{margin-top:45px}footer{padding:40px 6% 20px}.footer-name{margin-bottom:35px}footer>div{flex-direction:column;gap:15px}.fine{margin-top:30px}.next-project{padding:40px 6% 65px}}

/* Compact project index and galleries. */
.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 24px;max-width:1180px;margin:0 auto}
.project-card:nth-child(3n+1){grid-column:auto}
.project-card:nth-child(3n+1) .card-image,.card-image{aspect-ratio:1.4}
.card-label h2{font-size:20px;letter-spacing:-.35px}
.project-card:hover img{transform:none}
.project-cover{width:calc(100% - 12%);max-width:840px;margin:0 auto}
.project-cover img{height:auto;max-height:570px;object-fit:contain}
.gallery{width:calc(100% - 12%);max-width:1040px;margin:55px auto 75px;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;align-items:center}
.gallery-image{min-width:0}
.study-panel{background:#f3f1eb;color:#182426;margin:0 -5vw;padding:72px 5vw 92px}.study-panel .ai-gallery{max-width:1260px;margin:0 auto;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:42px 20px;align-items:start}.study-panel .ai-study{grid-column:span 4;aspect-ratio:auto;color:#182426;overflow:visible}.study-panel .ai-study:nth-child(1){grid-column:span 8}.study-panel .ai-study:nth-child(2){grid-column:span 4}.study-panel .ai-study:nth-child(3){grid-column:span 5}.study-panel .ai-study:nth-child(4){grid-column:span 7}.study-panel .ai-study:nth-child(5){grid-column:span 4}.study-panel .ai-study:nth-child(6){grid-column:span 8}.study-panel .ai-study:nth-child(7n+7){grid-column:span 7}.study-panel .ai-study:nth-child(7n+8){grid-column:span 5}.study-panel .ai-study img{height:auto;aspect-ratio:1/1;object-fit:cover;background:#e5e2db;transition:opacity .3s,transform .5s}.study-panel .ai-study:hover img,.study-panel .ai-study:focus-visible img{transform:none;opacity:.88}.study-panel .ai-study span{position:static;display:block;color:#182426;font-size:10px;letter-spacing:.12em;text-shadow:none;padding-top:10px}.study-panel .motion-frame{max-width:1080px;margin:0 auto}.study-panel .study-motion-video{background:#101b1b}.study-panel .motion-caption{color:#182426}@media(max-width:800px){.study-panel{margin:0 -6vw;padding:48px 6vw 64px}.study-panel .ai-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 12px}.study-panel .ai-study,.study-panel .ai-study:nth-child(n){grid-column:span 1}.study-panel .ai-study:nth-child(1){grid-column:1/-1}.study-panel .ai-study img{aspect-ratio:1/1}}
.gallery-image img{max-height:390px;object-fit:contain}
.video-hero video{display:block;width:100%;height:100%;object-fit:cover;object-position:center 58%}
.video-hero:after{pointer-events:none;background:linear-gradient(180deg,#0002,transparent 40%,#0006)}
.video-toggle{position:absolute;z-index:2;right:3.2%;top:66px;background:transparent;border:0;border-bottom:1px solid #ffffff80;color:white;padding:4px 0;font-size:12px;cursor:pointer}
@media(min-width:701px){.video-hero{height:calc(100svh - 94px);min-height:520px;max-height:850px}}
@media(max-width:1000px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.project-grid{grid-template-columns:1fr;max-width:460px;gap:35px}.project-card:nth-child(3n+1) .card-image,.card-image{aspect-ratio:1.5}.gallery{grid-template-columns:1fr;max-width:460px;gap:25px}.project-cover{max-width:460px}.video-toggle{right:6%;top:63px}.video-hero video{object-position:center}.video-hero{min-height:450px}}

/* Satoshi and a palette drawn from the hero's deep water tones. */
@font-face{font-family:Satoshi;src:url('/assets/Satoshi-Variable.woff2') format('woff2');font-style:normal;font-weight:300 900;font-display:swap}
:root{--paper:#152c31;--ink:#f1f3eb;--line:#456066}
body,button,input,textarea,select,h1,h2,h3,h4,p,span,a,.intro p,.page-head h1,.project-head h1,.about-layout h2,.next-project>span:last-child,.contact-page h1{font-family:Satoshi,Arial,sans-serif}
body{font-weight:400}.card-label>span:not(.index){color:#b9ced0}.card-image{background:#1b353a}footer{background:#102328;color:var(--ink)}.skip{background:var(--paper)}
.about-layout{grid-template-columns:280px minmax(0,1fr);gap:8%;max-width:1180px;margin:0 auto;align-items:start}
.about-layout>.about-portrait{width:280px;max-width:100%;height:auto;max-height:none;object-fit:contain}
.home header{position:absolute;inset:0 0 auto;background:transparent;border:0;color:white}
.home .video-hero{height:100svh;min-height:540px;max-height:none}
.home .hero-top{top:110px}
.home .hero-caption{bottom:27%}
.home .hero h1{font-family:Satoshi,Arial,sans-serif;font-weight:400;font-size:14.1vw;letter-spacing:-.065em;bottom:26px}
.home .video-hero:after{background:linear-gradient(180deg,#07181c88 0%,transparent 30%,#07181c33 70%,#07181c77)}
.page-head h1,.project-head h1{font-weight:400;letter-spacing:-.045em}.contact-page h1{font-weight:400;letter-spacing:-.05em}
@media(max-width:700px){.about-layout{grid-template-columns:1fr;gap:36px}.about-layout>.about-portrait{width:240px;justify-self:start}.home .hero-top{top:94px}.home nav{background:#152c31}.home .video-hero{min-height:480px}.home .hero h1{bottom:34px}.home .hero-caption{bottom:22%}}

/* Project index: restrained typography with an adjacent image preview. */
.project-directory{max-width:1220px;margin:0 auto;padding:62px 5% 95px;min-height:calc(100svh - 94px)}
.directory-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:48px;color:#b9ced0}
.directory-heading h1{font:500 13px/1.5 Satoshi,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;margin:0}.directory-heading>span{font-size:12px;letter-spacing:.12em}
.directory-layout{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}
.project-index{display:flex;position:static;flex-direction:column;gap:0;padding:0;background:none;border:0;min-width:0}
.project-index .project-entry{position:relative;display:grid;grid-template-columns:24px 1fr 18px;gap:14px;align-items:center;padding:19px 0;border:0;color:#bed0d0;width:100%;font-size:16px}
.entry-number{font-size:11px;color:#8fa8aa}.entry-title{font-size:18px;letter-spacing:.035em;text-transform:uppercase;line-height:1.4;display:block}.entry-category{display:block;font-size:12px;color:#91abad;margin-top:5px}.entry-arrow{font-size:18px;opacity:0;transition:opacity .2s}
.project-index .project-entry:hover,.project-index .project-entry:focus-visible,.project-index .project-entry.is-selected{color:#fff}.project-entry.is-selected .entry-arrow,.project-entry:hover .entry-arrow,.project-entry:focus-visible .entry-arrow{opacity:1}
.entry-thumbnail{display:none}.directory-preview{margin:0;width:100%;max-width:490px;justify-self:end}.directory-preview img{width:100%;aspect-ratio:1.419;object-fit:contain;background:transparent;height:auto}.directory-preview figcaption{display:flex;justify-content:space-between;gap:20px;margin-top:18px;font-size:12px;color:#b9ced0}.directory-preview figcaption>span:first-child{text-transform:uppercase;letter-spacing:.05em}
@media(max-width:900px) and (min-width:701px){.directory-layout{gap:5%;grid-template-columns:1.1fr 1fr}.entry-title{font-size:16px}}
@media(max-width:700px){.project-directory{padding:38px 6% 60px}.directory-heading{margin-bottom:18px}.directory-layout{display:block}.directory-preview{display:none}.project-index{display:flex;position:static;padding:0;border:0;background:none;gap:0}.project-index .project-entry{grid-template-columns:20px 1fr 104px;gap:10px;padding:24px 0;border-bottom:1px solid var(--line)}.entry-title{font-size:15px;letter-spacing:.025em}.entry-category{font-size:12px}.entry-arrow{display:none}.entry-thumbnail{display:block;grid-column:3;grid-row:1;width:104px;aspect-ratio:1.419;object-fit:contain}.entry-number{font-size:11px}.project-index .project-entry{color:var(--ink)}}

/* Imagined Worlds visual study. */
.imagined-worlds{border-top:1px solid var(--line);padding:92px 5% 110px;max-width:1220px;margin:0 auto}.imagined-heading{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:end;margin-bottom:38px}.imagined-heading h2{font:400 clamp(32px,4vw,62px)/1.02 Satoshi,Arial,sans-serif;letter-spacing:-.045em;margin:20px 0 0}.imagined-heading p{max-width:420px;color:#a9c0c1;font-size:15px;line-height:1.7;margin:0}.study-tabs{display:flex;justify-content:center;gap:34px;border-bottom:1px solid var(--line);margin-bottom:34px}.study-tab{position:relative;border:0;background:none;color:#89a0a2;padding:0 0 15px;font:500 12px/1 Satoshi,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.study-tab span{font-size:10px;opacity:.65;margin-left:7px}.study-tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:transparent;transition:background .25s}.study-tab:hover,.study-tab:focus-visible,.study-tab.is-active{color:var(--ink)}.study-tab.is-active::after{background:var(--accent)}.study-panel[hidden]{display:none}.ai-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.ai-study{position:relative;padding:0;border:0;background:none;cursor:zoom-in;overflow:hidden;aspect-ratio:1}.ai-study img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.ai-study:hover img,.ai-study:focus-visible img{transform:scale(1.03)}.ai-study span{position:absolute;bottom:10px;left:12px;color:white;font-size:11px;letter-spacing:.1em;text-shadow:0 1px 8px #0008}.motion-frame{max-width:920px;margin:0 auto}.study-motion-video{display:block;width:100%;max-height:72vh;object-fit:cover;background:#101b1b}.motion-caption{display:flex;justify-content:space-between;color:#9fb5b6;font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin:13px 0 0}.motion-caption span:last-child{opacity:.6}@media(max-width:800px){.imagined-worlds{padding:65px 6% 75px}.imagined-heading{grid-template-columns:1fr;gap:24px;margin-bottom:30px}.study-tabs{justify-content:flex-start;gap:25px}.ai-gallery{grid-template-columns:repeat(2,1fr);gap:12px}.imagined-heading h2{font-size:38px}.motion-caption{font-size:10px}}
.study-panel{background:#f3f1eb;color:#182426;margin:0 -5vw;padding:72px 5vw 92px}.study-panel .ai-gallery{max-width:1260px;margin:0 auto;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:42px 20px;align-items:start}.study-panel .ai-study{grid-column:span 4;aspect-ratio:auto;color:#182426;overflow:visible}.study-panel .ai-study:nth-child(1){grid-column:span 8}.study-panel .ai-study:nth-child(2){grid-column:span 4}.study-panel .ai-study:nth-child(3){grid-column:span 5}.study-panel .ai-study:nth-child(4){grid-column:span 7}.study-panel .ai-study:nth-child(5){grid-column:span 4}.study-panel .ai-study:nth-child(6){grid-column:span 8}.study-panel .ai-study:nth-child(7n+7){grid-column:span 7}.study-panel .ai-study:nth-child(7n+8){grid-column:span 5}.study-panel .ai-study img{height:auto;aspect-ratio:1/1;object-fit:cover;background:#e5e2db;transition:opacity .3s,transform .5s}.study-panel .ai-study:hover img,.study-panel .ai-study:focus-visible img{transform:none;opacity:.88}.study-panel .ai-study span{position:static;display:block;color:#182426;font-size:10px;letter-spacing:.12em;text-shadow:none;padding-top:10px}.study-panel .motion-frame{max-width:1080px;margin:0 auto}.study-panel .study-motion-video{background:#101b1b}.study-panel .motion-caption{color:#182426}@media(max-width:800px){.study-panel{margin:0 -6vw;padding:48px 6vw 64px}.study-panel .ai-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 12px}.study-panel .ai-study,.study-panel .ai-study:nth-child(n){grid-column:span 1}.study-panel .ai-study:nth-child(1){grid-column:1/-1}.study-panel .ai-study img{aspect-ratio:1/1}}
