
/* ---------- Ion tokens (Fundacao de Cor/variaveis-de-design-ion.json) ---------- */
:root{
  --ink:#0B0F12; --ink-elev:#13191E; --ink-2:#161E24; --mist:#F4F6F8; --white:#FFFFFF;
  --accent:#28C9FA; --accent-edge:#1B95CC; --link-strong:#1373C2; --focus:#8B5AF9;
  --surface:var(--white); --surface-2:#EAEFF2; --band:var(--ink); --band-2:#161E24; --band-text:#FFFFFF; --band-text-2:#AEB7BD; --band-border:#3A454E; --band-border-strong:#7C878F;
  --text:var(--ink); --text-2:#4A5359; --border:#AEB7BE; --border-strong:#647077;
  --link:#0E62AA; --cell:var(--accent); --selection:#B4ECFD; --gap:32px;
  --sans:"IBM Plex Sans",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --col:152px; --gut:16px; --measure:66ch; --measure-max:75ch;
  --section:clamp(56px,9vw,128px);
  --ease-out:cubic-bezier(.22,1,.36,1); --ease-in:cubic-bezier(.4,0,1,1); --ease-nudge:cubic-bezier(.34,1.4,.64,1);
  --dur-1:120ms; --dur-2:200ms; --dur-3:320ms; --dur-4:560ms;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --surface:var(--ink); --surface-2:#171F26; --band:#1E2830; --band-2:#26323B; --band-text:#FFFFFF; --band-text-2:#B3BCC2; --band-border:#40505B; --band-border-strong:#8A959D;
  --text:#F2F4F5; --text-2:#A6AFB5; --border:#404C56; --border-strong:#8A959D;
  --link:var(--accent); --selection:#144758; color-scheme:dark;
}

/* ---------- base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-gutter:stable}
@supports not (scrollbar-gutter:stable){html{overflow-y:scroll}}
body{margin:0;background:var(--surface);color:var(--text);font-family:var(--sans);font-weight:400;font-size:16px;line-height:24px;-webkit-font-smoothing:antialiased}
::selection{background:var(--selection)}
a{color:var(--link);text-decoration:none;border-bottom:1px solid transparent}
a:hover{border-bottom-color:currentColor}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
h1,h2,h3,h4{margin:0;font-weight:600;text-wrap:balance}
h1{font-size:clamp(2rem,4.2vw,3.25rem);line-height:1.12;font-weight:700;letter-spacing:-.015em}
h2{font-size:clamp(1.5rem,2.6vw,2.125rem);line-height:1.2;letter-spacing:-.01em}
h3{font-size:22px;line-height:28px}
h4{font-size:16px;line-height:24px}
p{margin:0;max-width:var(--measure);text-align:justify;hyphens:auto;-webkit-hyphens:auto;text-wrap:pretty}
p+p{margin-top:16px}
ul,ol{margin:0;padding:0;list-style:none}
strong{font-weight:600}
.mono{font-family:var(--mono);font-size:13px;line-height:20px}
.eyebrow{font-family:var(--mono);font-size:11px;line-height:16px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);text-align:left}
.support{font-size:14px;line-height:20px;color:var(--text-2)}
.wrap{max-width:calc(6*var(--col) + 5*var(--gut));margin:0 auto;padding:0 24px}
svg.ico,svg.ilu,svg.lockup,svg.symbol{--ko:var(--surface)}
header svg.lockup{height:41.6px}
footer svg.symbol{margin-left:-12px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.skip{position:absolute;left:-9999px;top:8px;z-index:20;background:var(--text);color:var(--surface);padding:8px 12px;font-family:var(--mono);font-size:12px;border-radius:2px}
.skip:focus{left:8px}
main:focus,h1:focus{outline:none}
svg.ico{width:24px;height:24px;display:block;flex:none}
svg.ilu{width:100%;height:auto;display:block;color:var(--text)}
figure{margin:0}
figcaption{font-family:var(--mono);font-size:12px;line-height:16px;color:var(--text-2);margin-top:12px;text-align:left}
img.foto,img.img{width:100%;height:auto;display:block}
.credit{display:block;font-family:var(--mono);font-size:11px;line-height:16px;color:var(--text-2);margin-top:8px;text-align:left}
.credit a{color:var(--text-2)}
.band{aspect-ratio:21/9;object-fit:cover}
.tall{aspect-ratio:4/3;object-fit:cover}

/* language switching */
.l[lang="en"]{display:none}
html[data-lang="en"] .l[lang="en"]{display:inline}
html[data-lang="en"] .l[lang="pt-BR"]{display:none}
.page{display:none}
html:not(.js) .page[lang="pt-BR"]{display:block}
html:not(.js) .page[data-page="not-found"]{display:none}
.page.on{display:block}
html[data-lang="en"] .page.on[lang="pt-BR"]{display:none}
html[data-lang="pt"] .page.on[lang="en"]{display:none}
main{view-transition-name:main;overflow-x:clip}
::view-transition-old(main){animation:vt-out var(--dur-2) var(--ease-in) both}
::view-transition-new(main){animation:vt-in var(--dur-4) var(--ease-out) both}
.page.page-enter{animation:vt-in var(--dur-4) var(--ease-out) both}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(10px)}}

