@font-face{font-family:"Oswald";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/oswald-400.6614389ac1.woff2) format("woff2")}
@font-face{font-family:"Oswald";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/oswald-500.3ed849aed5.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-400.248289744b.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-500.4d42c785b6.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-400.bb87500e32.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-500.d32f0e0701.woff2) format("woff2")}

:root{--paper:#F3F4F5;--card:#FFFFFF;--ink:#1E1E1C;--ink-2:#5F5F5A;--ink-3:#6A6964;--line:#E5E3DC;--line-2:#D6D4CC;--tint:#F7F6F2;--tint-2:#ECEBE6;--tint-3:#DCDAD2;
--green:#2F7A5E;--green-2:#256349;--green-t:#E3F0E9;--green-tx:#1D5A42;--red:#A9442F;--red-t:#F6E6E1;--red-tx:#7C3122;--blue:#3E7DBF;--blue-t:#E4EEF8;--blue-tx:#24507F;--amber:#B8862A;--amber-t:#F7EEDA;--amber-tx:#7A5713;
--disp:"Oswald","Barlow Condensed","Arial Narrow",sans-serif;--sans:"IBM Plex Sans",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--r:10px;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--paper:#151514;--card:#1E1E1C;--ink:#EDECE7;--ink-2:#B4B3AC;--ink-3:#94938D;--line:#2E2E2B;--line-2:#3A3A36;--tint:#232321;--tint-2:#2A2A27;--tint-3:#343431;--green:#4FA383;--green-2:#3E8A6C;--green-t:#1E3A2F;--green-tx:#BFE3D2;--red:#D2705B;--red-t:#3E2620;--red-tx:#F2C8BD;--blue:#7CA9DA;--blue-t:#1E2E40;--blue-tx:#C7DBF2;--amber:#D6A64C;--amber-t:#3A3018;--amber-tx:#F0D9A6}}
:root[data-theme="dark"]{--paper:#151514;--card:#1E1E1C;--ink:#EDECE7;--ink-2:#B4B3AC;--ink-3:#94938D;--line:#2E2E2B;--line-2:#3A3A36;--tint:#232321;--tint-2:#2A2A27;--tint-3:#343431;--green:#4FA383;--green-2:#3E8A6C;--green-t:#1E3A2F;--green-tx:#BFE3D2;--red:#D2705B;--red-t:#3E2620;--red-tx:#F2C8BD;--blue:#7CA9DA;--blue-t:#1E2E40;--blue-tx:#C7DBF2;--amber:#D6A64C;--amber-t:#3A3018;--amber-tx:#F0D9A6}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
p{margin:0}
img{max-width:100%}
h1,h2,h3,h4{font-family:var(--disp);font-weight:500;line-height:1.1;margin:0;letter-spacing:.01em;text-transform:uppercase}
h1{font-size:2.4rem}h2{font-size:1.6rem}h3{font-size:1.15rem}h4,.h4{font-size:1.05rem;letter-spacing:.03em}
.lbl{font-family:var(--sans);font-size:.7rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.lbl.g,.lbl.b,.lbl.r{color:var(--ink-2)}
.muted{color:var(--ink-2)}.small{font-size:.9rem}.mono{font-family:var(--mono);font-size:.78rem;color:var(--ink-3)}
/* topbar */
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--card);border-bottom:1px solid var(--line);height:56px;display:flex;align-items:center;gap:1.4rem;padding:0 1.4rem}
.brand{display:flex;align-items:center;gap:.7rem;padding-right:1.4rem;border-right:1px solid var(--line);height:32px}
.brand img{height:30px;width:auto;display:block}.brand .d{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .brand .l{display:none}:root:not([data-theme="light"]) .brand .d{display:block}}
:root[data-theme="dark"] .brand .l{display:none}:root[data-theme="dark"] .brand .d{display:block}
.suite{font-family:var(--disp);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap}
.tabs{display:flex;gap:.2rem;margin-left:.6rem}
.tab{position:relative}
.tab .sub{display:none;position:absolute;top:100%;left:0;min-width:230px;padding:.5rem 0;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.1);z-index:30;flex-direction:column}
.tab:hover .sub,.tab:focus-within .sub{display:flex}
.tab .sub::before{content:"";position:absolute;top:-10px;left:0;right:0;height:10px}
.tab .sub a{font-family:var(--sans);text-transform:none;letter-spacing:0;font-size:.9rem;color:var(--ink);padding:.45rem 1rem;border-radius:0;white-space:nowrap}
.tab .sub a:hover{background:var(--tint);color:var(--green-tx)}
.tab .sub .sep{display:block;height:1px;background:var(--line);margin:.4rem 0}
.tab .sub a.sub-h{font-family:var(--disp);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:var(--ink)}
.tab .sub a.sub-i{padding-left:1.8rem;font-size:.86rem;color:var(--ink-2)}
.tab .sub.sub-wide{max-height:calc(100vh - 80px);overflow:auto}
.tabs a{font-family:var(--disp);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--ink-2);padding:.45rem .8rem;border-radius:8px;white-space:nowrap;display:flex;align-items:center;gap:.5rem}
.tabs a:hover{background:var(--tint);color:var(--ink)}
.tabs a.on{background:var(--tint);color:var(--ink)}
.tabs a .mk{display:none;gap:2px;height:12px}.tabs a.on .mk{display:flex}
.tabs a .mk i{display:block;width:3px;background:var(--green);transform:skewX(-22deg)}

