
/* Product pages V3 — generated by scripts/build-product-pages.py from the RedOwl Product Pages kit.
   Kit tokens are remapped onto the site theme: light editorial chapters follow the site colours and night mode;
   'ink' chapters stay dark navy in both themes. Red (#FF0000) marks only the exception and the primary CTA. */
.ro-page{
  
  --ro-paper:        #F8FAFC;   
  --ro-paper-2:      #F2F1EC;   
  --ro-ink:          #161C16;   
  --ro-graphite:     #232B22;   
  --ro-slate:        #232B22;   
  --ro-fog:          #8F948C;   
  --ro-hairline:     rgba(22, 28, 22, 0.10);
  --ro-hairline-ink: rgba(248, 250, 252, 0.12);

  
  --ro-red:          #FF0000;   
  --ro-red-deep:     #FF0000;   
  --ro-red-wash:     rgba(255, 0, 0, 0.06);
  --ro-secured:      #1F7A4D;   
  --ro-amber:        #B7791F;   

  
  --ro-font-display: 'Inter Tight', 'Inter', -apple-system, system-ui, sans-serif;
  --ro-font-text:    'Inter', -apple-system, system-ui, sans-serif;
  --ro-font-mono:    'IBM Plex Mono', ui-monospace, 'SF Mono', monospace;

  
  --ro-t-hero:   clamp(2.75rem, 1.6rem + 5.2vw, 6.5rem);  
  --ro-t-h1:     clamp(2.25rem, 1.5rem + 3.4vw, 4.75rem); 
  --ro-t-h2:     clamp(1.75rem, 1.3rem + 2vw, 3.25rem);   
  --ro-t-h3:     clamp(1.25rem, 1.1rem + 0.6vw, 1.625rem);
  --ro-t-lede:   clamp(1.125rem, 1rem + 0.5vw, 1.4375rem);
  --ro-t-body:   1.0625rem;  
  --ro-t-meta:   0.8125rem;  
  --ro-t-eyebrow:0.75rem;    
  --ro-t-figure: clamp(4rem, 2rem + 9vw, 11rem);           

  --ro-track-display: -0.035em;
  --ro-track-eyebrow:  0.18em;

  
  --ro-s1: 8px;  --ro-s2: 16px; --ro-s3: 24px; --ro-s4: 32px;
  --ro-s5: 48px; --ro-s6: 64px; --ro-s7: 96px; --ro-s8: 128px; --ro-s9: 192px;
  --ro-chapter-y: clamp(96px, 12vw, 192px);   
  --ro-measure: 34rem;                         
  --ro-container: 1200px;

  
  --ro-radius-sm: 0.125rem;
  --ro-radius:    0.125rem;
  --ro-radius-lg: 0.125rem;
  --ro-shadow-card: none;
  --ro-shadow-float: none;

  
  --ro-ease:       cubic-bezier(0.22, 1, 0.36, 1);   
  --ro-ease-inout: cubic-bezier(0.65, 0, 0.35, 1);   
  --ro-dur-1: 240ms;  
  --ro-dur-2: 600ms;  
  --ro-dur-3: 1000ms; 
  --ro-dur-4: 1600ms; 
  --ro-stagger: 80ms;
}
.ro-page .ro-eyebrow{
  font: 500 var(--ro-t-eyebrow)/1 var(--ro-font-text);
  letter-spacing: var(--ro-track-eyebrow);
  text-transform: uppercase;
  color: var(--ro-red);
}
.ro-page .ro-display{
  font-family: var(--ro-font-display);
  font-weight: 500;
  letter-spacing: var(--ro-track-display);
  line-height: 1.02;
  text-wrap: balance;
}
.ro-page .ro-lede{ font-size: var(--ro-t-lede); line-height: 1.45; color: var(--ro-slate); max-width: var(--ro-measure); text-wrap: pretty; }
.ro-page .ro-mono{ font-family: var(--ro-font-mono); font-size: 0.8125rem; letter-spacing: 0.02em; }
.ro-page .ro-figure{ font-family: var(--ro-font-display); font-weight: 300; font-size: var(--ro-t-figure); letter-spacing: -0.05em; line-height: .9; font-variant-numeric: tabular-nums; }
.ro-page .ro-num{ font-variant-numeric: tabular-nums; }
.ro-page .ro-chapter{ padding-block: var(--ro-chapter-y); background: var(--ro-paper); color: var(--ro-ink); }
.ro-page .ro-chapter--alt{ background: var(--ro-paper-2); }
.ro-page .ro-chapter--ink{ background: var(--ro-ink); color: var(--ro-paper); }
.ro-page .ro-chapter--ink .ro-lede{ color: var(--ro-fog); }
.ro-page .ro-btn{ display:inline-flex; align-items:center; gap:.5rem; height:48px; padding:0 22px; border-radius:0.125rem;
  font:500 15px/1 var(--ro-font-text); transition: background var(--ro-dur-1) var(--ro-ease), color var(--ro-dur-1) var(--ro-ease), transform var(--ro-dur-1) var(--ro-ease); }