/* ---------- motion: reveal (additive; content visible at rest) ---------- */
@media (prefers-reduced-motion:no-preference){
  .js [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity var(--dur-4) var(--ease-out) var(--d,0ms),transform var(--dur-4) var(--ease-out) var(--d,0ms)}
  .js [data-reveal="left"]{transform:translateX(-20px)}
  .js [data-reveal].is-in{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}
@media print{[data-reveal]{opacity:1!important;transform:none!important}header,.totop,.toc,.sda-progress,canvas,.skip{display:none!important}.page{display:none}.page.on{display:block}}
/* scroll-driven parallax for image bands, static where unsupported */
.sda-frame{overflow:hidden}
.editorial-image{overflow:hidden;background:var(--surface-2)}
img.generated-image{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.generated-image.sda-parallax{animation:none!important;scale:1!important}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .sda-frame>.sda-parallax{scale:1.12;animation:sda-par linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
    .sda-progress{position:fixed;inset:0 0 auto 0;height:2px;background:var(--cell);transform-origin:0 50%;animation:sda-grow linear both;animation-timeline:scroll(root);z-index:10}
  }
}
@keyframes sda-par{from{translate:0 -5%}to{translate:0 5%}}
@keyframes sda-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* typing */
.is-typing{position:relative}
.is-typing .type-ghost{visibility:hidden}
.is-typing .type-live{position:absolute;inset:0 auto auto 0;width:100%}
.is-typing .type-live::after{content:"";display:inline-block;width:.55ch;height:1em;margin-left:.1ch;vertical-align:-.12em;background:var(--cell);animation:blink 1s step-end infinite}
@keyframes blink{50%{opacity:0}}

/* ---------- preview banner ---------- */

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--surface) 55%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}
@supports not (backdrop-filter:blur(1px)){header{background:color-mix(in srgb,var(--surface) 92%,transparent)}}
.bar{display:flex;align-items:center;gap:24px;min-height:72px;position:relative}
.brand{display:flex;align-items:center;color:var(--text)}
.brand a{border:0;display:block;line-height:0}
svg.lockup{height:32px;width:auto;display:block;color:var(--text)}
svg.symbol{width:64px;height:64px;display:block;color:var(--text)}
header #nav{margin-left:auto;display:flex;gap:2px;flex-wrap:wrap;align-items:center}
header #nav a{color:var(--text);padding:8px 10px;border:0;font-size:14px;line-height:20px;white-space:nowrap;background:linear-gradient(currentColor,currentColor) no-repeat 10px 100%/0 1px;transition:background-size var(--dur-3) var(--ease-out)}
header #nav a:hover,header #nav a:focus-visible{background-size:calc(100% - 20px) 1px}
header #nav a[aria-current="page"]{font-weight:600;background:linear-gradient(var(--text),var(--text)) no-repeat 10px 100%/calc(100% - 20px) 2px}
.ctrl{display:flex;gap:4px;align-items:center;margin-left:8px;padding-left:12px;border-left:1px solid var(--border)}
.ctrl button{font:inherit;font-family:var(--mono);font-size:12px;line-height:16px;letter-spacing:.08em;background:none;border:1px solid var(--border-strong);color:var(--text);padding:5px 8px;cursor:pointer;border-radius:2px}
.ctrl button[aria-pressed="true"]{background:var(--text);color:var(--surface);border-color:var(--text)}
.ctrl [data-theme-btn]{position:relative;width:34px;height:28px;padding:5px 8px;letter-spacing:0}
.ctrl [data-theme-btn] svg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:20px;height:20px;display:block}
.menu-btn{display:none}
@media (max-width:1000px){
  header #nav{display:none;position:absolute;left:0;right:0;top:100%;background:color-mix(in srgb,var(--surface) 96%,transparent);border-bottom:1px solid var(--border);padding:8px 24px 16px;flex-direction:column;align-items:stretch}
  header #nav.open{display:flex}
  header #nav a{padding:10px 0;background-position:0 100%}
  .ctrl{border:0;padding:8px 0 0;margin:0}
  .menu-btn{display:block;margin-left:auto;font:inherit;font-family:var(--mono);font-size:12px;letter-spacing:.08em;background:none;border:1px solid var(--border-strong);color:var(--text);padding:6px 10px;border-radius:2px;cursor:pointer}
}

