@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700;9..144,900&family=IBM+Plex+Mono:wght@400;500&family=Inter:wght@400;500&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--ink: #0f1a2b;--ink-panel: #142238;--ink-panel-alt: #182740;--paper: #f3efe4;--paper-dim: #a7aebd;--line: rgba(243, 239, 228, .12);--line-strong: rgba(243, 239, 228, .24);--brass: #c99a4a;--brass-bright: #e0b567;--rust: #b6603f;--font-display: "Fraunces", serif;--font-body: "Inter", sans-serif;--font-mono: "IBM Plex Mono", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--font-body)}.app{overflow-x:hidden}a{color:inherit;text-decoration:none}ul{margin:0;padding:0;list-style:none}.accent{color:var(--brass-bright);font-style:italic}.section-head{max-width:1120px;margin:0 auto 3rem;padding:0 1.75rem}.section-eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--line-strong)}.section-title{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:600;margin:0;letter-spacing:-.01em}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.9rem 1.85rem;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;border-radius:1px;border:1px solid var(--line-strong);transition:all .25s ease;cursor:pointer}.btn--primary{background:var(--brass);color:#17110a;border-color:var(--brass);font-weight:500}.btn--primary:hover{background:var(--brass-bright)}.btn--ghost{background:transparent;color:var(--paper)}.btn--ghost:hover{border-color:var(--brass);color:var(--brass-bright)}.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;transition:background .3s ease,border-color .3s ease,padding .3s ease;border-bottom:1px solid transparent}.nav--scrolled{background:#0f1a2be6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom-color:var(--line);padding:1.1rem 2rem}.nav__brand{font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:-.01em}.nav__links{display:flex;gap:2.5rem}.nav__link{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--paper-dim);transition:color .2s ease}.nav__link:hover{color:var(--brass-bright)}.nav__toggle{display:none;background:none;border:none;color:var(--paper);cursor:pointer}.nav__mobile{position:absolute;top:100%;left:0;right:0;background:var(--ink-panel);border-bottom:1px solid var(--line);display:flex;flex-direction:column;padding:1rem 2rem 1.5rem}.nav__mobile-link{padding:.75rem 0;font-family:var(--font-mono);font-size:.85rem;color:var(--paper-dim);border-bottom:1px solid var(--line)}.hero{min-height:100vh;display:flex;align-items:center;padding:8rem 1.75rem 4rem}.hero__inner{max-width:1120px;margin:0 auto;width:100%;display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:center}.hero__dwg{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin:0 0 1.5rem}.hero__name{font-family:var(--font-display);font-size:clamp(3.2rem,7vw,5.5rem);font-weight:900;line-height:.95;letter-spacing:-.02em;margin:0 0 1.25rem}.hero__role{font-family:var(--font-mono);font-size:.95rem;color:var(--brass-bright);margin:0 0 1.5rem}.hero__tagline{font-size:1.05rem;line-height:1.65;color:var(--paper-dim);max-width:30rem;margin:0 0 2.25rem}.hero__actions{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2.5rem}.hero__socials{display:flex;gap:1.75rem}.hero__social{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:var(--paper-dim);transition:color .2s ease}.hero__social:hover{color:var(--brass-bright)}.figure{position:relative;padding:1.5rem}.figure__tick{position:absolute;width:22px;height:22px;border:1px solid var(--brass)}.figure__tick--tl{top:0;left:0;border-right:none;border-bottom:none}.figure__tick--tr{top:0;right:0;border-left:none;border-bottom:none}.figure__tick--bl{bottom:0;left:0;border-right:none;border-top:none}.figure__tick--br{bottom:0;right:0;border-left:none;border-top:none}.figure__img{width:100%;aspect-ratio:4 / 5;object-fit:cover;filter:grayscale(35%) contrast(1.05);border:1px solid var(--line-strong)}.figure__caption{display:flex;justify-content:space-between;margin-top:1rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;color:var(--paper-dim)}.about{padding:7rem 1.75rem;background:var(--ink)}.about__grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:3.5rem}.about__copy p{color:var(--paper-dim);line-height:1.75;font-size:1.02rem}.about__quote{margin:1.5rem 0 0;padding-left:1.25rem;border-left:2px solid var(--brass);font-family:var(--font-display);font-style:italic;font-size:1.1rem;color:var(--paper)}.spec-table{align-self:start;border-top:1px solid var(--line-strong)}.spec-row{display:flex;justify-content:space-between;gap:1.5rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}.spec-row__label{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brass);white-space:nowrap}.spec-row__value{text-align:right;font-size:.9rem;color:var(--paper-dim)}.experience{padding:7rem 1.75rem;background:var(--ink-panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ruler{max-width:820px;margin:0 auto;padding:0 1.75rem}.ruler__item{display:grid;grid-template-columns:140px 1fr;gap:2rem;padding:2rem 0;border-top:1px solid var(--line)}.ruler__item:first-child{border-top:1px solid var(--line-strong)}.ruler__mark{position:relative;padding-top:.3rem}.ruler__mark:before{content:"";position:absolute;top:0;left:0;width:18px;height:2px;background:var(--brass)}.ruler__period{display:block;margin-top:.6rem;font-family:var(--font-mono);font-size:.75rem;color:var(--paper-dim)}.ruler__role{font-family:var(--font-display);font-size:1.3rem;font-weight:600;margin:0}.ruler__company{color:var(--brass-bright);font-size:.9rem;margin:.3rem 0 .9rem}.ruler__points li{color:var(--paper-dim);line-height:1.7;padding-left:1.1rem;position:relative;font-size:.95rem}.ruler__points li:before{content:"—";position:absolute;left:0;color:var(--rust)}.projects{padding:7rem 1.75rem;background:var(--ink)}.projects__grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.project-card{position:relative;background:var(--ink-panel-alt);border:1px solid var(--line);padding:2rem;display:flex;flex-direction:column;transition:border-color .3s ease}.project-card:hover{border-color:var(--brass)}.project-card__fig{position:absolute;top:1.5rem;right:1.5rem;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.08em;color:var(--paper-dim)}.project-card__title{font-family:var(--font-display);font-size:1.35rem;font-weight:600;margin:0 .5rem .75rem 0;padding-right:3rem}.project-card__desc{color:var(--paper-dim);font-size:.92rem;line-height:1.65;flex-grow:1;margin:0 0 1.5rem}.project-card__tech{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin-bottom:1.5rem;padding-top:1rem;border-top:1px solid var(--line)}.project-card__tag{font-family:var(--font-mono);font-size:.7rem;color:var(--brass)}.project-card__links{display:flex;gap:1.5rem;margin-top:auto}.project-card__link{font-family:var(--font-mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--paper-dim);display:inline-flex;align-items:center;gap:.35rem;transition:color .2s ease}.project-card__link:hover{color:var(--paper)}.project-card__link--primary{color:var(--brass-bright)}.contact{padding:7rem 1.75rem 0;background:var(--ink-panel);border-top:1px solid var(--line);text-align:center}.contact__inner{max-width:640px;margin:0 auto 5rem}.contact__title{font-family:var(--font-display);font-weight:600;font-size:clamp(1.75rem,3.5vw,2.5rem);margin:0 0 1rem}.contact__copy{color:var(--paper-dim);margin:0 0 2rem}.title-block{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-strong)}.title-block__cell{padding:1.25rem 1.5rem;border-right:1px solid var(--line-strong);display:flex;flex-direction:column;gap:.4rem;text-align:left}.title-block__cell:last-child{border-right:none}.title-block__cell span{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;color:var(--brass)}.title-block__cell strong{font-family:var(--font-mono);font-size:.8rem;font-weight:400;color:var(--paper-dim)}@media(max-width:900px){.hero__inner{grid-template-columns:1fr}.figure{order:-1;max-width:340px;margin:0 auto}.about__grid,.projects__grid{grid-template-columns:1fr}.nav__links{display:none}.nav__toggle{display:block}.title-block{grid-template-columns:repeat(2,1fr)}.title-block__cell:nth-child(2){border-right:none}}@media(max-width:500px){.ruler__item{grid-template-columns:1fr;gap:.5rem}.hero{padding-top:7rem}}.ruler__location{color:var(--paper-dim);font-size:.8rem}.project-card__img-wrapper{width:100%;aspect-ratio:16 / 9;overflow:hidden;border:1px solid var(--line-strong);margin:1rem 0 1.25rem;background:var(--ink-panel)}.project-card__img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease,filter .3s ease;filter:grayscale(15%)}.project-card:hover .project-card__img{transform:scale(1.03);filter:grayscale(0%)}