.topbar .right{margin-left:auto}
.cta{font-family:var(--disp);text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;padding:.45rem .9rem;border-radius:999px;background:var(--ink);color:var(--paper);white-space:nowrap}
.cta.o{background:transparent;color:var(--ink);border:1px solid var(--ink)}
/* layout */
main.page{padding:1.6rem 2rem 4rem;max-width:1180px;margin:0 auto;width:100%}
.shell{display:grid;grid-template-columns:230px 1fr;min-height:60vh;max-width:1400px;margin:0 auto}
nav.side{border-right:1px solid var(--line);background:var(--card);padding:1.4rem 0;position:sticky;top:calc(56px + env(safe-area-inset-top,0px));height:calc(100vh - 56px);overflow:auto;align-self:start}
nav.side .sec{padding:1rem 1.4rem .4rem}
nav.side a{display:block;padding:.45rem 1.4rem;color:var(--ink-2);font-size:.92rem;border-left:3px solid transparent}
nav.side a:hover{color:var(--ink);background:var(--tint)}
nav.side a.on{color:var(--green-tx);background:var(--green-t);border-left-color:var(--green)}
nav.side a.sub{padding-left:2.2rem;font-size:.86rem}
.shell main.page{margin:0}
.crumb{font-family:var(--disp);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.6rem}
.crumb a:hover{color:var(--ink)}.crumb b{color:var(--ink);font-weight:500}
header.page{padding:0 0 1.4rem;border-bottom:1px solid var(--line-2);margin-bottom:1.4rem}
header.page p{max-width:70ch;color:var(--ink-2);margin-top:.6rem;font-size:1rem}
header.page .pills{margin-top:.9rem}
/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.card>.hd{padding:.85rem 1.2rem;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap}
.card>.hd h3{font-size:1.05rem}
.card>.hd span{font-size:.85rem;color:var(--ink-3)}
.card>.bd{padding:1.1rem 1.2rem}
.card.g>.hd,.card.b>.hd,.card.r>.hd{border-left:4px solid var(--ink)}
a.card{display:block}a.card:hover{border-color:var(--line-2);box-shadow:0 6px 24px rgba(0,0,0,.05)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.8rem}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
.stack{display:grid;gap:.8rem}
.sec{margin-top:2.2rem}
.sec>h2{margin-bottom:.8rem;padding-top:1.2rem;border-top:1px solid var(--line-2)}
.sec>.lbl{display:block;margin-bottom:.7rem}
/* pills & tags */
.pills{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.pill{font-family:var(--sans);font-size:.72rem;font-weight:500;border-radius:999px;padding:.2rem .65rem;letter-spacing:.02em;background:var(--tint-2);color:var(--ink-2);border:1px solid transparent}
.pill.a{background:var(--blue-t);color:var(--blue-tx)}.pill.m{background:var(--red-t);color:var(--red-tx)}.pill.b{background:var(--green-t);color:var(--green-tx)}.pill.r{background:var(--amber-t);color:var(--amber-tx)}
.pill.on{background:var(--ink);color:var(--paper)}
a.pill:hover{border-color:var(--ink-3)}
.chips{display:flex;gap:.45rem;flex-wrap:wrap}
.chip{font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;padding:.45rem 1rem;border-radius:999px;border:1px solid var(--line-2);background:var(--card);color:var(--ink);display:inline-flex;align-items:center;min-height:40px}
.chip:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.chips.two{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.chips.two .chip{display:flex;align-items:center}
@media (max-width:900px){.chips.two{grid-template-columns:1fr}}
.chip.b,.chip.g,.chip.r{border-color:var(--line-2);color:var(--ink)}.chip.b:hover,.chip.g:hover,.chip.r:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}
/* hero (home) */
.hero{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:1.2rem}
.hero .tx{padding:1.6rem 1.8rem 1.8rem;text-align:center}
.hero .name{font-family:var(--disp);font-size:.85rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2)}
.hero h1{font-size:2.5rem;text-transform:none;margin:.3rem auto .6rem}.hero h1 b{font-weight:500;text-transform:uppercase}
.hero p{max-width:78ch;margin:0 auto;font-size:1rem;color:var(--ink-2)}
.hero img{width:auto;max-width:100%;max-height:340px;display:block;margin:1.4rem auto 0;border:1px solid var(--line);border-radius:6px;background:var(--card)}
.hero .pts{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-top:1.3rem;text-align:left}
.hero .pts div{border-top:2px solid;padding-top:.6rem;font-size:.95rem}
.hero .pts .a{border-color:var(--green)}.hero .pts .m{border-color:var(--blue)}.hero .pts .g{border-color:var(--red)}
.hero .pts b{font-family:var(--disp);font-weight:500;text-transform:uppercase;letter-spacing:.06em;font-size:1rem;margin-right:.45rem}
.hero .acts{display:flex;justify-content:center;gap:.6rem;margin-top:1.3rem;flex-wrap:wrap}
/* three */
.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.8rem}
.three>a,.three>div{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.2rem;display:block}
.three h3{font-size:1.05rem;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:2px solid}
.three .g h3,.three .b h3,.three .r h3{border-color:var(--ink)}
.three .q{font-family:var(--disp);font-size:1.5rem;text-transform:none;letter-spacing:0;display:block;margin-bottom:.4rem}
.three p{font-size:.92rem;color:var(--ink-2);margin-top:.2rem}
.three ul{margin:.6rem 0 0;padding:0;list-style:none;font-size:.9rem}
.three li{position:relative;padding-left:1.1rem;margin:.22rem 0}.three li::before{content:"–";position:absolute;left:0;color:var(--ink-3)}
/* product structure */
.pstruct{display:grid;grid-template-columns:1fr 92px;grid-auto-flow:row dense;gap:.6rem 1rem}.pstruct>.lay{grid-column:2}.pstruct>.layer{grid-column:1}
@media (max-width:900px){.pstruct>.lay,.pstruct>.layer{grid-column:auto}.pstruct>.lay{margin-top:.6rem}}
.layer{display:grid;gap:.6rem}.layer.two{grid-template-columns:1fr 1fr}
.prod{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-align:center;display:block}
.prod .t{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:1.05rem;padding:.55rem .7rem .55rem 1rem;background:var(--tint-3);border-bottom:1px solid var(--line);border-left:4px solid var(--ink);display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.prod .t span{flex:1;text-align:center}
.prod .arr{font-style:normal;font-family:var(--mono);width:30px;height:30px;border-radius:50%;border:1.5px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0;transition:background .15s,color .15s,transform .15s}
.prod.an .arr{color:var(--green)}.prod.mo .arr{color:var(--blue)}.prod.mg .arr{color:var(--red)}
.prod:hover .arr{color:#fff;transform:translateX(3px)}.prod.an:hover .arr{background:var(--green)}.prod.mo:hover .arr{background:var(--blue)}.prod.mg:hover .arr{background:var(--red)}
.prod.an:hover{border-color:var(--green)}.prod.mo:hover{border-color:var(--blue)}.prod.mg:hover{border-color:var(--red)}
.prod.co .t{background:color-mix(in srgb,var(--amber) 24%,var(--card));border-left-color:var(--amber)}.prod.co .arr{color:color-mix(in srgb,var(--amber) 55%,var(--ink))}.prod.co:hover{border-color:var(--amber)}.prod.co:hover .arr{background:var(--amber);color:#fff}
.prod.mg .t{border-left-color:var(--red)}.prod.mo .t{border-left-color:var(--blue)}.prod.an .t{border-left-color:var(--green)}
.prod{transition:transform .15s,box-shadow .15s,border-color .15s;cursor:pointer}
.prod:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.08)}
.prod .d{padding:.8rem 1rem .9rem;font-size:.93rem}
.prod .go{font-family:var(--disp);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--green-tx);padding:.3rem 1rem .8rem;display:flex;justify-content:center;gap:.4rem;align-items:center}
.prod.mo .go{color:var(--blue-tx)}.prod.mg .go{color:var(--red-tx)}
.prod .go span{transition:transform .15s}.prod:hover .go span{transform:translateX(4px)}
.chap{padding:1.6rem 0 2rem;border-top:1px solid var(--line-2);scroll-margin-top:70px}
.chap:first-of-type{border-top:0;padding-top:.2rem}
.chap+.sec{border-top:1px solid var(--line-2);padding-top:1.6rem;margin-top:0}
.grid5{display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem}
@media (max-width:900px){.grid5{grid-template-columns:1fr}}
.chap-h{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.chap-h h2{font-size:1.5rem}.chap-h span{max-width:70ch}
.lay{display:flex;align-items:center;justify-content:center;font-family:var(--disp);text-transform:uppercase;letter-spacing:.16em;font-size:.85rem;color:var(--ink-2);border-left:1px solid var(--line-2)}
/* slides (techie pages) */
ol.slides{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
ol.slides>li{display:grid;grid-template-columns:3.2rem 1fr;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
ol.slides>li .n{font-family:var(--mono);font-size:.85rem;color:var(--ink-3);padding:1.1rem 0 0;text-align:center;border-right:1px solid var(--line);background:var(--tint)}
ol.slides>li>div{padding:1rem 1.2rem 1.1rem}
ol.slides .h4{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
ol.slides .msg{margin:.3rem 0 .2rem;color:var(--ink-2);font-size:.95rem}
.shots{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:.9rem 0 .2rem}
.shots.one{grid-template-columns:1fr}
.shots figure{margin:0}
.shots img{width:100%;aspect-ratio:2/1;object-fit:cover;object-position:top;display:block;border:1px solid var(--line);border-radius:8px;background:var(--tint);cursor:zoom-in}
.shots figcaption{margin-top:.4rem;letter-spacing:.08em;font-size:.68rem;font-weight:500;text-transform:uppercase;color:var(--ink-3)}
.shot-ph{font-family:var(--mono);font-size:.72rem;color:var(--ink-3);border:1px dashed var(--line-2);border-radius:6px;padding:.3rem .6rem;display:inline-block;margin-top:.7rem}
.tabs.sub{margin:0 0 1rem;border-bottom:1px solid var(--line);padding-bottom:.4rem}
.tabs.sub button{font-family:var(--disp);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--ink-2);padding:.45rem .9rem;border-radius:999px}
.tabs.sub button.on{background:var(--green-t);color:var(--green-tx)}
/* kpi-style flow */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.9rem 1.1rem}
.kpi .lbl{display:block;margin-bottom:.35rem}.kpis .kpi{position:relative}.kpis .kpi:not(:last-child)::after{content:"→";position:absolute;right:-.75rem;top:50%;transform:translateY(-50%);color:var(--ink-3);font-family:var(--mono);font-size:.8rem;background:var(--paper);padding:0 .15rem;z-index:1}@media (max-width:900px){.kpis .kpi:not(:last-child)::after{content:"↓";right:auto;left:50%;top:auto;bottom:-.85rem;transform:translateX(-50%)}}
.kpi .v{font-family:var(--disp);font-size:1.25rem;line-height:1.15;font-weight:500;text-transform:uppercase}
.kpi .s{font-size:.82rem;color:var(--ink-2);margin-top:.35rem}
.kpi.g{background:var(--green);border-color:var(--green);color:var(--on-green)}.kpi.g .lbl,.kpi.g .s{color:var(--on-green);opacity:.8}
.arrows{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;height:18px;margin-bottom:.2rem}
.arrows span{display:flex;justify-content:center;align-items:center;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;color:var(--ink-3)}
/* before/with */
.infrastructure{background:var(--tint);border:1px dashed var(--line-2);border-radius:var(--r);padding:1.1rem 1.2rem;color:var(--ink-2)}
.infrastructure h3,.infrastructure .lbl{color:var(--ink)}
.infrastructure .lbl{color:var(--ink-3)}
.with{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--green);border-radius:var(--r);padding:1.1rem 1.2rem}
.card p,.infrastructure p,.with p{margin-top:.4rem;font-size:.93rem;color:var(--ink-2)}
.example{border-left:4px solid var(--green)}
.note{font-size:.86rem;color:var(--amber-tx);background:var(--amber-t);border-radius:6px;padding:.35rem .7rem;display:inline-block}
.rows a{display:flex;justify-content:space-between;gap:.8rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.92rem}
.rows a:last-child{border-bottom:0}.rows a:hover{color:var(--green-tx)}.rows a span:last-child{color:var(--ink-3)}
.mini{display:block;padding:.7rem .9rem;background:var(--tint);border-radius:8px;margin-top:.5rem}
.mini:hover{background:var(--tint-2)}
.mini .mono{display:block;margin-bottom:.15rem}
.mini b{font-weight:500}
.mini .s{display:block;font-size:.85rem;color:var(--ink-2);margin-top:.15rem}
/* theme & insight cards */
.tcard{display:flex;flex-direction:column;gap:.5rem;padding:1.1rem 1.2rem}
.tcard .msg{color:var(--ink-2);font-size:.9rem}
.tcard h3{font-size:1.2rem;padding-top:.5rem;border-top:2px solid var(--ink);margin-top:.2rem}
.tcard .pills{margin-top:auto;padding-top:.6rem}
.icard{display:grid;grid-template-columns:2.6rem 1fr;overflow:hidden}
.icard .n{font-family:var(--mono);font-size:.85rem;color:var(--ink-3);padding:1rem 0 0;text-align:center;border-right:1px solid var(--line);background:var(--tint)}
.icard>div{padding:.9rem 1.1rem 1rem;display:flex;flex-direction:column;gap:.35rem}
.icard h3{font-size:1.1rem}
.icard .msg{font-size:.88rem;color:var(--ink-2)}
.icard .ft{margin-top:auto;padding-top:.5rem;display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.filters{display:grid;gap:.5rem;margin-bottom:1.2rem}
.filters .row{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.filters .row .lbl{width:90px}
/* table */
.tablewrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
table{border-collapse:collapse;width:100%;font-size:.92rem}
th,td{text-align:left;padding:.6rem 1.1rem;border-bottom:1px solid var(--line);vertical-align:top}
th{background:var(--tint-3);font-family:var(--disp);font-size:.95rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
tbody tr:last-child td{border-bottom:none}
tr.group td{font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:.9rem;padding-top:1rem;color:var(--ink)}
td.yes,td.road,td.no{font-family:var(--mono);font-size:.82rem}
td.yes{color:var(--green-tx)}td.road{color:var(--amber-tx)}td.no{color:var(--ink-3)}
td.yes::before,td.road::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:.5rem;vertical-align:1px}
td.yes::before{background:var(--green)}td.road::before{background:var(--amber)}
/* case page */
.case{display:grid;grid-template-columns:1fr 300px;gap:1.2rem}
.meta dl{margin:0;font-size:.9rem}.meta dt{margin-top:.8rem}.meta dd{margin:.15rem 0 0;color:var(--ink)}
.meta dd a{display:block}.meta dd a:hover{color:var(--green-tx)}
.dark{background:var(--ink);color:var(--paper);border-radius:var(--r);padding:1rem 1.2rem;display:block}
.dark b{font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-weight:500;display:block}
.dark span{font-size:.85rem;opacity:.75}
.photo{margin:0}.photo img{width:100%;display:block;border-radius:8px;border:1px solid var(--line)}
.photo figcaption{margin-top:.4rem;letter-spacing:.08em;font-size:.68rem;font-weight:500;text-transform:uppercase;color:var(--ink-3)}
footer{margin:2rem auto 0;max-width:1180px;padding:1rem 2rem 2rem;border-top:1px solid var(--line-2);font-family:var(--mono);font-size:.72rem;color:var(--ink-3);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
footer a:hover{color:var(--ink)}

/* ---------- before/after section (solution subpages) ---------- */
.ba{--ba-before-fill:var(--tint-2);--ba-dashed:var(--line-2);--ba-accent:var(--green);padding:.4rem 0 0}
.ba__inner{display:flex;flex-direction:column;gap:clamp(48px,6vw,80px)}
.ba__label{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.ba__label--accent{color:var(--green-tx)}
.ba__display{font-family:var(--disp);font-weight:500;text-transform:uppercase;line-height:1.05;letter-spacing:.01em}
.ba-intro{display:flex;flex-direction:column;gap:16px;max-width:860px}
.ba-intro__title{font-size:clamp(34px,4.6vw,58px)}
.ba-intro__text{font-size:clamp(15px,1.3vw,18px);line-height:1.6;color:var(--ink-2);max-width:70ch}
.ba-journey{display:flex;flex-direction:column;gap:40px}
.ba-journey__rowlabels{display:none}
.ba-step{display:flex;flex-direction:column;gap:12px}
.ba-step__head{border-top:2px solid var(--ink);padding-top:14px;display:flex;flex-direction:column;gap:6px}
.ba-step__title{font-size:clamp(24px,2vw,28px)}
.ba-cell{border-radius:12px;padding:20px;font-size:15px;line-height:1.55;display:flex;flex-direction:column;gap:6px}
.ba-cell p{margin:0;color:inherit;font-size:inherit}
.ba-cell--before{border:1.5px dashed var(--ba-dashed);color:var(--ink-2)}
.ba-cell--after{background:var(--card);border:1px solid var(--line);color:var(--ink)}
.ba-cell--before.ba-cell--result{background:var(--ba-before-fill)}
.ba-cell--after.ba-cell--result{background:var(--ba-accent);border-color:var(--ba-accent);color:var(--on-green);font-weight:500}
.ba-cell--after.ba-cell--result .ba__label{color:var(--on-green)}
@media (min-width:960px){
.ba-journey{display:grid;grid-template-columns:180px repeat(4,minmax(0,1fr));grid-template-rows:auto auto auto;column-gap:16px;row-gap:16px}
.ba-journey__rowlabels,.ba-step{display:grid;grid-row:span 3;grid-template-rows:subgrid;gap:16px}
.ba-rowlabel{display:flex;flex-direction:column;justify-content:center;gap:6px;padding-right:8px}
.ba-rowlabel__text{font-size:15px;line-height:1.45;color:var(--ink-2)}
.ba-rowlabel--after .ba-rowlabel__text{color:var(--ink)}
.ba-cell{padding:22px;font-size:15px}
.ba-cell__tag{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
.ba-outcome{display:flex;flex-direction:column;gap:18px}
.ba-outcome__grid{display:grid;grid-template-columns:1fr;gap:14px;margin:0;padding:0;list-style:none}
.ba-metric{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:clamp(20px,2.4vw,30px);display:flex;flex-direction:column;gap:10px}
.ba-metric__before{font-size:clamp(15px,1.4vw,19px);color:var(--ink-3);text-decoration:line-through}
.ba-metric__after{font-size:clamp(28px,3vw,40px);line-height:1;color:var(--green-tx)}
@media (min-width:720px){.ba-outcome__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}
.ba-example{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:clamp(24px,3.6vw,44px);display:grid;grid-template-columns:1fr;gap:28px}
.ba-example__intro{display:flex;flex-direction:column;gap:14px}
.ba-example__title{font-size:clamp(28px,3vw,40px)}
.ba-example__text{font-size:clamp(15px,1.25vw,17px);line-height:1.6;color:var(--ink-2)}
.ba-example__link{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;min-height:44px;font-weight:500;font-size:16px;border-bottom:1.5px solid currentColor}
.ba-example__link:hover{color:var(--green-tx)}
.ba-trace{list-style:none;margin:0;padding:0}
.ba-trace__item{display:flex;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}
.ba-trace__item:last-child{border-bottom:0}
.ba-trace__num{font-family:var(--mono);font-size:13px;color:var(--green-tx);width:26px;flex:none;padding-top:2px}
.ba-trace__step{font-weight:500;font-size:16px}
.ba-trace__finding{font-size:15px;line-height:1.5;color:var(--ink-2)}
@media (min-width:960px){.ba-example{grid-template-columns:repeat(2,minmax(0,1fr));gap:56px}}
.ba-powered{display:flex;flex-direction:column;gap:6px;padding-top:24px;border-top:1px solid var(--line-2)}
.ba-powered__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ba-powered__list a{display:flex;align-items:center;min-height:40px;font-size:15px}
.ba-powered__list a:hover{color:var(--green-tx)}
@media (min-width:960px){.ba-powered{flex-direction:row;align-items:center;gap:40px;padding-top:28px}.ba-powered .ba__label{width:150px;flex:none}.ba-powered__list{flex-direction:row;flex-wrap:wrap;column-gap:36px}}
.ba-more{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;padding-top:24px;border-top:1px solid var(--line-2)}
@media (max-width:900px){.ba-more{grid-template-columns:1fr}}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}


/* ---------- solutions overview (outcome first) ---------- */
.ov{padding:.4rem 0 0}
.ov__inner{display:flex;flex-direction:column;gap:clamp(44px,5.5vw,68px)}
.ov__label{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.ov__display{font-family:var(--disp);font-weight:500;text-transform:uppercase;line-height:1.05;letter-spacing:.01em}
.ov-header{display:flex;flex-direction:column;gap:24px}
.ov-header__text{display:flex;flex-direction:column;gap:14px;max-width:780px}
.ov-header__title{font-size:clamp(34px,4.6vw,58px)}
.ov-header__lead{font-size:clamp(15px,1.3vw,18px);line-height:1.6;color:var(--ink-2)}
.ov-jump{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.ov-jump a{display:inline-flex;align-items:center;min-height:40px;padding:0 18px;border-radius:999px;border:1px solid var(--line-2);font-size:14px;font-weight:500}
.ov-jump a:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
@media (min-width:1100px){.ov-header{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:48px}}
/* today / complexity block */
.ov-today{display:grid;grid-template-columns:1fr;gap:20px;background:var(--tint);border:1.5px dashed var(--line-2);border-radius:14px;padding:clamp(18px,2.2vw,26px)}
.ov-pitch{margin:0;padding:14px 18px;border-left:4px solid var(--green);background:var(--card);border-radius:0 8px 8px 0;font-family:var(--disp);text-transform:uppercase;letter-spacing:.03em;font-size:1.25rem;line-height:1.25;color:var(--ink)}
.ov-today__text{display:flex;flex-direction:column;justify-content:space-between;gap:18px}
.ov-today__top{display:flex;flex-direction:column;gap:14px}
.ov-today__title{font-size:clamp(26px,2.6vw,34px)}
.ov-today__lead{font-size:15px;line-height:1.55;color:var(--ink-2);max-width:56ch;margin:0}
.ov-today__list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:8px}
.ov-today__list li{display:flex;gap:12px;font-size:14px;line-height:1.5;color:var(--ink)}
.ov-today__list li::before{content:"–";color:var(--ink-3);flex:none}
.ov-today__chart{display:flex;flex-direction:column;justify-content:space-between;gap:8px}
.ov-today__chart img{width:100%;flex:1 1 auto;min-height:0;object-fit:contain;object-position:top;display:block;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:zoom-in}
.ov-today__chart figcaption{letter-spacing:.08em;font-size:.68rem;font-weight:500;text-transform:uppercase;color:var(--ink-3)}
.ov-today__chart figcaption b{font-weight:500;color:var(--ink)}
@media (min-width:960px){.ov-today{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:stretch}}
/* groups */
.ov-group{display:grid;grid-template-columns:1fr;gap:20px;padding-top:18px;border-top:2px solid var(--ink);scroll-margin-top:80px}
.ov-group__intro{display:flex;flex-direction:column;gap:8px;max-width:60ch}
.ov-group__num{font-family:var(--mono);font-size:13px;letter-spacing:.16em;color:var(--green-tx)}
.ov-group__title{font-size:clamp(30px,2.8vw,38px);line-height:1}
.ov-group__text{font-size:15px;line-height:1.55;color:var(--ink-2)}
@media (min-width:720px){.ov-group{grid-template-columns:repeat(2,minmax(0,1fr))}.ov-group__intro{grid-column:1/-1}}
@media (min-width:1100px){.ov-group{grid-template-columns:260px repeat(2,minmax(0,1fr))}.ov-group__intro{grid-column:auto;padding-right:16px}}
/* cards */
.ov-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s ease}
.ov-card:hover{border-color:var(--ink)}
.ov-card__body{flex-grow:1;padding:24px 24px 18px;display:flex;flex-direction:column;gap:10px}
.ov-card__title{font-size:clamp(24px,2.2vw,29px)}
.ov-card__desc{font-size:15px;line-height:1.6;color:var(--ink-2)}
.ov-card__footer{margin-top:auto;padding-top:14px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px}
.ov-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.ov-tags li{font-size:12px;color:var(--ink-2);background:var(--tint-2);padding:4px 11px;border-radius:999px}
.ov-card__link{display:inline-flex;align-items:center;gap:8px;min-height:40px;font-weight:500;font-size:14px;white-space:nowrap}
.ov-card__link::after{content:"";position:absolute;inset:0;border-radius:inherit}
.ov-card:hover .ov-card__link{color:var(--green-tx)}
.ov-card__link svg{transition:transform .15s ease}
.ov-card:hover .ov-card__link svg{transform:translateX(3px)}
.ov-card__instead{background:var(--tint);border-top:1.5px dashed var(--line-2);padding:16px 24px 20px;display:flex;flex-direction:column;gap:4px}
.ov-card__instead-text{font-size:16px;line-height:1.5;color:var(--ink)}
.ov-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;color:var(--ink-2)}
.ov-filter a.pill{font-size:12px}


/* ---------- outcome grid (platform page) ---------- */
.fo-lead{margin:0 0 1rem;color:var(--ink-2);font-size:.95rem}
.fo-grid{display:grid;grid-template-columns:10rem repeat(3,1fr);gap:6px}
.fo-grid>div,.fo-grid>a{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.75rem .9rem;font-size:.86rem;line-height:1.45;display:block}
.fo-grid .fo-corner{background:transparent;border:none}
.fo-grid .fo-ch{background:var(--tint-3);border-left:4px solid var(--ink);border-radius:0 8px 8px 0;text-align:center}
.fo-grid .fo-ch.fo-an{border-left-color:var(--green)}.fo-grid .fo-ch.fo-mo{border-left-color:var(--blue)}.fo-grid .fo-ch.fo-mg{border-left-color:var(--red)}
.fo-grid .fo-ch b,.fo-grid .fo-rh b{font-family:var(--disp);font-weight:500;text-transform:uppercase;letter-spacing:.05em;font-size:1.05rem;display:block;color:var(--ink)}
.fo-grid .fo-ch span{display:block;color:var(--ink-2);font-size:.8rem}
.fo-grid .fo-ch em{display:block;font-style:normal;color:var(--ink);margin-top:.25rem}
.fo-grid .fo-rh{background:var(--tint);text-align:center}
.fo-grid a.fo-rh:hover{border-color:var(--ink)}
.fo-grid .fo-rh span{display:block;color:var(--ink-2);font-size:.8rem;margin-bottom:.45rem}
.fo-grid .fo-rh i{display:block;font-style:normal;color:var(--ink-2);font-size:.78rem;padding-top:.4rem;border-top:1px solid var(--line-2)}
.fo-grid .fo-c{color:var(--ink-2)}
.fo-grid .fo-c b{display:block;font-weight:500;color:var(--ink);margin-bottom:.25rem}
.fo-grid .fo-c.fo-thin{border-style:dashed}
@media (max-width:900px){.fo-grid{grid-template-columns:1fr}.fo-grid .fo-corner,.fo-grid .fo-ch{display:none}.fo-grid .fo-rh{margin-top:.6rem}.fo-grid .fo-c::before{content:attr(data-l);display:block;font-family:var(--disp);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--ink-2);margin-bottom:.3rem}}


/* ---------- solution cards (platform-style boxes) ---------- */
.sol{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s,border-color .15s;cursor:pointer}
.sol:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.08);border-color:var(--ink)}
.sol .t{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:1.05rem;padding:.55rem .7rem .55rem 1rem;background:var(--tint-3);border-bottom:1px solid var(--line);border-left:4px solid var(--ink);display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.sol .t span{flex:1}
.sol .arr{font-style:normal;font-family:var(--mono);width:30px;height:30px;border-radius:50%;border:1.5px solid var(--ink);color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0;transition:background .15s,color .15s,transform .15s}
.sol:hover .arr{background:var(--ink);color:var(--paper);transform:translateX(3px)}
.sol .d{padding:.9rem 1rem;display:flex;flex-direction:column;gap:.7rem;flex-grow:1}
.sol .d p{margin:0;font-size:.93rem;color:var(--ink-2)}
.sol .instead{background:var(--tint);border-top:1.5px dashed var(--line-2);padding:.7rem 1rem .8rem;display:flex;flex-direction:column;gap:.15rem}
.sol .instead p{margin:0;font-size:.95rem;color:var(--ink)}
.sol-grid{align-items:stretch}

/* ---------- insights overview (matrix) ---------- */
.frink-insights{--fi-draft-bg:var(--amber-t);--fi-draft-tx:var(--amber-tx);display:block}
.fi-filters{display:flex;gap:3rem;align-items:flex-start;justify-content:center;margin-bottom:2.5rem}
.sol-filters{margin-bottom:.5rem}.sol-filters .fi-side{gap:1rem}.sol-filters .fi-status{flex-shrink:0;min-width:240px}
.fi-matrix{display:grid;grid-template-columns:9.5rem repeat(3,10.5rem);gap:6px;flex-shrink:0}
.fi-matrix>a,.fi-corner{min-height:76px;border-radius:8px;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:.5rem .6rem;text-align:center}
.fi-corner{border:none;background:transparent}
.fi-name{font-family:var(--disp);font-weight:500;font-size:1.05rem;text-transform:uppercase;letter-spacing:.05em}
.fi-sub{font-size:.75rem;color:var(--ink-2)}
.fi-colh{background:var(--tint-3)}
.fi-colh .fi-bar{display:block;width:28px;height:3px;border-radius:2px;margin-bottom:6px}
.fi-rowh{background:var(--tint)}
.fi-colh:hover,.fi-rowh:hover,.fi-cell:hover{border-color:var(--ink)}
.fi-colh.is-on,.fi-rowh.is-on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.fi-colh.is-on .fi-sub,.fi-rowh.is-on .fi-sub{color:var(--paper);opacity:.75}
.fi-cell{background:var(--card);gap:4px!important}
.fi-cell .fi-n{font-family:var(--disp);font-weight:500;font-size:1.75rem;line-height:1}
.fi-cell.is-dim{color:var(--ink-3)}.fi-cell.is-dim .fi-sub{color:var(--ink-3)}
.fi-cell.is-scope{border:2px solid var(--ink)}
.fi-cell.is-sel{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.fi-cell.is-sel .fi-sub{color:var(--paper);opacity:.75}
.fi-side{display:flex;flex-direction:column;gap:1.75rem;flex-grow:1;padding-top:.25rem;min-width:0}
.fi-label{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.fi-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:.75rem}
.frink-insights header.page{border-bottom:0;margin-bottom:1rem}
.fi-chip{min-height:40px;padding:.45rem 1rem;border-radius:999px;border:1px solid var(--line-2);background:var(--card);font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;display:inline-flex;align-items:center}
.fi-chip:hover{border-color:var(--ink)}
.fi-chip.is-on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.fi-status{display:flex;flex-direction:column;gap:.6rem;padding:1.1rem 1.25rem;background:var(--card);border:1px solid var(--line);border-radius:10px}
.fi-count{font-family:var(--disp);font-weight:500;font-size:1.6rem;text-transform:uppercase;letter-spacing:.02em}
.fi-ftext{font-size:.9rem;color:var(--ink-2)}
.fi-clear{align-self:flex-start;min-height:40px;padding:.5rem 1rem;border:1px solid var(--ink);border-radius:999px;font-size:.9rem;display:inline-flex;align-items:center}
.fi-sections{display:flex;flex-direction:column;gap:2rem}
.fi-sec-h{display:flex;align-items:baseline;gap:.9rem;padding-bottom:.5rem;margin-bottom:.9rem}
.fi-sec-h h2{font-size:1.6rem;letter-spacing:.04em}
.fi-sec-h span{font-size:.9rem;color:var(--ink-2)}
.fi-sec-h .fi-sec-n{margin-left:auto;font-family:var(--mono);font-size:.8rem}
.fi-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fi-cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.fi-card{display:flex;flex-direction:column;gap:.5rem;padding:1.1rem 1.25rem;background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--ink)}
.fi-card:hover{border-color:var(--ink)}
.fi-tag{display:flex;align-items:center;gap:8px;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.fi-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.fi-title{font-size:1.25rem;line-height:1.15;margin:0}
.fi-text{font-size:.9rem;color:var(--ink-2);margin:0}
.fi-foot{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:.4rem}
.fi-tech{font-family:var(--mono);font-size:.75rem;color:var(--ink-2)}
.fi-draft{padding:3px 10px;border-radius:999px;background:var(--fi-draft-bg);color:var(--fi-draft-tx);font-size:.75rem}
.fi-empty{padding:2.5rem;text-align:center;border:1px dashed var(--line-2);border-radius:10px;color:var(--ink-2)}
@media (max-width:1100px){.fi-filters{flex-direction:column;gap:2rem}.fi-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.fi-matrix{grid-template-columns:4.6rem repeat(3,minmax(0,1fr));width:100%;gap:4px}.fi-matrix>a,.fi-corner{min-height:64px;padding:.4rem .25rem}.fi-name{font-size:.85rem;letter-spacing:.03em}.fi-colh .fi-sub,.fi-rowh .fi-sub{display:none}.fi-cell .fi-n{font-size:1.4rem}.fi-cards{grid-template-columns:1fr}}

/* ---------- partners page ---------- */
.frink-partners{--fp-todo-bg:var(--amber-t);--fp-todo-tx:var(--amber-tx)}
.fp-todo{background:var(--fp-todo-bg);color:var(--fp-todo-tx);padding:0 .3em;border-radius:4px;font-size:.92em}
.fp-h2{margin:0 0 .9rem;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.08;letter-spacing:.02em}
.fp-h3{margin:0 0 .4rem;font-size:1.2rem;line-height:1.15;letter-spacing:.03em}
.fp-lead{margin:0;max-width:46rem;font-size:1.05rem;color:var(--ink-2)}
.fp-sec{padding:2.6rem 0;border-top:1px solid var(--line-2);scroll-margin-top:70px}
.fp-sec-head{margin-bottom:1.6rem}
.fp-hero{padding:.2rem 0 2.4rem}
.fp-hero .fp-lead{margin-top:.9rem}
.fp-ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.fp-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.65rem 1.4rem;border-radius:999px;font-size:.95rem;font-weight:500;border:1px solid var(--ink);cursor:pointer;font-family:inherit}
.fp-btn-pri{background:var(--green);border-color:var(--green);color:var(--on-green)!important}
.fp-btn-sec{background:transparent;color:var(--ink)}
.fp-btn-pri:hover{opacity:.88}.fp-btn-sec:hover{background:var(--tint-3)}
.fp-grid{display:grid;gap:14px}.fp-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.fp-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.fp-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1.3rem 1.4rem}
.fp-card p{margin:0;color:var(--ink-2);font-size:.95rem}
.fp-tag{display:flex;align-items:center;gap:8px;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:.6rem}
.fp-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}
.fp-card-wide{grid-column:span 2}
.fp-items{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fp-items li{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.3rem;font-size:.95rem;color:var(--ink-2)}
.fp-items b{display:block;color:var(--ink);font-weight:500;margin-bottom:.2rem}
.fp-fit{background:var(--ink);color:var(--paper);border-radius:14px;padding:2.5rem 3rem;margin:0 0 2.6rem;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:2.5rem;align-items:start;scroll-margin-top:70px}
.fp-fit .fp-h2{margin:0 0 1.4rem;color:var(--paper)}
.fp-fit ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.9rem}
.fp-fit li{display:flex;gap:.9rem;font-size:1.05rem;line-height:1.45;padding-bottom:.9rem;border-bottom:1px solid rgba(127,127,127,.35)}
.fp-fit li:last-child{border-bottom:none;padding-bottom:0}
.fp-fit li span{font-family:var(--mono);font-size:.8rem;opacity:.65;padding-top:.2rem}
.fp-fit .fp-btn{background:var(--paper);color:var(--ink)!important;border-color:var(--paper)}
.fp-form{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:2rem 2.25rem}
.fp-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1.4rem}
.fp-field{display:flex;flex-direction:column;gap:.4rem}
.fp-field.fp-full{grid-column:1/-1}
.fp-field label,.fp-field legend{font-size:.85rem;font-weight:500;color:var(--ink)}
.fp-field .fp-req{color:var(--red);margin-left:2px}
.fp-field input[type=text],.fp-field input[type=url],.fp-field input[type=email],.fp-field input[type=tel],.fp-field select,.fp-field textarea{font:inherit;font-size:.95rem;color:var(--ink);background:var(--tint);border:1px solid var(--line-2);border-radius:8px;padding:.65rem .8rem;min-height:44px;width:100%}
.fp-field textarea{min-height:110px;resize:vertical}
.fp-field input:focus,.fp-field select:focus,.fp-field textarea:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:transparent}
fieldset.fp-field{border:none;margin:0;padding:0;min-width:0}
.fp-checks{display:flex;flex-wrap:wrap;gap:8px}
.fp-check{position:relative}
.fp-check input{position:absolute;opacity:0;width:1px;height:1px}
.fp-check span{display:inline-flex;align-items:center;min-height:40px;padding:.45rem .95rem;border-radius:999px;border:1px solid var(--line);background:var(--tint-3);font-size:.88rem;cursor:pointer}
.fp-check input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.fp-check input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}
.fp-consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.9rem;color:var(--ink-2)}
.fp-consent input{width:18px;height:18px;margin-top:.15rem;flex-shrink:0}
.fp-consent a{text-decoration:underline}
.fp-form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.fp-form-foot p{margin:0;font-size:.85rem;color:var(--red-tx)}
.fp-thanks{display:none;text-align:center;padding:2.5rem 1rem}
.fp-thanks.is-on{display:block}
.fp-form.is-sent .fp-form-body{display:none}
.fp-refs{margin-top:1.4rem;font-size:.95rem;color:var(--ink-2)}
.fp-contact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:980px){.fp-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.fp-fit{grid-template-columns:1fr;padding:2.25rem 1.75rem;gap:1.25rem}}
@media (max-width:680px){.fp-grid-3,.fp-grid-2,.fp-items,.fp-fields,.fp-contact{grid-template-columns:1fr}.fp-card-wide{grid-column:auto}.fp-form{padding:1.4rem 1.1rem}}

