:root{--bg:#101112;--text:#f0eee9;--muted:#a7a6a2;--muted2:#797b7b;--line:#333538;--ink:#1b1d1e;--accent:#e8e6de;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid #f3f1e8;outline-offset:4px}::selection{background:#f2f1e9;color:#0f1011}
.shell{max-width:1750px;min-height:100vh;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 285px;padding:0 63px 0 76px;gap:60px}.shell>main{min-width:0}.site-header{height:94px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;gap:18px;align-items:center}.brand-mark{font-size:23px;font-weight:750;letter-spacing:-.08em}.brand-dot,.punctuation{color:#a6c0ac}.brand-word{color:var(--muted2);font-weight:650;letter-spacing:.15em;font-size:9px}.header-links{display:flex;gap:28px;align-items:center}.header-links a{font-size:12px;color:#b3b4b2;transition:color .2s}.header-links a:hover{color:#fff}.header-links span{margin-left:3px}
.intro{padding:106px 0 111px}.eyebrow{font-size:11px;letter-spacing:.17em;font-weight:650;color:#aeb1ad;display:flex;align-items:center;gap:13px}.eyebrow-line{height:1px;width:31px;background:#9baea0}.intro h1{font-size:clamp(66px,8.65vw,137px);font-weight:570;line-height:.99;letter-spacing:-.084em;margin:26px 0 45px}.intro h1 span:not(.punctuation){color:#aaaead}.intro h1 .punctuation{letter-spacing:-.05em}.intro-bottom{display:flex;gap:48px;justify-content:space-between;align-items:flex-end}.intro-bottom p{max-width:680px;font-size:clamp(18px,2vw,24px);line-height:1.45;letter-spacing:-.027em;color:#adada9;margin:0}.intro-bottom p em{font-style:normal;color:#f0eee9}.intro-actions{display:flex;flex-direction:column;flex:0 0 auto;gap:13px;padding-bottom:5px}.primary-link{display:flex;align-items:center;justify-content:space-between;gap:22px;background:#f1efe9;color:#141617;padding:14px 15px;font-size:12px;font-weight:700;min-width:178px;transition:background .2s,color .2s}.primary-link:hover{background:#c7d7c9}.minor-link{font-size:12px;color:#aeb1ad;padding:0 1px}.minor-link span{float:right;color:#dfdfdb}
.section-line{border-top:1px solid #767a7a;display:flex;justify-content:space-between;align-items:center;padding-top:19px;margin-bottom:38px}.section-line h2{margin:0;font-size:18px;font-weight:550;letter-spacing:-.025em}.section-line>span{font-size:11px;letter-spacing:.13em;color:#7d8280}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:29px;row-gap:70px}.project{min-width:0;display:flex;flex-direction:column}.gallery{position:relative;background:#191b1d;border:1px solid #343536;overflow:hidden}.gallery-track{display:flex;transition:transform .38s cubic-bezier(.22,.61,.36,1);width:100%;will-change:transform}.gallery-track img{width:100%;flex:0 0 100%;display:block;aspect-ratio:1200/710;object-fit:cover}.gallery-foot{height:41px;padding:0 10px 0 15px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #383b3b}.preview-label{letter-spacing:.1em;color:#959d97;font-size:8px;font-weight:700}.gallery-controls{display:flex;align-items:center;gap:5px}.gallery-count{font-size:10px;color:#a3a7a4;margin-right:8px;font-variant-numeric:tabular-nums}.arrow{border:1px solid #474b4b;background:transparent;color:#e8ece8;width:29px;height:26px;cursor:pointer;display:grid;place-items:center;line-height:1;padding:0;transition:background .15s}.arrow:hover{background:#3c4641}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#7e8481;font-size:10px;letter-spacing:.07em;font-weight:650;margin-top:21px}.project h3{font-size:27px;line-height:1.12;font-weight:530;letter-spacing:-.052em;margin:11px 0 15px}.project-description{font-size:14px;line-height:1.71;color:#b0b3ae;margin:0;max-width:55ch}.project-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 19px;margin-top:auto;padding-top:22px;font-size:12px}.project-links a{color:#f2f1ec;border-bottom:1px solid #858e87;padding-bottom:4px;font-weight:630;transition:border-color .2s}.project-links a:hover{border-color:#fff}.project-links a span{margin-left:5px}.private-note{color:#777f7a;font-size:11px;font-weight:450}
.resume-rail{border-left:1px solid var(--line);padding-left:28px}.rail-inner{position:sticky;top:54px;padding-top:58px}.eyebrow-small{font-size:9px;font-weight:650;letter-spacing:.19em;color:#8c928d}.rail-title h2{font-size:44px;line-height:1;margin:11px 0 18px;font-weight:510;letter-spacing:-.06em}.rail-title p{font-size:13px;color:#9c9f9b;line-height:1.62;margin:0 0 38px}.resume-list{display:flex;flex-direction:column}.resume-option{position:relative}.resume-view{padding-bottom:31px!important}.resume-dl{position:absolute;left:36px;bottom:12px;font-size:9px;color:#c5d1c5;letter-spacing:.14em;font-weight:650}.resume-dl:hover{color:#fff}.project-description strong{color:#e5e8e1;font-weight:650}.resume-view{position:relative;border-top:1px solid #373a3a;padding:16px 5px 17px 0;display:grid;grid-template-columns:23px minmax(0,1fr) 20px;gap:13px;align-items:start;transition:color .2s,padding .2s}.resume-option:last-child .resume-view{border-bottom:1px solid #373a3a}.resume-view:hover{color:#bcd2c0;padding-left:6px}.resume-index{font-size:9px;color:#898f8a;line-height:2.1;font-weight:750;letter-spacing:.05em}.resume-name{font-size:16px;line-height:1.25;font-weight:490;letter-spacing:-.025em}.resume-download{font-size:17px;color:#797f7b;line-height:1.4}.resume-view:hover .resume-download{color:#bcd2c0}.rail-foot{margin-top:35px;font-size:10px;letter-spacing:.08em;color:#959d98;font-weight:650}.status-dot{display:inline-block;height:6px;width:6px;border-radius:50%;background:#b4cab6;margin-right:8px;vertical-align:2px}.rail-foot a{display:block;font-size:13px;letter-spacing:0;color:#e6e7df;margin-top:12px;font-weight:500}
.site-footer{margin:116px 0 0;border-top:1px solid #383b3a;padding:24px 0 26px;color:#a8aeaa}.site-footer>div:first-child{display:flex;align-items:center;gap:20px}.footer-mark{font-size:23px;letter-spacing:-.06em;font-weight:700;color:#e9eee7}.site-footer>div:first-child>span+span{font-size:12px}.site-footer>div:nth-child(2){display:flex;gap:24px;font-size:12px;margin:19px 0}.site-footer small{font-size:10px;color:#707673;display:block;max-width:660px}
@media(max-width:1290px){.shell{gap:43px;padding:0 40px;grid-template-columns:minmax(0,1fr) 250px}.project-grid{gap:58px 21px}.intro{padding:90px 0 96px}.intro-bottom{display:block}.intro-actions{flex-direction:row;margin-top:28px}.rail-inner{top:30px}}@media(max-width:1020px){.shell{display:block;padding:0 36px}.resume-rail{border-left:0;border-top:1px solid var(--line);padding:0 0 50px;margin-top:70px}.rail-inner{position:static;padding-top:35px}.rail-title h2{font-size:37px}.rail-title p{max-width:540px}.resume-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:27px}.resume-option:nth-child(4) .resume-view{border-bottom:1px solid #373a3a}.intro{padding:80px 0 90px}.intro h1{font-size:clamp(60px,11vw,112px)}}@media(max-width:680px){.shell{padding:0 19px}.site-header{height:72px}.brand-word{font-size:8px}.header-links{gap:16px}.intro{padding:72px 0 80px}.eyebrow{font-size:9px;letter-spacing:.12em}.intro h1{font-size:clamp(58px,15.1vw,85px);margin:22px 0 31px}.intro-bottom p{font-size:19px}.intro-actions{flex-direction:column;align-items:stretch;max-width:250px;margin-top:28px}.minor-link{padding:8px 2px}.section-line{margin-bottom:29px}.right-only{display:none}.project-grid{grid-template-columns:1fr;row-gap:57px}.project h3{font-size:26px}.project-description{font-size:14px}.gallery-foot{height:39px}.resume-list{display:block}.resume-option:nth-child(4) .resume-view{border-bottom:0}.rail-title p{margin-bottom:24px}.rail-inner{padding-top:33px}.site-footer{margin-top:87px}.site-footer>div:first-child{align-items:flex-start}.site-footer>div:first-child>span+span{line-height:1.5}.site-footer>div:nth-child(2){gap:17px;flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
