/* RedBird B2: ChatPRD style architecture components and RedBird's own motion. Tokens only, no hex.
   Motion rules: transform and opacity only, space reserved up front, reduced motion shows the final state. */
:root{--rb-ease:cubic-bezier(.2,.9,.3,1);--rb-in:.6s;--rb-pop:.5s}
/* buttons */
.btn--secondary{background:var(--ds-surface);color:var(--ds-text);box-shadow:inset 0 0 0 1px var(--ds-line-strong)}
.btn--secondary:hover{box-shadow:inset 0 0 0 1px var(--ds-text)}
.btn--sm{min-height:38px;padding:0 16px;font-size:14px}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero .ctas,.center .ctas,.close__band .ctas{justify-content:center}
.phero .ctas .btn{margin-top:0}
.under--left{text-align:left}
.h3like{font-size:22px;letter-spacing:-.02em;font-weight:500;margin-bottom:12px}

/* header with dropdowns (9) */
.hd__in{gap:28px}
.hd__nav ul{gap:22px}
.hd__btns{display:flex;gap:8px;flex:none}
.dd{position:relative}
.dd__t{display:inline-flex;align-items:center;gap:6px}
.dd__t::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .3s var(--rb-ease)}
.dd__p{position:absolute;left:-18px;top:calc(100% + 14px);width:280px;padding:10px;border-radius:20px;background:var(--ds-surface);box-shadow:inset 0 0 0 1px var(--ds-line),var(--ds-shadow-menu);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .22s var(--rb-ease),transform .22s var(--rb-ease),visibility 0s linear .22s;z-index:60}
.dd__p::before{content:"";position:absolute;inset:-16px 0 auto;height:16px}
.dd__p--wide{width:620px}
.dd:hover .dd__p,.dd:focus-within .dd__p,.dd.is-open .dd__p{opacity:1;visibility:visible;transform:none;transition:opacity .22s var(--rb-ease),transform .22s var(--rb-ease),visibility 0s}
.dd:hover .dd__t::after,.dd:focus-within .dd__t::after,.dd.is-open .dd__t::after{transform:translateY(1px) rotate(225deg)}
.hd__nav .dd__p ul{display:grid;gap:2px}
.hd__nav .dd__grid{grid-template-columns:1fr 1fr}
.hd__nav .dd__p a{display:block;padding:10px 12px;border-radius:12px;color:var(--ds-text)}
.hd__nav .dd__p a:hover,.hd__nav .dd__p a:focus-visible{background:var(--ds-surface-2);color:var(--ds-text)}
.dd__p strong{display:block;font-size:14px;font-weight:600}
.dd__p small{display:block;font-size:12.5px;line-height:1.4;color:var(--ds-text-3);margin-top:2px}
.hd__nav .dd__p .dd__foot{margin-top:6px;border-top:1px solid var(--ds-line-soft);border-radius:0 0 12px 12px;padding-top:12px}
.hd__grp{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ds-text-3);margin:10px 0 2px}
.hd__menu nav{max-height:calc(100svh - var(--hd) - 24px);overflow:auto}
.hd__menu li a{font-size:18px;padding:10px 0}
.hd__more{margin-top:14px}
.hd__mbtns{display:grid;gap:10px;margin-top:20px}
.hd__mbtns .btn{justify-content:center}
@media (max-width:1180px){.hd__nav ul{gap:16px}.hd__nav a{font-size:13.5px}}
@media (max-width:1080px){.hd__nav,.hd__book{display:none}.hd__menu{display:block;margin-left:0}.hd__btns{margin-left:auto}}
@media (max-width:420px){.hd__btns .btn{padding:0 12px;font-size:13px}.hd__in{gap:12px}}