/* ---------- the register row: bar + status cell ---------- */
.kicker{display:flex;align-items:center;gap:8px;margin-bottom:24px}
.kicker::before{content:"";width:24px;height:8px;background:currentColor;color:var(--text);order:-2}
.kicker::after{content:"";width:8px;height:8px;background:var(--cell);order:-1}
.kicker span{order:1;padding-left:8px}

/* ---------- sections and grid frame ---------- */
section.s{padding:var(--section) 0}
section.s+section.s{border-top:1px solid var(--border)}
section.s.tint{background:var(--surface-2);border-top:1px solid var(--border)}
section.s.ink{background:var(--band);color:var(--band-text);--text:var(--band-text);--text-2:var(--band-text-2);--border:var(--band-border);--border-strong:var(--band-border-strong);--link:var(--accent);--surface:var(--band);--surface-2:var(--band-2)}
.s .wrap>h2{max-width:var(--measure-max)}
.lead{font-size:clamp(1.125rem,1.6vw,1.375rem);line-height:1.5;max-width:var(--measure)}
.two{display:grid;grid-template-columns:2fr 4fr;gap:var(--gap);align-items:start}
.two.eq{grid-template-columns:3fr 3fr}
@media (max-width:860px){.two,.two.eq{grid-template-columns:1fr;gap:24px}}
.feature{display:grid;grid-template-columns:3fr 3fr;gap:var(--gap);align-items:center}
.feature.rev{grid-template-columns:3fr 3fr}
.feature figure img,.feature figure svg.ilu{aspect-ratio:3/2;object-fit:cover;width:100%}
.feature.rev>figure{order:-1}
@media (max-width:860px){.feature,.feature.rev{grid-template-columns:1fr;gap:32px}.feature.rev>figure{order:0}}
.rule{border:0;border-top:1px solid var(--border);margin:0}

/* hero */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--ink);color:#FFFFFF;--text:#FFFFFF;--text-2:#AEB7BD;--link:var(--accent);--border:#3A454E;--border-strong:#7C878F;padding:var(--section) 0 calc(var(--section) + 24px)}
.hero canvas[data-field]{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:.5;-webkit-mask-image:linear-gradient(90deg,transparent 0,transparent 42%,#000 70%);mask-image:linear-gradient(90deg,transparent 0,transparent 42%,#000 70%)}
.hero img.foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22;filter:grayscale(1) contrast(1.15);z-index:-2}
.hero img.generated-hero{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%;opacity:.48;z-index:-2}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(11,15,18,.82),rgba(11,15,18,.5) 52%,rgba(11,15,18,.12))}
.hero .wrap{position:relative}
.hero h1{max-width:18ch;font-size:clamp(2.5rem,6vw,5rem);line-height:1.04;font-weight:700;letter-spacing:-.02em}
.hero .lead{margin-top:28px;color:#D5DBDF}
.hero .cta{margin-top:40px;display:flex;gap:16px;flex-wrap:wrap}
.hero .term{margin-top:56px;font-family:var(--mono);font-size:13px;line-height:20px;color:#AEB7BD;display:grid;gap:4px}
.hero .credit{position:absolute;right:24px;bottom:8px;color:#8E979E}
.hero .btn{border-color:var(--white);color:var(--white)}
.hero .btn:hover{background:var(--white);color:var(--ink)}
.hero .btn.primary{background:var(--white);color:var(--ink)}
.hero .btn.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--ink)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:15px;line-height:24px;padding:11px 18px;border:1px solid var(--text);color:var(--text);border-radius:2px;background:none;cursor:pointer;font-family:var(--sans);transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}
.btn:hover{background:var(--text);color:var(--surface)}
.btn.primary{background:var(--text);color:var(--surface)}
.btn.primary:hover{background:var(--surface-2);color:var(--text)}
.btn svg.ico{width:20px;height:20px;transition:transform var(--dur-2) var(--ease-nudge)}
.btn:hover svg.ico{transform:translateX(4px)}
.btn:hover svg.ico .ko{fill:var(--text)}
a.more{display:inline-flex;align-items:center;gap:8px;font-size:14px;width:max-content}
a.more svg.ico{width:16px;height:16px;color:currentColor;transition:transform var(--dur-2) var(--ease-nudge)}
a.more:hover svg.ico{transform:translateX(3px)}

/* fields index: one strong layout primitive, repeated */
.fields{display:grid;border-top:1px solid var(--border)}
.field{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr) minmax(0,1fr);gap:var(--gap);padding:28px 0;border-bottom:1px solid var(--border);align-items:start;color:var(--text);position:relative}
.field:hover{border-bottom-color:var(--border-strong)}
.field::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:0;background:var(--cell);transition:width var(--dur-4) var(--ease-out)}
.field:hover::before{width:100%}
.field h3{font-size:clamp(1.25rem,1.8vw,1.5rem);line-height:1.25}
.field .modes{font-family:var(--mono);font-size:12px;line-height:18px;color:var(--text-2);margin-top:8px;text-align:left}
.field p{font-size:15px;line-height:22px;max-width:none}
.field .go{font-family:var(--mono);font-size:12px;color:var(--link);display:inline-flex;align-items:center;gap:6px;justify-self:end}
.field .go svg.ico{width:14px;height:14px;color:currentColor;transition:transform var(--dur-2) var(--ease-nudge)}
.field:hover .go svg.ico{transform:translateX(3px)}
@media (max-width:860px){.field{grid-template-columns:1fr}.field .go{justify-self:start}}

