.fn-index{max-width:1280px;margin:0 auto;padding:clamp(72px,10vh,120px) clamp(20px,5vw,56px) clamp(48px,6vh,80px);color:var(--fg)}.fn-mast{margin-bottom:clamp(56px,8vh,96px)}.fn-mast__rule{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;border-top:1px solid var(--border-full);border-bottom:1px solid var(--border-full);padding:10px 0;font-family:var(--font-mono,ui-monospace);font-size:10px;letter-spacing:.22em;color:color-mix(in oklch,var(--fg) 70%,transparent)}.fn-mast__motto{color:color-mix(in oklch,var(--fg) 55%,transparent)}.fn-mast__wordmark{position:relative;margin:clamp(20px,4vh,40px) 0 clamp(24px,4vh,36px);display:flex;align-items:baseline;gap:clamp(16px,3vw,36px);font-family:var(--font-display,var(--font-serif),Georgia,serif);font-size:clamp(80px,18vw,220px);line-height:.85;letter-spacing:-.03em;font-weight:400;font-style:italic}.fn-mast__word{color:var(--fg)}.fn-mast__word--alt{color:var(--fg);font-style:normal}.fn-mast__dot{display:inline-block;width:clamp(16px,2.4vw,28px);height:clamp(16px,2.4vw,28px);border-radius:50%;background:var(--red);align-self:center;margin-bottom:.18em;animation:fn-mast-pulse 2.4s ease-in-out infinite}@keyframes fn-mast-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.78);opacity:.6}}@media (prefers-reduced-motion:reduce){.fn-mast__dot{animation:none}}.fn-mast__bottom{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(24px,4vw,64px);border-top:1px solid var(--border-full);padding-top:22px}@media (max-width:800px){.fn-mast__bottom{grid-template-columns:1fr}}.fn-mast__standfirst{font-size:clamp(18px,1.8vw,24px);line-height:1.4;margin:0;max-width:36ch;color:color-mix(in oklch,var(--fg) 88%,transparent)}.fn-mast__standfirst em{font-style:italic;font-family:var(--font-display,var(--font-serif),Georgia,serif);color:var(--red)}.fn-mast__index{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0;align-self:end}.fn-mast__index-link{display:flex;align-items:baseline;gap:10px;padding:10px 0;border-top:1px solid color-mix(in oklch,var(--fg) 14%,transparent);text-decoration:none;color:var(--fg);font-size:14px;letter-spacing:.01em;transform:translateX(0);transition:color .15s ease,transform .2s ease}.fn-mast__index-link:hover{color:var(--red);transform:translateX(6px)}.fn-mast__index-num{font-family:var(--font-display,var(--font-serif),Georgia,serif);font-style:italic;font-size:16px;color:color-mix(in oklch,var(--fg) 55%,transparent);width:22px}.fn-mast__index-link:hover .fn-mast__index-num{color:var(--red)}.fn-cover{position:relative;display:block;background:var(--fg);color:var(--bg);padding:clamp(32px,6vw,80px) clamp(28px,5vw,64px);margin-bottom:clamp(56px,8vh,96px);text-decoration:none;overflow:hidden;isolation:isolate;transition:transform .3s cubic-bezier(.2,.7,.25,1)}.fn-cover:hover{transform:translateY(-2px)}.fn-cover__inner{position:relative;z-index:2;display:grid;grid-template-rows:auto auto auto auto auto;gap:18px;max-width:920px}.fn-cover__rail{display:flex;flex-wrap:wrap;gap:18px 28px;font-family:var(--font-mono,ui-monospace);font-size:10px;letter-spacing:.22em;color:color-mix(in oklch,var(--bg) 70%,transparent)}.fn-cover__serial{color:var(--red)}.fn-cover__cat{padding:2px 10px;border:1px solid color-mix(in oklch,var(--bg) 40%,transparent)}.fn-cover__kicker{margin:4px 0 0;font-style:italic;font-size:clamp(14px,1.2vw,18px);color:color-mix(in oklch,var(--bg) 70%,transparent)}.fn-cover__kicker,.fn-cover__title{font-family:var(--font-display,var(--font-serif),Georgia,serif)}.fn-cover__title{font-size:clamp(36px,6.2vw,88px);line-height:.98;letter-spacing:-.025em;font-weight:400;margin:0;max-width:18ch;color:var(--bg)}.fn-cover__pull{font-size:clamp(16px,1.6vw,22px);line-height:1.45;color:color-mix(in oklch,var(--bg) 82%,transparent);margin:0;max-width:54ch}.fn-cover__cta{display:inline-flex;align-items:center;gap:14px;margin-top:12px;font-family:var(--font-mono,ui-monospace);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--bg)}.fn-cover__cta-label{border-bottom:1px solid var(--bg);padding-bottom:3px}.fn-cover__cta-arrow{display:inline-block;font-size:18px;letter-spacing:0;transform:translateX(0);transition:transform .25s cubic-bezier(.2,.7,.25,1)}.fn-cover:hover .fn-cover__cta-arrow{transform:translateX(8px)}.fn-cover__crosshairs{position:absolute;inset:0;pointer-events:none;z-index:1}.fn-cover__cross-h,.fn-cover__cross-v{position:absolute;background:color-mix(in oklch,var(--bg) 14%,transparent)}.fn-cover__cross-h{left:0;right:0;top:50%;height:1px}.fn-cover__cross-v{top:0;bottom:0;right:clamp(28px,5vw,64px);width:1px}.fn-section{margin-bottom:clamp(56px,8vh,100px)}.fn-section__head{display:grid;grid-template-columns:clamp(72px,9vw,124px) 1fr auto;align-items:baseline;gap:clamp(16px,3vw,32px);border-top:1px solid var(--border-full);padding-top:24px;margin-bottom:28px}.fn-section__numeral{font-family:var(--font-display,var(--font-serif),Georgia,serif);font-style:italic;font-size:clamp(48px,8vw,96px);line-height:1;letter-spacing:-.02em;color:var(--red);align-self:start}.fn-section__head-text{display:flex;flex-direction:column;gap:6px}.fn-section__title{font-size:clamp(24px,3vw,36px);line-height:1.1;letter-spacing:-.015em;font-weight:500;margin:0}.fn-section__intro{margin:0;font-family:var(--font-display,var(--font-serif),Georgia,serif);font-style:italic;font-size:clamp(15px,1.4vw,18px);line-height:1.4;color:color-mix(in oklch,var(--fg) 65%,transparent);max-width:42ch}.fn-section__count{align-self:start;font-family:var(--font-mono,ui-monospace);font-size:10px;letter-spacing:.22em;color:color-mix(in oklch,var(--fg) 55%,transparent)}@media (max-width:700px){.fn-section__head{grid-template-columns:64px 1fr}.fn-section__count{display:none}}.fn-section__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border-full);border-left:1px solid var(--border-full)}@media (max-width:1100px){.fn-section__grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.fn-section__grid{grid-template-columns:1fr}}.fn-card{border-right:1px solid var(--border-full);border-bottom:1px solid var(--border-full);position:relative;background:var(--bg);transition:background-color .2s ease}.fn-card--feature{grid-column:span 2}@media (max-width:1100px){.fn-card--feature{grid-column:span 2}}@media (max-width:640px){.fn-card--feature{grid-column:auto}}.fn-card__link{display:flex;flex-direction:column;gap:18px;padding:clamp(20px,2.5vw,32px);text-decoration:none;color:inherit;height:100%;min-height:220px;position:relative}.fn-card--feature .fn-card__link{min-height:280px;gap:20px}.fn-card:hover{background-color:var(--bg-surface)}.fn-card__rail{display:flex;justify-content:space-between;font-family:var(--font-mono,ui-monospace);font-size:10px;letter-spacing:.22em;color:color-mix(in oklch,var(--fg) 55%,transparent);text-transform:uppercase}.fn-card__serial{color:var(--red)}.fn-card__title{font-size:clamp(17px,1.6vw,20px);line-height:1.18;letter-spacing:-.01em;font-weight:500;margin:0}.fn-card--feature .fn-card__title{font-family:var(--font-display,var(--font-serif),Georgia,serif);font-size:clamp(22px,2.6vw,32px);line-height:1.05;letter-spacing:-.02em;font-weight:400}.fn-card__dek{font-size:15px;line-height:1.5;color:color-mix(in oklch,var(--fg) 72%,transparent);margin:0}.fn-card__foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:14px;font-family:var(--font-mono,ui-monospace);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:color-mix(in oklch,var(--fg) 55%,transparent)}.fn-card__arrow{font-size:16px;color:var(--red);transform:translateX(0);transition:transform .2s cubic-bezier(.2,.7,.25,1);letter-spacing:0}.fn-card:hover .fn-card__arrow{transform:translateX(6px)}.fn-colophon{margin-top:clamp(64px,8vh,96px);border-top:1px solid var(--border-full);padding-top:clamp(36px,5vh,56px)}.fn-colophon__inner{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(24px,4vw,48px);align-items:end}@media (max-width:800px){.fn-colophon__inner{grid-template-columns:1fr}}.fn-colophon__motto{margin:0;font-size:clamp(15px,1.4vw,18px);line-height:1.55;color:color-mix(in oklch,var(--fg) 78%,transparent);max-width:56ch}.fn-colophon__motto em{font-family:var(--font-display,var(--font-serif),Georgia,serif);font-style:italic;color:var(--fg)}.fn-colophon__motto strong{font-weight:500}.fn-colophon__cta{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-display,var(--font-serif),Georgia,serif);font-style:italic;font-size:clamp(20px,2.2vw,28px);color:var(--red);text-decoration:none;border-bottom:1px solid var(--red);padding-bottom:4px;align-self:end;justify-self:start;transition:gap .2s ease}.fn-colophon__cta:hover{gap:22px}.fn-colophon__rule{display:flex;justify-content:space-between;margin-top:clamp(36px,5vh,56px);padding-top:12px;border-top:1px solid var(--border-full);font-family:var(--font-mono,ui-monospace);font-size:10px;letter-spacing:.22em;color:color-mix(in oklch,var(--fg) 50%,transparent)}.fn-page{background:var(--bg);color:var(--fg);min-height:100vh}.fn-article{max-width:740px;margin:0 auto;padding:clamp(80px,12vh,140px) clamp(20px,5vw,40px) clamp(80px,10vh,120px)}.fn-article__header{margin-bottom:36px}.fn-article__crumbs{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono,ui-monospace);font-size:10px;letter-spacing:.22em;color:color-mix(in oklch,var(--fg) 55%,transparent);margin-bottom:28px}.fn-article__crumb{color:inherit;text-decoration:none}.fn-article__crumb--cat,.fn-article__crumb:hover{color:var(--red)}.fn-article__title{font-size:clamp(32px,5.5vw,60px);line-height:1.05;letter-spacing:-.02em;font-weight:500;margin:0 0 20px}.fn-article__dek{font-size:clamp(18px,2vw,22px);line-height:1.45;color:color-mix(in oklch,var(--fg) 75%,transparent);margin:0 0 28px;max-width:32ch}.fn-article__meta{display:flex;flex-wrap:wrap;gap:10px;font-family:var(--font-mono,ui-monospace);font-size:11px;letter-spacing:.18em;color:color-mix(in oklch,var(--fg) 55%,transparent)}.fn-article__rule{border:0;border-top:1px solid var(--border-full);margin:0 0 32px}.fn-tldr{display:grid;grid-template-columns:80px 1fr;gap:16px;padding:18px 0 24px;margin:0 0 36px;border-bottom:1px solid color-mix(in oklch,var(--fg) 14%,transparent)}.fn-tldr__label{font-family:var(--font-mono,ui-monospace);font-size:10px;letter-spacing:.22em;color:var(--red);padding-top:4px}.fn-tldr__body{font-size:16px;line-height:1.55;color:color-mix(in oklch,var(--fg) 85%,transparent)}.fn-tldr__body p{margin:0}@media (max-width:600px){.fn-tldr{grid-template-columns:1fr;gap:6px}}.fn-prose{font-size:clamp(16px,1.05vw,18px);line-height:1.65;color:color-mix(in oklch,var(--fg) 92%,transparent)}.fn-prose>*+*{margin-top:1.1em}.fn-prose h2{font-size:clamp(22px,2.5vw,30px);line-height:1.2;letter-spacing:-.01em;margin-top:2em;margin-bottom:.4em}.fn-prose h2,.fn-prose h3{font-weight:500;color:var(--fg)}.fn-prose h3{font-size:clamp(18px,1.6vw,22px);line-height:1.3;margin-top:1.6em;margin-bottom:.3em}.fn-prose h2+p,.fn-prose h3+p{margin-top:.4em}.fn-prose p{margin:0}.fn-prose ol,.fn-prose ul{padding-left:1.4em;margin-left:0}.fn-prose ol li,.fn-prose ul li{margin-top:.4em}.fn-prose ul{list-style:none;padding-left:0}.fn-prose ul>li{position:relative;padding-left:1.6em}.fn-prose ul>li:before{content:"";position:absolute;left:0;top:.7em;width:8px;height:1px;background:currentColor;opacity:.5}.fn-prose blockquote{margin:1.4em 0;padding:0 0 0 24px;border-left:1px solid color-mix(in oklch,var(--fg) 30%,transparent);font-style:italic;color:color-mix(in oklch,var(--fg) 80%,transparent)}.fn-prose strong{font-weight:600;color:var(--fg)}.fn-prose em{font-style:italic}.fn-prose code{font-family:var(--font-mono,ui-monospace);font-size:.92em;padding:2px 6px;background:var(--bg-surface);border:1px solid color-mix(in oklch,var(--fg) 12%,transparent)}.fn-prose a{color:var(--red);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.fn-prose hr{border:0;border-top:1px solid color-mix(in oklch,var(--fg) 14%,transparent);margin:2em 0}.fn-prose .fn-callout{border:1px solid var(--border-full);padding:18px 22px;margin:1.6em 0}.fn-prose .fn-callout__label{font-family:var(--font-mono,ui-monospace);font-size:10px;letter-spacing:.22em;color:var(--red);display:block;margin-bottom:6px}.fn-prose .fn-pullquote{font-size:clamp(20px,2.4vw,28px);line-height:1.3;font-weight:500;letter-spacing:-.01em;margin:1.6em 0;padding-left:0;color:var(--fg);border:0;font-style:normal}.fn-prose .fn-pullquote:before{content:"—";display:inline-block;margin-right:12px;color:var(--red);font-style:normal}.fn-diagram{margin:2em 0}.fn-diagram__frame{border:1px solid var(--border-full);padding:20px clamp(14px,2vw,28px);background:var(--bg-surface)}.fn-diagram__frame svg{width:100%;height:auto;display:block}.fn-diagram__caption{margin-top:10px;font-family:var(--font-mono,ui-monospace);font-size:11px;letter-spacing:.18em;color:color-mix(in oklch,var(--fg) 55%,transparent)}.fn-compare{display:grid;grid-template-columns:1fr 1fr;gap:0}.fn-compare__col+.fn-compare__col{border-left:1px solid color-mix(in oklch,var(--fg) 14%,transparent)}.fn-compare__col{padding:0 16px}.fn-compare__head{font-family:var(--font-mono,ui-monospace);font-size:10px;letter-spacing:.22em;color:var(--red);padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid color-mix(in oklch,var(--fg) 14%,transparent)}.fn-compare__row{display:flex;justify-content:space-between;gap:16px;padding:8px 0;font-size:14px}.fn-compare__label{color:color-mix(in oklch,var(--fg) 65%,transparent)}.fn-compare__value{font-weight:500;text-align:right}.fn-compare__value--emph{color:var(--red)}.fn-shotlist{font-family:var(--font-mono,ui-monospace);font-size:12px}.fn-shotlist__head,.fn-shotlist__row{display:grid;grid-template-columns:40px 80px 1fr 56px;gap:12px;padding:10px 0;align-items:baseline}.fn-shotlist__head{border-bottom:1px solid color-mix(in oklch,var(--fg) 30%,transparent);font-size:10px;letter-spacing:.22em;color:var(--red)}.fn-shotlist__row{border-bottom:1px solid color-mix(in oklch,var(--fg) 12%,transparent)}.fn-shotlist__num{color:color-mix(in oklch,var(--fg) 50%,transparent)}.fn-shotlist__type{letter-spacing:.05em;text-transform:uppercase;font-size:10px}.fn-shotlist__desc{font-family:var(--font-display,var(--font-sans,ui-sans-serif));font-size:14px}.fn-shotlist__dur{color:color-mix(in oklch,var(--fg) 50%,transparent)}@media (max-width:600px){.fn-shotlist__head,.fn-shotlist__row{grid-template-columns:30px 1fr 50px}.fn-shotlist__head>:nth-child(2),.fn-shotlist__row .fn-shotlist__type{display:none}}.fn-faq{margin:3em 0 0;padding-top:28px;border-top:1px solid var(--border-full)}.fn-faq__head{font-size:clamp(20px,2.2vw,26px);font-weight:500;letter-spacing:-.01em;margin:0 0 24px}.fn-faq__list{display:flex;flex-direction:column;gap:22px;margin:0}.fn-faq__item{padding-bottom:22px;border-bottom:1px solid color-mix(in oklch,var(--fg) 12%,transparent)}.fn-faq__item:last-child{padding-bottom:0;border-bottom:0}.fn-faq__q{font-size:16px;font-weight:500;color:var(--fg);margin-bottom:8px}.fn-faq__a{font-size:15px;line-height:1.6;color:color-mix(in oklch,var(--fg) 80%,transparent);margin:0}.fn-cta{margin:56px 0 24px;padding:32px 0 28px;border-top:2px solid var(--fg);border-bottom:1px solid var(--border-full)}.fn-cta__rule{display:none}.fn-cta__body{margin-bottom:18px}.fn-cta__context{font-size:16px;line-height:1.5;color:color-mix(in oklch,var(--fg) 78%,transparent);max-width:48ch;margin:0 0 14px}.fn-cta__link{display:inline-flex;align-items:center;gap:12px;font-size:clamp(20px,2.2vw,26px);font-weight:500;letter-spacing:-.01em;color:var(--red);text-decoration:none;border-bottom:1px solid var(--red);padding-bottom:4px;transition:gap .2s ease}.fn-cta__link:hover{gap:18px}.fn-cta__arrow{color:var(--red)}.fn-cta__tag{letter-spacing:.22em}.fn-article__tagstrip,.fn-cta__tag{font-family:var(--font-mono,ui-monospace);font-size:10px;color:color-mix(in oklch,var(--fg) 50%,transparent)}.fn-article__tagstrip{display:flex;flex-wrap:wrap;gap:8px 14px;letter-spacing:.18em}.fn-article__tag:before{content:""}.fn-article__crumbs,.fn-article__meta,.fn-card__foot,.fn-card__head,.fn-compare__head,.fn-diagram__caption,.fn-index__featured-cta,.fn-index__featured-rail,.fn-index__filter,.fn-shotlist__head,.fn-tldr__label{text-transform:uppercase}