:root{--bg:#fbfaf7;--paper:#fff;--ink:#242321;--muted:#77736c;--line:#dedbd4;--soft:#f2efe9;--accent:#9a8064;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);margin:0;font-family:DM Sans,Arial,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}.wrap{width:min(calc(100% - 64px),var(--max));margin:0 auto}.nav{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#fbfaf7f0;height:82px;position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;height:100%;display:flex}.brand{letter-spacing:-.08em;font-size:24px;font-weight:600}.nav-links{color:#4f4b45;gap:31px;font-size:13px;display:flex}.nav-links a:hover{color:var(--accent)}.menu{font:inherit;background:0 0;border:0;display:none}.hero{grid-template-columns:1.04fr .96fr;align-items:center;gap:80px;min-height:690px;padding-top:58px;padding-bottom:70px;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.17em;color:var(--accent);margin:0 0 18px;font-size:11px;font-weight:600}.hero h1,.page-hero h1{letter-spacing:-.065em;margin:0;font-size:clamp(70px,8vw,112px);font-weight:500;line-height:.86}.hero h1 i,.page-hero h1 i,.contact-section h2 i{font-family:Playfair Display,serif;font-weight:500}.hero-lead{color:#5f5b55;max-width:620px;margin:32px 0;font-size:18px}.actions{gap:12px;display:flex}.button{border:1px solid var(--ink);align-items:center;gap:18px;padding:14px 21px;font-size:13px;transition:all .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button.dark{background:var(--ink);color:#fff}.button.outline{background:0 0}.contact-strip{color:#77736c;flex-wrap:wrap;gap:25px;margin-top:70px;font-size:12px;display:flex}.contact-strip a:hover{color:var(--ink)}.portrait-placeholder{background:#e9e5de;justify-content:center;align-items:center;height:540px;display:flex;position:relative;overflow:hidden}.portrait-placeholder:before{content:"";background:#ddd7ce;border-radius:50%;width:72%;height:72%;position:absolute;top:10%;right:-7%}.portrait-placeholder div{text-align:center;color:#a49a8c;position:relative}.portrait-placeholder span{letter-spacing:.25em;font-size:12px;display:block}.portrait-placeholder strong{color:#81776b;font-family:Playfair Display,serif;font-size:62px;font-weight:500;display:block}.portrait-placeholder small{margin-top:15px;font-size:11px;display:block}.projects-preview,.tinted{background:var(--soft)}section{border-top:1px solid var(--line);padding:105px 0}.section-heading h2{letter-spacing:-.045em;max-width:650px;margin:0;font-size:48px;font-weight:500;line-height:1.05}.section-intro{color:var(--muted);max-width:430px;margin:0}.project-grid{grid-template-columns:repeat(2,1fr);gap:48px 28px;display:grid}.project-card{background:var(--paper);border:1px solid var(--line)}.project-image{aspect-ratio:16/9;background:#f1eee8;display:block;position:relative;overflow:hidden}.project-image img{object-fit:cover;width:100%;height:100%;transition:transform .5s;display:block}.project-card:hover .project-image img{transform:scale(1.02)}.project-number{background:#ffffffdb;padding:5px 8px;font-size:11px;position:absolute;top:16px;right:16px}.project-copy{padding:27px 28px 30px}.project-copy h3{margin:0 0 10px;font-family:Playfair Display,serif;font-size:30px;font-weight:500}.project-copy>p:not(.eyebrow){color:var(--muted);max-width:650px;margin:0 0 18px;font-size:14px}.tags{flex-wrap:wrap;gap:7px;display:flex}.tags span{border:1px solid var(--line);color:#666158;padding:5px 8px;font-size:10px}.text-link{text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid #aaa39a;gap:10px;margin-top:22px;padding-bottom:4px;font-size:12px;display:inline-flex}.text-link:hover{color:var(--accent)}.center{text-align:center;margin-top:48px}.split{grid-template-columns:1fr 1fr;gap:90px;display:grid}.prose{color:#5e5a54;max-width:650px}.prose p{margin:0 0 22px}.skill-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.skill{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:180px;padding:28px}.skill-no{color:var(--accent);font-size:11px}.skill h3{margin:20px 0 14px;font-size:20px;font-weight:500}.timeline{border-top:1px solid var(--line)}.timeline-row{border-bottom:1px solid var(--line);grid-template-columns:230px 1fr;gap:55px;padding:38px 0;display:grid}.timeline-date{color:var(--muted);font-size:13px}.timeline-row h3{margin:0;font-family:Playfair Display,serif;font-size:30px;font-weight:500}.company{color:var(--accent);margin:2px 0 12px}.muted{color:var(--muted);max-width:650px}.education-grid{grid-template-columns:.75fr 1.25fr;gap:50px;display:grid}.education-main{border:1px solid var(--line);background:var(--paper);height:max-content;padding:34px}.education-main h3{margin:0 0 7px;font-family:Playfair Display,serif;font-size:30px;font-weight:500}.education-main p{margin:0}.education-main>span{color:var(--muted);margin-top:25px;font-size:12px;display:block}.course-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.course{border:1px solid var(--line);background:var(--paper);padding:24px}.course h3{margin:0 0 5px;font-size:16px}.course p{color:var(--accent);margin:0 0 12px;font-size:11px}.course span{color:var(--muted);font-size:12px}.contact-section{color:#f7f4ee;background:#272624}.contact-grid{grid-template-columns:1fr 1fr;align-items:center;gap:80px;display:grid}.contact-section .eyebrow{color:#bda88d}.contact-section h2{letter-spacing:-.05em;margin:0;font-size:66px;font-weight:500;line-height:.95}.contact-section .section-intro{color:#b8b3aa;margin-top:25px}.contact-cards{grid-template-columns:1fr 1fr;gap:12px;display:grid}.contact-cards a{background:#302f2c;border:1px solid #494640;padding:23px}.contact-cards span{color:#aaa49b;text-transform:uppercase;letter-spacing:.15em;margin-bottom:10px;font-size:10px;display:block}.contact-cards strong{word-break:break-word;font-size:13px;font-weight:500}footer{color:#99958e;background:#272624;border-top:1px solid #494640}.footer-inner{justify-content:space-between;padding:24px 0;font-size:11px;display:flex}.page-hero{padding:135px 0 90px}.page-hero p:last-child{color:var(--muted);max-width:550px;margin-top:35px;font-size:17px}.projects-page{padding-top:90px}.back{color:var(--muted);margin-bottom:55px;font-size:12px;display:inline-block}.case-hero{padding:100px 0 60px}.case-hero h1{margin:0 0 25px;font-family:Playfair Display,serif;font-size:86px;font-weight:500;line-height:1}.case-hero>p:not(.eyebrow){color:var(--muted);max-width:670px;font-size:18px}.case-media{padding-top:10px}.case-media img{border:1px solid var(--line);width:100%;display:block}.case-content{grid-template-columns:1fr 1fr;gap:90px;display:grid}.case-content h2{margin:0;font-size:44px;font-weight:500;line-height:1.05}.note{background:var(--soft);padding:20px;font-size:13px}@media (max-width:850px){.wrap{width:min(calc(100% - 36px),var(--max))}.nav{height:70px}.menu{font-size:12px;display:block}.nav-links{background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;gap:18px;padding:20px 18px;display:none;position:absolute;top:70px;left:0;right:0}.nav-links.open{display:flex}.hero{grid-template-columns:1fr;gap:45px;min-height:auto;padding-top:80px}.portrait-placeholder{height:420px}.section-heading,.split,.contact-grid,.case-content{grid-template-columns:1fr;gap:25px;display:grid}.project-grid{grid-template-columns:1fr}.skill-grid{grid-template-columns:1fr 1fr}.timeline-row{grid-template-columns:1fr;gap:10px}.education-grid{grid-template-columns:1fr}.contact-cards{grid-template-columns:1fr 1fr}.page-hero{padding-top:90px}.case-hero h1{font-size:64px}}@media (max-width:540px){.hero h1,.page-hero h1{font-size:64px}.contact-strip{margin-top:45px}.section-heading h2{font-size:38px}.skill-grid,.course-grid,.contact-cards{grid-template-columns:1fr}.contact-section h2{font-size:54px}.footer-inner{display:block}.footer-inner span{margin:4px 0;display:block}.project-copy{padding:22px}.case-hero h1{font-size:55px}}.portrait{background:#e9e5de;height:540px;position:relative;overflow:hidden}.portrait img{object-fit:cover;object-position:center 35%}.admin{padding:100px 0 130px}.admin-top{justify-content:space-between;align-items:end;gap:30px;margin-bottom:55px;display:flex}.admin-top h1{margin:0 0 20px;font-family:Playfair Display,serif;font-size:70px;font-weight:500;line-height:1}.admin-top .muted{max-width:650px}.admin-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.admin-card{border:1px solid var(--line);background:#fff;padding:32px}.admin-card h2{margin:0 0 28px;font-family:Playfair Display,serif;font-size:34px;font-weight:500}.admin-card label{text-transform:uppercase;letter-spacing:.1em;color:#77736c;margin:18px 0;font-size:12px;display:block}.admin-card input,.admin-card textarea{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:#fbfaf7;margin-top:8px;padding:13px;font-size:14px;display:block}.admin-card input[type=file]{padding:10px}.admin-preview{object-fit:cover;width:100%;max-height:280px;margin:10px 0 20px}.draft{border-top:1px solid var(--line);grid-template-columns:110px 1fr;gap:15px;padding:18px 0;display:grid}.draft img{object-fit:cover;width:110px;height:80px}.draft strong{display:block}.draft span{color:var(--accent);margin-top:3px;font-size:11px;display:block}.draft p{color:var(--muted);margin:8px 0 0;font-size:12px}@media (max-width:850px){.admin-grid{grid-template-columns:1fr}.admin-top{display:block}.admin-top .button{margin-top:20px}.admin-top h1{font-size:56px}}.screens{grid-template-columns:repeat(3,1fr);gap:14px;margin:30px 0;display:grid}.screens figure{margin:0}.screens img{border:1px solid var(--line);width:100%;height:auto;display:block}.screens figcaption{color:var(--muted);margin-top:7px;font-size:11px}@media (max-width:850px){.screens{grid-template-columns:1fr 1fr}}@media (max-width:540px){.screens{grid-template-columns:1fr}}.project-rail-heading{position:relative}.project-all{position:absolute;bottom:8px;right:0}.project-rail{overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;margin-right:calc((100vw - min(calc(100% - 64px),var(--max)))/-2);scrollbar-width:thin;gap:22px;padding:8px 4px 24px;display:flex;overflow-x:auto}.rail-card{scroll-snap-align:start;border:1px solid var(--line);background:var(--paper);flex-direction:column;flex:0 0 min(520px,72vw);min-height:500px;padding:0;transition:transform .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.rail-card:hover{border-color:#aaa39a;transform:translateY(-4px)}.rail-top{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);border-bottom:1px solid var(--line);justify-content:space-between;padding:18px 20px;font-size:10px;display:flex}.rail-top span:first-child{color:var(--accent)}.rail-space{background:linear-gradient(135deg,#f5f2ec,#ece8e0);flex:1;align-items:center;min-height:250px;padding:32px;display:flex}.rail-label{color:#b7afa4;letter-spacing:-.04em;font-family:Playfair Display,serif;font-size:clamp(42px,5vw,72px);font-style:italic}.rail-copy{border-top:1px solid var(--line);padding:25px 25px 28px}.rail-copy h3{margin:0 0 10px;font-family:Playfair Display,serif;font-size:32px;font-weight:500;line-height:1}.rail-copy p{color:var(--muted);max-width:430px;margin:0 0 16px;font-size:13px}.rail-arrow{font-size:22px;position:absolute;bottom:24px;right:22px}.rail-hint{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-top:6px;font-size:10px}.rail-hint span{color:var(--ink);margin-left:8px;font-size:16px}.work-section{overflow:hidden}.section-heading{justify-content:space-between;align-items:end;gap:40px;margin-bottom:38px;display:flex}.section-heading h2,.split-section h2,.contact-section h2{letter-spacing:-.04em;margin:0;font-weight:500}.section-note{color:#77716a;text-align:right;max-width:240px;margin:0;font-size:14px}.project-rail{scroll-snap-type:x mandatory;cursor:grab;scrollbar-width:thin;gap:18px;padding:4px 0 26px;display:flex;overflow:auto hidden}.project-rail:active{cursor:grabbing}.project-card{color:#262421;scroll-snap-align:start;background:#e8e3da;flex-direction:column;flex:0 0 min(72vw,620px);justify-content:space-between;min-height:520px;padding:28px;text-decoration:none;transition:transform .25s;display:flex}.project-card:hover{transform:translateY(-5px)}.project-card:nth-child(2){background:#ded9d0}.project-card:nth-child(3){background:#f0ece5}.project-card-top,.project-card-bottom{justify-content:space-between;gap:24px;display:flex}.project-card-top{text-transform:uppercase;letter-spacing:.12em;color:#706a63;font-size:12px}.project-card-space{flex:1;min-height:210px}.project-card-bottom{align-items:end}.project-card h3{letter-spacing:-.04em;margin:0 0 14px;font-size:42px;font-weight:500;line-height:1}.project-card p{color:#5f5a54;max-width:430px;margin:0 0 18px;line-height:1.55}.project-tags{flex-wrap:wrap;gap:8px;display:flex}.project-tags span{border:1px solid #aaa39a;border-radius:100px;padding:6px 10px;font-size:11px}.project-arrow{align-self:flex-end;font-size:28px}.work-footer{text-align:right;margin-top:10px}.work-footer a{color:inherit;border-bottom:1px solid;padding-bottom:4px;text-decoration:none}@media (max-width:800px){.section-heading{flex-direction:column;align-items:flex-start;gap:12px}.section-note{text-align:left}.project-card{flex-basis:86vw;min-height:470px;padding:22px}.project-card h3{font-size:34px}.project-card-space{min-height:180px}}.hero-image{aspect-ratio:1;background:#e9e5de;justify-self:end;width:100%;max-width:560px;position:relative;overflow:hidden}.hero-image img{object-fit:cover;object-position:center center}@media (max-width:900px){.hero{grid-template-columns:1fr;gap:42px}.hero-image{aspect-ratio:1;justify-self:stretch;max-width:100%}}.hero.home-section,.work-section.home-section,.split-section.home-section,.list-section.home-section{width:min(100% - 96px,1540px);margin-left:auto;margin-right:auto}.hero.home-section{padding-left:0;padding-right:0}@media (max-width:850px){.hero.home-section,.work-section.home-section,.split-section.home-section,.list-section.home-section{width:min(100% - 36px,1180px)}}.hero h1 em,.hero h1 i{font-family:DM Sans,Arial,sans-serif;font-style:normal;font-weight:500}.hero-lede{max-width:660px}.hero-actions{gap:12px;display:flex}.home-section{scroll-margin-top:100px}.resume-section{border-top:1px solid var(--line)}.resume-inner{grid-template-columns:1fr 1fr;align-items:end;gap:80px;display:grid}.resume-inner h2{letter-spacing:-.05em;margin:0;font-size:clamp(48px,5vw,72px);font-weight:500;line-height:.98}.resume-copy{max-width:520px}.resume-copy p{color:var(--muted);margin:0 0 28px;font-size:16px}.resume-actions{flex-wrap:wrap;gap:12px;display:flex}.contact-direct{flex-wrap:wrap;gap:20px;margin-top:30px;display:flex}.contact-direct a{color:#f7f4ee;border-bottom:1px solid #5b5852;padding-bottom:5px}.contact-direct a:hover{color:#bda88d}.contact-form{background:#302f2c;border:1px solid #494640;gap:17px;padding:30px;display:grid}.contact-form label{color:#b8b3aa;text-transform:uppercase;letter-spacing:.12em;font-size:11px}.contact-form input,.contact-form textarea{color:#f7f4ee;width:100%;font:inherit;background:#272624;border:1px solid #4d4a45;outline:none;margin-top:8px;padding:13px 14px;font-size:14px;display:block}.contact-form input:focus,.contact-form textarea:focus{border-color:#bda88d}.button.light{color:#272624;cursor:pointer;background:#f7f4ee;border-color:#f7f4ee;justify-content:center}.form-note{color:#88847d;margin:0;font-size:10px}footer{padding:0}.footer-inner{padding:30px 0 22px;display:block}.footer-contact{border-bottom:1px solid #494640;flex-wrap:wrap;align-items:center;gap:28px;padding-bottom:26px;display:flex}.footer-contact a{color:#ddd9d1;align-items:center;gap:9px;font-size:12px;display:inline-flex}.footer-contact a:hover{color:#bda88d}.footer-contact svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.footer-bottom{color:#99958e;justify-content:space-between;gap:20px;padding-top:18px;font-size:10px;display:flex}@media (max-width:850px){.resume-inner{grid-template-columns:1fr;gap:30px}.footer-contact{gap:18px}.footer-bottom{display:block}.footer-bottom span{margin-top:4px;display:block}}@media (max-width:540px){.hero-actions,.resume-actions{flex-direction:column;align-items:stretch}.hero-actions .button,.resume-actions .button{justify-content:center}.contact-form{padding:22px}}
