.nav{position:fixed;inset:0 0 auto 0;z-index:50;border-bottom:1px solid transparent;transition:background-color .2s var(--ease),border-color .2s var(--ease)}.nav.is-scrolled{background:rgba(246,248,251,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom-color:var(--line)}.nav-inner{display:flex;align-items:center;gap:1.5rem;height:68px}.nav-brand{display:grid;margin-right:auto;line-height:1.25}.nav-brand-name{font-weight:600;color:var(--fg);letter-spacing:-.01em}.nav-brand-role{font-family:var(--font-mono),monospace;font-size:var(--t-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3)}.nav-links{display:flex;gap:1.75rem}.nav-links a{font-size:.875rem;color:var(--fg-2);transition:color .15s var(--ease)}.nav-links a:hover{color:var(--fg)}.nav-external{display:flex;align-items:center;gap:.25rem;padding-left:1.5rem;border-left:1px solid var(--line-2)}.nav-external a{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--radius);color:var(--fg-3);transition:color .15s var(--ease),background-color .15s var(--ease)}.nav-external a:hover{color:var(--fg);background:var(--surface-2)}.nav-drawer,.nav-toggle{display:none}@media (max-width:860px){.nav-external,.nav-links{display:none}.nav-toggle{display:grid;place-items:center;width:44px;height:44px;margin-right:-.5rem;color:var(--fg)}.nav-drawer{display:block;position:fixed;inset:68px 0 0 0;background:var(--bg);padding:2rem var(--gutter) 3rem;overflow-y:auto;transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s}.nav-drawer.is-open{transform:none;opacity:1;visibility:visible}.nav-drawer nav{display:grid}.nav-drawer nav a{padding:1rem 0;font-size:1.375rem;font-weight:500;color:var(--fg);border-bottom:1px solid var(--line)}.nav-drawer-external{display:grid;grid-gap:.25rem;gap:.25rem;margin-top:2rem}.nav-drawer-external a{display:flex;align-items:center;gap:.75rem;min-height:52px;color:var(--fg-2);font-size:.9375rem}.nav-drawer-external a:hover{color:var(--fg)}}.pcard{display:flex;flex-direction:column;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}.pcard:hover{border-color:var(--line-2);box-shadow:0 8px 28px rgba(15,27,45,.07)}.pcard-shot{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--surface);border-bottom:1px solid var(--line)}.pcard-shot img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .4s var(--ease)}.pcard:hover .pcard-shot img{transform:scale(1.03)}@media (prefers-reduced-motion:reduce){.pcard:hover .pcard-shot img{transform:none}}.pcard-body{display:flex;flex-direction:column;align-items:flex-start;gap:.6875rem;padding:1.5rem;flex:1 1}.pcard-context{font-family:var(--font-mono),monospace;font-size:var(--t-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-4)}.pcard-name{font-size:1.375rem;letter-spacing:-.02em}.pcard-summary{color:var(--fg);font-size:.9375rem;line-height:1.5}.pcard-description{font-size:var(--t-small);line-height:1.7;color:var(--fg-3)}.pcard-role{display:flex;flex-wrap:wrap;gap:.375rem .625rem;font-size:var(--t-small);color:var(--fg-2)}.pcard-role span{font-family:var(--font-mono),monospace;font-size:var(--t-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-4)}.pcard-stack{margin-top:.125rem}.pcard-link{margin-top:auto;padding-top:.875rem}.pgrid{display:grid;grid-template-columns:1fr;grid-gap:1.25rem;gap:1.25rem}@media (min-width:720px){.pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1060px){.pgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}.scroll-top{position:fixed;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);z-index:40;display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);color:var(--fg-2);opacity:0;visibility:hidden;transition:opacity .18s var(--ease),visibility .18s,border-color .18s var(--ease),color .18s var(--ease)}.scroll-top.is-visible{opacity:1;visibility:visible}.scroll-top:hover{color:var(--fg);border-color:var(--fg-3)}