@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Instrument+Serif:ital@0;1&display=swap');
:root{--ink:#11131d;--paper:#f2efe7;--muted:#9b9ca6;--accent:#ff865e;--progress:0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--ink);color:var(--paper);font-family:'DM Sans',Arial,sans-serif;font-size:16px}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:7px}button{border:0}::selection{background:var(--accent);color:var(--ink)}.nav{position:fixed;top:0;left:0;width:100%;padding:28px 4.7%;display:flex;align-items:center;justify-content:space-between;z-index:30;transition:background .3s,padding .3s}.nav.scrolled{background:#11131ded;backdrop-filter:blur(12px);padding-top:18px;padding-bottom:18px}.wordmark{font-size:30px;font-weight:600;letter-spacing:-1.7px}.wordmark span{font-size:13px;vertical-align:top;display:inline-block;margin:4px 0 0 3px;letter-spacing:0}#menu-button{background:none;display:flex;gap:18px;align-items:center;padding:8px 0}.menu-label{font-size:14px}.menu-icon{width:28px;display:grid;gap:6px}.menu-icon i{height:1px;background:currentColor;transition:transform .4s}.menu-open .menu-icon i:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-open .menu-icon i:last-child{transform:translateY(-3.5px) rotate(-45deg)}.menu{position:fixed;inset:0;background:#171d2e;z-index:25;padding:120px 12% 60px;display:flex;align-items:center;justify-content:space-between;visibility:hidden;opacity:0;transform:translateY(-15px);transition:opacity .35s,transform .35s,visibility .35s}.menu-open .menu{visibility:visible;opacity:1;transform:none}.menu-inner{width:min(650px,75%)}.menu-inner>a:not(.resume-link){display:flex;align-items:center;justify-content:space-between;font-family:'Instrument Serif',Georgia,serif;font-size:clamp(40px,6vw,78px);border-bottom:1px solid #ffffff25;padding:6px 0}.menu-inner>a span{font:14px 'DM Sans',sans-serif;color:var(--accent)}.resume-link{display:inline-block;margin-top:30px;border-bottom:1px solid}.menu-note{color:var(--muted);line-height:1.7;align-self:flex-end}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:12px;font-weight:500;line-height:1.6}.hero-scroll{height:300vh;height:300svh}.hero-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:#23366a}.hero-art{width:100%;height:100%;object-fit:cover;transform-origin:66% 38%;will-change:transform;transform:translate(-16vw,13vh) scale(2.8)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,14,35,.64),transparent 70%),linear-gradient(0deg,#10111b99,transparent 25%);opacity:0;pointer-events:none}.hero-copy{position:absolute;top:23%;left:6.5%;opacity:0;transform:translateY(32px);max-width:58%;pointer-events:none}.hero-copy.visible{pointer-events:auto}.hero-copy h1{font-family:'Instrument Serif',Georgia,serif;font-size:clamp(54px,6.8vw,108px);font-weight:400;line-height:.98;letter-spacing:-2.5px;margin:24px 0 28px}.hero-copy h1 em{font-weight:400;color:#ffd2ae}.hero-sub{line-height:1.6;font-size:16px}.text-link{display:inline-flex;align-items:center;gap:24px;font-size:14px;padding:16px 0;border-bottom:1px solid #ffffff60}.link-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);transition:transform .2s}.text-link:hover .link-dot{transform:scale(1.6)}.opening-label{position:absolute;top:20%;left:6.5%;font:italic clamp(30px,3.4vw,54px)/1.05 'Instrument Serif',Georgia,serif;text-shadow:0 2px 25px #0006}.opening-label span{display:block}.scroll-cue{position:absolute;bottom:38px;left:50%;transform:translateX(-50%);text-align:center}.scroll-cue>span{font-size:10px;letter-spacing:3px;white-space:nowrap}.scroll-line{width:1px;height:45px;background:#ffffff40;margin:14px auto 0;position:relative;overflow:hidden}.scroll-line:after{content:'';position:absolute;top:-50%;height:50%;width:100%;background:white;animation:scroll-line 1.8s ease infinite}@keyframes scroll-line{to{top:100%}}.hero-footer{position:absolute;bottom:28px;left:6.5%;right:6.5%;display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;text-transform:uppercase;opacity:0}.progress{position:absolute;bottom:0;left:0;width:calc(var(--progress)*100%);height:2px;background:#ffb18c}.particles{position:absolute;inset:0;pointer-events:none}.particle{position:absolute;background:#fff1d4;border-radius:50%;animation:float 7s ease-in-out infinite alternate;box-shadow:0 0 6px #ffdbb5aa}@keyframes float{to{transform:translate(12px,-40px);opacity:.2}}.section-pad{padding:110px 6.5%}.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:20px;align-items:start;margin-bottom:55px}.section-heading h2{margin:0}.section-heading>p:last-child:not(:first-child){grid-column:2;color:var(--muted);line-height:1.6;margin-top:0}h2{font:400 clamp(46px,6vw,84px)/1.03 'Instrument Serif',Georgia,serif;letter-spacing:-1.5px}h2 em{font-weight:400;color:#b9b5ae}.project{display:flex;flex-direction:column;position:relative;width:100%;padding:32px;text-align:left;overflow:hidden;min-height:350px;border-radius:3px;transition:transform .4s,filter .4s}.project:hover{transform:translateY(-6px);filter:brightness(1.04)}.project-top{display:flex;justify-content:space-between;font-size:12px;text-transform:uppercase;letter-spacing:1.5px;opacity:.75}.project-title{display:block;font-size:clamp(50px,7.2vw,104px);letter-spacing:-5px;line-height:1.04;font-weight:500;margin:auto 0;padding:40px 0}.branderiser{background:#cded63;color:#233218}.project-symbol{display:inline-block;float:right;font-size:140px;line-height:.7;transition:transform 1s}.project:hover .project-symbol{transform:rotate(65deg)}.project-bottom{display:flex;gap:20px;align-items:center;font-size:14px}.tag{font-size:11px;text-transform:uppercase;letter-spacing:1px;border:1px solid currentColor;border-radius:30px;padding:8px 12px;opacity:.8}.project-open{margin-left:auto;white-space:nowrap}.project-open b{display:inline-block;font-size:23px;font-weight:400;margin-left:12px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.project-grid .project{min-height:390px}.project-grid .project-title{font-size:clamp(38px,4.4vw,68px);letter-spacing:-2.5px}.project-grid .project-bottom{flex-wrap:wrap;gap:14px}.project-grid .project-bottom>span:first-child{width:100%}.asset{background:#9292e8;color:#191937}.cafe{background:#f2a17c;color:#552e24}.cafe .project-title{font-family:'Instrument Serif',Georgia,serif;font-size:clamp(65px,7.5vw,110px);font-style:italic}.cafe-small{display:block;font:14px 'DM Sans',sans-serif;letter-spacing:0;margin-top:16px}.about{background:#eae7df;color:var(--ink);display:grid;grid-template-columns:1fr 1.15fr;gap:9%;align-items:center}.about-photo{position:relative}.about-photo img{display:block;width:100%;height:610px;object-fit:cover;object-position:50% 30%;border-radius:3px}.about-photo>span{position:absolute;bottom:20px;left:20px;color:white;font-size:10px;letter-spacing:2px}.about-copy h2{font-size:clamp(40px,4.2vw,64px);margin:25px 0}.about-copy h2 em{color:#7c6453}.about-copy>p:not(.eyebrow){line-height:1.8;color:#55555b}.stats{display:flex;gap:32px;border-top:1px solid #11131d30;margin-top:35px;padding-top:28px}.stats strong{display:block;font-family:'Instrument Serif',Georgia,serif;font-size:45px;font-weight:400}.stats span{display:block;font-size:11px;color:#55555b;max-width:100px}.about .text-link{border-color:#11131d60;margin-top:22px}.skills-strip{padding:35px 0;overflow:hidden;border-bottom:1px solid #ffffff25;color:#cecac2}.skills-strip>div{width:max-content;white-space:nowrap;font-family:'Instrument Serif',Georgia,serif;font-size:48px;animation:marquee 35s linear infinite}.skills-strip span{font-size:30px;color:var(--accent);display:inline-block;margin:0 45px}@keyframes marquee{to{transform:translateX(-50%)}}.timeline article{display:grid;grid-template-columns:1fr 2fr .4fr;border-top:1px solid #ffffff25;padding:33px 0;gap:20px}.timeline-date{font-size:11px;color:var(--muted);letter-spacing:1px;padding-top:9px}.timeline h3{font-size:27px;font-weight:450;letter-spacing:-.7px;margin:0 0 8px}.timeline p{font-size:14px;color:#c5c4c9;margin:0}.timeline .role-detail{font-size:15px;line-height:1.7;max-width:610px;color:var(--muted);margin-top:17px}.current{border:1px solid #ff865e60;color:#ffb092;border-radius:30px;padding:7px 15px;font-size:11px;align-self:start;justify-self:end}.education{border-top:1px solid #ffffff25;padding-top:32px;margin-top:20px}.education>p:not(.eyebrow){font-size:20px}.education>span{font-size:14px;color:var(--muted)}.contact{background:#c0cadb;color:#171f31}.contact h2{font-size:clamp(62px,9vw,130px);margin:35px 0}.contact h2 em{color:#526078}.email{display:inline-block;border-bottom:1px solid #171f3150;font-size:clamp(19px,2.7vw,38px);padding-bottom:12px;letter-spacing:-.6px}.footer-bottom{margin-top:110px;border-top:1px solid #171f3130;padding-top:32px;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:12px}.footer-bottom>span{max-width:180px;line-height:1.5;color:#526078}.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s,transform .8s}.reveal.shown{opacity:1;transform:translateY(0)}dialog{background:#f2efe7;color:var(--ink);border:0;border-radius:5px;padding:55px;max-width:700px;width:calc(100% - 32px);max-height:85vh;overflow-y:auto}dialog::backdrop{background:#080b18bb;backdrop-filter:blur(8px)}dialog h2{font-size:56px;margin:25px 0}dialog p,dialog li{line-height:1.7}dialog h3{font-size:16px;margin-top:30px}dialog ul{padding-left:20px}dialog li{margin:9px 0}.dialog-close{position:absolute;right:18px;top:12px;background:none;font-size:34px}.dialog-tech{color:#74665d;font-size:13px}.dialog-close:hover{color:#bc572d}dialog .text-link{border-color:#11131d60}
@media(min-width:1700px){.hero-copy{top:26%}.hero-copy h1{font-size:116px}}
@media(max-width:800px){.nav{padding:22px 6%}.wordmark{font-size:27px}.hero-scroll{height:270svh}.hero-copy{left:7%;top:24%;max-width:85%}.hero-copy h1{font-size:clamp(48px,9vw,74px);letter-spacing:-1.5px}.hero-copy .eyebrow{font-size:10px}.hero-sub{font-size:14px}.hero-art{object-position:62% center}.opening-label{top:19%;font-size:32px}.hero-footer span:last-child{display:none}.hero-footer{font-size:9px}.section-pad{padding:75px 6%}.section-heading{grid-template-columns:1fr;gap:20px;margin-bottom:35px}.section-heading>p:last-child:not(:first-child){grid-column:1}.section-heading>p{margin:0}.project{padding:24px;min-height:310px}.project-title{font-size:60px;letter-spacing:-3px}.project-symbol{font-size:74px}.project-bottom{flex-wrap:wrap;gap:12px}.project-bottom>span:first-child{width:100%}.project-grid{grid-template-columns:1fr}.project-grid .project{min-height:330px}.project-grid .project-title{font-size:56px}.cafe .project-title{font-size:82px}.about{grid-template-columns:1fr;gap:45px}.about-photo{max-width:460px}.about-photo img{height:500px}.about-copy h2{font-size:50px}.stats{justify-content:space-between;gap:20px}.timeline article{grid-template-columns:1fr;gap:14px;position:relative}.timeline h3{font-size:25px}.current{position:absolute;right:0;top:29px}.timeline .role-detail{max-width:100%}.footer-bottom{margin-top:70px;flex-wrap:wrap;justify-content:flex-start;gap:25px 40px}.footer-bottom .wordmark{width:30%}.footer-bottom>span{width:45%}.menu{padding:110px 8% 40px}.menu-inner{width:100%}.menu-note{display:none}.skills-strip>div{font-size:36px}.skills-strip span{margin:0 25px}dialog{padding:45px 25px}dialog h2{font-size:43px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-scroll{height:100svh}.hero-art{transform:none!important}.hero-shade{opacity:1!important}.hero-copy{opacity:1!important;transform:none!important;pointer-events:auto}.opening-label,.scroll-cue,.particles{display:none}.hero-footer{opacity:1!important}.reveal{opacity:1;transform:none;transition:none}.skills-strip>div,.scroll-line:after{animation:none}.project,.menu{transition:none}}

.hero-art{object-position:66% top;transform-origin:66% 10%;transform:translate(-16vw,10vh) scale(1.8)}

.hero-art{transform:translate(-16vw,8vh) scale(1.8)}
@media(max-width:600px){.hero-copy{top:auto;bottom:80px;max-width:90%}.hero-copy h1{font-size:48px;margin:15px 0}.hero-copy .hero-sub{font-size:14px;margin:12px 0}.hero-shade{background:linear-gradient(0deg,#10111bf5 0%,#10111bc7 40%,#10111b00 80%)}.opening-label{font-size:25px;top:auto;bottom:100px}.hero-copy .text-link{padding:10px 0}.hero-art{object-position:66% top}}

@media(max-width:600px){.opening-label{bottom:160px}.branderiser .project-title{font-size:48px;letter-spacing:-2.5px}}