.ro-page .ro-btn--primary{ background: var(--ro-red); color:#F5F5ED; }
.ro-page .ro-btn--primary:hover{ background: var(--ro-red-deep); }
.ro-page .ro-btn--ghost{ box-shadow: inset 0 0 0 1px currentColor; color: inherit; }
.ro-page .ro-btn:active{ transform: scale(.98); }
.ro-page .ro-link{ color: var(--ro-red); font-weight:500; }
.ro-page .ro-link::after{ content:' →'; display:inline-block; transition: transform var(--ro-dur-1) var(--ro-ease); }
.ro-page .ro-link:hover::after{ transform: translateX(3px); }
.ro-page .ro-reveal{ opacity:0; transform: translateY(24px); transition: opacity var(--ro-dur-2) var(--ro-ease), transform var(--ro-dur-2) var(--ro-ease); }
.ro-page .ro-reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){.ro-page *::before,.ro-page *::after{ animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
.ro-page .ro-reveal{ opacity:1; transform:none; }}
.ro-page svg{display:block;max-width:100%}
.ro-page em{font-style:normal;color:var(--ro-red)}
.ro-page .wrap{max-width:var(--ro-container);margin:0 auto;padding:0 24px}
.ro-page .hero{position:relative;background:var(--ro-ink);color:var(--ro-paper);overflow:hidden;min-height:calc(100vh - 104px);display:flex;align-items:center}
.ro-page .hero .tex{position:absolute;right:-420px;top:50%;transform:translateY(-50%);width:1200px;opacity:.28;pointer-events:none}
.ro-page .hero .wrap{position:relative;width:100%}
.ro-page .hero-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center;padding:120px 0 112px}
.ro-page .hero .hero-split h1{font-size:clamp(2.5rem,1.3rem + 3.6vw,4.75rem)}
.ro-page .hero-split .art{transform-origin:left center}
.ro-page .go .hero-split .art{transform:scale(1.08)}
.ro-page .hero-center{text-align:center;padding:128px 0 0}
.ro-page .hero-center .ro-lede{margin:24px auto 0}
.ro-page .hero-center .art{width:min(720px,92vw);margin:56px auto -180px}
.ro-page .hero h1{font-size:var(--ro-t-hero);margin-top:20px}
.ro-page .hero .ro-lede{margin-top:24px;color:var(--ro-fog)}
.ro-page .ctas{display:flex;gap:12px;margin-top:36px;flex-wrap:wrap}
.ro-page .hero-center .ctas{justify-content:center}
.ro-page .hero .ro-btn--ghost{color:var(--ro-paper)}
.ro-page [data-h]{opacity:0;transform:translateY(20px);transition:opacity .9s var(--ro-ease),transform .9s var(--ro-ease)}
.ro-page .go [data-h]{opacity:1;transform:none}
.ro-page .go [data-h="2"]{transition-delay:.12s}
.ro-page .go [data-h="3"]{transition-delay:.24s}
.ro-page .go [data-h="4"]{transition-delay:.36s}
.ro-page .art{opacity:0;transform:scale(.97);transition:opacity 1.6s var(--ro-ease) .3s,transform 1.6s var(--ro-ease) .3s}
.ro-page .go .art{opacity:1;transform:none}
.ro-page .art .ro-tag,.ro-page .art .ro-hand,.ro-page .art .ro-variance-band,.ro-page .art .ro-thread-red,.ro-page .art .ro-gap,.ro-page .art .ro-missing,.ro-page .art .ro-gate-held{opacity:0;transition:opacity .8s var(--ro-ease) 1.6s}
.ro-page .go .art .ro-tag,.ro-page .go .art .ro-hand,.ro-page .go .art .ro-variance-band,.ro-page .go .art .ro-thread-red,.ro-page .go .art .ro-gap,.ro-page .go .art .ro-missing,.ro-page .go .art .ro-gate-held{opacity:1}
.ro-page .art .ro-hand{animation:ro-sweep 60s linear infinite}
.ro-page .art .ro-rotor{transform-origin:600px 600px;animation:ro-sweep 240s linear infinite reverse}
@keyframes ro-sweep{to{transform:rotate(360deg)}}
.ro-page .art .ro-stream,.ro-page .art .ro-flow,.ro-page .art .ro-life-line{stroke-dasharray:1200;stroke-dashoffset:1200;transition:stroke-dashoffset 1.8s var(--ro-ease) .4s}
.ro-page .go .art .ro-stream,.ro-page .go .art .ro-flow{stroke-dashoffset:0}
.ro-page .art .ro-token{animation:ro-breathe 2.4s var(--ro-ease-inout) infinite 2.2s}
@keyframes ro-breathe{50%{transform:translateX(-6px)}}
.ro-page .statement{text-align:center}
.ro-page .statement .pre{font:500 var(--ro-t-h3)/1.3 var(--ro-font-display);color:var(--ro-slate);letter-spacing:-.01em}
.ro-page .statement .main{font-size:var(--ro-t-h1);margin:14px auto 0;max-width:16ch}
.ro-page .statement .note{margin:28px auto 0;color:var(--ro-slate);font-size:15px;max-width:40ch}
.ro-page .life{margin-top:64px}
.ro-page .life svg .ro-life-line{stroke-dasharray:1100;stroke-dashoffset:1100;transition:stroke-dashoffset 2s var(--ro-ease)}
.ro-page .life.is-in svg .ro-life-line{stroke-dashoffset:0}
.ro-page .life .ro-exception{opacity:0;transition:opacity .6s var(--ro-ease) 1.6s}
.ro-page .life.is-in .ro-exception{opacity:1}
.ro-page .head{max-width:760px}
.ro-page .head.c{margin:0 auto;text-align:center}
.ro-page .head h2{font-size:var(--ro-t-h2);margin-top:16px}
.ro-page .head p{margin-top:20px}
.ro-page .story{position:relative;background:var(--ro-ink);color:var(--ro-paper)}
.ro-page .story .track{height:calc(var(--n) * 90vh + 40vh)}
.ro-page .story .stage{position:sticky;top:104px;height:calc(100vh - 104px);display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.ro-page .story .copy h2{font-size:var(--ro-t-h2);margin:16px 0 40px}
.ro-page .story .steps{position:relative;min-height:200px}
.ro-page .story .step{position:absolute;inset:0 0 auto 0;opacity:0;transform:translateY(16px);transition:opacity .6s var(--ro-ease),transform .6s var(--ro-ease)}
.ro-page .story .step.on{opacity:1;transform:none}
.ro-page .story .step .k{font:500 var(--ro-t-meta)/1 var(--ro-font-mono);color:var(--ro-red);letter-spacing:.04em}
.ro-page .story .step h3{font:500 var(--ro-t-h3)/1.2 var(--ro-font-display);margin:12px 0 10px;letter-spacing:-.01em}
.ro-page .story .step p{color:var(--ro-fog);max-width:30rem}
.ro-page .story .dots{display:flex;gap:8px;margin-top:220px}
.ro-page .story .dots i{width:28px;height:2px;background:var(--ro-hairline-ink);transition:background .4s}
.ro-page .story .dots i.on{background:var(--ro-paper)}
.ro-page .g{position:relative;border:1px solid var(--ro-hairline-ink);border-radius:0.125rem;padding:36px;background:var(--ro-graphite)}
.ro-page .g .it{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--ro-hairline-ink);opacity:.28;transition:opacity .6s var(--ro-ease)}
.ro-page .g .it.on{opacity:1}
.ro-page .g .it .l{font:600 12px/1 var(--ro-font-text);letter-spacing:.18em;text-transform:uppercase;color:var(--ro-fog)}
.ro-page .g .it .v{font:500 22px/1 var(--ro-font-display);font-variant-numeric:tabular-nums}
.ro-page .g .it.bad .v{color:var(--ro-red)}
.ro-page .g .bar{height:6px;border-radius:0.125rem;background:var(--ro-paper);transform-origin:left;transform:scaleX(0);transition:transform 1s var(--ro-ease);margin-top:12px}
.ro-page .g .it.on .bar{transform:scaleX(var(--w,1))}
.ro-page .g .it.bad .bar{background:var(--ro-red)}
.ro-page .g .res{margin-top:28px;display:flex;align-items:baseline;gap:14px;opacity:0;transform:translateY(10px);transition:all .7s var(--ro-ease)}
.ro-page .g .res.on{opacity:1;transform:none}
.ro-page .g .res b{font:300 64px/1 var(--ro-font-display);letter-spacing:-.04em;color:var(--ro-red)}
.ro-page .g .res span{color:var(--ro-fog);font-size:14px}
.ro-page .ring{width:100%;aspect-ratio:1;max-width:460px;margin:0 auto}
.ro-page .ring circle.seg{transition:stroke .6s var(--ro-ease),stroke-opacity .6s}
.ro-page .finding{display:grid;grid-template-columns:320px 1fr;border-radius:0.125rem;overflow:hidden;background:var(--ro-card);box-shadow:none;border:1px solid var(--ro-hairline);margin-top:64px}
.ro-page .finding .list{background:var(--ro-paper-2);padding:24px;border-right:1px solid var(--ro-hairline)}
.ro-page .finding .list .t{font:600 11px/1 var(--ro-font-text);letter-spacing:.18em;color:var(--ro-slate);margin-bottom:16px}
.ro-page .finding .row{display:flex;justify-content:space-between;padding:12px 14px;border-radius:0.125rem;font-size:14px}
.ro-page .finding .row.on{background:var(--ro-card);box-shadow:none}
.ro-page .finding .row b{font-weight:500;font-variant-numeric:tabular-nums}
.ro-page .finding .main{padding:36px 40px}
.ro-page .finding .tag{display:inline-flex;gap:8px;align-items:center;font:600 11px/1 var(--ro-font-text);letter-spacing:.16em;color:var(--ro-red);background:var(--ro-red-wash);padding:8px 12px;border-radius:0.125rem}
.ro-page .finding .amt{font:400 52px/1 var(--ro-font-display);letter-spacing:-.04em;margin:18px 0 26px}
.ro-page .finding dl{display:grid;grid-template-columns:180px 1fr;border-top:1px solid var(--ro-hairline)}
.ro-page .finding dt,.ro-page .finding dd{padding:13px 0;border-bottom:1px solid var(--ro-hairline);font-size:14.5px}
.ro-page .finding dt{color:var(--ro-slate)}
.ro-page .finding dd.r{color:var(--ro-red);font-weight:500}
.ro-page .finding .tl{margin-top:22px;display:grid;gap:8px}
.ro-page .finding .tl div{display:flex;gap:16px;font-size:13.5px;color:var(--ro-slate)}
.ro-page .finding .tl span{font-family:var(--ro-font-mono);color:var(--ro-ink);width:48px}
.ro-page .finding .act{margin-top:24px;display:flex;gap:10px}
.ro-page .illus{font:500 10.5px/1 var(--ro-font-mono);letter-spacing:.12em;color:var(--ro-fog);margin-top:16px;text-align:right}
.ro-page .bento{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:64px}
.ro-page .tile{background:var(--ro-card);border:1px solid var(--ro-hairline);border-radius:0.125rem;padding:32px 28px 36px;transition:transform .5s var(--ro-ease),box-shadow .5s var(--ro-ease)}
.ro-page .tile:hover{transform:translateY(-4px);box-shadow:none}
.ro-page .tile .ic{color:var(--ro-ink);width:44px;height:44px;border-radius:0.125rem;border:1px solid var(--ro-hairline);display:grid;place-items:center}
.ro-page .tile h3{font:500 21px/1.25 var(--ro-font-display);letter-spacing:-.015em;margin:28px 0 8px}
.ro-page .tile p{color:var(--ro-slate);font-size:15.5px}
.ro-page .split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.ro-page .split h2{font-size:var(--ro-t-h2);margin-top:16px}
.ro-page .split .body{margin-top:24px;color:var(--ro-slate);font-size:var(--ro-t-lede);line-height:1.5}
.ro-page .pts{margin-top:40px;display:grid;gap:22px}
.ro-page .pts div{padding-left:20px;border-left:1px solid var(--ro-ink)}
.ro-page .pts b{display:block;font-weight:600;font-size:16px}
.ro-page .pts span{color:var(--ro-slate);font-size:15px}
.ro-page .panel{border-radius:0.125rem;background:var(--ro-ink);color:var(--ro-paper);padding:40px;min-height:440px;position:relative;overflow:hidden;box-shadow:none}
.ro-page .panel .tex{position:absolute;width:900px;right:-420px;bottom:-480px;opacity:.3}
.ro-page .clause{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:20px;font-size:13.5px}
.ro-page .clause .doc{background:var(--ro-paper);color:var(--ro-ink);border-radius:0.125rem;padding:20px;line-height:1.7}
.ro-page .clause .doc mark{background:rgba(255, 0, 0,.12);color:inherit;border-bottom:1.5px solid var(--ro-red)}
.ro-page .clause .int{border:1px solid var(--ro-hairline-ink);border-radius:0.125rem;padding:20px}
.ro-page .clause .int .t{font:600 10.5px/1 var(--ro-font-text);letter-spacing:.18em;color:var(--ro-fog)}
.ro-page .clause .int p{margin:10px 0 16px;font-size:15px}
.ro-page .conf{height:4px;background:var(--ro-hairline-ink);border-radius:0.125rem}
.ro-page .conf i{display:block;height:100%;width:94%;background:var(--ro-paper);border-radius:0.125rem}
.ro-page .cardviz{position:relative;width:340px;height:214px;border-radius:0.125rem;background:linear-gradient(140deg,#232B22,#161C16);border:1px solid var(--ro-hairline-ink);margin:24px auto 0;padding:24px;box-shadow:none;transform:rotate(-6deg)}
.ro-page .cardviz .chip{width:40px;height:30px;border-radius:0.125rem;border:1px solid rgba(248, 250, 252,.35)}
.ro-page .cardviz .no{font:400 17px/1 var(--ro-font-mono);letter-spacing:.14em;margin-top:56px;color:var(--ro-fog)}
.ro-page .cardviz .n{position:absolute;right:24px;top:24px;font:italic 700 18px var(--ro-font-display);color:var(--ro-red)}
.ro-page .intent{position:relative;margin:36px auto 0;max-width:380px;border:1px solid var(--ro-hairline-ink);border-radius:0.125rem;padding:16px 18px;font-size:13.5px;display:grid;gap:8px}
.ro-page .intent div{display:flex;justify-content:space-between}
.ro-page .intent span{color:var(--ro-fog)}
.ro-page .owners{position:relative;display:grid;gap:12px}
.ro-page .owners div{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--ro-hairline-ink);border-radius:0.125rem;padding:16px 18px}
.ro-page .owners b{font-weight:500}
.ro-page .owners span{font:12px var(--ro-font-mono);color:var(--ro-fog)}
.ro-page .memory{position:relative;display:grid;gap:10px;font-size:13.5px}
.ro-page .memory div{display:grid;grid-template-columns:70px 1fr auto;gap:12px;border-bottom:1px solid var(--ro-hairline-ink);padding:12px 0}
.ro-page .memory span{font-family:var(--ro-font-mono);color:var(--ro-fog)}
.ro-page .memory i{font-style:normal;color:var(--ro-fog)}
.ro-page .outs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ro-hairline-ink);border:1px solid var(--ro-hairline-ink);border-radius:0.125rem;overflow:hidden;margin-top:64px}
.ro-page .outs div{background:var(--ro-ink);padding:36px 28px}
.ro-page .outs b{font:500 28px/1 var(--ro-font-display);letter-spacing:-.02em}
.ro-page .outs p{color:var(--ro-fog);font-size:15px;margin-top:12px}
.ro-page .outs .m{font:12px var(--ro-font-mono);color:var(--ro-red);margin-bottom:22px}
.ro-page .specs{margin-top:56px;border-top:1px solid var(--ro-ink)}
.ro-page .specs div{display:grid;grid-template-columns:260px 1fr;padding:22px 0;border-bottom:1px solid var(--ro-hairline)}
.ro-page .specs dt{font:600 12px/1.6 var(--ro-font-text);letter-spacing:.16em;text-transform:uppercase}
.ro-page .specs dd{color:var(--ro-slate);font-size:16.5px}
.ro-page .proof{text-align:center}
.ro-page .proof .ro-figure{color:var(--ro-paper)}
.ro-page .proof .ro-figure em{color:var(--ro-red)}
.ro-page .proof .row3{display:grid;grid-template-columns:repeat(3,1fr);max-width:820px;margin:64px auto 0;border-top:1px solid var(--ro-hairline-ink)}
.ro-page .proof .row3 div{padding:28px 0}
.ro-page .proof .row3 b{font:300 44px/1 var(--ro-font-display);letter-spacing:-.03em;display:block}
.ro-page .proof .row3 div>span{color:var(--ro-fog);font-size:14px}
.ro-page .fine{font-size:12.5px;color:var(--ro-fog);max-width:56ch;margin:36px auto 0}
.ro-page .fam{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:56px}
.ro-page .fam a{background:var(--ro-ink);color:var(--ro-paper);border-radius:0.125rem;overflow:hidden;transition:transform .5s var(--ro-ease)}
.ro-page .fam a:hover{transform:translateY(-6px)}
.ro-page .fam .th{height:220px;display:grid;place-items:center;padding:18px;border-bottom:1px solid var(--ro-hairline-ink)}
.ro-page .fam .th svg{max-height:100%}
.ro-page .fam .tx{padding:24px 26px 28px}
.ro-page .fam .tx small{font:600 11px/1 var(--ro-font-text);letter-spacing:.18em;color:var(--ro-red);text-transform:uppercase}
.ro-page .fam .tx h3{font:500 22px/1.25 var(--ro-font-display);margin:12px 0 14px;letter-spacing:-.015em}
.ro-page .faq{max-width:820px;margin:48px auto 0}
.ro-page .faq details{border-bottom:1px solid var(--ro-hairline);padding:24px 0}
.ro-page .faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;font:500 20px/1.35 var(--ro-font-display);letter-spacing:-.01em}
.ro-page .faq summary::after{content:'+';font-weight:300;font-size:26px;transition:transform .4s var(--ro-ease)}
.ro-page .faq details[open] summary::after{transform:rotate(45deg)}
.ro-page .faq p{color:var(--ro-slate);margin-top:14px;max-width:62ch}
.ro-page .final{text-align:center;position:relative;overflow:hidden}
.ro-page .final .tex{position:absolute;left:50%;top:50%;width:1300px;transform:translate(-50%,-50%);opacity:.22}
.ro-page .final h2{position:relative;font-size:var(--ro-t-h1);max-width:14ch;margin:16px auto 0}
.ro-page .final .ctas{justify-content:center;position:relative}
.ro-page .final .ro-lede{position:relative;margin:24px auto 0}
.ro-page .legal{font-size:12px;color:var(--ro-slate);max-width:80ch;margin:0 auto;padding:32px 24px;text-align:center}
@media (max-width: 900px){.ro-page .hero-split,.ro-page .split,.ro-page .story .stage{grid-template-columns:1fr;gap:40px}
.ro-page .hero-split{padding:64px 0}
.ro-page .hero-center .art{margin-bottom:-90px}
.ro-page .story .track{height:auto}
.ro-page .story .stage{position:relative;top:0;height:auto;padding:96px 0}
.ro-page .story .step{position:relative;opacity:1;transform:none;margin-bottom:28px}
.ro-page .story .steps{min-height:0}
.ro-page .story .dots{display:none}
.ro-page .g .it{opacity:1}
.ro-page .g .it .bar{transform:scaleX(var(--w,1))}
.ro-page .g .res{opacity:1;transform:none}
.ro-page .finding{grid-template-columns:1fr}
.ro-page .finding .list{display:none}
.ro-page .finding .main{padding:28px 22px}
.ro-page .finding dl{grid-template-columns:1fr}
.ro-page .finding dt{padding-bottom:0;border:0}
.ro-page .bento,.ro-page .fam{grid-template-columns:1fr}
.ro-page .outs{grid-template-columns:1fr 1fr}
.ro-page .specs div{grid-template-columns:1fr;gap:6px}
.ro-page .proof .row3{grid-template-columns:1fr}
.ro-page .ring .seg{stroke-opacity:.9!important}
.ro-page .clause{grid-template-columns:1fr}
.ro-page .panel{padding:24px;min-height:0}
.ro-page .cardviz{width:280px;height:176px}}

