:root{--font-sans:"IBM Plex Sans", system-ui, sans-serif;--font-serif:"Newsreader", "Iowan Old Style", Georgia, serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--space:clamp(1.25rem, 4vw, 3rem);--measure:68rem;--accent:#ffe402;color-scheme:dark}:root[data-ground=dark]{--bg:#0c0b09;--bg-2:#16140f;--fg:#f3eee4;--muted:#b7b0a3;--line:color-mix(in srgb, var(--accent) 28%, #2a261c);--header-bg:color-mix(in srgb, var(--bg) 88%, transparent);color-scheme:dark}:root[data-ground=light]{--bg:#f4efe6;--bg-2:#fffdf8;--fg:#1c1712;--muted:#5e564c;--line:color-mix(in srgb, var(--accent) 35%, #d9d0c3);--header-bg:color-mix(in srgb, var(--bg) 88%, transparent);color-scheme:light}:root[data-page=home]{--accent:#ffe402}:root[data-page=work]{--accent:#fe672f}:root[data-page=about]{--accent:#d600fd}:root[data-page=contact]{--accent:#00fd9a}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--fg);font-family:var(--font-sans);scroll-behavior:smooth;font-size:17px;line-height:1.5}body{background:var(--bg);flex-direction:column;min-height:100vh;margin:0;display:flex}img{max-width:100%;display:block}a{color:inherit;text-underline-offset:.18em}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.wrap{width:min(100% - var(--space) * 2, var(--measure));margin-inline:auto}.site-header{z-index:20;padding:.9rem var(--space);background:var(--header-bg);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;display:flex;position:sticky;top:0}.logo{width:auto;height:2.4rem;display:block}.logo img{width:auto;height:100%}.nav{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.15rem 1.15rem;font-size:.82rem;display:flex}.nav a{text-decoration:none}.nav a[aria-current=page]{color:var(--accent)}.lang{border-left:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.04em;gap:.35rem;margin-left:.4rem;padding-left:.85rem;font-size:.75rem;display:flex}.lang a[aria-current=true]{color:var(--accent);text-decoration:none}main{flex:1}.hero{padding:clamp(2.5rem,8vw,6rem) 0 clamp(3rem,8vw,5rem)}.kicker{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 .8rem;font-size:.78rem}h1,h2,.display{font-family:var(--font-serif);letter-spacing:-.03em;margin:0;font-weight:400;line-height:1.08}h1{max-width:16ch;font-size:clamp(2.4rem,6.4vw,5.4rem)}h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}.lede{max-width:42rem;color:var(--muted);margin:1.4rem 0 0;font-size:1.15rem}.cta-line{margin-top:1.75rem;font-size:.95rem}.cta-line a{color:var(--accent)}.hero-grid{grid-template-columns:minmax(0,1.3fr) minmax(12rem,.7fr);align-items:end;gap:clamp(1.5rem,4vw,4rem);display:grid}.portrait{aspect-ratio:1;object-fit:cover;border:4px solid var(--bg);width:min(100%,22rem);box-shadow:0 0 0 1px var(--accent);border-radius:50%;justify-self:end}.section{padding:0 0 clamp(3.5rem,8vw,6rem)}.section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.6rem;padding-bottom:.7rem;display:flex}.section-head a{letter-spacing:.06em;text-transform:uppercase;font-size:.85rem}.cases{gap:0;display:grid}.case{border-bottom:1px solid var(--line);grid-template-columns:7rem minmax(0,1fr);gap:1.2rem 1.6rem;padding:1.5rem 0;text-decoration:none;display:grid}.case:hover h3{color:var(--accent)}.case-meta{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);font-size:.75rem}.case h3{font-family:var(--font-serif);letter-spacing:-.02em;margin:0 0 .4rem;font-size:1.55rem;font-weight:400}.case p{color:var(--muted);max-width:46rem;margin:0}.stack{flex-wrap:wrap;gap:.4rem;margin:.85rem 0 0;padding:0;list-style:none;display:flex}.stack li{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line);color:var(--muted);padding:.2rem .45rem;font-size:.7rem}.page-intro{padding:clamp(2rem,6vw,4.5rem) 0 1.5rem}.page-intro .lede{margin-top:.9rem}.case-full{border-top:1px solid var(--line);padding:1.8rem 0 2.2rem}.case-full h2{max-width:20ch;font-size:clamp(1.7rem,3vw,2.3rem)}.case-full .body{max-width:42rem}.case-full .body p{color:var(--muted);font-size:1.05rem}.about-grid{grid-template-columns:minmax(10rem,16rem) minmax(0,1fr);align-items:start;gap:clamp(1.5rem,4vw,3.5rem);padding-bottom:clamp(3rem,7vw,5rem);display:grid}.about-copy p{max-width:40rem;color:var(--muted);font-size:1.08rem}.how{margin-top:2.4rem}.how ul{max-width:40rem;margin:.8rem 0 0;padding:0;list-style:none}.how li{border-top:1px solid var(--line);color:var(--muted);padding:.7rem 0}.how li:last-child{border-bottom:1px solid var(--line)}.contact-block{padding:clamp(3rem,10vw,7rem) 0 clamp(4rem,12vw,8rem)}.contact-block h1{max-width:none;font-size:clamp(3rem,10vw,7.5rem)}.contact-links{font-size:clamp(1.3rem,3vw,2rem);font-family:var(--font-serif);flex-direction:column;gap:.35rem;margin-top:2.2rem;display:flex}.contact-links a{color:var(--accent);text-decoration:none}.contact-links a:hover{text-decoration:underline}.site-footer{padding:1.2rem var(--space) 1.6rem;border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.8rem;display:flex}.site-footer a{color:var(--muted)}:root[data-page=home] h1{font-variation-settings:"opsz" 72}:root[data-page=work]{--font-serif:"IBM Plex Sans", system-ui, sans-serif}:root[data-page=work] h1,:root[data-page=work] h2,:root[data-page=work] .case h3,:root[data-page=work] .case-full h2{letter-spacing:-.04em;font-weight:500}:root[data-page=work] .case{grid-template-columns:6.5rem minmax(0,1fr)}:root[data-page=about] .portrait{box-shadow:0 0 0 1px var(--accent);border-radius:1.25rem}:root[data-page=contact] body{background:radial-gradient(1200px 500px at 80% -10%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 60%), var(--bg)}@media (width<=760px){.hero-grid,.about-grid,.case{grid-template-columns:1fr}.portrait{justify-self:start;width:min(70%,16rem)}.nav{gap:.7rem}.logo{height:2rem}.site-header{padding-inline:1rem}}
