@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=Instrument+Serif:ital@0;1&display=swap");:root{--bg:#0b1020;--text:#f4f7ff;--accent:#ff7a59;--card:rgba(17,25,44,.72);--border:rgba(244,247,255,.14);--header-bg:rgba(10,14,28,.78);--gradient-a:#1a2240;--gradient-b:#090d1a;--gradient-c:#111a30;--ambient-a:#2d4f9d;--ambient-b:#7b2f53;--btn-primary-bg:#f4f7ff;--btn-primary-text:#10182c;--btn-ghost-bg:hsla(0,0%,100%,.06);--shadow:rgba(0,0,0,.35);--muted:#b2bbd6;--link:#e9eeff;--footer:#b8c0d9}[data-theme=light]{--bg:#f6f5ef;--text:#141414;--accent:#ff5a36;--card:hsla(0,0%,100%,.72);--border:hsla(0,0%,8%,.12);--header-bg:hsla(51,28%,95%,.78);--gradient-a:#fff2d2;--gradient-b:#f6f5ef;--gradient-c:#f1f4ff;--ambient-a:#ffd1a8;--ambient-b:#b9d6ff;--btn-primary-bg:#141414;--btn-primary-text:#fff;--btn-ghost-bg:hsla(0,0%,100%,.55);--shadow:hsla(0,0%,4%,.14);--muted:#525252;--link:#0f0f0f;--footer:#555}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;scroll-behavior:smooth;background-attachment:fixed}body{font-family:Space Grotesk,sans-serif;background:radial-gradient(circle at 12% 8%,var(--gradient-a) 0,var(--bg) 40%),linear-gradient(130deg,var(--gradient-b) 0,var(--gradient-c) 100%);color:var(--text);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ambient{position:fixed;width:420px;height:420px;border-radius:50%;filter:blur(80px);z-index:-1;opacity:.5;animation:float 10s ease-in-out infinite;pointer-events:none;will-change:transform}.ambient-a{background:var(--ambient-a);top:-120px;left:-100px}.ambient-b{background:var(--ambient-b);bottom:-150px;right:-80px;animation-delay:-3s}.site-header{position:-webkit-sticky;position:sticky;top:0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--header-bg);border-bottom:1px solid var(--border);justify-content:space-between;padding:1rem clamp(1rem,3vw,3rem);z-index:10}.header-right,.site-header{display:flex;align-items:center}.header-right{gap:.9rem}.site-header nav{display:flex;gap:1rem}.site-header a{text-decoration:none;color:var(--text);font-weight:500;transition:color .22s ease}.site-header a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.site-header a:hover{color:var(--accent)}.brand{font-family:"Instrument Serif",serif;font-size:1.7rem}.theme-toggle{border:1px solid var(--border);border-radius:999px;background:var(--btn-ghost-bg);color:var(--text);padding:.3rem .8rem .3rem .35rem;display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;transition:border-color .22s ease,background-color .22s ease}.theme-toggle:hover{background:color-mix(in srgb,var(--btn-ghost-bg) 150%,transparent);border-color:color-mix(in srgb,var(--border) 150%,transparent)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toggle-thumb{width:1.1rem;height:1.1rem;border-radius:50%;background:var(--accent);box-shadow:0 4px 12px rgba(0,0,0,.25);transition:transform .22s ease}[data-theme=light] .toggle-thumb{transform:translateX(1px)}.toggle-text{font-size:.85rem;font-weight:700}main{width:min(1100px,92vw);margin:0 auto}.hero{min-height:86vh;display:grid;align-content:center;grid-gap:1rem;gap:1rem;padding:5rem 0 3rem}.page-hero{padding:5rem 0 2rem;display:grid;grid-gap:.8rem;gap:.8rem}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem}h1{margin:0;font-size:clamp(2.2rem,7vw,5.4rem);line-height:.95;max-width:12ch;color:var(--text)}h1 span{font-family:"Instrument Serif",serif;font-style:italic;color:var(--accent)}h2{font-size:clamp(1.4rem,3.2vw,2.1rem)}h2,h3{margin:0;color:var(--text)}h3{font-size:1.1rem}.lead{max-width:62ch;margin:0;color:var(--text)}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.5rem}.btn{display:inline-block;padding:.78rem 1.1rem;border-radius:999px;text-decoration:none;font-weight:700;transition:transform .22s ease,box-shadow .22s ease,background .22s ease;border:none;cursor:pointer;font-family:inherit;font-size:inherit}.btn:hover{transform:translateY(-3px)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:active{transform:translateY(-1px)}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);box-shadow:0 8px 20px var(--shadow)}.btn-ghost{color:var(--text);background:var(--btn-ghost-bg)}.btn-ghost,.card{border:1px solid var(--border)}.card{border-radius:24px;background:var(--card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 16px 40px var(--shadow)}.about,.contact{padding:clamp(1.2rem,3vw,2rem);margin:1rem 0 2.5rem}.work{margin:3rem 0}.section-heading{margin-bottom:1rem}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1rem;gap:1rem}.project-card{padding:1.2rem;display:grid;grid-gap:.55rem;gap:.55rem;transition:transform .24s ease,border-color .24s ease}.project-card:hover{transform:translateY(-6px);border-color:color-mix(in oklab,var(--text) 40%,transparent)}.project-type{margin:0;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.project-card h3,.project-card p{margin:0}.project-card a{margin-top:.3rem;color:var(--link);font-weight:700;text-decoration:none;transition:color .22s ease}.project-card a:hover{color:var(--accent)}.project-card a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-list{display:grid;grid-gap:1rem;gap:1rem;margin:1rem 0 3rem}.project-full{padding:clamp(1.2rem,3vw,2rem);display:grid;grid-gap:.8rem;gap:.8rem}.project-links{display:flex;flex-wrap:wrap;gap:.6rem}footer{width:min(1100px,92vw);margin:2rem auto 2.4rem;font-size:.9rem;color:var(--footer)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s ease;will-change:opacity,transform}.reveal.visible{opacity:1;transform:translateY(0);will-change:auto}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(24px)}}@media (max-width:900px){.project-grid{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (max-width:640px){.site-header{flex-direction:column;align-items:flex-start;gap:.7rem;padding:.8rem clamp(1rem,3vw,2rem)}.header-right{width:100%;justify-content:space-between}.project-grid{grid-template-columns:1fr}.hero{padding-top:3.5rem;min-height:auto}h1{font-size:clamp(1.8rem,5vw,2.5rem)}.btn{padding:.7rem 1rem;font-size:.95rem}}