/* field section on the "what we do" page */
.fsec{padding:var(--section) 0;border-top:1px solid var(--border)}
.page>.fsec:nth-of-type(even){background:var(--surface-2)}
.fsec .head{display:grid;grid-template-columns:2fr 4fr;gap:var(--gap);align-items:end}
.fsec .head .modes{font-family:var(--mono);font-size:12px;line-height:18px;color:var(--text-2);margin-top:12px;text-align:left}
.fsec .body{display:grid;grid-template-columns:2fr 4fr;gap:var(--gap);margin-top:40px}
.fsec .body h3{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);margin-bottom:12px;font-weight:400}
.fsec ul.caps{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 24px;font-size:15px;line-height:22px}
.fsec ul.caps li{padding-left:16px;position:relative}
.fsec ul.caps li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:4px;background:var(--cell)}
.fsec .proof{font-family:var(--mono);font-size:12px;line-height:18px;color:var(--text-2);border-top:1px solid var(--border);padding-top:12px;margin-top:24px;text-align:left}
@media (max-width:860px){.fsec .head,.fsec .body{grid-template-columns:1fr;gap:24px}.fsec ul.caps{grid-template-columns:1fr}}

/* evidence row */
.evid{display:flex;flex-wrap:wrap;gap:8px 32px;font-family:var(--mono);font-size:12px;line-height:20px;color:var(--text-2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:12px 0}
.evid span b{font-weight:400;color:var(--text)}
.evid.std{justify-content:space-between}
.evid .lab{width:100%;color:var(--text-2);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px}

/* method: six steps on a 3×2 grid, one line across the top */
.steps6{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);border-top:2px solid var(--text);padding-top:24px}
@media (max-width:1000px){.steps6{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.steps6{grid-template-columns:1fr}}
.steps6>div{display:grid;gap:12px;align-content:start}
.steps6 .n{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);display:flex;align-items:center;gap:10px}
.steps6 .n::before{content:"";width:8px;height:8px;background:var(--cell)}
.steps6 h3{font-size:19px;line-height:26px}
.steps6 p{font-size:14px;line-height:20px;color:var(--text-2);max-width:none}
.steps6 figure{aspect-ratio:3/2;overflow:hidden;border:1px solid var(--border)}
.steps6 figure svg{width:100%;height:100%;display:block}
/* scroll-telling (kept for other uses) */
.who{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
@media (max-width:1000px){.who{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.who{grid-template-columns:1fr}}
.who>div{border-top:1px solid var(--border);padding-top:14px}
.who h3{font-size:17px;line-height:24px}
.who p{font-size:14px;line-height:20px;color:var(--text-2);margin-top:6px;max-width:none}

/* detail pages */
.linehead{display:grid;grid-template-columns:3fr 3fr;gap:var(--gap);align-items:center}
.linehead figure img,.linehead figure svg.ilu{aspect-ratio:3/2;object-fit:cover;width:100%}
@media (max-width:860px){.linehead{grid-template-columns:1fr}}
.facts{font-family:var(--mono);font-size:13px;line-height:20px;border-top:1px solid var(--text);display:grid;margin-top:32px;max-width:720px}
.facts div{display:grid;grid-template-columns:1fr 3fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--border)}
.facts div b{font-weight:400;color:var(--text-2)}
.deliv{display:grid;gap:24px}
.deliv li{display:grid;grid-template-columns:24px 1fr;gap:16px;align-items:start;max-width:var(--measure-max)}
.deliv li p b{display:block;font-weight:600;margin-bottom:2px}
.sit{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap)}
@media (max-width:860px){.sit{grid-template-columns:1fr}}
.sit>div{border-top:1px solid var(--border);padding-top:12px}
.sit h3{font-size:18px;line-height:24px}
.sit p{font-size:14px;line-height:20px;color:var(--text-2);margin-top:8px;max-width:none}
.faq{display:grid;max-width:var(--measure-max)}
.faq div{border-top:1px solid var(--border);padding:20px 0}
.faq div:last-child{border-bottom:1px solid var(--border)}
.faq h3{font-size:18px;line-height:24px}
.faq p{margin-top:8px;max-width:none}
.actors{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
@media (max-width:1000px){.actors{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.actors{grid-template-columns:1fr}}
.actors>div{border-top:1px solid var(--border);padding-top:14px}
.actors h3{font-size:17px;line-height:24px}
.actors p{font-size:14px;line-height:20px;color:var(--text-2);margin-top:6px;max-width:none}
.offer{border:1px solid var(--border);padding:28px;display:grid;gap:14px;background:var(--surface);position:relative;transition:border-color var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-out)}
.offer::before{content:"";position:absolute;top:-1px;left:-1px;height:2px;width:0;background:var(--cell);transition:width var(--dur-4) var(--ease-out)}
@media (hover:hover){.offer:hover{border-color:var(--border-strong);transform:translateY(-2px)}.offer:hover::before{width:calc(100% + 2px)}}
.offer h3,.offer h2{font-size:20px;line-height:26px}
.offer .top{display:flex;gap:12px;align-items:center}
.offer .meta{font-family:var(--mono);font-size:12px;line-height:18px;color:var(--text-2)}
.offer p{font-size:15px;line-height:22px}
.offer .btn{width:max-content;margin-top:6px}
.offers{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap)}
@media (max-width:860px){.offers{grid-template-columns:1fr}}
.offer.wide{grid-column:1/-1}
.comp{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap)}
@media (max-width:860px){.comp{grid-template-columns:1fr}}
.comp>div{border-top:1px solid var(--border);padding-top:12px}
.comp h3{font-size:18px;line-height:24px}
.comp p{font-size:14px;line-height:20px;color:var(--text-2);margin-top:8px;max-width:none}
.note{border-top:1px solid var(--border);padding:32px 0;display:grid;grid-template-columns:2fr 4fr;gap:var(--gap)}
.note:last-child{border-bottom:1px solid var(--border)}
.note h3,.note h2{font-size:22px;line-height:28px}
.note .mono{color:var(--text-2)}
@media (max-width:860px){.note{grid-template-columns:1fr}}
.article{max-width:var(--measure-max);display:grid;gap:16px}
.article h2{font-size:22px;line-height:28px;margin-top:24px}
.article p{max-width:none}
.article .standfirst{font-size:20px;line-height:30px}
.note h2 a{color:var(--text)}
.note-reading .article{min-width:0}
.note-reading .article h3{font-size:18px;line-height:26px;margin-top:16px}
.note-reading .article ol{margin:0;padding-left:24px;display:grid;gap:16px}
.note-sources{border-top:1px solid var(--border);margin-top:32px;padding-top:8px}
.note-sources ul{padding-left:20px;display:grid;gap:12px}
.note-sources a{overflow-wrap:anywhere}
.note-links{display:grid;grid-template-columns:1fr 2fr;gap:24px;border-top:1px solid var(--border);margin-top:32px;padding-top:24px}
.note-links a:last-child{text-align:right}
@media(max-width:600px){.note-links{grid-template-columns:1fr}.note-links a:last-child{text-align:left}}
.prose{max-width:var(--measure-max);display:grid;gap:16px}
.prose h2{margin-top:32px;font-size:22px;line-height:28px}
.prose h2:first-child{margin-top:0}
.prose p{max-width:none}
.prose ul{display:grid;gap:8px}
.prose li{display:grid;grid-template-columns:8px 1fr;gap:12px;align-items:baseline;text-align:justify;hyphens:auto}
.prose li::before{content:"";width:8px;height:8px;background:var(--cell);transform:translateY(-1px)}
.callout{border-left:2px solid var(--cell);padding:8px 0 8px 24px;max-width:var(--measure-max)}
.callout p{max-width:none}
.people{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap)}
@media (max-width:860px){.people{grid-template-columns:1fr}}
.people>div{border-top:1px solid var(--border);padding-top:12px}
.people h3{font-size:17px;line-height:24px}
.people p{font-size:14px;line-height:20px;color:var(--text-2);margin-top:6px;max-width:none}

