:root{color-scheme:light dark;--navy: #00294f;--blue: #0a3d6b;--red: #dc2521;--dark-red: #a01d1a;--off-white: #f8f8f8;--paper: #f4ecdc;--paper-deep: #eadfc8;--paper-edge: #e2d4b8;--ink: #00294f;--ink-soft: #3c4a5e;--ink-faint: #5c6673;--rule: #bfaa89;--rule-soft: rgba(191, 170, 137, .45);--water: #cfe0ea;--seal: var(--red);--seal-ink: var(--dark-red);--rating-green: #34c759;--rating-yellow: #ffcc00;--rating-red: #ff3b30;--rating-green-ink: #217a3c;--rating-yellow-ink: #946000;--rating-red-ink: var(--dark-red);--rating-green-rgb: 52 199 89;--rating-yellow-rgb: 255 204 0;--rating-red-rgb: 255 59 48;--brand: var(--ink);--brand-hover: var(--blue);--link: var(--blue);--bg: var(--paper);--bg-elevated: #faf5ea;--label: var(--ink);--label-secondary: var(--ink-soft);--label-tertiary: var(--ink-faint);--separator: var(--rule-soft);--fill: rgba(0, 41, 79, .1);--fill-secondary: rgba(0, 41, 79, .08);--fill-tertiary: rgba(0, 41, 79, .06);--glass: rgba(250, 245, 234, .82);--glass-edge: var(--rule-soft);--bar: rgba(244, 236, 220, .86);--shadow: 0 10px 30px -12px rgba(0, 41, 79, .35);--r-hero: 6px;--r-card: 6px;--r-button: 4px;--r-control: 4px;--r-strip: 3px;--measure: 62ch;--page: 1120px;--font-display: "SFC Mackerel", "Courier New", Courier, monospace;--font-text: "SFC Mackerel", "Courier New", Courier, monospace;--font-sans: var(--font-text);--font-rounded: var(--font-display);--font-mono: "Courier New", Courier, "SF Mono", Menlo, monospace}@font-face{font-family:SFC Mackerel;src:url(/fonts/SFCMackerel.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@media(prefers-color-scheme:dark){:root{--paper: #0b1a2e;--paper-deep: #08131f;--paper-edge: #1a2c45;--ink: #f1e9d6;--ink-soft: #c7bfae;--ink-faint: #8e8a80;--rule: #3b4a63;--rule-soft: rgba(120, 140, 170, .35);--water: #14304a;--seal-ink: #f08c87;--rating-green: #30d158;--rating-yellow: #ffd60a;--rating-red: #ff453a;--rating-green-ink: #30d158;--rating-yellow-ink: #ffd60a;--rating-red-ink: #ff453a;--rating-green-rgb: 48 209 88;--rating-yellow-rgb: 255 214 10;--rating-red-rgb: 255 69 58;--brand: var(--ink);--brand-hover: #ffffff;--link: #9cc4ec;--bg: var(--paper);--bg-elevated: #112543;--label: var(--ink);--label-secondary: var(--ink-soft);--label-tertiary: var(--ink-faint);--separator: var(--rule-soft);--fill: rgba(241, 233, 214, .12);--fill-secondary: rgba(241, 233, 214, .1);--fill-tertiary: rgba(241, 233, 214, .07);--glass: rgba(17, 37, 67, .82);--glass-edge: var(--rule-soft);--bar: rgba(11, 26, 46, .86);--shadow: 0 10px 30px -12px rgba(0, 0, 0, .7)}}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-text);font-size:1.0625rem;line-height:1.55;color:var(--ink);background:radial-gradient(120% 80% at 50% 0%,rgba(255,255,255,.25),transparent 60%),radial-gradient(90% 60% at 50% 100%,rgba(0,41,79,.06),transparent 70%),var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}@media(prefers-color-scheme:dark){body{background:radial-gradient(120% 80% at 50% 0%,rgba(255,255,255,.04),transparent 60%),var(--paper)}}h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.08;color:var(--ink);margin:0 0 .5em;text-wrap:balance;letter-spacing:-.005em;font-variation-settings:"opsz" 144,"SOFT" 30}h1{font-size:clamp(2.9rem,7vw,4.6rem);font-weight:500}h2{font-size:clamp(2.2rem,4.2vw,3rem);margin-top:1.5em}h3{font-size:1.6rem;font-weight:600;margin-top:1.4em;font-variation-settings:"opsz" 48}p,li{max-width:var(--measure)}a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--brand-hover)}strong{font-weight:600}em{font-style:italic}code{font-family:var(--font-mono);font-size:.85em;background:var(--fill-tertiary);padding:.1em .35em;border-radius:3px}hr{border:0;border-top:1px solid var(--rule);margin:2.5rem 0}:focus-visible{outline:2px solid var(--seal);outline-offset:3px}::selection{background:#dc252138}.wrap{max-width:var(--page);margin:0 auto;padding:0 20px}.prose{max-width:var(--measure);margin:0 auto;padding:3rem 20px 5rem}.prose h1{font-size:clamp(2.6rem,6vw,3.5rem)}.prose--fine{font-size:.9rem;line-height:1.5;max-width:72ch}.prose--fine h1{font-size:clamp(1.8rem,4vw,2.3rem)}.prose--fine h2{font-size:1.3rem;margin-top:2.2em}.prose--fine h3{font-size:1.05rem}.prose--fine .lede{font-size:1rem;line-height:1.5}.prose--fine .meta{font-size:.8rem}.prose--fine p,.prose--fine li{max-width:none}.chapter{padding:.5rem 20px 1rem;scroll-margin-top:4.5rem}.anchor{display:block;position:relative;top:-4.5rem;visibility:hidden}.chapter h2{margin-top:.35rem;margin-bottom:.4rem}.chapter .lede{margin-top:0}.chapter-cta{margin-top:1.5rem}.chapter--split{display:grid;gap:3rem;align-items:center;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media(max-width:860px){.chapter--split{grid-template-columns:1fr;gap:2rem}}.annotations{display:grid;gap:1.5rem 2.5rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:2rem 0 0}.annotations>div{border-top:1px solid var(--ink);padding-top:.75rem}.annotations dt{font-family:var(--font-display);font-weight:600;font-size:1.15rem;margin-bottom:.3rem;font-variation-settings:"opsz" 48}.annotations dd{margin:0;color:var(--ink-soft);font-size:1.05rem;max-width:34ch}.site-header{position:sticky;top:0;z-index:10;background:var(--navy);color:var(--off-white);border-bottom:1px solid rgba(0,0,0,.25)}.site-header .wrap{display:flex;align-items:center;gap:1.75rem;min-height:78px;flex-wrap:nowrap}.site-header nav{display:flex;gap:1.4rem;margin-left:auto;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.site-header nav::-webkit-scrollbar{display:none}.site-header nav a{white-space:nowrap;color:var(--off-white);text-decoration:none;font-family:var(--font-display);font-size:1.4rem;font-weight:400;font-synthesis:none;-webkit-text-stroke:.035em currentColor;paint-order:stroke fill;letter-spacing:.03em;padding-bottom:2px;border-bottom:1px solid transparent}.site-header nav a:hover,.site-header nav a[aria-current=page]{border-bottom-color:var(--seal);color:#fff}.site-header .brand,.site-header .brand:hover{color:var(--off-white)}@media(max-width:480px){.site-header .wrap{gap:.75rem;min-height:60px}.site-header nav{gap:1rem}.site-header nav .nav-pro{display:none}.site-header nav a{font-size:1.05rem}.site-header .brand .brand-name{display:none}.site-header .brand img{width:36px;height:36px}}.brand{flex:0 0 auto;display:inline-flex;align-items:center;gap:.6rem;color:var(--ink);text-decoration:none;font-family:var(--font-display);font-weight:400;font-synthesis:none;font-size:2.3rem;line-height:1;letter-spacing:.01em;-webkit-text-stroke:.035em currentColor;paint-order:stroke fill}.brand img{width:44px;height:44px;border-radius:7px;box-shadow:0 1px 2px #00000040}.brand .brand-name{display:inline-flex;flex-direction:column;gap:3px}.brand .brand-name:after{content:"";display:block;height:2px;width:44%;background:var(--seal)}.brand:hover{color:var(--ink)}.brand--light{color:var(--off-white)}.site-footer{margin-top:5rem;padding:2.5rem 0 3.5rem;color:var(--ink-soft);font-size:.95rem;border-top:1px solid var(--rule);position:relative}.site-footer .wrap{display:grid;gap:1rem;justify-items:center;text-align:center}.site-footer .wheel{width:44px;height:44px;color:var(--ink);opacity:.85}.site-footer nav{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center}.site-footer a{color:var(--ink-soft);text-decoration:none;font-family:var(--font-display);font-size:.9rem;font-variation-settings:"opsz" 14}.site-footer a:hover{color:var(--ink);text-decoration:underline}.site-footer-notice{margin:.5rem auto 0;padding-top:1rem;border-top:1px solid var(--rule-soft);font-size:.9rem;max-width:60ch;font-style:italic}.site-footer-notice strong{color:var(--ink);font-style:normal}.site-footer-notice a{font-family:inherit;font-size:inherit;text-decoration:underline}.site-footer .colophon{font-size:.8125rem;color:var(--ink-faint)}.eyebrow{display:block;font-family:var(--font-display);font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);font-variation-settings:"opsz" 14}.lede{font-size:1.35rem;line-height:1.45;color:var(--ink-soft);max-width:var(--measure);font-style:italic}.meta{color:var(--ink-soft);font-size:.95rem}.num{font-variant-numeric:tabular-nums}.marginalia{font-style:italic;color:var(--ink-soft);border-left:1px solid var(--rule);padding-left:.9rem;max-width:44ch}.neatline{position:relative;border:1px solid var(--ink);outline:1px solid var(--rule);outline-offset:4px;background:var(--bg-elevated)}.neatline:before,.neatline:after{content:"";position:absolute;pointer-events:none}.neatline:before{left:0;right:0;top:-1px;height:100%;background:repeating-linear-gradient(to right,var(--ink) 0 1px,transparent 1px 32px) top / 100% 5px no-repeat,repeating-linear-gradient(to right,var(--ink) 0 1px,transparent 1px 32px) bottom / 100% 5px no-repeat;opacity:.55}.neatline:after{top:0;bottom:0;left:-1px;width:100%;background:repeating-linear-gradient(to bottom,var(--ink) 0 1px,transparent 1px 32px) left / 5px 100% no-repeat,repeating-linear-gradient(to bottom,var(--ink) 0 1px,transparent 1px 32px) right / 5px 100% no-repeat;opacity:.55}.journal{--line: 1.75rem;--margin: 3.2rem;background-color:var(--bg-elevated);background-image:linear-gradient(to right,transparent var(--margin),var(--seal) var(--margin),var(--seal) calc(var(--margin) + 1px),transparent calc(var(--margin) + 1px)),repeating-linear-gradient(to bottom,transparent 0 calc(var(--line) - 1px),var(--rule-soft) calc(var(--line) - 1px) var(--line));line-height:var(--line);border:1px solid var(--rule);box-shadow:var(--shadow)}.rule-wheel{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;color:var(--ink);margin:3rem auto;max-width:34rem}.rule-wheel:before,.rule-wheel:after{content:"";height:1px;background:var(--rule)}.rule-wheel .wheel{width:38px;height:38px;opacity:.85}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;background:var(--navy);color:#fff;padding:.7rem 1.25rem;border-radius:var(--r-button);text-decoration:none;font-family:var(--font-display);font-weight:600;font-size:1rem;letter-spacing:.01em;line-height:1.2;border:1px solid var(--navy);cursor:pointer;font-variation-settings:"opsz" 14;transition:background-color .12s ease,transform .12s ease}.btn:hover{background:var(--blue);border-color:var(--blue);color:#fff}.btn:active{transform:translateY(1px)}.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink)}.btn--ghost:hover{background:var(--fill-tertiary);color:var(--ink);border-color:var(--ink)}.btn--seal{background:var(--seal);border-color:var(--seal);color:#fff}.btn--seal:hover{background:var(--dark-red);border-color:var(--dark-red)}.btn--light{background:var(--off-white);border-color:var(--off-white);color:var(--navy)}.btn--light:hover{background:#fff;border-color:#fff;color:var(--navy)}.btn--light-ghost{background:transparent;color:var(--off-white);border-color:#f8f8f880}.btn--light-ghost:hover{background:#f8f8f81f;color:var(--off-white)}@media(prefers-color-scheme:dark){.btn:not(.btn--seal):not(.btn--ghost):not(.btn--light):not(.btn--light-ghost){background:var(--ink);border-color:var(--ink);color:var(--navy)}.btn:not(.btn--seal):not(.btn--ghost):not(.btn--light):not(.btn--light-ghost):hover{background:#fff;border-color:#fff;color:var(--navy)}}.card{background:var(--bg-elevated);border:1px solid var(--rule);border-radius:var(--r-card);padding:1.1rem 1.2rem;box-shadow:var(--shadow)}.card>:first-child{margin-top:0}.card>:last-child{margin-bottom:0}.card h3{margin-top:0;color:var(--ink)}.card p{color:var(--ink-soft);font-size:1.05rem}.grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.pill{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-family:var(--font-display);font-size:.95rem;font-weight:600;line-height:1.4;font-variant-numeric:tabular-nums;background:var(--fill-secondary);color:var(--ink);font-variation-settings:"opsz" 14}.pill--green{background:rgb(var(--rating-green-rgb) / .22)}.pill--yellow{background:rgb(var(--rating-yellow-rgb) / .22)}.pill--red{background:rgb(var(--rating-red-rgb) / .22)}.pill--tag{font-size:.7rem;padding:.1rem .45rem;letter-spacing:.06em;text-transform:uppercase;background:rgb(var(--rating-red-rgb) / .18);color:var(--rating-red-ink)}.dot{display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%;vertical-align:-2px;background:rgb(var(--dot-rgb, 142 142 147) / .3)}.dot:after{content:"";width:60%;height:60%;border-radius:50%;background:rgb(var(--dot-rgb, 142 142 147))}.dot--green{--dot-rgb: var(--rating-green-rgb)}.dot--yellow{--dot-rgb: var(--rating-yellow-rgb)}.dot--red{--dot-rgb: var(--rating-red-rgb)}.list-group{list-style:none;padding:0;margin:1.5rem 0 0;background:var(--bg-elevated);border:1px solid var(--rule);border-radius:var(--r-card);overflow:hidden;max-width:var(--measure)}.list-group li{max-width:none;margin:0}.list-group li+li{border-top:1px solid var(--rule-soft)}.list-group a{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.1rem;color:var(--ink);text-decoration:none;font-weight:500}.list-group a:after{content:"";flex:0 0 auto;width:8px;height:8px;margin-left:auto;border-right:1.5px solid var(--ink-faint);border-top:1.5px solid var(--ink-faint);transform:rotate(45deg)}.list-group a:hover{background:var(--fill-tertiary)}.list-group .meta{font-weight:400}table{border-collapse:collapse;width:100%;margin:1.5rem 0}th,td{text-align:left;padding:.7rem .75rem;border-bottom:1px solid var(--rule-soft);vertical-align:top}th{font-family:var(--font-display);font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);border-bottom-color:var(--rule);padding-bottom:.5rem;font-variation-settings:"opsz" 14}th:first-child{font-weight:400}tbody th{font-family:var(--font-text);font-weight:500;color:var(--ink);font-size:1rem;letter-spacing:0;text-transform:none;border-bottom-color:var(--rule-soft)}tbody th small{display:block;font-size:.9rem;font-weight:400;color:var(--ink-soft);margin-top:.15rem}td{font-size:1rem;color:var(--ink-soft)}.matrix td{white-space:nowrap}.col-pro,td.col-pro{color:var(--ink);font-weight:600}.tick{font-weight:700}.tick:before{content:"✓"}.tick--free{color:var(--ink-soft)}.tick--pro{color:var(--seal-ink)}.scroll-x{overflow-x:auto}.advisory{display:flex;gap:.75rem;align-items:flex-start;padding:.9rem 1rem;border-radius:var(--r-card);background:var(--red);color:#fff;max-width:var(--measure)}.advisory svg{flex:0 0 auto;width:24px;height:24px;margin-top:1px}.advisory strong{display:block;font-family:var(--font-display);font-size:1.1rem;font-weight:600;margin-bottom:.2rem}.advisory p{margin:0;font-size:1rem;color:#ffffffeb}.strip{display:flex;height:18px;border-radius:var(--r-strip);overflow:hidden;margin-top:.4rem;border:1px solid var(--rule-soft)}.strip>span{flex:1 1 0}.strip-axis{display:flex;height:18px;margin-top:.3rem}.strip-axis>span{flex:1 1 0;font-family:var(--font-display);font-size:.75rem;font-weight:600;color:var(--ink-faint);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:visible;font-variation-settings:"opsz" 14}.hero-box{--stroke: var(--rule);padding:1rem;border-radius:var(--r-hero);border:2px solid var(--stroke);background:var(--hero-gradient, var(--fill-tertiary))}.hero-box[data-rating=green]{--stroke: var(--rating-green);--ink-score: var(--rating-green-ink)}.hero-box[data-rating=yellow]{--stroke: var(--rating-yellow);--ink-score: var(--rating-yellow-ink)}.hero-box[data-rating=red]{--stroke: var(--rating-red);--ink-score: var(--rating-red-ink)}.hero-head{display:flex;align-items:center;gap:.85rem}.hero-score{font-family:var(--font-display);font-size:3.4rem;font-weight:500;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink-score, var(--ink));flex:0 0 auto;font-variation-settings:"opsz" 144}.hero-status{flex:1 1 auto;min-width:0}.hero-status .rating{display:block;font-family:var(--font-display);font-size:1.35rem;font-weight:600;color:var(--ink)}.hero-status .headline{display:block;font-size:.95rem;font-style:italic;color:var(--ink-soft);margin-top:.15rem;max-width:none}.hero-stamp{align-self:flex-start;font-family:var(--font-display);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-variant-numeric:tabular-nums;white-space:nowrap;font-variation-settings:"opsz" 14}.hero-strip{margin-top:.9rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
