@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-mono-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-mono-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:normal;font-weight:500 600;font-display:swap;src:url(/fonts/playfair-display-roman-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Playfair Display;font-style:italic;font-weight:500 600;font-display:swap;src:url(/fonts/playfair-display-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/space-grotesk-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #183131;--paper: #f5f2e9;--paper-rgb: 245, 242, 233;--orange: #dd5b34;--line: rgba(24, 49, 49, .2);--serif: "Playfair Display", Georgia, serif;--sans: "Space Grotesk", Arial, sans-serif;--mono: "DM Mono", monospace}:root[data-theme=dark]{--ink: #f5f2e9;--paper: #183131;--paper-rgb: 24, 49, 49;--line: rgba(245, 242, 233, .2)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);transition:color .2s ease,background-color .2s ease}a{color:inherit;text-decoration:none}#app{position:relative}.site-header{position:fixed;top:17px;left:50%;transform:translate(-50%);z-index:10;display:flex;align-items:center;gap:3px;padding:4px 7px;color:#8d878b;background:#050505;border-radius:999px;box-shadow:0 3px 12px #0003}.site-header nav{display:flex;align-items:center;gap:2px}.site-header nav a,.theme-toggle{display:grid;min-height:42px;padding:0 16px;place-items:center;color:inherit;background:transparent;border:0;border-radius:999px;font:500 18px/1 var(--sans);cursor:pointer;transition:color .18s ease,background-color .18s ease}.theme-toggle{width:42px;padding:0;font-size:25px}.site-header nav a:hover,.theme-toggle:hover{color:#f5f2e9}.site-header nav a.active{color:var(--paper);background:var(--orange)}.site-header nav a:focus-visible,.theme-toggle:focus-visible{outline:2px solid var(--orange);outline-offset:2px}footer a:hover{color:var(--orange)}.hero{min-height:100svh;padding:clamp(96px,11vw,160px) clamp(24px,10vw,160px) 56px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.hero:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--paper) 20%,rgba(var(--paper-rgb),.86) 46%,rgba(var(--paper-rgb),.12) 100%);pointer-events:none}.sand-fill,.sand{position:absolute;left:0;top:0;width:100%;z-index:2;pointer-events:none}.sand-fill{height:100%;background:var(--orange);clip-path:inset(0 0 100% 0);will-change:clip-path}.sand{height:128px;will-change:transform}.hero-copy{position:relative;z-index:3;max-width:760px;text-align:center;transform:translateY(-30%)}.eyebrow,.project-type,.project-number{font:500 11px/1.2 var(--mono);text-transform:uppercase;letter-spacing:.08em}.eyebrow{color:var(--ink);margin:0 0 24px}.hero h1,h2{letter-spacing:-.055em;font-weight:500;margin:0}.hero h1{font-size:clamp(52px,7vw,104px);line-height:.98}.hero h1 em,h2 em{font-family:var(--serif);font-weight:500}.sand-word--ready{color:var(--paper);will-change:clip-path}.sand-word--ready em,.sand-word--ready.sand-word--settled,.sand-word--ready.sand-word--settled em{color:var(--paper)}.intro{max-width:520px;font-size:18px;line-height:1.55;margin:32px 0}.hero-actions{display:flex;gap:28px;align-items:center;justify-content:center}.button{color:var(--paper);background:var(--ink);padding:14px 17px;font-size:14px;transition:transform .2s}.button:hover{transform:translateY(-3px)}.button span,.text-link span,.email-link span{color:var(--orange);margin-left:8px}.text-link{font-size:14px;border-bottom:1px solid var(--ink);padding-bottom:3px}.sand-caption{z-index:3;position:absolute;bottom:34px;right:clamp(24px,5vw,80px);margin:0;font:11px var(--mono)}.sand-caption span,.availability span{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--orange);margin-right:8px}.section{padding:clamp(80px,11vw,160px) clamp(24px,10vw,160px);position:relative;z-index:3}.section-heading{max-width:740px;margin-bottom:68px;position:relative;z-index:2}.section h2,.contact h2{font-size:clamp(38px,5vw,70px);line-height:1.03}.project-carousel{position:relative;max-width:1100px;margin-inline:auto;padding:0 54px 52px;touch-action:pan-y;outline:none}.project-carousel:focus-visible{outline:2px solid var(--orange);outline-offset:8px}.carousel-stage{position:relative;width:100%;height:430px;perspective:1200px;isolation:isolate}.project-card{position:absolute;top:0;left:50%;width:min(68vw,420px);min-height:360px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;color:#183131;cursor:pointer;box-shadow:0 18px 42px #18313124;transform-origin:center bottom;transition:transform .55s cubic-bezier(.2,.75,.25,1),opacity .4s ease,filter .4s ease,box-shadow .4s ease}.project-card>*{position:relative;z-index:2}.project-card[data-position=active]{z-index:3;cursor:default;transform:translate(-50%) translateY(0) rotate(0) scale(1)}.project-card[data-position=previous]{z-index:2;opacity:.72;filter:saturate(.75);transform:translate(-118%) translateY(56px) rotate(-6deg) scale(.86)}.project-card[data-position=next]{z-index:2;opacity:.72;filter:saturate(.75);transform:translate(18%) translateY(56px) rotate(6deg) scale(.86)}.project-card[data-position=active]:hover{box-shadow:0 24px 52px #18313133}.teal{background:#b9d6ce}.lilac{background:#ccc8e4}.amber{background:#ebcf8e}.project-card h3{margin:12px 0;font-size:clamp(25px,2.5vw,38px);line-height:1.05;letter-spacing:-.04em;font-weight:500}.project-card div>p:last-child{margin:0;font-size:14px;line-height:1.5}.project-card a{font-size:13px;text-decoration:underline;text-underline-offset:4px}.carousel-control{position:absolute;top:166px;z-index:5;display:grid;width:42px;height:42px;padding:0;place-items:center;color:var(--paper);background:var(--ink);border:0;border-radius:50%;font:22px/1 var(--sans);cursor:pointer;transition:transform .2s ease,background-color .2s ease}.carousel-control:hover{background:var(--orange);transform:scale(1.08)}.carousel-control:focus-visible,.carousel-pagination button:focus-visible{outline:2px solid var(--orange);outline-offset:3px}.carousel-control--previous{left:0}.carousel-control--next{right:0}.carousel-pagination{position:absolute;bottom:0;left:50%;z-index:5;display:flex;gap:9px;transform:translate(-50%)}.carousel-pagination button{width:9px;height:9px;padding:0;background:transparent;border:1px solid var(--ink);border-radius:50%;cursor:pointer;transition:width .25s ease,background-color .25s ease}.carousel-pagination button.active{width:28px;background:var(--ink);border-radius:999px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.about{border-top:1px solid var(--line)}.about>.eyebrow,.about-grid{position:relative;z-index:2}.about-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(48px,12vw,180px)}.about-grid>div{font-size:18px;line-height:1.55}.about-grid p:first-child{margin-top:0}.skills{display:flex;flex-wrap:wrap;gap:9px;padding:20px 0 0;list-style:none;transform:translateY(-30%)}.skills li{border:1px solid var(--line);padding:7px 10px;font:11px var(--mono)}.experience,.experience-list{border-top:1px solid var(--line)}.experience-list article{display:grid;grid-template-columns:minmax(120px,.35fr) 1fr;gap:clamp(24px,6vw,96px);padding:30px 0;border-bottom:1px solid var(--line)}.experience-list h3{margin:0;font-size:clamp(22px,2.5vw,32px);font-weight:500;letter-spacing:-.04em}.experience-list p{margin:10px 0 0;max-width:650px;font-size:16px;line-height:1.55}.experience-date,.experience-place{font:11px/1.4 var(--mono)!important;letter-spacing:.04em;color:var(--ink)}.experience-place{color:var(--ink)}.contact{position:relative;z-index:2;--contact-offset-x: 0px;--contact-offset-y: 0px;background:var(--ink);color:var(--paper);padding:clamp(80px,12vw,170px) clamp(24px,10vw,160px);display:flex;justify-content:flex-start}.contact .eyebrow{color:#e4b949}.contact h2{max-width:850px}.contact-content{width:min(100%,520px);display:flex;flex-direction:column;align-items:flex-start;transform:translate(var(--contact-offset-x),var(--contact-offset-y))}.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:36px}.contact-actions .email-link{margin-top:0}.email-link{display:inline-block;margin-top:36px;font-size:clamp(20px,3vw,34px);border-bottom:1px solid rgba(245,242,233,.5);padding-bottom:4px}.resume-slot{margin-left:auto;align-self:flex-end;transform:translateY(-115px)}.resume-link{display:inline-flex;align-items:center;gap:14px;border:1px solid rgba(245,242,233,.65);border-radius:999px;color:var(--paper);padding:4px 4px 4px 17px;font:500 11px var(--mono);letter-spacing:.04em;overflow:hidden;white-space:nowrap;transition:background .25s ease,border-color .25s ease,color .25s ease}.resume-link__icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--paper);color:var(--ink);font:20px/1 var(--sans);transition:background .25s ease,color .25s ease,transform .25s ease}.resume-link:hover,.resume-link:focus-visible{background:var(--paper);border-color:var(--paper);color:var(--ink)}.resume-link:hover .resume-link__icon,.resume-link:focus-visible .resume-link__icon{background:var(--orange);color:var(--paper);transform:translateY(2px)}.resume-link:focus-visible{outline:2px solid var(--orange);outline-offset:4px}.linkedin-link{display:inline-block;margin-top:46px;font:28px var(--mono);padding-bottom:4px}.availability{font:16px var(--mono);margin-top:40px}.availability span{background:#96d2a1}footer{padding:23px clamp(24px,5vw,80px);font:11px var(--mono);display:flex;justify-content:space-between;position:relative;z-index:2}footer p{margin:0}footer div{display:flex;gap:18px}@media(max-width:760px){.site-header{top:12px;left:50%;width:max-content;max-width:calc(100vw - 24px);transform:translate(-50%)}.site-header nav a,.theme-toggle{min-height:36px;padding-inline:11px;font-size:15px}.theme-toggle{width:36px;padding:0;font-size:21px}.hero{min-height:100svh;padding-top:80px}.hero:after{background:linear-gradient(90deg,var(--paper) 5%,rgba(var(--paper-rgb),.82) 55%,rgba(var(--paper-rgb),.24) 100%)}.sand-caption{display:none}.about-grid{grid-template-columns:1fr}.project-carousel{padding-inline:30px}.carousel-stage{height:350px}.project-card{width:min(78vw,340px);min-height:265px}.project-card[data-position=previous]{transform:translate(-104%) translateY(38px) rotate(-5deg) scale(.82)}.project-card[data-position=next]{transform:translate(4%) translateY(38px) rotate(5deg) scale(.82)}.carousel-control{top:132px;width:36px;height:36px}.section-heading{margin-bottom:38px}.about-grid{gap:34px}.experience-list article{grid-template-columns:1fr;gap:8px}.contact{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-card,.carousel-control,.carousel-pagination button,.button{transition:none}}