.ro-page{--ro-red:var(--brand-crimson);--ro-red-deep:var(--brand-crimson-hover);--ro-red-wash:var(--brand-rose-subtle);
  --ro-secured:var(--color-success);--ro-amber:var(--color-warning);
  --ro-paper:var(--bg-main);--ro-paper-2:var(--bg-surface-elevated);--ro-ink:var(--text-primary);--ro-graphite:var(--text-primary);
  --ro-slate:var(--text-secondary);--ro-fog:var(--text-muted);--ro-hairline:var(--border-subtle);--ro-hairline-ink:var(--border-subtle);
  --ro-card:var(--bg-surface);--ro-navy:var(--bg-surface-elevated);
  --ro-shadow-card:none;--ro-shadow-float:none;
  --ro-font-display:var(--font-sans);--ro-font-text:var(--font-sans);--ro-font-mono:var(--font-mono);
  position:relative;z-index:1;overflow-x:clip;color:var(--text-primary);font-size:1.0625rem;line-height:1.55}
[data-theme="dark"] .ro-page{--ro-paper-2:var(--bg-surface)}
/* former 'ink' chapters now use the home page's surface palette (light, or dark in night mode) */
.ro-page .hero,.ro-page .story,.ro-page .ro-chapter--ink,.ro-page .panel,.ro-page .fam a{--ro-ink:var(--bg-surface-elevated);--ro-graphite:var(--bg-surface-inset);--ro-paper:var(--text-primary);--ro-paper-2:var(--bg-surface-inset);
  --ro-slate:var(--text-secondary);--ro-fog:var(--text-muted);--ro-hairline:var(--border-subtle);--ro-hairline-ink:var(--border-subtle)}
