:root{--bg:#f5eedf;--bg-subtle:#ebe3d0;--text-primary:#22315f;--text-secondary:#3a4a80;--text-tertiary:#5d6584;--accent:#c8e62f;--accent-deep:#6f8f14;--accent-warm:#c05433;--accent-dim:color-mix(in srgb, var(--accent) 28%, transparent);--border:#c2b9aa;--border-hover:color-mix(in srgb, var(--accent-warm) 45%, #d8ccb4);--code-bg:#f0e6d2;--surface:#fdf1e3;--glow:color-mix(in srgb, var(--accent) 35%, transparent);--glow-strong:color-mix(in srgb, var(--accent) 55%, transparent);--orb-a:color-mix(in srgb, var(--accent) 22%, transparent);--orb-b:#f2c9a98c;--orb-c:#23407c1f;--hero-grid:#22315f14;--selection-fg:#22315f;--ink-on-accent:#22315f;--shadow-elev:#22315f24;--shadow-elev-strong:#22315f33;--panel-deep:#23407c;--panel-mid:#2f4f8f;--panel-deep-end:#1a3260;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-display:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", "SF Mono", "Fira Code", monospace;--text-xl:clamp(2.75rem, 9vw, 5.75rem);--text-lg:clamp(1.625rem, 3vw, 2.5rem);--text-md:1.125rem;--text-sm:.875rem;--text-xs:.75rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:2rem;--space-xl:4rem;--space-2xl:6rem;--space-3xl:8rem;--max-width:72rem;--max-width-narrow:48rem;--padding-x:min(2rem, 5vw);--radius-sm:6px;--radius-md:12px;--radius-pill:999px;--shadow-glow:0 0 0 1px var(--border), 0 14px 36px -18px var(--shadow-elev), 0 0 28px -10px var(--glow);--hero-min-height:min(72vh, 40rem);--transition-fast:.15s ease;--transition-normal:.25s ease}html[data-theme=dark],html:not([data-theme=light]):not([data-theme=dark]){color-scheme:light dark}@media (prefers-color-scheme:dark){html:not([data-theme=light]){--bg:#1a1814;--bg-subtle:#242018;--text-primary:#f0e6d4;--text-secondary:#c9bfa8;--text-tertiary:#9e9584;--accent:#c8e62f;--accent-deep:#b5d42a;--accent-warm:#e07a52;--accent-dim:color-mix(in srgb, var(--accent) 22%, transparent);--border:#5d574a;--border-hover:color-mix(in srgb, var(--accent-warm) 50%, #3d372c);--code-bg:#2a261f;--surface:#2e271f;--glow:color-mix(in srgb, var(--accent) 28%, transparent);--glow-strong:color-mix(in srgb, var(--accent) 45%, transparent);--orb-a:color-mix(in srgb, var(--accent) 14%, transparent);--orb-b:#c0543338;--orb-c:#4a6ab02e;--hero-grid:#f0e6d40f;--selection-fg:#1a1814;--ink-on-accent:#1a1814;--shadow-elev:#00000073;--shadow-elev-strong:#0009;--panel-deep:#1e3058;--panel-mid:#2a4278;--panel-deep-end:#152442;color-scheme:dark}}html[data-theme=dark]{--bg:#1a1814;--bg-subtle:#242018;--text-primary:#f0e6d4;--text-secondary:#c9bfa8;--text-tertiary:#9e9584;--accent:#c8e62f;--accent-deep:#b5d42a;--accent-warm:#e07a52;--accent-dim:color-mix(in srgb, var(--accent) 22%, transparent);--border:#5d574a;--border-hover:color-mix(in srgb, var(--accent-warm) 50%, #3d372c);--code-bg:#2a261f;--surface:#2e271f;--glow:color-mix(in srgb, var(--accent) 28%, transparent);--glow-strong:color-mix(in srgb, var(--accent) 45%, transparent);--orb-a:color-mix(in srgb, var(--accent) 14%, transparent);--orb-b:#c0543338;--orb-c:#4a6ab02e;--hero-grid:#f0e6d40f;--selection-fg:#1a1814;--ink-on-accent:#1a1814;--shadow-elev:#00000073;--shadow-elev-strong:#0009;--panel-deep:#1e3058;--panel-mid:#2a4278;--panel-deep-end:#152442;color-scheme:dark}html[data-theme=light]{--bg:#f5eedf;--bg-subtle:#ebe3d0;--text-primary:#22315f;--text-secondary:#3a4a80;--text-tertiary:#5d6584;--accent:#c8e62f;--accent-deep:#6f8f14;--accent-warm:#c05433;--accent-dim:color-mix(in srgb, var(--accent) 28%, transparent);--border:#c2b9aa;--border-hover:color-mix(in srgb, var(--accent-warm) 45%, #d8ccb4);--code-bg:#f0e6d2;--surface:#fdf1e3;--glow:color-mix(in srgb, var(--accent) 35%, transparent);--glow-strong:color-mix(in srgb, var(--accent) 55%, transparent);--orb-a:color-mix(in srgb, var(--accent) 22%, transparent);--orb-b:#f2c9a98c;--orb-c:#23407c1f;--hero-grid:#22315f14;--selection-fg:#22315f;--ink-on-accent:#22315f;--shadow-elev:#22315f24;--shadow-elev-strong:#22315f33;--panel-deep:#23407c;--panel-mid:#2f4f8f;--panel-deep-end:#1a3260;color-scheme:light}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{tab-size:2;text-size-adjust:100%;color-scheme:light dark;scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-sans);font-size:var(--text-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-primary);background:var(--bg);isolation:isolate;text-rendering:optimizelegibility;line-height:1.7;position:relative}body:before{z-index:-2;pointer-events:none;content:"";background:radial-gradient(ellipse 80% 50% at 12% -8%, var(--orb-a), transparent 55%), radial-gradient(ellipse 55% 40% at 92% 8%, var(--orb-b), transparent 52%), radial-gradient(ellipse 50% 32% at 50% 100%, var(--orb-c), transparent 55%), var(--bg);position:fixed;inset:0}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}a{color:var(--text-primary);text-underline-offset:3px}a:hover{color:var(--accent-warm)}button{cursor:pointer;background:0 0;border:none}::selection{color:var(--selection-fg);background:var(--accent)}:focus-visible{outline:2px solid var(--accent-deep);outline-offset:3px}.skip-link{top:-100%;left:var(--padding-x);z-index:100;padding:var(--space-sm) var(--space-md);color:var(--ink-on-accent);background:var(--accent);border-radius:0 0 var(--radius-sm) var(--radius-sm);transition:top var(--transition-fast);font-weight:600;text-decoration:none;position:absolute}.skip-link:focus{color:var(--ink-on-accent);top:0}.sr-only{white-space:nowrap;clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.js .reveal{opacity:0;transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1);transform:translateY(20px)}.reveal.visible{opacity:1;transform:translateY(0)}.js .stagger>*{opacity:0;transition:opacity .48s cubic-bezier(.22,1,.36,1),transform .48s cubic-bezier(.22,1,.36,1);transform:translateY(16px)}.stagger.visible>:first-child{transition-delay:0s}.stagger.visible>:nth-child(2){transition-delay:90ms}.stagger.visible>:nth-child(3){transition-delay:.18s}.stagger.visible>:nth-child(4){transition-delay:.27s}.stagger.visible>:nth-child(5){transition-delay:.36s}.stagger.visible>:nth-child(6){transition-delay:.45s}.stagger.visible>*{opacity:1;transform:translateY(0)}@keyframes ambient-pulse{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.85;transform:scale(1.02)}}@keyframes hero-orb-drift{0%{opacity:.88;transform:translate(-6%,-4%)scale(1)}33%{opacity:1;transform:translate(5%,3%)scale(1.1)}66%{opacity:.92;transform:translate(-3%,6%)scale(1.06)}to{opacity:.88;transform:translate(-6%,-4%)scale(1)}}::view-transition-old(root),::view-transition-new(root){animation-duration:.3s}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal,.js .stagger>*{opacity:1;transition:none;transform:none}.reveal.visible,.stagger.visible>*{opacity:1;transform:none}.hero__eyebrow-dot,.hero__ambient:before,.hero__letter--vowel{animation:none!important}.hero__letter--vowel{max-width:1.05em;color:inherit;opacity:1;transform:none}.hero__ambient:before{opacity:.95;background-position:0 0;transform:none}.hero__ambient:after,.hero:hover .hero__ambient:after{opacity:0!important;transition:none!important}.btn:hover,.project-card:hover,.project-card--a:hover,.project-card--b:hover,.project-card--c:hover,.project-card--c:hover .project-card__panel,.project-card--d:hover,.project-card--e:hover,.project-card--f:hover,.article-card:hover,.project-card:hover .project-card__cta-arrow,.project-card:focus-visible .project-card__cta-arrow,.project-card--d:hover .project-card__cta-arrow--lg,.project-card--d:focus-visible .project-card__cta-arrow--lg{transform:none}.project-card--f:hover .project-card__title,.project-card--f:focus-visible .project-card__title,.article-card--f:hover .article-card__title,.article-card--f:focus-visible .article-card__title{background-size:0 1px}.article-card--f:hover .article-card__cta-arrow,.article-card--f:focus-visible .article-card__cta-arrow{transform:none}::view-transition-old(root),::view-transition-new(root){animation-duration:0s}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.container{width:100%;max-width:var(--max-width);padding-right:var(--padding-x);padding-left:var(--padding-x);margin-left:auto;margin-right:auto}.container--narrow{max-width:var(--max-width-narrow)}.header-bar{z-index:20;position:relative}.nav{gap:var(--space-lg);padding-top:var(--space-lg);padding-bottom:var(--space-lg);flex-wrap:wrap;justify-content:flex-start;align-items:center;display:flex}.nav__brand{color:var(--text-primary);transition:color var(--transition-fast);align-items:center;text-decoration:none;display:inline-flex}.nav__logo{--logo-accent:currentColor;width:auto;height:1.65rem;color:var(--text-primary);transition:color var(--transition-fast)}.nav__brand:hover,.nav__brand:hover .nav__logo{color:var(--accent-warm)}.nav__toggle{gap:var(--space-sm);min-height:2.5rem;padding:var(--space-xs) var(--space-sm);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);transition:color var(--transition-fast), border-color var(--transition-fast), background-color var(--transition-fast);align-items:center;font-weight:500;display:none}.nav__toggle:hover{color:var(--accent-warm);border-color:var(--border-hover)}.nav__toggle[aria-expanded=true]{color:var(--text-primary);background:color-mix(in srgb, var(--accent) 18%, transparent);border-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.nav__toggle-bars{flex-direction:column;gap:3px;width:1rem;display:flex}.nav__toggle-bar{transform-origin:50%;width:100%;height:2px;transition:transform var(--transition-fast), opacity var(--transition-fast);background:currentColor;border-radius:1px;display:block}.nav__toggle[aria-expanded=true] .nav__toggle-bar:first-child{transform:translateY(5px)rotate(45deg)}.nav__toggle[aria-expanded=true] .nav__toggle-bar:nth-child(2){opacity:0}.nav__toggle[aria-expanded=true] .nav__toggle-bar:nth-child(3){transform:translateY(-5px)rotate(-45deg)}.nav__toggle-text{text-align:left;width:5ch;line-height:1;display:inline-block}.nav__links{gap:var(--space-lg);flex-wrap:wrap;align-items:center;margin-left:auto;list-style:none;display:flex}.nav__toolbar{gap:var(--space-md);align-items:center;display:flex}.nav__link{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary);transition:color var(--transition-fast);text-decoration:none}.link--icon{vertical-align:middle;justify-content:center;align-items:center;min-width:1.5rem;min-height:1.5rem;margin:-.25rem;line-height:1;display:inline-flex}.social-icon{width:1em;height:1em}.social-icon--github{width:1.2em;height:1.2em}.nav__link:hover{color:var(--accent-warm)}.theme-toggle{min-width:1.5rem;min-height:1.5rem;font:inherit;font-size:var(--text-sm);vertical-align:middle;color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;margin:-.25rem;padding:0;line-height:1;display:inline-flex}.theme-toggle:hover{color:var(--accent-warm)}.theme-toggle:focus-visible{outline:2px solid var(--accent-deep);outline-offset:3px}.theme-toggle__icon{width:1.15em;height:1.15em;display:block;transform:translateY(1px)}.theme-toggle__icon--sun{display:none}html[data-theme=dark] .theme-toggle__icon--sun{display:block}html[data-theme=dark] .theme-toggle__icon--moon{display:none}@media (prefers-color-scheme:dark){html:not([data-theme=light]):not([data-theme=dark]) .theme-toggle__icon--sun{display:block}html:not([data-theme=light]):not([data-theme=dark]) .theme-toggle__icon--moon{display:none}}.hero{min-height:var(--hero-min-height);padding-top:var(--space-2xl);padding-bottom:var(--space-2xl);flex-direction:column;justify-content:flex-end;display:flex;position:relative;overflow:hidden}.hero__ambient{z-index:0;pointer-events:none;position:absolute;inset:-10% -5% 0;mask-image:radial-gradient(85% 75% at 50% 35%,#000 20%,#0000 75%)}.hero__ambient:before{content:"";background-image:radial-gradient(circle at 75% 30%, var(--glow) 0, transparent 2px), radial-gradient(circle at 30% 55%, var(--glow) 0, transparent 1.5px), radial-gradient(circle at 55% 70%, var(--glow) 0, transparent 1.5px),  radial-gradient(ellipse 58% 48% at 68% 28%, var(--orb-a), transparent 65%), radial-gradient(ellipse 48% 42% at 22% 78%, var(--orb-b), transparent 60%), radial-gradient(ellipse 40% 35% at 55% 55%, var(--orb-c), transparent 55%);opacity:1;background-position:0 0;background-size:100% 100%;position:absolute;inset:-14%;transform:translate(0,0)scale(1)}@media (prefers-reduced-motion:no-preference){.hero__ambient:before{animation:14s ease-in-out infinite hero-orb-drift}}.hero__ambient:after{content:"";background-image:linear-gradient(var(--hero-grid) 1px, transparent 1px), linear-gradient(90deg, var(--hero-grid) 1px, transparent 1px);opacity:0;background-position:0 0;background-size:48px 48px,48px 48px;transition:opacity .14s ease-out;position:absolute;inset:0}@media (hover:hover) and (pointer:fine){@media (prefers-reduced-motion:no-preference){.hero:hover .hero__ambient:after{opacity:1;transition:opacity 1.35s cubic-bezier(.22,1,.36,1)}}}.hero__content{z-index:1;max-width:48rem;position:relative}.hero__eyebrow{gap:var(--space-sm);margin-bottom:var(--space-lg);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent-warm);text-transform:uppercase;letter-spacing:.06em;background:color-mix(in srgb, var(--accent-warm) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent-warm) 28%, transparent);border-radius:var(--radius-pill);align-items:center;padding:.4rem .85rem;font-weight:500;line-height:1.3;display:inline-flex}.hero__eyebrow-dot{background:var(--accent);width:.4rem;height:.4rem;box-shadow:0 0 10px var(--glow);border-radius:50%;animation:2.4s ease-in-out infinite ambient-pulse}.hero__name{margin-bottom:var(--space-md);font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.035em;font-weight:800;line-height:1.02}.hero__name-visual{display:inline}.hero__name-ben{white-space:pre}.hero__name-bloom{align-items:baseline;display:inline-flex}.hero__letter{vertical-align:baseline;white-space:pre;font-style:normal;display:inline-block;overflow:hidden}@media (prefers-reduced-motion:no-preference){.hero__letter--vowel{max-width:0;color:var(--accent-warm);opacity:0;transform:translateY(.12em)scale(.65)}.hero__content.reveal.visible .hero__letter--vowel{animation:2.1s cubic-bezier(.22,1,.36,1) forwards hero-vowel-bloom}.hero__content.reveal.visible .hero__letter--vowel-1{animation-delay:.45s}.hero__content.reveal.visible .hero__letter--vowel-2{animation-delay:.75s}}@keyframes hero-vowel-bloom{0%{opacity:0;max-width:0;color:var(--accent-warm);transform:translateY(.12em)scale(.65)}55%{opacity:1;max-width:1.05em;color:var(--accent-warm);transform:translateY(-.03em)scale(1.05)}to{opacity:1;max-width:1.05em;color:inherit;transform:translateY(0)scale(1)}}.hero__subtitle{max-width:36rem;margin-bottom:var(--space-lg);color:var(--text-secondary);letter-spacing:-.01em;font-size:clamp(1.125rem,2.2vw,1.4rem);font-weight:400;line-height:1.45}.hero__detail{margin-bottom:var(--space-xl);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-tertiary);letter-spacing:.02em;line-height:1.5}.hero__actions{gap:var(--space-md);flex-wrap:wrap;align-items:center;display:flex}.btn{gap:var(--space-sm);min-height:2.75rem;font-family:var(--font-mono);font-size:var(--text-sm);border-radius:var(--radius-pill);transition:color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-normal), transform var(--transition-fast), filter var(--transition-fast), gap var(--transition-fast);justify-content:center;align-items:center;padding:.7rem 1.25rem;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn--primary{color:var(--ink-on-accent);background:var(--accent);border:1px solid color-mix(in srgb, var(--accent-deep) 25%, transparent);box-shadow:0 8px 22px -12px var(--shadow-elev)}.btn--primary:hover{color:var(--ink-on-accent);box-shadow:0 12px 28px -10px var(--shadow-elev-strong);filter:brightness(1.04)}.btn--secondary{color:var(--text-primary);border:1px solid var(--border);background:0 0}.btn--secondary:hover{color:var(--text-primary);background:color-mix(in srgb, var(--accent-warm) 8%, transparent);border-color:var(--border-hover)}.btn__arrow{transition:transform var(--transition-fast)}.btn:hover .btn__arrow{transform:translate(3px)}.projects-cta{margin-top:2rem}.projects-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(min(100%,28rem),1fr));display:grid}.projects-grid--bento{gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr))}.projects-grid--bento .project-card--featured{grid-column:1/-1}@media (width>=48rem){.projects-grid--bento{gap:var(--space-lg);grid-template-columns:repeat(4,minmax(0,1fr))}.projects-grid--bento .project-card--featured{grid-area:span 2/span 2}}.project-card{padding:var(--space-lg);color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), transform var(--transition-normal), box-shadow var(--transition-normal), background var(--transition-fast);flex-direction:column;text-decoration:none;display:flex;position:relative;overflow:hidden;box-shadow:0 0 #0000}.project-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow)}.project-card:focus-visible{outline:2px solid var(--accent-deep);outline-offset:3px}.project-card__header{gap:var(--space-md);margin-bottom:var(--space-sm);justify-content:space-between;align-items:flex-start;display:flex}.project-card__title{letter-spacing:-.01em;font-size:1.25rem;font-weight:600}.project-card__status{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:lowercase;white-space:nowrap;border-radius:4px;flex-shrink:0;padding:2px 8px}.project-card__status--active{color:#2f7a3e;background:#2f7a3e1f}.project-card__status--reference{color:var(--text-secondary);background:color-mix(in srgb, var(--text-tertiary) 12%, transparent)}.project-card__status--experimental{color:var(--accent-warm);background:color-mix(in srgb, var(--accent-warm) 12%, transparent)}.project-card__tagline{margin-bottom:var(--space-md);font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.project-card__stack{gap:var(--space-xs);padding-top:var(--space-md);flex-wrap:wrap;margin-top:auto;list-style:none;display:flex}.project-card__cta{gap:var(--space-sm);margin-top:var(--space-md);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent-warm);letter-spacing:.04em;align-items:center;display:inline-flex}.project-card__cta-arrow{transition:transform var(--transition-fast)}.project-card:hover .project-card__cta-arrow,.project-card:focus-visible .project-card__cta-arrow{transform:translate(3px)}.project-card--a{gap:var(--space-sm);padding:var(--space-xl) var(--space-lg) var(--space-lg);background:linear-gradient(165deg, color-mix(in srgb, var(--accent) 14%, transparent) 0%, transparent 42%), var(--surface);border-color:color-mix(in srgb, var(--border) 80%, var(--accent));box-shadow:0 0 0 1px color-mix(in srgb, var(--border) 70%, transparent), 0 18px 40px -24px var(--shadow-elev);isolation:isolate}.project-card--a.project-card--featured,.project-card--a.project-card--active{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent), 0 0 40px -14px var(--glow), 0 20px 42px -24px var(--shadow-elev-strong)}.project-card--a:hover{border-color:var(--border-hover);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 50%, transparent), 0 0 48px -12px var(--glow-strong), 0 22px 46px -22px var(--shadow-elev-strong);transform:translateY(-3px)}.project-card__glow{z-index:-1;pointer-events:none;background:radial-gradient(ellipse 70% 60% at 50% 0%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%);opacity:.55;height:70%;transition:opacity var(--transition-normal);position:absolute;inset:-40% -20% auto}.project-card--a:hover .project-card__glow,.project-card--a.project-card--featured .project-card__glow,.project-card--a.project-card--active .project-card__glow{opacity:.9}.project-card__ribbon{margin-bottom:var(--space-sm);display:flex}.project-card--a .project-card__status{text-transform:uppercase;letter-spacing:.08em;border:1px solid color-mix(in srgb, currentColor 22%, transparent);border-radius:var(--radius-pill);padding:4px 12px;font-size:.65rem;font-weight:500}.project-card--a .project-card__title{letter-spacing:-.03em;font-size:clamp(1.4rem,2.4vw,1.75rem);font-weight:650;line-height:1.2}.project-card--a .project-card__tagline{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:0;line-height:1.55}.project-card--a .project-card__stack{padding-top:var(--space-lg);border-top:1px solid color-mix(in srgb, var(--border) 80%, transparent);gap:.4rem}.stack-badge--strong{color:var(--text-primary);background:color-mix(in srgb, var(--bg-subtle) 80%, var(--accent-dim));border-color:color-mix(in srgb, var(--border) 60%, var(--accent))}.project-card--b{gap:var(--space-sm);min-height:11rem;padding:var(--space-md) var(--space-lg);background:color-mix(in srgb, var(--bg) 55%, var(--surface));border-radius:var(--radius-sm);box-shadow:inset 0 0 0 1px var(--border);border-color:#0000}.project-card--b.project-card--featured{min-height:16rem;padding:var(--space-lg);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 5%, transparent), transparent 50%), color-mix(in srgb, var(--bg) 40%, var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 30%, var(--border))}.project-card--b:hover{background:color-mix(in srgb, var(--surface) 90%, var(--accent-dim));box-shadow:inset 0 0 0 1px var(--border-hover);transform:none}.project-card__corners{pointer-events:none;background:linear-gradient(var(--accent), var(--accent)) top left / 12px 1px no-repeat, linear-gradient(var(--accent), var(--accent)) top left / 1px 12px no-repeat, linear-gradient(var(--accent), var(--accent)) top right / 12px 1px no-repeat, linear-gradient(var(--accent), var(--accent)) top right / 1px 12px no-repeat, linear-gradient(var(--accent), var(--accent)) bottom left / 12px 1px no-repeat, linear-gradient(var(--accent), var(--accent)) bottom left / 1px 12px no-repeat, linear-gradient(var(--accent), var(--accent)) bottom right / 12px 1px no-repeat, linear-gradient(var(--accent), var(--accent)) bottom right / 1px 12px no-repeat;opacity:.55;transition:opacity var(--transition-fast);position:absolute;inset:8px}.project-card--b:hover .project-card__corners{opacity:.95}.project-card__b-meta{gap:var(--space-sm);margin-bottom:var(--space-xs);justify-content:space-between;align-items:center;display:flex}.project-card__index{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);letter-spacing:.12em}.project-card--b .project-card__title{letter-spacing:-.02em;font-size:1.1rem;font-weight:600}.project-card--b.project-card--featured .project-card__title{font-size:clamp(1.35rem,2.2vw,1.65rem)}.project-card--b .project-card__tagline{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:0}.project-card--b .project-card__stack{padding-top:var(--space-sm)}.project-card--c{grid-template-columns:1fr;gap:0;padding:0;display:grid;overflow:hidden}@media (width>=36rem){.project-card--c{grid-template-columns:minmax(9rem,38%) 1fr;min-height:11.5rem}}.project-card--c:hover{border-color:var(--border-hover);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent), 0 0 40px -12px var(--glow);transform:none}.project-card__panel{pointer-events:none;background:radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--accent) 32%, transparent), transparent 55%), radial-gradient(circle at 80% 80%, #f2c9a966, transparent 50%), linear-gradient(160deg, var(--panel-deep) 0%, var(--panel-mid) 55%, var(--panel-deep-end) 100%);border-bottom:1px solid var(--border);min-height:8.5rem;transition:transform var(--transition-normal);flex-direction:column;display:flex;position:relative;overflow:hidden}@media (width>=36rem){.project-card__panel{border-right:1px solid var(--border);border-bottom:none;min-height:100%}}.project-card--c:hover .project-card__panel{transform:translateY(-2px)scale(1.01)}.project-card__panel-chrome{gap:5px;padding:.65rem .75rem .35rem;display:flex}.project-card__panel-dot{background:color-mix(in srgb, var(--text-tertiary) 70%, transparent);border-radius:50%;width:7px;height:7px}.project-card__panel-dot:first-child{background:#ff5f57b3}.project-card__panel-dot:nth-child(2){background:#febc2eb3}.project-card__panel-dot:nth-child(3){background:#28c840b3}.project-card__panel-body{gap:var(--space-md);padding:var(--space-md) var(--space-lg) var(--space-lg);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.project-card__monogram{font-family:var(--font-mono);color:var(--accent);letter-spacing:.08em;text-shadow:0 0 18px color-mix(in srgb, var(--accent) 45%, transparent);font-size:1.75rem;font-weight:600}.project-card__panel-lines{flex-direction:column;gap:6px;width:min(100%,7.5rem);display:flex}.project-card__panel-lines span{background:#f5eedf61;border-radius:2px;height:3px;display:block}.project-card__panel-lines span:first-child{width:100%}.project-card__panel-lines span:nth-child(2){width:72%}.project-card__panel-lines span:nth-child(3){background:color-mix(in srgb, var(--accent) 35%, transparent);width:48%}.project-card__body{padding:var(--space-md) var(--space-lg) var(--space-lg);flex-direction:column;display:flex}.project-card--c .project-card__title{font-size:1.15rem}.project-card--c .project-card__tagline{margin-bottom:0}.project-card--c .project-card__stack{padding-top:var(--space-sm)}.project-card--c .project-card__cta{margin-top:var(--space-sm)}.projects-grid--rail{flex-direction:column;gap:0;display:flex}.project-card--d{border:none;border-bottom:1px solid var(--border);box-shadow:none;background:0 0;border-radius:0;flex-direction:row;gap:0;padding:0}.project-card--d:first-child{border-top:1px solid var(--border)}.project-card--d:hover{background:color-mix(in srgb, var(--accent) 4%, transparent);border-color:var(--border);box-shadow:none;transform:none}.project-card__rail{background:color-mix(in srgb, var(--text-tertiary) 45%, transparent);width:3px;transition:background var(--transition-fast), box-shadow var(--transition-fast);flex-shrink:0;align-self:stretch}.project-card--d.project-card--active .project-card__rail,.project-card--d.project-card--featured .project-card__rail,.project-card--d:hover .project-card__rail{background:var(--accent);box-shadow:0 0 18px -2px var(--glow)}.project-card__rail-body{gap:var(--space-sm);min-width:0;padding:var(--space-lg) var(--space-md) var(--space-lg) var(--space-lg);flex-direction:column;flex:1;display:flex}.project-card__kicker{gap:var(--space-md);justify-content:space-between;align-items:center;display:flex}.project-card--d .project-card__status{text-transform:uppercase;letter-spacing:.1em;background:0 0;border-radius:0;padding:0;font-size:.7rem}.project-card--d .project-card__status--active{color:#2f7a3e;background:0 0}.project-card--d .project-card__status--reference{color:var(--text-tertiary);background:0 0}.project-card--d .project-card__status--experimental{color:var(--accent-warm);background:0 0}.project-card__rail-main{gap:var(--space-md);justify-content:space-between;align-items:flex-end;display:flex}.project-card__rail-copy{flex:1;min-width:0}.project-card--d .project-card__title{margin-bottom:var(--space-xs);letter-spacing:-.025em;font-size:clamp(1.2rem,2vw,1.45rem);font-weight:600}.project-card--d .project-card__tagline{max-width:40rem;margin-bottom:var(--space-sm)}.project-card__stack-line{font-family:var(--font-mono);color:var(--text-tertiary);letter-spacing:.02em;margin:0;font-size:.72rem;line-height:1.45}.project-card__cta-arrow--lg{color:var(--text-tertiary);transition:color var(--transition-fast), transform var(--transition-fast);flex-shrink:0;margin-bottom:.15rem;font-size:1.35rem}.project-card--d:hover .project-card__cta-arrow--lg,.project-card--d:focus-visible .project-card__cta-arrow--lg{color:var(--accent-warm);transform:translate(4px)}.projects-grid--dossier{gap:var(--space-md);grid-template-columns:1fr}@media (width>=48rem){.projects-grid--dossier{grid-template-columns:repeat(2,minmax(0,1fr))}}.project-card--e{gap:var(--space-sm);padding:var(--space-md) var(--space-lg) var(--space-lg);font-family:var(--font-mono);background:var(--code-bg);border:1px solid color-mix(in srgb, var(--border) 90%, var(--accent));border-radius:var(--radius-sm);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--accent) 8%, transparent)}.project-card--e:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));box-shadow:inset 0 1px 0 color-mix(in srgb, var(--accent) 14%, transparent), 0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent);transform:none}.project-card__term-bar{gap:var(--space-sm);padding-bottom:var(--space-sm);margin-bottom:var(--space-xs);border-bottom:1px dashed color-mix(in srgb, var(--border) 90%, transparent);justify-content:space-between;align-items:center;display:flex}.project-card__term-prompt{color:var(--accent-deep);text-transform:uppercase;letter-spacing:.14em;font-size:.68rem}.project-card--e .project-card__status{text-transform:uppercase;letter-spacing:.08em;background:0 0;border-radius:0;padding:0;font-size:.68rem}.project-card--e .project-card__status--active,.project-card--e .project-card__status--reference,.project-card--e .project-card__status--experimental{background:0 0}.project-card__term-path{margin:0 0 var(--space-xs);text-overflow:ellipsis;font-family:var(--font-mono);color:var(--text-tertiary);letter-spacing:.02em;white-space:nowrap;font-size:.7rem;overflow:hidden}.project-card--e .project-card__title{font-family:var(--font-sans);letter-spacing:-.02em;font-size:1.2rem;font-weight:600}.project-card--e .project-card__tagline{font-family:var(--font-sans);font-size:var(--text-sm);margin-bottom:0}.project-card__stack-path{margin:var(--space-md) 0 0;color:var(--text-secondary);letter-spacing:.01em;font-size:.72rem;line-height:1.5}.project-card__stack-label{color:var(--text-tertiary);margin-right:.55rem}.project-card__stack-label:after{content:":"}.project-card--e .project-card__cta{padding-top:var(--space-sm);margin-top:var(--space-md);border-top:1px solid color-mix(in srgb, var(--border) 70%, transparent)}.projects-grid--manifest{flex-direction:column;gap:0;display:flex}.project-card--f{gap:var(--space-md);padding:var(--space-xl) 0;border:none;border-bottom:1px solid var(--border);box-shadow:none;background:0 0;border-radius:0;grid-template-columns:minmax(3.5rem,5rem) 1fr;align-items:start;display:grid}.project-card--f:first-child{border-top:1px solid var(--border)}.project-card--f:hover{border-color:var(--border);box-shadow:none;background:0 0;transform:none}.project-card__ghost-index{font-family:var(--font-mono);color:#0000;-webkit-text-stroke:1px color-mix(in srgb, var(--text-tertiary) 55%, transparent);letter-spacing:-.04em;transition:color var(--transition-fast), -webkit-text-stroke-color var(--transition-fast);font-size:clamp(2.25rem,5vw,3.25rem);font-weight:500;line-height:.9}.project-card--f:hover .project-card__ghost-index,.project-card--f:focus-visible .project-card__ghost-index{color:color-mix(in srgb, var(--accent) 18%, transparent);-webkit-text-stroke-color:color-mix(in srgb, var(--accent) 55%, transparent)}.project-card__manifest-body{min-width:0;padding-top:.15rem}.project-card__manifest-top{gap:var(--space-md);margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.project-card--f .project-card__status{text-transform:uppercase;letter-spacing:.12em;background:0 0;border-radius:0;padding:0;font-size:.7rem}.project-card--f .project-card__status--active,.project-card--f .project-card__status--reference,.project-card--f .project-card__status--experimental{background:0 0}.project-card--f .project-card__title{margin-bottom:var(--space-sm);letter-spacing:-.035em;font-size:clamp(1.5rem,3vw,2rem);font-weight:600;line-height:1.15}.project-card--f .project-card__tagline{max-width:36rem;margin-bottom:var(--space-md);font-size:var(--text-md);line-height:1.55}.project-card__stack--plain{gap:0;margin-top:0;padding-top:0}.project-card__stack-item{font-family:var(--font-mono);color:var(--text-tertiary);letter-spacing:.03em;font-size:.75rem;display:inline;position:relative}.project-card__stack-item:not(:last-child):after{color:color-mix(in srgb, var(--text-tertiary) 70%, transparent);content:" / "}.project-card--f .project-card__cta{opacity:.7;transition:opacity var(--transition-fast);margin-top:0}.project-card--f:hover .project-card__cta,.project-card--f:focus-visible .project-card__cta{opacity:1}.project-card--f .project-card__title{background-image:linear-gradient(var(--accent), var(--accent));transition:background-size var(--transition-normal);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px}.project-card--f:hover .project-card__title,.project-card--f:focus-visible .project-card__title{background-size:100% 1px}.stack-badge{font-family:var(--font-mono);color:var(--text-secondary);letter-spacing:.01em;background:var(--bg-subtle);border:1px solid var(--border);border-radius:4px;padding:3px 8px;font-size:.7rem}.section{padding-top:var(--space-2xl);padding-bottom:var(--space-2xl);position:relative}.section__label{margin-bottom:var(--space-lg);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;font-weight:400}.section__heading{margin-bottom:var(--space-lg);font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:-.02em;font-weight:700}.about__content{max-width:40rem}.about__lead{margin-bottom:var(--space-md);color:var(--text-primary);letter-spacing:-.01em;font-size:clamp(1.125rem,2vw,1.3rem);font-weight:500;line-height:1.5}.about__body{margin-bottom:var(--space-md);font-size:var(--text-md);color:var(--text-secondary);line-height:1.7}.about__body:last-of-type{margin-bottom:var(--space-lg)}.about__contact{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-tertiary);letter-spacing:.02em;margin:0;line-height:1.5}.about__contact-link{color:var(--text-secondary);transition:color var(--transition-fast);text-decoration:none}.about__contact-link:hover{color:var(--accent-warm)}.contact-page{max-width:var(--max-width-narrow);margin-inline:auto}.contact-page__header{margin-bottom:var(--space-lg)}.contact-page__title{margin-bottom:var(--space-md)}.contact-page__intro{max-width:36rem;font-size:var(--text-md);color:var(--text-secondary);margin:0;line-height:1.65}.contact-page__form{margin-bottom:var(--space-xl)}.contact-page__elsewhere-label{margin-bottom:var(--space-md)}.contact-page__socials{gap:var(--space-md);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.contact-page__social{gap:var(--space-sm);min-height:2.75rem;color:var(--text-primary);background:color-mix(in srgb, var(--surface) 70%, transparent);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);align-items:center;padding:.55rem .9rem;text-decoration:none;display:inline-flex}.contact-page__social:hover{color:var(--text-primary);background:color-mix(in srgb, var(--accent-warm) 8%, transparent);border-color:var(--border-hover);box-shadow:0 8px 22px -16px var(--shadow-elev)}.contact-page__social-icon{flex-shrink:0}.contact-page__social-text{flex-direction:column;gap:.1rem;line-height:1.2;display:flex}.contact-page__social-name{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.contact-page__social-handle{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.contact-form{gap:var(--space-md);flex-direction:column;max-width:28rem;display:flex;position:relative}.contact-form__fields{gap:var(--space-md);flex-direction:column;display:flex}.contact-form__field{gap:var(--space-xs);flex-direction:column;display:flex}.contact-form__label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.contact-form__input{width:100%;min-height:2.75rem;font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-primary);background:color-mix(in srgb, var(--surface) 70%, transparent);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:.65rem .85rem;line-height:1.4}.contact-form__input:hover{border-color:var(--border-hover)}.contact-form__input:focus{border-color:color-mix(in srgb, var(--accent-warm) 55%, var(--border));box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-warm) 18%, transparent);outline:none}.contact-form__textarea{resize:vertical;min-height:7.5rem;line-height:1.55}.contact-form__hp{white-space:nowrap;clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.contact-form__actions{gap:var(--space-sm) var(--space-md);flex-wrap:wrap;align-items:center;display:flex}.contact-form__actions .btn:disabled{cursor:not-allowed;opacity:.65;transform:none}.contact-form__status{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary);margin:0;line-height:1.45}.contact-form__status[data-kind=ok]{color:var(--accent-deep)}.contact-form__status[data-kind=error]{color:var(--accent-warm)}html[data-theme=dark] .contact-form__status[data-kind=ok],html:not([data-theme=light]):not([data-theme=dark]) .contact-form__status[data-kind=ok]{color:var(--accent)}.stack-page{max-width:var(--max-width-narrow);margin-inline:auto}.stack-page__header{margin-bottom:var(--space-xl)}.stack-page__title{margin-bottom:var(--space-md)}.stack-page__intro{max-width:40rem;margin-bottom:var(--space-md);font-size:var(--text-md);color:var(--text-secondary);line-height:1.65}.stack-focus{padding:var(--space-lg);background:color-mix(in srgb, var(--surface) 88%, transparent);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:0 var(--radius-md) var(--radius-md) 0;box-shadow:0 10px 28px -20px var(--shadow-elev)}.stack-focus--spaced{margin-bottom:var(--space-2xl)}.stack-focus__label{margin-bottom:var(--space-sm)}.stack-focus__text{color:var(--text-primary);font-size:clamp(1.05rem,2vw,1.25rem);font-weight:400;line-height:1.55}.stack-section{margin-bottom:var(--space-2xl)}.stack-section:last-of-type{margin-bottom:var(--space-lg)}.stack-list{flex-direction:column;gap:0;list-style:none;display:flex}.stack-item{padding:var(--space-lg) 0;border-bottom:1px solid var(--border)}.stack-item:first-child{padding-top:0}.stack-item:last-child{border-bottom:none;padding-bottom:0}.stack-item__header{gap:var(--space-sm) var(--space-md);margin-bottom:var(--space-sm);flex-wrap:wrap;align-items:baseline;display:flex}.stack-item__name{color:var(--text-primary);letter-spacing:-.01em;margin:0;font-size:1.125rem;font-weight:600}.stack-item__link{color:inherit;transition:color var(--transition-fast);text-decoration:none}.stack-item__link:hover{color:var(--accent-warm)}.stack-item__type{font-family:var(--font-mono);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-pill);align-items:center;padding:2px 8px;font-size:.7rem;display:inline-flex}.stack-item__type--local{color:var(--accent-deep);background:color-mix(in srgb, var(--accent) 22%, transparent);border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.stack-item__type--exploring{color:var(--accent-warm);background:color-mix(in srgb, var(--accent-warm) 12%, transparent);border-color:color-mix(in srgb, var(--accent-warm) 35%, var(--border))}.stack-item__description{max-width:40rem;color:var(--text-secondary);margin:0;line-height:1.7}.stack-updated{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);letter-spacing:.02em}.case-study{padding-top:var(--space-3xl)}.case-study__header{padding-bottom:var(--space-xl);margin-bottom:var(--space-2xl);border-bottom:1px solid var(--border)}.case-study__link{gap:var(--space-sm);margin-bottom:var(--space-md);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);transition:color var(--transition-fast);align-items:center;text-decoration:none;display:inline-flex}.case-study__link:hover{color:var(--accent-warm)}.case-study__title{margin-bottom:var(--space-sm);font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.03em;font-weight:800;line-height:1.1}.case-study__tagline{font-size:var(--text-md);color:var(--text-secondary);font-weight:400}.case-study__section{margin-bottom:var(--space-xl)}.case-study__section-title{margin-bottom:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent-warm);text-transform:uppercase;letter-spacing:.06em}.case-study__body{color:var(--text-secondary);line-height:1.75}.case-study__lead{color:var(--text-primary);margin-bottom:3rem;font-size:1.25rem;line-height:1.7}.case-study__screenshot{margin-bottom:var(--space-xl);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-glow);overflow:hidden}.case-study__screenshot img{width:100%;height:auto;display:block}.case-study__body p{margin-bottom:var(--space-md)}.case-study__body p:last-child{margin-bottom:0}.case-study__back-to-top{margin-top:var(--space-2xl)}.case-study__stack{gap:var(--space-xs);margin-bottom:var(--space-xl);flex-wrap:wrap;list-style:none;display:flex}.footer{padding-top:var(--space-2xl);padding-bottom:var(--space-2xl);margin-top:var(--space-2xl);border-top:1px solid var(--border)}.footer__inner{gap:var(--space-md);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.footer__text{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary)}.footer__links{gap:var(--space-lg);display:flex}.footer__link{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);transition:color var(--transition-fast);text-decoration:none}.footer__link:hover{color:var(--accent-warm)}.not-found{min-height:60vh}.not-found__inner{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.not-found__heading{margin-bottom:var(--space-sm);font-family:var(--font-display);font-size:var(--text-xl)}.not-found__text{max-width:32rem;margin-bottom:var(--space-lg);color:var(--text-secondary);line-height:1.7}.cta-link{gap:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--accent-warm);transition:gap var(--transition-fast);align-items:center;text-decoration:none;display:inline-flex}.cta-link:hover{gap:var(--space-sm)}.cta-link__arrow{transition:transform var(--transition-fast)}.cta-link:hover .cta-link__arrow{transform:translate(3px)}.articles-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(min(100%,28rem),1fr));display:grid}.articles-empty{font-size:var(--text-md);color:var(--text-tertiary)}.article-card{padding:var(--space-lg);color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), transform var(--transition-normal), box-shadow var(--transition-normal), background var(--transition-fast);flex-direction:column;text-decoration:none;display:flex;box-shadow:0 0 #0000}.article-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.article-card:focus-visible{outline:2px solid var(--accent-deep);outline-offset:3px}.article-card__header{gap:var(--space-xs);margin-bottom:var(--space-sm);flex-direction:column;display:flex}.article-card__title{letter-spacing:-.01em;font-size:1.25rem;font-weight:600}.article-card__date{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);letter-spacing:.02em}.article-card__description{margin-bottom:var(--space-md);font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.article-card__tags{gap:var(--space-xs);padding-top:var(--space-md);flex-wrap:wrap;margin-top:auto;list-style:none;display:flex}.articles-grid--manifest{flex-direction:column;gap:0;display:flex}.article-card--f{gap:var(--space-md);padding:var(--space-xl) 0;border:none;border-bottom:1px solid var(--border);box-shadow:none;background:0 0;border-radius:0;grid-template-columns:minmax(3.5rem,5rem) 1fr;align-items:start;display:grid}.article-card--f:first-child{border-top:1px solid var(--border)}.article-card--f:hover{border-color:var(--border);box-shadow:none;background:0 0;transform:none}.article-card__ghost-index{font-family:var(--font-mono);color:#0000;-webkit-text-stroke:1px color-mix(in srgb, var(--text-tertiary) 55%, transparent);letter-spacing:-.04em;transition:color var(--transition-fast), -webkit-text-stroke-color var(--transition-fast);font-size:clamp(2.25rem,5vw,3.25rem);font-weight:500;line-height:.9}.article-card--f:hover .article-card__ghost-index,.article-card--f:focus-visible .article-card__ghost-index{color:color-mix(in srgb, var(--accent) 18%, transparent);-webkit-text-stroke-color:color-mix(in srgb, var(--accent) 55%, transparent)}.article-card__manifest-body{min-width:0;padding-top:.15rem}.article-card__manifest-top{gap:var(--space-md);margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.article-card--f .article-card__date{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem}.article-card--f .article-card__title{margin-bottom:var(--space-sm);letter-spacing:-.03em;background-image:linear-gradient(var(--accent), var(--accent));transition:background-size var(--transition-normal);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;font-size:clamp(1.35rem,2.6vw,1.75rem);font-weight:600;line-height:1.15}.article-card--f:hover .article-card__title,.article-card--f:focus-visible .article-card__title{background-size:100% 1px}.article-card--f .article-card__description{max-width:38rem;margin-bottom:var(--space-md);font-size:var(--text-md);line-height:1.55}.article-card__cta{gap:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--accent-warm);letter-spacing:.04em;opacity:.85;transition:opacity var(--transition-fast);align-items:center;display:inline-flex}.article-card__cta-arrow{transition:transform var(--transition-fast)}.article-card--f:hover .article-card__cta,.article-card--f:focus-visible .article-card__cta{opacity:1}.article-card--f:hover .article-card__cta-arrow,.article-card--f:focus-visible .article-card__cta-arrow{transform:translate(3px)}.article-card__tags--plain{gap:0;margin-top:0;padding-top:0}.article-card__tag-item{font-family:var(--font-mono);color:var(--text-tertiary);letter-spacing:.03em;font-size:.75rem;display:inline}.article-card__tag-item:not(:last-child):after{color:color-mix(in srgb, var(--text-tertiary) 70%, transparent);content:" / "}.article-detail{padding-top:var(--space-3xl)}.article-detail__header{padding-bottom:var(--space-xl);margin-bottom:var(--space-2xl);border-bottom:1px solid var(--border)}.article-detail__title{margin-top:var(--space-md);margin-bottom:var(--space-md);font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.03em;font-weight:800;line-height:1.1}.article-detail__meta{gap:var(--space-md);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-tertiary);letter-spacing:.02em;flex-wrap:wrap;align-items:center;display:flex}.article-detail__tags{gap:var(--space-xs);flex-wrap:wrap;list-style:none;display:flex}.article-detail__reading-time{color:var(--text-tertiary)}.article-detail__reading-time:before{margin-right:var(--space-md);color:var(--border-hover);content:"·"}.article-detail__body{color:var(--text-secondary);-webkit-overflow-scrolling:touch;line-height:1.75;overflow-x:auto}.article-detail__cta{padding-top:var(--space-xl);margin-top:var(--space-2xl);border-top:1px solid var(--border)}.article-detail__cta-text{margin-bottom:var(--space-md);font-size:var(--text-sm);color:var(--text-secondary)}.article-detail__cta-links{gap:var(--space-lg);flex-wrap:wrap;align-items:center;display:flex}.article-detail__body p,.markdown-content p{margin-bottom:var(--space-md)}.article-detail__body p:last-child,.markdown-content p:last-child{margin-bottom:0}.article-detail__body ul,.article-detail__body ol,.markdown-content ul,.markdown-content ol{margin-bottom:var(--space-md);padding-left:1.35em}.article-detail__body ul,.markdown-content ul{list-style:outside}.article-detail__body ol,.markdown-content ol{list-style:decimal}.article-detail__body li,.markdown-content li{margin-bottom:var(--space-xs)}.article-detail__body li>ul,.article-detail__body li>ol,.markdown-content li>ul,.markdown-content li>ol{margin-top:var(--space-xs);margin-bottom:0}.article-detail__body li>p,.markdown-content li>p{margin-bottom:var(--space-xs)}.article-detail__body li>p:last-child,.markdown-content li>p:last-child{margin-bottom:0}.article-detail__body img{width:100%;max-width:100%;height:auto;margin:0 0 var(--space-lg);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);display:block}.article-detail__body table{width:100%;min-width:40rem;margin:0 0 var(--space-lg);font-family:var(--font-mono);font-size:var(--text-xs);border-collapse:collapse;background:color-mix(in srgb, var(--surface) 80%, transparent);border:1px solid var(--border);border-radius:var(--radius-sm);line-height:1.5}.article-detail__body th,.article-detail__body td{padding:var(--space-sm) var(--space-md);vertical-align:top;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border)}.article-detail__body th{color:var(--text-primary);background:color-mix(in srgb, var(--bg-subtle) 70%, transparent);font-weight:600}.article-detail__body td{color:var(--text-secondary)}.article-detail__body th[align=right],.article-detail__body td[align=right]{text-align:right}.article-detail__body tbody tr:last-child th,.article-detail__body tbody tr:last-child td{border-bottom:0}.article-detail__body :not(pre)>code,.case-study__body :not(pre)>code{font-family:var(--font-mono);color:var(--accent-deep);background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:.15em .4em;font-size:.85em}pre.astro-code{margin:0 0 var(--space-lg);padding:var(--space-md) var(--space-lg);border:1px solid color-mix(in srgb, var(--accent) 22%, var(--panel-deep));border-radius:var(--radius-md);box-shadow:var(--shadow-glow);-webkit-overflow-scrolling:touch;font-size:.85rem;line-height:1.6;overflow-x:auto}.code-block{margin:0 0 var(--space-lg);position:relative}.code-block pre.astro-code{margin:0;padding-right:4.75rem}.code-block__copy{top:var(--space-sm);right:var(--space-sm);font-family:var(--font-mono);color:var(--bg);letter-spacing:.04em;background:color-mix(in srgb, var(--panel-mid) 85%, transparent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:var(--radius-sm);opacity:.85;transition:opacity var(--transition-fast), color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);padding:.3rem .65rem;font-size:.7rem;position:absolute}.code-block:hover .code-block__copy,.code-block__copy:focus-visible{opacity:1}.code-block__copy:hover,.code-block__copy:focus-visible{color:var(--text-primary);background:var(--accent);border-color:var(--accent)}.code-block__copy--copied,.code-block__copy--copied:hover{color:var(--text-primary);background:var(--accent);border-color:var(--accent);opacity:1}.code-block__copy--error,.code-block__copy--error:hover{color:var(--text-primary);background:color-mix(in srgb, #b33a3a 88%, var(--panel-deep));opacity:1;border-color:#e070708c}@media (width<=640px){.nav{gap:var(--space-sm)}.nav__links{gap:var(--space-md);width:100%;padding-top:var(--space-sm);flex-direction:column;order:3;align-items:flex-start;margin-left:0}.nav__toolbar{margin-left:auto}.nav__links .link--icon{min-width:2.25rem;min-height:2.25rem}.js .nav__toggle{display:inline-flex}.js .nav__links{padding:var(--space-sm) 0 0;border-top:0;gap:0;margin:0;display:none}.js .nav.is-open .nav__links{padding-top:var(--space-md);margin-top:var(--space-sm);border-top:1px solid var(--border);align-items:flex-start;display:flex}.js .nav.is-open .nav__links>li{width:100%}.js .nav.is-open .nav__link{width:100%;min-height:2.75rem;padding:var(--space-sm) 0;justify-content:flex-start;align-items:center;display:flex}.js .nav.is-open .nav__links .link--icon{justify-content:flex-start;width:100%;min-width:0}.hero{min-height:auto;padding-top:calc(var(--space-xl) - 15px)}.hero__actions{width:100%}.btn{flex:auto}}[data-astro-cid-5zjnpk7q]::view-transition-old(root),[data-astro-cid-5zjnpk7q]::view-transition-new(root){animation-duration:.25s}
