:root{--bg:#050505;--bg-soft:#111;--surface:#0c0c0c;--surface-strong:#171717;--text:#f4f4f4;--muted:#b3b3b3;--line:#242424;--line-strong:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;color:var(--text);margin:0;font-family:Aptos,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}h1,h2,h3,p,ul{margin:0}ul{padding-left:1.2rem}p,li{color:var(--muted);line-height:1.7}.page{width:min(1180px,100% - 1.5rem);margin:0 auto;padding:1rem 0 4rem}.hero,.section,.stat-band{position:relative}.hero{grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);align-items:stretch;gap:1rem;padding-top:1rem;display:grid}.hero-copy,.hero-panel,.stat-card,.project-card,.experience-card,.intro-note,.skill-tile,.closing{border:1px solid var(--line);background:var(--surface)}.hero-copy,.hero-panel,.section,.closing{overflow:hidden}.hero-copy{flex-direction:column;justify-content:space-between;min-height:560px;padding:2rem;display:flex}.hero-copy:before{content:"";border:1px solid var(--line);opacity:.06;background:#fff;width:96px;height:96px;position:absolute;top:1rem;left:1rem}.hero-copy h1{letter-spacing:-.06em;text-transform:uppercase;max-width:11ch;font-size:clamp(3.6rem,10vw,7.2rem);line-height:.92;animation:.65s ease-out both rise-in}.hero-text{max-width:36rem;margin-top:1.5rem;font-size:1.05rem}.eyebrow,.panel-tag,.card-type,.period,.intro-note span{color:var(--text);letter-spacing:.18em;text-transform:uppercase;font-size:.74rem;display:inline-block}.hero-actions{flex-wrap:wrap;gap:.85rem;margin-top:2rem;display:flex}.button{border:1px solid var(--line);min-height:3rem;color:var(--text);background:0 0;justify-content:center;align-items:center;padding:.85rem 1.2rem;font-weight:600;transition:transform .15s,border-color .15s,background .15s;display:inline-flex}.button:hover,.button:focus-visible{border-color:var(--line-strong);transform:translate(-2px,-2px)}.button-primary{color:#050505;background:#fff;border-color:#fff}.hero-panel{flex-direction:column;justify-content:space-between;min-height:560px;padding:1.5rem;display:flex}.focus-list{gap:.85rem;margin:1.25rem 0 2rem;display:grid}.focus-list li::marker{color:#fff}.link-stack{gap:.8rem;display:grid}.link-stack a{background:var(--surface-strong);border:1px solid var(--line);padding:.9rem 1rem}.link-stack a:hover,.link-stack a:focus-visible,.project-card:hover,.project-card:focus-within,.experience-card:hover,.experience-card:focus-within,.skill-tile:hover{border-color:var(--line-strong);transform:translate(-2px,-2px)}.stat-band{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0;display:grid}.stat-card{padding:1.4rem}.stat-card strong{margin-bottom:.55rem;font-size:clamp(2rem,4vw,3rem);line-height:1;display:block}.section{margin-top:1rem;padding:1.5rem}.section-heading{gap:.35rem;margin-bottom:1.4rem;display:grid}.section-heading h2,.closing h2{letter-spacing:-.05em;text-transform:uppercase;max-width:14ch;font-size:clamp(2rem,5vw,3.8rem);line-height:.98}.intro-grid{grid-template-columns:minmax(0,1.4fr) minmax(260px,.7fr);gap:1rem;display:grid}.intro-lead{max-width:44rem;font-size:1.08rem}.intro-note{background:var(--surface-strong);padding:1.2rem}.intro-note p{margin-top:.75rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.project-card,.experience-card{padding:1.2rem;transition:transform .15s,border-color .15s}.project-card h3,.experience-card h3{margin-top:.45rem;font-size:1.5rem}.project-card p,.summary{margin-top:.75rem}.chip-row,.skill-wall{flex-wrap:wrap;gap:.75rem;display:flex}.chip-row{margin-top:1rem}.chip,.skill-tile{color:var(--text);font-size:.92rem}.chip{border:1px solid var(--line);background:var(--bg-soft);padding:.45rem .7rem}.experience-list{gap:1rem;display:grid}.experience-top{justify-content:space-between;align-items:start;gap:1rem;display:flex}.company,.period{color:var(--text)}.experience-card ul{margin-top:.9rem}.skill-wall{margin-top:.5rem}.skill-tile{padding:.85rem 1rem;transition:transform .15s,border-color .15s}.closing{text-align:center;margin-top:1rem;padding:2rem}.closing h2{max-width:18ch;margin:.5rem auto 1.5rem}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (max-width:980px){.hero,.stat-band,.intro-grid,.project-grid{grid-template-columns:1fr}.hero-copy,.hero-panel{min-height:auto}.experience-top{flex-direction:column}}@media (max-width:640px){.page{width:min(100% - 1rem,1180px)}.hero-copy,.hero-panel,.section,.closing{padding:1.1rem}.hero-copy h1{font-size:2.9rem}.section-heading h2,.closing h2{font-size:2.1rem}.button{width:100%}}
