@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/ibm-plex-sans-latin-700-normal.Bxkt5Cjx.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-700-normal.Bth3BMcD.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff) format("woff")}:root{--brand-bg:#F4F7F6;--brand-surface:#FFFFFF;--brand-elevated:#FFFFFF;--brand-fg:#0B1F26;--brand-fg-muted:#46595f;--brand-fg-dim:#7a8b8f;--brand-edge:#E3EAE8;--brand-edge-strong:#cdd8d5;--brand-accent:#0D9488;--brand-accent-hover:#0F766E;--brand-accent-fg:#FFFFFF;--font-sans:"IBM Plex Sans",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;--font-display:var(--font-sans);--text-xs:clamp(.6875rem,.66rem + .12vw,.75rem);--text-sm:clamp(.8125rem,.77rem + .2vw,.9375rem);--text-base:clamp(.9375rem,.88rem + .26vw,1.125rem);--text-lg:clamp(1.0625rem,1rem + .28vw,1.25rem);--text-xl:clamp(1.1875rem,1.1rem + .33vw,1.375rem);--text-2xl:clamp(1.375rem,1.24rem + .59vw,1.75rem);--text-3xl:clamp(1.75rem,1.55rem + .85vw,2.25rem);--text-4xl:clamp(2.125rem,1.78rem + 1.48vw,3rem);--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.75;--tracking-tight:-.025em;--tracking-wide:.025em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--ds-space-card:24px;--ds-space-input-x:16px;--ds-space-input-y:12px;--ds-space-button-md:16px;--ds-space-page-x:clamp(20px,5vw,32px);--ds-space-section-y:clamp(48px,8vw,96px);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--radius-full:9999px;--ds-radius-button:16px;--ds-radius-input:16px;--ds-radius-card:16px;--shadow-sm:0 1px 2px rgba(11,31,38,.06);--shadow-md:0 8px 24px rgba(11,31,38,.08);--shadow-lg:0 24px 56px rgba(11,31,38,.12);--ease-soft:cubic-bezier(.4,0,.2,1);--ease-smooth:cubic-bezier(.16,1,.3,1);--dur-fast:.15s;--dur-normal:.25s;--ink:#0B1F26;--ink-2:#0F2A32;--teal-bright:#2DD4BF;--ink-muted:#9DB3B5;--ink-dim:#6E8688;--ink-edge:#1F3A42;--green:#0C3B33;--green-2:#0A2E28;--pass:#16A34A;--flag:#D97706;--fail:#DC2626;--metal:#B8C4C2}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--brand-bg);color:var(--brand-fg);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);font-weight:700}h1{font-size:var(--text-4xl);text-wrap:balance}h2{font-size:var(--text-3xl);text-wrap:balance}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}p{font-size:var(--text-base);color:var(--brand-fg-muted);line-height:var(--leading-normal)}.eyebrow{font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase}code,pre{font-family:var(--font-mono)}a{color:var(--brand-accent);text-decoration:none;transition:color var(--dur-fast)}a:focus-visible,button:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px;border-radius:var(--radius-sm)}button,.btn{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;min-height:44px;padding:0 var(--ds-space-button-md);border-radius:var(--ds-radius-button);border:1px solid transparent;cursor:pointer;transition:background var(--dur-normal) var(--ease-soft),transform var(--dur-fast);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}button:active,.btn:active{transform:scale(.98)}.card{background:var(--brand-surface);border:1px solid var(--brand-edge);border-radius:var(--ds-radius-card);padding:var(--ds-space-card)}.section{padding-block:var(--ds-space-section-y);padding-inline:var(--ds-space-page-x)}.wrap{max-width:1180px;margin:0 auto}.mono{font-family:var(--font-mono)}.btn-primary{background:var(--brand-accent);color:var(--brand-accent-fg)}.btn-primary:hover{background:var(--brand-accent-hover)}.btn-ghost{background:transparent;color:var(--brand-fg);border-color:var(--brand-edge-strong)}.btn-ghost:hover{background:#fff}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.lang{display:inline-flex;align-items:center}.lang-select{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;line-height:1.2;color:var(--brand-fg-muted);background-color:transparent;border:1px solid var(--brand-edge-strong);border-radius:var(--radius-sm);padding:var(--space-3) calc(var(--space-5) + 6px) var(--space-3) var(--space-3);cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a8b8f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-2) center;background-size:13px;transition:border-color var(--dur-fast) var(--ease-soft),color var(--dur-fast) var(--ease-soft)}.lang-select:hover{color:var(--ink);border-color:var(--brand-fg-dim)}.lang-select:focus-visible{outline:none;border-color:var(--brand-accent);color:var(--ink)}.lang-select option{background:var(--brand-surface);color:var(--brand-fg)}.nav--home .lang-select{color:var(--ink-muted);border-color:var(--ink-edge)}.nav--home .lang-select:hover{color:#fff;border-color:var(--ink-muted)}.nav--home.scrolled .lang-select{color:var(--brand-fg-muted);border-color:var(--brand-edge-strong)}.nav--home.scrolled .lang-select:hover{color:var(--ink);border-color:var(--brand-fg-dim)}.nav{display:flex;align-items:center;justify-content:space-between;height:72px;padding:0 var(--ds-space-page-x);z-index:20}.brand{display:flex;align-items:center;gap:var(--space-3)}.brand svg{width:30px;height:30px}.brand b{font-weight:600;font-size:var(--text-lg);letter-spacing:var(--tracking-tight)}.nav--home{position:fixed;left:0;right:0;top:0;background:transparent;border-bottom:1px solid transparent;transition:background var(--dur-normal) var(--ease-soft),border-color var(--dur-normal) var(--ease-soft),box-shadow var(--dur-normal) var(--ease-soft),backdrop-filter var(--dur-normal) var(--ease-soft)}.nav--home .brand b{color:#fff}.nav--home .navlinks{display:flex;gap:var(--space-6);align-items:center}.nav--home .navlinks a:not(.btn){color:var(--ink-muted);font-size:var(--text-sm);font-weight:500}.nav--home .navlinks a:not(.btn):hover{color:#fff}.nav--home .btn-primary{color:#fff}.nav--home.scrolled{background:#ffffffd1;backdrop-filter:blur(12px);border-bottom-color:var(--brand-edge);box-shadow:var(--shadow-sm)}.nav--home.scrolled .brand b{color:var(--ink)}.nav--home.scrolled .navlinks a:not(.btn){color:var(--brand-fg-muted)}.nav--home.scrolled .navlinks a:not(.btn):hover{color:var(--ink)}.nav--home.scrolled .btn-primary{color:#fff}@media(max-width:820px){.nav--home .navlinks .hideable{display:none}}section[id]{scroll-margin-top:84px}.nav--page{position:sticky;top:0;border-bottom:1px solid var(--brand-edge);background:#ffffffd9;backdrop-filter:blur(12px);box-shadow:var(--shadow-sm)}.nav--page .brand b{color:var(--ink)}.nav--page .nav-right{display:flex;align-items:center;gap:var(--space-5)}.nav--page .home{display:inline-flex;align-items:center;gap:6px;color:var(--brand-fg-muted);font-size:var(--text-sm);font-weight:500}.nav--page .home:hover{color:var(--ink)}.nav--page .home svg{width:15px;height:15px}.foot-wrap.endcap{margin-top:var(--space-16)}.endcap{position:relative;overflow:hidden;background:var(--ink);background-image:linear-gradient(180deg,var(--ink) 0%,var(--ink-2) 100%)}.endcap:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(45,212,191,.12) 1.5px,transparent 1.7px);background-size:28px 28px;-webkit-mask-image:radial-gradient(ellipse 70% 80% at 65% 100%,#000 25%,transparent 72%);mask-image:radial-gradient(ellipse 70% 80% at 65% 100%,#000 25%,transparent 72%)}.band{position:relative;text-align:center;padding:var(--space-16) var(--space-8) var(--space-12);max-width:60ch;margin:0 auto}.band h2{color:#fff;margin-bottom:var(--space-4)}.band p{color:var(--ink-muted);max-width:48ch;margin:0 auto var(--space-6)}.site-foot{position:relative;background:var(--ink);color:var(--ink-muted);padding:var(--space-12) var(--ds-space-page-x) var(--space-10)}.endcap .site-foot{background:transparent;border-top:1px solid rgba(255,255,255,.08)}.site-foot .brand b{color:#fff}.site-foot .brand svg{width:26px;height:26px}.site-foot .fcols{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-8);max-width:1180px;margin:0 auto}.site-foot .col-brand{max-width:280px}.site-foot .col-brand p{color:var(--ink-muted);font-size:var(--text-sm);margin-top:var(--space-3)}.site-foot .col h4{font-size:var(--text-sm);margin-bottom:var(--space-3);color:#fff}.site-foot .col a{display:block;color:var(--ink-muted);font-size:var(--text-sm);margin-bottom:var(--space-2);transition:color var(--dur-fast) var(--ease-soft)}.site-foot .col a:hover{color:#fff}.site-foot .col a.is-active{color:var(--teal-bright)}.site-foot .maker{max-width:1180px;margin:var(--space-10) auto 0;padding-top:var(--space-6);border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);align-items:center}.site-foot .maker .mk{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-dim)}.site-foot .maker .mk a{color:var(--ink-muted)}.site-foot .foot-vs{max-width:1180px;margin:var(--space-8) auto 0;padding-top:var(--space-6);border-top:1px solid rgba(255,255,255,.08)}.site-foot .foot-vs-h{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim);margin-bottom:var(--space-3)}.site-foot .foot-vs-links{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5)}.site-foot .foot-vs-links a{color:var(--ink-muted);font-size:var(--text-xs);transition:color var(--dur-fast) var(--ease-soft)}.site-foot .foot-vs-links a:hover{color:#fff}@media(max-width:720px){.site-foot .fcols{gap:var(--space-8) var(--space-6)}}.hero-dark{background:var(--ink);position:relative;overflow:hidden;border-bottom:1px solid var(--ink-edge);padding-top:calc(var(--ds-space-section-y) + 44px)}.hero-dark:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(45,212,191,.11) 1.5px,transparent 1.7px);background-size:28px 28px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 35% 10%,#000 25%,transparent 72%);mask-image:radial-gradient(ellipse 80% 70% at 35% 10%,#000 25%,transparent 72%)}.hero{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:var(--space-12);align-items:center}@media(max-width:920px){.hero{grid-template-columns:1fr;gap:var(--space-8)}}.hero-dark .eyebrow{color:var(--teal-bright);font-family:var(--font-mono);font-weight:500;margin-bottom:var(--space-4)}.hero-dark h1{margin-bottom:var(--space-5);color:#fff}.hero-dark .lead{color:var(--ink-muted)}.hero-dark .trust{color:var(--ink-dim)}.hero-dark .btn-ghost{color:#fff;border-color:var(--ink-edge)}.hero-dark .btn-ghost:hover{background:#ffffff0d}.hero-dark .result{box-shadow:0 30px 70px #00000073;border-color:#ffffff1a}.lead{font-size:var(--text-lg);max-width:36ch;margin-bottom:var(--space-6)}.cta-row{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-5)}.trust{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--brand-fg-dim)}.result{box-shadow:var(--shadow-lg);padding:0;overflow:hidden;background:#fff;border:1px solid var(--brand-edge);border-radius:var(--ds-radius-card)}.rhead{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--brand-edge);background:#fbfdfc}.rhead .meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--brand-fg-dim);line-height:1.6}.rhead .meta b{color:var(--brand-fg);font-weight:600}.pill{font-family:var(--font-mono);font-size:11px;font-weight:600;padding:3px 8px;border-radius:var(--radius-full);display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.pill.pass{background:#16a34a1f;color:var(--pass)}.pill.flag{background:#d9770621;color:var(--flag)}.pill.fail{background:#dc26261f;color:var(--fail)}.result .pill.flag{font-size:10px;padding:3px 7px;letter-spacing:-.01em}table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}th{text-align:left;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-fg-dim);font-weight:500;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--brand-edge)}td{padding:var(--space-3) var(--space-4);border-bottom:1px solid #eef3f1;vertical-align:middle;color:var(--brand-fg)}td.num,td.lim{font-family:var(--font-mono)}.an{font-weight:600}tr.mismatch{background:#d977060d}.note{font-family:var(--font-mono);font-size:10px;color:var(--flag);margin-top:2px}.rfoot{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-5);background:#fbfdfc;border-top:1px solid var(--brand-edge)}.chip{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;padding:6px 12px;border:1px solid var(--brand-accent);border-radius:var(--radius-full);color:#fff;background:var(--brand-accent)}@keyframes coaCardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes coaRowIn{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:no-preference){.hero-dark .result{animation:coaCardIn .55s var(--ease-smooth) .1s both}.hero-dark .result tbody tr{animation:coaRowIn .45s var(--ease-soft) both}.hero-dark .result tbody tr:nth-child(1){animation-delay:.45s}.hero-dark .result tbody tr:nth-child(2){animation-delay:.55s}.hero-dark .result tbody tr:nth-child(3){animation-delay:.65s}.hero-dark .result tbody tr:nth-child(4){animation-delay:.75s}}.sec-head{text-align:center;max-width:60ch;margin:0 auto var(--space-10)}.sec-head .eyebrow{margin-bottom:var(--space-3)}.sec-head p{font-size:var(--text-lg);margin-top:var(--space-3)}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}@media(max-width:820px){.grid4{grid-template-columns:1fr 1fr}}.grid4 .c{display:flex;flex-direction:column}.grid4 .c .ico{width:34px;height:34px;border-radius:var(--radius-sm);background:#0d948817;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-4)}.grid4 .c .ico svg{width:18px;height:18px;color:var(--brand-accent)}.grid4 .c .tag{font-family:var(--font-mono);font-size:11px;color:var(--brand-fg-dim);margin-bottom:var(--space-2)}.grid4 .c h3{font-size:var(--text-base);margin-bottom:var(--space-1)}.grid4 .c p{font-size:var(--text-sm)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}@media(max-width:820px){.steps{grid-template-columns:1fr}}.step .n{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--brand-accent);font-weight:600;margin-bottom:var(--space-3)}.step h3{margin-bottom:var(--space-2)}.step p{font-size:var(--text-sm)}.rules{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-8);justify-content:center}.rule{font-family:var(--font-mono);font-size:var(--text-xs);background:#fff;border:1px solid var(--brand-edge);border-radius:var(--radius-full);padding:6px 14px;color:var(--brand-fg)}.rule b{color:var(--brand-accent)}.cmp{max-width:880px;margin:0 auto;background:#fff;border:1px solid var(--brand-edge);border-radius:var(--ds-radius-card);overflow:hidden;box-shadow:var(--shadow-md)}.cmp table{font-size:var(--text-sm)}.cmp th,.cmp td{padding:var(--space-4) var(--space-5);text-align:left}.cmp thead th{background:#fbfdfc}.cmp th.coa{color:var(--brand-accent)}.cmp td.center,.cmp th.center{text-align:center}.yes{color:var(--pass);font-weight:600}.no{color:var(--brand-fg-dim)}.cmp tr+tr td{border-top:1px solid #eef3f1}.price{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);max-width:980px;margin:0 auto}@media(max-width:820px){.price{grid-template-columns:1fr}}.plan{display:flex;flex-direction:column}.plan.feat{border-color:var(--brand-accent);box-shadow:0 0 0 1px var(--brand-accent),var(--shadow-md)}.plan .pk{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--brand-fg-dim);text-transform:uppercase;letter-spacing:.08em}.plan .amt{font-size:var(--text-3xl);font-weight:700;letter-spacing:var(--tracking-tight);margin:var(--space-3) 0 var(--space-1)}.plan .per{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--brand-fg-muted);margin-bottom:var(--space-5)}.plan ul{list-style:none;margin-bottom:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2)}.plan li{font-size:var(--text-sm);color:var(--brand-fg-muted);display:flex;gap:var(--space-2);align-items:flex-start}.plan li svg{width:16px;height:16px;color:var(--brand-accent);flex:none;margin-top:3px}.guarantee{text-align:center;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--brand-fg-muted);margin-top:var(--space-8)}.faq{max-width:760px;margin:0 auto}details{background:#fff;border:1px solid var(--brand-edge);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-3)}summary{font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}summary::-webkit-details-marker{display:none}summary:after{content:"+";font-family:var(--font-mono);color:var(--brand-accent);font-size:var(--text-xl)}details[open] summary:after{content:"–"}details p{margin-top:var(--space-3);font-size:var(--text-sm)}.prose{max-width:760px;margin:0 auto;padding:var(--space-16) var(--ds-space-page-x);line-height:1.6}.prose .eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--brand-accent);margin-bottom:var(--space-3)}.prose h1{font-size:var(--text-3xl);font-weight:700;letter-spacing:var(--tracking-tight);text-wrap:balance;margin-bottom:var(--space-3)}.prose .updated{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--brand-fg-dim);margin-bottom:var(--space-10)}.prose h2{font-size:var(--text-2xl);font-weight:700;letter-spacing:var(--tracking-tight);text-wrap:balance;margin:var(--space-12) 0 var(--space-4)}.prose h3{font-size:var(--text-lg);font-weight:600;margin:var(--space-8) 0 var(--space-3)}.prose p{font-size:var(--text-base);color:var(--brand-fg-muted);margin-bottom:var(--space-4)}.prose .lead{font-size:var(--text-lg);color:var(--brand-fg);margin-bottom:var(--space-8)}.prose ul,.prose ol{color:var(--brand-fg-muted);font-size:var(--text-base);margin:0 0 var(--space-4) var(--space-6);display:flex;flex-direction:column;gap:var(--space-2)}.prose strong{color:var(--brand-fg)}.prose code{font-family:var(--font-mono);font-size:.92em;background:#eef3f1;padding:1px 5px;border-radius:6px;color:var(--ink)}.prose .note{background:var(--brand-surface);border:1px solid var(--brand-edge);border-left:3px solid var(--brand-accent);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin:var(--space-6) 0}.prose .note p{margin:0;font-size:var(--text-sm)}.prose table.t{width:100%;border-collapse:collapse;font-size:var(--text-sm);margin:var(--space-4) 0}.prose table.t th,.prose table.t td{text-align:left;padding:var(--space-3) var(--space-3);border-bottom:1px solid var(--brand-edge);vertical-align:top}.prose table.t th{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--brand-fg-dim);font-weight:500}.prose table.t td.k{font-family:var(--font-mono);color:var(--ink);white-space:nowrap}.prose a{color:var(--brand-accent);text-decoration:underline;text-underline-offset:2px}.prose a:hover{color:var(--brand-accent-hover)}.prose .cta-row{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}.prose .compare-list{list-style:none;margin:0 0 var(--space-6);padding:0;gap:0}.prose .compare-list li{border-bottom:1px solid var(--brand-edge)}.prose .compare-list li:first-child{border-top:1px solid var(--brand-edge)}.prose .compare-list a{display:block;padding:var(--space-3) 0;font-size:var(--text-lg);font-weight:600;color:var(--brand-fg);text-decoration:none}.prose .compare-list a:hover{color:var(--brand-accent)}.prose a.btn{text-decoration:none}.prose a.btn-primary,.prose a.btn-primary:hover{color:var(--brand-accent-fg)}.prose a.btn-ghost{color:var(--brand-fg)}.prose blockquote{background:var(--brand-surface);border:1px solid var(--brand-edge);border-left:3px solid var(--brand-accent);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin:var(--space-6) 0}.prose blockquote p{margin-bottom:var(--space-2)}.prose blockquote p:last-child{margin-bottom:0}.prose>table{display:block;overflow-x:auto;width:100%;border-collapse:collapse;font-size:var(--text-sm);margin:var(--space-6) 0}.prose>table th,.prose>table td{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--brand-edge);vertical-align:top}.prose>table th{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--brand-fg-dim);font-weight:500;white-space:nowrap}.prose>table tbody tr:hover{background:#fbfdfc}body.doc{min-height:100vh;display:flex;flex-direction:column}body.doc main{flex:1}body.app{min-height:100vh}body.app h1,body.app h2,body.app h3{font-family:var(--font-sans);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);font-weight:700;text-wrap:balance}body.app h1{font-size:var(--text-3xl)}body.app h2{font-size:var(--text-2xl)}body.app p{font-size:var(--text-base);color:var(--brand-fg-muted)}body.app a{color:var(--brand-accent);text-decoration:none;transition:color var(--dur-fast)}body.app .mono,body.app code{font-family:var(--font-mono)}body.app button,body.app .btn{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;min-height:44px;padding:0 var(--space-4);border-radius:var(--ds-radius-button);border:1px solid transparent;cursor:pointer;transition:background var(--dur-normal) var(--ease-soft),transform var(--dur-fast),opacity var(--dur-fast);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}body.app button:active,body.app .btn:active{transform:scale(.98)}body.app button:disabled{opacity:.55;cursor:not-allowed}body.app a:focus-visible,body.app button:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px;border-radius:var(--radius-sm)}body.app .btn-primary{background:var(--brand-accent);color:#fff}body.app .btn-primary:hover{background:var(--brand-accent-hover)}body.app .btn-ghost{background:transparent;color:var(--brand-fg);border-color:var(--brand-edge-strong)}body.app .btn-ghost:hover{background:#fff}body.app .card{background:var(--brand-surface);border:1px solid var(--brand-edge);border-radius:var(--ds-radius-card)}body.app .wrap{max-width:880px;margin:0 auto;padding:0 var(--ds-space-page-x)}body.app .appnav{display:flex;align-items:center;justify-content:space-between;height:72px;padding:0 var(--ds-space-page-x);border-bottom:1px solid var(--brand-edge);background:#ffffffd1;backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:20}body.app .brand{display:flex;align-items:center;gap:var(--space-3)}body.app .brand svg{width:30px;height:30px}body.app .brand b{font-weight:600;font-size:var(--text-lg);letter-spacing:var(--tracking-tight);color:var(--ink)}body.app .appnav .nav-right{display:flex;align-items:center;gap:var(--space-4)}body.app .appnav .home{display:inline-flex;align-items:center;gap:6px;color:var(--brand-fg-muted);font-size:var(--text-sm);font-weight:500}body.app .appnav .home:hover{color:var(--ink)}body.app .appnav .home svg{width:15px;height:15px}body.app main{padding:var(--ds-space-section-y) 0}body.app .head{text-align:center;margin-bottom:var(--space-10)}body.app .head .eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--brand-accent);margin-bottom:var(--space-3)}body.app .head p{margin-top:var(--space-3);font-size:var(--text-lg)}body.app .drop{border:2px dashed var(--brand-edge-strong);border-radius:var(--ds-radius-card);background:var(--brand-surface);padding:var(--space-12) var(--space-8);text-align:center;transition:border-color var(--dur-normal) var(--ease-soft),background var(--dur-normal) var(--ease-soft)}body.app .drop.drag{border-color:var(--brand-accent);background:#0d94880a}body.app .drop .ico{width:48px;height:48px;border-radius:var(--radius-md);background:#0d948817;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-5)}body.app .drop .ico svg{width:24px;height:24px;color:var(--brand-accent)}body.app .drop h2{margin-bottom:var(--space-2);font-size:var(--text-xl,1.25rem)}body.app .drop .browse{color:var(--brand-accent);font-weight:600;text-decoration:underline;cursor:pointer}body.app .drop .hint{font-size:var(--text-sm);color:var(--brand-fg-dim);margin-top:var(--space-2)}body.app .below{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-top:var(--space-6);flex-wrap:wrap}body.app .below .sep{color:var(--brand-fg-dim);font-size:var(--text-sm)}body.app .keyrow{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap}body.app .keyrow label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--brand-fg-dim);text-transform:uppercase;letter-spacing:var(--tracking-wide)}body.app .keyrow input{font-family:var(--font-mono);font-size:var(--text-sm);min-width:min(340px,80vw);height:40px;padding:0 var(--space-4);border:1px solid var(--brand-edge-strong);border-radius:var(--radius-sm);background:#fff;color:var(--brand-fg)}body.app .keyrow input:focus-visible{outline:2px solid var(--brand-accent);outline-offset:1px}body.app .keyhint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--pass)}body.app .credits{text-align:center;margin-top:var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--brand-fg-muted);min-height:18px}body.app .credits .ok{color:var(--pass)}body.app .credits a{color:var(--brand-accent)}body.app #history-wrap{max-width:560px;margin:var(--space-12) auto 0}body.app .hist-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--brand-fg-dim);text-transform:uppercase;letter-spacing:var(--tracking-wide)}body.app .hist-head em{font-style:normal;color:var(--brand-fg-dim);opacity:.7}body.app .hist-head button{min-height:auto;padding:2px 6px;background:none;border:none;color:var(--brand-fg-dim);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);cursor:pointer}body.app .hist-head button:hover{color:var(--fail)}body.app .hist-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;text-align:left;background:var(--brand-surface);border:1px solid var(--brand-edge);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2);cursor:pointer;min-height:auto;transition:border-color var(--dur-fast) var(--ease-soft)}body.app .hist-item:hover{border-color:var(--brand-accent)}body.app .hist-item .h-main{font-weight:600;font-size:var(--text-sm)}body.app .hist-item .h-sub{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--brand-fg-dim);margin-top:2px}body.app .hist-item .h-flag{font-family:var(--font-mono);font-size:10px;color:var(--flag);white-space:nowrap}body.app .hist-item .h-ok{font-family:var(--font-mono);font-size:10px;color:var(--pass);white-space:nowrap}body.app .err .buy{display:inline-block;margin-top:var(--space-2);font-family:var(--font-mono);font-size:var(--text-sm)}body.app .trust{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--brand-fg-dim);text-align:center;margin-top:var(--space-6)}body.app .loading{text-align:center;padding:var(--space-16) var(--space-8)}body.app .spinner{width:40px;height:40px;margin:0 auto var(--space-6);border:3px solid var(--brand-edge);border-top-color:var(--brand-accent);border-radius:50%;animation:spin .8s linear infinite}body.app .loading .fn{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--brand-fg-dim);margin-top:var(--space-2)}body.app .err{text-align:center;padding:var(--space-12) var(--space-8)}body.app .err .ico{width:48px;height:48px;border-radius:var(--radius-md);background:#dc26261a;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-5)}body.app .err .ico svg{width:24px;height:24px;color:var(--fail)}body.app .err p{margin:var(--space-2) 0 var(--space-6)}body.app .result{box-shadow:var(--shadow-lg);overflow:hidden;background:#fff;border:1px solid var(--brand-edge);border-radius:var(--ds-radius-card)}body.app .rhead{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--brand-edge);background:#fbfdfc}body.app .rhead .meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--brand-fg-dim);line-height:1.7}body.app .rhead .meta b{color:var(--brand-fg);font-weight:600}body.app .pill{font-family:var(--font-mono);font-size:11px;font-weight:600;padding:3px 8px;border-radius:var(--radius-full);display:inline-flex;align-items:center;gap:4px;white-space:nowrap}body.app .pill.pass{background:#16a34a1f;color:var(--pass)}body.app .pill.flag{background:#d9770621;color:var(--flag)}body.app .pill.fail{background:#dc26261f;color:var(--fail)}body.app .pill.dot:before{content:"●";font-size:8px}body.app .tablewrap{overflow-x:auto}body.app table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}body.app th{text-align:left;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-fg-dim);font-weight:500;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--brand-edge);white-space:nowrap}body.app td{padding:var(--space-3) var(--space-4);border-bottom:1px solid #eef3f1;vertical-align:middle;color:var(--brand-fg)}body.app td.num,body.app td.lim{font-family:var(--font-mono);white-space:nowrap}body.app .an{font-weight:600;white-space:nowrap}body.app tr.mismatch{background:#d977060d}body.app .note{font-family:var(--font-mono);font-size:10px;color:var(--flag);margin-top:2px}body.app .result .pill.flag{font-size:10px;padding:3px 7px;letter-spacing:-.01em}body.app .rfoot{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:#fbfdfc;border-top:1px solid var(--brand-edge);flex-wrap:wrap}body.app .rfoot .trust{margin:0}body.app .dlrow{display:flex;gap:var(--space-2)}body.app .chip{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;min-height:auto;padding:7px 13px;border:1px solid var(--brand-accent);border-radius:var(--radius-full);color:#fff;background:var(--brand-accent)}body.app .chip:hover{background:var(--brand-accent-hover);border-color:var(--brand-accent-hover);color:#fff}body.app .chip:disabled{opacity:.6}body.app .again{text-align:center;margin-top:var(--space-6)}body.app .hidden{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}@keyframes cardIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes rowIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:no-preference){body.app #stage-result:not(.hidden) .result{animation:cardIn .45s var(--ease-soft) both}body.app #stage-result:not(.hidden) tbody tr{animation:rowIn .4s var(--ease-soft) both}body.app .again{animation:cardIn .4s var(--ease-soft) .25s both}}@media(max-width:560px){body.app .an,body.app td.num,body.app td.lim{white-space:normal}}
