/* Codeforce subpages — shared editorial and motion system */
.cf-subpage { --sub-cyan:#08bfd1; --sub-blue:#0759e6; --sub-navy:#07162f; color:var(--cf-ink); background-color:#fbfdff; background-image:radial-gradient(ellipse at 4% 14%,rgba(8,191,209,.07),transparent 22%),radial-gradient(ellipse at 96% 42%,rgba(7,89,230,.055),transparent 24%),radial-gradient(ellipse at 12% 78%,rgba(100,124,245,.045),transparent 20%),linear-gradient(180deg,#fff 0%,#f8fcff 28%,#fff 51%,#f7faff 76%,#fff 100%); overflow:hidden; }
.cf-subpage * { box-sizing:border-box; }
.cf-subpage h1,.cf-subpage h2,.cf-subpage h3 { line-break:strict; text-wrap:balance; }
@supports (word-break:auto-phrase) { .cf-subpage h1,.cf-subpage h2,.cf-subpage h3 { word-break:auto-phrase; } }
.cf-sub-section { position:relative; isolation:isolate; padding:128px 0; overflow:hidden; }
.cf-sub-section { content-visibility:auto; contain-intrinsic-size:auto 760px; }
.cf-sub-section--soft { background:linear-gradient(135deg,rgba(8,191,209,.055),rgba(247,252,255,.94) 38%,rgba(7,89,230,.045)); }
.cf-sub-section--ink { color:#fff; background:var(--sub-navy); }
.cf-sub-section > .cf-shell { position:relative; z-index:2; }

/* Shared child-page hero */
.cf-sub-hero { position:relative; isolation:isolate; min-height:700px; display:flex; align-items:center; padding:148px 0 76px; overflow:hidden; background:radial-gradient(circle at 88% 20%,rgba(100,124,245,.085),transparent 27%),linear-gradient(135deg,#f2fbff,#f8faff 48%,#fff 78%); }
.cf-sub-hero::before { content:''; position:absolute; z-index:0; inset:-18%; opacity:.74; background:radial-gradient(circle at 18% 28%,rgba(8,191,209,.12),transparent 22%),radial-gradient(circle at 82% 26%,rgba(100,124,245,.13),transparent 25%),radial-gradient(circle at 70% 86%,rgba(7,89,230,.08),transparent 26%); animation:cf-sub-aurora 14s ease-in-out infinite alternate; }
.cf-sub-hero__field { position:absolute; z-index:1; inset:90px 0 0 43%; opacity:.55; background-image:linear-gradient(rgba(7,89,230,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(7,89,230,.075) 1px,transparent 1px); background-size:52px 52px; mask-image:linear-gradient(90deg,transparent,#000 32%,transparent 94%); animation:cf-sub-grid 18s linear infinite; }
.cf-sub-hero__inner { position:relative; z-index:2; width:min(1120px,calc(100% - 96px)); display:grid; grid-template-columns:minmax(0,1fr) minmax(270px,.42fr); gap:clamp(64px,7vw,112px); align-items:center; margin-inline:auto; }
.cf-sub-hero__copy .cf-kicker { margin-bottom:30px; }
.cf-sub-hero__copy h1 { max-width:790px; margin:0; color:var(--sub-navy); font-size:clamp(50px,5.45vw,76px); font-weight:600; line-height:1.2; letter-spacing:-.055em; text-wrap:balance; }
.cf-sub-hero__copy h1 em { color:transparent; font-style:normal; background:var(--cf-gradient); background-clip:text; -webkit-background-clip:text; }
.cf-sub-hero__copy > p:last-child { max-width:650px; margin:34px 0 0; color:#58667a; font-size:16px; line-height:2; text-wrap:pretty; }
.cf-sub-hero__signal { position:relative; min-height:240px; display:grid; grid-template-rows:auto auto 1fr auto; padding:28px; color:#718096; border:1px solid rgba(7,89,230,.14); background:rgba(255,255,255,.64); backdrop-filter:blur(10px); font-family:Manrope,sans-serif; }
.cf-sub-hero__signal::before { content:''; position:absolute; top:-5px; right:-5px; width:10px; height:10px; border-radius:50%; background:var(--sub-cyan); box-shadow:0 0 18px rgba(8,191,209,.8); animation:cf-sub-pulse 2.8s ease-out infinite; }
.cf-sub-hero__signal span { color:var(--sub-blue); font-size:11px; letter-spacing:.16em; }
.cf-sub-hero__signal b { margin-top:8px; color:var(--sub-navy); font-size:34px; letter-spacing:-.04em; }
.cf-sub-hero__signal i { align-self:center; height:1px; background:linear-gradient(90deg,var(--sub-cyan),var(--sub-blue),transparent); transform-origin:left; animation:cf-sub-line 4s ease-in-out infinite; }
.cf-sub-hero__signal small { font-size:8px; font-weight:700; letter-spacing:.14em; }
.cf-sub-hero--compact { min-height:660px; }

/* Typography */
.cf-sub-heading { margin-bottom:68px; }
.cf-sub-heading h2,.cf-message-copy h2,.cf-contact-guide h2 { margin:0; font-size:clamp(38px,4.7vw,66px); font-weight:600; line-height:1.25; letter-spacing:-.05em; }
.cf-sub-heading > p:last-child { max-width:620px; margin:24px 0 0; color:#667487; font-size:15px; line-height:1.95; }
.cf-sub-heading--split { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.7fr); gap:90px; align-items:end; }
.cf-sub-heading--split > p { margin:0; color:#657386; font-size:15px; line-height:2; }
.cf-sub-section--ink .cf-sub-heading h2 { color:#fff; }
.cf-rich-copy p { margin:0 0 1.45em; color:#5b697d; font-size:15px; line-height:2.05; }

/* About */
.cf-message-layout { display:grid; grid-template-columns:minmax(340px,.82fr) minmax(0,1.18fr); gap:100px; align-items:start; }
.cf-message-portrait { position:relative; }
.cf-message-portrait::before { content:''; position:absolute; z-index:-1; right:-24px; bottom:-24px; width:68%; height:60%; background:linear-gradient(140deg,rgba(8,191,209,.16),rgba(7,89,230,.05)); }
.cf-message-portrait img { width:100%; aspect-ratio:.84; display:block; object-fit:cover; filter:saturate(.82) contrast(1.03); }
.cf-message-portrait span { display:block; margin-top:18px; color:#718095; font:800 9px Manrope,sans-serif; letter-spacing:.15em; }
.cf-message-copy { padding-top:28px; }
.cf-message-copy h2 { margin-bottom:38px; }
.cf-signature { display:flex; justify-content:flex-end; align-items:baseline; gap:20px; margin-top:40px; padding-top:24px; border-top:1px solid #dce4ee; }
.cf-signature span { color:#7a8799; font-size:12px; }
.cf-signature strong { color:var(--sub-blue); font-size:19px; font-weight:600; letter-spacing:.06em; }
.cf-sub-grid { position:absolute; z-index:0; inset:0; opacity:.18; background-image:linear-gradient(rgba(95,220,232,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(95,220,232,.14) 1px,transparent 1px); background-size:48px 48px; mask-image:linear-gradient(110deg,transparent,#000 45%,transparent 94%); animation:cf-sub-grid 18s linear infinite; }
.cf-statement-list { border-top:1px solid rgba(255,255,255,.2); }
.cf-statement-list article { display:grid; grid-template-columns:160px 1fr; gap:44px; padding:52px 4px; border-bottom:1px solid rgba(255,255,255,.2); }
.cf-statement-list article > span { color:#6bdfe8; font:800 10px Manrope,sans-serif; letter-spacing:.14em; }
.cf-statement-list h3 { margin:0 0 22px; color:#fff; font-size:clamp(28px,3.3vw,44px); font-weight:600; line-height:1.45; letter-spacing:-.04em; }
.cf-statement-list p { max-width:720px; margin:0; color:#b5c3d6; font-size:15px; line-height:2; }
.cf-company-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:110px; align-items:start; }
.cf-company-table { margin:0; border-top:1px solid #cfd9e5; }
.cf-company-table > div { display:grid; grid-template-columns:150px 1fr; gap:30px; padding:26px 4px; border-bottom:1px solid #cfd9e5; }
.cf-company-table dt { color:#778497; font-size:12px; font-weight:600; }
.cf-company-table dd { margin:0; color:var(--sub-navy); font-size:15px; line-height:1.9; }

/* Services and Web detail refinement */
.cf-service-page.cf-subpage { padding-top:0; }
.cf-subpage .cf-page-hero { position:relative; isolation:isolate; min-height:690px; display:flex; align-items:center; padding:150px 0 88px; overflow:hidden; background:radial-gradient(circle at 86% 18%,rgba(100,124,245,.09),transparent 27%),linear-gradient(135deg,#eefaff,#f7f9ff 49%,#fff 80%); }
.cf-subpage .cf-page-hero--web { color:#fff; background:var(--sub-navy); }
.cf-page-hero__field { position:absolute; z-index:0; inset:88px 0 0 43%; opacity:.5; background-image:linear-gradient(rgba(7,89,230,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(7,89,230,.09) 1px,transparent 1px),radial-gradient(circle at 70% 30%,rgba(8,191,209,.16),transparent 24%); background-size:52px 52px,52px 52px,auto; mask-image:linear-gradient(90deg,transparent,#000 30%,transparent); animation:cf-sub-grid 18s linear infinite; }
.cf-page-hero--web .cf-page-hero__field { opacity:.28; background-image:linear-gradient(rgba(100,222,232,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(100,222,232,.14) 1px,transparent 1px),radial-gradient(circle at 70% 30%,rgba(8,191,209,.28),transparent 24%); }
.cf-subpage .cf-page-hero .cf-shell { position:relative; z-index:2; width:min(1120px,calc(100% - 96px)); padding-left:clamp(0px,2.4vw,38px); }
.cf-subpage .cf-page-hero h1 { max-width:940px; font-size:clamp(50px,5.45vw,76px); line-height:1.2; text-wrap:balance; }
.cf-subpage .cf-page-hero__lead { max-width:680px; text-wrap:pretty; }
.cf-subpage .cf-service-card { position:relative; overflow:hidden; }
.cf-subpage .cf-service-card::after { content:''; position:absolute; right:-60px; bottom:-70px; width:180px; height:180px; border:1px solid rgba(7,89,230,.11); border-radius:50%; transition:transform .5s ease; }
.cf-subpage .cf-service-card:hover::after { transform:scale(1.18); }
.cf-subpage .cf-service-card--web::after { border-color:rgba(105,222,231,.18); }
.cf-subpage .cf-process li { position:relative; overflow:hidden; }
.cf-subpage .cf-process li::after { content:''; position:absolute; right:0; bottom:0; left:0; height:2px; background:linear-gradient(90deg,var(--sub-cyan),var(--sub-blue)); transform:scaleX(0); transform-origin:left; transition:transform .45s ease; }
.cf-subpage .cf-process li:hover::after { transform:scaleX(1); }

/* Works */
.cf-works-intro { padding-bottom:150px; }
.cf-case-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:76px 38px; }
.cf-case-card__media { position:relative; aspect-ratio:1.38; display:flex; align-items:flex-end; padding:30px; overflow:hidden; color:#fff; background:linear-gradient(145deg,#12336d,#227cf0); }
.cf-case-card__media::before { content:''; position:absolute; inset:0; opacity:.32; background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px); background-size:34px 34px; }
.cf-case-card__media::after { content:''; position:absolute; inset:-60% -30%; opacity:0; background:linear-gradient(110deg,transparent 43%,rgba(255,255,255,.2) 50%,transparent 57%); transform:translateX(-42%); transition:opacity .3s ease,transform .8s ease; }
.cf-case-card:hover .cf-case-card__media::after { opacity:1; transform:translateX(42%); }
.cf-case-card__media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .55s cubic-bezier(.2,.8,.2,1); }
.cf-case-card:hover .cf-case-card__media img { transform:scale(1.035); }
.cf-case-card__media span { position:relative; z-index:1; font:700 29px/1.08 Manrope,sans-serif; letter-spacing:-.04em; }
.cf-case-card__media i { position:absolute; z-index:2; top:22px; right:22px; width:36px; height:36px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.65); border-radius:50%; font:normal 11px Manrope,sans-serif; }
.cf-case-card__media--violet { background:linear-gradient(145deg,#343a8d,#846be5); }
.cf-case-card__media--cyan { background:linear-gradient(145deg,#006c83,#12bdc7); }
.cf-case-card__label { margin:20px 0 9px; color:var(--sub-blue); font:800 9px Manrope,sans-serif; letter-spacing:.14em; }
.cf-case-card__client { margin:0 0 7px; color:#6d7b8d; font-size:11px; font-weight:600; letter-spacing:.04em; }
.cf-case-card h2 { margin:0 0 12px; color:var(--sub-navy); font-size:22px; font-weight:600; line-height:1.5; }
.cf-case-card h2 a { color:inherit; }
.cf-case-card__summary { max-width:660px; margin:0; color:#667487; font-size:13px; line-height:1.9; }
.cf-case-card__tags { display:flex; flex-wrap:wrap; gap:7px; margin:18px 0 0; padding:0; list-style:none; }
.cf-case-card__tags li { padding:7px 10px; color:#43617e; border:1px solid #d4e0eb; background:rgba(255,255,255,.56); font-size:10px; line-height:1; }
.cf-pagination { display:flex; justify-content:center; gap:8px; margin-top:80px; }
.cf-pagination .page-numbers { min-width:42px; height:42px; display:inline-grid; place-items:center; color:var(--sub-navy); border:1px solid #d3dde8; font:700 11px Manrope,sans-serif; }
.cf-pagination .current,.cf-pagination .page-numbers:hover { color:#fff; background:var(--sub-blue); border-color:var(--sub-blue); }

/* Contact */
.cf-contact-content { background:radial-gradient(circle at 12% 18%,rgba(8,191,209,.07),transparent 28%),linear-gradient(90deg,#f0f8fd 0 37%,rgba(255,255,255,.94) 37%,#f9fbff 100%); }
.cf-contact-layout { display:grid; grid-template-columns:minmax(300px,.68fr) minmax(0,1.32fr); gap:90px; align-items:start; }
.cf-contact-guide { position:sticky; top:130px; }
.cf-contact-guide h2 { font-size:clamp(30px,3.6vw,48px); letter-spacing:-.055em; white-space:nowrap; }
.cf-contact-guide > p:not(.cf-kicker) { margin:26px 0 34px; color:#5f6d80; font-size:14px; line-height:1.95; }
.cf-contact-guide ul { margin:0; padding:0; list-style:none; border-top:1px solid #d2dce7; }
.cf-contact-guide li { display:grid; grid-template-columns:32px 1fr; gap:10px; padding:17px 0; color:#354258; border-bottom:1px solid #d2dce7; font-size:13px; line-height:1.6; }
.cf-contact-guide li span { color:var(--sub-blue); font:700 9px Manrope,sans-serif; }
.cf-contact-note { margin-top:28px; padding:22px; color:#fff; background:var(--sub-navy); }
.cf-contact-note b { color:#64dce5; font:800 9px Manrope,sans-serif; letter-spacing:.14em; }
.cf-contact-note p { margin:9px 0 0; color:#c2cfe0; font-size:12px; line-height:1.7; }
.cf-contact-form { padding:46px; border:1px solid #d6e0ea; background:#fff; box-shadow:0 24px 70px rgba(24,62,112,.07); }
.cf-contact-form__head { display:flex; justify-content:space-between; gap:20px; margin-bottom:38px; padding-bottom:22px; border-bottom:1px solid #dce4ee; }
.cf-contact-form__head span { color:var(--sub-blue); font:800 10px Manrope,sans-serif; letter-spacing:.15em; }
.cf-contact-form__head p { margin:0; color:#7a8798; font-size:11px; }
.cf-contact-form__head b { color:#e74b55; }
.cf-contact-form label { color:var(--sub-navy); font-size:13px; font-weight:600; line-height:1.8; }
.cf-contact-form input[type=text],.cf-contact-form input[type=email],.cf-contact-form input[type=tel],.cf-contact-form textarea,.cf-contact-form select { width:100%; margin-top:8px; padding:14px 16px; color:var(--sub-navy); border:1px solid #c9d5e1; border-radius:0; background:#fbfcfe; outline:none; transition:border-color .2s ease,box-shadow .2s ease,background .2s ease; }
.cf-contact-form input[type=text]:focus,.cf-contact-form input[type=email]:focus,.cf-contact-form input[type=tel]:focus,.cf-contact-form textarea:focus,.cf-contact-form select:focus { border-color:var(--sub-blue); background:#fff; box-shadow:0 0 0 3px rgba(7,89,230,.09); }
.cf-contact-form textarea { min-height:170px; resize:vertical; }
.cf-contact-form input[type=submit] { min-width:240px; min-height:58px; padding:14px 26px; color:#fff; border:0; border-radius:0; background:var(--sub-navy); font-size:14px; font-weight:700; cursor:pointer; transition:background .25s ease,transform .25s ease; }
.cf-contact-form input[type=submit]:hover { background:var(--sub-blue); transform:translateY(-2px); }
.cf-contact-form .wpcf7-spinner { vertical-align:middle; }
.cf-contact-form #tabMenu { margin:30px 0 0; padding:0; list-style:none; border-top:1px solid #d8e2ec; border-bottom:1px solid #d8e2ec; }
.cf-contact-form #tabMenu li,.cf-contact-form #tabMenu p { margin:0; }
.cf-contact-form #tabMenu a { min-height:58px; display:flex; align-items:center; justify-content:space-between; gap:20px; color:var(--sub-navy); font-size:13px; font-weight:700; }
.cf-contact-form #tabMenu a::after { content:'＋'; width:30px; height:30px; display:grid; place-items:center; color:var(--sub-blue); border:1px solid #cdd9e6; border-radius:50%; font-size:15px; font-weight:400; transition:transform .25s ease,background .25s ease,color .25s ease; }
.cf-contact-form #tabMenu a[aria-expanded=true]::after { color:#fff; background:var(--sub-blue); border-color:var(--sub-blue); transform:rotate(45deg); }
.cf-contact-form #tabBoxes { display:none; margin:0 0 24px; padding:24px; color:#59677a; border:1px solid #d8e2ec; border-top:0; background:#f8fbfe; }
.cf-contact-form #tabBoxes.is-open { display:block; }
.cf-contact-form #tabBox1 { max-height:360px; overflow:auto; padding-right:12px; font-size:12px; line-height:1.9; overscroll-behavior:contain; }
.cf-contact-form #tabBox1 p { margin:0 0 16px; }

/* Content is visible by default; the shared script animates only entering items. */
@keyframes cf-sub-aurora { to { transform:translate3d(2%,1.5%,0) scale(1.04); } }
@keyframes cf-sub-grid { to { background-position:52px 52px,-52px -52px,0 0; } }
@keyframes cf-sub-pulse { 0% { box-shadow:0 0 0 0 rgba(8,191,209,.55); } 60%,100% { box-shadow:0 0 0 15px rgba(8,191,209,0); } }
@keyframes cf-sub-line { 0%,100% { transform:scaleX(.4); opacity:.4; } 50% { transform:scaleX(1); opacity:1; } }

@media (max-width:1024px) {
    .cf-sub-hero__inner { width:min(100% - 64px,960px); grid-template-columns:1fr 230px; gap:48px; }
    .cf-subpage .cf-page-hero .cf-shell { width:min(100% - 64px,960px); padding-left:0; }
    .cf-message-layout { gap:60px; }
    .cf-company-layout { gap:60px; }
    .cf-contact-layout { grid-template-columns:.8fr 1.2fr; gap:50px; }
}

@media (pointer:coarse) {
    .cf-sub-hero::before,.cf-sub-hero__field,.cf-sub-hero__signal::before,.cf-sub-hero__signal i,.cf-sub-grid,.cf-page-hero__field { animation:none; }
}

html.cf-lite-motion .cf-sub-hero::before,html.cf-lite-motion .cf-sub-hero__field,html.cf-lite-motion .cf-sub-hero__signal::before,html.cf-lite-motion .cf-sub-hero__signal i,html.cf-lite-motion .cf-sub-grid,html.cf-lite-motion .cf-page-hero__field { animation:none; }

@media (max-width:900px) {
    .cf-sub-section { padding:78px 0; }
    .cf-sub-hero { min-height:650px; padding:128px 0 64px; }
    .cf-sub-hero__field { left:20%; }
    .cf-sub-hero__inner { width:min(100% - 32px,560px); grid-template-columns:1fr; gap:44px; }
    .cf-sub-hero__copy h1 { font-size:clamp(40px,6vw,50px); line-height:1.22; }
    .cf-sub-hero__copy > p:last-child { margin-top:25px; font-size:14px; }
    .cf-sub-hero__signal { min-height:150px; padding:22px; }
    .cf-sub-hero__signal b { font-size:26px; }
    .cf-sub-heading { margin-bottom:44px; }
    .cf-sub-heading h2,.cf-message-copy h2 { font-size:clamp(34px,8vw,48px); }
    .cf-contact-guide h2 { font-size:clamp(28px,7.8vw,44px); }
    .cf-sub-heading--split,.cf-message-layout,.cf-company-layout,.cf-contact-layout { grid-template-columns:1fr; gap:42px; }
    .cf-message-portrait { max-width:460px; }
    .cf-message-copy { padding-top:0; }
    .cf-statement-list article { grid-template-columns:1fr; gap:20px; padding:38px 0; }
    .cf-value-grid,.cf-case-grid,.cf-mini-principles,.cf-contact-promise { grid-template-columns:1fr; }
    .cf-company-table > div { grid-template-columns:92px 1fr; gap:18px; }
    .cf-subpage .cf-page-hero { min-height:630px; padding:130px 0 76px; }
    .cf-subpage .cf-page-hero .cf-shell { width:min(100% - 32px,560px); padding-left:0; }
    .cf-subpage .cf-page-hero h1 { font-size:clamp(40px,6vw,50px); }
    .cf-case-grid { gap:54px; }
    .cf-contact-content { background:linear-gradient(145deg,#f0f9fd 0%,#f6f8ff 54%,#fff 100%); }
    .cf-contact-guide { position:static; }
    .cf-contact-form { padding:30px 20px; }
    .cf-contact-form__head { align-items:flex-start; flex-direction:column; }
    .cf-contact-form input[type=submit] { width:100%; }
}

@media (prefers-reduced-motion:reduce) {
    .cf-sub-hero::before,.cf-sub-hero__field,.cf-sub-hero__signal::before,.cf-sub-hero__signal i,.cf-sub-grid,.cf-page-hero__field { animation:none; }
}

/* Content-led cards: no minimum heights or spacer margins at any viewport. */
.cf-value-grid,.cf-mini-principles,.cf-contact-promise { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.cf-compact-card { position:relative; min-width:0; padding:clamp(22px,2.4vw,34px); border:1px solid #dce7f1; border-radius:10px; color:var(--sub-navy); background:linear-gradient(135deg,#fff 50%,#f2f9ff); box-shadow:0 8px 26px rgba(20,63,116,.035); }
.cf-card-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:22px; }
.cf-compact-card .cf-card-meta { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:0; color:var(--sub-blue); font:700 .8125rem/1.6 Manrope,sans-serif; letter-spacing:.12em; }
.cf-card-meta > span { font-size:.875rem; letter-spacing:.03em; opacity:.75; }
.cf-card-symbol { display:grid; place-items:center; flex:0 0 64px; width:64px; height:64px; border:1px solid #d5e7f7; border-radius:8px; color:#0759e6; background:linear-gradient(145deg,#fff,#eaf6ff); box-shadow:0 5px 14px rgba(7,89,230,.06); }
.cf-card-symbol svg { display:block; width:34px; height:34px; }
.cf-card-symbol__accent { color:#07889e; }
.cf-compact-card h3 { margin:0 0 14px; color:inherit; font-size:clamp(1.2rem,1.65vw,1.5rem); line-height:1.65; font-weight:600; letter-spacing:-.025em; text-wrap:pretty; }
.cf-compact-card .cf-card-description { margin:0; color:#5c6d81; font-size:1rem; line-height:1.9; letter-spacing:0; font-weight:400; }
.cf-mini-principles .cf-compact-card { color:#fff; border-color:#27405b; background:linear-gradient(135deg,#102840,#0b2038); box-shadow:none; }
.cf-mini-principles .cf-card-meta,.cf-mini-principles .cf-card-symbol__accent { color:#74e1e7; }
.cf-mini-principles .cf-card-symbol { color:#b4d5ff; border-color:#34516c; background:linear-gradient(145deg,#173c54,#112a43); box-shadow:0 5px 14px #0002; }
.cf-mini-principles .cf-card-description { color:#bdcddd; }
/* A small geometric accent echoes the brand without changing the logo itself. */
.cf-compact-card::after { content:''; position:absolute; left:24px; right:24px; bottom:-1px; height:2px; background:linear-gradient(90deg,#08bfd1,#0759e6); transform:scaleX(0); transform-origin:left; }
@media (prefers-reduced-motion:no-preference) {
    html.cf-story-motion .cf-compact-card.is-visible .cf-card-symbol svg { animation:cf-symbol-arrive .8s .15s cubic-bezier(.16,1,.3,1) both; }
    html.cf-story-motion .cf-compact-card.is-visible::after { animation:cf-story-rule .8s .2s both; }
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
    html.cf-story-motion .cf-compact-card { transition:transform .3s ease,border-color .3s ease; }
    html.cf-story-motion .cf-compact-card:hover { transform:translateY(-4px); border-color:#83bcd8; }
    html.cf-story-motion .cf-card-symbol { transition:transform .45s cubic-bezier(.16,1,.3,1); }
    html.cf-story-motion .cf-compact-card:hover .cf-card-symbol { transform:translateY(-3px) rotate(-6deg); }
}
@keyframes cf-symbol-arrive { from { opacity:0; transform:translateY(7px) rotate(-12deg) scale(.85); } to { opacity:1; transform:none; } }
@media (max-width:1050px) {
    .cf-value-grid,.cf-mini-principles,.cf-contact-promise { grid-template-columns:1fr; gap:14px; }
    .cf-compact-card { display:grid; grid-template-columns:155px minmax(0,1fr); gap:0 24px; padding:26px; }
    .cf-card-heading { grid-row:1/3; flex-direction:column-reverse; align-items:flex-start; justify-content:flex-end; gap:14px; margin:0; }
    .cf-compact-card h3 { font-size:1.375rem; margin-bottom:10px; }
}
@media (max-width:600px) {
    .cf-compact-card { display:block; padding:22px; }
    .cf-card-heading { flex-direction:row; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
    .cf-card-symbol { width:48px; height:48px; flex-basis:48px; }
    .cf-card-symbol svg { width:28px; height:28px; }
    .cf-compact-card h3 { font-size:clamp(1.125rem,5vw,1.375rem); margin-bottom:10px; }
    .cf-compact-card .cf-card-description { line-height:1.85; }
    .cf-sub-heading { margin-bottom:30px; }
    .cf-sub-heading--split { gap:20px; }
}

/* Story pages: editorial founder message and finite, compositor-friendly motion. */
.cf-founder-section { scroll-margin-top:100px; background:linear-gradient(115deg,#fff 30%,#f3f9ff); }
.cf-founder-message { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:clamp(40px,6vw,88px); align-items:start; }
.cf-founder-message__heading h2 { margin:0; color:var(--sub-navy); font-size:clamp(1.75rem,3.4vw,2.8rem); font-weight:600; line-height:1.65; letter-spacing:-.045em; }
.cf-founder-message__heading h2 span { display:block; }
.cf-founder-message__heading h2 span:last-child { color:var(--sub-blue); }
.cf-founder-signature { display:grid; justify-items:start; gap:12px; margin-top:44px; }
.cf-founder-signature > span { color:#5b697d; font-size:.875rem; }
.cf-founder-signature strong { color:var(--sub-navy); font-size:1.375rem; font-weight:600; letter-spacing:.06em; }
.cf-founder-signature small { color:#637a96; font:600 .75rem/1.5 Manrope,sans-serif; letter-spacing:.14em; }
.cf-founder-message__body { position:relative; padding:6px 0 0 40px; }
.cf-founder-message__body::before { content:''; position:absolute; top:0; left:0; width:2px; height:100%; background:linear-gradient(#08bfd1,#0759e6 60%,#d8e7f6); transform-origin:top; }
.cf-founder-message__body .cf-rich-copy p { font-size:1rem; line-height:2.2; }
.cf-founder-message__body .cf-rich-copy p:last-child { margin-bottom:0; }
.cf-reading-progress { position:fixed; z-index:10001; left:0; top:0; width:100%; height:3px; transform:scaleX(0); transform-origin:left; pointer-events:none; background:linear-gradient(90deg,#08bfd1,#0759e6); }
/* Large painted backgrounds remain stationary on the three story pages. */
[data-cf-story] .cf-sub-hero::before,
[data-cf-story] .cf-sub-hero__field,
[data-cf-story] .cf-sub-grid,
[data-cf-story] .cf-page-hero__field { animation:none; }
[data-cf-story] .cf-pillar-detail__heading { position:relative; padding-bottom:20px; }
html.cf-story-motion [data-cf-story] .cf-pillar-detail__heading::after { content:''; position:absolute; bottom:0; left:0; width:min(180px,40%); height:2px; background:linear-gradient(90deg,#08bfd1,#0759e6); transform:scaleX(0); transform-origin:left; }
html.cf-story-motion [data-cf-story] .cf-pillar-detail__heading.is-visible::after { animation:cf-story-rule .8s .15s cubic-bezier(.16,1,.3,1) both; }
html.cf-story-motion .cf-founder-message__body.is-visible::before { animation:cf-story-divider .9s .15s cubic-bezier(.16,1,.3,1) both; }
html.cf-story-motion .cf-case-card.is-visible .cf-case-card__tags li { animation:cf-story-tag .5s .18s both; }
html.cf-story-motion .cf-case-card.is-visible .cf-case-card__tags li:nth-child(2) { animation-delay:.25s; }
html.cf-story-motion .cf-case-card.is-visible .cf-case-card__tags li:nth-child(3) { animation-delay:.32s; }
html.cf-story-motion .cf-case-card.is-visible .cf-case-card__tags li:nth-child(4) { animation-delay:.39s; }
html.cf-story-motion [data-cf-story] .cf-service-jump a::after { content:''; position:absolute; left:0; bottom:0; width:100%; height:3px; background:linear-gradient(90deg,#08bfd1,#0759e6); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
html.cf-story-motion [data-cf-story] .cf-service-jump a:hover::after,
html.cf-story-motion [data-cf-story] .cf-service-jump a:focus-visible::after { transform:scaleX(1); }
html.cf-story-motion [data-cf-story] .cf-service-jump a > b { transition:transform .25s ease; }
html.cf-story-motion [data-cf-story] .cf-service-jump a:hover > b,
html.cf-story-motion [data-cf-story] .cf-service-jump a:focus-visible > b { transform:translateY(4px); }
html.cf-story-motion [data-cf-story] .cf-button > span:last-child,
html.cf-story-motion [data-cf-story] .cf-button > b:last-child { transition:transform .25s ease; }
html.cf-story-motion [data-cf-story] .cf-button:hover > span:last-child,
html.cf-story-motion [data-cf-story] .cf-button:focus-visible > span:last-child,
html.cf-story-motion [data-cf-story] .cf-button:hover > b:last-child,
html.cf-story-motion [data-cf-story] .cf-button:focus-visible > b:last-child { transform:translate(3px,-3px); }
html.cf-story-motion .cf-case-card__media i { transition:transform .3s ease,background .3s ease; background:rgba(7,22,47,.65); color:#fff; }
html.cf-story-motion .cf-case-card:focus-within .cf-case-card__media img { transform:scale(1.035); }
html.cf-story-motion .cf-case-card:focus-within .cf-case-card__media::after { opacity:1; transform:translateX(42%); }
html.cf-story-motion .cf-case-card:hover a.cf-case-card__media i,
html.cf-story-motion .cf-case-card:focus-within a.cf-case-card__media i { transform:rotate(45deg); background:#0759e6; }
[data-cf-story] a:focus-visible { outline:3px solid #0759e6; outline-offset:5px; }
[data-cf-story] .cf-sub-hero__signal::before { animation:none; box-shadow:none; }
[data-cf-story] .cf-sub-hero__signal i { animation:none; }
html.cf-story-motion [data-cf-story] .cf-sub-hero__signal.is-visible i { animation:cf-story-rule .9s .2s both; }
@keyframes cf-story-rule { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes cf-story-divider { from { transform:scaleY(0); } to { transform:scaleY(1); } }
@keyframes cf-story-tag { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@media (hover:hover) and (pointer:fine) {
    html.cf-story-motion [data-cf-story] .cf-pillar-detail__visual img { transition:transform .55s cubic-bezier(.2,.8,.2,1); }
    html.cf-story-motion [data-cf-story] .cf-pillar-detail__visual:hover img { transform:scale(1.035); }
}
@media (max-width:900px) {
    .cf-founder-message { grid-template-columns:1fr; gap:34px; }
    .cf-founder-message__heading h2 { font-size:clamp(1.6rem,5.7vw,2.7rem); }
    .cf-founder-signature { margin-top:28px; grid-template-columns:auto 1fr; gap:10px 22px; align-items:baseline; }
    .cf-founder-signature small { grid-column:1/-1; }
    .cf-founder-message__body { padding:0 0 0 22px; }
}
html.cf-lite-motion [data-cf-story] .cf-case-card__media img,
html.cf-lite-motion [data-cf-story] .cf-case-card__media::after,
html.cf-lite-motion [data-cf-story] .cf-value-grid article { transition:none; transform:none; }
html.cf-lite-motion [data-cf-story] .cf-case-card__media::after { display:none; }
@media (prefers-reduced-motion:reduce) {
    [data-cf-story] *,[data-cf-story] *::before,[data-cf-story] *::after { animation:none !important; transition:none !important; }
    [data-cf-story] .cf-value-grid article:hover,
    [data-cf-story] .cf-case-card__media img,
    [data-cf-story] .cf-pillar-detail__visual img { transform:none !important; }
    [data-cf-story] .cf-case-card__media::after { display:none; }
    .cf-reading-progress { display:none; }
}
@media print {
    .cf-reading-progress { display:none; }
    [data-cf-story] *,[data-cf-story] *::before,[data-cf-story] *::after { animation:none !important; transition:none !important; opacity:1 !important; transform:none !important; }
}
