:root { --ink-50:#f8f8fc; --ink-100:#f0eff7; --ink-200:#dddce8; --ink-300:#c5c2d5; --ink-400:#9a96af; --ink-700:#373343; --ink-800:#211f2d; --ink-900:#15131e; --ink-950:#0a0a16; --teal-200:#a7efdf; --teal-300:#6be0cc; --teal-500:#14bea8; --teal-700:#0a7a6b; --violet-200:#ddd6fe; --violet-300:#c4b5fd; --violet-900:#4c1d95; --magenta-300:#f0a6fb; --display:"DM Serif Display",Georgia,serif; --body:Inter,ui-sans-serif,system-ui,sans-serif; --radius:8px; --radius-lg:12px; --container:72rem; --ease:200ms cubic-bezier(.2,0,0,1); --bg:var(--ink-950); --raised:var(--ink-900); --sunken:var(--ink-800); --fg:var(--ink-50); --muted:var(--ink-200); --subtle:var(--ink-300); --accent:var(--teal-300); --accent-hover:var(--teal-200); --accent-fg:var(--ink-950); --link:var(--teal-300); --border:var(--ink-700); --border-strong:var(--ink-400); --ring:var(--teal-300); --callout:var(--violet-900); }
html[data-theme="light"] { --bg:var(--ink-50); --raised:#fff; --sunken:var(--ink-100); --fg:var(--ink-900); --muted:var(--ink-700); --subtle:#504b61; --accent:var(--teal-500); --accent-hover:#0e9c8a; --accent-fg:var(--ink-950); --link:var(--teal-700); --border:var(--ink-200); --border-strong:#726d86; --ring:var(--teal-700); --callout:var(--violet-200); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--fg); font-family:var(--body); font-size:16px; line-height:1.65; text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased; }
a { color:var(--link); text-decoration-thickness:1px; text-underline-offset:.2em; }
a:hover { color:var(--accent); }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { color:var(--fg); font-family:var(--display); font-weight:400; line-height:1.08; }
h1 { font-size:clamp(3rem,7vw,5.6rem); letter-spacing:-.025em; }
h2 { font-size:clamp(2.35rem,5vw,4.25rem); letter-spacing:-.02em; }
h3 { font-size:1.65rem; }
:focus-visible { outline:2px solid var(--ring); outline-offset:4px; }
.cv-container { width:min(calc(100% - 40px),var(--container)); margin-inline:auto; }
.cv-skip-link { position:fixed; z-index:20; top:12px; left:12px; padding:10px 14px; transform:translateY(-150%); border-radius:var(--radius); background:var(--accent); color:var(--accent-fg); font-weight:700; text-decoration:none; transition:transform var(--ease); }
.cv-skip-link:focus { transform:none; }
.cv-header { position:sticky; z-index:10; top:0; border-bottom:1px solid color-mix(in srgb,var(--border) 80%,transparent); background:color-mix(in srgb,var(--bg) 92%,transparent); backdrop-filter:blur(14px); }
.cv-header__inner { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.cv-brand { display:inline-flex; align-items:center; gap:10px; color:var(--fg); font-family:var(--display); font-size:1.28rem; text-decoration:none; white-space:nowrap; }
.cv-brand:hover { color:var(--fg); }
.cv-brand__mark { width:28px; height:28px; fill:none; stroke:var(--accent); stroke-width:1.8; }
.cv-header__actions { display:flex; align-items:center; gap:16px; }
.cv-nav .nav { display:flex; align-items:center; gap:18px; margin:0; padding:0; list-style:none; }
.cv-nav .nav a { color:var(--muted); font-size:.875rem; font-weight:700; text-decoration:none; }
.cv-nav .nav a:hover { color:var(--accent); }
.cv-theme-toggle { width:40px; height:40px; border:1px solid var(--border); border-radius:var(--radius); background:var(--raised); color:var(--fg); cursor:pointer; font-size:1rem; transition:border-color var(--ease),color var(--ease),background var(--ease); }
.cv-theme-toggle:hover { border-color:var(--accent); color:var(--accent); }
.cv-eyebrow { margin-bottom:12px; color:var(--accent); font-size:.75rem; font-weight:700; letter-spacing:.12em; line-height:1.4; text-transform:uppercase; }
.cv-hero { padding:clamp(72px,11vw,152px) 0 80px; background:radial-gradient(circle at 78% 15%,color-mix(in srgb,var(--violet-900) 52%,transparent),transparent 30%),var(--bg); }
html[data-theme="light"] .cv-hero { background:radial-gradient(circle at 78% 15%,color-mix(in srgb,var(--violet-300) 52%,transparent),transparent 30%),var(--bg); }
.cv-hero__grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); align-items:center; gap:64px; }
.cv-hero__lede { max-width:37rem; color:var(--muted); font-family:var(--display); font-size:clamp(1.25rem,2vw,1.55rem); line-height:1.45; }
.cv-hero__actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.cv-button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; padding:12px 20px; border:1px solid transparent; border-radius:var(--radius); font-size:.9rem; font-weight:700; text-align:center; text-decoration:none; transition:transform var(--ease),background var(--ease),border-color var(--ease),color var(--ease); }
.cv-button:hover { transform:translateY(-1px); text-decoration:none; }
.cv-button--primary { background:var(--accent); color:var(--accent-fg); }
.cv-button--primary:hover { background:var(--accent-hover); color:var(--accent-fg); }
.cv-button--secondary { border-color:var(--border-strong); color:var(--fg); background:var(--raised); }
.cv-button--secondary:hover { border-color:var(--accent); color:var(--accent); }
.cv-method-card { padding:32px; border:1px solid var(--border-strong); border-radius:var(--radius-lg); background:color-mix(in srgb,var(--raised) 88%,transparent); box-shadow:0 16px 40px rgb(10 10 22 / .22); }
.cv-method-card ol { display:grid; gap:18px; margin:0; padding:0; list-style:none; counter-reset:method; }
.cv-method-card li { position:relative; padding-left:44px; counter-increment:method; }
.cv-method-card li::before { content:"0" counter(method); position:absolute; left:0; top:2px; color:var(--accent); font-family:var(--display); }
.cv-method-card li:nth-child(1)::before { color:var(--violet-300); }.cv-method-card li:nth-child(3)::before { color:var(--magenta-300); }
.cv-method-card span { color:var(--fg); font-family:var(--display); font-size:1.3rem; }.cv-method-card p { margin:2px 0 0; color:var(--muted); font-size:.9rem; }
.cv-section { padding:96px 0; }.cv-section--violet { background:var(--callout); color:var(--fg); }.cv-section--violet h2 { color:var(--fg); }
.cv-section-heading { max-width:44rem; margin-bottom:40px; }.cv-section-heading > p:not(.cv-eyebrow) { color:var(--muted); }
.cv-post-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.cv-post-card { border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; background:var(--raised); transition:transform var(--ease),border-color var(--ease); }.cv-post-card:hover { border-color:var(--border-strong); transform:translateY(-3px); }
.cv-post-card__link { display:block; height:100%; color:inherit; text-decoration:none; }.cv-post-card__image { width:100%; aspect-ratio:16/9; object-fit:cover; }.cv-post-card__body { padding:22px; }.cv-post-card h3 { margin:10px 0; }.cv-post-card p { color:var(--muted); font-size:.92rem; }.cv-post-card__meta { color:var(--subtle); font-size:.76rem; font-weight:700; }
.cv-tag { display:inline-flex; color:var(--accent); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }.cv-tag:hover { color:var(--accent); text-decoration:underline; }
.cv-empty { max-width:44rem; padding:40px; border:1px solid var(--border); border-left:2px solid var(--accent); border-radius:var(--radius-lg); background:var(--raised); }.cv-empty p:not(.cv-eyebrow) { max-width:38rem; color:var(--muted); }.cv-empty .cv-button { margin-top:8px; }
.cv-cta { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:end; }.cv-cta > p { max-width:32rem; margin:0; color:var(--ink-100); }
.cv-article { padding:80px 0 112px; }.cv-article__inner { width:min(calc(100% - 40px),48rem); }.cv-article__header { margin-bottom:40px; }.cv-article__lede { max-width:40rem; color:var(--muted); font-family:var(--display); font-size:1.45rem; line-height:1.48; }.cv-article__meta { display:flex; flex-wrap:wrap; gap:14px; color:var(--subtle); font-size:.82rem; font-weight:700; }.cv-feature-image { margin:0 0 48px; }.cv-feature-image img { width:100%; border-radius:var(--radius-lg); }
.cv-prose { font-size:1.07rem; }.cv-prose > * { max-width:42rem; }.cv-prose h2 { margin-top:64px; font-size:2.4rem; }.cv-prose h3 { margin-top:42px; }.cv-prose p,.cv-prose li { color:var(--muted); }.cv-prose blockquote { margin:40px 0; padding:28px; border:1px solid var(--violet-300); border-left-width:2px; border-radius:var(--radius-lg); background:var(--callout); color:var(--fg); font-family:var(--display); font-size:1.5rem; line-height:1.45; }.cv-prose blockquote p { color:inherit; }.cv-prose a { font-weight:700; }.cv-prose img { border-radius:var(--radius-lg); }.cv-article__footer { margin-top:72px; padding-top:24px; border-top:1px solid var(--border); color:var(--muted); font-family:var(--display); font-size:1.15rem; }.cv-tag-list { display:flex; flex-wrap:wrap; gap:14px; margin-top:16px; }
.cv-prose .kg-width-wide { width:calc(100% + 12rem); max-width:none; margin-left:-6rem; }.cv-prose .kg-width-full { width:100vw; max-width:none; margin-left:calc(50% - 50vw); border-radius:0; }
.cv-footer { padding:48px 0; border-top:1px solid var(--border); background:var(--sunken); }.cv-footer__inner { display:flex; justify-content:space-between; gap:32px; }.cv-footer p { margin:10px 0 0; color:var(--muted); font-size:.88rem; }.cv-footer__note { max-width:28rem; }
@media (max-width:800px) { .cv-header__inner { min-height:68px; }.cv-nav .nav { gap:12px; }.cv-nav .nav a { font-size:.78rem; }.cv-hero__grid,.cv-cta { grid-template-columns:1fr; gap:40px; }.cv-hero { padding-top:72px; }.cv-post-grid { grid-template-columns:1fr 1fr; }.cv-section { padding:72px 0; }.cv-footer__inner { flex-direction:column; }.cv-footer__note { max-width:40rem; }.cv-prose .kg-width-wide { width:100%; margin-left:0; }.cv-prose .kg-width-full { width:calc(100% + 40px); margin-left:-20px; } }
@media (max-width:560px) { .cv-container { width:min(calc(100% - 32px),var(--container)); }.cv-header__actions { gap:8px; }.cv-nav .nav { gap:10px; }.cv-nav .nav a { font-size:.72rem; }.cv-post-grid { grid-template-columns:1fr; }.cv-method-card { padding:24px; }.cv-empty { padding:28px; }.cv-article { padding-top:56px; }.cv-prose { font-size:1rem; }.cv-prose h2 { font-size:2rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }

body { --gh-font-heading:"DM Serif Display",Georgia,serif; --gh-font-body:Inter,ui-sans-serif,system-ui,sans-serif; }

.cv-prose .kg-width-wide { width:calc(100% + 12rem); max-width:none; margin-left:-6rem; }
.cv-prose .kg-width-full { width:100vw; max-width:none; margin-left:calc(50% - 50vw); border-radius:0; }
@media (max-width:800px) { .cv-prose .kg-width-wide { width:100%; margin-left:0; }.cv-prose .kg-width-full { width:calc(100% + 40px); margin-left:-20px; } }

.cv-brand em { color:var(--accent); font-style:italic; }
.cv-brand__mark { color:var(--accent); stroke:currentColor; }
.cv-member-link { min-height:40px; display:inline-flex; align-items:center; color:var(--fg); font-size:.82rem; font-weight:700; text-decoration:none; white-space:nowrap; }
.cv-member-link:hover { color:var(--accent); }
.cv-language-menu { position:relative; z-index:12; }
.cv-language-menu__trigger { min-height:40px; display:inline-flex; align-items:center; gap:6px; padding:0 9px; border:1px solid var(--border); border-radius:var(--radius); background:var(--raised); color:var(--fg); cursor:pointer; font-size:.8rem; font-weight:700; }
.cv-language-menu__trigger:hover,.cv-language-menu__trigger[aria-expanded="true"] { border-color:var(--accent); color:var(--accent); }
.cv-language-menu__trigger svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2; transition:transform var(--ease); }
.cv-language-menu__trigger[aria-expanded="true"] svg { transform:rotate(180deg); }
.cv-language-menu__list { position:absolute; top:calc(100% + 8px); right:0; min-width:9.5rem; margin:0; padding:8px; border:1px solid var(--border-strong); border-radius:var(--radius); background:var(--raised); box-shadow:0 16px 40px rgb(10 10 22 / .22); list-style:none; }
.cv-language-menu__list[hidden] { display:none; }
.cv-language-menu__list a { min-height:40px; display:flex; align-items:center; padding:0 10px; border-radius:4px; color:var(--fg); font-size:.82rem; font-weight:600; text-decoration:none; }
.cv-language-menu__list a:hover,.cv-language-menu__list a[aria-current="true"] { background:var(--sunken); color:var(--accent); }
@media (max-width:700px) { .cv-header__inner { min-height:0; flex-wrap:wrap; padding:10px 0; }.cv-header__actions { width:100%; justify-content:space-between; gap:10px; }.cv-nav .nav { gap:12px; }.cv-nav .nav a { font-size:.78rem; } }
@media (max-width:420px) { .cv-header__actions { gap:6px; }.cv-nav .nav { gap:8px; }.cv-nav .nav a,.cv-member-link { font-size:.72rem; }.cv-language-menu__trigger { padding:0 7px; font-size:.74rem; }.cv-theme-toggle { width:36px; height:36px; } }
