/* Advika Finance – creative home page (index-1.html only) */
:root {
  --ch-ink: #060f0b;
  --ch-forest: #091811;
  --ch-forest-2: #0d2319;
  --ch-emerald: #006c49;
  --ch-mint: #6cf8bb;
  --ch-gold: #d4af37;
  --ch-gold-2: #f3d98b;
  --ch-paper: #f6f5ef;
  --ch-line: #e3e2df;
  --ch-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ---------- Type ---------- */
.ch-display {
  font-family: 'Newsreader', serif;
  font-weight: 600;
  font-size: clamp(2.6rem, 6.4vw, 5.6rem);
  line-height: 0.98;
  letter-spacing: -0.035em;
  color: #fff;
}
.ch-display em, .ch-h2 em { font-style: italic; font-weight: 600; }
.ch-display--cta { font-size: clamp(2.2rem, 5.2vw, 4.4rem); line-height: 1.04; }
.ch-h2 {
  font-family: 'Newsreader', serif;
  font-weight: 600;
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1.06;
  letter-spacing: -0.025em;
  color: var(--ch-forest);
}
.ch-h2--light { color: #fff; }
.ch-gold {
  background: linear-gradient(100deg, var(--ch-gold-2) 0%, var(--ch-gold) 45%, #b8891c 70%, var(--ch-gold-2) 100%);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: chShimmer 7s linear infinite;
}
.ch-green { color: var(--ch-emerald); }
@keyframes chShimmer { to { background-position: -220% 0; } }

.ch-eyebrow {
  display: inline-flex; align-items: center; gap: .6rem;
  padding: .45rem .95rem; border-radius: 999px;
  font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--ch-emerald); background: #fff; border: 1px solid var(--ch-line);
  box-shadow: 0 6px 18px -12px rgba(9, 24, 17, .35);
}
.ch-eyebrow--dark { color: var(--ch-mint); background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .14); box-shadow: none; }
.ch-eyebrow-dot { width: 7px; height: 7px; border-radius: 99px; background: currentColor; box-shadow: 0 0 0 4px color-mix(in srgb, currentColor 22%, transparent); }

/* ---------- Buttons ---------- */
.ch-btn {
  --fill: var(--ch-forest); --ink: #fff; --ink-hover: var(--ch-gold-2);
  position: relative; overflow: hidden; isolation: isolate;
  display: inline-flex; align-items: center; gap: .7rem;
  padding: 1rem 1.7rem; border-radius: 999px;
  font-weight: 700; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--ink);
  transition: color .45s var(--ch-ease), border-color .45s var(--ch-ease), box-shadow .45s var(--ch-ease), transform .45s var(--ch-ease);
}
.ch-btn::before {  /* the fill */
  content: ''; position: absolute; z-index: -1;
  left: var(--bx, 50%); top: var(--by, 50%);
  width: 240%; aspect-ratio: 1; border-radius: 50%;
  background: var(--fill);
  transform: translate(-50%, -50%) scale(0);
  transition: transform .6s var(--ch-ease);
}
.ch-btn:hover::before, .ch-btn:focus-visible::before { transform: translate(-50%, -50%) scale(1); }
.ch-btn:hover, .ch-btn:focus-visible { color: var(--ink-hover); transform: translateY(-2px); }
.ch-btn i { font-size: .8rem; transition: transform .45s var(--ch-ease); }
.ch-btn:hover .fa-arrow-right { transform: translateX(5px); }
.ch-btn:hover .fa-phone-volume, .ch-btn:hover .fa-phone, .ch-btn:hover .fa-headset { animation: chRing .6s ease; }
@keyframes chRing { 0%, 100% { transform: rotate(0); } 20% { transform: rotate(-16deg); } 40% { transform: rotate(14deg); } 60% { transform: rotate(-10deg); } 80% { transform: rotate(6deg); } }