.ro-page .hero,.ro-page .story,.ro-page .ro-chapter--ink{background:var(--bg-surface-elevated)!important;color:var(--text-primary)}
.ro-page .hero{background:var(--hero-glow-1),var(--bg-main)!important}
.ro-page .panel,.ro-page .fam a{background:var(--bg-surface)!important;color:var(--text-primary);border:1px solid var(--border-subtle);box-shadow:none}
.ro-page .clause .doc{background:#F5F5ED;color:#161C16}
.ro-page h1,.ro-page h2,.ro-page h3,.ro-page b,.ro-page strong{color:inherit}
.ro-page .clause .doc b{color:#161C16}
.ro-page *{box-sizing:border-box}
.ro-page .wrap{max-width:1200px;margin-inline:auto;padding-inline:24px!important;width:100%}
.ro-page .life svg > rect:first-child{fill:transparent}
.ro-page h1,.ro-page h2,.ro-page h3,.ro-page p,.ro-page dl,.ro-page dd{margin:0}
.ro-page a{color:inherit;text-decoration:none}
.ro-page img,.ro-page svg{display:block;max-width:100%}
.ro-page .ro-display{font-weight:700;letter-spacing:-.035em}
.ro-page .ro-btn{font-weight:600;text-decoration:none}
.ro-page .ro-btn--primary,.ro-page .ro-btn--primary:hover{color:#fff}
.ro-page :focus-visible{outline:2px solid var(--ro-red);outline-offset:2px;border-radius:0.125rem}
/* kit SVG colours follow the chapter they sit in */
.ro-page svg [fill="#161C16"]{fill:var(--ro-ink)}.ro-page svg [stroke="#161C16"]{stroke:var(--ro-ink)}
.ro-page svg [fill="#F5F5ED"]{fill:var(--ro-paper)}.ro-page svg [stroke="#F5F5ED"]{stroke:var(--ro-paper)}
.ro-page svg [fill="#232B22"]{fill:var(--ro-slate)}.ro-page svg [stroke="#232B22"]{stroke:var(--ro-slate)}
.ro-page svg [fill="#8F948C"]{fill:var(--ro-fog)}.ro-page svg [stroke="#8F948C"]{stroke:var(--ro-fog)}
.ro-page svg [fill="#232B22"]{fill:var(--ro-graphite)}
.ro-page .hero-split .art{transform-origin:center;scale:1.12}
.ro-page .ro-record [stroke-opacity="0.22"]{stroke-opacity:.6}.ro-page .ro-record [fill="#8F948C"]{fill:var(--ro-slate)}
.ro-page svg text{font-family:var(--font-sans)}
/* local product nav, under the site header */
.ro-page .lnav{position:sticky;top:var(--pv-top,72px);z-index:40;height:52px;background:color-mix(in srgb,var(--bg-main) 78%,transparent);
  backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid var(--border-subtle)}
.ro-page .lnav .wrap{display:flex;align-items:center;height:100%;gap:24px}
.ro-page .lnav .pname{font-weight:700;font-size:1.1rem;letter-spacing:-.02em;flex:1}
.ro-page .lnav-links{display:flex;gap:24px}
.ro-page .lnav a.sub{font-size:.8rem;color:var(--text-muted);transition:color .24s}.ro-page .lnav a.sub:hover,.ro-page .lnav a.sub.on{color:var(--text-primary)}
.ro-page .lnav a.sub.on{font-weight:600}
.ro-page .lnav .mini{height:30px;padding:0 14px;font-size:.78rem}
.ro-page .hero{min-height:calc(100vh - var(--pv-top,72px) - 52px)}
@media (min-width:901px){.ro-page .story .stage{top:calc(var(--pv-top,72px) + 52px);height:calc(100vh - var(--pv-top,72px) - 52px)}}
.ro-page .hero .tex img,.ro-page .panel .tex img,.ro-page .final .tex img{width:100%;height:auto}
.ro-page .tex{pointer-events:none}
.ro-page .story .step{transition:none!important;transform:none!important}
.ro-page .final .wrap{position:relative;z-index:1}
/* step tabs inside pinned stories */
.ro-page .stabs{display:flex;flex-wrap:wrap;gap:6px;margin:28px 0 24px;padding:4px;border:1px solid var(--border-subtle);border-radius:0.125rem;width:max-content;max-width:100%;background:var(--bg-surface)}
.ro-page .stabs button{font:600 13px var(--font-sans);padding:8px 16px;border-radius:0.125rem;border:0;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .25s,color .25s}
.ro-page .stabs button:hover{color:var(--text-primary)}
.ro-page .stabs button.on{background:var(--text-primary);color:var(--bg-main)}
@media (max-width:900px){.ro-page .stabs{display:none}}
/* RedOwl stop-and-flag overlay (revenue story, final step) */
.ro-page .g{position:relative}
.ro-page .rflag{position:absolute;inset:-1px;border-radius:inherit;padding:28px 32px;display:flex;flex-direction:column;gap:18px;justify-content:center;
  background:var(--bg-surface);border:1px solid rgba(255, 0, 0,.45);box-shadow:none;
  opacity:0;transform:scale(.97);pointer-events:none;transition:opacity .5s var(--ro-ease),transform .5s var(--ro-ease);overflow:hidden}
.ro-page .rflag.on{opacity:1;transform:none;pointer-events:auto}
.ro-page .rscan{position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--ro-red),transparent);opacity:0}
.ro-page .rflag.on .rscan{animation:roScan 1.4s var(--ro-ease-inout) .1s both}
@keyframes roScan{0%{top:0;opacity:0}15%{opacity:1}85%{opacity:1}100%{top:100%;opacity:0}}
.ro-page .rhead{display:flex;align-items:center;gap:10px;font-weight:700}
.ro-page .rhead img{width:22px;height:22px;object-fit:contain}
.ro-page .rhead em{margin-left:auto;font-style:normal;font:600 11px var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ro-red);opacity:0}
.ro-page .rflag.on .rhead em{animation:roFade .4s ease 1.5s both,roBlink 1.2s ease 1.9s 2}
.ro-page .rpay{position:relative;display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border:1px solid var(--border-subtle);border-radius:0.125rem;background:var(--bg-main)}
.ro-page .rpay .l,.ro-page .rroute .l{display:block;font:600 11px var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}
.ro-page .rpay b{font-size:1.6rem;font-weight:600;font-variant-numeric:tabular-nums;transition:color .4s 1.2s}
.ro-page .rflag.on .rpay b{color:var(--text-muted);text-decoration:line-through;text-decoration-color:var(--ro-red)}
.ro-page .stamp{font:800 13px var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ro-red);border:2px solid var(--ro-red);border-radius:0.125rem;padding:6px 12px;opacity:0;transform:rotate(-8deg) scale(1.8)}
.ro-page .rflag.on .stamp{animation:roStamp .35s cubic-bezier(.2,1.4,.4,1) 1s both}
@keyframes roStamp{to{opacity:1;transform:rotate(-8deg) scale(1)}}
.ro-page .rroute{display:grid;gap:4px;padding:16px 20px;border-radius:0.125rem;background:var(--brand-rose-subtle);opacity:0}
.ro-page .rroute b{font-size:1.1rem}
.ro-page .rflag.on .rroute{animation:roFade .5s ease 1.9s both}
@keyframes roFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes roBlink{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.ro-page .rflag *{animation:none!important;opacity:1!important;transform:none!important}.ro-page .stamp{transform:rotate(-8deg)!important}}
/* story steps are tab/auto driven, not scroll-pinned, so scrolling passes straight to the next chapter */
.ro-page .story .track{height:auto!important}
.ro-page .story .stage{position:relative!important;top:0!important;height:auto!important;padding:112px 0 96px}
.ro-page .story .dots{margin-top:48px}
/* platform layers */
.ro-page .layers{margin-top:56px;display:grid;gap:12px}
.ro-page .ly{display:grid;grid-template-columns:56px 200px 150px 1fr 44px;align-items:center;gap:20px;padding:22px 28px;border:1px solid var(--border-subtle);border-radius:0.125rem;background:var(--bg-surface);
  opacity:0;transform:translateY(18px);transition:opacity .6s var(--ro-ease) var(--d),transform .6s var(--ro-ease) var(--d)}
