:root{--ff-ink:#141A1F;--ff-ink-soft:#2A3138;--ff-quiet:#51565E;--ff-paper:#FAFAF7;--ff-paper-raised:#FFFFFF;--ff-rule:#D9D5CC;--ff-accent:#0C5F68;--ff-accent-hover:#0A515A;--ff-spark:#E84A5F;--ff-spark-text:#92192A;--ff-spark-soft:#F8E0E4;--ff-code-bg:#F2EEE5;--ff-code-ink:#1F2A30;--ff-font-display:"Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;--ff-font-body:"Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;--ff-font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ff-fz-base:1.125rem;--ff-fz-small:0.875rem;--ff-fz-meta:0.8125rem;--ff-lh-body:1.65;--ff-lh-heading:1.15;--ff-measure:66ch;--ff-container:min(72rem, 100% - 2rem);--ff-container-narrow:min(46rem, 100% - 2rem);--ff-radius:6px;--ff-radius-lg:14px;--ff-transition:180ms ease;--ff-focus-ring:0 0 0 3px rgba(14, 110, 120, 0.45)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ff-ink:#F2EDE4;--ff-ink-soft:#D5CFC4;--ff-quiet:#9AA1A8;--ff-paper:#0F1316;--ff-paper-raised:#181E22;--ff-rule:#2A3138;--ff-accent:#46C7D2;--ff-accent-hover:#88E0E8;--ff-spark:#FF6B7E;--ff-spark-text:#FF97A4;--ff-spark-soft:rgba(255, 107, 126, 0.18);--ff-code-bg:#1A2025;--ff-code-ink:#E3DCD0;--ff-focus-ring:0 0 0 3px rgba(70, 199, 210, 0.55)}}:root[data-theme=dark]{--ff-ink:#F2EDE4;--ff-ink-soft:#D5CFC4;--ff-quiet:#9AA1A8;--ff-paper:#0F1316;--ff-paper-raised:#181E22;--ff-rule:#2A3138;--ff-accent:#46C7D2;--ff-accent-hover:#88E0E8;--ff-spark:#FF6B7E;--ff-spark-text:#FF97A4;--ff-spark-soft:rgba(255, 107, 126, 0.18);--ff-code-bg:#1A2025;--ff-code-ink:#E3DCD0;--ff-focus-ring:0 0 0 3px rgba(70, 199, 210, 0.55)}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}body{margin:0;min-height:100vh;background:var(--ff-paper);color:var(--ff-ink);font-family:var(--ff-font-body);font-size:var(--ff-fz-base);line-height:var(--ff-lh-body);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--ff-transition),color var(--ff-transition)}img,picture,svg,video{display:block;max-width:100%;height:auto}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}ul,ol{padding-inline-start:1.25em}hr{border:0;border-top:1px solid var(--ff-rule);margin:2.5rem 0}:focus{outline:none}:focus-visible{outline:none;box-shadow:var(--ff-focus-ring);border-radius:var(--ff-radius)}::selection{background:var(--ff-accent);color:var(--ff-paper)}h1,h2,h3,h4,h5,h6{font-family:var(--ff-font-display);font-weight:700;line-height:var(--ff-lh-heading);color:var(--ff-ink);margin:2.25rem 0 .75rem;letter-spacing:-.01em;text-wrap:balance}h1{font-size:2.441rem;letter-spacing:-.02em}h2{font-size:1.953rem}h3{font-size:1.563rem}h4{font-size:1.25rem}h5{font-size:1rem;text-transform:uppercase;letter-spacing:.06em}h6{font-size:.875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ff-quiet)}header+h1,header+h2{margin-top:.5rem}p{margin:0 0 1.15em;max-width:var(--ff-measure);text-wrap:pretty}a{color:var(--ff-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;transition:color var(--ff-transition),text-decoration-color var(--ff-transition)}a:hover,a:focus-visible{color:var(--ff-accent-hover)}strong,b{font-weight:700;color:var(--ff-ink)}em,i{font-style:italic}small{font-size:var(--ff-fz-small);color:var(--ff-quiet)}code,kbd,samp,pre{font-family:var(--ff-font-mono);font-size:.92em}code{background:var(--ff-code-bg);color:var(--ff-code-ink);padding:.12em .4em;border-radius:4px}pre{background:var(--ff-code-bg);color:var(--ff-code-ink);padding:1rem 1.15rem;border-radius:var(--ff-radius);overflow-x:auto;line-height:1.55;margin:1.25rem 0 1.75rem}pre code{background:#fff0;padding:0}blockquote{margin:1.75rem 0;padding:.25rem 0 .25rem 1.25rem;border-left:4px solid var(--ff-spark);color:var(--ff-ink-soft);font-style:italic}blockquote p:last-child{margin-bottom:0}.ff-container{width:var(--ff-container);margin-inline:auto}.ff-container-narrow{width:var(--ff-container-narrow);margin-inline:auto}.ff-skip-link{position:absolute;top:-100px;left:1rem;z-index:100;background:var(--ff-ink);color:var(--ff-paper);padding:.6rem 1rem;border-radius:var(--ff-radius);text-decoration:none;font-weight:600;transition:top var(--ff-transition)}.ff-skip-link:focus{top:1rem;color:var(--ff-paper)}.ff-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ff-header{padding:1.5rem 0 1.25rem;border-bottom:1px solid var(--ff-rule)}.ff-header__inner{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.ff-brand{display:inline-flex;align-items:center;text-decoration:none;color:var(--ff-ink)}.ff-brand:hover,.ff-brand:focus-visible{color:var(--ff-ink)}.ff-brand__logo{height:3.25rem;width:auto;display:block}.ff-brand__logo--light{display:block}.ff-brand__logo--dark{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .ff-brand__logo--light{display:none}:root:not([data-theme=light]) .ff-brand__logo--dark{display:block}}:root[data-theme=dark] .ff-brand__logo--light{display:none}:root[data-theme=dark] .ff-brand__logo--dark{display:block}:root[data-theme=light] .ff-brand__logo--light{display:block}:root[data-theme=light] .ff-brand__logo--dark{display:none}.ff-nav{margin-inline-start:auto}.ff-nav__list{display:flex;gap:1.25rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}.ff-nav__link{text-decoration:none;color:var(--ff-ink-soft);font-weight:500;padding:.35rem .1rem;border-bottom:2px solid #fff0;transition:color var(--ff-transition),border-color var(--ff-transition)}.ff-nav__link:hover,.ff-nav__link:focus-visible,.ff-nav__link[aria-current=page]{color:var(--ff-ink);border-bottom-color:var(--ff-spark)}.ff-theme-toggle{margin-inline-start:.5rem;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:1px solid var(--ff-rule);border-radius:999px;color:var(--ff-ink-soft);transition:color var(--ff-transition),border-color var(--ff-transition),background var(--ff-transition)}.ff-theme-toggle:hover,.ff-theme-toggle:focus-visible{color:var(--ff-ink);border-color:var(--ff-accent);background:var(--ff-paper-raised)}.ff-theme-toggle svg{width:1.1rem;height:1.1rem}.ff-theme-toggle .icon-sun{display:none}.ff-theme-toggle .icon-moon{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .ff-theme-toggle .icon-sun{display:block}:root:not([data-theme=light]) .ff-theme-toggle .icon-moon{display:none}}:root[data-theme=dark] .ff-theme-toggle .icon-sun{display:block}:root[data-theme=dark] .ff-theme-toggle .icon-moon{display:none}:root[data-theme=light] .ff-theme-toggle .icon-sun{display:none}:root[data-theme=light] .ff-theme-toggle .icon-moon{display:block}.ff-footer{margin-top:5rem;padding:2.5rem 0 3rem;border-top:1px solid var(--ff-rule);color:var(--ff-quiet);font-size:var(--ff-fz-small)}.ff-footer__inner{display:flex;flex-direction:column;gap:1rem}.ff-footer__nav ul{list-style:none;padding:0;margin:0;display:flex;gap:1.25rem;flex-wrap:wrap}.ff-footer__nav a{color:var(--ff-quiet);text-decoration:none}.ff-footer__nav a:hover,.ff-footer__nav a:focus-visible{color:var(--ff-accent);text-decoration:underline}.ff-footer__colophon{margin:0}.ff-hero{padding:4rem 0 3.5rem;position:relative}.ff-hero .ff-container::after{content:"";display:block;width:4rem;height:4px;background:var(--ff-spark);margin-top:2rem;border-radius:2px}.ff-hero__eyebrow{display:inline-block;font-family:var(--ff-font-display);font-weight:600;text-transform:uppercase;letter-spacing:.12em;font-size:var(--ff-fz-meta);color:var(--ff-accent);margin-bottom:.75rem}.ff-hero__title{font-size:clamp(2.4rem,5vw + 1rem,4.5rem);line-height:1.05;letter-spacing:-.025em;margin:0 0 1rem;max-width:18ch}.ff-hero__subtitle{font-size:clamp(1.05rem,1vw + .85rem,1.25rem);color:var(--ff-ink-soft);margin:0 0 1.75rem;max-width:48ch;line-height:1.5}.ff-hero__cta{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.4rem;background:var(--ff-ink);color:var(--ff-paper);text-decoration:none;font-weight:600;border-radius:var(--ff-radius);transition:background var(--ff-transition),transform var(--ff-transition)}.ff-hero__cta:hover,.ff-hero__cta:focus-visible{background:var(--ff-accent-hover);color:var(--ff-paper);transform:translateY(-1px)}.ff-hero__cta::after{content:"→";transition:transform var(--ff-transition)}.ff-hero__cta:hover::after{transform:translateX(3px)}.ff-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;font-size:var(--ff-fz-meta);color:var(--ff-quiet);margin-bottom:1rem}.ff-meta time{font-variant-numeric:tabular-nums}.ff-meta__updated{font-style:italic}.ff-readmore{display:inline-block;font-weight:600;color:var(--ff-accent);text-decoration:none}.ff-readmore::after{content:" →"}.ff-featured{padding:3.5rem 0;border-top:1px solid var(--ff-rule)}.ff-featured__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}.ff-featured__grid--text{grid-template-columns:1fr}.ff-featured__kicker{font-size:var(--ff-fz-meta);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ff-spark-text);margin:0 0 .8rem}.ff-featured__title{font-size:clamp(1.9rem,3.5vw,2.9rem);font-weight:800;line-height:1.08;letter-spacing:-.02em;margin:0 0 1rem}.ff-featured__title a{color:var(--ff-ink);text-decoration:none;background-image:linear-gradient(var(--ff-spark),var(--ff-spark));background-size:0 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--ff-transition)}.ff-featured__title a:hover,.ff-featured__title a:focus-visible{background-size:100% 2px}.ff-featured__excerpt{font-size:1.1rem;color:var(--ff-ink-soft);margin:0 0 1.5rem;max-width:46ch}.ff-featured__media{margin:0;border:1px solid var(--ff-rule);border-radius:var(--ff-radius-lg);overflow:hidden;position:relative}.ff-featured__media img{display:block;width:100%;height:auto}.ff-index{padding:3.5rem 0 4.5rem;border-top:1px solid var(--ff-rule)}.ff-index__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:2.5rem}.ff-index__title{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800;letter-spacing:-.02em;margin:0}.ff-index__all{font-weight:600;color:var(--ff-accent);text-decoration:none;white-space:nowrap}.ff-entry{display:grid;grid-template-columns:4.5rem 1fr;gap:1.5rem;align-items:start;padding:1.8rem 0;border-top:1px solid var(--ff-rule)}.ff-entry:last-child{border-bottom:1px solid var(--ff-rule)}.ff-entry__num{font-size:2.6rem;font-weight:800;line-height:1;letter-spacing:-.03em;color:var(--ff-spark);font-variant-numeric:tabular-nums}.ff-entry__title{font-size:clamp(1.3rem,2.4vw,1.75rem);font-weight:700;line-height:1.15;letter-spacing:-.01em;margin:0 0 .6rem}.ff-entry__title a{color:var(--ff-ink);text-decoration:none;background-image:linear-gradient(var(--ff-spark),var(--ff-spark));background-size:0 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--ff-transition)}.ff-entry__title a:hover,.ff-entry__title a:focus-visible{background-size:100% 2px}.ff-entry__desc{margin:.5rem 0 0;color:var(--ff-ink-soft);max-width:60ch}@media(max-width:720px){.ff-featured__grid{grid-template-columns:1fr;gap:1.5rem}.ff-featured__media{order:2}.ff-entry{grid-template-columns:2.8rem 1fr;gap:1rem}.ff-entry__num{font-size:1.7rem}}.ff-post-list{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:2rem}.ff-post-card{display:flex;flex-direction:column;gap:.5rem;padding-bottom:2rem;border-bottom:1px solid var(--ff-rule)}.ff-post-card:last-child{border-bottom:0}.ff-post-card__meta{font-size:var(--ff-fz-meta);color:var(--ff-quiet);display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.ff-post-card__title{margin:.2rem 0 .35rem;font-size:1.6rem;line-height:1.2}.ff-post-card__title a{color:var(--ff-ink);text-decoration:none;background-image:linear-gradient(var(--ff-spark),var(--ff-spark));background-size:0 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--ff-transition)}.ff-post-card__title a:hover,.ff-post-card__title a:focus-visible{background-size:100% 2px;color:var(--ff-ink)}.ff-post-card__excerpt{margin:0;color:var(--ff-ink-soft)}.ff-post-card__readmore{margin-top:.5rem;font-weight:600;text-decoration:none}.ff-post-card__readmore::after{content:" →"}.ff-tags{display:inline-flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:0}.ff-tag{display:inline-block;font-size:var(--ff-fz-meta);padding:.18rem .6rem;border:1px solid var(--ff-rule);border-radius:999px;color:var(--ff-ink-soft);text-decoration:none;transition:border-color var(--ff-transition),color var(--ff-transition),background var(--ff-transition)}.ff-tag:hover,.ff-tag:focus-visible{border-color:var(--ff-spark-text);color:var(--ff-spark-text);background:var(--ff-spark-soft)}.ff-tag::before{content:"#";opacity:.6;margin-right:.05rem}.page-nav{display:flex;gap:1rem;margin:3rem 0 0;align-items:center;font-weight:600}.page-nav a{text-decoration:none;color:var(--ff-accent)}.page-nav a:hover,.page-nav a:focus-visible{color:var(--ff-accent-hover)}.page-nav .next{margin-inline-start:auto}.page-nav span{color:var(--ff-quiet)}.page-nav .prev::before{content:"← "}.page-nav .next::after{content:" →"}.ff-article{margin:2.5rem auto 0;width:var(--ff-container-narrow)}.ff-article__header{margin-bottom:2rem}.ff-article__eyebrow{font-family:var(--ff-font-display);font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:var(--ff-fz-meta);color:var(--ff-accent);margin-bottom:.5rem}.ff-article__title{margin:0 0 .85rem;font-size:clamp(2rem,3vw + 1rem,2.85rem)}.ff-article__meta{display:flex;gap:1rem;flex-wrap:wrap;color:var(--ff-quiet);font-size:var(--ff-fz-meta);align-items:center}.ff-article__cover{margin:1.75rem 0;border-radius:var(--ff-radius-lg);overflow:hidden}.ff-article__cover img{width:100%;height:auto}.ff-article__body figure{margin:1.75rem 0}.ff-article__body figcaption{margin-top:.5rem;font-size:var(--ff-fz-small);color:var(--ff-quiet);text-align:center}.ff-article__body img,.ff-article__body picture{border-radius:var(--ff-radius)}.ff-article__body ul,.ff-article__body ol{max-width:var(--ff-measure)}.ff-article__body li+li{margin-top:.4rem}.ff-article__body table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.95em}.ff-article__body th,.ff-article__body td{padding:.6rem .8rem;border-bottom:1px solid var(--ff-rule);text-align:start}.ff-article__body thead th{border-bottom-width:2px;color:var(--ff-ink)}.ff-article__footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--ff-rule)}.ff-article__nav{margin-top:2rem}.footnote-ref{text-decoration:none;font-weight:600;color:var(--ff-accent);padding:0 .15em}.footnote-ref:hover,.footnote-ref:focus-visible{text-decoration:underline}.footnotes{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--ff-rule);font-size:var(--ff-fz-small);color:var(--ff-quiet)}.footnotes hr{display:none}.footnotes ol{max-width:var(--ff-measure);padding-left:1.25rem}.footnotes li{margin-top:.5rem}.footnotes li p{margin:0}.footnotes li:target{background:var(--ff-spark-soft);border-radius:var(--ff-radius);padding:.3rem .5rem;margin-left:-.5rem}.footnote-backref{text-decoration:none;margin-left:.4em;color:var(--ff-accent)}.footnote-backref:hover,.footnote-backref:focus-visible{text-decoration:underline}#toc{margin:2rem 0 2.5rem;padding:1.25rem 1.5rem;background:var(--ff-paper-raised);border:1px solid var(--ff-rule);border-radius:var(--ff-radius-lg);font-size:var(--ff-fz-small)}#toc ul{list-style:none;margin:0;padding-left:0}#toc ul ul{padding-left:1.1rem;margin-top:.3rem}#toc li{margin:.3rem 0}#toc a{text-decoration:none;color:var(--ff-ink-soft);transition:color var(--ff-transition)}#toc a:hover,#toc a:focus-visible{color:var(--ff-accent);text-decoration:underline}#toc .toc-level-3{font-size:.95em}.ff-article__body dl{margin:2rem 0}.ff-article__body dt{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--ff-rule);font-size:1.3rem;font-weight:700;line-height:1.2;letter-spacing:-.01em;color:var(--ff-ink)}.ff-article__body dl>dt:first-child{margin-top:0;padding-top:0;border-top:0}.ff-article__body dd{margin:.4rem 0 0;color:var(--ff-ink-soft);max-width:var(--ff-measure)}.ff-article__body dt a{color:var(--ff-ink);text-decoration:none;background-image:linear-gradient(var(--ff-spark),var(--ff-spark));background-size:0 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--ff-transition)}.ff-article__body dt a:hover,.ff-article__body dt a:focus-visible{background-size:100% 2px}@media print{:root{--ff-paper:#fff;--ff-ink:#000;--ff-accent:#000}.ff-header,.ff-footer,.ff-theme-toggle,.ff-skip-link{display:none}body{font-size:11pt}a{color:#000;text-decoration:underline}}