.ch-btn--gold { --ink: var(--ch-ink); --fill: linear-gradient(120deg, #0fa36f, var(--ch-emerald)); --ink-hover: #fff; background: linear-gradient(120deg, var(--ch-gold-2), var(--ch-gold)); box-shadow: 0 14px 34px -14px rgba(212, 175, 55, .8); }
.ch-btn--gold:hover { box-shadow: 0 18px 40px -16px rgba(16, 185, 129, .75), inset 0 0 0 1px rgba(243, 217, 139, .7); }
.ch-btn--ghost { --ink: #fff; --fill: linear-gradient(120deg, var(--ch-gold-2), var(--ch-gold)); --ink-hover: var(--ch-ink); border: 1px solid rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .05); backdrop-filter: blur(8px); }
.ch-btn--ghost:hover { border-color: var(--ch-gold); }
.ch-btn--dark { --ink: #fff; --fill: linear-gradient(120deg, var(--ch-gold-2), var(--ch-gold)); --ink-hover: var(--ch-ink); background: var(--ch-forest); box-shadow: 0 14px 30px -16px rgba(9, 24, 17, .8); }

/* ---------- Hero ---------- */
.ch-hero {
  position: relative; overflow: hidden; isolation: isolate;
  background: radial-gradient(120% 90% at 85% 10%, #123a2a 0%, var(--ch-forest) 45%, var(--ch-ink) 100%);
  color: #fff; min-height: calc(100svh - 120px);
  display: flex; flex-direction: column; justify-content: center;
}
.ch-aurora { position: absolute; inset: 0; z-index: 0; pointer-events: none; filter: blur(70px); opacity: .75; }
.ch-aurora span { position: absolute; border-radius: 50%; mix-blend-mode: screen; animation: chDrift 18s ease-in-out infinite alternate; }
.ch-aurora span:nth-child(1) { width: 42vw; height: 42vw; left: -10vw; top: -12vw; background: radial-gradient(circle, rgba(0, 108, 73, .9), transparent 65%); }
.ch-aurora span:nth-child(2) { width: 34vw; height: 34vw; right: -6vw; top: 18%; background: radial-gradient(circle, rgba(212, 175, 55, .45), transparent 65%); animation-duration: 22s; animation-delay: -6s; }
.ch-aurora span:nth-child(3) { width: 30vw; height: 30vw; left: 30%; bottom: -14vw; background: radial-gradient(circle, rgba(108, 248, 187, .35), transparent 65%); animation-duration: 26s; animation-delay: -12s; }
.ch-aurora--soft { opacity: .45; }
@keyframes chDrift {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(6vw, 4vw) scale(1.12); }
  100% { transform: translate(-4vw, 6vw) scale(.95); }
}
.ch-grain {
  position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .09; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.ch-hero::before {  /* faint architectural grid */
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(ellipse at 70% 40%, #000 20%, transparent 75%);
  mask-image: radial-gradient(ellipse at 70% 40%, #000 20%, transparent 75%);
}
.ch-chip {
  display: inline-flex; align-items: center; gap: .55rem;
  padding: .6rem 1rem; border-radius: 999px;
  font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 600;
  color: #e7fff3; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12);
  backdrop-filter: blur(10px);
}
.ch-chip i { color: var(--ch-gold); }

.ch-deck { position: relative; aspect-ratio: 4 / 5; max-width: 440px; margin-inline: auto; perspective: 1400px; cursor: pointer; }
.ch-arch {
  position: absolute; inset: 0;
  border-radius: 999px 999px 28px 28px; overflow: hidden;
  border: 1px solid rgba(243, 217, 139, .35);
  box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .7), 0 0 0 10px rgba(255, 255, 255, .03);
}
.ch-arch img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 1.4s var(--ch-ease); }
.ch-arch[data-pos="0"]:hover img { transform: scale(1.12); }
.ch-arch::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(6, 15, 11, .55)); }
.ch-float {
  position: absolute; z-index: 3; display: flex; align-items: center; gap: .75rem;
  padding: .8rem 1rem .8rem .8rem; border-radius: 18px;
  color: var(--ch-forest); background: rgba(255, 255, 255, .92); backdrop-filter: blur(12px);
  box-shadow: 0 22px 44px -18px rgba(0, 0, 0, .55);
  animation: chFloat 6s ease-in-out infinite;
}
.ch-float b { display: block; font-family: 'Newsreader', serif; font-size: 15px; line-height: 1.1; }
.ch-float small { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10.5px; color: #5c6660; margin-top: 2px; }
.ch-float-ico { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, var(--ch-emerald), #0b8a5f); }
.ch-float--a { top: 12%; left: -4%; }
.ch-float--b { bottom: 10%; right: -4%; animation-delay: -3s; }
@keyframes chFloat { 50% { transform: translateY(-12px); } }
.ch-rotor {
  position: absolute; z-index: 4; width: 132px; height: 132px; left: -7%; bottom: -3%;
  animation: chSpin 22s linear infinite;
}
.ch-rotor text { font-family: 'JetBrains Mono', monospace; font-size: 12.4px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; fill: var(--ch-gold-2); }
@keyframes chSpin { to { transform: rotate(360deg); } }
.ch-scroll { position: absolute; z-index: 5; left: 50%; bottom: 22px; width: 26px; height: 42px; margin-left: -13px; border: 1.5px solid rgba(255, 255, 255, .35); border-radius: 20px; }
.ch-scroll span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 4px; background: var(--ch-gold); animation: chScroll 1.8s ease-in-out infinite; }
@keyframes chScroll { 0% { opacity: 0; transform: translateY(0); } 40% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }

/* ---------- Service band ---------- */
.ch-band {
  --skew: 0deg;
  position: relative; z-index: 6; overflow: hidden;
  margin-top: -90px; padding-top: 90px;  /* dark backdrop sits behind the hero's rounded exit */
  background: linear-gradient(180deg, var(--ch-ink), var(--ch-forest));
  border-bottom: 1px solid rgba(212, 175, 55, .28);
}
.ch-hero { z-index: 7; }
.ch-band::before, .ch-band::after { content: ''; position: absolute; z-index: 1; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(243, 217, 139, .55), transparent); pointer-events: none; }
.ch-band::before { top: 97px; }
.ch-band::after { bottom: 7px; }
.ch-band-track { display: flex; width: max-content; will-change: transform; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.ch-band-set { display: flex; align-items: center; gap: clamp(1.4rem, 3vw, 2.6rem); padding: clamp(1.3rem, 2.4vw, 2rem) clamp(.7rem, 1.5vw, 1.3rem); }
.ch-tick {
  font-family: 'Newsreader', serif; font-style: italic; font-weight: 500;
  font-size: clamp(1.6rem, 3.4vw, 2.9rem); line-height: 1.15; white-space: nowrap; letter-spacing: -.01em;
  color: transparent;
  background: linear-gradient(100deg, #e9efe9 0%, #e9efe9 40%, var(--ch-gold-2) 47%, #fff 50%, var(--ch-gold-2) 53%, #e9efe9 60%, #e9efe9 100%);
  background-size: 300% 100%; background-position: 100% 0;
  -webkit-background-clip: text; background-clip: text;
  display: inline-block; transform: skewX(var(--skew));
  transition: transform .4s var(--ch-ease), opacity .3s;
  animation: chTickShine 6s linear infinite;
}
.ch-band-set .ch-tick:nth-of-type(2n) { animation-delay: -2s; }
.ch-band-set .ch-tick:nth-of-type(3n) { animation-delay: -4s; }
@keyframes chTickShine { to { background-position: -200% 0; } }
.ch-band:hover .ch-tick { opacity: .45; }
.ch-band .ch-tick:hover, .ch-band .ch-tick:focus-visible { opacity: 1; animation: none; background: linear-gradient(100deg, var(--ch-gold-2), var(--ch-gold)); -webkit-background-clip: text; background-clip: text; transform: skewX(var(--skew)) translateY(-3px); }
.ch-spark { flex: none; width: clamp(14px, 1.6vw, 22px); height: auto; fill: var(--ch-gold); filter: drop-shadow(0 0 8px rgba(212, 175, 55, .55)); animation: chSpin 8s linear infinite; }
.ch-band-set .ch-spark:nth-of-type(odd) { fill: var(--ch-mint); filter: drop-shadow(0 0 8px rgba(108, 248, 187, .45)); animation-direction: reverse; }

/* ---------- Sections ---------- */
.ch-section { position: relative; padding-block: clamp(4.5rem, 9vw, 8rem); }
.ch-paper { background: var(--ch-paper); }
.ch-dark { overflow: hidden; isolation: isolate; color: #fff; background: radial-gradient(100% 120% at 0% 0%, #0f2d21 0%, var(--ch-forest) 50%, var(--ch-ink) 100%); }

/* Stats */
.ch-stat { position: relative; padding: 2.2rem 2rem; border-radius: 28px; background: linear-gradient(180deg, #fff, #f8faf8); border: 1px solid var(--ch-line); overflow: hidden; transition: transform .5s var(--ch-ease), box-shadow .5s var(--ch-ease); }
.ch-stat:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -30px rgba(9, 24, 17, .35); }
.ch-stat::before { content: ''; position: absolute; right: -60px; top: -60px; width: 180px; height: 180px; border-radius: 50%; background: radial-gradient(circle, rgba(108, 248, 187, .35), transparent 70%); }
.ch-stat-num { position: relative; display: flex; align-items: baseline; font-family: 'Newsreader', serif; font-weight: 700; font-size: clamp(4rem, 8vw, 6.5rem); line-height: 1; letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1.6px var(--ch-forest); }
.ch-stat:hover .ch-stat-num { color: var(--ch-forest); }
.ch-stat-num { transition: color .5s var(--ch-ease); }
.ch-stat-plus { color: var(--ch-gold); -webkit-text-stroke: 0; margin-left: .1em; }
.ch-stat-label { position: relative; margin-top: 1rem; font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--ch-emerald); }

/* About collage */
.ch-collage { position: relative; isolation: isolate; padding: 0 12% 14% 0; }
.ch-collage-main { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 28px; box-shadow: 0 40px 80px -40px rgba(9, 24, 17, .55); }
.ch-collage-sub { position: absolute; right: 0; bottom: 0; width: 46%; aspect-ratio: 1; object-fit: cover; border-radius: 24px; border: 8px solid var(--ch-paper); box-shadow: 0 30px 60px -30px rgba(9, 24, 17, .6); }
.ch-collage::before { content: ''; position: absolute; left: -18px; top: -18px; width: 45%; height: 55%; border: 2px solid var(--ch-gold); border-radius: 28px; z-index: -1; }
.ch-collage-badge { position: absolute; left: 6%; bottom: 4%; display: flex; align-items: center; gap: .75rem; padding: .8rem 1.1rem .8rem .8rem; border-radius: 18px; background: var(--ch-forest); color: #fff; box-shadow: 0 20px 40px -20px rgba(0, 0, 0, .6); }
.ch-collage-badge > span { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-family: 'JetBrains Mono', monospace; font-weight: 700; color: var(--ch-ink); background: linear-gradient(135deg, var(--ch-gold-2), var(--ch-gold)); }
.ch-collage-badge b { display: block; font-family: 'Newsreader', serif; font-size: 16px; }
.ch-collage-badge small { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10.5px; color: #b9cfc3; }
.ch-quote { position: relative; padding-left: 1.4rem; font-family: 'Newsreader', serif; font-style: italic; font-size: 1.3rem; line-height: 1.5; color: var(--ch-forest); border-left: 3px solid var(--ch-gold); }

/* Services */
.ch-service { --mx: 50%; --my: 50%; position: relative; display: flex; flex-direction: column; border-radius: 28px; overflow: hidden; background: #fff; border: 1px solid var(--ch-line); transition: transform .5s var(--ch-ease), box-shadow .5s var(--ch-ease), border-color .3s; }
.ch-service::before { content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: 0; transition: opacity .4s; background: radial-gradient(420px circle at var(--mx) var(--my), rgba(108, 248, 187, .16), transparent 45%); }
.ch-service:hover { border-color: rgba(0, 108, 73, .35); box-shadow: 0 40px 70px -40px rgba(9, 24, 17, .55); }
.ch-service:hover::before { opacity: 1; }
.ch-service-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.ch-service-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ch-ease); }
.ch-service:hover .ch-service-media img { transform: scale(1.08); }
.ch-service-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(6, 15, 11, .6)); }
.ch-service-tag { position: absolute; z-index: 1; left: 1rem; top: 1rem; padding: .35rem .7rem; border-radius: 999px; font-family: 'JetBrains Mono', monospace; font-size: 10.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ch-ink); background: rgba(255, 255, 255, .92); }
.ch-service-body { position: relative; flex: 1; display: flex; flex-direction: column; padding: 1.6rem 1.6rem 1.5rem; }
.ch-service-no { position: absolute; right: 1.2rem; top: -2.4rem; z-index: 3; font-family: 'Newsreader', serif; font-weight: 700; font-size: 3.4rem; line-height: 1; color: #fff; text-shadow: 0 8px 24px rgba(0, 0, 0, .35); }
.ch-service h3 { font-family: 'Newsreader', serif; font-weight: 700; font-size: 1.5rem; color: var(--ch-forest); }
.ch-service p { margin-top: .7rem; flex: 1; font-size: .95rem; line-height: 1.65; color: #475049; }
.ch-service-link { margin-top: 1.3rem; padding-top: 1rem; border-top: 1px dashed var(--ch-line); display: flex; align-items: center; justify-content: space-between; font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; color: var(--ch-emerald); }
.ch-service-link i { transition: transform .35s var(--ch-ease); }
.ch-service:hover .ch-service-link i { transform: translateX(6px); }

/* Process timeline */
.ch-timeline { position: relative; }
.ch-timeline-track { position: absolute; left: 0; right: 0; top: 27px; height: 2px; background: rgba(255, 255, 255, .12); border-radius: 2px; overflow: hidden; }
.ch-timeline-fill { height: 100%; width: 0; background: linear-gradient(90deg, var(--ch-mint), var(--ch-gold)); box-shadow: 0 0 18px rgba(108, 248, 187, .6); transition: width .2s linear; }
.ch-step { position: relative; }
.ch-step-dot { position: relative; z-index: 1; width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; font-size: 1.2rem; color: var(--ch-ink); background: linear-gradient(135deg, var(--ch-gold-2), var(--ch-gold)); box-shadow: 0 0 0 8px rgba(212, 175, 55, .12), 0 18px 34px -14px rgba(212, 175, 55, .7); transition: transform .5s var(--ch-ease); }
.ch-step:hover .ch-step-dot { transform: rotate(-8deg) scale(1.08); }
.ch-step-no { display: block; margin-top: 1.6rem; font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--ch-mint); }
.ch-step h3 { margin-top: .5rem; font-family: 'Newsreader', serif; font-weight: 600; font-size: 1.45rem; line-height: 1.2; color: #fff; }
.ch-step p { margin-top: .7rem; font-size: .95rem; line-height: 1.7; color: rgba(236, 253, 245, .72); }
@media (max-width: 1023px) {
  .ch-timeline-track { display: none; }
}

/* Why us */
.ch-why-photo { position: relative; border-radius: 28px; overflow: hidden; aspect-ratio: 16 / 11; box-shadow: 0 40px 80px -40px rgba(9, 24, 17, .55); }
.ch-why-photo img { width: 100%; height: 100%; object-fit: cover; }
.ch-why { --mx: 50%; --my: 50%; position: relative; overflow: hidden; min-height: 210px; padding: 1.8rem; border-radius: 26px; display: flex; flex-direction: column; justify-content: space-between; background: #fff; border: 1px solid var(--ch-line); transition: transform .5s var(--ch-ease), background-color .4s, color .4s, box-shadow .5s var(--ch-ease); }
.ch-why::before { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .4s; background: radial-gradient(360px circle at var(--mx) var(--my), rgba(212, 175, 55, .22), transparent 50%); }
.ch-why:hover { background: var(--ch-forest); box-shadow: 0 40px 70px -40px rgba(9, 24, 17, .8); }
.ch-why:hover::before { opacity: 1; }
.ch-why:nth-child(even) { --oy: 28px; }
.ch-why-ico { position: relative; width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; font-size: 1.2rem; color: var(--ch-emerald); background: #e9f7f0; transition: background-color .4s, color .4s; }
.ch-why:hover .ch-why-ico { color: var(--ch-ink); background: linear-gradient(135deg, var(--ch-gold-2), var(--ch-gold)); }
.ch-why h3 { position: relative; margin-top: 1.5rem; font-family: 'Newsreader', serif; font-weight: 600; font-size: 1.3rem; line-height: 1.25; color: var(--ch-forest); transition: color .4s; }
.ch-why:hover h3 { color: #fff; }
.ch-why-no { position: absolute; right: 1.2rem; top: 1rem; font-family: 'Newsreader', serif; font-weight: 700; font-size: 2.6rem; line-height: 1; color: transparent; -webkit-text-stroke: 1px #cfd6d1; }
.ch-why:hover .ch-why-no { -webkit-text-stroke-color: rgba(212, 175, 55, .6); }
@media (max-width: 639px) {
  .ch-why:nth-child(even) { --oy: 0px; }
  .ch-why { min-height: 0; }
  .ch-why h3 { margin-top: 1.1rem; }
}

/* FAQ */
.ch-faq { border-radius: 22px; background: var(--ch-paper); border: 1px solid transparent; transition: background-color .3s, border-color .3s, box-shadow .4s var(--ch-ease); }
.ch-faq[open] { background: #fff; border-color: var(--ch-line); box-shadow: 0 26px 50px -34px rgba(9, 24, 17, .45); }
.ch-faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 1.1rem; padding: 1.35rem 1.4rem; }
.ch-faq summary::-webkit-details-marker { display: none; }
.ch-faq-no { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; color: var(--ch-gold); }
.ch-faq-q { flex: 1; font-family: 'Newsreader', serif; font-weight: 600; font-size: 1.2rem; color: var(--ch-forest); }
.ch-faq-ico { position: relative; flex: none; width: 34px; height: 34px; border-radius: 50%; background: #fff; border: 1px solid var(--ch-line); transition: transform .4s var(--ch-ease), background-color .3s; }
.ch-faq-ico::before, .ch-faq-ico::after { content: ''; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; border-radius: 2px; background: var(--ch-forest); transition: transform .4s var(--ch-ease), background-color .3s; }
.ch-faq-ico::after { transform: rotate(90deg); }
.ch-faq[open] .ch-faq-ico { background: var(--ch-forest); transform: rotate(180deg); }
.ch-faq[open] .ch-faq-ico::before, .ch-faq[open] .ch-faq-ico::after { background: var(--ch-gold); }
.ch-faq[open] .ch-faq-ico::after { transform: rotate(0deg); }
.ch-faq-a { padding: 0 1.4rem 1.4rem 3.6rem; color: #4a534d; line-height: 1.75; }

/* Final CTA */
.ch-cta { position: relative; overflow: hidden; isolation: isolate; padding-block: clamp(5rem, 10vw, 9rem); color: #fff; background: radial-gradient(120% 120% at 50% 0%, #133023 0%, var(--ch-forest) 50%, var(--ch-ink) 100%); }

/* ---------- Scroll reveal (only when JS runs) ---------- */
.ch-js [data-ch-reveal] { opacity: 0; transform: translateY(34px); transition: opacity 1s var(--ch-ease), transform 1s var(--ch-ease); transition-delay: var(--d, 0ms); }
.ch-js [data-ch-reveal].is-in { opacity: 1; transform: none; }

/* ---------- Small screens ---------- */
@media (max-width: 1023px) {
  .ch-hero { min-height: 0; }
  .ch-deck { max-width: 340px; }
  .ch-float--a { left: 0; }
  .ch-float--b { right: 0; }
  .ch-rotor { width: 96px; height: 96px; left: -2%; bottom: -4%; }
}
@media (max-width: 639px) {
  .ch-float { padding: .6rem .8rem .6rem .6rem; }
  .ch-float-ico { width: 32px; height: 32px; }
  .ch-scroll { display: none; }
  .ch-faq-a { padding-left: 1.4rem; }
  .ch-collage { padding: 0 8% 18% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .ch-aurora span, .ch-rotor, .ch-float, .ch-gold, .ch-scroll span, .ch-tick, .ch-spark { animation: none !important; }
  .ch-js [data-ch-reveal] { opacity: 1; transform: none; }
}

/* =====================================================================
   Motion layer (creative.js)
   ===================================================================== */

/* Intro veil (first visit only) */
.ch-veil { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; align-content: center; gap: 18px; background: var(--ch-ink); transition: clip-path .85s var(--ch-ease); clip-path: inset(0 0 0 0); }
.ch-intro-out .ch-veil { clip-path: inset(0 0 100% 0); }
.ch-veil-mark { font-family: 'Newsreader', serif; font-style: italic; font-weight: 700; font-size: 64px; line-height: 1; color: transparent; background: linear-gradient(100deg, var(--ch-gold-2), var(--ch-gold), #b8891c); -webkit-background-clip: text; background-clip: text; animation: chVeilIn .7s var(--ch-ease) both; }
.ch-veil-line { width: 160px; height: 2px; background: rgba(255, 255, 255, .12); overflow: hidden; position: relative; }
.ch-veil-line::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, var(--ch-mint), var(--ch-gold)); transform-origin: left; animation: chVeilLine .7s var(--ch-ease) both; }
@keyframes chVeilIn { from { opacity: 0; transform: translateY(20px) scale(.9); } }
@keyframes chVeilLine { from { transform: scaleX(0); } }
.ch-intro body { overflow: hidden; }

/* Scroll progress */
.ch-progress { position: fixed; left: 0; top: 0; z-index: 120; width: 100%; height: 3px; transform-origin: left; transform: scaleX(0); background: linear-gradient(90deg, var(--ch-mint), var(--ch-gold)); box-shadow: 0 0 12px rgba(212, 175, 55, .6); pointer-events: none; }

/* Split headings: each word rises out of a mask */
.ch-js .ch-split-ready .ch-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .12em; margin-bottom: -.12em; }
.ch-js .ch-split-ready .ch-wi { display: inline-block; transform: translateY(110%) rotate(4deg); transition: transform 1s var(--ch-ease); transition-delay: calc(var(--i) * 55ms); }
.ch-js .ch-split-ready.is-in .ch-wi { transform: none; }
.ch-js [data-ch-split="flip"].ch-split-ready .ch-w { perspective: 600px; overflow: visible; }
.ch-js [data-ch-split="flip"].ch-split-ready .ch-wi { transform: rotateX(-95deg) translateY(30%); transform-origin: 50% 100%; opacity: 0; transition: transform 1.1s var(--ch-ease), opacity .6s ease; transition-delay: calc(var(--i) * 70ms); }
.ch-js [data-ch-split="flip"].ch-split-ready.is-in .ch-wi { transform: none; opacity: 1; }
/* gradient text keeps working on split words */
.ch-js .ch-gold .ch-wi, .ch-js .ch-gold .ch-w { background: inherit; -webkit-background-clip: text; background-clip: text; color: transparent; }
.ch-gold .ch-w, .ch-gold .ch-wi { background-size: 220% 100%; }

/* Hand-drawn underline under the gold hero phrase */
.ch-underline { position: relative; display: inline; }
.ch-underline svg { position: absolute; left: 0; bottom: -.08em; width: 100%; height: .28em; overflow: visible; pointer-events: none; }
.ch-underline path { fill: none; stroke: var(--ch-gold); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 460; stroke-dashoffset: 460; transition: stroke-dashoffset 1.4s var(--ch-ease) .9s; }
.is-in .ch-underline path, html:not(.ch-js) .ch-underline path, .ch-reduce .ch-underline path { stroke-dashoffset: 0; }

/* Particles */
.ch-particles { position: absolute; inset: 0; z-index: 1; pointer-events: none; }

/* Hero deck */
.ch-deck .ch-arch { transition: transform .9s var(--ch-ease), filter .9s var(--ch-ease), opacity .6s; will-change: transform; }
.ch-deck .ch-arch[data-pos="0"] { z-index: 3; transform: none; }
.ch-deck .ch-arch[data-pos="1"] { z-index: 2; transform: translate(7%, -5%) rotate(5deg) scale(.93); filter: brightness(.7) saturate(.8); }
.ch-deck .ch-arch[data-pos="2"] { z-index: 1; transform: translate(13%, -9%) rotate(10deg) scale(.86); filter: brightness(.5) saturate(.6); }
.ch-deck .ch-arch.ch-shuffle { animation: chShuffle .9s var(--ch-ease) forwards; }
@keyframes chShuffle {
  0% { transform: none; z-index: 4; }
  45% { transform: translate(-62%, 6%) rotate(-14deg) scale(.92); z-index: 4; }
  55% { z-index: 0; }
  100% { transform: translate(13%, -9%) rotate(10deg) scale(.86); z-index: 0; filter: brightness(.5) saturate(.6); }
}

/* Stats ring */
.ch-ring { position: absolute; right: 1.4rem; top: 1.4rem; width: 56px; height: 56px; transform: rotate(-90deg); }
.ch-ring circle { fill: none; stroke: #e6ece8; stroke-width: 3; }
.ch-ring .ch-ring-fill { stroke: var(--ch-gold); stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 1.8s var(--ch-ease) .2s; }
.ch-stat.is-in .ch-ring-fill, html:not(.ch-js) .ch-ring-fill { stroke-dashoffset: 18; }

/* Image curtain reveal */
.ch-curtain { position: relative; }
.ch-js .ch-curtain::after { content: ''; position: absolute; inset: 0; z-index: 5; border-radius: 28px; background: linear-gradient(135deg, var(--ch-forest), var(--ch-emerald)); transform-origin: right; transition: transform 1.1s var(--ch-ease) .15s; pointer-events: none; }
.ch-js .ch-collage.ch-curtain::after { right: 12%; bottom: 14%; }
.ch-js .ch-curtain.is-in::after { transform: scaleX(0); }
.ch-js .ch-curtain img { transition: transform 1.6s var(--ch-ease); }
.ch-js .ch-curtain:not(.is-in) .ch-curtain-img { transform: scale(1.15); }
.ch-why-photo img { scale: 1.15; }

/* Quote highlight that follows the scroll */
.ch-hl { background-image: linear-gradient(transparent 60%, rgba(212, 175, 55, .32) 60%); background-repeat: no-repeat; background-size: var(--hl, 0%) 100%; -webkit-box-decoration-break: clone; box-decoration-break: clone; transition: background-size .2s linear; }
html:not(.ch-js) .ch-hl { --hl: 100%; }

/* Services grid → phone carousel */
.ch-services { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .ch-services { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ch-services { grid-template-columns: repeat(4, 1fr); } }
.ch-dots { display: none; }
@media (max-width: 639px) {
  .ch-services { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: -1.5rem; padding: 0 1.5rem 1rem; scrollbar-width: none; }
  .ch-services::-webkit-scrollbar { display: none; }
  .ch-services > .ch-service { flex: 0 0 84%; scroll-snap-align: start; scroll-margin-left: 1.5rem; }
  .ch-dots { display: flex; justify-content: center; gap: 8px; margin-top: 1.2rem; }
  .ch-dots span { width: 8px; height: 8px; border-radius: 8px; background: #d5dbd7; transition: width .4s var(--ch-ease), background-color .3s; }
  .ch-dots span.on { width: 26px; background: var(--ch-emerald); }
}

/* 3D tilt (desktop pointer) + card "deal" entrance */
.ch-js [data-tilt] { transform-style: preserve-3d; }
.ch-js [data-tilt].is-in { transform: perspective(1000px) translateY(calc(var(--oy, 0px) + var(--lift, 0px))) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .6s var(--ch-ease), box-shadow .5s var(--ch-ease), background-color .4s, border-color .3s; }
.ch-js [data-tilt].is-in:hover { --lift: -8px; transition: transform .18s ease-out, box-shadow .5s var(--ch-ease), background-color .4s, border-color .3s; }
@media (min-width: 1024px) {
  .ch-js .ch-service[data-ch-reveal]:not(.is-in) { opacity: 0; transform: translateX(var(--deal, 0%)) translateY(60px) rotate(var(--rot, 0deg)) scale(.86); }
  .ch-js .ch-service[data-ch-reveal] { transition: opacity .8s ease, transform 1.2s var(--ch-ease); transition-delay: var(--d, 0ms); }
}
.ch-js [data-ch-wipe]:not(.is-in) { clip-path: polygon(0 0, 0 0, 0 100%, 0 100%); }
.ch-js [data-ch-wipe] { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); transition: clip-path 1.1s var(--ch-ease), opacity 1s var(--ch-ease), transform .6s var(--ch-ease), background-color .4s, box-shadow .5s; transition-delay: var(--d, 0ms); }
.ch-js [data-ch-wipe].is-in:hover { transition-delay: 0ms; }
.ch-why-ico i { transition: transform .7s var(--ch-ease); }
.ch-why:hover .ch-why-ico i { transform: rotateY(360deg) scale(1.1); }
.ch-why.is-in .ch-why-ico { animation: chPop .8s var(--ch-ease) both; animation-delay: calc(var(--d, 0ms) + 400ms); }
@keyframes chPop { 0% { transform: scale(.4) rotate(-20deg); opacity: 0; } 70% { transform: scale(1.12); opacity: 1; } 100% { transform: none; } }


/* Process: pinned horizontal track on desktop */
.ch-process { position: relative; color: #fff; }
.ch-process.ch-dark { overflow: visible; }  /* sticky needs a non-clipping parent */
.ch-process-sticky { position: relative; overflow: hidden; padding-block: clamp(4.5rem, 9vw, 7rem); }
.ch-hscroll { overflow: visible; }
.ch-htrack { display: grid; gap: 2.5rem; max-width: 80rem; margin-inline: auto; padding-inline: 1.5rem; }
@media (min-width: 768px) { .ch-htrack { grid-template-columns: repeat(2, 1fr); } }
.ch-process.is-pinned .ch-process-sticky { position: sticky; top: 0; height: 100vh; display: flex; align-items: center; padding-block: 0; }
.ch-process.is-pinned .ch-hscroll { overflow: hidden; }
.ch-process.is-pinned .ch-htrack { display: flex; width: max-content; max-width: none; gap: 2rem; padding-inline: max(1.5rem, calc((100vw - 80rem) / 2 + 1.5rem)) 30vw; will-change: transform; }
.ch-process.is-pinned .ch-step { width: min(440px, 34vw); }
.ch-step { position: relative; padding: 2.2rem; border-radius: 28px; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .09); overflow: hidden; transition: background-color .6s, border-color .6s, transform .8s var(--ch-ease), opacity .8s; }
.ch-step-big { position: absolute; right: 1rem; top: -.4rem; font-family: 'Newsreader', serif; font-weight: 700; font-size: 8rem; line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .12); transition: -webkit-text-stroke-color .6s, transform .8s var(--ch-ease); }
.ch-process.is-pinned .ch-step:not(.is-active) { opacity: .45; transform: scale(.94); }
.ch-step.is-active { background: rgba(255, 255, 255, .07); border-color: rgba(212, 175, 55, .35); }
.ch-step.is-active .ch-step-big { -webkit-text-stroke-color: rgba(212, 175, 55, .55); transform: translateY(8px); }
.ch-timeline-track { position: relative; top: auto; left: auto; right: auto; display: block; }
@media (max-width: 1023px) { .ch-timeline-track { display: none; } }

/* Closing section spotlight */
.ch-cta::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(600px circle at var(--sx, 50%) var(--sy, 40%), rgba(212, 175, 55, .14), transparent 60%); }

@media (prefers-reduced-motion: reduce) {
  .ch-split-ready .ch-wi { transform: none !important; opacity: 1 !important; }
  .ch-curtain::after { display: none; }
  [data-ch-wipe] { clip-path: none !important; }
  .ch-deck .ch-arch.ch-shuffle { animation: none; }
}

/* =====================================================================
   Scroll-scrubbed scenes & micro-interactions (round 2)
   ===================================================================== */

/* Hero sinks back into a rounded card as you scroll past it */
.ch-js .ch-hero { --exit: 0; clip-path: inset(0 calc(var(--exit) * 3.5vw) 0 calc(var(--exit) * 3.5vw) round 0 0 calc(var(--exit) * 64px) calc(var(--exit) * 64px)); }
.ch-js .ch-hero-inner { translate: 0 calc(var(--exit) * -90px); scale: calc(1 - var(--exit) * .06); opacity: calc(1 - var(--exit) * 1.1); }
.ch-js .ch-deck { rotate: x calc(var(--exit, 0) * 18deg); }

/* Odometer digits: spin several turns, slow down, land; "+" pops after */
.ch-odo { display: inline-flex; }
.ch-odo-col { display: inline-block; height: 1em; overflow: hidden; line-height: 1; }
.ch-odo-strip { display: flex; flex-direction: column; transition: transform calc(1.4s + var(--turns) * .35s) cubic-bezier(.12, .8, .18, 1), filter .4s; transition-delay: calc(var(--i) * 140ms + 150ms); }
.ch-odo-strip > span { display: block; height: 1em; line-height: 1; }
.ch-stat:not(.is-in) .ch-odo-strip { transition: none; }
.ch-stat.is-in .ch-odo-strip { animation: chBlur calc(1.4s + var(--turns) * .35s) ease-out both; animation-delay: calc(var(--i) * 140ms + 150ms); }
@keyframes chBlur { 0% { filter: blur(0); } 12% { filter: blur(1.6px); } 60% { filter: blur(.8px); } 100% { filter: blur(0); } }
.ch-stat-plus { display: inline-block; }
.ch-js .ch-stat .ch-stat-plus { transform: scale(0) rotate(-90deg); transition: transform .7s cubic-bezier(.34, 1.8, .5, 1); }
.ch-js .ch-stat.is-in .ch-stat-plus { transform: none; transition-delay: calc(var(--d, 0ms) + 1.9s); }
.ch-stat-label { transition: letter-spacing 1.2s var(--ch-ease), opacity 1s; }
.ch-js .ch-stat:not(.is-in) .ch-stat-label { letter-spacing: .5em; opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  .ch-js .ch-stat .ch-stat-plus { transform: none; }
  .ch-js .ch-stat .ch-stat-label { letter-spacing: .18em; opacity: 1; }
}

/* Word-by-word fill */
.ch-fill-ready .ch-fw { opacity: .16; transition: opacity .35s ease, color .35s ease; }
.ch-fill-ready .ch-fw.on { opacity: 1; }

/* Circular photo reveal */
.ch-js [data-ch-circle] { clip-path: circle(var(--circle, 8%) at 50% 50%); }

/* Closing headline zooms up to full size */
.ch-js [data-ch-scrub] .ch-display--cta { scale: calc(.82 + var(--scrub, 1) * .18); opacity: calc(.35 + var(--scrub, 1) * .65); letter-spacing: calc(-0.035em + (1 - var(--scrub, 1)) * .06em); }

/* Process section grows from a card into full width */
.ch-js .ch-process { --grow: 1; }
.ch-js .ch-process .ch-process-sticky { scale: calc(.9 + var(--grow) * .1); border-radius: calc((1 - var(--grow)) * 56px); transform-origin: 50% 0; }
.ch-process { background: var(--ch-paper); }
.ch-process .ch-process-sticky { background: radial-gradient(100% 120% at 0% 0%, #0f2d21 0%, var(--ch-forest) 50%, var(--ch-ink) 100%); }

@media (prefers-reduced-motion: reduce) {
  .ch-hero, [data-ch-circle] { clip-path: none !important; }
  .ch-process .ch-process-sticky { scale: none !important; border-radius: 0 !important; }
  .ch-hero-inner, .ch-deck, [data-ch-scrub] .ch-display--cta { translate: none !important; scale: none !important; rotate: none !important; opacity: 1 !important; }
}

/* Stats cards: border "loads" around the card, then a light keeps orbiting */
@property --ch-load { syntax: '<percentage>'; inherits: false; initial-value: 0%; }
@property --ch-spin { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
.ch-border { position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 1; }
.ch-border > span {
  position: absolute; inset: -1px; border-radius: inherit; padding: 2px;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
.ch-border-load {
  background: conic-gradient(from -90deg at 50% 50%, var(--ch-mint) 0%, var(--ch-emerald) calc(var(--ch-load) * .5), var(--ch-gold) var(--ch-load), transparent var(--ch-load));
  transition: --ch-load 1.8s var(--ch-ease);
  transition-delay: calc(var(--d, 0ms) + 150ms);
}
.ch-border-orbit {
  padding: 2.5px;
  background: conic-gradient(from var(--ch-spin), transparent 0 68%, rgba(243, 217, 139, .25) 78%, var(--ch-gold) 90%, #fff 96%, transparent 100%);
  opacity: 0; filter: drop-shadow(0 0 6px rgba(212, 175, 55, .8));
  transition: opacity .6s ease;
  animation: chOrbit 4.5s linear infinite;
}
@keyframes chOrbit { to { --ch-spin: 360deg; } }
.ch-stat.is-in .ch-border-load, html:not(.ch-js) .ch-border-load { --ch-load: 100%; }
.ch-stat.is-in .ch-border-orbit { opacity: 1; transition-delay: calc(var(--d, 0ms) + 1.7s); }
.ch-stat:hover .ch-border-orbit { animation-duration: 1.8s; }
.ch-stat { border-color: transparent; }
@media (prefers-reduced-motion: reduce) {
  .ch-border-load { --ch-load: 100% !important; transition: none; }
  .ch-border-orbit { display: none; }
}

/* =====================================================================
   Loan services – stacking cards
   ===================================================================== */
.ch-stack { position: relative; margin-top: clamp(2.5rem, 5vw, 4rem); }
.ch-scard {
  --s: 1; --b: 1;
  position: sticky; top: calc(96px + var(--i) * 22px);
  display: grid; grid-template-columns: 1.1fr 1fr;
  min-height: min(500px, 68vh); margin-bottom: 7vh;
  border-radius: 34px; overflow: hidden; isolation: isolate;
  background: #fff; border: 1px solid var(--ch-line);
  box-shadow: 0 -10px 40px -24px rgba(9, 24, 17, .35), 0 40px 80px -50px rgba(9, 24, 17, .5);
  transform-origin: 50% 0; scale: var(--s); filter: brightness(var(--b));
  will-change: scale, filter;
}
.ch-scard:last-child { margin-bottom: 0; }
.ch-scard--flip { grid-template-columns: 1fr 1.1fr; }
.ch-scard--flip .ch-scard-media { order: 2; }
.ch-scard-media { position: relative; overflow: hidden; min-height: 280px; }
.ch-scard-media img { position: absolute; inset: 0; width: 100%; height: 118%; top: -9%; object-fit: cover; transition: transform 1.2s var(--ch-ease); translate: 0 var(--py, 0px); }
.ch-scard:hover .ch-scard-media img { transform: scale(1.07); }
.ch-scard-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(6, 15, 11, .05), rgba(6, 15, 11, .45)); pointer-events: none; }
.ch-scard-body { position: relative; display: flex; flex-direction: column; justify-content: center; padding: clamp(1.8rem, 4vw, 3.6rem); background: linear-gradient(160deg, #fff 0%, #f7faf8 100%); }
.ch-scard:nth-child(even) .ch-scard-body { background: linear-gradient(160deg, var(--ch-forest) 0%, var(--ch-ink) 100%); }
.ch-scard-no { position: absolute; right: clamp(1rem, 3vw, 2.4rem); top: clamp(.6rem, 2vw, 1.6rem); font-family: 'Newsreader', serif; font-weight: 700; font-size: clamp(5rem, 11vw, 9.5rem); line-height: 1; color: transparent; -webkit-text-stroke: 1.5px #d3dcd6; transition: color .6s var(--ch-ease), -webkit-text-stroke-color .6s; pointer-events: none; }
.ch-scard:hover .ch-scard-no { color: rgba(212, 175, 55, .18); -webkit-text-stroke-color: var(--ch-gold); }
.ch-scard-count { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; letter-spacing: .2em; color: var(--ch-emerald); }
.ch-scard h3 { position: relative; margin-top: 1rem; font-family: 'Newsreader', serif; font-weight: 600; font-size: clamp(2rem, 3.8vw, 3.2rem); line-height: 1.05; letter-spacing: -.02em; color: var(--ch-forest); }
.ch-scard p { position: relative; margin-top: 1.1rem; max-width: 34rem; font-size: 1.05rem; line-height: 1.7; color: #4a534d; }
.ch-scard-link { position: relative; align-self: flex-start; margin-top: 2rem; display: inline-flex; align-items: center; gap: .7rem; padding: .85rem 1.4rem; border-radius: 999px; overflow: hidden; isolation: isolate; font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; letter-spacing: .08em; color: var(--ch-forest); border: 1px solid rgba(9, 24, 17, .2); transition: color .45s var(--ch-ease), border-color .45s; }
.ch-scard-link::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(120deg, var(--ch-gold-2), var(--ch-gold)); transform: scaleX(0); transform-origin: left; transition: transform .55s var(--ch-ease); }
.ch-scard:hover .ch-scard-link::before { transform: scaleX(1); }
.ch-scard:hover .ch-scard-link { color: var(--ch-ink); border-color: var(--ch-gold); }
.ch-scard-link i { transition: transform .45s var(--ch-ease); }
.ch-scard:hover .ch-scard-link i { transform: translateX(5px); }
/* dark variant text */
.ch-scard:nth-child(even) h3 { color: #fff; }
.ch-scard:nth-child(even) p { color: rgba(236, 253, 245, .75); }
.ch-scard:nth-child(even) .ch-scard-count { color: var(--ch-mint); }
.ch-scard:nth-child(even) .ch-scard-no { -webkit-text-stroke-color: rgba(255, 255, 255, .14); }
.ch-scard:nth-child(even) .ch-scard-link { color: #fff; border-color: rgba(255, 255, 255, .3); }
.ch-scard:nth-child(even):hover .ch-scard-link { color: var(--ch-ink); }

/* entrance: photo unmasks from the bottom, text lines slide in one by one */
.ch-js .ch-scard[data-ch-reveal]:not(.is-in) { opacity: 1; transform: none; }
.ch-js .ch-scard[data-ch-reveal] { transform: none; transition: none; }
.ch-js .ch-scard .ch-scard-media { clip-path: inset(100% 0 0 0); transition: clip-path 1.2s var(--ch-ease) .1s; }
.ch-js .ch-scard.is-in .ch-scard-media { clip-path: inset(0 0 0 0); }
.ch-js .ch-scard .ch-scard-body > * { opacity: 0; translate: 0 26px; transition: opacity .8s ease, translate 1s var(--ch-ease); }
.ch-js .ch-scard.is-in .ch-scard-body > * { opacity: 1; translate: 0 0; }
.ch-js .ch-scard.is-in .ch-scard-body > :nth-child(1) { transition-delay: .25s; }
.ch-js .ch-scard.is-in .ch-scard-body > :nth-child(2) { transition-delay: .35s; }
.ch-js .ch-scard.is-in .ch-scard-body > :nth-child(3) { transition-delay: .45s; }
.ch-js .ch-scard.is-in .ch-scard-body > :nth-child(4) { transition-delay: .55s; }
.ch-js .ch-scard.is-in .ch-scard-body > :nth-child(5) { transition-delay: .65s; }

@media (max-width: 767px) {
  .ch-scard, .ch-scard--flip { grid-template-columns: 1fr; top: calc(84px + var(--i) * 14px); min-height: 0; margin-bottom: 4vh; border-radius: 26px; }
  .ch-scard--flip .ch-scard-media { order: 0; }
  .ch-scard-media { min-height: 0; aspect-ratio: 16 / 10; }
  .ch-scard-no { font-size: 4.2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .ch-scard { position: relative; top: auto; scale: none; filter: none; }
  .ch-scard .ch-scard-media { clip-path: none !important; }
  .ch-scard .ch-scard-body > * { opacity: 1 !important; translate: none !important; }
}

/* =====================================================================
   v2 inner pages (same creative system)
   ===================================================================== */
.ch-hero--page { min-height: 0; }
.ch-display--page { font-size: clamp(2.3rem, 5vw, 4.4rem); line-height: 1.04; }
.ch-display--article { font-size: clamp(2.1rem, 4.4vw, 3.7rem); line-height: 1.08; }
.ch-hero--simple .ch-hero-inner { padding-bottom: clamp(4rem, 7vw, 6rem); }
.ch-hero--article .ch-hero-inner { padding-bottom: clamp(7rem, 12vw, 10rem); }
.ch-crumbs { position: relative; font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: rgba(236, 253, 245, .55); }
.ch-crumbs a { color: rgba(236, 253, 245, .7); transition: color .3s; }
.ch-crumbs a:hover { color: var(--ch-gold-2); }
.ch-crumbs [aria-current] { color: var(--ch-gold-2); }
.ch-crumb-sep { margin: 0 .7em; color: rgba(255, 255, 255, .25); }
.ch-hero-body { max-width: 40rem; }
.ch-hero-body p, .ch-hero-body .ch-p { color: rgba(236, 253, 245, .8); font-size: 1.08rem; line-height: 1.75; }
.ch-hero-body p + p { margin-top: .9rem; }
.ch-hero-body a { color: var(--ch-gold-2); text-decoration: underline; text-underline-offset: 3px; }
.ch-deck--single { max-width: 420px; }
.ch-hero--page .ch-rotor { width: 116px; height: 116px; }

.ch-p { color: #4a534d; font-size: 1.06rem; line-height: 1.8; }
.ch-p--sm { font-size: .98rem; }
.ch-prose .ch-p + .ch-p { margin-top: 1rem; }
.ch-prose a { color: var(--ch-emerald); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.ch-sub { color: #56605a; font-size: 1.05rem; line-height: 1.7; }
.ch-dark .ch-sub { color: rgba(236, 253, 245, .72); }

/* checklist */
.ch-checks { display: grid; gap: .75rem; margin-top: 1.8rem; }
@media (min-width: 640px) { .ch-checks { grid-template-columns: repeat(2, 1fr); } }
.ch-checks li { display: flex; align-items: flex-start; gap: .8rem; padding: 1rem 1.1rem; border-radius: 18px; background: #fff; border: 1px solid var(--ch-line); font-weight: 600; font-size: .95rem; line-height: 1.5; color: var(--ch-forest); transition: transform .5s var(--ch-ease), box-shadow .5s var(--ch-ease), border-color .3s; }
.ch-paper .ch-checks li { background: #fff; }
.bg-white .ch-checks li { background: var(--ch-paper); }
.ch-checks li:hover { border-color: rgba(212, 175, 55, .6); box-shadow: 0 18px 34px -24px rgba(9, 24, 17, .5); }
.ch-check { flex: none; width: 26px; height: 26px; border-radius: 9px; display: grid; place-items: center; font-size: .75rem; color: var(--ch-ink); background: linear-gradient(135deg, var(--ch-gold-2), var(--ch-gold)); }

/* media with gold offset frame */
.ch-media { position: relative; border-radius: 28px; overflow: hidden; aspect-ratio: 5 / 4; box-shadow: 0 40px 80px -40px rgba(9, 24, 17, .55); isolation: isolate; }
.ch-media img { width: 100%; height: 115%; margin-top: -7%; object-fit: cover; }
.ch-media--wide { aspect-ratio: 16 / 8; }
.ch-js .ch-media.ch-curtain::after { right: 0; bottom: 0; }

/* title cards */
.ch-cards .ch-why { min-height: 190px; }
.ch-cards--3 .ch-why { --oy: 0px; }
.ch-why h3 a { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .4s var(--ch-ease); }
.ch-why:hover h3 a { background-size: 100% 1px; }
.ch-dark--cards { overflow: hidden; isolation: isolate; }
.ch-dark .ch-why { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .1); }
.ch-dark .ch-why h3 { color: #fff; }
.ch-dark .ch-why-ico { background: rgba(108, 248, 187, .1); color: var(--ch-mint); }
.ch-dark .ch-why:hover { background: rgba(255, 255, 255, .08); border-color: rgba(212, 175, 55, .4); }
.ch-dark .ch-why-no { -webkit-text-stroke-color: rgba(255, 255, 255, .15); }

/* steps footnote */
.ch-step-foot { font-family: 'Newsreader', serif; font-style: italic; font-size: 1.25rem; color: var(--ch-gold-2); }

/* forms */
.ch-form { display: grid; gap: 1rem; padding: clamp(1.5rem, 3vw, 2.4rem); border-radius: 28px; background: #fff; border: 1px solid var(--ch-line); box-shadow: 0 40px 80px -50px rgba(9, 24, 17, .55); }
.ch-form-title { font-family: 'Newsreader', serif; font-weight: 600; font-size: 1.7rem; color: var(--ch-forest); padding-bottom: .9rem; border-bottom: 1px solid var(--ch-line); }
.ch-form .ch-field { width: 100%; padding: .95rem 1.1rem; border-radius: 14px; border: 1px solid #dfe5e1; background: var(--ch-paper); color: var(--ch-forest); font-size: .95rem; transition: border-color .3s, box-shadow .3s, background-color .3s; }
.ch-form .ch-field::placeholder { color: #78817b; }
.ch-form .ch-field:focus { outline: none; background: #fff; border-color: var(--ch-emerald); box-shadow: 0 0 0 4px rgba(0, 108, 73, .12); }
.ch-btn--block { width: 100%; justify-content: center; }

/* testimonial + services menu */
.ch-quote-card { position: relative; overflow: hidden; padding: 2rem; border-radius: 28px; color: #fff; background: radial-gradient(120% 120% at 0% 0%, #133023, var(--ch-forest) 55%, var(--ch-ink)); }
.ch-quote-card > i { position: absolute; right: 1.6rem; top: 1.4rem; font-size: 2.8rem; color: rgba(212, 175, 55, .25); }
.ch-quote-label { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--ch-mint); }
.ch-quote-card blockquote { margin-top: .9rem; font-family: 'Newsreader', serif; font-style: italic; font-size: 1.35rem; line-height: 1.45; }
.ch-quote-card figcaption { display: flex; align-items: center; gap: .8rem; margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid rgba(255, 255, 255, .1); }
.ch-quote-card figcaption b { display: block; font-size: .92rem; }
.ch-quote-card figcaption small { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #9fb3a8; }
.ch-avatar { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-family: 'Newsreader', serif; font-weight: 700; font-size: 1.2rem; color: var(--ch-ink); background: linear-gradient(135deg, var(--ch-gold-2), var(--ch-gold)); }
.ch-svc-nav { display: grid; gap: .6rem; padding: 1.4rem; border-radius: 28px; background: #fff; border: 1px solid var(--ch-line); }
.ch-svc-label { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--ch-emerald); margin-bottom: .3rem; }
.ch-svc { position: relative; overflow: hidden; isolation: isolate; display: flex; align-items: center; gap: .8rem; padding: .95rem 1.1rem; border-radius: 16px; background: var(--ch-paper); font-weight: 700; font-size: .95rem; color: var(--ch-forest); transition: color .4s var(--ch-ease); }
.ch-svc::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--ch-forest); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ch-ease); }
.ch-svc:hover::before, .ch-svc.is-current::before { transform: scaleX(1); }
.ch-svc:hover, .ch-svc.is-current { color: #fff; }
.ch-svc i:first-child { width: 1.2rem; color: var(--ch-emerald); transition: color .4s; }
.ch-svc:hover i:first-child, .ch-svc.is-current i:first-child { color: var(--ch-gold-2); }
.ch-svc i:last-child { margin-left: auto; font-size: .75rem; transition: transform .4s var(--ch-ease); }
.ch-svc:hover i:last-child { transform: translateX(4px); }

/* contact */
.ch-info { padding: 1.4rem; border-radius: 22px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .12); backdrop-filter: blur(10px); color: #fff; font-weight: 600; line-height: 1.5; transition: transform .5s var(--ch-ease), border-color .3s, background-color .3s; }
.ch-info:hover { transform: translateY(-4px); border-color: rgba(212, 175, 55, .5); background: rgba(255, 255, 255, .08); }
.ch-info a { color: #fff; word-break: break-word; }
.ch-info-ico { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; margin-bottom: 1rem; color: var(--ch-ink); background: linear-gradient(135deg, var(--ch-gold-2), var(--ch-gold)); }
.ch-map { border-radius: 28px; overflow: hidden; box-shadow: 0 40px 80px -50px rgba(9, 24, 17, .55); border: 1px solid var(--ch-line); }
.ch-map iframe { display: block; width: 100%; height: clamp(320px, 45vw, 440px); }
.ch-section--tight { padding-block: clamp(3rem, 6vw, 5rem); }

/* blog cards */
.ch-post { --mx: 50%; --my: 50%; position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: 28px; background: #fff; border: 1px solid var(--ch-line); transition: box-shadow .5s var(--ch-ease), border-color .3s; }
.ch-post::before { content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: 0; transition: opacity .4s; background: radial-gradient(400px circle at var(--mx) var(--my), rgba(212, 175, 55, .16), transparent 45%); }
.ch-post:hover { border-color: rgba(0, 108, 73, .3); box-shadow: 0 40px 70px -40px rgba(9, 24, 17, .55); }
.ch-post:hover::before { opacity: 1; }
.ch-post-media { aspect-ratio: 16 / 10; overflow: hidden; }
.ch-post-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ch-ease); }
.ch-post:hover .ch-post-media img { transform: scale(1.07); }
.ch-post-body { position: relative; flex: 1; display: flex; flex-direction: column; padding: 1.6rem 1.7rem 1.7rem; }
.ch-post-meta { display: flex; justify-content: space-between; gap: 1rem; white-space: nowrap; font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ch-emerald); }
.ch-post-meta--hero { justify-content: flex-start; gap: 1.6rem; color: var(--ch-mint); }
.ch-post h2 { margin-top: 1rem; font-family: 'Newsreader', serif; font-weight: 600; font-size: 1.55rem; line-height: 1.2; color: var(--ch-forest); }
.ch-post p { margin-top: .8rem; flex: 1; font-size: .95rem; line-height: 1.65; color: #4a534d; }
.ch-post-go { align-self: flex-end; margin-top: 1.2rem; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: var(--ch-forest); border: 1px solid var(--ch-line); transition: background-color .4s, color .4s, transform .5s var(--ch-ease); }
.ch-post:hover .ch-post-go { background: var(--ch-gold); color: var(--ch-ink); transform: rotate(-45deg); }

/* article */
.ch-article-media { position: relative; z-index: 8; margin-top: clamp(-6rem, -9vw, -4rem); }
.ch-section--article { padding-top: clamp(3rem, 6vw, 5rem); }

/* ---------- v2 inner-page motion additions ---------- */
.ch-js .ch-rise[data-ch-reveal]:not(.is-in) { opacity: 0; transform: translateY(22px); }
.ch-js .ch-rise[data-ch-reveal] { transition: opacity .8s ease, transform .9s var(--ch-ease); transition-delay: var(--d, 0ms); }
.ch-js .article-body > h2.ch-rise:not(.is-in) { transform: translateX(-26px); }
.ch-js .article-body li.ch-rise:not(.is-in), .ch-js .ch-svc.ch-rise:not(.is-in) { transform: translateX(-20px); }

/* gold frame drawn behind split photos */
.ch-frame { position: relative; }
.ch-frame::before { content: ''; position: absolute; z-index: 0; left: -18px; top: -18px; width: 55%; height: 60%; border: 2px solid var(--ch-gold); border-radius: 30px; pointer-events: none;
  clip-path: inset(0 100% 100% 0); transition: clip-path 1.3s var(--ch-ease) .5s; }
.ch-frame--r::before { left: auto; right: -18px; }
.ch-frame::after { content: ''; position: absolute; z-index: 0; right: -14px; bottom: -14px; width: 38%; height: 42%; border-radius: 30px; background: radial-gradient(circle at 30% 30%, rgba(108, 248, 187, .35), transparent 70%); opacity: 0; transition: opacity 1.2s ease .7s; pointer-events: none; }
.ch-frame--r::after { right: auto; left: -14px; }
.ch-frame.is-in::before, html:not(.ch-js) .ch-frame::before { clip-path: inset(0 0 0 0); }
.ch-frame.is-in::after { opacity: 1; }
.ch-frame .ch-media { z-index: 1; }
.ch-js .ch-frame[data-ch-reveal]:not(.is-in) { opacity: 1; transform: none; }
.ch-media img { transition: transform 1.2s var(--ch-ease); }
.ch-frame:hover .ch-media img { transform: scale(1.06); }
@media (max-width: 639px) { .ch-frame::before { left: -8px; top: -8px; } .ch-frame--r::before { right: -8px; } }


/* check list items pop their tick */
.ch-checks li.is-in .ch-check { animation: chPop .7s var(--ch-ease) both; animation-delay: calc(var(--d, 0ms) + 250ms); }

@media (prefers-reduced-motion: reduce) {
  .ch-rise { opacity: 1 !important; transform: none !important; }
  .ch-frame::before { clip-path: none !important; }
}

/* page-banner scenes */
.ch-scene { position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .9; }
.ch-scene--glitch .ch-scene, .ch-scene--questions .ch-scene { opacity: 1; }
@media (max-width: 767px) { .ch-scene { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .ch-scene { display: none; } }

/* =====================================================================
   Page-banner photo frames – one per page
   ===================================================================== */
.ch-hero--page .ch-deck { overflow: visible; }

/* Vehicle Loan: slanted speed frame that settles into place */
.ch-scene--road .ch-deck { aspect-ratio: 5 / 4; max-width: 470px; }
.ch-scene--road .ch-arch { border-radius: 26px; clip-path: polygon(10% 0, 100% 0, 90% 100%, 0 100%); border: 0; animation: chSkewIn 1.4s var(--ch-ease) both .3s; }
.ch-scene--road .ch-deck::before, .ch-scene--road .ch-deck::after { content: ''; position: absolute; z-index: 4; left: -14%; height: 3px; border-radius: 3px; background: linear-gradient(90deg, transparent, var(--ch-gold)); animation: chStreak 7.5s ease-in-out infinite; }
.ch-scene--road .ch-deck::before { top: 28%; width: 38%; }
.ch-scene--road .ch-deck::after { top: 64%; width: 26%; animation-delay: -3.75s; background: linear-gradient(90deg, transparent, var(--ch-mint)); }
@keyframes chSkewIn { from { opacity: 0; transform: translateX(80px) skewX(-8deg); } }
@keyframes chStreak { 0%, 100% { transform: translateX(-20px); opacity: 0; } 50% { transform: translateX(10px); opacity: 1; } }

/* Document-Based Loans: fanned paper stack */
.ch-scene--documents .ch-deck { aspect-ratio: 4 / 5; max-width: 390px; }
.ch-scene--documents .ch-arch { border-radius: 18px; transform: rotate(-3deg); border: 6px solid #f6f5ef; animation: chPaper 7s ease-in-out infinite; }
.ch-scene--documents .ch-deck::before, .ch-scene--documents .ch-deck::after { content: ''; position: absolute; inset: 0; border-radius: 18px; background: linear-gradient(160deg, #f6f5ef, #e6e2d5); border: 1px solid rgba(212, 175, 55, .5); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .6); }
.ch-scene--documents .ch-deck::before { transform: rotate(6deg) translate(22px, 10px); opacity: .55; }
.ch-scene--documents .ch-deck::after { transform: rotate(2deg) translate(10px, 4px); opacity: .8; }
@keyframes chPaper { 50% { transform: rotate(-1deg) translateY(-8px); } }

/* General Finance: circle with a turning dashed dial */
.ch-scene--chart .ch-deck { aspect-ratio: 1; max-width: 400px; }
.ch-scene--chart .ch-arch { border-radius: 50%; border: 1px solid rgba(243, 217, 139, .45); }
.ch-scene--chart .ch-deck::before { content: ''; position: absolute; inset: -22px; border-radius: 50%; border: 2px dashed rgba(212, 175, 55, .6); animation: chSpin 40s linear infinite; }
.ch-scene--chart .ch-deck::after { content: ''; position: absolute; inset: -40px; border-radius: 50%; border: 1px solid rgba(108, 248, 187, .25); border-top-color: var(--ch-mint); animation: chSpin 6s linear infinite reverse; }

/* Money Exchange: circle with two tilted orbit rings */
.ch-scene--orbit .ch-deck { aspect-ratio: 1; max-width: 390px; }
.ch-scene--orbit .ch-arch { border-radius: 50%; border: 1px solid rgba(108, 248, 187, .4); }
.ch-scene--orbit .ch-deck::before, .ch-scene--orbit .ch-deck::after { content: ''; position: absolute; z-index: 4; inset: -8% -16%; border-radius: 50%; border: 1.5px solid rgba(243, 217, 139, .55); pointer-events: none; }
.ch-scene--orbit .ch-deck::before { transform: rotate(-18deg) scaleY(.38); animation: chOrbitA 9s linear infinite; background: radial-gradient(circle at 50% 0, var(--ch-gold) 0 5px, transparent 6px); }
.ch-scene--orbit .ch-deck::after { transform: rotate(24deg) scaleY(.3); border-color: rgba(108, 248, 187, .5); animation: chOrbitB 12s linear infinite; background: radial-gradient(circle at 50% 100%, var(--ch-mint) 0 5px, transparent 6px); }
@keyframes chOrbitA { to { transform: rotate(342deg) scaleY(.38); } }
@keyframes chOrbitB { to { transform: rotate(-336deg) scaleY(.3); } }

/* About: photo split into three panels that slide in and lock together */
.ch-strips { position: relative; display: flex; gap: 0; aspect-ratio: 4 / 5; max-width: 420px; margin-inline: auto; }
.ch-strips::before { content: ''; position: absolute; inset: 22px -22px -22px 22px; border: 1.5px solid rgba(243, 217, 139, .5); border-radius: 30px; z-index: 0; }
.ch-strip { position: relative; z-index: 1; flex: 1; overflow: hidden; box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .75);
  transition: transform 1.3s var(--ch-ease), margin .6s var(--ch-ease); transition-delay: calc(var(--k) * 140ms + 200ms); }
.ch-strip:first-child { border-radius: 30px 0 0 30px; }
.ch-strip:last-child { border-radius: 0 30px 30px 0; }
.ch-strip img { position: absolute; top: 0; height: 100%; width: 300%; max-width: none; object-fit: cover; left: calc(var(--k) * -100%); }
.ch-js [data-ch-reveal]:not(.is-in) .ch-strip { transform: translateY(calc((var(--k) - 1) * 70px + 40px)); }
.ch-js [data-ch-reveal]:not(.is-in) .ch-strip:nth-child(2) { transform: translateY(-60px); }
.ch-strips:hover .ch-strip { transition-delay: 0ms; }
.ch-strips:hover .ch-strip:first-child { transform: translate(-8px, 10px); }
.ch-strips:hover .ch-strip:last-child { transform: translate(8px, -10px); }
.ch-strip::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(6, 15, 11, .45)); }

/* Investors: rounded frame + vault dial that turns like a combination lock */
.ch-vault { aspect-ratio: 4 / 5; max-width: 400px; }
.ch-vault .ch-arch { border-radius: 30px; border: 1px solid rgba(243, 217, 139, .4); }
.ch-dial { position: absolute; z-index: 5; width: 44%; max-width: 190px; left: -4%; bottom: -8%; filter: drop-shadow(0 20px 30px rgba(0, 0, 0, .55)); }
.ch-dial-ring { fill: rgba(9, 24, 17, .88); stroke: var(--ch-gold); stroke-width: 2; }
.ch-dial-ticks { stroke: var(--ch-gold-2); stroke-width: 1.6; stroke-linecap: round; transform-origin: 100px 100px; animation: chDial 9s cubic-bezier(.65, 0, .35, 1) infinite; }
.ch-dial-inner { fill: none; stroke: rgba(108, 248, 187, .45); stroke-width: 1.5; stroke-dasharray: 3 6; transform-origin: 100px 100px; animation: chSpin 20s linear infinite reverse; }
.ch-dial-hub { fill: url(#none); fill: var(--ch-gold); filter: drop-shadow(0 0 8px rgba(212, 175, 55, .9)); animation: chHub 3s ease-in-out infinite; transform-origin: 100px 100px; }
.ch-dial-mark { fill: var(--ch-mint); }
@keyframes chDial { 0% { transform: rotate(0); } 30% { transform: rotate(120deg); } 55% { transform: rotate(40deg); } 80% { transform: rotate(210deg); } 100% { transform: rotate(360deg); } }
@keyframes chHub { 50% { transform: scale(.82); } }

@media (prefers-reduced-motion: reduce) {
  .ch-dial *, .ch-strip { animation: none !important; transform: none !important; }
  .ch-hero--page .ch-deck::before, .ch-hero--page .ch-deck::after, .ch-hero--page .ch-arch { animation: none !important; }
}

/* ---------- Hero headline: plain words rise; the gold phrase is "inked" in word by word, then a glint travels across it ---------- */
.ch-gold--hero { animation: none; }
.ch-js .ch-gold--hero .ch-w { overflow: visible; }
.ch-js .ch-gold--hero .ch-wi {
  background: linear-gradient(100deg, var(--ch-gold-2) 0%, var(--ch-gold) 20%, #c99a2a 33.33%, var(--ch-gold) 45%, #fff6d6 50%, var(--ch-gold) 55%, var(--ch-gold-2) 66.67%, var(--ch-gold) 86.67%, #c99a2a 100%);
  background-size: 300% 100%; background-position: 100% 0;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  transform: none; clip-path: inset(-25% 100% -35% -8%);
  transition: clip-path .75s cubic-bezier(.65, 0, .35, 1); transition-delay: calc((var(--i) - 4) * 200ms + 600ms);
}
.ch-js .ch-split-ready.is-in .ch-gold--hero .ch-wi {
  clip-path: inset(-25% -12% -35% -8%);
  animation: chInkGlint 6s ease-in-out infinite; animation-delay: calc((var(--i) - 4) * 110ms + 1.9s);
}
@keyframes chInkGlint { 0% { background-position: 100% 0; } 22%, 100% { background-position: 0% 0; } }
.ch-gold--hero + svg path { transition-delay: 1.35s; }
@media (prefers-reduced-motion: reduce) { .ch-js .ch-gold--hero .ch-wi { clip-path: none !important; animation: none !important; } }
