:root{--bg:#f6f6f5;--ink:#161616;--muted:#6f6f6c;--dot:#161616}@media (prefers-color-scheme:dark){:root{--bg:#111;--ink:#ededeb;--muted:#8d8d89;--dot:#e8e8e4}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.page{grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr);align-items:center;gap:48px;max-width:1180px;min-height:100%;margin:0 auto;padding:48px 32px;display:grid}.copy{max-width:380px}h1{letter-spacing:-.01em;margin:0 0 14px;font-size:22px;font-weight:500}p{color:var(--muted);margin:0 0 14px;font-size:15px;line-height:1.6}.contact{margin:22px 0 0}.contact .sep{margin:0 8px}a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--ink) 30%, transparent);text-decoration-color:color-mix(in srgb, var(--ink) 30%, transparent);text-underline-offset:3px;transition:text-decoration-color .15s}a:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.person{align-items:flex-end;gap:5px;text-decoration:none;display:inline-flex}.person span{text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--ink) 30%, transparent);text-decoration-color:color-mix(in srgb, var(--ink) 30%, transparent);text-underline-offset:3px;transition:text-decoration-color .15s}.person:hover span{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.otter-icon{transform-origin:50% 100%;flex:none;margin-bottom:4px;transition:transform .2s}.person:hover .otter-icon{transform:translateY(-2px)rotate(-8deg)}.scene{flex-direction:column;justify-self:end;align-items:center;width:100%;max-width:640px;display:flex}.stage{aspect-ratio:1/.86;justify-content:center;align-items:center;width:90%;display:flex}canvas{cursor:pointer;touch-action:manipulation;image-rendering:pixelated;image-rendering:crisp-edges;display:block}[data-enter]{--stagger:0}[data-enter="1"]{--stagger:1}[data-enter="2"]{--stagger:2}[data-enter="3"]{--stagger:3}@media (prefers-reduced-motion:no-preference){[data-enter]{animation:.6s both enter;animation-delay:calc(var(--stagger) * .12s)}.stage canvas{animation:.6s both enter;animation-delay:var(--enter-delay,0s)}}@keyframes enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (width<=760px){.page{grid-template-columns:1fr;align-content:center;gap:28px;padding:40px 16px}.copy{max-width:460px}.scene{justify-self:center}}