/* home hero: text left, the sample text thread right (1) */
.hero--split{text-align:left}
.hero--split .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,72px);align-items:center}
.hero--split h1{margin-inline:0}
.hero--split .lede{margin:28px 0 0}
.hero--split .ctas{justify-content:flex-start}
.phone{position:relative;justify-self:center;width:min(340px,100%);aspect-ratio:340/560;border-radius:44px;padding:14px;background:var(--ds-prd-ink);box-shadow:var(--ds-shadow-form)}
.phone__scr{height:100%;border-radius:32px;background:var(--ds-surface);overflow:hidden;display:flex;flex-direction:column}
.phone__top{padding:18px 18px 12px;border-bottom:1px solid var(--ds-line-soft);text-align:center}
.phone__top strong{display:block;font-size:14px}
.phone__top small{font-size:12px;color:var(--ds-text-3)}
.thread{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;padding:16px 14px 20px}
.tb{position:relative;display:flex}
.tb--out{justify-content:flex-end}
.bub{max-width:86%;padding:10px 14px;border-radius:20px;font-size:14px;line-height:1.4}
.tb--in .bub,.bub--in{background:var(--ds-surface-2);color:var(--ds-text);border-bottom-left-radius:6px}
.tb--out .bub,.bub--out{background:var(--ds-primary);color:var(--ds-on-primary);border-bottom-right-radius:6px;margin-left:auto}
.dots{position:absolute;left:0;bottom:0;display:flex;gap:4px;padding:12px 14px;border-radius:20px;border-bottom-left-radius:6px;background:var(--ds-surface-2);opacity:0}
.dots i{width:6px;height:6px;border-radius:50%;background:var(--ds-text-3)}
html.motion .thread.is-armed .bub{opacity:0;transform:translateY(12px) scale(.97)}
html.motion .thread .tb.is-typing .dots{opacity:1;transition:opacity .2s}
html.motion .thread .tb.is-typing .dots i{animation:rbDot 1.05s var(--rb-ease) infinite}
html.motion .thread .tb.is-typing .dots i:nth-child(2){animation-delay:.16s}
html.motion .thread .tb.is-typing .dots i:nth-child(3){animation-delay:.32s}
html.motion .thread .tb.is-in .bub{opacity:1;transform:none;transition:opacity var(--rb-in) var(--rb-ease),transform var(--rb-in) var(--rb-ease)}
@keyframes rbDot{0%,70%,100%{transform:translateY(0);opacity:.45}35%{transform:translateY(-4px);opacity:1}}

/* proof count up (7): fixed width digits so nothing moves */
.count{display:inline-block;min-width:2ch;text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--ds-text)}

/* sample outputs */
.smp{position:relative;margin:0}
.smp__tag{position:absolute;z-index:2;top:12px;left:12px;font-size:12px;font-weight:600;letter-spacing:.02em;padding:4px 10px;border-radius:999px;background:var(--ds-surface);color:var(--ds-text-2);box-shadow:inset 0 0 0 1px var(--ds-line)}
.story__tag .smp__tag,.case .smp__tag{position:static}
.smp--img{display:grid;place-items:center;padding:40px 24px 24px;border-radius:var(--r);background:var(--ds-bg-alt);isolation:isolate;overflow:hidden}
.smp--img::before,.smp--card::before{content:"";position:absolute;z-index:-1;inset:20% 10% 0;background:var(--ds-glow);filter:blur(50px);opacity:.45}
.smp--img img{height:420px;width:auto;max-width:100%;object-fit:contain;border-radius:16px;filter:var(--ds-shadow-float)}
.smp--card{padding:52px 24px 28px;border-radius:var(--r);background:var(--ds-bg-alt);isolation:isolate;overflow:hidden}
.smp__mail,.smp__doc,.smp__thread{position:relative;border-radius:18px;background:var(--ds-surface);box-shadow:inset 0 0 0 1px var(--ds-line),var(--ds-shadow-card);padding:20px 22px}
.smp__thread{display:grid;gap:10px}
.smp__meta{font-size:13px;color:var(--ds-text-3)}
.smp__meta span{font-weight:600;color:var(--ds-text-2);margin-right:4px}
.smp__subj{font-weight:600;font-size:16px;margin:6px 0 10px;color:var(--ds-text)}
.smp__mail p+p{margin-top:6px}
.smp__mail p,.smp__doc{font-size:14.5px;color:var(--ds-text-2)}
.smp__tw{overflow-x:auto}
.smp table{width:100%;border-collapse:collapse;font-size:14px}
.smp th{text-align:left;font-weight:600;color:var(--ds-text);padding:8px 8px 8px 0;border-bottom:1px solid var(--ds-line)}
.smp td{padding:9px 8px 9px 0;border-bottom:1px solid var(--ds-line-soft);color:var(--ds-text-2)}

/* email stack, rotating highlight (5) */
.stack{display:grid;gap:12px}
.stack .smp__mail{transition:transform .5s var(--rb-ease)}
.stack .smp__mail::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 2px var(--ds-focus),var(--ds-shadow-lift);opacity:0;transition:opacity .5s var(--rb-ease);pointer-events:none}
.stack .smp__mail.is-on{transform:translateY(-3px)}
.stack .smp__mail.is-on::after{opacity:1}
.stack .smp__subj{margin:2px 0 4px}