/* direct contact directory */
.contact-directory{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:clamp(32px,5vw,80px);align-items:start}
.contact-channels{display:grid;gap:32px}
.contact-channel,.contact-office{border-top:1px solid var(--border-strong);padding-top:20px;min-width:0}
.contact-directory h2{font-size:17px;line-height:24px;margin-bottom:12px}
.contact-email{font-family:var(--mono);font-size:clamp(15px,1.25vw,18px);line-height:1.6;overflow-wrap:anywhere;hyphens:none;color:var(--text)}
.contact-company{font-weight:600;text-align:left;hyphens:none}
.contact-office address{font-style:normal;font-size:16px;line-height:1.6;margin-top:16px}
.contact-registration{font-family:var(--mono);font-size:12px;line-height:20px;color:var(--text-2);margin-top:24px;text-align:left}
@media (max-width:860px){.contact-directory{grid-template-columns:minmax(0,1fr);gap:40px}}

/* footer */
footer{border-top:1px solid var(--border);padding:64px 0 32px;font-size:14px;line-height:20px;color:var(--text-2)}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr 2fr;gap:var(--gap);align-items:start}
footer h4{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);font-weight:400;margin-bottom:12px}
footer nav.f{display:grid;gap:6px;margin:0}
footer nav.f a{padding:0;font-size:14px;color:var(--text);background-position:0 100%;width:max-content}
footer .legal{font-family:var(--mono);font-size:12px;line-height:18px;color:var(--text-2)}
footer .tag{font-size:15px;line-height:22px;color:var(--text);max-width:34ch;margin-top:16px;text-align:left}
footer .base{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-top:1px solid var(--border);margin-top:48px;padding-top:20px;font-family:var(--mono);font-size:12px;line-height:18px}
footer .base a{color:var(--text-2)}
footer .base .mid{text-align:center;flex:1}
@media (max-width:860px){footer .cols{grid-template-columns:1fr 1fr}footer .base{justify-content:center;text-align:center}}
@media (max-width:600px){footer .cols{grid-template-columns:1fr}}
footer .footer-language{font:inherit;color:inherit;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 4px;border:0;border-radius:0;background:none;cursor:pointer;text-underline-offset:4px}
footer .footer-language:hover,footer .footer-language[aria-pressed="true"]{text-decoration:underline}
footer .footer-language:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
footer .footer-language:disabled{opacity:.5;cursor:wait}
/* sitemap tree */
.tree{font-size:15px;line-height:24px;display:grid;gap:4px}
.tree ul{padding-left:24px;border-left:1px solid var(--border);margin-left:6px;display:grid;gap:4px}
.tree li{position:relative;padding-left:12px}
.tree li::before{content:"";position:absolute;left:-1px;top:12px;width:8px;height:1px;background:var(--border-strong)}
.tree>li{padding-left:0}
.tree>li::before{display:none}
.tree a{color:var(--text)}
.tree .mono{color:var(--text-2);margin-left:8px}
/* places */
.places{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
@media (max-width:860px){.places{grid-template-columns:1fr}}
.places>div{border-top:1px solid var(--border);padding-top:12px}
.places h3{font-size:17px;line-height:24px}
.places p{font-size:14px;line-height:20px;color:var(--text-2);margin-top:6px;max-width:none}

/* wayfinding */
.crumbs{font-family:var(--mono);font-size:12px;line-height:18px;color:var(--text-2);display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:24px}
.crumbs a{color:var(--text-2)}
.crumbs span::before{content:"›";margin:0 2px;color:var(--border-strong)}
.crumbs span:first-child::before{content:""}
.crumbs [aria-current]{color:var(--text)}
.toc{position:sticky;top:96px;align-self:start;font-family:var(--mono);font-size:12px;line-height:18px;display:grid;gap:0}
.toc .lab{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);display:flex;align-items:center;gap:8px;margin-bottom:14px}
.toc .lab::before{content:"";width:8px;height:8px;background:var(--cell)}
.toc .rail{position:relative;display:grid}
.toc .rail::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--border)}
.toc .rail::after{content:"";position:absolute;left:0;top:0;width:1px;height:calc(var(--p,0)*100%);background:var(--text);transition:height var(--dur-2) linear}
.toc a{display:grid;grid-template-columns:22px 1fr;gap:6px;align-items:baseline;padding:6px 0 6px 16px;color:var(--text-2);border:0;position:relative;transition:color var(--dur-2) var(--ease-out),transform var(--dur-3) var(--ease-out)}
.toc a i{font-style:normal;font-size:11px;color:var(--text-2);transition:color var(--dur-2) var(--ease-out)}
.toc a::before{content:"";position:absolute;left:-3px;top:12px;width:7px;height:7px;background:var(--cell);transform:scale(0);transition:transform var(--dur-3) var(--ease-nudge)}
.toc a:hover{color:var(--text);transform:translateX(2px)}
.toc a.is-done i{color:var(--text-2)}
.toc a.is-current{color:var(--text)}
.toc a.is-current i{color:var(--text)}
.toc a.is-current::before{transform:scale(1)}
.withtoc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,5fr);gap:var(--gap);align-items:start}
.sect{scroll-margin-top:96px}
@media (max-width:860px){
  .sect{scroll-margin-top:136px}
  .withtoc{grid-template-columns:minmax(0,1fr)}
  .toc{position:sticky;top:72px;z-index:4;display:block;overflow-x:auto;white-space:nowrap;margin:0 -24px;padding:10px 24px;background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);scrollbar-width:none}
  .toc::-webkit-scrollbar{display:none}
  .toc .lab{display:none}
  .toc .rail{display:flex;gap:6px}
  .toc .rail::before,.toc .rail::after,.toc a::before{display:none}
  .toc a{display:inline-flex;gap:6px;padding:5px 10px;border:1px solid var(--border);border-radius:2px;transform:none}
  .toc a:hover{transform:none}
  .toc a.is-current{border-color:var(--text);background:var(--text);color:var(--surface)}
  .toc a.is-current i{color:var(--surface)}
}
.pn{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gap);border-top:1px solid var(--border);margin-top:64px;padding-top:24px}
.pn a{display:grid;gap:4px;color:var(--text);border:0;min-width:0;overflow-wrap:anywhere}
.pn a span{font-family:var(--mono);font-size:12px;color:var(--text-2)}
.pn a b{font-weight:600}
.pn a.next{text-align:right}
.pn a:hover b{color:var(--link)}
.totop{position:fixed;right:24px;bottom:24px;z-index:6;font-family:var(--mono);font-size:12px;letter-spacing:.08em;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);padding:8px 12px;border-radius:2px;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-3) var(--ease-out)}
.totop.show{opacity:1;visibility:visible;pointer-events:auto}
/* E2EE comparison table */
table.cmp{border-collapse:collapse;width:100%;font-size:14px;line-height:20px;max-width:none}
table.cmp th,table.cmp td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top}
table.cmp th{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);font-weight:400}
table.cmp td:first-child{font-weight:600}
.tblwrap{overflow-x:auto}
/* platform stack, text first */
.stack{display:grid;gap:8px;max-width:var(--measure-max)}
.stack>div{border:1px solid var(--border);padding:14px 16px;display:grid;grid-template-columns:2fr 4fr;gap:var(--gap);align-items:baseline}
.stack>div b{font-weight:600}
.stack>div span{font-size:14px;line-height:20px;color:var(--text-2)}
.stack>div.core{border-color:var(--text);box-shadow:inset 3px 0 0 var(--cell)}
@media (max-width:600px){.stack>div{grid-template-columns:1fr}}
/* TC Safe Sender: inherits Ion colors, typography, theme and focus behavior. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.contact-panel{min-width:0}.contact-directory .contact-panel h2{font-size:28px;line-height:1.25;margin:0 0 24px}
.contact-explanation{font-size:16px;line-height:1.6;margin:0 0 18px;text-align:justify;hyphens:auto}
.contact-required,.contact-help{font-size:12px;line-height:1.6;color:var(--text-2);margin:10px 0;text-align:justify}
.contact-privacy{margin-top:22px}.contact-privacy strong{color:var(--text)}
#contact-form{margin-top:30px}#contact-fields{padding:0;border:0;margin:0;min-width:0}
#contact-fields label{display:block;font-size:14px;font-weight:600;margin:22px 0 8px;line-height:1.5}
#contact-fields input,#contact-fields select,#contact-fields textarea{display:block;box-sizing:border-box;width:100%;max-width:100%;border:1px solid var(--border-strong);border-radius:0;padding:12px;background:var(--surface);color:var(--text);font:inherit;line-height:1.5;min-height:48px}
#contact-fields textarea{min-height:200px;resize:vertical}
#contact-fields input:disabled{background:var(--surface-2);color:var(--text-2);border-color:var(--border)}
#contact-fields input[type=file]{font-size:13px;overflow:hidden}#contact-fields input::file-selector-button{border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font:inherit;padding:9px;margin-right:10px}
.contact-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.contact-actions button{min-height:48px;padding:12px 20px;border:1px solid var(--accent-edge);background:var(--accent);color:var(--ink);font:600 14px/1.5 var(--sans);cursor:pointer}
.contact-actions button[type=reset]{border-color:var(--border-strong);background:var(--surface);color:var(--text)}
.contact-actions button:disabled{cursor:wait;opacity:.65}
.contact-report-note{margin:20px 0;padding:20px;background:var(--surface-2);border-left:3px solid var(--accent-edge)}
.contact-report-note p{font-size:14px;line-height:1.6;margin:0;text-align:justify}
.contact-report-note a,.privacy-content a,.legal-content a{border-bottom:1px solid currentColor}
.contact-status:empty{display:none}.contact-status:not(:empty){padding:18px;margin:20px 0 0;background:var(--surface-2);border-left:4px solid var(--accent-edge);font-weight:600;font-size:15px;line-height:1.6}
.contact-status[data-state=success]{background:#EAF5ED;color:#14512F;border-color:#12773E}.contact-status.is-error{background:#F8EEEE;color:#762E36;border-color:#A64B50}
/* Editorial notices use the same wrap, .linehead and .two grid as About TC. */
.notice-wrap{min-width:0}
.privacy-nav{width:100%;margin-bottom:64px;padding-bottom:32px;border-bottom:1px solid var(--border)}
.privacy-nav .eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.12em;padding-top:18px}
.privacy-nav-grid{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.privacy-nav-grid a{min-width:0;display:flex;gap:12px;padding:16px 0;border-top:1px solid var(--border);color:var(--text);font-size:14px;line-height:1.5}
.privacy-nav-number{font-family:var(--mono);font-size:12px;flex:none;color:var(--text-2)}
.privacy-section+.privacy-section,.notice-section+.notice-section{margin-top:64px}
.privacy-section>div,.notice-section>div{min-width:0}
.privacy-content .prose,.legal-content .prose{max-width:none}
.privacy-content h3{margin-top:16px}.privacy-content h3:first-child{margin-top:0}
.privacy-content h4{font-size:18px;line-height:1.4;margin:8px 0 0}
.privacy-report,.privacy-integration-note{display:grid;gap:16px;background:#F8EEEE;color:#50292E;border-left:3px solid #A64B50;padding:24px}
.privacy-report a,.privacy-integration-note a{color:#762E36}
.privacy-report p+p,.privacy-integration-note p+p{margin-top:0}
[data-theme=dark] .privacy-report,[data-theme=dark] .privacy-integration-note{background:#352329;color:#F4DDE1;border-color:#C27680}
[data-theme=dark] .privacy-report a,[data-theme=dark] .privacy-integration-note a{color:#FFC4CD}
.privacy-content .privacy-top-link{text-align:right;margin-top:8px;max-width:none}
.privacy-top-link a{display:inline-flex;gap:10px;align-items:center;min-height:44px;font-family:var(--mono);font-size:12px}
.privacy-content [data-anchor]{scroll-margin-top:100px}
@media(max-width:600px){.privacy-nav-grid{grid-template-columns:1fr}.privacy-report,.privacy-integration-note{padding:20px}.contact-actions button{padding:12px 16px}}


/* Expanded navigation must obscure the content underneath in either theme. */
@media(max-width:860px){header #nav.open{background:var(--surface)}}
