:root{--bg: #f3f4f8;--bg-raised: #ffffff;--bg-inset: #e8eaf1;--border: #d8dde8;--text: #191e2b;--muted: #5a6478;--accent: #a35f0d;--accent-strong: #8a4f08;--accent-soft: rgba(163, 95, 13, .1);--ok: #0e7c56;--ok-soft: rgba(14, 124, 86, .1);--font-display: "Bricolage Grotesque", system-ui, sans-serif;--font-body: "Instrument Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--maxw: 68rem;--radius: 10px;--pad-x: clamp(1.25rem, 4vw, 2.5rem);--section-gap: clamp(4.5rem, 10vw, 7.5rem);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);line-height:1.12;letter-spacing:-.015em;margin:0 0 .6em}p{margin:0 0 1em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}img,svg{max-width:100%;display:block}.skip-link{position:absolute;left:1rem;top:-3rem;z-index:100;padding:.5rem 1rem;background:var(--accent);color:#fff;border-radius:var(--radius);font-weight:600;transition:top .15s ease}.skip-link:focus{top:1rem}.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad-x)}.eyebrow{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.eyebrow:after{content:"";height:1px;flex:0 0 3rem;background:var(--border)}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.75rem}.brand{font-family:var(--font-mono);font-size:.9rem;color:var(--text);white-space:nowrap}.brand:hover{text-decoration:none;color:var(--accent)}.site-nav{display:flex;align-items:center;gap:clamp(.75rem,2.5vw,1.5rem)}.site-nav a{color:var(--muted);font-size:.95rem;font-weight:500}.site-nav a:hover{color:var(--text);text-decoration:none}.lang-switch{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:.8rem;margin-left:.35rem}.lang-switch a{color:var(--muted);padding:.15rem .35rem;border-radius:6px;line-height:1}.lang-switch a:not(:first-child):before{content:"/";color:var(--border);margin-right:.35rem}.lang-switch a:hover{color:var(--text);text-decoration:none}.lang-switch a[aria-current=true]{color:var(--accent);font-weight:600}.hero{padding-block:clamp(4.5rem,12vw,8.5rem) clamp(3rem,8vw,5rem)}.hero .kicker{font-family:var(--font-mono);font-size:.85rem;color:var(--muted);margin-bottom:1.25rem}.hero .kicker .dot{color:var(--ok)}.hero h1{font-size:clamp(2.5rem,7vw,4.25rem);font-weight:700;margin-bottom:.35em}.hero .role{font-size:clamp(1.1rem,2.6vw,1.4rem);color:var(--accent);font-weight:500;margin-bottom:1rem}.hero .lead{max-width:38rem;color:var(--muted);font-size:1.1rem}.hero .actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2rem}.wave{display:flex;align-items:center;gap:4px;height:52px;margin-top:clamp(2.5rem,6vw,4rem)}.wave span{flex:1;min-height:5px;height:var(--h);border-radius:2px;background:var(--accent);opacity:var(--o, .35);transform-origin:center;animation:wave-pulse 2.6s ease-in-out infinite;animation-delay:var(--d)}@keyframes wave-pulse{50%{transform:scaleY(.3);opacity:.18}}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.35rem;border-radius:var(--radius);font-weight:600;font-size:.98rem;border:1px solid transparent}.btn:hover{text-decoration:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-strong)}.btn-ghost{border-color:var(--border);color:var(--text);background:transparent}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.section{padding-block:0 var(--section-gap)}.section h2{font-size:clamp(1.7rem,4vw,2.4rem);margin-bottom:1.5rem}.about-grid{display:grid;gap:2.5rem;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}.about-grid .bio p{color:var(--muted)}.about-grid .bio p strong{color:var(--text)}.skills{display:grid;gap:1rem}.skill-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);padding:1rem 1.15rem}.skill-group h3{font-family:var(--font-mono);font-size:.78rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.65rem}.chip-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}.chip{font-family:var(--font-mono);font-size:.78rem;padding:.25rem .6rem;border-radius:999px;border:1px solid var(--border);color:var(--text);background:var(--bg-inset);white-space:nowrap}.projects-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(min(20rem,100%),1fr))}.card{position:relative;display:flex;flex-direction:column;gap:.85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);padding:1.5rem;transition:border-color .2s ease,transform .2s ease}.card:hover{border-color:var(--accent);transform:translateY(-2px)}.card:focus-within{border-color:var(--accent)}.card h3{font-size:1.35rem;margin:0}.card .summary{color:var(--muted);font-size:.98rem;margin:0;flex:1}.card .more{font-family:var(--font-mono);font-size:.85rem;font-weight:500}.card .more:after{content:"";position:absolute;inset:0;border-radius:var(--radius)}.status{display:inline-flex;align-items:center;gap:.45rem;align-self:flex-start;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:.28rem .65rem;border-radius:999px;border:1px solid var(--border);color:var(--muted);background:var(--bg-inset)}.status .status-dot{width:7px;height:7px;border-radius:50%;background:var(--muted)}.status[data-status=production]{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--border));background:var(--ok-soft)}.status[data-status=production] .status-dot{background:var(--ok);animation:status-blink 2.2s ease-in-out infinite}.status[data-status=wip]{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:var(--accent-soft)}.status[data-status=wip] .status-dot{background:var(--accent)}@keyframes status-blink{50%{opacity:.35}}.project-detail{padding-block:clamp(3rem,8vw,5rem) var(--section-gap);max-width:46rem}.back-link{font-family:var(--font-mono);font-size:.85rem;color:var(--muted);display:inline-block;margin-bottom:2rem}.back-link:hover{color:var(--accent)}.project-detail header h1{font-size:clamp(2rem,5.5vw,3rem);margin-bottom:.35em}.project-detail .tagline{font-size:1.15rem;color:var(--accent);font-weight:500}.project-detail .body p{color:var(--muted)}.project-detail h2{font-size:1.15rem;font-family:var(--font-mono);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text);margin:2.5rem 0 1rem}.highlights{margin:0;padding:0;list-style:none;display:grid;gap:.6rem}.highlights li{position:relative;padding-left:1.4rem;color:var(--muted)}.highlights li:before{content:"▸";position:absolute;left:0;color:var(--accent)}.private-note{margin-top:2.5rem;padding:1rem 1.25rem;border:1px dashed var(--border);border-radius:var(--radius);font-size:.92rem;color:var(--muted);background:var(--bg-raised)}.project-links{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2rem}.contact{border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);background:var(--bg-raised);padding:clamp(2rem,5vw,3.5rem);text-align:center}.contact h2{margin-bottom:.5rem}.contact p{color:var(--muted);max-width:32rem;margin-inline:auto}.contact .actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.85rem;margin-top:1.75rem}.site-footer{border-top:1px solid var(--border);padding-block:2rem}.site-footer .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;font-size:.9rem;color:var(--muted)}.site-footer nav{display:flex;gap:1.25rem}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--accent)}@media(max-width:48rem){.about-grid{grid-template-columns:1fr}}@media(max-width:34rem){.site-nav a{font-size:.88rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