.ro-page .layers.is-in .ly{opacity:1;transform:none}
.ro-page .ly .n{font:500 13px var(--font-mono);color:var(--text-muted)}.ro-page .ly b{font-size:1.9rem;font-weight:700;letter-spacing:-.03em}
.ro-page .ly .lb{font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted)}.ro-page .ly p{color:var(--text-secondary);font-size:15px}
.ro-page .ly .ic{color:var(--text-muted);justify-self:end}
.ro-page .ly.hot{border-color:rgba(255, 0, 0,.55);background:var(--bg-surface)}.ro-page .ly.hot .lb,.ro-page .ly.hot .ic{color:var(--ro-red)}
@media (max-width:900px){.ro-page .lnav-links{display:none}.ro-page .ly{grid-template-columns:40px 1fr auto;padding:18px}.ro-page .ly .lb{grid-column:2}.ro-page .ly p{grid-column:1/-1}.ro-page .ly .ic{grid-row:1;grid-column:3}}
@media (prefers-reduced-motion:reduce){.ro-page .ly,.ro-page .ro-reveal,.ro-page [data-h],.ro-page .art{opacity:1!important;transform:none!important}
  .ro-page .art *{animation:none!important;transition:none!important;opacity:1!important;stroke-dashoffset:0!important}}

