:root{--paper:#f5f3ee;--paper-raised:#efede6;--ink:#161511;--ink-soft:#45423a;--muted:#77736a;--hairline:#16151129;--hairline-strong:#16151157;--accent:#2742e8;--ink-paper:#f0eee7;--ink-muted:#a5a198;--ink-hairline:#f0eee72e;--font-display:"Zodiak", "Iowan Old Style", Georgia, serif;--font-body:"Switzer", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--size-name:clamp(3.2rem, 12.5vw, 8.75rem);--size-title:clamp(1.9rem, 5.2vw, 3.4rem);--size-pname:clamp(1.7rem, 4.6vw, 3rem);--size-body:1.0625rem;--size-small:.875rem;--size-label:.75rem;--space-gutter:clamp(1.25rem, 5vw, 4rem);--space-section:clamp(5rem, 14vh, 9.5rem);--width-max:1180px;--ease-out:cubic-bezier(.22, .61, .36, 1)}@font-face{font-family:Zodiak;src:url(/fonts/Zodiak-700.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/Switzer-400.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/Switzer-500.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-400.woff2)format("woff2");font-weight:400;font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--size-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.65}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}::selection{background:var(--ink);color:var(--paper)}.skip{background:var(--ink);color:var(--paper);z-index:100;padding:.6rem 1rem;position:absolute;top:0;left:-9999px}.skip:focus{left:0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.noscript{padding:1rem var(--space-gutter);border-top:1px solid var(--hairline);font-size:var(--size-small);color:var(--muted)}.top{z-index:50;padding:.85rem var(--space-gutter);background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--hairline);align-items:center;gap:1.5rem;display:flex;position:sticky;top:0}.top__mark{font-family:var(--font-display);letter-spacing:.18em;font-size:1rem}.top__nav{font-family:var(--font-mono);font-size:var(--size-label);letter-spacing:.08em;text-transform:uppercase;gap:1.4rem;margin-left:auto;display:flex}.top__nav a{color:var(--muted);transition:color .18s var(--ease-out)}.top__nav a:hover{color:var(--ink)}.top__lang{font-family:var(--font-mono);font-size:var(--size-label);letter-spacing:.08em;border:1px solid var(--hairline-strong);transition:background .18s var(--ease-out), color .18s var(--ease-out);border-radius:999px;padding:.3rem .65rem}.top__lang:hover{background:var(--ink);color:var(--paper)}main{max-width:var(--width-max);padding:0 var(--space-gutter);margin:0 auto}.hero{min-height:calc(100svh - 3.4rem);padding:var(--space-section) 0 4rem;flex-direction:column;justify-content:center;display:flex}.hero__role{font-family:var(--font-mono);font-size:var(--size-label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1.4rem}.hero__name{font-family:var(--font-display);font-weight:700;font-size:var(--size-name);letter-spacing:-.02em;text-wrap:balance;margin-bottom:2.2rem;line-height:1.02}.hero__lede{max-width:34ch;color:var(--ink-soft);margin-bottom:2.6rem;font-size:clamp(1.15rem,2.4vw,1.45rem);line-height:1.5}.hero__meta{font-family:var(--font-mono);font-size:var(--size-label);letter-spacing:.04em;color:var(--muted);border-top:1px solid var(--hairline);flex-wrap:wrap;gap:.4rem 2.4rem;padding-top:1.1rem;display:flex}.section{padding:var(--space-section) 0;border-top:1px solid var(--hairline)}.section__head{margin-bottom:clamp(2.5rem,6vh,4rem)}.kicker{font-family:var(--font-mono);font-size:var(--size-label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}.section__title{font-family:var(--font-display);font-weight:700;font-size:var(--size-title);letter-spacing:-.01em;line-height:1.05}.section__intro{max-width:52ch;color:var(--ink-soft);margin-top:1.1rem}.section--ink{background:var(--ink);color:var(--ink-paper);margin:0 calc(-1 * var(--space-gutter));padding-left:var(--space-gutter);padding-right:var(--space-gutter);border-top:none}.section--ink .kicker,.section--ink .section__intro{color:var(--ink-muted)}.section--ink ::selection{background:var(--ink-paper);color:var(--ink)}.footer{border-top:1px solid var(--ink-hairline);font-family:var(--font-mono);font-size:var(--size-label);letter-spacing:.05em;color:var(--ink-muted);flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;margin-top:clamp(3rem,8vh,5rem);padding-top:1.2rem;display:flex}.plist{border-top:1px solid var(--hairline)}.plist__row{border-bottom:1px solid var(--hairline)}.plist__link{transition:background .22s var(--ease-out), color .22s var(--ease-out);grid-template-columns:1fr auto;align-items:baseline;gap:.4rem 2.5rem;margin:0 -.9rem;padding:1.9rem .9rem;display:grid}.plist__name{font-family:var(--font-display);font-weight:700;font-size:var(--size-pname);letter-spacing:-.01em;line-height:1.05;display:block}.plist__desc{max-width:46ch;color:var(--ink-soft);transition:color .22s var(--ease-out);margin-top:.55rem;display:block}.plist__side{font-family:var(--font-mono);font-size:var(--size-label);letter-spacing:.07em;text-transform:uppercase;flex-direction:column;align-items:flex-end;gap:.45rem;display:flex}.plist__status{color:var(--muted);transition:color .22s var(--ease-out)}.plist__domain{text-transform:none;color:var(--ink);border-bottom:1px solid var(--hairline-strong);transition:color .22s var(--ease-out), border-color .22s var(--ease-out);padding-bottom:.15rem}.plist__link:hover{background:var(--ink);color:var(--paper)}.plist__link:hover .plist__desc{color:color-mix(in srgb, var(--paper) 78%, transparent)}.plist__link:hover .plist__status{color:color-mix(in srgb, var(--paper) 62%, transparent)}.plist__link:hover .plist__domain{color:var(--paper);border-color:color-mix(in srgb, var(--paper) 55%, transparent)}.studio__body{max-width:58ch;font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.6}.studio__services{font-family:var(--font-mono);font-size:var(--size-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:1.6rem}.arrow-link{border-bottom:1px solid var(--hairline-strong);transition:gap .2s var(--ease-out), color .2s var(--ease-out), border-color .2s var(--ease-out);align-items:center;gap:.55rem;margin-top:2rem;padding-bottom:.2rem;font-weight:500;display:inline-flex}.arrow-link:hover{color:var(--accent);border-color:var(--accent);gap:1rem}.interlude{margin-top:clamp(3rem,8vh,5rem)}.interlude img{border:1px solid var(--hairline);filter:grayscale()contrast(1.02);width:100%;height:auto}.jlist{border-top:1px solid var(--hairline);counter-reset:leg}.jlist__row{border-bottom:1px solid var(--hairline);grid-template-columns:7.5rem minmax(0,5fr) minmax(0,7fr);align-items:baseline;gap:.5rem 2.5rem;padding:1.45rem 0;display:grid}.jlist__year{font-family:var(--font-mono);font-size:var(--size-label);letter-spacing:.06em;color:var(--muted)}.jlist__label{font-family:var(--font-display);font-size:1.25rem;font-weight:700;line-height:1.25}.jlist__note{color:var(--ink-soft);align-self:center}.jlist__link{color:var(--accent);white-space:nowrap;border-bottom:1px solid;margin-left:.6rem;font-weight:500}.contact{grid-template-columns:auto 1fr;align-items:center;gap:2.5rem 4rem;display:grid}.contact__qr img{background:var(--ink-paper);border-radius:6px;padding:10px}.contact__qr figcaption{max-width:20ch;font-size:var(--size-small);color:var(--ink-muted);margin-top:.8rem}.contact__actions{flex-wrap:wrap;gap:.8rem;display:flex}.btn{font-family:var(--font-mono);font-size:var(--size-small);letter-spacing:.05em;border:1px solid var(--ink-hairline);transition:background .2s var(--ease-out), color .2s var(--ease-out), border-color .2s var(--ease-out);border-radius:999px;padding:.8rem 1.5rem}.btn:hover{background:var(--ink-paper);color:var(--ink);border-color:var(--ink-paper)}.contact__location{font-family:var(--font-mono);font-size:var(--size-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);grid-column:2}.contact__social{font-size:var(--size-small);flex-wrap:wrap;grid-column:2;gap:1.6rem;display:flex}.contact__social a{color:var(--ink-muted);transition:color .18s var(--ease-out), border-color .18s var(--ease-out);border-bottom:1px solid #0000;align-items:center;gap:.45rem;display:inline-flex}.contact__social svg{fill:currentColor;flex:none;width:15px;height:15px}.contact__social a:hover{color:var(--ink-paper);border-color:var(--ink-paper)}.footer__egg{opacity:.7}.js .reveal{opacity:0;transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);transform:translateY(16px)}.js .reveal.is-in{opacity:1;transform:none}body.egg .hero__name,body.egg .section__title,body.egg .plist__name{color:var(--accent);transition:color .25s var(--ease-out)}@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none}}@media (max-width:760px){.top{gap:1rem}.top__nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:1rem;overflow-x:auto}.top__nav::-webkit-scrollbar{display:none}.hero{min-height:calc(92svh - 3.4rem)}.plist__link{grid-template-columns:1fr;padding:1.5rem .9rem}.plist__side{flex-direction:row;align-items:baseline;gap:1.2rem;margin-top:.9rem}.jlist__row{grid-template-columns:1fr;gap:.35rem}.jlist__note{align-self:start}.jlist__year{order:-1}.contact{grid-template-columns:1fr;gap:2rem}.contact__location,.contact__social{grid-column:1}}@media (hover:none){.plist__link:hover{color:inherit;background:0 0}.plist__link:active{background:var(--paper-raised)}.plist__link:hover .plist__desc{color:var(--ink-soft)}.plist__link:hover .plist__status{color:var(--muted)}.plist__link:hover .plist__domain{color:var(--ink);border-color:var(--hairline-strong)}}
