.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:13px 24px;min-height:44px;font-family:var(--sans);font-size:14px;font-weight:500;line-height:1;text-decoration:none;white-space:nowrap;border:1.5px solid transparent;border-radius:9px;cursor:pointer;background:0 0;color:inherit;transition:background var(--duration-base),color var(--duration-base),border-color var(--duration-base),transform var(--duration-fast)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.btn[aria-disabled=true],.btn[disabled]{opacity:.45;pointer-events:none;cursor:not-allowed}.btn--primary,.btn-dark{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn--ghost,.btn-outline{background:0 0;color:var(--ink-2);border-color:var(--border-2)}.btn--accent{background:0 0;color:var(--accent);border-color:var(--accent)}@media (hover:hover) and (pointer:fine){.btn--primary:hover,.btn-dark:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.btn--ghost:hover,.btn-outline:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.btn--accent:hover{background:var(--accent);color:var(--bg);transform:translateY(-2px)}}.btn--sm{font-size:var(--text-xs);letter-spacing:.05em;padding:8px 12px;border-radius:var(--radius-sm);min-height:36px}.btn--lg{font-size:16px;padding:16px 32px;min-height:52px}.btn--icon{width:44px;height:44px;padding:0;border-radius:var(--radius-md)}.nav-resume{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:.05em;color:var(--accent);border-color:var(--accent);background:0 0;padding:8px 12px;border-radius:var(--radius-sm);min-height:44px;cursor:pointer;transition:background var(--duration-base),color var(--duration-base)}.nav-resume:hover{background:var(--accent);color:var(--bg)}.hc-dl{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--mono);font-size:var(--text-xs);min-height:44px;padding:9px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);text-decoration:none;transition:color var(--duration-base),border-color var(--duration-base),background var(--duration-base)}.form-btn{align-self:flex-start;width:100%}