/* monthly report assembling (3) */
.rep{position:relative}
.rep__head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;border-bottom:1px solid var(--ds-line);padding-bottom:10px;margin-bottom:6px}
.rep__head p{font-size:12.5px;color:var(--ds-text-3)}
.rep__rows li{position:relative;display:flex;justify-content:space-between;gap:12px;padding:10px 8px;margin:0 -8px;border-radius:10px;font-size:14.5px;color:var(--ds-text)}
.rep__rows li span:last-child{color:var(--ds-text-3)}
.rep__rows li::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--ds-bg-alt);opacity:0;z-index:-1}
.rep__rows{isolation:isolate}
.rep__foot{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:14px;padding-top:12px;border-top:1px solid var(--ds-line)}
.rep__bars{display:flex;align-items:flex-end;gap:8px;height:56px}
.rep__bars i{display:block;width:16px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--ds-icon-from),var(--ds-icon-to));transform-origin:50% 100%}
.rep__bars i:nth-child(1){height:40%}.rep__bars i:nth-child(2){height:70%}.rep__bars i:nth-child(3){height:55%}.rep__bars i:nth-child(4){height:100%}
.rep__cap{font-size:12px;color:var(--ds-text-3);margin-top:6px}
.rep__ok{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--ds-text)}
.rep__ok .ck{width:30px;height:30px}
.rep__ok .ck svg{width:16px;height:16px}
html.motion .rep.is-armed .rep__rows li{opacity:0;transform:translateY(8px)}
html.motion .rep.is-armed .rep__bars i{transform:scaleY(0)}
html.motion .rep.is-armed .rep__ok .ck{opacity:0;transform:scale(.6) rotate(-20deg)}
html.motion .rep.is-play .rep__rows li{opacity:1;transform:none;transition:opacity .55s var(--rb-ease),transform .55s var(--rb-ease);transition-delay:calc(var(--i) * 260ms)}
html.motion .rep.is-play .rep__rows li::before{animation:rbFlash 1.3s var(--rb-ease) both;animation-delay:calc(var(--i) * 260ms + 120ms)}
html.motion .rep.is-play .rep__bars i{transform:none;transition:transform .8s var(--rb-ease);transition-delay:calc(1.2s + var(--i) * 110ms)}
html.motion .rep.is-play .rep__ok .ck{opacity:1;transform:none;transition:opacity .45s var(--rb-ease) 1.9s,transform .55s var(--rb-ease) 1.9s}
@keyframes rbFlash{0%{opacity:0}30%{opacity:1}100%{opacity:0}}
.i0{--i:0}.i1{--i:1}.i2{--i:2}.i3{--i:3}.i4{--i:4}

/* calendar invite pop with reminder pulse (4) */
.inv{position:relative;display:grid;grid-template-columns:64px 1fr;gap:16px;align-items:center}
.inv__day{display:grid;place-items:center;width:64px;height:68px;border-radius:16px;background:var(--ds-surface);box-shadow:inset 0 0 0 1px var(--ds-line)}
.inv__day small{font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--ds-link)}
.inv__day strong{font-size:26px;line-height:1;font-weight:600}
.inv__t{font-weight:600;font-size:16px;color:var(--ds-text)}
.inv__s{font-size:13.5px;color:var(--ds-text-3)}
.inv__rem{position:relative;display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;font-weight:600;color:var(--ds-text-2)}
.inv__dot{position:relative;width:10px;height:10px;border-radius:50%;background:var(--ds-link)}
.inv__dot::after{content:"";position:absolute;inset:-6px;border-radius:50%;box-shadow:0 0 0 2px var(--ds-link);opacity:0}
html.motion .inv-card.is-armed{opacity:0;transform:scale(.94) translateY(8px)}
html.motion .inv-card.is-play{animation:rbPop var(--rb-pop) var(--rb-ease) both}
html.motion .inv-card.is-play .inv__dot::after{animation:rbRing 1.4s var(--rb-ease) .6s 3 both}
@keyframes rbPop{0%{opacity:0;transform:scale(.94) translateY(8px)}65%{opacity:1;transform:scale(1.02)}100%{opacity:1;transform:none}}
@keyframes rbRing{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(1.6)}}

