/* ===== testimonials | sticky heading + cards lock into a Figma-frame stack ===== */
.reviews{position:relative;padding:0}
.rev-scroll{position:relative;height:440vh}
.rev-vp{position:sticky;top:0;height:100vh;overflow:hidden}
.reviews .sec-head{position:absolute;left:0;right:0;top:clamp(96px,calc(12vh + 40px),168px);text-align:center;z-index:8;margin:0}
.reviews .sec-head .scribble{display:flex;justify-content:center}
.reviews .sec-head h2{font-size:clamp(32px,5vw,60px);line-height:1.02;margin:0}
.rev-stack{position:absolute;left:50%;transform:translateX(-50%);top:clamp(196px,40vh,380px);width:min(560px,90vw);height:0}
.rcard{position:absolute;left:0;right:0;top:0;background-color:#fff;background-image:radial-gradient(circle,rgba(20,32,43,.05) 1.1px,transparent 1.1px);background-size:18px 18px;background-position:-1px -1px;border:1.5px solid rgba(20,32,43,.16);border-radius:14px;box-shadow:0 34px 64px -38px rgba(20,32,43,.5);padding:30px 28px 26px;min-height:236px;transform-origin:50% 150%;will-change:transform}
.rcard::after{content:"";position:absolute;inset:-1.5px;border:1.5px solid var(--tool);border-radius:14px;opacity:0;transition:opacity .18s;pointer-events:none}
.rcard:hover::after{opacity:1}
.rc-h{position:absolute;width:9px;height:9px;background:#fff;border:1.5px solid var(--tool);border-radius:2px;opacity:0;transition:opacity .18s;z-index:4}
.rcard:hover .rc-h{opacity:1}
.rc-h.tl{left:-5px;top:-5px}.rc-h.tr{right:-5px;top:-5px}.rc-h.bl{left:-5px;bottom:-5px}.rc-h.br{right:-5px;bottom:-5px}
.rc-dim{position:absolute;right:11px;bottom:9px;font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.04em;color:var(--tool);opacity:0;transition:opacity .18s}
.rcard:hover .rc-dim{opacity:1}
.rc-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.rc-frame{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--lc,#0D99FF)}
.rc-frame i{width:8px;height:8px;border-radius:2px;background:var(--lc,#0D99FF)}
.rc-rate{display:flex;gap:2px;color:var(--brand)}.rc-rate svg{width:15px;height:15px}
.rcard blockquote{margin:0 0 22px;font-family:var(--display);font-weight:600;font-size:20px;line-height:1.4;letter-spacing:-.015em;color:var(--ink)}
.rc-foot{display:flex;align-items:center;gap:11px}
.rc-av{width:42px;height:42px;border-radius:50%;flex:none;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:15px;color:#fff}
.rc-nm{display:block;font-family:var(--display);font-weight:700;font-size:14.5px;color:var(--ink);line-height:1.1}
.rc-rl{display:block;font-size:11px;color:var(--ink-faint);font-family:var(--mono);letter-spacing:.02em;margin-top:3px}
.rc-react{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--tool);background:rgba(13,153,255,.1);border:1px solid rgba(13,153,255,.26);padding:4px 9px;border-radius:7px}
.rc-react svg{width:12px;height:12px}
.rcard.rc-orange{background-color:var(--brand);border-color:rgba(255,255,255,.3);background-image:radial-gradient(circle,rgba(255,255,255,.12) 1.1px,transparent 1.1px)}
.rcard.rc-ink{background-color:var(--ink);border-color:rgba(255,255,255,.18);background-image:radial-gradient(circle,rgba(255,255,255,.1) 1.1px,transparent 1.1px)}
.rcard.rc-peach{background-color:#FFE0CC;border-color:rgba(20,32,43,.14)}
.rcard.rc-orange blockquote,.rcard.rc-ink blockquote,.rcard.rc-orange .rc-nm,.rcard.rc-ink .rc-nm{color:#fff}
.rcard.rc-orange .rc-rl,.rcard.rc-ink .rc-rl{color:rgba(255,255,255,.74)}
.rcard.rc-orange .rc-rate,.rcard.rc-ink .rc-rate{color:#fff}
.rcard.rc-orange .rc-av,.rcard.rc-ink .rc-av{background:rgba(255,255,255,.22)!important}
.rcard.rc-orange .rc-react,.rcard.rc-ink .rc-react{color:#fff;background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.32)}
.rcard.rc-peach .rc-react{color:var(--brand);background:rgba(240,83,28,.12);border-color:rgba(240,83,28,.3)}
@media(max-width:760px){.reviews .sec-head{top:clamp(44px,9vh,88px)}.reviews .sec-head h2{font-size:clamp(28px,7vw,40px)}.rev-stack{top:clamp(176px,32vh,300px);width:90vw}.rcard blockquote{font-size:18px}}
@media(max-width:760px){.reviews{padding-top:56px}.rcard{transform:none!important;position:relative;margin:0 auto 20px}.rev-scroll{height:auto}.rev-vp{position:static;height:auto;overflow:visible}.reviews .sec-head{position:static;text-align:center;margin:0 0 18px}.rev-stack{position:static;transform:none;height:auto;width:min(560px,92vw);margin:0 auto}}

/* ===== about illustration ===== */
.ill{position:absolute;inset:0;width:100%;height:100%;display:block}
.ill-blob{fill:#c9e4fb}
.ill-float{animation:illfloat 4.6s ease-in-out infinite}
@keyframes illfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.ill-spark{animation:illspark 2.6s ease-in-out infinite}
.ill-spark.s2{animation-delay:1.2s}
@keyframes illspark{0%,100%{opacity:.15}50%{opacity:1}}
.c-photo .cap{z-index:2}

