:root{color-scheme:light;box-sizing:border-box;--bg:#faf7f9;--surface:#fff;--ink:#2e2630;--muted:#665b69;--rule:#e8dee5;--a:#6fb0b1;--a-ink:#216a6e;--a-tint:#e0f0f0;--b:#e3a1b5;--b-ink:#8f3b58;--b-tint:#f9e7ed;--font:"Bricolage Grotesque", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px)}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100%;color:var(--ink);font:400 1.0625rem/1.6 var(--font);margin:0}a:focus-visible{outline:3px solid var(--a);outline-offset:3px;border-radius:999px}.wrap{max-width:70rem;margin:0 auto;padding:0 1.5rem}.hero{align-items:center;gap:2rem;padding:4rem 0 8rem;display:grid;position:relative}@media (width>=860px){.hero{grid-template-columns:1.05fr 1fr;padding-top:5rem}}.txt,#art{z-index:1;position:relative}.txt{pointer-events:none}.txt a{pointer-events:auto}h1{letter-spacing:-.04em;margin:0;font-size:clamp(2.75rem,7vw,5.25rem);font-weight:800;line-height:.95}.role{color:var(--muted);margin:1rem 0 0}.lede{letter-spacing:-.015em;max-width:30rem;margin:1.75rem 0 0;font-size:clamp(1.4rem,3vw,2rem);font-weight:600;line-height:1.25}.intro{max-width:32rem;color:var(--muted);margin:1rem 0 0}.actions{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.btn{border:2px solid var(--a-ink);border-radius:999px;padding:.85rem 1.7rem;font-weight:600;text-decoration:none;display:inline-block}.btn.cv{background:var(--a-ink);color:#fff}.btn.cv:hover{filter:brightness(1.12)}.btn.mail{background:var(--b-tint);color:var(--b-ink);border-color:var(--b-ink)}.btn.mail:hover{background:var(--b);color:var(--ink)}.icon{background:var(--a-tint);border:2px solid var(--a-ink);border-radius:1.4rem;place-items:center;width:4.5rem;height:4.5rem;text-decoration:none;transition:transform .2s;display:grid;position:relative}.icon.mail{background:var(--b-tint);border-color:var(--b-ink)}.icon svg{width:2.9rem;height:2.9rem;transition:transform .25s}.icon:hover,.icon:focus-visible{transform:translateY(-3px)}.icon:hover svg,.icon:focus-visible svg{transform:rotate(-6deg)scale(1.06)}.icon .sp{transform-box:fill-box;transform-origin:50%;transition:transform .3s}.icon:hover .sp{transform:scale(1.35)rotate(20deg)}.icon .letter{transition:transform .25s}.icon:hover .letter{transform:translateY(-4px)}.itip{white-space:nowrap;background:var(--surface);border:1px solid var(--rule);color:var(--ink);opacity:0;pointer-events:none;z-index:3;border-radius:999px;margin-top:.4rem;padding:.15rem .75rem;font-size:.85rem;font-weight:600;transition:opacity .2s;position:absolute;top:100%;left:50%;transform:translate(-50%)}.icon:hover .itip,.icon:focus-visible .itip{opacity:1}@media (prefers-reduced-motion:reduce){.icon,.icon *{transition:none!important}}.mols{z-index:0;position:absolute;inset:0}.mol{outline:none;position:absolute}@media (width<=859px){.mol.t{display:none}}.mol svg{opacity:.38;max-width:26vw;height:auto;animation:wiggle var(--t,7s) ease-in-out var(--dl,0s) infinite alternate;transition:opacity .2s;display:block}@keyframes wiggle{0%{transform:rotate(-5deg)translate(-5px,3px)}50%{transform:rotate(4deg)translate(3px,-5px)}to{transform:rotate(5deg)translate(5px,2px)}}@media (prefers-reduced-motion:reduce){.mol svg{animation:none}}.mol line{stroke-width:1.7px;vector-effect:non-scaling-stroke;stroke-linecap:round}.mol .dash{stroke-dasharray:2 3}.mol .g{fill:var(--bg)}.mol text{font:600 .62px var(--font);text-anchor:middle;dominant-baseline:central}.mol.a line{stroke:var(--a)}.mol.a text{fill:var(--a-ink)}.mol.b line{stroke:var(--b)}.mol.b text{fill:var(--b-ink)}.tip{z-index:3;white-space:nowrap;background:var(--surface);border:1px solid var(--rule);opacity:0;pointer-events:none;border-radius:999px;margin-top:.2rem;padding:.15rem .75rem;font-size:.85rem;font-weight:600;transition:opacity .2s;position:absolute;top:100%;left:50%;transform:translate(-50%)}.mol:hover svg,.mol:focus svg,.mol.on svg,.mol:hover .tip,.mol:focus .tip,.mol.on .tip{opacity:1}#art{pointer-events:none;width:100%;height:auto}#art .node,#art .hit{pointer-events:auto;cursor:help}#art .bond{fill:none;stroke-width:3px;stroke-linecap:round}#art .bb{stroke:var(--a)}#art .sc{stroke:var(--b)}#art .gap{fill:var(--bg)}#art text{font:600 15px var(--font);text-anchor:middle;dominant-baseline:central}#art .t1{fill:var(--a-ink)}#art .t2{fill:var(--b-ink)}#art .edge{stroke:var(--muted);stroke-width:1px;opacity:.2;transition:opacity .15s}#art .fan{stroke:var(--a);opacity:.55;stroke-dasharray:3 5;animation:1.2s linear infinite flow}#art .edge.hot{stroke:var(--a-ink);stroke-width:1.8px;opacity:.95}#art .pulse{fill:none;stroke:var(--a-ink);stroke-width:4.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:10 62;opacity:.8;animation:2.4s linear infinite flow2}#art .na{fill:var(--surface);stroke:var(--a);stroke-width:3px}#art .nb{fill:var(--surface);stroke:var(--b);stroke-width:3px}#art .nc{fill:var(--a)}#art .node{transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite pulse;animation-delay:var(--d)}#art .node:hover{animation-play-state:paused;transform:scale(1.45)}@keyframes flow{to{stroke-dashoffset:-16px}}@keyframes flow2{to{stroke-dashoffset:-72px}}@keyframes pulse{0%,to{transform:scale(1)}30%{transform:scale(1.3)}}@media (prefers-reduced-motion:reduce){#art *{animation:none!important}}.pair{gap:1.25rem;padding:0 0 4rem;display:grid}@media (width>=760px){.pair{grid-template-columns:1fr 1fr}}.pair div{background:var(--a-tint);border-radius:1.25rem;padding:1.75rem}.pair div+div{background:var(--b-tint)}.pair h2{letter-spacing:-.02em;color:var(--a-ink);margin:0 0 .5rem;font-size:1.5rem;font-weight:800;line-height:1.15}.pair div+div h2{color:var(--b-ink)}.pair p{margin:0}footer{border-top:1px solid var(--rule);color:var(--muted);padding:1.5rem 0 2rem;font-size:.95rem}
