@charset "UTF-8";
:root{--paper:#f5f2e9;--light:#fbfaf5;--ink:#192d35;--muted:#566a6f;--line:#cad5d0;--orange:#eb8a49;--dark:#1a3039;--content:1320px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none} a:focus-visible{outline:3px solid var(--orange);outline-offset:5px}
img,svg{max-width:100%}.shell{width:min(calc(100% - 88px),var(--content));margin-inline:auto}
.skip-link{position:absolute;left:16px;top:-60px;z-index:10;padding:12px 16px;background:var(--ink);color:#fff}.skip-link:focus{top:16px}

/* Masthead */
.site-header{min-height:110px;display:flex;align-items:center;justify-content:space-between;gap:32px;border-bottom:1px solid var(--line)}
.brand{display:inline-flex;align-items:center;gap:8px;flex:none}.brand-mark{display:block;width:72px;height:66px;object-fit:contain;flex:none}
.brand-name{display:flex;flex-direction:column;gap:4px;font-size:16px;font-weight:800;letter-spacing:-.025em}.brand-name span{color:var(--muted);font:500 10px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase}
.site-nav{display:flex;align-items:center;gap:clamp(17px,2.6vw,40px);font-size:13px;font-weight:700}.site-nav a:not(.nav-contact){transition:color .2s}.site-nav a:not(.nav-contact):hover{color:#ba6237}
.nav-contact{padding:12px 17px;border:1px solid var(--ink);border-radius:4px;transition:background .2s,color .2s}.nav-contact:hover{background:var(--ink);color:var(--paper)}.nav-contact span{margin-left:12px}

/* Typographic opening */
.hero{padding-top:100px;padding-bottom:110px;border-bottom:1px solid var(--line)}
.hero h1{margin:0 0 66px;font-size:clamp(78px,10.35vw,154px);font-weight:800;line-height:.88;letter-spacing:-.085em;white-space:nowrap}
.hero-details{display:grid;grid-template-columns:1fr .72fr;gap:70px;padding-top:38px;border-top:2px solid var(--ink)}
.hero-manifesto{position:relative}
.hero-statement{margin:0;font-size:clamp(54px,5.75vw,84px);font-weight:800;line-height:.96;letter-spacing:-.07em}
.hero-statement em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.075em}
.hero-mark{position:absolute;right:7%;top:2px;width:240px;height:auto}
.hero-description{max-width:440px;margin-left:auto}
.hero-description p{margin:0 0 20px;color:var(--muted);font-size:16px;line-height:1.65}
.hero-description p:first-child{color:var(--ink);font-size:23px;font-weight:700;line-height:1.4;letter-spacing:-.035em}
.hero-description a{display:inline-flex;align-items:center;gap:32px;margin-top:5px;padding-bottom:7px;border-bottom:1px solid var(--ink);font-size:13px;font-weight:800;transition:gap .2s}
.hero-description a:hover{gap:40px}
.interests.section-pad{padding-top:110px}

/* Topics */
.section-pad{padding-block:130px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:55px;margin-bottom:54px}.section-heading h2,.about h2,.contact h2{margin:20px 0 0;font-size:clamp(42px,4.6vw,72px);line-height:1.07;letter-spacing:-.065em}.orange-period{color:var(--orange)}.section-heading>p{max-width:300px;margin:0 0 7px;color:var(--muted);font-size:17px;line-height:1.6}
.interest-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.interest-card{min-height:365px;display:flex;flex-direction:column;padding:25px 29px 31px;border:1px solid var(--line);border-radius:7px;background:#fcfbf6;transition:transform .2s,box-shadow .2s}.interest-card:hover{transform:translateY(-4px);box-shadow:7px 7px 0 #e1e8e3}.interest-electronics{background:#f5eee2}.interest-ai{background:#e9f0ec}.interest-art{min-height:164px;display:flex;justify-content:center;align-items:center;color:var(--ink)}.interest-art svg{display:block;width:188px;height:135px}.interest-number{color:var(--muted);font:11px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.14em}.interest-card h3{margin:10px 0;font-size:27px;letter-spacing:-.045em}.interest-card p{max-width:330px;margin:0;color:var(--muted);font-size:15px;line-height:1.6}

/* Selected public work */
.projects{background:var(--dark);color:#f6f5ed}.projects .section-kicker,.projects .section-heading>p{color:#bad0cf}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.project-card{min-width:0;display:flex;flex-direction:column;padding:30px;border-radius:8px;color:var(--ink);overflow:hidden}.project-feature{min-height:560px}.project-qa{background:#c9dfe0}.project-cli{background:#e8d2ae}.project-small{min-height:316px;background:#e6e9dd}.project-small-light{background:#f3efe5}.project-card-top{display:flex;justify-content:space-between;align-items:center;gap:18px;font:700 11px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.12em}.project-card-top>span:last-child{font:24px Arial,Helvetica,sans-serif;line-height:.5}
.project-art{height:223px;display:flex;align-items:center;justify-content:center;margin:12px 0 3px}.project-art-workflow{transform:rotate(-4deg)}.node{padding:14px 15px;border:2px solid var(--ink);border-radius:5px;background:#f5f5e9;box-shadow:4px 5px 0 rgba(25,45,53,.18);font:700 12px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.07em}.node-accent{background:var(--orange)}.connector{width:45px;height:2px;background:var(--ink)}
.project-art-terminal{width:min(88%,420px);height:178px;display:block;margin:28px auto 32px;border:2px solid var(--ink);border-radius:8px;background:var(--dark);box-shadow:11px 11px 0 rgba(25,45,53,.2);transform:rotate(3deg)}.terminal-top{height:32px;display:flex;align-items:center;gap:7px;padding:0 13px;border-bottom:1px solid #77928e}.terminal-top i{width:8px;height:8px;border-radius:50%;background:#e98958}.terminal-top i:nth-child(2){background:#eac480}.terminal-top i:nth-child(3){background:#9bc8bc}.terminal-code{padding:26px 21px;color:#f5f5eb;font:clamp(13px,1.25vw,17px)/2.1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:nowrap}.terminal-prompt{color:#f1af66}.terminal-success{color:#9ccfb9}.terminal-cursor{color:#f1af66}
.project-card-copy{margin-top:auto}.project-card h3{margin:0 0 11px;font-size:clamp(28px,3vw,44px);line-height:1.04;letter-spacing:-.06em}.project-card p{max-width:460px;margin:0 0 21px;color:#41565b;font-size:15px;line-height:1.6}.project-card a{display:inline-flex;align-items:center;gap:20px;padding-bottom:4px;border-bottom:1px solid currentColor;font-size:13px;font-weight:800;transition:gap .2s}.project-card a:hover{gap:27px}.project-small h3{font-size:clamp(27px,2.5vw,38px)}.project-small p{max-width:440px}.small-project-symbol{display:flex;align-items:center;justify-content:center;height:105px;color:#5e9299;font:82px Georgia,serif;letter-spacing:-.12em;transform:rotate(-8deg)}.small-project-symbol span{color:var(--orange)}.symbol-saas{color:var(--orange);transform:none}.symbol-saas span{color:#6f9ca0;margin-left:5px}.all-projects-link{display:table;margin:36px 0 0 auto;padding-bottom:8px;border-bottom:1px solid #adc2c0;color:#e9f0e9;font-size:13px;font-weight:700;transition:color .2s}.all-projects-link:hover{color:#efa878}.all-projects-link span{margin-left:22px}

/* Person + contact */
.about{display:grid;grid-template-columns:.82fr 1.18fr;align-items:center;gap:clamp(50px,8vw,130px)}.about-photo-wrap{position:relative;max-width:425px;margin:0 auto;padding:18px 16px 32px}.about-photo-wrap::before{content:'';position:absolute;inset:0 0 25px 22px;border:1px solid #93a9a6;border-radius:46% 46% 44% 44%;transform:rotate(-10deg)}.about-photo-frame{position:relative;overflow:hidden;aspect-ratio:1;border-radius:50%;background:#fdfcf7;border:1px solid var(--line)}.about-photo-frame img{display:block;width:100%;height:100%;object-fit:cover}.photo-note{position:absolute;right:-10px;bottom:-5px;padding:12px 15px;background:#f0ba76;color:var(--ink);font:700 11px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.08em;transform:rotate(-6deg);box-shadow:4px 4px 0 #d6dfd6}.about h2{margin-bottom:26px}.about-copy>p:not(.section-kicker){max-width:630px;margin:0 0 17px;color:#425960;font-size:17px;line-height:1.72}.about-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.about-meta span{padding:9px 13px;border:1px solid var(--line);border-radius:100px;color:#46616a;font:700 11px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.contact{padding:98px 0;background:#d7e5df;border-block:1px solid #b4c8bf}.contact-inner{display:flex;justify-content:space-between;align-items:end;gap:45px}.contact h2{margin-bottom:17px}.contact p:not(.section-kicker){max-width:500px;margin:0;color:#4c666a;font-size:17px;line-height:1.6}.contact-links{min-width:255px}.contact-links a{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:19px 0;border-bottom:1px solid #8fa9a6;font-size:20px;font-weight:700;transition:color .2s}.contact-links a:hover{color:#a8532e}.site-footer{min-height:95px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--muted);font:11px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.site-footer a{color:var(--ink);font-weight:700}

/* Privacy page */
.legal-back{font-size:13px;font-weight:700;border-bottom:1px solid var(--ink);padding-bottom:5px}
.legal-page{padding-block:95px 120px}.legal-page h1{margin:20px 0 26px;font-size:clamp(64px,9vw,120px);line-height:.95;letter-spacing:-.075em}.legal-page h1 em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.08em}.legal-intro{max-width:700px;margin:0;color:var(--ink);font-size:clamp(20px,2.4vw,29px);line-height:1.4;font-weight:700;letter-spacing:-.025em}.legal-date{margin:24px 0 0;color:var(--muted);font:12px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.legal-content{max-width:850px;margin-top:72px;border-top:2px solid var(--ink)}.legal-content section{padding:32px 0 38px;border-bottom:1px solid var(--line)}.legal-content h2{margin:0 0 17px;font-size:26px;letter-spacing:-.045em}.legal-content p{margin:0 0 13px;color:#425960;font-size:16px;line-height:1.7}.legal-content p:last-child{margin-bottom:0}.legal-content a{text-decoration:underline;text-decoration-color:#9fb6b3;text-underline-offset:3px}.legal-content a:hover{color:#a8532e}

@media(max-width:1100px){
  .shell{width:min(calc(100% - 64px),var(--content))}
  .hero h1{font-size:clamp(75px,10.1vw,112px)}
  .hero-mark{width:180px}
  .project-art-workflow{transform:scale(.85) rotate(-4deg)}
}
@media(max-width:800px){
  .site-header{min-height:95px;flex-wrap:wrap;padding-block:17px}
  .site-nav{width:100%;justify-content:space-between}
  .hero h1{font-size:clamp(66px,10.1vw,82px);white-space:normal}
  .hero-details{gap:35px;grid-template-columns:1fr .9fr}
  .hero-statement{font-size:clamp(48px,6.7vw,62px)}
  .hero-mark{position:static;display:block;width:180px;margin-top:20px}
  .hero-description p:first-child{font-size:20px}
  .interest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .interest-grid .interest-card:last-child{grid-column:span 2;min-height:270px}
  .about{grid-template-columns:1fr;gap:72px}
  .about-photo-wrap{order:2;width:min(70%,400px)}.about-copy{order:1}
}
@media(max-width:600px){
  .shell{width:calc(100% - 40px)}
  .site-header{gap:20px}.brand-mark{width:62px;height:57px}.brand-name{font-size:15px}
  .site-nav{gap:9px;overflow-x:auto;white-space:nowrap;padding-bottom:4px;font-size:11px;scrollbar-width:none}.site-nav::-webkit-scrollbar{display:none}
  .nav-contact{padding:9px 10px}.nav-contact span{margin-left:3px}
  .hero{padding-top:72px;padding-bottom:78px}
  .hero h1{margin:0 0 48px;font-size:clamp(62px,15vw,80px);line-height:.95;white-space:normal}
  .hero-details{display:block;padding-top:27px}
  .hero-statement{font-size:clamp(50px,12vw,68px)}
  .hero-description{max-width:none;margin:40px 0 0}
  .hero-description p:first-child{font-size:21px}
  .hero-description p{font-size:15px}
  .section-pad{padding-block:90px}.interests.section-pad{padding-top:95px}
  .section-heading{display:block;margin-bottom:34px}
  .section-heading h2,.about h2,.contact h2{font-size:clamp(39px,10.5vw,58px)}
  .section-heading>p{margin-top:22px;font-size:15px}
  .interest-grid,.project-grid{grid-template-columns:1fr}
  .interest-grid .interest-card:last-child{grid-column:auto;min-height:365px}
  .interest-card{min-height:340px}.interest-art{min-height:145px}
  .project-card{padding:24px}.project-feature{min-height:500px}.project-small{min-height:310px}
  .project-card h3{font-size:39px}.project-card p{font-size:14px}
  .project-art-workflow{transform:scale(.8) rotate(-4deg)}
  .project-art-terminal{width:95%}.terminal-code{font-size:13px}
  .all-projects-link{font-size:12px;text-align:right}
  .about{gap:50px}.about-photo-wrap{width:min(90%,380px)}
  .about-copy>p:not(.section-kicker){font-size:16px}
  .contact{padding:77px 0}.contact-inner{display:block}.contact-links{margin-top:35px}
  .contact h2{font-size:clamp(40px,10.3vw,60px)}
  .site-footer{min-height:120px;flex-wrap:wrap;align-content:center;gap:10px 20px}
  .site-footer span:nth-child(2){order:3;width:100%}
  .legal-page{padding-block:70px 90px}.legal-page h1{font-size:clamp(57px,13vw,78px)}.legal-content{margin-top:55px}.legal-content h2{font-size:24px}.legal-content p{font-size:15px}.legal-back{font-size:11px}
}
@media(max-width:380px){
  .hero h1{font-size:58px}
  .project-art-workflow{transform:scale(.67) rotate(-4deg)}
  .terminal-code{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
