:root{color-scheme:light;--bg:#f7f6f2;--text:#111;--muted:#6f6f6f;--muted-2:#9a9a9a;--line:#d7d3cb;--paper:#fff;--avatar-offset:2.34rem}html{scroll-behavior:smooth;scroll-snap-type:y mandatory}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg);background-image:radial-gradient(circle at 12% 18%,hsla(0,0%,7%,.08),transparent 40%),radial-gradient(circle at 88% 8%,hsla(0,0%,7%,.05),transparent 35%);color:var(--text);font-family:IBM Plex Sans,system-ui,sans-serif;line-height:1.65;min-height:100vh;overflow-x:hidden;scroll-snap-type:y mandatory}a{border-bottom:1px solid var(--line);color:inherit;text-decoration:none}a:hover{border-bottom-color:var(--text)}.mono{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.is-disabled{opacity:.4;pointer-events:none}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.page{min-height:100vh;position:relative}.side-rail{animation:fade-in .8s ease .2s both;bottom:3rem;color:var(--muted-2);display:flex;flex-direction:column;font-size:.65rem;justify-content:space-between;left:clamp(1.2rem,3vw,2.6rem);letter-spacing:.25em;position:fixed;text-transform:uppercase;top:3rem;width:160px;z-index:4}.side-rail a{border-bottom:none}.rail-nav{display:grid;gap:.9rem}.rail-nav a{opacity:.55;transition:opacity .2s ease,color .2s ease}.rail-nav a.is-active{color:var(--text);opacity:1;text-decoration:underline;text-decoration-color:var(--text);text-underline-offset:4px}.rail-links{display:grid;gap:.6rem}.rail-links a{border-bottom:none;font-size:.6rem;letter-spacing:.25em;opacity:.7;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px;transition:text-decoration-color .2s ease,color .2s ease,opacity .2s ease}.rail-links a:hover{opacity:1;text-decoration-color:var(--text)}main{margin:0 auto;max-width:860px;padding:0 6vw 0 clamp(12rem,20vw,16rem);position:relative;z-index:1}.hero{animation:fade-up .8s ease .05s both;gap:3rem;grid-template-columns:1.1fr .9fr;min-height:100vh;padding:clamp(3rem,10vh,6rem) 0;scroll-snap-align:start;scroll-snap-stop:always}.hero,.hero-side{align-items:start;display:grid}.hero-side{gap:.8rem;justify-items:center}.eyebrow{color:var(--muted-2);font-size:.7rem;letter-spacing:.35em}.eyebrow,.name{text-transform:uppercase}.name{font-size:clamp(2.4rem,5vw,4.2rem);font-weight:500;letter-spacing:.12em;margin-top:1rem}.hero-copy{margin-top:.9rem}.about-copy,.hero-copy{color:var(--muted);font-size:.95rem;line-height:1.6}.feedback{color:var(--muted-2);font-size:.6rem;letter-spacing:.25em;opacity:0;text-transform:uppercase;transition:opacity .2s ease}.feedback.is-visible{opacity:1}.feedback.is-hidden{opacity:0}.profile-card{align-content:start;align-self:start;display:grid;gap:1.2rem;justify-items:center;justify-self:end;margin-top:var(--avatar-offset);padding-top:0}.status-link{align-items:center;border-bottom:none;color:var(--muted-2);display:inline-flex;font-size:.6rem;gap:.45rem;justify-content:center;letter-spacing:.35em;text-transform:uppercase;width:100%}.status-link:hover{color:var(--text)}.status-dot{background:var(--muted-2);border-radius:999px;display:inline-block;height:6px;width:6px}.avatar{background:radial-gradient(circle at 35% 35%,hsla(0,0%,100%,.7),transparent 45%),#efeee9;border:1px solid var(--line);border-radius:999px;color:var(--muted-2);display:grid;font-size:.7rem;height:130px;letter-spacing:.2em;overflow:hidden;place-items:center;text-transform:uppercase;width:130px}.avatar img{border-radius:999px;display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.profile-links{align-items:center;display:flex;gap:.9rem}.profile-links a{border-bottom:none;color:var(--muted-2);opacity:.7;transition:color .2s ease,opacity .2s ease,transform .2s ease}.profile-links a:hover{color:var(--text);opacity:1;transform:translateY(-1px)}.profile-links svg{display:block;fill:currentColor;height:20px;width:20px}.section{min-height:100vh;opacity:0;padding:clamp(3rem,10vh,6rem) 0;scroll-margin-top:0;scroll-snap-align:start;scroll-snap-stop:always;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.section.is-visible{opacity:1;transform:translateY(0)}.section-head{align-items:baseline;display:flex;gap:1.4rem;margin-bottom:1.6rem}.section-index{color:var(--muted-2);font-size:.65rem;letter-spacing:.35em}.section-title{font-size:1.2rem;letter-spacing:.1em;text-transform:uppercase}.simple-block{padding:.6rem 0 1.4rem}.project-item{align-items:start;display:grid;gap:1.8rem;grid-template-columns:130px 1fr;padding:1.4rem 0}.project-item+.project-item{margin-top:1.2rem}.project-media{aspect-ratio:1/1;background:#efeee9;border:1px solid var(--line);color:var(--muted-2);display:grid;font-size:.65rem;letter-spacing:.2em;place-items:center;text-transform:uppercase;width:100%}.project-title{font-size:.9rem;letter-spacing:.12em;margin-bottom:.7rem;text-transform:uppercase}.project-title a{border-bottom:none;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}.project-title a:hover{text-decoration-color:var(--text)}.placeholder{color:var(--muted);font-size:.95rem;margin-top:.9rem}.grid-2{display:grid;gap:2.5rem;grid-template-columns:repeat(2,minmax(0,1fr))}.list-title{color:var(--muted-2);font-size:.7rem;letter-spacing:.3em;margin-bottom:.8rem;text-transform:uppercase}.list-inline{color:var(--muted);display:flex;flex-wrap:wrap;font-size:.7rem;gap:.6rem 1rem;margin-top:.8rem}.list-inline span:before{color:var(--muted-2);content:"* "}.timeline{display:grid;gap:1.4rem}.timeline-item{border-bottom:1px solid var(--line);padding-bottom:1rem}.timeline-item:last-child{border-bottom:none}.timeline-head{display:flex;font-size:.75rem;gap:1rem;justify-content:space-between;letter-spacing:.12em;text-transform:uppercase}.contact-list{display:grid;gap:.9rem}.contact-row{align-items:baseline;color:var(--muted);display:grid;font-size:.85rem;gap:1.5rem;grid-template-columns:120px 1fr}.contact-row>span{color:var(--muted-2);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase}.contact-note{color:var(--muted);font-size:.8rem}.contact-actions{align-items:baseline;display:flex;flex-wrap:wrap;gap:.8rem}.copy-btn{background:none;border:none;border-bottom:1px solid var(--line);color:var(--muted-2);cursor:pointer;font:inherit;font-size:.6rem;letter-spacing:.25em;padding:0;text-transform:uppercase}.copy-btn:hover{border-bottom-color:var(--text);color:var(--text)}.copy-btn:focus-visible{outline:1px solid var(--text);outline-offset:3px}.footer{animation:fade-up .8s ease .5s both;color:var(--muted-2);display:flex;flex-wrap:wrap;font-size:.65rem;gap:1rem;justify-content:space-between;letter-spacing:.25em;margin-top:clamp(2rem,6vh,4rem);padding-top:2rem;text-transform:uppercase}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.footer,.hero,.side-rail{animation:none}.section{opacity:1;transform:none;transition:none}}@media(max-width:900px){.contact-row,.grid-2,.hero,.project-item{grid-template-columns:1fr}.contact-row{gap:.4rem}.side-rail{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f7f6f2eb;box-shadow:0 -10px 30px #00000014;flex-direction:column;gap:.8rem;inset:auto 0 0;padding:.8rem 6vw 1rem;position:fixed;width:100%}.rail-nav{flex-wrap:wrap;gap:.8rem 1.2rem}.rail-links,.rail-nav{display:flex;justify-content:center}.rail-links{gap:.6rem}main{padding:0 6vw 9rem}.hero-side{justify-items:start}.profile-card{justify-self:start;margin-top:0}}