/* ---------- landing page ---------- */
.home{padding-top:2.4rem}
.hh{text-align:center;padding:2.2rem 0 3rem;display:flex;flex-direction:column;align-items:center;gap:1.1rem}
.hh__eyebrow{margin:0;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);font-weight:500}
.hh__title{font-size:clamp(2.2rem,5.4vw,4.6rem);line-height:1;letter-spacing:.005em;max-width:none}
@media (min-width:900px){.hh__title{white-space:nowrap;font-size:clamp(2.2rem,5.1vw,4.4rem)}}
.hh__lead{margin:.2rem 0 0;max-width:1040px;font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.5;color:var(--ink-2)}
.hh__ctas{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center;margin-top:.8rem}
.hh__trust{margin:.6rem 0 0;display:flex;gap:.9rem;align-items:center;flex-wrap:wrap;justify-content:center;font-size:.9rem;color:var(--ink-3)}
.hh__trust i{width:4px;height:4px;border-radius:50%;background:var(--line-2)}
.hh__anim{width:100%;max-width:1040px;aspect-ratio:16/9;margin-top:1.6rem;border:1.5px dashed var(--line-2);border-radius:14px;background:var(--tint);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.hs{text-align:center;padding:2.6rem 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);display:flex;flex-direction:column;align-items:center;gap:1rem}
.hs__label{margin:.6rem 0 0;font-size:.95rem;color:var(--ink-3)}
.hs__row{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem}
.hs__pill{display:inline-flex;align-items:center;gap:.5rem;min-height:50px;padding:.6rem 1.5rem;border-radius:999px;border:1px solid var(--line-2);background:var(--card);font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:1rem;color:var(--ink);transition:border-color .15s,transform .15s}
.hs__pill span{color:var(--ink-3);font-family:var(--mono);transition:transform .15s}
.hs__pill:hover{border-color:var(--ink);transform:translateY(-1px)}.hs__pill:hover span{transform:translateX(3px);color:var(--ink)}
.hw{padding:3.2rem 0 2.4rem;text-align:center;scroll-margin-top:70px}
.hn{padding:2rem 0 1rem;border-top:1px solid var(--line-2)}
.hn .prod .t{border-left-color:var(--ink)}.hn .prod .arr{color:var(--ink)}.hn .prod:hover{border-color:var(--ink)}.hn .prod:hover .arr{background:var(--ink)}
.hw__title{font-size:clamp(2rem,4.5vw,3.4rem);line-height:1.05;margin:.8rem auto 1rem}
.hw__lead{margin:0 auto;font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.6;color:var(--ink-2);max-width:none}
.hw__grid{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,2fr);gap:2rem;align-items:start;text-align:left;margin-top:2.6rem}
.hw__steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}
.hw__steps li a{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.1rem;border-radius:10px;border:1px solid transparent}
.hw__steps li a:hover{background:var(--tint)}
.hw__steps li.is-on a{background:var(--card);border-color:var(--line)}
.hw__n{font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;color:var(--ink-3)}
.hw__steps li.is-on .hw__n{color:var(--green-tx)}
.hw__t{font-family:var(--disp);text-transform:uppercase;letter-spacing:.03em;font-size:1.25rem;line-height:1.15}
.hw__d{font-size:.9rem;line-height:1.5;color:var(--ink-2);margin-top:.2rem}
.hw__media{margin:0;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.7rem;box-shadow:0 12px 40px rgba(0,0,0,.05)}
.hw__media img{width:100%;display:block;border-radius:8px;border:1px solid var(--line);cursor:zoom-in}
.hw__ph{aspect-ratio:16/9;border:1.5px dashed var(--line-2);border-radius:8px;background:var(--tint);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.hw__badge{display:inline-block;padding:.35rem .8rem;border:1px dashed var(--line-2);border-radius:999px;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.hw__more{display:flex;justify-content:center;gap:.7rem;flex-wrap:wrap;margin-top:2.4rem}
@media (max-width:900px){.hw__grid{grid-template-columns:1fr}.hh__title{max-width:none}}

/* ---------- lighter capability cards, counts, feature views ---------- */
.sol .t{background:var(--card);border-bottom:1px solid var(--line)}
.feat header.page{border-bottom:0;margin-bottom:.8rem}
.feat .chap:first-of-type{border-top:0}
.chap-h .chap-n{margin-left:auto;font-family:var(--mono);font-size:.8rem;color:var(--ink-2);white-space:nowrap}
.seg{display:inline-flex;margin-top:.9rem;border:1px solid var(--line-2);border-radius:999px;padding:3px;background:var(--card)}
.seg a{padding:.45rem 1.1rem;border-radius:999px;font-family:var(--disp);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:var(--ink-2)}
.seg a.on{background:var(--ink);color:var(--paper)}
.feat-all{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.feat-row{display:grid;grid-template-columns:260px 1fr 190px;gap:1.2rem;align-items:baseline;padding:.85rem 1.2rem;border-bottom:1px solid var(--line)}
.feat-row:last-child{border-bottom:0}.feat-row:hover{background:var(--tint)}
.feat-t{font-weight:500}.feat-d{font-size:.88rem;color:var(--ink-2)}
.feat-m{font-size:.78rem;color:var(--ink-2);display:flex;align-items:center;gap:.5rem;justify-content:flex-end}
.fi-dot.co{background:var(--amber)}.fi-dot.an{background:var(--green)}.fi-dot.mo{background:var(--blue)}.fi-dot.mg{background:var(--red)}
@media (max-width:900px){.feat-row{grid-template-columns:1fr}.feat-m{justify-content:flex-start}}

/* ---------- opener, black box on home, legal ---------- */
.opener{margin:-1.6rem -2rem 0;background:var(--paper)}
.opener__v{display:block;width:100%;max-height:82vh;object-fit:contain;background:var(--paper)}
.hb{padding:3rem 0 1rem;text-align:center;scroll-margin-top:70px;border-top:1px solid var(--line-2)}
.hb .ov-today{text-align:left;margin-top:1.6rem}
.hb .hw__title{margin:.6rem auto 0}
.legal{max-width:72ch}
.legal h3{margin:1.6rem 0 .4rem;font-size:1.1rem}
.legal p{margin:.4rem 0;color:var(--ink-2);font-size:.95rem}
.legal dl{display:grid;grid-template-columns:200px 1fr;gap:.5rem 1.2rem;margin:1rem 0;font-size:.95rem}
.legal dt{font-weight:500}.legal dd{margin:0;color:var(--ink-2)}
@media (max-width:700px){.legal dl{grid-template-columns:1fr}}
.fp-dark{background:var(--ink);color:var(--paper);border-radius:14px;padding:2.5rem 3rem;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:2.5rem;align-items:start;scroll-margin-top:70px}
.fp-dark .fp-h2{margin:0 0 1rem;color:var(--paper)}
.fp-dark p{color:rgba(244,243,239,.75);margin:0}
.fp-dark dl{margin:0;display:grid;grid-template-columns:140px 1fr;gap:.6rem 1rem;font-size:1rem}
.fp-dark dt{font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;opacity:.6;padding-top:.2rem}
.fp-dark dd{margin:0}.fp-dark dd a{text-decoration:underline;text-underline-offset:3px}
.fp-dark .fp-btn{background:var(--paper);color:var(--ink)!important;border-color:var(--paper);margin-top:3.4rem}
.fp-dark .fp-todo{background:transparent;color:var(--amber);padding:0;text-decoration:underline}
@media (max-width:980px){.fp-dark{grid-template-columns:1fr;padding:2.25rem 1.75rem;gap:1.25rem}.fp-dark dl{grid-template-columns:1fr}}

/* ---------- landing v3: bands, black box, opener ---------- */
.home{padding:0 2rem 0}
.home .hh{padding:.8rem 0 .6rem}
.hh__trust--top{margin:0 0 .4rem;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}
.opener{margin:0;background:var(--paper);display:flex;flex-direction:column;align-items:center;gap:1.1rem;padding:0 0 2.6rem}
.opener__v{display:block;width:100%;max-width:860px;border-radius:12px;background:var(--paper)}
.band{margin:0 calc(50% - 50vw);width:100vw}
.band__in{max-width:1180px;margin:0 auto;padding:2.8rem 2rem}
.band--card{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band--paper{background:var(--paper)}
.band--ink{background:var(--tint-2);border-bottom:1px solid var(--line-2)}
.band--dark{background:var(--ink);color:var(--paper)}
.band--dark .band__in{padding:2.6rem 2rem}
.hs{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem;border:0;padding-top:1.4rem;padding-bottom:1.4rem}
.hb{text-align:center;border:0}
.hw{border:0;padding-top:2.4rem}
.bb{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:2rem;align-items:center;text-align:left;margin-top:1.8rem;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.6rem}
.bb__text{display:flex;flex-direction:column;gap:.9rem}
.bb__lead{margin:0;font-size:1rem;line-height:1.55;color:var(--ink)}
.bb__list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.bb__fig{border:0;padding:0}
@media (max-width:900px){.bb{grid-template-columns:1fr}}
.bb__svg{width:100%;height:auto;display:block}
.bb__list li{display:flex;gap:.7rem;font-size:.92rem;line-height:1.5;color:var(--ink-2)}
.bb__list li::before{content:"–";color:var(--ink-3);flex:none}
.bb__img{width:100%;display:block;border-radius:6px;cursor:zoom-in;align-self:start;object-fit:contain}
.bb__pitch{grid-column:1/-1;margin:.4rem 0 0;padding:.8rem 1.1rem;border-left:4px solid var(--green);background:var(--tint);border-radius:0 8px 8px 0;font-family:var(--disp);text-transform:uppercase;letter-spacing:.03em;font-size:1.25rem;line-height:1.25;color:var(--ink);text-align:left}
@media (max-width:900px){.bb{grid-template-columns:1fr}}
.hw__n{display:inline-flex;align-items:center;gap:.4rem}
.hw__more{display:block;margin-top:.5rem;font-size:.85rem;color:var(--green-tx);text-decoration:underline;text-underline-offset:3px}
.fp-dark--flat{border-radius:0;padding:0;background:transparent}
.fp-dark__mail{display:flex;flex-direction:column;align-items:flex-start;gap:.8rem}
.fp-dark__addr{font-family:var(--mono);font-size:1rem;text-decoration:underline;text-underline-offset:4px}
.fp-dark .fp-btn{margin-top:0}
/* section bands on inner pages */
main.page>section.chap:nth-of-type(even){background:var(--tint);margin-left:-2rem;margin-right:-2rem;padding-left:2rem;padding-right:2rem;border-radius:0}
.shell main.page>.chap:nth-of-type(even){background:transparent;margin:0;padding-left:0;padding-right:0}

/* lightbox */
.lb{position:fixed;inset:0;background:rgba(20,20,18,.88);display:none;z-index:100;align-items:center;justify-content:center;flex-direction:column;padding:2.5rem 3rem}
.lb.open{display:flex}
.lb img{max-width:100%;max-height:calc(100vh - 7rem);object-fit:contain;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);background:#fff}
.lb figcaption{color:rgba(255,255,255,.75);margin-top:.8rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.lb button{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:999px;width:40px;height:40px;font-size:1.1rem;display:flex;align-items:center;justify-content:center}
@media (max-width:900px){.shell{grid-template-columns:1fr}nav.side{display:none}main.page{padding:1.2rem 1rem 3rem}.grid2,.grid3,.grid4,.three,.kpis,.arrows,.shots,.case,.pstruct,.layer.two,.hero .pts{grid-template-columns:1fr}.arrows{display:none}.lay{border:none;justify-content:flex-start}h1{font-size:1.8rem}.hero h1{font-size:1.9rem}.suite,.hide-m{display:none}.filters .row .lbl{width:100%}}

/* ---------- v29: conversion, mobile nav, accessibility ---------- */
:root{--on-green:#fff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--on-green:#151514}}
:root[data-theme="dark"]{--on-green:#151514}
body{overflow-x:clip}
.skip{position:absolute;left:1rem;top:-100px;z-index:60;background:var(--ink);color:var(--paper);padding:.6rem 1rem;border-radius:8px}
.skip:focus{top:.6rem}
.topbar .cta{background:var(--green);color:var(--on-green)}
.topbar .cta:hover{background:var(--green-2)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.7rem 1.5rem;border-radius:999px;font-size:1rem;font-weight:500;border:1px solid var(--ink);transition:background-color .15s,border-color .15s,color .15s}
.btn--pri{background:var(--green);border-color:var(--green);color:var(--on-green)}
.btn--pri:hover{background:var(--green-2);border-color:var(--green-2)}
.btn--sec{background:transparent;color:var(--ink)}
.btn--sec:hover{background:var(--tint-2)}
.btn[disabled]{opacity:.6;cursor:progress}
/* hero */
.home .hh{padding:1.6rem 0 1.6rem;gap:1rem}
.hh__lead{max-width:min(100%,1180px)}
.hh__ctas{margin-top:.6rem}
.hh__trust{list-style:none;padding:0;margin:.4rem 0 0;gap:.4rem 1.6rem;color:var(--ink-2)}
.hh__trust li{display:flex;align-items:center;gap:.5rem}
.hh__trust li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green)}
.opener__frame{position:relative;width:100%;max-width:960px}
.opener__v{width:100%;max-width:none;height:auto;aspect-ratio:1920/908;background:var(--tint)}
.opener__toggle{position:absolute;right:.8rem;bottom:.8rem;min-height:36px;padding:0 .9rem;border-radius:999px;background:var(--card);border:1px solid var(--line-2);font-size:.82rem;color:var(--ink-2)}
.opener__toggle:hover{color:var(--ink);border-color:var(--ink)}
/* proof */
.pf{text-align:center;padding-top:3.4rem;padding-bottom:3.4rem}
.pf .hw__title{margin-top:0}
.pf__grid{list-style:none;margin:2.4rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--ink);text-align:left}
.pf__item{display:flex;flex-direction:column;gap:.4rem;padding:1.5rem 1.5rem 1.7rem 0;border-bottom:1px solid var(--line-2)}
.pf__item:not(:nth-child(3n+1)){padding-left:1.5rem;border-left:1px solid var(--line-2)}
.pf__k{font-size:.92rem;color:var(--ink-2)}
.pf__b{font-size:1.05rem;color:var(--ink-3);text-decoration-thickness:1.5px}
.pf__a{font-family:var(--disp);font-weight:500;text-transform:uppercase;font-size:clamp(1.9rem,3.2vw,2.7rem);line-height:1;letter-spacing:.01em;color:var(--green-tx)}
.pf__more,.hw__link,.cl__more{font-weight:500;border-bottom:1.5px solid currentColor;padding-bottom:2px}
.pf__more{display:inline-block;margin-top:1.8rem}
.pf__more:hover,.cl__more:hover{color:var(--green-tx)}
/* how it works – tabs */
.hw__steps{display:flex;flex-direction:column;gap:.4rem}
.hw__step{display:flex;flex-direction:column;gap:.25rem;width:100%;padding:1rem 1.1rem;border-radius:10px;border:1px solid transparent;text-align:left}
.hw__step:hover{background:var(--tint)}
.hw__step.is-on{background:var(--card);border-color:var(--line)}
.hw__step.is-on .hw__n{color:var(--green-tx)}
.hw__step:not(.is-on) .hw__d{display:none}
.hw__media figcaption,.hw__cap{display:flex;justify-content:space-between;align-items:center;gap:.6rem 1rem;flex-wrap:wrap}
.hw__link{font-size:.9rem;color:var(--green-tx)}
/* closed networks */
.cl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:3rem;align-items:start;padding-top:3.4rem;padding-bottom:3.4rem}
.cl__intro{display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.cl__intro .hw__title,.fq .hw__title{margin:0;text-align:left;font-size:clamp(1.8rem,3vw,2.5rem)}
.cl__intro p{color:var(--ink-2)}
.cl__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1.8rem 2.2rem}
.cl__list li{border-top:2px solid var(--ink);padding-top:.9rem}
.cl__list b{display:block;font-family:var(--disp);font-weight:500;text-transform:uppercase;letter-spacing:.03em;font-size:1.2rem;line-height:1.15;margin-bottom:.4rem}
.cl__list p{color:var(--ink-2);font-size:.95rem}
/* cases */
.cs{padding-top:3.4rem;padding-bottom:3.4rem}
.cs .hw__title{margin:0 0 .8rem}
.cs__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:2rem}
.cs__card{display:flex;flex-direction:column;gap:.6rem;padding:1.4rem 1.5rem;background:var(--card);border:1px solid var(--line);border-radius:12px}
.cs__card:hover{border-color:var(--ink)}
.cs__tech{font-size:.85rem;color:var(--ink-2)}
.cs__title{font-family:var(--disp);font-weight:500;text-transform:uppercase;font-size:1.4rem;line-height:1.1;letter-spacing:.01em}
.cs__sub{color:var(--ink-2);font-size:.95rem}
.cs__go{margin-top:auto;padding-top:.6rem;font-weight:500;font-size:.92rem;color:var(--green-tx)}
/* faq */
.fq{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:3rem;padding-top:3.4rem;padding-bottom:3.4rem;align-items:start}
.fq details{border-top:1px solid var(--line-2)}
.fq details:last-child{border-bottom:1px solid var(--line-2)}
.fq summary{cursor:pointer;list-style:none;padding:1.15rem 2.4rem 1.15rem 0;font-weight:500;font-size:1.05rem;position:relative}
.fq summary::-webkit-details-marker{display:none}
.fq summary::after{content:"+";position:absolute;right:.3rem;top:50%;transform:translateY(-50%);font-size:1.4rem;line-height:1;color:var(--ink-3)}
.fq details[open] summary::after{content:"\2013"}
.fq summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.fq details p{padding:0 0 1.3rem;color:var(--ink-2);max-width:65ch}
.fq details a{text-decoration:underline;text-underline-offset:3px}
/* demo request */
.dm{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:3rem;align-items:start;padding-top:3.6rem;padding-bottom:3.6rem}
.dm__intro{display:flex;flex-direction:column;gap:1.1rem}
.dm__intro .fp-h2{font-size:clamp(2rem,4vw,3rem);margin:0;color:var(--paper)}
.dm__intro>p{color:color-mix(in srgb,var(--paper) 75%,transparent)}
.dm__steps{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column}
.dm__steps li{display:grid;grid-template-columns:2rem 1fr;gap:.2rem .6rem;padding:.9rem 0;border-top:1px solid color-mix(in srgb,var(--paper) 22%,transparent)}
.dm__steps li span{grid-row:span 2;font-family:var(--disp);font-size:1.2rem;line-height:1.3;color:color-mix(in srgb,var(--paper) 60%,transparent)}
.dm__steps b{font-weight:500}
.dm__steps p{font-size:.92rem;color:color-mix(in srgb,var(--paper) 70%,transparent)}
.dm__alt{font-size:.95rem;color:color-mix(in srgb,var(--paper) 75%,transparent)}
.dm__alt a{color:var(--paper);text-decoration:underline;text-underline-offset:3px}
.band--dark .fp-form{color:var(--ink)}
.fp-form .btn{border-color:var(--green)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{font-size:.9rem;color:var(--ink-2)}
.form-err a,.form-note a,.fp-thanks a{text-decoration:underline}
.fp-thanks:focus{outline:none}
/* closing call to action on inner pages */
.endcta{background:var(--tint-2);border-top:1px solid var(--line-2);margin-top:2rem}
.endcta__in{max-width:1180px;margin:0 auto;padding:3rem 2rem;display:flex;justify-content:space-between;align-items:center;gap:1.4rem 2rem;flex-wrap:wrap}
.endcta h2{font-size:clamp(1.6rem,3vw,2.2rem)}
.endcta p{color:var(--ink-2);margin-top:.5rem;max-width:56ch}
.endcta__acts{display:flex;gap:.7rem;flex-wrap:wrap}
.endcta+footer,#app:has(.endcta)+footer{margin-top:0;border-top:0}
/* mobile navigation */
.menu{display:none;margin-left:auto;min-height:40px;padding:0 1rem;border:1px solid var(--line-2);border-radius:999px;font-family:var(--disp);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;align-items:center}
@media (max-width:1000px){
.topbar{gap:.7rem;padding:0 1rem}
.brand{border-right:0;padding-right:0}
.menu{display:inline-flex}
.topbar .right{margin-left:0}
.tabs{display:none;position:fixed;top:calc(56px + env(safe-area-inset-top,0px));left:0;right:0;bottom:0;z-index:25;background:var(--card);flex-direction:column;gap:0;margin:0;padding:.4rem 1rem 2rem;overflow:auto;border-top:1px solid var(--line)}
.topbar.is-open .tabs{display:flex}
.tab{border-bottom:1px solid var(--line)}
.tabs a{font-size:1rem;padding:1rem .4rem;border-radius:0}
.tab .sub,.tab:hover .sub,.tab:focus-within .sub{display:none}
}
@media (max-width:900px){
.home{padding:0 1rem}
.band__in,.band--dark .band__in{padding-left:1rem;padding-right:1rem}
.home .hh{padding-top:2rem}
.pf__grid,.cs__grid,.cl,.cl__list,.fq,.dm{grid-template-columns:1fr}
.cl,.fq,.dm{gap:1.6rem}
.pf__item,.pf__item:not(:nth-child(3n+1)){padding:1.2rem 0;border-left:0}
.endcta__in{padding:2.4rem 1rem}
.lb{padding:1rem}
}
@media (max-width:480px){.topbar .cta{padding:.45rem .7rem;font-size:.7rem}.brand img{height:26px}.hh__ctas .btn{width:100%}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}

/* ---------- static build additions ---------- */
img{height:auto}
/* navigation */
.tab--home{display:none}
.tab .sub a[aria-current]{color:var(--green-tx)}
.tab .sub.mega{width:min(760px,70vw);padding:1.1rem 1.2rem 1rem;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem 1.4rem}
.tab:hover .sub.mega,.tab:focus-within .sub.mega{display:grid}
.mega__col{display:flex;flex-direction:column;min-width:0}
.tab .sub .mega__h{font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:.95rem;padding:.2rem .4rem;color:var(--ink)}
.mega__t{font-size:.8rem;line-height:1.4;color:var(--ink-2);padding:0 .4rem .5rem;margin:0 0 .3rem;border-bottom:1px solid var(--line)}
.tab .sub.mega .mega__col a:not(.mega__h){white-space:normal;padding:.4rem .4rem;font-size:.88rem;line-height:1.3}
.tab .sub .mega__all{grid-column:1/-1;justify-self:start;margin-top:.5rem;padding:.5rem .4rem 0;font-weight:500;color:var(--green-tx)}
@media (max-width:1000px){
.tab--home{display:block}
.topbar.is-open .tab .sub{display:flex;flex-direction:column;position:static;box-shadow:none;border:0;background:transparent;min-width:0;width:auto;padding:0 0 .6rem;max-height:none}
.topbar.is-open .tab .sub a:not(.mob),.topbar.is-open .mega__t,.topbar.is-open .mega__all{display:none}
.topbar.is-open .tab .sub a.mob{font-family:var(--sans);text-transform:none;letter-spacing:0;font-size:.95rem;padding:.55rem .4rem .55rem 1.2rem;white-space:normal;color:var(--ink-2)}
.topbar.is-open .mega__col{display:contents}
}
/* breadcrumb */
.crumbs{margin:0 0 1.1rem;font-size:.86rem;color:var(--ink-2)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.2rem .5rem}
.crumbs li+li::before{content:"\203A";margin-right:.5rem;color:var(--ink-3)}
.crumbs a{text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.crumbs a:hover{color:var(--ink);text-decoration-color:currentColor}
.crumbs [aria-current]{color:var(--ink)}
.home .crumbs,.frink-partners .crumbs{padding-top:1.4rem}
.demo-page .crumbs{display:none}
/* footer */
footer.site-foot{display:block;max-width:none;margin:0;padding:0;font-family:var(--sans);font-size:.92rem;color:var(--ink-2);background:var(--card);border-top:1px solid var(--line-2)}
.sf__in{max-width:1180px;margin:0 auto;padding:3rem 2rem 2rem;display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,3fr);gap:2.4rem}
.sf__brand{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
.sf__logo.brand{border:0;padding:0;height:auto}
.sf__brand p{max-width:32ch}
.sf__brand .btn{margin-top:.6rem}
.sf__mail a,.sf__co{text-decoration:underline;text-underline-offset:3px}
.sf__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.6rem}
.sf__h{font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:.95rem;color:var(--ink);margin:0 0 .7rem}
.sf__col ul{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.sf__col a{display:inline-block;padding:.25rem 0;line-height:1.35}
.sf__col a:hover,.sf__mail a:hover{color:var(--ink)}
.sf__legal{max-width:1116px;width:calc(100% - 4rem);margin:0 auto;padding:1rem 0 1.6rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:.6rem 1.6rem;flex-wrap:wrap;font-size:.8rem;color:var(--ink-2)}
@media (max-width:900px){.sf__in{grid-template-columns:1fr;padding:2.4rem 1rem 1.6rem}.sf__cols{grid-template-columns:1fr 1fr}.sf__legal{width:calc(100% - 2rem)}}
/* getting started */
.start .hh__ctas{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.2rem;justify-content:flex-start}
main.page.home{padding-bottom:0}
/* a tinted chapter that follows a link panel needs air above it */
main.page>.sec+section.chap{margin-top:2.4rem}
/* the closing call-to-action band follows every page; don't stack page padding on top of the last chapter's */
main.page:not(.home){padding-bottom:1.6rem}
/* numbered feature cards: a narrower number column on phones leaves room for the text */
@media (max-width:600px){ol.slides>li{grid-template-columns:2.2rem 1fr}ol.slides>li>div{padding:.9rem 1rem 1rem}}
main.page.demo-page{padding-top:0}
.start-steps{list-style:none;counter-reset:step;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem}
.start-steps li{counter-increment:step;border-top:2px solid var(--ink);padding-top:.9rem}
.start-steps li::before{content:counter(step);display:block;font-family:var(--disp);font-size:1.6rem;line-height:1;color:var(--green-tx);margin-bottom:.6rem}
.start-steps b{display:block;font-family:var(--disp);font-weight:500;text-transform:uppercase;letter-spacing:.03em;font-size:1.1rem;line-height:1.2;margin-bottom:.4rem}
.start-steps p{color:var(--ink-2);font-size:.95rem}
.start td a{text-decoration:underline;text-underline-offset:3px}
.start-note{margin-top:.8rem;color:var(--ink-2);font-size:.92rem}
@media (max-width:900px){.start-steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.start-steps{grid-template-columns:1fr}}
.fp-dark>div>.fp-btn{margin-top:1.4rem}
/* dark mode: the ink-coloured blocks stay dark (raised surface) instead of inverting to cream */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) :is(.band--dark,.fp-dark,.fp-fit,a.dark){--paper:#EDECE7;--ink:#2A2A27}:root:not([data-theme="light"]) :is(.fp-dark,.fp-fit,a.dark){box-shadow:inset 0 0 0 1px #3A3A36}:root:not([data-theme="light"]) .band--dark .fp-form{--ink:#EDECE7;--paper:#151514}}
:root[data-theme="dark"] :is(.band--dark,.fp-dark,.fp-fit,a.dark){--paper:#EDECE7;--ink:#2A2A27}:root[data-theme="dark"] :is(.fp-dark,.fp-fit,a.dark){box-shadow:inset 0 0 0 1px #3A3A36}:root[data-theme="dark"] .band--dark .fp-form{--ink:#EDECE7;--paper:#151514}
@media (max-width:900px){main.page>section.chap:nth-of-type(even){margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}}
.bb__img{border:1px solid var(--line);background:#fff}
/* site search */
.search-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border-radius:999px;border:1px solid var(--line-2);color:var(--ink-2);background:transparent;cursor:pointer}
.search-toggle:hover{color:var(--ink);border-color:var(--ink)}
.search-toggle svg{width:18px;height:18px}
.search{position:fixed;inset:0;z-index:60;background:rgba(30,30,28,.45);padding:min(12vh,7rem) 1rem 2rem;overflow:auto}
.search[hidden]{display:none}
.search__box{max-width:680px;margin:0 auto;background:var(--card);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.25);overflow:hidden}
.search__form{display:flex;align-items:center;gap:.7rem;padding:.6rem .9rem;border-bottom:1px solid var(--line)}
.search__icon{display:inline-flex;color:var(--ink-2)}.search__icon svg{width:20px;height:20px}
.search__input{flex:1;min-width:0;font:inherit;font-size:1.1rem;color:var(--ink);background:transparent;border:0;outline:0;padding:.5rem 0}
.search__input::-webkit-search-cancel-button{display:none}
.search__close{font-family:var(--mono);font-size:.75rem;color:var(--ink-2);background:transparent;border:1px solid var(--line-2);border-radius:6px;padding:.25rem .5rem;cursor:pointer}
.search__close:hover{color:var(--ink);border-color:var(--ink)}
.search__hint{padding:.8rem 1rem;font-size:.9rem;color:var(--ink-2)}
.search__results{list-style:none;margin:0;padding:.3rem 0;max-height:60vh;overflow:auto}
.search__results:empty{display:none}
.search__results li a{display:block;padding:.7rem 1rem;color:inherit;text-decoration:none;border-top:1px solid var(--line)}
.search__results li a:hover,.search__results li a:focus{background:var(--tint)}
.search__t{display:block;font-family:var(--disp);text-transform:uppercase;letter-spacing:.04em;font-size:.95rem}
.search__k{font-family:var(--mono);font-size:.72rem;color:var(--ink-2);letter-spacing:.06em;margin-left:.5rem;text-transform:none}
.search__s{display:block;font-size:.88rem;color:var(--ink-2);margin-top:.15rem}
.search__s mark,.search__t mark{background:var(--green-t);color:inherit;border-radius:3px;padding:0 1px}
.topbar .right{display:flex;align-items:center;gap:.6rem}
.tabs.sub{display:flex;flex-wrap:wrap;gap:.3rem}
.tabs.sub a{font-family:var(--disp);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--ink-2);padding:.45rem .9rem;border-radius:999px}
.tabs.sub a:hover{background:var(--green-t);color:var(--green-tx)}
.mod-sec{scroll-margin-top:72px}.mod-sec+.mod-sec{margin-top:2rem}
.mod-sec>h2{margin:0 0 .8rem;padding-top:1.2rem;border-top:1px solid var(--line-2)}
ol.slides h3{font-size:1.05rem;letter-spacing:.03em;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.shot-ph{display:none}
.fq-list details{border-top:1px solid var(--line-2)}.fq-list details:last-child{border-bottom:1px solid var(--line-2)}
.fq-list summary{cursor:pointer;list-style:none;padding:1.1rem 2.4rem 1.1rem 0;font-weight:500;font-size:1.02rem;position:relative}
.fq-list summary::-webkit-details-marker{display:none}
.fq-list summary::after{content:"+";position:absolute;right:.3rem;top:50%;transform:translateY(-50%);font-size:1.4rem;line-height:1;color:var(--ink-3)}
.fq-list details[open] summary::after{content:"\2013"}
.fq-list details p{padding:0 0 1.2rem;color:var(--ink-2);max-width:65ch}
.fq-list details a{text-decoration:underline;text-underline-offset:3px}
.foot-link{font:inherit;color:inherit;text-decoration:none}.foot-link:hover{color:var(--ink)}
.consent{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:90;max-width:680px;margin:0 auto;background:var(--ink);color:var(--paper);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.28);padding:1.2rem 1.3rem;display:flex;flex-wrap:wrap;gap:.9rem 1.4rem;align-items:center}
.consent[hidden]{display:none}
.consent__txt{flex:1 1 320px}.consent .consent__t{opacity:1;font-weight:600;font-size:1rem;margin-bottom:.25rem}
.consent p{font-size:.92rem;line-height:1.5;opacity:.85}.consent a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.consent__acts{display:flex;gap:.6rem;flex:0 0 auto}.consent .btn{min-height:44px;min-width:7.5rem;padding:.5rem 1.2rem;font-size:.95rem}
.consent .btn--sec{color:var(--paper);border-color:var(--paper)}.consent .btn--sec:hover{background:color-mix(in srgb,var(--paper) 12%,transparent)}
.consent .btn:focus-visible{outline:2px solid var(--paper);outline-offset:3px}
@media (max-width:520px){.consent__acts{flex:1 1 100%}.consent .btn{flex:1}}
.nf{padding:3rem 0 4rem}.nf .hh__ctas{justify-content:flex-start;display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.4rem}
