@font-face{font-family:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:100 900;src:url(https://cdn.jsdelivr.net/fontsource/fonts/big-shoulders:vf@5.3.0/latin-wght-normal.woff2)format("woff2-variations")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100 900;src:url(https://cdn.jsdelivr.net/fontsource/fonts/inter:vf@5.3.0/latin-wght-normal.woff2)format("woff2-variations")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/caveat:vf@latest/latin-wght-normal.woff2)format("woff2-variations")}:root{--paper:#f3efe5;--paper-deep:#e8e1d2;--ink:#09394a;--black:#1d211f;--blue:#09394a;--yellow:#f4dd20;--rust:#cc5b26;--line:#09394a5c;--muted:#1d211fad;--display:"Big Shoulders Display", "Arial Narrow", sans-serif;--body:"Inter", Arial, sans-serif;--hand:"Caveat", cursive;--pencil-wave:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='8' viewBox='0 0 240 8'%3E%3Cpath d='M0 4 C20 1, 40 7, 60 4 S100 1, 120 4 S160 7, 180 4 S220 1, 240 4' fill='none' stroke='%2309394a' stroke-opacity='.58' stroke-width='1.1' stroke-linecap='round'/%3E%3C/svg%3E");--paper-wave-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='18' viewBox='0 0 240 18'%3E%3Cpath d='M0 0H240V9C220 6 200 6 180 9C160 12 140 12 120 9C100 6 80 6 60 9C40 12 20 6 0 9Z' fill='white'/%3E%3C/svg%3E");--paper-wave-stroke:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='18' viewBox='0 0 240 18'%3E%3Cpath d='M0 9C20 6 40 12 60 9C80 6 100 6 120 9C140 12 160 12 180 9C200 6 220 6 240 9' fill='none' stroke='%2309394a' stroke-opacity='.58' stroke-width='1.1' stroke-linecap='round'/%3E%3C/svg%3E");color:var(--black);font-family:var(--body);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--paper);min-width:320px;min-height:100vh;color:var(--black);-webkit-font-smoothing:antialiased;background-image:url(/assets/background/background-doodles.png);background-repeat:repeat;background-size:min(1586px,100vw);background-attachment:fixed;margin:0}body.modal-open{overflow:hidden}button,a{color:inherit}button{font:inherit}a{text-decoration:none}img{max-width:100%;display:block}.topbar{z-index:40;background-color:var(--paper);background-image:url(/assets/background/background-doodles.png);background-repeat:repeat;background-size:min(1586px,100vw);background-attachment:fixed;border-bottom:0;justify-content:space-between;align-items:center;min-height:78px;padding:0 3.25vw;display:flex;position:sticky;top:0}.hero:after,footer:before{content:"";background-image:var(--pencil-wave);pointer-events:none;background-position:50%;background-repeat:repeat-x;height:8px;position:absolute;left:0;right:0}.topbar:after{content:"";background-color:var(--paper);height:18px;-webkit-mask-image:var(--paper-wave-mask);-webkit-mask-position:top;-webkit-mask-repeat:repeat-x;-webkit-mask-image:var(--paper-wave-mask);mask-image:var(--paper-wave-mask);pointer-events:none;background-image:url(/assets/background/background-doodles.png);background-repeat:repeat;background-size:min(1586px,100vw);background-attachment:fixed;position:absolute;bottom:-17px;left:0;right:0;-webkit-mask-position:top;mask-position:top;-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x}.topbar:before{content:"";background-image:var(--paper-wave-stroke);pointer-events:none;background-position:top;background-repeat:repeat-x;height:18px;position:absolute;bottom:-17px;left:0;right:0}.hero:after{bottom:-4px}footer:before{top:-4px}.monogram{font-family:var(--display);letter-spacing:.08em;color:var(--ink);font-size:22px;font-weight:700}.nav-links{gap:clamp(24px,3vw,52px);display:flex}.nav-links a{border-bottom:1px solid #0000;padding:10px 0;font-size:13px;transition:border-color .18s}.nav-links a:hover,.nav-links a:focus-visible{border-color:var(--ink)}.hero{border-bottom:0;grid-template-columns:minmax(420px,.9fr) minmax(560px,1.1fr);align-items:center;gap:clamp(56px,7vw,128px);min-height:700px;padding:clamp(48px,5vw,82px) 3.25vw clamp(58px,6vw,96px);display:grid;position:relative}.hero-title-wrap{align-self:center}.hero-title{font-family:var(--display);letter-spacing:-.035em;text-transform:uppercase;color:var(--ink);margin:0;font-size:clamp(92px,10.8vw,202px);font-weight:600;line-height:.86}.hero-title br{display:block}.hero-role{color:var(--ink);letter-spacing:-.03em;margin:28px 0 0;font-size:clamp(18px,1.65vw,30px)}.hero-visuals{grid-template-columns:repeat(2,minmax(0,1fr));align-self:center;align-items:end;gap:clamp(14px,1.4vw,24px);display:grid}.hero-gallery{grid-column:1/-1}.hero-gallery-track{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;cursor:grab;touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;gap:clamp(14px,1.4vw,24px);display:flex;overflow-x:auto}.hero-gallery-track::-webkit-scrollbar{display:none}.hero-gallery-track.is-dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}.photo-frame{aspect-ratio:4/3;box-shadow:none;scroll-snap-align:start;background:0 0;border:0;flex:0 0 calc(50% - clamp(14px,1.4vw,24px)/2);margin:0;position:relative;overflow:visible}.photo-frame img{object-fit:contain;object-position:center;width:100%;height:100%;box-shadow:none;background:0 0;border:0}.hero-gallery-controls{justify-content:center;align-items:center;min-height:42px;padding-top:12px;display:flex}.hero-gallery-dots{justify-content:center;gap:8px;display:flex}.hero-gallery-dots button{cursor:pointer;background:0 0;border:0;width:18px;height:18px;padding:0;position:relative}.hero-gallery-dots button:after{content:"";background:#09394a47;border-radius:999px;transition:inset .18s,background-color .18s;position:absolute;inset:7px 2px}.hero-gallery-dots button.is-active:after{background:var(--ink);inset:7px 0}.hero-note{max-width:480px;color:var(--ink);font-family:var(--hand);letter-spacing:.01em;text-shadow:.6px .4px #09394a47,-.4px .3px #09394a2e;grid-column:1/-1;margin:0 0 clamp(16px,2vw,30px);font-size:clamp(29px,2.5vw,43px);font-weight:600;line-height:1.02;transform:rotate(-1.2deg)}.section-shell{padding-inline:6.8vw}.projects{padding-top:clamp(52px,6vw,88px);padding-bottom:clamp(80px,9vw,140px)}.section-kicker{text-transform:uppercase;letter-spacing:.09em;justify-content:space-between;gap:24px;padding-bottom:16px;font-size:12px;display:flex}.project-list{border-top:0;padding-top:8px;position:relative}.project-list:before,.project-row:after{content:"";background-image:var(--pencil-wave);background-repeat:repeat-x;height:8px;position:absolute;left:0;right:0}.project-list:before{top:0}.project-row{border-bottom:0;position:relative}.project-row:after{bottom:-4px}.project-trigger{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:160px 1fr 180px 90px 36px;align-items:center;gap:18px;width:100%;min-height:92px;padding:14px 0;display:grid}.project-trigger:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.project-number{font-family:var(--display);font-size:clamp(54px,5vw,84px);font-weight:500;line-height:.8}.project-title{text-transform:uppercase;font-size:clamp(18px,1.55vw,28px)}.project-meta,.project-year{color:var(--muted);font-size:12px}.project-toggle{place-items:center;display:grid}.project-toggle svg{width:26px;height:26px}.project-row.is-open .project-number,.project-row.is-open .project-title{color:var(--blue)}.project-panel{visibility:hidden;grid-template-rows:0fr;transition:grid-template-rows .44s cubic-bezier(.2,.8,.2,1),visibility .44s;display:grid}.project-row.is-open .project-panel{visibility:visible;grid-template-rows:1fr}.project-panel-inner{grid-template-columns:310px 1fr;gap:clamp(28px,4vw,72px);min-height:0;display:grid;overflow:hidden}.project-copy{min-width:360px;padding:10px 0 34px 178px}.project-copy p{margin:0 0 18px;font-size:14px;line-height:1.55}.project-copy>span{color:var(--muted);margin-bottom:26px;font-size:11px;display:block}.text-action{color:var(--blue);cursor:pointer;background:0 0;border:0;border-bottom:1px solid;align-items:center;gap:12px;padding:0 0 5px;font-size:12px;font-weight:600;display:inline-flex}.project-preview{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:clamp(10px,1.3vw,22px);padding-bottom:34px;display:grid}.project-preview button{cursor:pointer;background:0 0;border:0;padding:0;overflow:hidden}.project-preview img{object-fit:contain;width:100%;height:auto;transition:transform .3s}.project-preview--portrait button{justify-self:center;max-width:240px}.project-preview button:hover img{transform:scale(1.025)}.about{color:var(--paper);background:#09394afb;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(42px,6vw,110px);padding-top:clamp(80px,10vw,160px);padding-bottom:clamp(80px,10vw,160px);display:grid}.about-heading{grid-column:1/7}.section-index{text-transform:uppercase;letter-spacing:.12em;margin-bottom:30px;font-size:11px;display:block}.about h2,.contact h2{font-family:var(--display);text-transform:uppercase;margin:0;font-size:clamp(68px,7.5vw,132px);font-weight:600;line-height:.83}.about-copy{grid-column:7/13;align-self:end}.about-copy p{color:#f3efe5c2;max-width:590px;font-size:14px;line-height:1.75}.about-copy .about-lead{color:var(--paper);font-size:clamp(19px,1.6vw,27px);line-height:1.45}.skills-block{grid-column:1/13;margin-top:clamp(28px,4vw,64px)}.skills-block h3{font-family:var(--display);text-transform:uppercase;margin:0 0 24px;font-size:clamp(42px,4.4vw,72px);font-weight:600;line-height:1}.skills{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.skills span{border:1px solid #f3efe566;align-items:center;min-height:64px;padding:14px 16px;font-size:12px;line-height:1.35;display:flex}.about-actions{flex-wrap:wrap;gap:20px;margin-top:36px;display:flex}.about-actions a{border-bottom:1px solid;align-items:center;gap:8px;padding-bottom:5px;font-size:12px;display:inline-flex}.contact{padding-top:clamp(90px,11vw,180px);padding-bottom:clamp(90px,11vw,180px)}.contact h2{color:var(--ink);font-size:clamp(76px,10vw,176px)}.contact-links{flex-wrap:wrap;gap:20px 60px;margin-top:clamp(48px,7vw,110px);display:flex}.contact-links a{border-bottom:1px solid var(--ink);align-items:center;gap:11px;padding:12px 0;font-size:14px;display:inline-flex}.contact-links svg{width:20px;height:20px}footer{text-transform:uppercase;letter-spacing:.08em;border-top:0;justify-content:space-between;gap:20px;padding:28px 3.25vw;font-size:11px;display:flex;position:relative}.project-modal{z-index:100;background-color:var(--paper);background-image:url(/assets/background/background-doodles.png);background-size:min(1586px,100vw);position:fixed;inset:0;overflow-y:auto}.modal-bar{z-index:5;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f3efe5f0;justify-content:space-between;align-items:center;gap:24px;min-height:82px;padding:14px 3.25vw;display:flex;position:sticky;top:0}.modal-bar>div{flex-direction:column;gap:4px;display:flex}.modal-bar span{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:10px}.modal-bar strong{text-transform:uppercase;font-size:18px;font-weight:500}.modal-bar button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.modal-bar button svg{width:22px;height:22px}.modal-intro{grid-template-columns:minmax(280px,650px) auto;justify-content:space-between;gap:40px;padding:56px 8vw 64px;display:grid}.modal-intro p{margin:0;font-size:clamp(20px,2.2vw,38px);line-height:1.35}.modal-intro span{color:var(--muted);align-self:end;font-size:11px}.project-pages{flex-direction:column;gap:48px;padding:0 3.25vw 80px;display:flex}.project-pages figure{margin:0}.project-pages img{border:1px solid #153f451f;width:100%;height:auto}.project-pages figcaption{color:var(--muted);letter-spacing:.08em;margin-top:9px;font-size:10px}.project-pages--portrait{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(24px,3vw,48px);padding-inline:clamp(22px,8vw,150px);display:grid}.project-pages--portrait figure{min-width:0}.modal-close-bottom{border:1px solid var(--ink);cursor:pointer;background:0 0;margin:0 auto 90px;padding:14px 24px;display:block}@media (max-width:1180px){.hero{grid-template-columns:minmax(340px,.8fr) minmax(500px,1.2fr);gap:42px}.project-trigger{grid-template-columns:110px 1fr 150px 65px 32px}.project-copy{padding-left:128px}.skills{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:800px){.topbar{min-height:70px}.nav-links{gap:18px}.nav-links a{font-size:11px}.hero{flex-direction:column;align-items:stretch;min-height:auto;padding:34px 22px 64px;display:flex}.hero-title{font-size:clamp(82px,25vw,134px)}.hero-role{margin-top:14px}.hero-visuals{width:100%}.hero-note{max-width:420px}.section-shell{padding-inline:22px}.project-trigger{grid-template-columns:72px 1fr 34px;min-height:86px}.project-meta,.project-year{display:none}.project-number{font-size:56px}.project-title{font-size:16px}.project-panel-inner{display:block}.project-copy{min-width:0;padding:8px 0 28px 72px}.project-preview{grid-template-columns:1fr;gap:8px;padding-left:72px}.project-preview button:not(:first-child){display:none}.about{display:block}.about-copy{margin-top:56px}.skills-block{margin-top:64px}.contact-links{flex-direction:column;align-items:flex-start}.contact-links a{overflow-wrap:anywhere;max-width:100%}footer{flex-direction:column}.modal-intro{padding:40px 22px 48px;display:block}.modal-intro span{margin-top:24px;display:block}.project-pages{gap:26px;padding-inline:0}.project-pages--portrait{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-inline:18px}.project-pages figcaption{padding-inline:12px}}@media (max-width:480px){.hero-visuals{grid-template-columns:1fr}.hero-note,.hero-gallery{grid-column:1}.hero-gallery-track{gap:8px}.hero-gallery-dots{gap:3px}.hero-gallery-dots button{width:12px}.skills{grid-template-columns:1fr}.project-pages--portrait{grid-template-columns:1fr;padding-inline:0}.project-copy,.project-preview{padding-left:0}.contact h2{font-size:66px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
