/* Editorial portfolio: paper, ink, and architectural rules. */
:root{--paper:#f3f0e8;--ink:#292a24;--muted:#66665b;--line:#cdc9bd;--accent:#a4472e;--serif:'DM Serif Display',Georgia,serif;--mono:'IBM Plex Mono',monospace;--sans:'DM Sans',sans-serif}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}ul,ol{list-style:none;padding:0}::selection{background:#e4beac}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.container{max-width:1240px;margin:auto;padding-inline:48px}.bg-layer{display:none}.skip-link{position:fixed;top:-100px;left:20px;padding:12px 20px;background:var(--ink);color:var(--paper);z-index:100}.skip-link:focus{top:12px}
.nav{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}.nav__inner{max-width:1240px;margin:auto;padding:20px 48px;display:flex;align-items:center;justify-content:space-between;gap:24px}.nav__brand{display:flex;align-items:center;gap:16px}.nav__mark{font:38px/1 var(--serif);letter-spacing:-3px;color:var(--accent)}.nav__brandText{font-size:13px;font-weight:600}.nav__links{display:flex;gap:27px}.nav__links a{font-size:13px;color:var(--muted);position:relative;padding-block:6px}.nav__links a:hover,.nav__links a.is-active{color:var(--accent)}.nav__links a.is-active:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--accent)}.nav__burger{display:none}
.hero{padding-top:74px}.hero__grid{display:grid;grid-template-columns:1.6fr 1fr;gap:60px;align-items:center}.hero__eyebrow,.hero__foot,.folio__caption,.section__eyebrow{font:11px/1.6 var(--mono);letter-spacing:1.4px}.hero__eyebrow{margin-bottom:27px;color:var(--accent)}.hero__title{font:clamp(52px,5.9vw,78px)/1.05 var(--serif);letter-spacing:-2.5px;font-weight:400}.hero__title em{font-weight:400;color:var(--accent)}.hero__summary{max-width:455px;margin-top:28px;font-size:16px;color:var(--muted);line-height:1.8}.hero__actions{display:flex;align-items:center;gap:28px;margin-top:32px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid var(--ink);padding:13px 23px;font-size:13px;font-weight:500;transition:background .2s,color .2s,transform .2s}.btn--primary{background:var(--ink);color:var(--paper)}.btn--primary:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.btn--ghost{background:transparent}.btn--ghost:hover{background:var(--ink);color:var(--paper)}.btn--sm{padding:10px 16px}.btn--block{width:100%}.btn:disabled{opacity:.65;cursor:wait}.hero__textLink{font-size:13px;border-bottom:1px solid var(--ink);padding-block:5px}.hero__textLink:hover{color:var(--accent)}.hero__badge{display:flex;align-items:center;gap:9px;margin-top:28px;font-size:11px;color:var(--muted)}.dot{width:6px;height:6px;border-radius:50%;background:#66744c}.hero__side{border:1px solid var(--line);background:#ece8de;padding:22px 25px 15px;transform:rotate(2deg)}.folio__caption{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.7px}.folio__drawing{width:100%;height:auto;margin:12px auto}.folio__layers p{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:10px 0;font:10px/1.5 var(--mono)}.folio__layers p span:last-child{color:var(--muted)}.hero__foot{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin-top:67px;font-size:9px;letter-spacing:1px;color:var(--muted)}
.section{padding:88px 0}.section__head{margin-bottom:40px;max-width:760px}.section__eyebrow{color:var(--accent);margin-bottom:18px}.section__title{font:clamp(36px,4.2vw,54px)/1.12 var(--serif);letter-spacing:-1px}.section__lead{color:var(--muted);font-size:15px;max-width:630px;margin-top:18px}.projects{counter-reset:project}.project{counter-increment:project;position:relative;display:grid;grid-template-columns:1fr 1.15fr;column-gap:60px;row-gap:20px;padding:38px 0 38px 66px;border-top:1px solid var(--line)}.project:last-child{border-bottom:1px solid var(--line)}.project:before{content:'0' counter(project);position:absolute;top:42px;left:0;font:12px var(--mono);color:var(--accent)}.project__top{grid-column:1;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.project__top h3{font:28px/1.2 var(--serif);max-width:300px}.tag{font:9px var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--accent)}.project__blurb{grid-column:1;color:var(--muted);font-size:14px}.project__points{grid-column:2;grid-row:1 / span 3;display:grid;align-content:start;gap:12px}.project__points li{font-size:13px;color:var(--muted);padding-left:16px;position:relative}.project__points li:before{content:'—';position:absolute;left:0;color:var(--accent)}.chips{display:flex;flex-wrap:wrap;gap:7px 12px}.chips li{font:10px/1.5 var(--mono);color:var(--muted)}.chips li:not(:last-child):after{content:' /';color:#9b998e;margin-left:9px}.project>.chips{grid-column:1}.project__links{grid-column:2;justify-self:start}.project__links .btn{padding:0 0 5px;border:0;border-bottom:1px solid var(--ink);font-size:12px}.project__links .btn:after{content:'↗';margin-left:14px}.project__links .btn:hover{background:transparent;color:var(--accent);border-color:var(--accent)}
#about{background:#e7e3d9;border-block:1px solid var(--line)}#about>.container{display:grid;grid-template-columns:1fr 1.15fr;gap:80px}#about .section__head{margin:0}#about .section__title{font-size:45px}.cards{display:grid}.card{padding:23px 0;border-top:1px solid var(--line)}.card__icon{display:block;font:10px var(--mono);color:var(--accent);margin-bottom:10px}.card h3{font-size:17px;font-weight:500;margin-bottom:8px}.card p{font-size:14px;color:var(--muted)}#skills .cards{grid-template-columns:1fr 1fr;column-gap:64px}.card--skill{display:grid;grid-template-columns:145px 1fr;gap:15px;padding-block:23px}.card--skill h3{font-size:14px;margin:0}.card--skill .chips{align-content:start}.card--skill .chips li{font-size:11px}
#journey{border-top:1px solid var(--line)}#journey>.container{display:grid;grid-template-columns:1fr 1.15fr;gap:80px}.timeline li{border-top:1px solid var(--line);padding:24px 0}.timeline__period{font:10px var(--mono);color:var(--accent)}.timeline h3{font-size:18px;font-weight:500;margin-top:10px}.timeline__org{font-size:12px;color:var(--muted);margin:4px 0 12px}.timeline li>p:last-child{font-size:14px;color:var(--muted)}
.section--contact{background:var(--ink);color:var(--paper)}.section--contact .section__eyebrow{color:#dbab8d}.section--contact .section__lead{color:#bcbeb1}.contact{display:grid;grid-template-columns:1fr 1.15fr;gap:80px}.contact__side{display:grid;align-content:start}.contact__row{display:flex;gap:18px;padding:19px 0;border-top:1px solid #505147}.contact__row>span{color:#dbab8d}.contact__row strong{font-size:12px;font-weight:500}.contact__row p{font-size:14px;color:#bcbeb1;overflow-wrap:anywhere}.contact__row:hover p{color:var(--paper)}.contact__form{display:grid;gap:20px}.field{display:grid;gap:8px}.field label{font-size:12px}.field input,.field textarea{width:100%;padding:12px 0;border:0;border-bottom:1px solid #707166;border-radius:0;background:transparent;color:var(--paper);font-size:14px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#a4a699}.contact .btn--primary{background:var(--paper);color:var(--ink);border-color:var(--paper)}.contact .btn--primary:hover{background:#e0b79f;border-color:#e0b79f}.contact__note{font-size:11px;color:#bcbeb1;overflow-wrap:anywhere}.contact__note a{border-bottom:1px solid #707166}.hidden-field{display:none}.footer{padding:26px 0}.footer__inner{display:flex;justify-content:space-between;gap:20px}.footer p,.footer__links{font-size:11px;color:var(--muted)}.footer__links{display:flex;gap:20px}.footer a:hover{color:var(--accent)}
.hero__side{transform:none}
.hero__badge,.folio__caption,.folio__layers p,.hero__foot,.tag,.chips li,.card__icon,.timeline__period{font-size:11px}
.project__blurb{font-size:15px}
.project__points li{font-size:14px;line-height:1.7}
.card--skill .chips li,.contact__note,.footer p,.footer__links{font-size:12px}
.nav__links a,.hero__textLink,.project__links .btn,.footer__links a{min-height:44px;display:inline-flex;align-items:center}
.project__links{display:flex;flex-wrap:wrap;gap:20px}
.contact__row--static:hover p{color:#bcbeb1}
.contact :focus-visible{outline-color:#dbab8d}
@media(prefers-reduced-motion:no-preference){.hero__copy{animation:enter .7s both}.hero__side{animation:appear 1s both}@keyframes enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes appear{from{opacity:0}to{opacity:1}}}
@media(min-width:1500px){.hero{padding-top:100px}.hero__foot{margin-top:90px}}
@media(max-width:1000px){.container,.nav__inner{padding-inline:30px}.hero__grid{gap:35px;grid-template-columns:1.4fr 1fr}.hero__title{font-size:57px}.hero__side{padding:18px}.folio__layers p{font-size:9px}.nav__links{gap:18px}#about>.container,#journey>.container,.contact{gap:40px}.project{column-gap:35px}.card--skill{grid-template-columns:1fr;gap:8px}}
@media(max-width:760px){html{scroll-padding-top:85px}.container,.nav__inner{padding-inline:22px}.nav__inner{padding-block:16px}.nav__brandText{font-size:12px}.nav__burger{display:grid;place-items:center;width:42px;height:38px;border:1px solid var(--line);background:transparent}.nav__burger span{position:relative;width:18px;height:1px;background:var(--ink)}.nav__burger span:before,.nav__burger span:after{content:'';position:absolute;left:0;width:18px;height:1px;background:var(--ink)}.nav__burger span:before{top:-6px}.nav__burger span:after{top:6px}.nav__burger .is-x{background:transparent}.nav__burger .is-x:before{top:0;transform:rotate(45deg)}.nav__burger .is-x:after{top:0;transform:rotate(-45deg)}.nav__links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:18px 22px;gap:6px}.nav__links.is-open{display:flex;flex-direction:column}.nav__links a{padding:11px 0}.nav__links a.is-active:after{width:25px}.hero{padding-top:45px}.hero__grid{grid-template-columns:1fr;gap:40px}.hero__title{font-size:clamp(43px,8.7vw,65px);letter-spacing:-1.6px}.hero__summary{max-width:540px;font-size:15px}.hero__eyebrow{font-size:10px}.hero__side{transform:none;max-width:480px;width:100%;justify-self:center;display:grid;grid-template-columns:1fr 1fr;gap:0 20px;padding:18px}.folio__caption{grid-column:1/-1}.folio__drawing{margin:5px 0}.folio__layers{align-self:center}.folio__layers p{flex-direction:column;gap:2px;font-size:8px;padding:8px 0}.hero__foot{margin-top:36px;padding:15px 0;font-size:8px}.hero__foot>span:nth-child(2){display:none}.section{padding:58px 0}.section__head{margin-bottom:30px}.section__title,#about .section__title{font-size:38px}.project{grid-template-columns:1fr;padding:28px 0 30px 40px;gap:17px}.project:before{top:32px}.project__top h3{font-size:27px;max-width:none}.project__top{flex-direction:row;flex-wrap:wrap;align-items:center}.project__blurb,.project__points,.project>.chips,.project__links{grid-column:1;grid-row:auto}.project__points{gap:8px}.project__links{margin-top:3px}#about>.container,#journey>.container,.contact{grid-template-columns:1fr;gap:32px}#skills .cards{grid-template-columns:1fr;gap:0}.card--skill{grid-template-columns:120px 1fr}.footer__inner{flex-direction:column;gap:12px}.footer__links{flex-wrap:wrap}.contact__side{grid-template-columns:1fr 1fr;gap:0 20px}.contact__row{gap:10px}.contact__row p{font-size:12px}}
@media(max-width:380px){.container,.nav__inner{padding-inline:16px}.hero__actions{gap:20px}.hero__title{font-size:41px}.contact__side{grid-template-columns:1fr}.folio__caption{font-size:8px}.hero__side{gap:0 10px}.card--skill{grid-template-columns:1fr}.hero__foot{letter-spacing:0}}
@media(max-width:1000px){.folio__layers p{font-size:11px}}
@media(max-width:760px){.hero__foot,.folio__caption,.folio__layers p{font-size:10px;letter-spacing:.4px}.hero__foot{flex-wrap:wrap;gap:12px}.field input,.field textarea{font-size:16px}.hero__actions{flex-wrap:wrap;gap:16px 24px}.contact__side{grid-template-columns:1fr}.contact__row p{font-size:14px}.nav__burger{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
