.ci-gpq * { box-sizing: border-box; }
.ci-gpq { box-sizing: border-box; font-family: 'Nunito Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #202224; margin: 0 auto; max-width: calc(1200px + 56px); padding: 20px 28px; width: 100%; }
@media (max-width: 1199.98px) { .ci-gpq { padding-left: 24px; padding-right: 24px; } }
@media (max-width: 560px) { .ci-gpq { padding-left: 20px; padding-right: 20px; } }
/* The frame is an inset shadow: Figma's inside stroke takes no room (COMPONENT_GENERATION.md). */
.ci-gpq-panel { align-items: flex-start; background: #fff; border-radius: 12px; box-shadow: inset 0 0 0 1px #0c866a; display: flex; gap: 8px; padding: 20px; }
.ci-gpq-mark { display: block; flex: none; height: 21px; object-fit: contain; width: 21px; }
/* One uploaded glyph serves both ends: the closing mark IS the opening one
   turned around, top-aligned like it, exactly as content/quote draws it. */
.ci-gpq-mark-close { transform: rotate(180deg); }
.ci-gpq-text { flex: 1; font-size: 16px; font-style: italic; font-weight: 500; line-height: 1.5; min-width: 0; overflow-wrap: anywhere; }
/* Every rich-text block, nested ones too (p in a blockquote or li), keeps the 20px rhythm and the marks' top line. */
.ci-gpq-text > * { margin: 0 0 20px; }
.ci-gpq-text p { margin: 0 0 20px; }
.ci-gpq-text :last-child { margin-bottom: 0; }
/* Forced colours and print drop box-shadows: a real border (inside the same 20px) keeps the frame. */
@media print, (forced-colors: active) { .ci-gpq-panel { border: 1px solid #0c866a; box-shadow: none; padding: 19px; } }
/* v5 tablet and phone frames: 500 italic 14/24 (DREAM-831). */
@media (max-width: 1199.98px) { .ci-gpq-text { font-size: 14px; line-height: 24px; } }
.ci-gpq a[href] { color: #5749dd; text-decoration: none; }
.ci-gpq a[href]:hover { text-decoration: underline; }
.ci-gpq a[href]:focus-visible { border-radius: 5px; outline: 2px solid #5749dd; outline-offset: 3px; }
.ci-text * { box-sizing: border-box; }
.ci-text { box-sizing: border-box; color: #202224; font-family: 'Nunito Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; margin: 0 auto; max-width: calc(1200px + 56px); padding: 20px 28px 0; }
@media (max-width: 1199.98px) { .ci-text { padding-left: 24px; padding-right: 24px; } }
@media (max-width: 560px) { .ci-text { padding-left: 20px; padding-right: 20px; } }
.ci-text p { font-size: 16px; line-height: 1.5; margin: 0 0 20px; }
/* The body itself, for a value that arrives as bare text (a plain TEXT field
   mapped onto this rich leaf): the same type as a paragraph, not the browser's. */
.ci-text-body { font-size: 16px; line-height: 1.5; }
.ci-text-body > :first-child { margin-top: 0; }
.ci-text-body > :last-child { margin-bottom: 0; }
.ci-text a { color: #5749dd; text-decoration: none; }
.ci-text a:hover { text-decoration: underline; }
.ci-text ul, .ci-text ol { margin: 0 0 20px; padding-left: 24px; }
.ci-text li { margin-bottom: 6px; }
.ci-text strong { font-weight: 700; }
/* Rich-text subheadings (e.g. the about-page mission copy). */
.ci-text h3 { font-size: 22px; letter-spacing: -.02em; margin: 26px 0 14px; }
.ci-text h4 { font-size: 18px; margin: 22px 0 12px; }
/* link/inline Focus: the 2px ring 3px out, r8 round the ring. */
.ci-text a:focus-visible { border-radius: 5px; outline: 2px solid #5749dd; outline-offset: 3px; }
/* text-row: the decor/dot-6 at the column edge on the first line's caps, the words 18px in, rows 44 apart. The
   native marker stays, unpainted, so WebKit keeps the list a list (the callout's way). */
.ci-text-body ul { padding-left: 18px; }
.ci-text-body ul > li { position: relative; }
.ci-text-body ul > li::marker { color: transparent; }
.ci-text-body ul > li::before { -webkit-print-color-adjust: exact; background: linear-gradient(217.12deg, #ffbe04 42.21%, #e03327 230.55%); border-radius: 50%; content: ''; height: 6px; left: -18px; position: absolute; print-color-adjust: exact; top: 8px; width: 6px; }
/* Forced colours repaint the marker whatever its colour: there it is the bullet and the dot goes. */
@media (forced-colors: active) { .ci-text-body ul > li::before { content: none; } }
.ci-text-body li { margin-bottom: 20px; }
.ci-text-body li:last-child { margin-bottom: 0; }
/* Rich-text subheadings: v5's Section Title, 700 24/28. */
.ci-text-body h3 { font-size: 24px; letter-spacing: normal; line-height: 28px; }
/* The format bar's Quote is the NL content/quote: the inside frame takes no room, both
   21px marks sit 20px in from the top corners, the closing one turned round. */
.ci-text blockquote { font-size: 16px; font-style: italic; font-weight: 500; line-height: 1.5; margin: 0 0 20px; overflow-wrap: anywhere; }
/* One frame: a quote nested in it (imported, pasted) reads as quote text in its column. */
.ci-text-body > blockquote { background: #fff; border-radius: 12px; box-shadow: inset 0 0 0 1px #0c866a; padding: 20px 49px; position: relative; }
.ci-text-body > blockquote::before, .ci-text-body > blockquote::after { -webkit-print-color-adjust: exact; background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2021%2021%22%3E%3Cpath%20d%3D%22M11.812%2010.4995L15.7495%2010.4995C16.4714%2010.4995%2017.062%2011.0901%2017.062%2011.812L17.062%2015.7495C17.062%2016.4714%2016.4714%2017.062%2015.7495%2017.062L11.812%2017.062C11.0901%2017.062%2010.4995%2016.4714%2010.4995%2015.7495L10.4995%2011.812C10.4995%2011.0901%2011.0901%2010.4995%2011.812%2010.4995ZM3.937%2010.4995L7.8745%2010.4995C8.5964%2010.4995%209.187%2011.0901%209.187%2011.812L9.187%2015.7495C9.187%2016.4714%208.5964%2017.062%207.8745%2017.062L3.937%2017.062C3.2151%2017.062%202.6245%2016.4714%202.6245%2015.7495L2.6245%2011.812C2.6245%2011.0901%203.2151%2010.4995%203.937%2010.4995Z%20M13.1256%2010.4995L13.1256%2013.1245C13.1256%2013.8494%2012.538%2014.437%2011.8131%2014.437C11.0882%2014.437%2010.5006%2013.8494%2010.5006%2013.1245L10.5006%2010.4995C10.5006%208.2703%2011.2395%205.9359%2012.8539%204.3215C13.3664%203.809%2014.1973%203.809%2014.7098%204.3215C15.2224%204.8341%2015.2224%205.6649%2014.7098%206.1775C13.6992%207.1882%2013.1256%208.7913%2013.1256%2010.4995ZM5.2506%2010.4995L5.2506%2013.1245C5.2506%2013.8494%204.663%2014.437%203.9381%2014.437C3.2132%2014.437%202.6256%2013.8494%202.6256%2013.1245L2.6256%2010.4995C2.6256%208.2703%203.3645%205.9359%204.9789%204.3215C5.4914%203.809%206.3223%203.809%206.8348%204.3215C7.3474%204.8341%207.3474%205.6649%206.8348%206.1775C5.8242%207.1882%205.2506%208.7913%205.2506%2010.4995Z%22%20fill%3D%22%230C866A%22%2F%3E%3C%2Fsvg%3E") center / 21px 21px no-repeat; content: ''; height: 21px; position: absolute; print-color-adjust: exact; top: 20px; width: 21px; }
.ci-text-body > blockquote::before { left: 20px; }
.ci-text-body > blockquote::after { right: 20px; transform: rotate(180deg); }
/* Its blocks keep the 20px rhythm; the last one, at any depth, leaves the padding alone. */
.ci-text blockquote > * { margin: 0 0 20px; }
.ci-text blockquote :last-child { margin-bottom: 0; }
/* Forced colours and print drop box-shadows: an inset outline keeps the frame in place. */
@media print, (forced-colors: active) { .ci-text-body > blockquote { box-shadow: none; outline: 1px solid #0c866a; outline-offset: -1px; } }
.ci-team-carousel * { box-sizing: border-box; }
.ci-team-carousel { box-sizing: border-box; font-family: 'Nunito Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #202224; margin: 0 auto; max-width: calc(1200px + 56px); padding: 20px 28px; }
@media (max-width: 1199.98px) { .ci-team-carousel { padding-left: 24px; padding-right: 24px; } }
@media (max-width: 560px) { .ci-team-carousel { padding-left: 20px; padding-right: 20px; } }
.ci-team-carousel-viewport { position: relative; }
/* 5px of padding round the slides, so the card's focus ring is not clipped. */
.ci-team-carousel-track { cursor: grab; display: flex; gap: 20px; list-style: none; margin: -5px -5px 0; overflow-x: auto; padding: 5px 5px 10px; scroll-behavior: smooth; scroll-padding-inline: 5px; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; }
.ci-team-carousel-track::-webkit-scrollbar { display: none; }
.ci-team-carousel-track.is-dragging { cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; user-select: none; }
.ci-team-carousel-track.is-dragging a { pointer-events: none; }
/* v5 (change document request 4, 0474): the slides fill the row, 3 on a desktop, 2 + a 24px peek below the arrows'
   1180, then one + the peek; never under 240px, so a rail column holds one card + the peek (PR #573 R1.2). */
.ci-tslide { display: flex; flex: 0 0 max(calc((100% - 40px) / 3), min(240px, 100% - 44px)); list-style: none; min-width: 0; scroll-snap-align: start; }
.ci-team-card { align-items: center; background: linear-gradient(180deg, #f3f2ff57 0%, #eeedfb 73.64%); border-radius: 12px; color: #202224; display: flex; flex-direction: column; gap: 20px; padding: 20px; position: relative; text-align: center; width: 100%; }
.ci-team-avatar { background: #efeff1; border-radius: 50%; display: block; flex: none; height: 96px; overflow: hidden; width: 96px; }
.ci-team-avatar picture { display: contents; }
.ci-team-photo { display: block; height: 100%; object-fit: cover; width: 100%; }
/* Hidden, not transparent: an empty photo is not announced; its disc stays. */
.ci-team-photo[src=""], .ci-team-photo:not([src]) { visibility: hidden; }
.ci-team-name { display: block; font-size: 16px; font-weight: 700; line-height: 22px; margin: -5px 0 0; max-width: 100%; overflow-wrap: anywhere; }
/* Chromium paints a 1.5px box as 2px: the rule is a 2px box, its top 3/4 green. */
.ci-team-name::after { background: linear-gradient(#0c866a 75%, transparent 0); content: ''; display: block; height: 2px; margin: 2px 0 -.5px; }
/* v4 (0459): only the name is the link; its focus ring goes round the card (the Focus variant), covering nothing.
   Its 11px pads, out of flow, make the 44px hit area round the name's 22px line (DREAM-756). */
.ci-team-name-link { color: inherit; display: block; margin: -11px 0; padding: 11px 0; text-decoration: none; text-underline-offset: 1.5px; }
.ci-team-name-link:focus-visible { outline: none; }
.ci-team-name-link:focus-visible::after { border-radius: 8px; content: ''; inset: -3px; outline: 2px solid #5749dd; outline-offset: 0; pointer-events: none; position: absolute; }
@media (hover: hover) { .ci-team-name-link:hover { color: #0c866a; text-decoration: underline; } }
.ci-team-name-link:active { color: #1b5547; text-decoration: underline; }
/* Figma's 234.53px subtitle reaches 1.265px into each side's padding. */
.ci-team-position { align-self: stretch; font-size: 14px; font-weight: 400; line-height: 20px; margin: -4px 0 -6px; margin-inline: -1.265px; overflow-wrap: anywhere; }
/* A drag is no press: one class more than the card's :active rule (0389's tie). */
.ci-team-carousel-track.is-dragging .ci-team-name-link { color: #202224; text-decoration: none; }
.ci-team-carousel-btn { align-items: center; background: #fff; border: 1px solid #d9d9d9; border-radius: 50%; bottom: 10px; color: #545658; cursor: pointer; display: flex; height: 48px; justify-content: center; margin: auto 0; padding: 0; position: absolute; top: 5px; width: 48px; z-index: 3; }
.ci-team-carousel-next { right: 12px; }
.ci-team-carousel-prev { left: 12px; }
.ci-team-carousel-prev .ci-team-carousel-icon { transform: scaleX(-1); }
.ci-team-carousel-btn[hidden] { display: none; }
@media (hover: hover) {
  .ci-team-carousel-btn:not([aria-disabled="true"]):hover { border-color: #545658; box-shadow: 0 4px 12px rgba(0, 0, 0, .16); }
}
.ci-team-carousel-btn:not([aria-disabled="true"]):active { background: #0c866a; border-color: #d9d9d9; box-shadow: none; color: #fff; }
/* An arrow at its end: button/icon-lg Disabled's 40% per layer (the focus ring stays whole), and it keeps the click. */
.ci-team-carousel-btn[aria-disabled="true"] { background: rgba(255, 255, 255, .4); border-color: rgba(217, 217, 217, .4); color: rgba(84, 86, 88, .4); cursor: default; }
@media (forced-colors: active) {
  .ci-team-carousel-btn[aria-disabled="true"] { border-color: GrayText; color: GrayText; }
}
/* The 54px ring 3px out, round in every browser (an outline is square before Safari 16.4). */
.ci-team-carousel-btn:focus-visible { outline: none; }
.ci-team-carousel-btn:focus-visible::after { border: 2px solid #5749dd; border-radius: 50%; content: ''; inset: -6px; pointer-events: none; position: absolute; }
.ci-team-carousel-icon { display: block; flex: none; height: 20px; width: 20px; }
@media (max-width: 1180px) {
  .ci-team-carousel-btn { display: none; }
}
@media (max-width: 1180px) { .ci-tslide { flex-basis: max(calc((100% - 64px) / 2), min(240px, 100% - 44px)); } }
/* A phone's slide is v5's 272 (home-/about-mobile), 20 apart: 58px of the next in the 350 column (0498). */
@media (max-width: 560px) { .ci-tslide { flex-basis: min(272px, 100% - 44px); } }
.ci-alist * { box-sizing: border-box; }
.ci-alist { box-sizing: border-box; font-family: 'Nunito Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #202224; margin: 0 auto; max-width: calc(1200px + 56px); padding: 20px 28px 0; width: 100%; }
@media (max-width: 1199.98px) { .ci-alist { padding-left: 24px; padding-right: 24px; } }
@media (max-width: 560px) { .ci-alist { padding-left: 20px; padding-right: 20px; } }
.ci-alist-body ul, .ci-alist-body ol { font-size: 15px; line-height: 1.5; margin: 0; padding-left: 24px; }
.ci-alist-body ul[data-marker="none"] { list-style: none; padding-left: 0; }
.ci-alist-body li { margin: 0 0 8px; }
.ci-alist-body li:last-child { margin-bottom: 0; }
.ci-alist-body li p { margin: 0; }
/* An item's own picture (unit 0360): under its text, the column's width at most. */
.ci-alist-body .ci-list-figure { margin: 8px 0 0; }
.ci-alist-body .ci-list-figure picture { display: block; }
.ci-alist-body .ci-list-img { border-radius: 8px; display: block; height: auto; max-width: 100%; }
/* The writer's column count (settings.list.columns, unit 0366): down, then across.
   column-width makes the count a maximum, so a rail or a phone gets fewer. The
   indent moves onto each item so its marker stays inside its own column box. */
.ci-alist-body [data-columns] { column-gap: 32px; column-width: 14rem; padding-left: 0; }
.ci-alist-body [data-columns="2"] { column-count: 2; }
.ci-alist-body [data-columns="3"] { column-count: 3; }
.ci-alist-body [data-columns] > li { break-inside: avoid; overflow-wrap: anywhere; }
.ci-alist-body [data-columns]:not([data-marker="none"]) > li { margin-left: 24px; }
@media (max-width: 560px) {
  .ci-alist-body [data-columns] { column-count: 1; }
}
.ci-alist a[href] { color: #5749dd; text-decoration: none; }
.ci-alist a[href]:hover { text-decoration: underline; }
.ci-alist a[href]:focus-visible { border-radius: 5px; outline: 2px solid #5749dd; outline-offset: 3px; }