/* feature blocks */
.feats{display:grid;gap:clamp(56px,7vw,96px)}
.feat{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,5vw,72px);align-items:center}
.feat--flip .feat__txt{order:2}
.feat__txt .lede{margin-top:16px}
.feat__txt .tlink{margin-top:22px}
.feat--page{align-items:start}
.gets{display:grid;gap:12px;margin-top:22px}
.get{display:flex;gap:12px;align-items:flex-start;font-size:16.5px;color:var(--ds-text-2)}
.get strong{color:var(--ds-text);font-weight:600}
.get .ck{margin-top:2px}

/* WATCH RUN FIX tabs (8): panels share one grid cell, so the box is as tall as the tallest panel */
.tabs__list{display:inline-flex;gap:4px;padding:5px;border-radius:999px;background:var(--ds-surface-2);margin-bottom:24px}
.tabs__btn{font:inherit;font-size:15px;font-weight:600;letter-spacing:.06em;border:0;background:transparent;color:var(--ds-text-2);padding:10px 22px;border-radius:999px;cursor:pointer;transition:background-color .3s var(--rb-ease),color .3s var(--rb-ease)}
.tabs__btn[aria-selected=true]{background:var(--ds-surface);color:var(--ds-text);box-shadow:var(--ds-shadow-card)}
.tabs__panels{display:grid}
.tabs__panel{grid-area:1/1;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .45s var(--rb-ease),transform .45s var(--rb-ease),visibility 0s linear .45s}
.tabs__panel.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .45s var(--rb-ease),transform .45s var(--rb-ease),visibility 0s}
.tabs__panel .tile{min-height:0}
.tabs__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
html:not(.js) .tabs__panel{opacity:1;visibility:visible;transform:none;grid-area:auto}

/* old way vs RedBird */
.vs{border-radius:var(--r);background:var(--ds-surface);box-shadow:inset 0 0 0 1px var(--ds-line),var(--ds-shadow-card);overflow:hidden}
.vs__hd,.vs__row{display:grid;grid-template-columns:1fr 1fr}
.vs__hd p{padding:18px 28px;font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ds-text-3);border-bottom:1px solid var(--ds-line)}
.vs__hd p+p{background:var(--ds-bg-alt);color:var(--ds-text-2)}
.vs__row+.vs__row{border-top:1px solid var(--ds-line-soft)}
.vs__old,.vs__new{padding:22px 28px;font-size:16.5px}
.vs__old{color:var(--ds-text-3)}
.vs__new{display:flex;gap:12px;align-items:flex-start;background:var(--ds-bg-alt);color:var(--ds-text)}
.vs__new .ck{margin-top:2px}

/* timeline */
.tl{display:grid;gap:20px;max-width:980px;margin-inline:auto}
.tl__i{display:grid;grid-template-columns:180px minmax(0,1fr) minmax(0,320px);gap:28px;align-items:center;padding:24px;border-radius:var(--r);background:var(--ds-surface);box-shadow:inset 0 0 0 1px var(--ds-line),var(--ds-shadow-card)}
.tl__i--txt{grid-template-columns:180px minmax(0,1fr)}
.tl__when{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ds-link)}
.tl__body h3{font-size:20px;font-weight:600;letter-spacing:-.02em}
.tl__body p{margin-top:6px;color:var(--ds-text-2)}
.tl__i .smp--img{padding:36px 16px 16px}
.tl__i .smp--img img{height:260px}
.tl--short .tl__i{grid-template-columns:180px minmax(0,1fr)}
.hiw{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,56px);align-items:center}

/* services, stories, case, terms */
.svc>li{display:flex}.svc .tile{width:100%}
.story{min-height:0}
.story__tag{display:flex;align-items:center;gap:10px;margin-bottom:18px;font-size:13px;font-weight:600;color:var(--ds-text-2)}
.story h3{max-width:none}
.case{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);margin-top:36px}
.case__h{font-size:14px;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ds-text-3);margin:24px 0 10px}
.case__h:first-child{margin-top:0}
.quote{margin:28px 0 0;padding:24px 28px;border-radius:20px;background:var(--ds-bg-alt)}
.quote p{font-size:20px;line-height:1.4;letter-spacing:-.015em;color:var(--ds-text)}
.quote footer{margin-top:10px;font-size:14px;color:var(--ds-text-3)}
.terms{display:grid;gap:0;border-top:1px solid var(--ds-line)}
.term{padding:20px 0;border-bottom:1px solid var(--ds-line)}
.term dt{font-weight:600;font-size:18px}
.term dd{margin:6px 0 0;color:var(--ds-text-2)}
.lu--res{grid-template-columns:repeat(4,minmax(0,1fr))}
.lu--res .smp--img{padding:36px 12px 16px}
.lu--res .smp--img img{height:300px}
.close__band--short{padding-bottom:clamp(100px,12vw,150px)}

