@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--ink:#183e3b;--muted:#586b65;--paper:#f8f8f0;--lime:#d6eb9a;--orange:#d46b42;--line:#d8dfd2;--serif:Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 'DM Sans',Arial,sans-serif}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:5px}img{display:block;max-width:100%}em{font-family:var(--serif);font-weight:400}p+p{margin-top:18px}.wrap{max-width:1240px;margin:auto;padding-left:40px;padding-right:40px}.header{min-height:102px;max-width:1440px;margin:auto;padding:20px 48px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:14px;align-items:center;font-family:Manrope,sans-serif;font-weight:800;font-size:21px;white-space:nowrap}.brand small{display:block;font:9px/1.8 'DM Sans',sans-serif;letter-spacing:2px}.brand-symbol{font:italic 52px/.8 Georgia;position:relative;letter-spacing:-12px;padding-right:18px}.brand-symbol span{color:#63846b}.brand-symbol i{font:22px/1 Georgia;position:absolute;right:0;top:-6px;color:var(--orange)}nav{display:flex;gap:30px;align-items:center;font-size:13px;font-weight:600}nav a:hover,.text-link:hover{color:var(--orange)}.nav-contact{border:1px solid var(--ink);border-radius:40px;padding:11px 20px}.nav-contact span{margin-left:20px}.menu{display:none}.hero{display:grid;grid-template-columns:1.07fr 1fr;gap:50px;padding-top:72px;padding-bottom:74px;align-items:center}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;line-height:1.6}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--orange);margin-right:8px}h1{font-size:clamp(48px,5.2vw,76px);letter-spacing:-4px;line-height:1.05;font-weight:650;margin-top:26px}h1 em{color:#65805b;line-height:1.1}.intro{max-width:440px;margin-top:28px;font-size:16px;color:var(--muted)}.actions{display:flex;gap:25px;align-items:center;margin-top:30px;flex-wrap:wrap}.button{background:var(--ink);color:white;padding:15px 22px;display:inline-flex;align-items:center;justify-content:space-between;gap:32px;border-radius:5px;font-size:13px;font-weight:600;transition:transform .2s,background .2s}.button:hover{background:#326058;transform:translateY(-2px)}.text-link{font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:16px}.hero-note{display:flex;gap:12px;color:var(--muted);font-size:11px;margin-top:38px;line-height:1.6}.hero-note>span{font-size:28px}.hero-art{position:relative;padding:30px 12px 46px 0}.hero-photo{transform:rotate(3deg);background:#fff;padding:12px;box-shadow:0 14px 42px #183e3b15}.hero-photo img{height:420px;width:100%;object-fit:cover;object-position:50% 45%}.hero-photo figcaption{padding:15px 3px 5px;display:flex;align-items:center;font-size:9px;letter-spacing:1px;font-weight:700}.hero-photo figcaption>span:last-child{margin-left:auto}.scribble{position:absolute;z-index:2;color:var(--orange);font-size:100px;right:-18px;top:-43px;line-height:1}.floating-note{position:absolute;bottom:0;left:-28px;transform:rotate(-6deg);background:var(--lime);padding:20px 28px;font-size:16px;box-shadow:0 8px 14px #183e3b0a}.floating-note strong{font:italic 23px Georgia}.floating-note>span{position:absolute;right:-22px;top:5px;font-size:45px}.vertical-label{position:absolute;right:-32px;top:160px;writing-mode:vertical-rl;letter-spacing:3px;font-size:8px}.ticker{background:var(--lime);border-top:1px solid #bccb9c;border-bottom:1px solid #bccb9c;overflow:hidden}.ticker>div{padding:20px 30px;display:flex;justify-content:space-around;gap:30px;white-space:nowrap;font-size:11px;letter-spacing:2px;font-weight:700}.ticker b{font-size:18px;line-height:1}.section{padding-top:95px;padding-bottom:95px}.section-heading{display:flex;justify-content:space-between;gap:60px;align-items:end;margin-bottom:38px}h2{font-size:clamp(36px,4vw,53px);line-height:1.15;letter-spacing:-2px;font-weight:600;margin-top:16px}.section-heading>p{max-width:330px;color:var(--muted);font-size:14px}.filters{display:flex;gap:10px;margin:35px 0 30px;flex-wrap:wrap}.filters button{background:transparent;border:1px solid var(--line);border-radius:30px;padding:9px 17px;font-size:11px}.filters button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.filters span{margin-left:14px;opacity:.6}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.project[hidden]{display:none}.project-cover{display:block;position:relative;overflow:hidden;background:#e7e9df;border-radius:7px}.project-cover img{width:100%;height:270px;object-fit:cover;transition:transform .4s}.project-cover:hover img{transform:scale(1.04)}.project-cover.poster{background:#070807}.poster img{object-fit:contain}.project-number{position:absolute;top:14px;left:14px;background:var(--paper);border-radius:30px;padding:3px 10px;font-size:10px}.round-arrow{position:absolute;bottom:14px;right:14px;border-radius:50%;background:var(--paper);width:38px;height:38px;display:grid;place-items:center;font-size:22px}.tags{display:flex;gap:8px;margin:21px 0 10px;font-size:8px;letter-spacing:1.4px;font-weight:700}.tags span+span{border-left:1px solid #acb6a8;padding-left:8px}h3{font-size:22px;line-height:1.35;letter-spacing:-.6px;font-weight:650}.project p{font-size:13px;color:var(--muted);margin:12px 0 20px;line-height:1.7}.practice{background:#e9edde}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:50px}.steps article{border-top:1px solid #bdc9b5;padding-top:20px}.steps article>span{font-size:12px;color:#708366}.steps h3{margin:20px 0 12px}.steps p{font-size:14px;color:var(--muted)}.toolbox{border-top:1px solid #bdc9b5;margin-top:45px;padding-top:22px;display:flex;gap:35px;align-items:baseline}.toolbox>span{font-size:9px;letter-spacing:2px;flex-shrink:0}.toolbox p{font-size:14px}.toolbox i{color:var(--orange);font-style:normal;margin:0 15px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:38px;align-items:start}.detail-grid h3{margin-bottom:22px}.detail-grid p{font-size:15px;color:var(--muted)}.concepts{list-style:none;padding:0;margin:25px 0}.concepts li{font-size:13px;border-top:1px solid var(--line);padding:11px 0 11px 20px;position:relative}.concepts li:before{content:'↗';position:absolute;left:0;color:var(--orange)}.source{font-size:11px;border-bottom:1px solid #9aa994;padding-bottom:3px}.gallery-photo{border:0;background:transparent;padding:0;position:relative;text-align:left;width:100%;border-radius:6px;overflow:hidden}.gallery-photo>img{width:100%;height:360px;object-fit:cover;transition:transform .3s}.gallery-photo:hover>img{transform:scale(1.025)}.gallery-photo>span{position:absolute;bottom:12px;right:12px;background:var(--paper);padding:5px 12px;font-size:10px;border-radius:4px}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:44px}.video iframe{width:100%;aspect-ratio:16/9;display:block;border:0;border-radius:6px;background:#142f2c}.video figcaption{display:flex;justify-content:space-between;align-items:start;gap:16px;font-size:12px;padding-top:12px}.video figcaption a{white-space:nowrap;font-size:10px;color:var(--muted)}.detail-tint{background:#efeee4}.photo-mosaic{display:grid;grid-template-columns:1fr 1fr;gap:12px}.photo-mosaic>button:first-child{grid-column:1/-1}.photo-mosaic>button:first-child img{height:235px}.photo-mosaic>button img{height:175px}.games{grid-template-columns:1.3fr .7fr}.poster-full{background:#070807;max-width:330px;justify-self:center}.poster-full img{object-fit:contain;height:440px}.about{background:#e5eadb}.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;align-items:start}.portrait{position:relative;margin-top:20px}.portrait>img{width:100%;height:480px;object-fit:cover;object-position:center;border-radius:130px 130px 5px 5px;filter:saturate(.75)}.portrait-mark{position:absolute;right:-28px;top:-38px;color:var(--orange);font-size:105px;line-height:1}.portrait p{font:italic 30px Georgia;margin-top:25px}.portrait small{display:block;font:8px/2 'DM Sans',sans-serif;letter-spacing:1.7px;margin-top:8px}.about h2{margin-bottom:24px}.about .about-lead{font-size:21px;line-height:1.5;color:var(--ink)}.about p{font-size:14px;color:var(--muted)}details{border-top:1px solid #bdc9b5;margin-top:25px;padding-top:17px}summary{cursor:pointer;font-size:13px;font-weight:600;list-style:none;display:flex;justify-content:space-between}details p{margin-top:18px}details[open] summary span{transform:rotate(45deg)}.timeline article{display:flex;gap:40px;border-top:1px solid var(--line);padding:28px 0}.timeline article>span{min-width:115px;font-size:11px;letter-spacing:1px;padding-top:4px}.timeline h3{font-size:19px}.timeline p{font-size:13px;color:var(--muted);margin-top:8px}.timeline small{display:block;font-size:12px;color:var(--muted);margin-top:10px}.timeline b{margin-left:auto;color:#8c9b81;font-size:28px;font-weight:400}.course{margin-top:25px;background:#ecebdc;border-radius:8px;padding:32px 38px;border-left:4px solid var(--orange)}.course>span{font-size:9px;letter-spacing:1.8px}.course h3{margin:12px 0}.course p{font-size:14px;max-width:750px;color:var(--muted)}.contact{background:var(--ink);color:var(--paper)}.contact .eyebrow{color:var(--lime)}.contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:80px;margin-top:25px}.contact h2{font-size:64px;position:relative;margin-top:0}.contact h2 em{color:var(--lime)}.contact h2>span{font:70px Georgia;color:var(--lime);margin-left:30px}.contact p{color:#c2d1c8;max-width:340px;font-size:14px}.light{background:var(--lime);color:var(--ink);margin:25px 0 18px}.light:hover{background:#e0f1b6}.email{display:block;font-size:13px;margin-top:9px}.secondary-email{font-size:11px;color:#c2d1c8}.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:28px;padding-bottom:28px}.footer .brand{font-size:17px}.footer .brand span{color:var(--orange);font-size:27px}.footer p,.footer>a:last-child{font-size:10px;color:var(--muted)}.skip{position:absolute;top:-100px;left:15px;background:var(--lime);padding:10px;z-index:20}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}dialog{border:0;padding:50px 20px 16px;border-radius:8px;background:var(--paper);color:var(--ink);max-width:min(90vw,1000px);max-height:90vh}dialog::backdrop{background:#102925dc}dialog img{max-height:70vh;width:auto;max-width:100%;object-fit:contain;margin:auto}dialog p{font-size:13px;text-align:center;margin-top:12px}.close-dialog{position:absolute;right:15px;top:10px;border:0;background:transparent;padding:6px;font-size:13px}body:has(dialog[open]){overflow:hidden}@media(min-width:1500px){.hero{padding-top:95px;padding-bottom:95px}}@media(max-width:1000px){.header{padding:20px 30px}nav{gap:18px}.brand{font-size:17px}.hero{gap:30px}h1{letter-spacing:-3px}.hero-photo img{height:360px}.actions{gap:18px}.about-grid{gap:50px}.detail-grid{gap:35px}.contact h2{font-size:52px}.project-cover img{height:230px}}@media(max-width:760px){html{scroll-padding-top:30px}.wrap{padding-left:24px;padding-right:24px}.header{padding:18px 24px;min-height:80px;position:relative;z-index:5}.brand-symbol{font-size:42px}.menu{display:flex;gap:15px;align-items:center;background:transparent;border:1px solid var(--line);border-radius:30px;padding:8px 14px;font-size:12px}nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:20px 24px;border-bottom:1px solid var(--line);box-shadow:0 10px 20px #183e3b12}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:18px}.hero{grid-template-columns:1fr;padding-top:40px;gap:35px;padding-bottom:55px}h1{font-size:58px;letter-spacing:-3px}h1 br:nth-of-type(3){display:none}.intro{max-width:500px}.hero-art{max-width:520px;margin:auto;width:100%;padding-left:15px;padding-right:15px}.hero-photo img{height:360px}.scribble{right:0;top:-23px;font-size:75px}.floating-note{left:4px;bottom:5px;font-size:14px;padding:15px 22px}.floating-note strong{font-size:21px}.vertical-label{right:-8px}.hero-note{margin-top:24px}.eyebrow{font-size:9px;letter-spacing:1.7px}.ticker>div{justify-content:flex-start;gap:22px;font-size:9px;padding:16px 24px}.section{padding-top:60px;padding-bottom:60px}.section-heading{display:block;margin-bottom:25px}.section-heading>p{margin-top:22px;max-width:100%}h2{font-size:39px;letter-spacing:-1.8px}.projects{grid-template-columns:1fr;gap:36px}.project-cover img{height:320px}.project-cover.poster img{height:320px}.project h3{font-size:25px}.project p{font-size:14px;max-width:500px}.tags{font-size:9px}.text-link{font-size:13px}.filters{gap:8px}.filters button{padding:8px 12px;font-size:10px}.steps{grid-template-columns:1fr;gap:25px;margin-top:30px}.steps article{display:grid;grid-template-columns:35px 1fr;gap:7px 12px}.steps h3{margin:0;font-size:21px}.steps p{grid-column:2}.toolbox{display:block}.toolbox p{margin-top:14px;line-height:2}.toolbox i{margin:0 8px}.detail-grid,.games{grid-template-columns:1fr;gap:30px;margin-top:25px}.detail-grid p{font-size:14px}.gallery-photo>img{height:320px}.video-grid{grid-template-columns:1fr;gap:28px;margin-top:30px}.photo-mosaic>button:first-child img{height:260px}.photo-mosaic>button img{height:170px}.poster-full{max-width:290px}.about-grid{grid-template-columns:1fr;gap:45px}.portrait{max-width:300px;margin:0 auto}.portrait>img{height:360px}.portrait-mark{font-size:80px;right:-15px;top:-20px}.portrait p{font-size:28px}.about h2 br{display:none}.timeline article{gap:18px}.timeline article>span{min-width:65px;font-size:9px}.timeline h3{font-size:16px}.timeline b{display:none}.course{padding:25px}.contact-grid{grid-template-columns:1fr;gap:30px}.contact h2{font-size:46px}.contact h2>span{font-size:50px}.contact p{max-width:100%}.footer{flex-wrap:wrap}.footer p{order:3;flex-basis:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