.ro-platform .hero{min-height:0}.ro-platform .hero-center{padding-top:152px}

/* How RedOwl Works: RedOwl Model as its own section; alternating white / light grey sections */
.ro-platform #redowl-model-hiw{margin-top:96px;padding:96px 0}
.ro-platform #redowl-model-hiw .process-step-item{background:var(--bg-main)}
.ro-platform #redowl-model-hiw .section-chip{background:none;border:0;padding:0;box-shadow:none}
.ro-platform > section:nth-of-type(even):not(.final){background:var(--bg-main)!important}
.ro-platform > section:nth-of-type(odd):not(.final){background:var(--bg-surface-elevated)!important}
.ro-platform > section.hero.hero{background:var(--bg-main)!important}
.ro-platform #redowl-model-hiw{background:var(--bg-surface-elevated)!important;padding-bottom:0!important}
.ro-platform > section.story{background:var(--bg-surface-elevated)!important}
.ro-platform > section.ro-chapter{padding-top:76.8px!important;padding-bottom:76.8px!important}
.ro-platform #redowl-model-hiw{padding-top:76.8px!important}
.ro-platform > section.story{padding:0!important}
.ro-platform > section.story .stage{padding-top:76.8px!important;padding-bottom:76.8px!important}
.ro-platform > section.story > *{min-height:0!important}
.ro-page > section.ro-chapter{padding-top:76.8px!important;padding-bottom:76.8px!important}
.ro-page .hero{min-height:0!important}.ro-page .hero > .wrap,.ro-page .hero .hero-grid{padding-top:96px;padding-bottom:76.8px}
.ro-page .statement{max-width:860px;margin:0 auto;text-align:center}
.ro-page .statement .main{font-size:clamp(28px,3.4vw,44px)!important;line-height:1.15}
.ro-page .statement .pre{font-size:18px!important}
.ro-page > section.ro-chapter.ro-stat{background:var(--bg-surface-elevated)!important}
.ro-page > section.ro-chapter.ro-faq{background:var(--bg-main)!important}
.ro-page:not(.ro-platform) > section.ro-bento{background:var(--bg-main)!important}
.ro-page:not(.ro-platform) > section.story{background:var(--bg-surface-elevated)!important}
.ro-page > section.story{padding:0!important}
.ro-page > section.story .stage{padding-top:76.8px!important;padding-bottom:76.8px!important}
html:not([data-theme="dark"]) .ro-page .hero .ro-gate text{fill:#161C16!important}
html:not([data-theme="dark"]) .ro-page .hero svg text:not([fill="#FF0000"]):not([fill="#fff"]){fill:#161C16!important;fill-opacity:1!important}
/* Light mode: sections alternate white / light grey; boxes take the opposite colour */
html:not([data-theme="dark"]) .ro-page:is(div,main,body,section,article) > section:is(section){background:#FFFFFF!important}
html:not([data-theme="dark"]) .ro-page.ro-page > section.ro-faq.ro-faq{background:#FFFFFF!important}
html:not([data-theme="dark"]) .ro-page.ro-page:not(.ro-platform) > section.ro-bento.ro-bento{background:#FFFFFF!important}
html:not([data-theme="dark"]) .ro-page > section:is(.ro-stat,.story,.ro-chapter--alt,.final){background:#F8FAFC!important}
html:not([data-theme="dark"]) .ro-page > section :is(.tile,.panel,.g,.process-step-item,.rflag,.rpay){background:#F8FAFC!important}
html:not([data-theme="dark"]) .ro-page > section:is(.ro-stat,.story,.ro-chapter--alt,.final) :is(.tile,.panel,.g,.process-step-item,.rflag,.rpay,.specs,a[class=""],a:not([class])){background:#FFFFFF!important}
html:not([data-theme="dark"]) body main .ro-page.ro-platform > section:is(:nth-of-type(1),:nth-of-type(4),:nth-of-type(6),:nth-of-type(8)){background:#FFFFFF!important}
html:not([data-theme="dark"]) body main .ro-page.ro-platform > section:is(:nth-of-type(2),:nth-of-type(3),:nth-of-type(5),:nth-of-type(7)){background:#F8FAFC!important}
html:not([data-theme="dark"]) body main .ro-page.ro-platform > section:is(:nth-of-type(1),:nth-of-type(4),:nth-of-type(6),:nth-of-type(8)) :is(.tile,.panel,.g,.process-step-item,.specs,.outs > div){background:#F8FAFC!important}
html:not([data-theme="dark"]) body main .ro-page.ro-platform > section:is(:nth-of-type(2),:nth-of-type(3),:nth-of-type(5),:nth-of-type(7)) :is(.tile,.panel,.g,.process-step-item,.specs,.outs > div){background:#FFFFFF!important}