/* hovers (6): lift, arrow nudge, drawn underline */
.tlink::after{opacity:.35;transform:none}
.tlink::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--ds-grad-text);transform:scaleX(0);transform-origin:0 50%;transition:transform .55s var(--rb-ease)}
.tlink:hover::after{transform:none}
.tlink:hover::before,.tlink:focus-visible::before{transform:scaleX(1)}
@media (hover:hover){.tile:hover,.door:hover{transform:translateY(-3px)}}
@media (hover:none){.tile:hover,.door:hover{transform:none}}

/* FAQ open (9): the answer fades in when the user opens it */
html.motion .fq[open] .fq__a{animation:rbIn .4s var(--rb-ease) both}
@keyframes rbIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* section reveal (2): RedBird timing */
[data-reveal]{transition:opacity .7s var(--rb-ease),transform .8s var(--rb-ease);transition-delay:var(--rd,0ms)}
html.motion [data-reveal]:not(.in){opacity:0;transform:translateY(22px)}

@media (max-width:900px){
  .hero--split .wrap,.feat,.case,.hiw,.tabs__grid{grid-template-columns:1fr}
  .feat--flip .feat__txt{order:0}
  .tl__i,.tl__i--txt,.tl--short .tl__i{grid-template-columns:1fr;gap:12px}
  .lu--res{grid-template-columns:repeat(2,minmax(0,1fr))}
  .phone{width:min(320px,100%)}
}
@media (max-width:640px){
  .vs__hd{display:none}
  .vs__row{grid-template-columns:1fr}
  .vs__old{padding-bottom:8px}.vs__old::before{content:"Before: ";font-weight:600}
  .ctas .btn{flex:1 1 100%;justify-content:center}
  .tabs__list{display:flex}.tabs__btn{flex:1;padding:10px 0}
  .smp--img img{height:340px}
  .dd__p--wide{width:auto}
}
@media (prefers-reduced-motion:reduce){
  .thread .bub,.rep__rows li,.rep__bars i,.rep__ok .ck,.inv-card,.tabs__panel.is-on{opacity:1!important;transform:none!important}
  .dots{display:none}
}
/* Legal + explainer pages (privacy, terms, glossary) */
.legal-sec{padding-top:0}
.legal{max-width:760px;font-size:17px;line-height:1.7;color:var(--ds-text-2,inherit)}
.legal h2{font-size:clamp(22px,2.2vw,26px);line-height:1.25;letter-spacing:-.01em;color:var(--ds-text,inherit);margin:48px 0 14px;scroll-margin-top:calc(var(--hd) + 24px)}
.legal p+p,.legal ul+p,.legal p+ul,.legal p+ol{margin-top:14px}
.legal ul,.legal ol{padding-left:1.3em}.legal ul{list-style:disc}.legal ol{list-style:decimal}.legal li+li{margin-top:6px}
.legal aside{margin:0 0 20px;padding:24px 28px;border-radius:var(--r,20px);background:var(--ds-surface);box-shadow:inset 0 0 0 1px var(--ds-line),var(--ds-shadow-card)}
.legal aside strong{display:block;margin-bottom:6px}.legal aside>p:first-child{font-weight:600;margin-bottom:8px}
.legal__toc-h{margin-top:32px;font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ds-text-3)}
.legal__toc{margin-top:10px}
.legal__table{overflow-x:auto;margin:8px 0 24px;border-radius:var(--r,20px);box-shadow:inset 0 0 0 1px var(--ds-line);background:var(--ds-surface)}
.legal:has(.legal__table){max-width:none}
.legal table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.55;min-width:760px}
.legal th,.legal td{text-align:left;vertical-align:top;padding:14px 16px;border-bottom:1px solid var(--ds-line)}
.legal thead th{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ds-text-3)}
.legal tbody tr:last-child>*{border-bottom:0}
.legal>a.tlink{margin-right:24px;margin-top:8px}
