:root{--bg:#e7e9eb;--bg-top:#e4ebe7;--bg-bottom:#e2e4e8;--ink:#17191c;--muted:#5a5f66;--accent:#2a5548;--line:#17191c1f;--line-strong:#17191c47;--font-display:"Syne", sans-serif;--font-body:"Figtree", sans-serif;--ease:cubic-bezier(.22, 1, .36, 1);color:var(--ink);background:var(--bg);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:#2a554838}.page{z-index:1;width:min(100% - 2.5rem,720px);margin:0 auto;padding:1.5rem 0 4rem;position:relative}.atmosphere{z-index:0;pointer-events:none;background:radial-gradient(ellipse 80% 55% at 12% -10%, #2d5a4e24, transparent 55%), radial-gradient(ellipse 70% 50% at 100% 8%, #5a68781f, transparent 50%), radial-gradient(ellipse 60% 40% at 50% 100%, #788aa01a, transparent 55%), linear-gradient(180deg, var(--bg-top) 0%, var(--bg) 42%, var(--bg-bottom) 100%);position:fixed;inset:0}.atmosphere:after{content:"";opacity:.35;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");background-size:180px 180px;position:absolute;inset:0}.site-header{animation:rise .7s var(--ease) both;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:clamp(3.5rem,14vh,6.5rem);display:flex}.mark{font-family:var(--font-display);letter-spacing:.08em;color:var(--ink);font-size:.95rem;font-weight:700;text-decoration:none}.nav{gap:1.25rem;display:flex}.nav a{color:var(--muted);font-size:.92rem;text-decoration:none;transition:color .16s}.nav a:hover,.nav a:focus-visible{color:var(--ink)}.hero{min-height:min(72vh,640px);animation:rise .8s var(--ease) 80ms both;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(2.5rem,8vh,4.5rem);display:flex}.hero-eyebrow{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;margin:0 0 1rem;font-size:.9rem;font-weight:500}.hero-name{font-family:var(--font-display);letter-spacing:-.04em;color:var(--ink);margin:0;font-size:clamp(3.4rem,12vw,5.75rem);font-weight:700;line-height:.95}.hero-lede{max-width:34rem;color:var(--muted);margin:1.5rem 0 0;font-size:clamp(1.05rem,2.4vw,1.2rem);line-height:1.55}.hero-actions{flex-wrap:wrap;align-items:center;gap:1.25rem 1.75rem;margin-top:2rem;display:flex}.hero-links,.contact-links{gap:1.25rem;display:flex}.hero-links a,.contact-links a,.text-link{color:var(--ink);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;font-size:.95rem;font-weight:500;text-decoration:none;transition:background-size .2s,color .16s}.hero-links a:hover,.hero-links a:focus-visible,.contact-links a:hover,.contact-links a:focus-visible,.text-link:hover,.text-link:focus-visible{background-size:100% 1px}.btn{min-height:2.75rem;font:inherit;border:1px solid #0000;border-radius:.35rem;justify-content:center;align-items:center;padding:.7rem 1.2rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background-color .16s,color .16s,border-color .16s;display:inline-flex}.btn-primary{background:var(--ink);color:var(--bg)}.btn-primary:hover,.btn-primary:focus-visible{background:var(--accent)}.section{border-top:1px solid var(--line);animation:rise .7s var(--ease) both;padding:clamp(3.5rem,10vh,5.5rem) 0}.section-copy{max-width:36rem}.section h2{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);margin:0 0 .85rem;font-size:clamp(1.55rem,3vw,1.9rem);font-weight:700}.section p,.project-description{color:var(--muted);margin:0;font-size:1.02rem;line-height:1.65}.section-support{margin-top:.35rem!important}.about p{max-width:38rem}.work .section-copy{margin-bottom:2rem}.project{gap:1.25rem;padding:0;display:grid}.project-label{color:var(--accent);letter-spacing:.05em;text-transform:uppercase;margin:0 0 .65rem;font-size:.82rem;font-weight:600}.project-name{font-family:var(--font-display);letter-spacing:-.035em;color:var(--ink);margin:0;font-size:clamp(2rem,5vw,2.6rem);font-weight:700;line-height:1.05}.project-tagline{color:var(--ink);margin:.65rem 0 0;font-size:1.08rem;font-weight:500}.project-stack{color:var(--muted);flex-wrap:wrap;gap:.55rem 1rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.project-stack li{position:relative}.project-stack li:not(:last-child):after{content:"·";color:var(--line-strong);position:absolute;right:-.7rem}.contact{justify-items:start;gap:1.5rem;display:grid}.site-footer{border-top:1px solid var(--line);color:var(--muted);padding-top:1.5rem;font-size:.85rem}.site-footer p{margin:0}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=560px){.page{width:min(100% - 1.75rem,720px);padding-top:1.15rem}.nav{gap:.9rem}.hero{min-height:auto;padding-bottom:2.75rem}.hero-actions{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.site-header,.hero,.section{animation:none}.hero-links a,.contact-links a,.text-link,.btn,.nav a{transition:none}}
