/* Riskernel site v2 components ("case file"). Tokens in /css/cf-tokens.css. Contracts:design/site-v2/SPEC.md section 3.
Reference page:/design/site-v2/components.html. Breakpoints:40rem (table),48rem (tablet),62rem (desktop). */
/* ---------- Base reset (replaces normalize.css and webflow.css) ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;font-family:var(--cf-font-sans);font-size:var(--cf-fs-base);line-height:var(--cf-lh-body);color:var(--cf-ink-2);background:var(--cf-paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4,h5,h6{margin:0;color:var(--cf-ink);font-weight:var(--cf-w-semibold);line-height:var(--cf-lh-snug);text-wrap:balance}
h1{font-size:var(--cf-fs-3xl);line-height:var(--cf-lh-tight);letter-spacing:var(--cf-track-h1)}
h2{font-size:var(--cf-fs-2xl)}
h3{font-size:var(--cf-fs-xl)}
h4{font-size:var(--cf-fs-lg)}
p,ul,ol,dl,dd,figure,blockquote,pre{margin:0}
b,strong{font-weight:var(--cf-w-semibold)}
a{color:var(--cf-blue);text-decoration-thickness:1px;text-underline-offset:0.18em;transition:color var(--cf-d-1) var(--cf-ease-out)}
a:hover{color:var(--cf-blue-hover)}
img,video{max-width:100%;height:auto}
img,svg{vertical-align:middle}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
code,kbd,samp,pre{font-family:var(--cf-font-mono);font-size:0.9em}
table{border-collapse:collapse}
hr{border:0;border-top:1px solid var(--cf-line);margin:var(--cf-s-6) 0}
::selection{background:var(--cf-blue-tint);color:var(--cf-ink)}
:focus-visible{outline:2px solid var(--cf-blue);outline-offset:2px}
[id]{scroll-margin-top:5rem}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}
}
.cf-visually-hidden{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* ---------- 3.1 Layout primitives ---------- */
.cf-container{width:100%;max-width:calc(var(--cf-container) + 2 * var(--cf-gutter));margin-inline:auto;padding-inline:var(--cf-gutter)}
.cf-container--text{max-width:calc(var(--cf-measure) + 2 * var(--cf-gutter))}
.cf-section{padding-block:var(--cf-section-y)}
.cf-section--wash{background:var(--cf-paper-2)}
.cf-section--blue{background:var(--cf-blue-wash)}
.cf-flow>* + *{margin-top:var(--cf-s-4)}
.cf-lead{font-size:var(--cf-fs-lg);line-height:var(--cf-lh-body);color:var(--cf-ink-3);max-width:var(--cf-measure)}
/* ---------- 3.2 Exhibit heading ---------- */
.cf-exhibit{margin-bottom:var(--cf-s-7)}
.cf-exhibit__tab{display:flex;align-items:center;gap:var(--cf-s-3);font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);text-transform:uppercase;letter-spacing:var(--cf-track-label);color:var(--cf-blue);line-height:1.4}
.cf-exhibit__tab::before{content:"";flex:0 0 var(--cf-s-5);height:1px;background:var(--cf-line-strong)}
.cf-exhibit__tab::after{content:"";flex:1 1 0;min-width:var(--cf-s-5);height:1px;background:var(--cf-line-strong)}
.cf-exhibit__id{font-weight:var(--cf-w-bold);color:var(--cf-blue-deep)}
.cf-exhibit__title{margin-top:var(--cf-s-5);font-size:var(--cf-fs-2xl);max-width:22em}
.cf-exhibit__lead{margin-top:var(--cf-s-4);font-size:var(--cf-fs-lg);color:var(--cf-ink-3);max-width:var(--cf-measure)}
/* ---------- 3.3 Banner ---------- */
.cf-banner{background:var(--cf-terminal);color:#fff;font-size:var(--cf-fs-sm);line-height:1.45}
.cf-banner__inner{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--cf-s-3);row-gap:0;padding-block:var(--cf-s-1)}
.cf-banner__tag{font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);text-transform:uppercase;letter-spacing:var(--cf-track-label);color:var(--cf-blue-light);border:1px solid rgba(90,174,214,0.5);border-radius:var(--cf-r-1);padding:1px 6px}
.cf-banner__text{margin:0}
.cf-banner__link{display:inline-flex;align-items:center;min-height:44px;color:#fff;font-weight:var(--cf-w-semibold);text-decoration:underline}
.cf-banner__link:hover{color:var(--cf-blue-light)}
.cf-banner__link:focus-visible{outline-color:var(--cf-blue-light)}
/* ---------- 3.4 Skip link and header ---------- */
.cf-skip{position:absolute;left:var(--cf-s-4);top:-100px;z-index:100;display:inline-flex;align-items:center;min-height:44px;padding:0 var(--cf-s-4);background:var(--cf-ink);color:#fff;border-radius:var(--cf-r-2);font-weight:var(--cf-w-semibold);text-decoration:none}
.cf-skip:focus{top:var(--cf-s-2);color:#fff}
.cf-header{position:relative;z-index:50;background:var(--cf-paper);border-bottom:1px solid var(--cf-line)}
.cf-js .cf-header{position:sticky;top:0}
.cf-header__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;column-gap:var(--cf-s-5);min-height:64px}
.cf-brand{display:inline-flex;align-items:center;gap:var(--cf-s-2);min-height:44px;color:var(--cf-ink);text-decoration:none}
.cf-brand:hover{color:var(--cf-ink)}
.cf-brand img{flex:none}
.cf-brand__word{font-weight:var(--cf-w-semibold);font-size:1.1875rem;letter-spacing:-0.01em}
.cf-nav-toggle{display:inline-flex;align-items:center;gap:var(--cf-s-2);min-height:44px;min-width:44px;padding:0 var(--cf-s-3);background:var(--cf-paper);color:var(--cf-ink);border:1px solid var(--cf-line-strong);border-radius:var(--cf-r-2);font-size:var(--cf-fs-sm);font-weight:var(--cf-w-semibold);transition:border-color var(--cf-d-1) var(--cf-ease-out),background-color var(--cf-d-1) var(--cf-ease-out)}
.cf-nav-toggle[hidden]{display:none}
.cf-nav-toggle:hover{border-color:var(--cf-ink-3)}
.cf-nav-toggle[aria-expanded="true"]{background:var(--cf-blue-tint);border-color:var(--cf-blue)}
.cf-nav__list{list-style:none;margin:0;padding:0}
.cf-nav__item{display:flex;align-items:center}
.cf-nav__link{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--cf-s-2);color:var(--cf-ink-2);font-size:0.9375rem;font-weight:var(--cf-w-semibold);text-decoration:none}
.cf-nav__link:hover{color:var(--cf-blue)}
.cf-nav__link[aria-current="page"]{color:var(--cf-blue);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:0.45em}
@media (max-width:61.99rem){.cf-nav{flex:1 0 100%;display:flex;flex-direction:column;align-items:stretch;gap:var(--cf-s-3);padding-bottom:var(--cf-s-4)}
.cf-nav__cta{order:-1}
.cf-nav__item{border-top:1px solid var(--cf-line)}
.cf-nav__item:first-child{border-top:0}
.cf-nav__link{flex:1 1 auto;padding-inline:0;font-size:var(--cf-fs-base)}
.cf-nav__item--menu{flex-wrap:wrap}
.cf-nav__item--menu>.rk-pmenu{flex:1 1 100%;justify-content:flex-start}
.cf-js .cf-nav{display:none}
.cf-js .cf-header.is-open .cf-nav{display:flex;position:absolute;left:0;right:0;top:100%;max-height:calc(100vh - 64px);max-height:calc(100dvh - 64px);overflow-y:auto;padding:var(--cf-s-4) var(--cf-gutter) var(--cf-s-5);background:var(--cf-paper);border-bottom:1px solid var(--cf-line);box-shadow:var(--cf-shadow-2);animation:cf-menu-in var(--cf-d-2) var(--cf-ease-out)}
}
@keyframes cf-menu-in{from{opacity:0;transform:translateY(-4px)}
to{opacity:1;transform:none}
}
@media (min-width:62rem){.cf-header{position:sticky;top:0}
.cf-header__inner{flex-wrap:nowrap;height:64px}
.cf-nav-toggle,.cf-js .cf-nav-toggle{display:none}
.cf-nav{display:flex;align-items:center;gap:var(--cf-s-5)}
.cf-nav__list{display:flex;align-items:center;gap:var(--cf-s-2)}
.cf-nav__item--menu>.rk-pmenu{height:64px}
}
/* ---------- 3.5 Footer ---------- */
.cf-footer{background:var(--cf-terminal);color:rgba(226,232,240,0.8);font-size:var(--cf-fs-sm);padding-top:var(--cf-s-8)}
.cf-footer__grid{display:grid;grid-template-columns:1fr;gap:var(--cf-s-6) var(--cf-s-5)}
.cf-footer__col{display:flex;flex-direction:column;align-items:flex-start}
.cf-footer__col a:not(.cf-btn){display:inline-flex;align-items:center;min-height:44px;color:rgba(226,232,240,0.8);text-decoration:none}
.cf-footer__col a:not(.cf-btn):hover{color:#fff;text-decoration:underline}
.cf-footer a:focus-visible{outline-color:var(--cf-blue-light)}
.cf-footer__head{margin-bottom:var(--cf-s-2);color:#fff;font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);font-weight:var(--cf-w-bold);text-transform:uppercase;letter-spacing:var(--cf-track-label)}
.cf-brand--footer,.cf-brand--footer:hover{color:#fff}
.cf-footer__line{margin-top:var(--cf-s-4);color:#fff;font-size:var(--cf-fs-base);font-weight:var(--cf-w-semibold)}
.cf-footer__fine{margin-top:var(--cf-s-2);max-width:22rem}
.cf-footer__base{margin-top:var(--cf-s-7);padding-block:var(--cf-s-5);border-top:1px solid rgba(226,232,240,0.12)}
.cf-footer__base p{margin:0}
@media (min-width:48rem){.cf-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.cf-footer__brand{grid-column:1 / -1}
}
@media (min-width:62rem){.cf-footer__grid{grid-template-columns:minmax(0,1.6fr) repeat(4,minmax(0,1fr))}
.cf-footer__brand{grid-column:auto}

}
/* ---------- 3.6 Buttons ---------- */
.cf-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--cf-s-2);min-height:48px;padding:0 var(--cf-s-5);border:1px solid transparent;border-radius:var(--cf-r-2);font-size:var(--cf-fs-base);font-weight:var(--cf-w-semibold);line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--cf-d-1) var(--cf-ease-out),border-color var(--cf-d-1) var(--cf-ease-out),color var(--cf-d-1) var(--cf-ease-out),transform var(--cf-d-2) var(--cf-ease-out)}
.cf-btn:active{transform:scale(0.97)}
.cf-btn--primary{background:var(--cf-blue);color:#fff}
.cf-btn--primary:hover{background:var(--cf-blue-hover);color:#fff}
.cf-btn--primary:active{background:var(--cf-blue-deep)}
.cf-btn--secondary{background:var(--cf-paper);color:var(--cf-ink);border-color:var(--cf-line-strong)}
.cf-btn--secondary:hover{background:var(--cf-paper-2);border-color:var(--cf-ink-3);color:var(--cf-ink)}
.cf-btn--text{min-height:44px;padding:0;background:none;color:var(--cf-blue);text-decoration:underline;text-decoration-color:transparent}
.cf-btn--text:hover{color:var(--cf-blue-hover);text-decoration-color:currentColor}
.cf-btn--sm{min-height:40px;padding:0 var(--cf-s-4);font-size:var(--cf-fs-sm)}
.cf-btn--sm::after{content:"";position:absolute;inset:-2px 0}
.cf-btn--block{display:flex;width:100%}
.cf-btn:disabled,.cf-btn[aria-disabled="true"],.cf-btn.is-disabled{opacity:0.6;cursor:not-allowed;transform:none}
.cf-btn--primary:disabled:hover,.cf-btn--primary[aria-disabled="true"]:hover{background:var(--cf-blue)}
.cf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cf-s-3)}
/* ---------- 3.7 Byline ---------- */
.cf-byline{padding-top:var(--cf-s-3);border-top:1px solid var(--cf-line);font-size:var(--cf-fs-sm);line-height:1.55;color:var(--cf-ink-3)}
.cf-byline a{color:var(--cf-ink);font-weight:var(--cf-w-semibold);text-decoration:underline}
.cf-byline a:hover{color:var(--cf-blue)}
.cf-byline--article{padding-top:0;border-top:0}
/* ---------- 3.8 Evidence tags ---------- */
.cf-tag{--tag-c:var(--cf-ink-3);--tag-bg:var(--cf-paper-3);display:inline-flex;align-items:center;gap:6px;padding:2px 6px;font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);font-weight:var(--cf-w-regular);line-height:1.4;text-transform:uppercase;letter-spacing:var(--cf-track-label);white-space:nowrap;color:var(--tag-c);background:var(--tag-bg);border:1px solid var(--tag-c);border-color:color-mix(in srgb,var(--tag-c) 40%,transparent);border-radius:var(--cf-r-1)}
.cf-tag--observation{--tag-c:var(--cf-observation);--tag-bg:var(--cf-observation-tint)}
.cf-tag--hypothesis{--tag-c:var(--cf-hypothesis);--tag-bg:var(--cf-hypothesis-tint)}
.cf-tag--confirmed{--tag-c:var(--cf-confirmed);--tag-bg:var(--cf-confirmed-tint)}
.cf-tag--unconfirmed{--tag-c:var(--cf-unconfirmed);--tag-bg:var(--cf-unconfirmed-tint)}
.cf-tag--sample{--tag-c:var(--cf-ink-2);--tag-bg:var(--cf-paper-3)}
.cf-tag--illustrative{--tag-c:var(--cf-ink-3);--tag-bg:var(--cf-paper-2);border-style:dashed}
.cf-tag--not-shipped{--tag-c:var(--cf-ink-3);--tag-bg:#EEF2F6;border-style:dashed}
.cf-tag--live{--tag-c:var(--cf-confirmed);--tag-bg:var(--cf-confirmed-tint)}
.cf-tag--live::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
/* ---------- 3.9 Finding cards ---------- */
.cf-findings{display:grid;gap:var(--cf-s-6)}
.cf-findings__title{font-size:var(--cf-fs-xl)}
.cf-findings__group{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--cf-s-4)}
.cf-findings__group-title{grid-column:1 / -1;display:flex;align-items:center;gap:var(--cf-s-2);font-size:var(--cf-fs-base)}
.cf-findings__count{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;padding:0 6px;font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);color:var(--cf-ink-3);background:var(--cf-paper-3);border-radius:var(--cf-r-1)}
.cf-finding{--status:var(--cf-line-strong);display:flex;flex-direction:column;gap:var(--cf-s-3);min-width:0;padding:var(--cf-s-5);background:var(--cf-paper);border:1px solid var(--cf-line);border-left:3px solid var(--status);border-radius:var(--cf-r-3);box-shadow:var(--cf-shadow-1)}
.cf-finding[data-status="confirmed"]{--status:var(--cf-confirmed)}
.cf-finding[data-status="unconfirmed"]{--status:var(--cf-unconfirmed)}
.cf-finding__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cf-s-2)}
.cf-finding__id{margin-right:var(--cf-s-1);font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);font-weight:var(--cf-w-bold);color:var(--cf-ink-3)}
.cf-finding__title{font-size:var(--cf-fs-lg)}
.cf-finding__body{color:var(--cf-ink-2)}
.cf-finding__meta{display:grid;gap:var(--cf-s-2);margin-top:auto;padding-top:var(--cf-s-3);border-top:1px solid var(--cf-line);font-size:var(--cf-fs-sm)}
.cf-finding__meta>div{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:var(--cf-s-3)}
.cf-finding__meta dt{font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);text-transform:uppercase;letter-spacing:var(--cf-track-label);color:var(--cf-muted);padding-top:2px}
.cf-finding__meta dd{margin:0;color:var(--cf-ink-2);overflow-wrap:anywhere}
.cf-loss{font-weight:var(--cf-w-semibold)}
.cf-loss[data-loss="high"]{color:var(--cf-loss-high)}
.cf-loss[data-loss="medium"]{color:var(--cf-loss-med)}
.cf-loss[data-loss="low"]{color:var(--cf-loss-low)}
@media (min-width:48rem){.cf-findings__group{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* ---------- 3.10 Ladder strip ---------- */
.cf-ladder{display:grid;grid-template-columns:1.75rem minmax(0,1fr);column-gap:var(--cf-s-4);row-gap:var(--cf-s-5)}
.cf-ladder__head{grid-column:1 / -1;font-size:var(--cf-fs-xl)}
.cf-ladder__scale{display:flex;flex-direction:column;border-radius:var(--cf-r-2);overflow:hidden}
.cf-ladder__seg{flex:var(--days,1) 1 0;display:flex;align-items:center;justify-content:center;padding:var(--cf-s-2) 0;writing-mode:vertical-rl;white-space:nowrap;font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);text-transform:uppercase;letter-spacing:var(--cf-track-label);background:var(--cf-blue);color:#fff}
.cf-ladder__seg:nth-child(even){background:var(--cf-blue-light);color:var(--cf-ink)}
.cf-ladder__seg--open{background:repeating-linear-gradient(-45deg,var(--cf-blue-deep) 0 6px,var(--cf-blue) 6px 12px);color:#fff}
.cf-ladder__seg--open:nth-child(even){background:repeating-linear-gradient(-45deg,var(--cf-blue-light) 0 6px,#7BC0E0 6px 12px);color:var(--cf-ink)}
.cf-ladder__rungs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--cf-s-5)}
.cf-ladder__rung{display:flex;flex-direction:column;gap:var(--cf-s-1);min-width:0;padding-top:var(--cf-s-3);border-top:2px solid var(--cf-blue)}
.cf-ladder__num{font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);font-weight:var(--cf-w-bold);color:var(--cf-blue-deep)}
.cf-ladder__name{align-self:flex-start;display:inline-flex;align-items:center;min-height:44px;margin-block:-10px -6px;font-size:var(--cf-fs-lg);font-weight:var(--cf-w-semibold);color:var(--cf-ink);text-decoration:none}
.cf-ladder__name:hover{color:var(--cf-blue);text-decoration:underline}
.cf-ladder__days{font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);text-transform:uppercase;letter-spacing:var(--cf-track-label);color:var(--cf-blue-deep)}
.cf-ladder__deliv{margin-top:var(--cf-s-1);font-size:var(--cf-fs-sm);color:var(--cf-ink-2)}
.cf-ladder__exit{font-size:var(--cf-fs-sm);color:var(--cf-ink-3)}
.cf-ladder__exit b{color:var(--cf-ink)}
@media (min-width:48rem){.cf-ladder{grid-template-columns:minmax(0,1fr)}
.cf-ladder__scale{flex-direction:row;height:2.25rem}
.cf-ladder__seg{writing-mode:horizontal-tb;padding:0 var(--cf-s-2);min-width:0;overflow:hidden;text-overflow:ellipsis}
.cf-ladder__rungs{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--cf-s-6) var(--cf-s-5)}
.cf-ladder__rung:last-child:nth-child(odd){grid-column:1 / -1}
}
@media (min-width:62rem){.cf-ladder__rungs{grid-template-columns:repeat(5,minmax(0,1fr))}
.cf-ladder__rung:last-child:nth-child(odd){grid-column:auto}
}
/* ---------- 3.11 Track-record tiles ---------- */
.cf-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--cf-s-3)}
.cf-tile{display:flex;flex-direction:column;gap:var(--cf-s-2);min-width:0;padding:var(--cf-s-5) var(--cf-s-4);background:var(--cf-blue-wash);border:1px solid var(--cf-line);border-radius:var(--cf-r-3)}
.cf-tile__num{font-family:var(--cf-font-mono);font-weight:var(--cf-w-bold);font-size:clamp(2rem, 1.6rem + 2vw, 3rem);line-height:1;letter-spacing:-0.03em;color:var(--cf-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
@media (max-width:30rem){.cf-tile__num{font-size:1.6rem}}
@media (min-width:62rem) and (max-width:75rem){.cf-tile__num{font-size:clamp(1.6rem,1rem + 1.2vw,2.25rem)}}
.cf-tile__line{font-size:var(--cf-fs-sm);line-height:1.45;color:var(--cf-ink-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#record .cf-tile__line,#track-record .cf-tile__line{display:block;-webkit-line-clamp:unset;overflow:visible}
.cf-tile__src{margin-top:auto;font-size:var(--cf-fs-xs);color:var(--cf-muted)}
.cf-tile__src a{color:var(--cf-blue-deep)}
@media (min-width:48rem){.cf-tiles{gap:var(--cf-s-4)}
.cf-tile{padding:var(--cf-s-5)}
}
@media (min-width:62rem){.cf-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
}
/* ---------- 3.12 Attack tree ---------- */
.cf-tree{--rail:1.5px solid var(--cf-blue-light);--gap:var(--cf-s-3);--tick:1.35rem;margin:0}
.cf-tree__root{padding:var(--cf-s-3) var(--cf-s-4);background:var(--cf-ink);color:#fff;border-radius:var(--cf-r-2);font-weight:var(--cf-w-semibold);line-height:1.4}
.cf-tree__root .cf-tree__id{color:var(--cf-blue-light);margin-right:var(--cf-s-2)}
.cf-tree__level{list-style:none;margin:0;padding:0 0 0 1.5rem}
.cf-tree__node{position:relative;padding-top:var(--gap)}
.cf-tree__node::before,.cf-tree__node::after{content:"";position:absolute;left:-1rem;transition:transform var(--cf-d-draw) var(--cf-ease-out);transition-delay:calc(var(--i,0) * 60ms)}
.cf-tree__node::before{top:0;bottom:0;border-left:var(--rail);transform-origin:top}
.cf-tree__node:last-child::before{bottom:auto;height:calc(var(--gap) + var(--tick))}
.cf-tree__node::after{top:calc(var(--gap) + var(--tick));width:0.85rem;border-top:var(--rail);transform-origin:left}
.cf-tree__level .cf-tree__level>.cf-tree__node{--i:1}
.cf-tree__level .cf-tree__level .cf-tree__level>.cf-tree__node{--i:2}
.cf-tree__card{--loss:var(--cf-line-strong);display:flex;flex-wrap:wrap;align-items:center;gap:var(--cf-s-2);min-width:0;padding:var(--cf-s-2) var(--cf-s-3);min-height:calc(2 * var(--tick));background:var(--cf-paper);border:1px solid var(--cf-line);border-left:3px solid var(--loss);border-radius:var(--cf-r-2);font-size:var(--cf-fs-sm);line-height:1.4;color:var(--cf-ink)}
.cf-tree__id{font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);font-weight:var(--cf-w-bold);color:var(--cf-blue-deep)}
.cf-tree__label{flex:1 1 10rem;min-width:0}
.cf-tree__node[data-loss="high"]>.cf-tree__card{--loss:var(--cf-loss-high)}
.cf-tree__node[data-loss="medium"]>.cf-tree__card{--loss:var(--cf-loss-med)}
.cf-tree__node[data-loss="low"]>.cf-tree__card{--loss:var(--cf-loss-low)}
.cf-tree__node[data-loss]>.cf-tree__card::after{margin-left:auto;padding:1px 6px;border:1px solid currentColor;border-radius:var(--cf-r-1);font-family:var(--cf-font-mono);font-size:0.6875rem;text-transform:uppercase;letter-spacing:var(--cf-track-label);color:var(--loss)}
.cf-tree__node[data-loss="high"]>.cf-tree__card::after{content:"High"}
.cf-tree__node[data-loss="medium"]>.cf-tree__card::after{content:"Medium"}
.cf-tree__node[data-loss="low"]>.cf-tree__card::after{content:"Low"}
.cf-tree__cap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cf-s-2);margin-top:var(--cf-s-5);font-size:var(--cf-fs-sm);color:var(--cf-muted)}
@media (min-width:62rem){.cf-tree__root{max-width:40rem;margin-inline:auto;text-align:center}
.cf-tree>.cf-tree__level{position:relative;display:flex;padding:1.5rem 0 0}
.cf-tree>.cf-tree__level::before{content:"";position:absolute;left:50%;top:0;height:1.5rem;border-left:var(--rail);transform-origin:top;transition:transform var(--cf-d-draw) var(--cf-ease-out)}
.cf-tree>.cf-tree__level>.cf-tree__node{flex:1 1 0;min-width:0;padding:1.5rem var(--cf-s-2) 0}
.cf-tree>.cf-tree__level>.cf-tree__node::before{left:0;right:0;top:0;bottom:auto;height:0;border-left:0;border-top:var(--rail);transform-origin:center}
.cf-tree>.cf-tree__level>.cf-tree__node:first-child::before{left:50%;transform-origin:left}
.cf-tree>.cf-tree__level>.cf-tree__node:last-child::before{right:50%;transform-origin:right}
.cf-tree>.cf-tree__level>.cf-tree__node:only-child::before{display:none}
.cf-tree>.cf-tree__level>.cf-tree__node::after{left:50%;top:0;width:0;height:1.5rem;border-top:0;border-left:var(--rail);transform-origin:top}
.cf-tree>.cf-tree__level>.cf-tree__node>.cf-tree__level{padding-left:1.75rem}
.cf-tree__cap{justify-content:center}
}
@media (prefers-reduced-motion:no-preference){.cf-js .cf-tree:not(.is-drawn) .cf-tree__node::before,.cf-js .cf-tree:not(.is-drawn) .cf-tree__level::before{transform:scaleY(0)}
.cf-js .cf-tree:not(.is-drawn) .cf-tree__node::after{transform:scaleX(0)}
}
@media (prefers-reduced-motion:no-preference) and (min-width:62rem){.cf-js .cf-tree:not(.is-drawn)>.cf-tree__level>.cf-tree__node::before{transform:scaleX(0)}
.cf-js .cf-tree:not(.is-drawn)>.cf-tree__level>.cf-tree__node::after{transform:scaleY(0)}
}
/* ---------- 3.13 Comparison table (also styles tables in .cf-prose) ---------- */
.cf-compare__wrap{overflow-x:auto;background:var(--cf-paper);border:1px solid var(--cf-line);border-radius:var(--cf-r-3)}
.cf-compare__table,.cf-prose table{width:100%;font-size:var(--cf-fs-sm);line-height:1.5}
.cf-compare__cap{caption-side:top;padding:var(--cf-s-4) var(--cf-s-4) var(--cf-s-3);text-align:left;font-weight:var(--cf-w-semibold);color:var(--cf-ink);font-size:var(--cf-fs-base)}
.cf-compare__table th,.cf-compare__table td,.cf-prose th,.cf-prose td{padding:var(--cf-s-3) var(--cf-s-4);text-align:left;vertical-align:top;border-top:1px solid var(--cf-line)}
.cf-compare__table thead th,.cf-compare__table thead td,.cf-prose thead th{background:var(--cf-paper-2);color:var(--cf-ink);font-weight:var(--cf-w-semibold)}
.cf-compare__table tbody th{width:24%;color:var(--cf-ink);font-weight:var(--cf-w-semibold)}
.cf-compare__table .is-ours{--ours-tint:color-mix(in srgb,var(--cf-blue-tint) 35%,transparent);background:linear-gradient(90deg,transparent 0,var(--ours-tint) 3rem);color:var(--cf-ink)}
.cf-compare__table thead .is-ours{color:var(--cf-blue-deep);background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--cf-blue) 40%,transparent) 3rem) top/100% 2px no-repeat,linear-gradient(90deg,transparent 0,var(--ours-tint) 3rem),var(--cf-paper-2)}
@media (max-width:39.99rem){.cf-compare__table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.cf-compare__table,.cf-compare__table tbody,.cf-compare__table tr,.cf-compare__table th,.cf-compare__table td{display:block;width:100%}
.cf-compare__table tbody th{width:100%;background:var(--cf-paper-2)}
.cf-compare__table td{border-top:0;padding-top:var(--cf-s-2)}
.cf-compare__table td::before{content:attr(data-label);display:block;margin-bottom:2px;font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);text-transform:uppercase;letter-spacing:var(--cf-track-label);color:var(--cf-muted)}
.cf-compare__table td.is-ours::before{color:var(--cf-blue-deep)}
.cf-compare__table .is-ours{background:var(--ours-tint)}
.cf-compare__cap{display:block;width:100%}
}
/* ---------- 3.14 Form block ---------- */
.cf-form{display:grid;gap:var(--cf-s-4);padding:var(--cf-s-5);background:var(--cf-paper);border:1px solid var(--cf-line);border-radius:var(--cf-r-3);box-shadow:var(--cf-shadow-2)}
.cf-form__grid{display:grid;gap:var(--cf-s-4)}
.cf-field{display:flex;flex-direction:column;gap:var(--cf-s-2);min-width:0}
.cf-field label{font-size:var(--cf-fs-sm);font-weight:var(--cf-w-semibold);color:var(--cf-ink)}
.cf-field input,.cf-field textarea,.cf-field select{width:100%;min-height:48px;padding:var(--cf-s-3) var(--cf-s-4);background:var(--cf-paper-3);color:var(--cf-ink);border:1px solid var(--cf-line-strong);border-radius:var(--cf-r-2);font-size:var(--cf-fs-base);line-height:1.4;transition:border-color var(--cf-d-1) var(--cf-ease-out),background-color var(--cf-d-1) var(--cf-ease-out)}
.cf-field textarea{resize:vertical;min-height:5.5rem}
.cf-field input::placeholder,.cf-field textarea::placeholder{color:var(--cf-muted);opacity:1}
.cf-field input:hover,.cf-field textarea:hover{border-color:var(--cf-ink-3)}
.cf-field input:focus,.cf-field textarea:focus{background:var(--cf-paper);border-color:var(--cf-blue)}
.cf-field input[aria-invalid="true"],.cf-field textarea[aria-invalid="true"]{border-color:var(--cf-loss-high)}
.cf-form__status{margin:0;font-size:var(--cf-fs-sm);color:var(--cf-ink-3)}
.cf-form__status:empty{display:none}
.cf-form__status[data-state="success"]{color:var(--cf-confirmed)}
.cf-form__status[data-state="error"]{color:var(--cf-loss-high)}
.cf-form__status[data-state="pending"],.cf-form__status[data-state="sending"]{color:var(--cf-ink-3)}
.cf-form__status[data-state="success"],.cf-form__status[data-state="error"]{padding:var(--cf-s-2) var(--cf-s-3);border-radius:var(--cf-r-2);font-weight:var(--cf-w-semibold)}
.cf-form__status[data-state="success"]{background:var(--cf-confirmed-tint)}
.cf-form__status[data-state="error"]{background:#FDECEA}
.cf-form__fine{margin-top:var(--cf-s-3);font-size:var(--cf-fs-sm);color:var(--cf-muted)}
.cf-form--inline{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--cf-s-3);padding:var(--cf-s-4);box-shadow:var(--cf-shadow-1)}
.cf-form--inline .cf-field{flex:1 1 15rem}
.cf-form--inline .cf-btn{flex:0 0 auto}
.cf-form--inline .cf-form__status{flex:1 0 100%}
@media (max-width:29.99rem){.cf-form--inline .cf-btn{flex:1 0 100%}
}
@media (min-width:48rem){.cf-form{padding:var(--cf-s-6)}
.cf-form__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.cf-form--inline{padding:var(--cf-s-4)}
}
/* ---------- 3.15 Article layout ---------- */
.cf-article{padding-block:var(--cf-s-7) var(--cf-section-y)}
.cf-article__kicker,.cf-article__issue{font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);text-transform:uppercase;letter-spacing:var(--cf-track-label);color:var(--cf-ink-3)}
.cf-article__kicker a{display:inline-flex;align-items:center;min-height:44px;color:var(--cf-blue)}
.cf-article__issue{margin-bottom:var(--cf-s-3);color:var(--cf-blue-deep);font-weight:var(--cf-w-bold)}
.cf-article__title{margin-top:var(--cf-s-3);font-size:var(--cf-fs-3xl)}
.blog-meta{margin-top:var(--cf-s-4)}
.cf-article__dek{margin-top:var(--cf-s-5);font-size:var(--cf-fs-lg);line-height:1.5;color:var(--cf-ink-3)}
.cf-article .cf-tree,.cf-article .cf-findings{margin-top:var(--cf-s-7)}
.cf-prose{counter-reset:cf-sec;margin-top:var(--cf-s-6);font-size:var(--cf-fs-base);line-height:var(--cf-lh-prose);color:var(--cf-ink-2)}
.cf-prose>* + *{margin-top:var(--cf-s-4)}
.cf-prose h2{counter-increment:cf-sec;margin-top:var(--cf-s-7);font-size:var(--cf-fs-xl)}
.cf-prose h2::before{content:"\00A7 " counter(cf-sec);display:block;margin-bottom:var(--cf-s-2);font-family:var(--cf-font-mono);font-size:var(--cf-fs-xs);font-weight:var(--cf-w-bold);letter-spacing:var(--cf-track-label);color:var(--cf-blue)}
.cf-prose h3{margin-top:var(--cf-s-6);font-size:var(--cf-fs-lg)}
.cf-prose h2 + *,.cf-prose h3 + *{margin-top:var(--cf-s-3)}
.cf-prose ul,.cf-prose ol{padding-left:1.4em}
.cf-prose li + li{margin-top:var(--cf-s-2)}
.cf-prose li::marker{color:var(--cf-blue)}
.cf-prose a{text-decoration:underline}
.cf-prose code{padding:0.1em 0.35em;background:var(--cf-paper-3);border-radius:var(--cf-r-1);color:var(--cf-ink)}
.cf-prose pre{padding:var(--cf-s-4);overflow-x:auto;background:var(--cf-paper-3);border-radius:var(--cf-r-2);line-height:1.55}
.cf-prose pre code{padding:0;background:none}
.cf-prose blockquote{padding-left:var(--cf-s-4);border-left:3px solid var(--cf-blue-light);color:var(--cf-ink);font-size:var(--cf-fs-lg)}
.cf-prose figure figcaption{margin-top:var(--cf-s-2);font-size:var(--cf-fs-sm);color:var(--cf-muted)}
.cf-prose table{display:block;overflow-x:auto;border:1px solid var(--cf-line);border-radius:var(--cf-r-3)}
.cf-prose .cf-compare table{display:table;border:0;border-radius:0}
.example-box{padding:var(--cf-s-4) var(--cf-s-5);background:var(--cf-blue-wash);border-left:3px solid var(--cf-blue);border-radius:0 var(--cf-r-2) var(--cf-r-2) 0}
.cta-box{padding:var(--cf-s-5);background:var(--cf-paper-2);border:1px solid var(--cf-line);border-radius:var(--cf-r-3)}
.example-box>* + *,.cta-box>* + *{margin-top:var(--cf-s-3)}
.cf-signoff{margin-top:var(--cf-s-6);font-weight:var(--cf-w-semibold);color:var(--cf-ink)}
.cf-article__next{margin-top:var(--cf-s-8);padding:var(--cf-s-5);background:var(--cf-blue-wash);border:1px solid var(--cf-line);border-radius:var(--cf-r-3)}
.cf-article__next>* + *{margin-top:var(--cf-s-3)}
/* ---------- Homepage helpers ---------- */
.cf-hero{position:relative;padding-block:var(--cf-s-7) var(--cf-section-y);background-color:var(--cf-paper);background-image:linear-gradient(rgba(90,174,214,0.14) 1px,transparent 1px),linear-gradient(90deg,rgba(90,174,214,0.14) 1px,transparent 1px);background-size:32px 32px;background-position:-1px -1px}
.cf-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 55%,var(--cf-paper))}
.cf-hero>*{position:relative;z-index:1}
.cf-hero__inner{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--cf-s-7);align-items:start}
.cf-hero__title{font-size:var(--cf-fs-3xl);line-height:var(--cf-lh-tight);letter-spacing:var(--cf-track-h1)}
.cf-hero__lead{margin-top:var(--cf-s-5);font-size:var(--cf-fs-lg);color:var(--cf-ink-3);max-width:34rem}
.cf-hero .cf-actions{margin-top:var(--cf-s-6)}
.cf-hero .cf-byline{margin-top:var(--cf-s-6);max-width:36rem}
@media (min-width:62rem){.cf-hero{padding-top:var(--cf-s-8)}
.cf-hero__inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--cf-s-8)}
}
.cf-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--cf-s-4);margin:var(--cf-s-6) 0 0}
@media (min-width:48rem){.cf-cards{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}}
.cf-card{min-width:0;padding:var(--cf-s-5);background:var(--cf-paper);border:1px solid var(--cf-line);border-radius:var(--cf-r-3);box-shadow:var(--cf-shadow-1)}
.cf-card>* + *{margin-top:var(--cf-s-3)}
.cf-card__title{font-size:var(--cf-fs-lg)}
.cf-close{padding-block:var(--cf-section-y);background:var(--cf-blue-wash);border-top:1px solid var(--cf-line);text-align:center}
.cf-close h2{max-width:22em;margin-inline:auto}
.cf-close p{max-width:var(--cf-measure);margin:var(--cf-s-4) auto 0;color:var(--cf-ink-3)}
.cf-close .cf-actions{justify-content:center;margin-top:var(--cf-s-6)}
