.card-image[data-astro-cid-mspuyifq] img[data-astro-cid-mspuyifq]{width:100%;height:160px;-o-object-fit:cover;object-fit:cover}.card-title[data-astro-cid-mspuyifq] a[data-astro-cid-mspuyifq]{color:inherit;text-decoration:none}.card-title[data-astro-cid-mspuyifq] a[data-astro-cid-mspuyifq]:hover,.card-title[data-astro-cid-mspuyifq] a[data-astro-cid-mspuyifq]:focus-visible{color:var(--color-accent)}.card-tags[data-astro-cid-mspuyifq]{display:flex;flex-wrap:wrap;gap:6px}.card-actions[data-astro-cid-mspuyifq]{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}@media(hover:hover){.project-card[data-astro-cid-mspuyifq]:hover .grayscale[data-astro-cid-mspuyifq]{filter:none}}.project-card[data-astro-cid-mspuyifq]:focus-within .grayscale[data-astro-cid-mspuyifq]{filter:none}@media(prefers-reduced-motion:no-preference){.card-image[data-astro-cid-mspuyifq] img[data-astro-cid-mspuyifq]{transition:filter .4s ease}}.contact[data-astro-cid-gldodyjr]{padding-top:var(--space-8);padding-bottom:var(--space-8)}.contact-head[data-astro-cid-gldodyjr]{margin-bottom:var(--space-6)}.eyebrow[data-astro-cid-gldodyjr]{margin-bottom:var(--space-2)}.contact-title[data-astro-cid-gldodyjr]{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .3em;margin-bottom:var(--space-3);line-height:1}.contact-lets[data-astro-cid-gldodyjr]{font-size:clamp(56px,10vw,112px);letter-spacing:-.03em}.contact-connect[data-astro-cid-gldodyjr]{font-size:clamp(28px,4vw,44px);font-weight:400;font-family:var(--font-mono);letter-spacing:-.01em;color:var(--color-text-muted)}.contact-dot[data-astro-cid-gldodyjr]{color:var(--color-accent)}.contact-intro[data-astro-cid-gldodyjr]{font-size:16px;max-width:56ch;opacity:.85;margin:0}.contact-grid[data-astro-cid-gldodyjr]{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--space-8);align-items:start}.contact-left[data-astro-cid-gldodyjr]{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.term[data-astro-cid-gldodyjr]{border:1px var(--rule-style) var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);overflow:hidden;font-family:var(--font-mono);font-size:12.5px;line-height:1.7}.term-bar[data-astro-cid-gldodyjr]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px var(--rule-style) var(--color-divider);background:color-mix(in srgb,var(--color-text) 4%,var(--color-surface));font-size:11px;color:var(--color-text-faint)}.term-dots[data-astro-cid-gldodyjr]{display:inline-flex;gap:6px}.term-dots[data-astro-cid-gldodyjr] i[data-astro-cid-gldodyjr]{width:10px;height:10px;border-radius:50%;background:var(--color-neutral-500)}.term-dots[data-astro-cid-gldodyjr] i[data-astro-cid-gldodyjr]:first-child{background:var(--color-accent-500)}.term-title[data-astro-cid-gldodyjr]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.term-status[data-astro-cid-gldodyjr]{display:inline-flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.08em;font-size:10px}.term-live[data-astro-cid-gldodyjr]{width:6px;height:6px;border-radius:50%;background:var(--color-accent)}@media(prefers-reduced-motion:no-preference){.term-live[data-astro-cid-gldodyjr]{animation:term-live 1.8s ease-in-out infinite}}@keyframes term-live{50%{opacity:.3}}.term-body[data-astro-cid-gldodyjr]{padding:var(--space-3) var(--space-4);min-height:372px;color:var(--color-text)}.term-row[data-astro-cid-gldodyjr]{margin:0;overflow-wrap:anywhere}.term-out[data-astro-cid-gldodyjr]{color:var(--color-text-muted);padding-left:1.5ch}.term-kv[data-astro-cid-gldodyjr]{display:grid;grid-template-columns:11ch 1fr;gap:0 var(--space-2)}.term-key[data-astro-cid-gldodyjr]{color:var(--color-text-faint);letter-spacing:.06em;font-size:11px}.term-prompt[data-astro-cid-gldodyjr]{color:var(--color-accent);font-weight:600}.term-cmd[data-astro-cid-gldodyjr]{color:var(--color-text)}.term-dim[data-astro-cid-gldodyjr]{color:var(--color-text-faint)}.term-ok[data-astro-cid-gldodyjr]{color:var(--color-accent-2)}.term-num[data-astro-cid-gldodyjr]{font-weight:500;color:var(--color-text);font-variant-numeric:tabular-nums}.term-link[data-astro-cid-gldodyjr]{color:var(--color-accent-700);text-decoration-color:color-mix(in srgb,var(--color-accent) 40%,transparent)}.term-link[data-astro-cid-gldodyjr]:hover{color:var(--color-accent)}@media(prefers-reduced-motion:no-preference){.term-row[data-astro-cid-gldodyjr]:not([hidden]){animation:term-row-in .22s var(--ease-out) both}}@keyframes term-row-in{0%{opacity:0;translate:0 3px}}.term-caret[data-astro-cid-gldodyjr]{display:inline-block;width:.6em;height:1.05em;vertical-align:-.2em;background:var(--color-accent)}@media(prefers-reduced-motion:no-preference){.term-caret[data-astro-cid-gldodyjr]{animation:brand-caret 1s steps(1,end) infinite}}.contact-socials[data-astro-cid-gldodyjr]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.term-card[data-astro-cid-gldodyjr]{display:flex;flex-direction:column;gap:4px;padding:var(--space-3);border:1px var(--rule-style) var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);text-decoration:none;color:var(--color-text);font-family:var(--font-mono);min-width:0;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease,translate var(--dur-fast) var(--ease-out)}.term-card[data-astro-cid-gldodyjr]:hover,.term-card[data-astro-cid-gldodyjr]:focus-visible{color:var(--color-text);border-color:var(--color-accent);box-shadow:var(--shadow-md);translate:0 -2px}.term-card-cmd[data-astro-cid-gldodyjr]{font-size:11px;color:var(--color-text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.term-card-row[data-astro-cid-gldodyjr]{display:flex;align-items:center;gap:8px}.term-card-icon[data-astro-cid-gldodyjr]{width:16px;height:16px;flex:none;color:var(--color-accent)}.term-card-name[data-astro-cid-gldodyjr]{font-family:var(--font-body);font-weight:600;font-size:14px}.term-card-arrow[data-astro-cid-gldodyjr]{margin-left:auto;color:var(--color-text-faint);transition:translate var(--dur-fast) var(--ease-out),color var(--dur-fast) ease}.term-card[data-astro-cid-gldodyjr]:hover .term-card-arrow[data-astro-cid-gldodyjr]{translate:2px -2px;color:var(--color-accent)}.term-card-handle[data-astro-cid-gldodyjr]{font-size:11px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-form[data-astro-cid-gldodyjr]{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);border:1px var(--rule-style) var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg);box-shadow:var(--shadow-sm)}.contact-form-head[data-astro-cid-gldodyjr]{display:flex;align-items:baseline;gap:.6ch;padding-bottom:var(--space-3);border-bottom:1px var(--rule-style) var(--color-divider);font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted)}.contact-form-file[data-astro-cid-gldodyjr]{color:var(--color-text)}.contact-form-mode[data-astro-cid-gldodyjr]{margin-left:auto;font-size:10px;letter-spacing:.1em;color:var(--color-accent-2)}.contact-fields[data-astro-cid-gldodyjr]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.contact-field-wide[data-astro-cid-gldodyjr]{grid-column:1 / -1}.contact-field[data-astro-cid-gldodyjr]>label[data-astro-cid-gldodyjr]{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--color-text-muted)}.contact-field[data-astro-cid-gldodyjr]>label[data-astro-cid-gldodyjr]:before{content:"> ";color:var(--color-accent)}.contact-field[data-astro-cid-gldodyjr] .input[data-astro-cid-gldodyjr]{font-family:var(--font-mono);font-size:13px}.contact-field[data-astro-cid-gldodyjr] .input[data-astro-cid-gldodyjr]::-moz-placeholder{color:var(--color-text-faint)}.contact-field[data-astro-cid-gldodyjr] .input[data-astro-cid-gldodyjr]::placeholder{color:var(--color-text-faint)}.contact-message[data-astro-cid-gldodyjr]{min-height:140px;resize:vertical}.contact-form-foot[data-astro-cid-gldodyjr]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.contact-form-hint[data-astro-cid-gldodyjr]{margin:0;font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted);flex:1 1 200px}.contact-send[data-astro-cid-gldodyjr]{gap:8px}.contact-send-icon[data-astro-cid-gldodyjr]{width:14px;height:14px;transition:translate var(--dur-fast) var(--ease-out)}.contact-send[data-astro-cid-gldodyjr]:hover .contact-send-icon[data-astro-cid-gldodyjr]{translate:3px 0}@media(max-width:900px){.contact-grid[data-astro-cid-gldodyjr]{grid-template-columns:1fr;gap:var(--space-6)}}@media(max-width:640px){.contact-socials[data-astro-cid-gldodyjr],.contact-fields[data-astro-cid-gldodyjr],.term-kv[data-astro-cid-gldodyjr]{grid-template-columns:1fr}.term-body[data-astro-cid-gldodyjr]{min-height:0}.contact-form-mode[data-astro-cid-gldodyjr]{display:none}}.eyebrow[data-astro-cid-j7pv25f6]{margin-bottom:var(--space-2)}.hero-visual[data-astro-cid-j7pv25f6]{display:none}.hero[data-astro-cid-j7pv25f6]{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--space-8);align-items:center;padding-top:var(--space-8);padding-bottom:var(--space-8)}.hero-status[data-astro-cid-j7pv25f6]{margin-bottom:var(--space-3);gap:8px}.status-dot[data-astro-cid-j7pv25f6]{width:7px;height:7px;border-radius:50%;background:var(--color-accent);flex:none}@media(prefers-reduced-motion:no-preference){.status-dot[data-astro-cid-j7pv25f6]{animation:status-pulse 2s ease-in-out infinite}}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.35}}.hero-title[data-astro-cid-j7pv25f6]{font-size:clamp(32px,5.4vw,52px);max-width:22ch;margin-bottom:var(--space-4)}.highlight[data-astro-cid-j7pv25f6]{color:var(--color-accent-800);background:var(--color-accent-100);border:1px dashed var(--color-accent);padding:0 8px;white-space:nowrap}.nowrap[data-astro-cid-j7pv25f6]{white-space:nowrap}.hero-desc[data-astro-cid-j7pv25f6]{font-size:17px;max-width:52ch;opacity:.85;margin-bottom:var(--space-4)}.hero-actions[data-astro-cid-j7pv25f6]{display:flex;gap:var(--space-3);flex-wrap:wrap}.hero-figure[data-astro-cid-j7pv25f6]{border-left:2px solid var(--color-divider);padding-left:var(--space-6);position:relative;--hero-photo: 160px;--hero-rule: calc(var(--space-6) + 2px);max-width:calc(var(--hero-photo) + var(--hero-rule));margin-right:var(--hero-rule);justify-self:center}.hero-photo[data-astro-cid-j7pv25f6]{width:100%;aspect-ratio:4 / 5;-o-object-fit:cover;object-fit:cover;-o-object-position:center 15%;object-position:center 15%}.hero-figure[data-astro-cid-j7pv25f6]:after{content:"";position:absolute;inset:0 0 0 var(--space-6);pointer-events:none;background:linear-gradient(to top,color-mix(in srgb,var(--color-bg) 78%,transparent) 0%,color-mix(in srgb,var(--color-bg) 20%,transparent) 20%,transparent 42%)}.home-section[data-astro-cid-j7pv25f6]{padding-top:var(--space-6);padding-bottom:var(--space-8)}.section-head[data-astro-cid-j7pv25f6]{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap}.section-line[data-astro-cid-j7pv25f6]{flex:1;min-width:40px;align-self:center}.grid-2[data-astro-cid-j7pv25f6]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.grid-3[data-astro-cid-j7pv25f6]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.cs-grid[data-astro-cid-j7pv25f6].cs-grid{grid-template-areas:"lead lead b" "lead lead c";grid-template-columns:1fr 1fr 1fr}.cs-grid[data-astro-cid-j7pv25f6] .cs-card[data-astro-cid-j7pv25f6]:nth-child(1){grid-area:lead}.cs-grid[data-astro-cid-j7pv25f6] .cs-card[data-astro-cid-j7pv25f6]:nth-child(2){grid-area:b}.cs-grid[data-astro-cid-j7pv25f6] .cs-card[data-astro-cid-j7pv25f6]:nth-child(3){grid-area:c}@media(min-width:761px){.cs-grid[data-astro-cid-j7pv25f6]:not(:has(.cs-card:nth-child(3))){grid-template-areas:none;grid-template-columns:repeat(3,1fr)}.cs-grid[data-astro-cid-j7pv25f6]:not(:has(.cs-card:nth-child(3))) .cs-card[data-astro-cid-j7pv25f6]{grid-area:auto}}.cs-card[data-astro-cid-j7pv25f6]{text-decoration:none;color:inherit}.cs-lead[data-astro-cid-j7pv25f6] .card-title[data-astro-cid-j7pv25f6]{font-size:clamp(24px,2.6vw,34px);max-width:30ch}.cs-lead[data-astro-cid-j7pv25f6] .card-body[data-astro-cid-j7pv25f6]{font-size:15px;opacity:.85;max-width:52ch}.cs-card[data-astro-cid-j7pv25f6]:hover,.cs-card[data-astro-cid-j7pv25f6]:focus-visible{color:inherit}.cs-card[data-astro-cid-j7pv25f6]:hover .card-title[data-astro-cid-j7pv25f6],.cs-card[data-astro-cid-j7pv25f6]:focus-visible .card-title[data-astro-cid-j7pv25f6]{color:var(--color-accent)}.cs-card-cta[data-astro-cid-j7pv25f6]{align-self:flex-start;margin-top:var(--space-2)}.skills-title[data-astro-cid-j7pv25f6]{margin-bottom:var(--space-3)}.tag-row[data-astro-cid-j7pv25f6]{display:flex;flex-wrap:wrap;gap:8px}.skills-grid[data-astro-cid-j7pv25f6]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-6) var(--space-4);align-items:start}.skill-cluster[data-astro-cid-j7pv25f6]{display:flex;flex-direction:column;gap:var(--space-2)}.skill-cluster-wide[data-astro-cid-j7pv25f6]{grid-column:1 / -1}.skill-label[data-astro-cid-j7pv25f6]{font-family:var(--font-mono);font-weight:500;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin:0}@media(max-width:900px){.grid-3[data-astro-cid-j7pv25f6]{grid-template-columns:repeat(2,1fr)}.cs-grid[data-astro-cid-j7pv25f6].cs-grid{grid-template-areas:"lead lead" "b c"}}@media(max-width:760px){.hero[data-astro-cid-j7pv25f6]{grid-template-columns:1fr;gap:var(--space-6)}.cs-grid[data-astro-cid-j7pv25f6].cs-grid{grid-template-areas:"lead" "b" "c";grid-template-columns:1fr}.cs-lead[data-astro-cid-j7pv25f6] .card-title[data-astro-cid-j7pv25f6]{font-size:24px}.hero-figure[data-astro-cid-j7pv25f6]{border-left:0;border-top:2px solid var(--color-divider);padding-left:0;padding-top:var(--space-6);max-width:var(--hero-photo);margin-right:0;justify-self:start}.hero-figure[data-astro-cid-j7pv25f6]:after{inset:var(--space-6) 0 0}.grid-2[data-astro-cid-j7pv25f6],.grid-3[data-astro-cid-j7pv25f6]{grid-template-columns:1fr}}
