@import url("https://fonts.googleapis.com/css2?family=Fredoka:wght@500;600;700&family=Inter:wght@400;500;600&display=swap");:root{--bg:#f2f0eb;--bg-soft:#faf8f4;--text:#191817;--muted:#74716b;--line:rgba(25,24,23,.13);--primary:#8d7b68;--accent:#c07b4b;--max:1180px;--ease:cubic-bezier(.2,.7,.2,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:var(--bg);line-height:1.55;overflow-x:hidden;font-weight:350}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-bg{position:fixed;inset:0;pointer-events:none;z-index:-3;overflow:hidden;background:radial-gradient(circle at 84% 4%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 34%),radial-gradient(circle at 14% 18%,color-mix(in srgb,var(--primary) 12%,transparent),transparent 32%),linear-gradient(180deg,var(--bg-soft) 0,var(--bg) 100%)}.site-bg:before{content:"";position:absolute;inset:-24px;background-image:var(--site-bg-image,none);background-size:cover;background-position:50%;opacity:.11;filter:saturate(.82) contrast(.92);transform:scale(1.02)}.site-bg:after{content:"";position:absolute;inset:0;opacity:.13;background-image:linear-gradient(90deg,rgba(25,24,23,.04) 1px,transparent 0),linear-gradient(rgba(25,24,23,.035) 1px,transparent 0);background-size:72px 72px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.7),transparent 70%);mask-image:linear-gradient(180deg,rgba(0,0,0,.7),transparent 70%)}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:100%;margin:0 auto;padding:24px 38px 16px;background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid rgba(25,24,23,.06)}.brand{display:inline-flex;align-items:center;gap:12px;font-weight:500;letter-spacing:.06em}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;color:var(--accent);font-size:12px;font-weight:420}.brand-name{font-size:14px}.nav-links{display:flex;align-items:center;gap:30px}.nav-links a{position:relative;font-size:11px;font-weight:430;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}.nav-links a:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .28s var(--ease)}.nav-links a.active,.nav-links a:hover{color:var(--text)}.nav-links a.active:after,.nav-links a:hover:after{transform:scaleX(1)}.mobile-menu{display:none}.main-content{min-height:70vh}.section{max-width:var(--max);margin:0 auto;padding:92px 36px}.hero-minimal{position:relative;min-height:calc(100vh - 76px);display:grid;align-items:center;isolation:isolate;overflow:hidden;padding-top:70px;padding-bottom:86px}.hero-bg{display:none}.banner-bg{position:absolute;inset:0;z-index:-2;background-image:var(--image),linear-gradient(135deg,#d8d0c4,#9f9488 48%,#f6efe6);background-size:cover;background-position:50%;opacity:.48;filter:saturate(.72) contrast(.86);transform:scale(1.02)}.banner-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--bg) 84%,transparent) 0,color-mix(in srgb,var(--bg) 60%,transparent) 48%,color-mix(in srgb,var(--bg) 78%,transparent) 100%)}.hero-content{max-width:var(--max);width:100%;margin:0 auto;padding:0 36px}.kicker{margin:0 0 20px;font-size:11px;line-height:1.2;letter-spacing:.2em;color:var(--accent);font-weight:430}.display,.kicker{text-transform:uppercase}.display{max-width:780px;margin:0;font-size:clamp(42px,8vw,96px);line-height:.98;letter-spacing:.055em;font-weight:260}.lead{max-width:660px;margin:24px 0 0;color:color-mix(in srgb,var(--text) 78%,transparent);font-size:clamp(15px,1.6vw,19px);line-height:1.8;font-weight:330}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:34px}.button{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--text);border-radius:999px;padding:10px 15px;font-size:11px;letter-spacing:.11em;text-transform:uppercase;font-weight:450;transition:transform .25s var(--ease),background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--text);color:var(--bg)}.button.ghost{border-color:var(--line);color:var(--text);background:color-mix(in srgb,var(--bg-soft) 40%,transparent)}.button svg{width:14px;height:14px}.section-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);grid-gap:54px;gap:54px;align-items:end;margin-bottom:38px}.eyebrow{margin:0 0 14px;font-size:10px;letter-spacing:.18em;color:var(--accent);font-weight:450}.eyebrow,.section-title{text-transform:uppercase}.section-title{margin:0;font-size:clamp(30px,4vw,52px);line-height:1.04;letter-spacing:.05em;font-weight:270}.section-copy{margin:0;color:var(--muted);font-size:14px;line-height:1.75}.portfolio-groups{display:grid;grid-gap:44px;gap:44px}.project-group-header{display:flex;align-items:baseline;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:18px;margin-bottom:16px}.project-group-title{margin:0;font-size:clamp(18px,2vw,24px);letter-spacing:.13em;text-transform:uppercase;font-weight:300}.project-count{font-size:11px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}.thumb-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.project-thumb{position:relative;min-height:196px;overflow:hidden;background:var(--bg-soft);border:1px solid rgba(25,24,23,.09);isolation:isolate}.project-thumb:before{content:"";position:absolute;inset:0;background-image:var(--thumb),linear-gradient(135deg,color-mix(in srgb,var(--primary) 18%,var(--bg-soft)),color-mix(in srgb,var(--accent) 18%,var(--bg)));background-size:cover;background-position:50%;transition:transform .5s var(--ease),opacity .3s var(--ease),filter .3s var(--ease)}.project-thumb:hover:before{transform:scale(1.045);filter:saturate(.98) contrast(.98)}.project-thumb:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.48),rgba(0,0,0,.08) 44%,transparent 70%);opacity:.86;z-index:1}.project-thumb-info{position:absolute;z-index:2;left:14px;right:14px;bottom:12px;color:#fff}.project-thumb-info h3{margin:0;font-size:14px;line-height:1.15;font-weight:430;letter-spacing:.02em}.project-thumb-info p{margin:5px 0 0;font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.75}.empty-projects{display:grid;place-items:center;min-height:160px;border:1px dashed var(--line);background:color-mix(in srgb,var(--bg-soft) 54%,transparent);color:var(--muted);font-size:13px}.about-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);grid-gap:56px;gap:56px;align-items:start}.about-image{position:-webkit-sticky;position:sticky;top:112px;min-height:560px;background-image:var(--image),linear-gradient(145deg,color-mix(in srgb,var(--primary) 24%,var(--bg-soft)),color-mix(in srgb,var(--accent) 18%,var(--bg)));background-size:cover;background-position:50%;border:1px solid rgba(25,24,23,.1)}.about-text h2{max-width:740px;margin:0 0 24px;font-size:clamp(28px,3.4vw,46px);line-height:1.1;letter-spacing:.04em;text-transform:uppercase;font-weight:270}.about-text p{margin:0 0 22px;color:var(--muted);font-size:14px;line-height:1.78}.tools-strip{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:32px 0}.tool-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:color-mix(in srgb,var(--bg-soft) 56%,transparent);color:var(--text);font-size:12px;letter-spacing:.05em;font-weight:360}.education{margin-top:34px;border-top:1px solid var(--line)}.education-item{display:grid;grid-template-columns:118px 1fr;grid-gap:24px;gap:24px;padding:18px 0;border-bottom:1px solid var(--line)}.education-item time{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);font-weight:430}.education-item h3{margin:0 0 6px;font-size:14px;font-weight:430}.education-item p{margin:0;font-size:13px;color:var(--muted)}.contact-section,.portfolio-section{position:relative;overflow:hidden}.portfolio-section .banner-bg{opacity:.12}.contact-section .banner-bg{opacity:.24}.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);grid-gap:56px;gap:56px;align-items:start}.contact-title{margin:0 0 20px;font-size:clamp(32px,5vw,68px);line-height:1.02;letter-spacing:.05em;text-transform:uppercase;font-weight:260}.contact-intro{max-width:640px;color:var(--muted);font-size:14px;line-height:1.8}.contact-list{display:grid;grid-gap:14px;gap:14px;border-top:1px solid var(--line);padding-top:18px}.icon-line{display:flex;align-items:center;gap:12px;min-height:42px;font-size:13px;color:var(--text)}.icon-line svg{width:18px;height:18px;stroke-width:1.45;color:var(--accent)}.site-footer{max-width:calc(var(--max) + 72px);margin:0 auto;padding:52px 36px 42px;display:grid;grid-template-columns:minmax(0,1fr) 210px 260px;grid-gap:38px;gap:38px;border-top:1px solid var(--line)}.footer-kicker,.footer-label{margin:0 0 13px;color:var(--accent);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:450}.site-footer h2{margin:0 0 12px;font-size:28px;letter-spacing:.08em;text-transform:uppercase;font-weight:270}.site-footer p{color:var(--muted);font-size:13px;margin:0}.footer-links div{display:grid;grid-gap:8px;gap:8px}.footer-links a{font-size:12px;color:var(--muted)}.footer-links a:hover{color:var(--text)}.reveal{animation:fadeUp .7s var(--ease) both}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (max-width:920px){.site-header{padding:20px 22px 14px}.nav-links{gap:18px}.nav-links a{font-size:10px}.section{padding:78px 24px}.hero-content{padding:0 24px}.about-grid,.contact-grid,.section-intro,.site-footer{grid-template-columns:1fr}.about-image{position:relative;top:auto;min-height:420px}.thumb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.site-header{padding:16px 18px 12px}.brand-name{font-size:13px}.nav-links{position:fixed;left:14px;right:14px;top:68px;display:none;flex-direction:column;align-items:stretch;gap:0;padding:10px;border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 90%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}body.nav-open .nav-links{display:flex}.nav-links a{padding:13px 8px}.mobile-menu{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:8px 11px;background:transparent;color:var(--text);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.hero-minimal{min-height:82vh;padding-top:56px}.display{font-size:clamp(36px,17vw,70px);letter-spacing:.04em}.lead{font-size:14px}.section{padding:64px 18px}.hero-content{padding:0 18px}.section-title{font-size:clamp(27px,10vw,40px)}.thumb-grid{grid-template-columns:1fr;gap:10px}.project-thumb{min-height:220px}.education-item{grid-template-columns:1fr;gap:8px}.site-footer{padding:42px 18px 34px}}body.gallery-open{overflow:hidden}.parallax-scene{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:.55}.parallax-scene:before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at var(--mouse-x,50vw) var(--mouse-y,50vh),color-mix(in srgb,var(--accent) 10%,transparent) 0,transparent 34%),radial-gradient(circle at 12% 18%,hsla(0,0%,100%,.42),transparent 22%),radial-gradient(circle at 78% 72%,rgba(0,0,0,.05),transparent 30%);transform:translate(calc(var(--parallax-x, 0) * -18px),calc(var(--parallax-y, 0) * -18px));transition:transform .18s ease-out}.parallax-line,.parallax-orb{position:absolute;display:block;border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);opacity:.34}.parallax-orb{border-radius:999px;transform:translate(calc(var(--parallax-x, 0) * 42px),calc(var(--parallax-y, 0) * 42px))}.orb-a{width:170px;height:170px;top:18%;right:8%}.orb-b{width:70px;height:70px;left:6%;top:58%;transform:translate(calc(var(--parallax-x, 0) * -34px),calc(var(--parallax-y, 0) * -34px))}.orb-c{width:110px;height:110px;right:18%;bottom:10%;border-style:dashed}.parallax-line{width:180px;height:1px;border-left:0;border-right:0;border-bottom:0}.line-a{top:30%;left:12%;transform:rotate(-12deg) translate(calc(var(--parallax-x, 0) * 26px),calc(var(--parallax-y, 0) * 26px))}.line-b{right:11%;bottom:28%;transform:rotate(18deg) translate(calc(var(--parallax-x, 0) * -30px),calc(var(--parallax-y, 0) * -30px))}.main-content,.site-footer,.site-header{position:relative;z-index:1}.brand,.button,.footer-links a,.gallery-close,.gallery-external,.icon-line,.mobile-menu,.nav-links a,.project-thumb{transition:transform .19s cubic-bezier(.16,1,.3,1),opacity .19s ease,border-color .19s ease,background .19s ease,box-shadow .19s ease;transform-origin:center center}@media (hover:hover){.brand:hover,.button:hover,.footer-links a:hover,.gallery-close:hover,.gallery-external:hover,.icon-line:hover,.mobile-menu:hover,.nav-links a:hover,.project-thumb:hover{transform:scale(.975)}.project-thumb:hover{box-shadow:0 18px 48px rgba(0,0,0,.13)}}.brand:active,.button:active,.footer-links a:active,.gallery-close:active,.gallery-external:active,.icon-line:active,.mobile-menu:active,.nav-links a:active,.project-thumb:active{transform:scale(.94)}.project-thumb{display:block;width:100%;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer}.gallery-backdrop{position:fixed;inset:0;z-index:80;pointer-events:auto}.gallery-scrim{position:absolute;inset:0;border:0;background:rgba(13,12,11,.72);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:galleryFadeIn .52s ease forwards}.gallery-backdrop.is-closing .gallery-scrim{animation:galleryFadeOut .26s ease forwards}.gallery-modal{position:fixed;z-index:1;left:var(--target-left);top:var(--target-top);width:var(--target-width);height:var(--target-height);display:grid;grid-template-rows:auto minmax(0,1fr);background:color-mix(in srgb,var(--bg-soft) 97%,#fff);border:1px solid var(--line);border-radius:28px;box-shadow:0 34px 96px rgba(0,0,0,.34),0 12px 32px rgba(0,0,0,.18);overflow:hidden;animation:galleryMorphIn .76s cubic-bezier(.16,1,.3,1) forwards}.gallery-backdrop.is-closing .gallery-modal{animation:galleryMorphOut .28s cubic-bezier(.32,0,.22,1) forwards}.gallery-head{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:24px 28px 22px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg-soft) 98%,#fff)}.gallery-title p{margin:0 0 10px;color:var(--accent);font-size:10px;letter-spacing:.18em;text-transform:uppercase}.gallery-title h2{margin:0;color:var(--text);font-size:clamp(24px,3.6vw,44px);font-weight:320;line-height:.95;letter-spacing:.08em;text-transform:uppercase}.gallery-actions{display:flex;align-items:center;gap:10px}.gallery-close,.gallery-external{border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--text);padding:10px 15px;cursor:pointer;font-size:11px;line-height:1;letter-spacing:.13em;text-transform:uppercase;text-decoration:none}.gallery-close:hover,.gallery-external:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}.gallery-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;background:var(--bg-soft);overscroll-behavior:contain}.gallery-image{border:0}.gallery-image,.gallery-image img{display:block;width:100%;margin:0;padding:0}.gallery-image img{height:auto;object-fit:contain}@keyframes galleryFadeIn{0%{opacity:0}to{opacity:1}}@keyframes galleryFadeOut{0%{opacity:1}to{opacity:0}}@keyframes galleryMorphIn{0%{left:var(--origin-left);top:var(--origin-top);width:var(--origin-width);height:var(--origin-height);border-radius:18px;opacity:.35;filter:blur(6px)}52%{opacity:1;filter:blur(0)}to{left:var(--target-left);top:var(--target-top);width:var(--target-width);height:var(--target-height);border-radius:28px;opacity:1;filter:blur(0)}}@keyframes galleryMorphOut{0%{left:var(--target-left);top:var(--target-top);width:var(--target-width);height:var(--target-height);border-radius:28px;opacity:1;filter:blur(0)}42%{opacity:.72;filter:blur(0)}to{left:var(--origin-left);top:var(--origin-top);width:var(--origin-width);height:var(--origin-height);border-radius:18px;opacity:0;filter:blur(2px)}}@media (max-width:640px){.parallax-scene{display:none}.gallery-head{padding:18px 16px 16px;gap:16px}.gallery-title h2{font-size:24px}.gallery-actions{gap:6px}.gallery-close,.gallery-external{padding:9px 11px;font-size:10px}.gallery-modal{border-radius:22px}@keyframes galleryMorphIn{0%{left:var(--origin-left);top:var(--origin-top);width:var(--origin-width);height:var(--origin-height);border-radius:16px;opacity:.35;filter:blur(6px)}to{left:10px;top:10px;width:calc(100vw - 20px);height:calc(100vh - 20px);border-radius:22px;opacity:1;filter:blur(0)}}@keyframes galleryMorphOut{0%{left:10px;top:10px;width:calc(100vw - 20px);height:calc(100vh - 20px);border-radius:22px;opacity:1;filter:blur(0)}to{left:var(--origin-left);top:var(--origin-top);width:var(--origin-width);height:var(--origin-height);border-radius:16px;opacity:0;filter:blur(6px)}}}.gallery-video{overflow:hidden}.gallery-video,.gallery-video video{display:block;width:100%;margin:0;padding:0;background:#000}.gallery-video video{max-width:100%;height:auto;object-fit:contain}.gallery-caption,.gallery-video-title{display:block;margin:0;padding:12px 18px;color:var(--muted);background:var(--bg-soft);font-size:11px;letter-spacing:.08em;text-transform:uppercase}:root{--font-heading:"Bricolage Grotesque",system-ui,sans-serif}.about-text p,.contact-intro,.education-item p,.lead,.section-copy,.site-footer p,a,body,button,input,li,p,textarea{font-family:var(--font-body);font-weight:400}.display{font-family:var(--font-hero);font-weight:600;letter-spacing:.015em;line-height:.88}.about-text h2,.contact-title,.section-title,.site-footer h2{font-family:var(--font-heading);font-weight:600;letter-spacing:.005em}.project-group-title{font-family:var(--font-heading);font-weight:700;letter-spacing:.01em}.education-item h3,.gallery-title h2,.project-thumb-info h3{font-family:var(--font-body);font-weight:600;letter-spacing:.02em}.eyebrow,.footer-kicker,.footer-label,.gallery-caption,.gallery-close,.gallery-external,.gallery-title p,.gallery-video-title,.kicker,.project-count,.project-thumb-info p,.tool-icon{font-family:var(--font-body);font-weight:500;text-transform:uppercase;letter-spacing:.14em}.button,.icon-line,.mobile-menu,.nav-links a{font-family:var(--font-body);font-weight:500;letter-spacing:.04em}:root{--font-hero:"Fredoka",system-ui,sans-serif;--font-body:"Inter",system-ui,sans-serif}.about-text h2,.contact-title,.display,.section-title,.site-footer h2{font-family:var(--font-hero);font-weight:600;text-transform:uppercase;letter-spacing:.01em;line-height:.88}.display{font-size:clamp(58px,11vw,150px)}.about-text h2,.contact-title,.section-title,.site-footer h2{font-size:clamp(42px,6vw,82px)}a,body,button,input,li,p,textarea{font-family:var(--font-body)}.display{font-size:clamp(46px,8vw,112px)}.hero-content{max-width:min(980px,82vw)}.display{max-width:980px;font-size:clamp(44px,6.7vw,112px);line-height:.9;letter-spacing:.005em}.lead{max-width:680px}.about-title-accent,.title-accent-word{color:var(--accent)}.title-accent-word{color:var(--accent)!important;font-weight:600!important;display:inline-block}@media (max-width:899px){.gallery-modal .gallery-head{display:block;position:relative;padding:14px 14px 12px;flex:0 0 auto}.gallery-modal .gallery-title{min-width:0;width:100%}.gallery-modal .gallery-title p{padding-right:145px;margin-bottom:6px}.gallery-modal .gallery-title h2{font-size:clamp(18px,5vw,22px);line-height:1.12;letter-spacing:.01em;overflow-wrap:break-word}.gallery-modal .gallery-actions{position:absolute;right:12px;top:12px;gap:6px}.gallery-modal .custom-content-wrapper{display:block;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.gallery-modal .custom-left-col{display:block;flex:none;min-height:0;overflow:visible;padding:14px}.gallery-modal .custom-right-col{display:block;flex:none;width:100%;height:auto;overflow:visible;padding:18px 14px 24px}}