/* Reef: palette, roles and grounds from the Reef brand sheet; builders on reef black, Enterprise and secondary pages on paper. */
:root{
--r-paper:#F6EEE2;--r-panel:#EEDCA8;--r-raise:#EFE5D3;--r-black:#1E1D1B;--r-bpanel:#292825;--r-braise:#262522;
--r-teal:#007474;--r-lit:#00A7A6;--r-pink:#F76E71;--r-red:#F92C4B;--r-actink:#121110;--r-pass:#00AA5A;--r-passink:#00733D;--r-alarm:#E75100;
--r-pat-scales:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Crect width='14' height='14' fill='%23007474'/%3E%3Cg fill='%2300A7A6' stroke='%23007474' stroke-width='1.5'%3E%3Ccircle cx='0' cy='0' r='7'/%3E%3Ccircle cx='14' cy='0' r='7'/%3E%3Ccircle cx='7' cy='7' r='7'/%3E%3Ccircle cx='0' cy='14' r='7'/%3E%3Ccircle cx='14' cy='14' r='7'/%3E%3C/g%3E%3C/svg%3E");
--g-bg:#F6EEE2;--g-panel:#EEDCA8;--g-raise:#EFE5D3;--g-body:#1E1D1B;--g-hi:#121110;--g-mute:#5E574C;--g-display:#007474;--g-lit:#007474;--g-fact:#00733D;--g-line:rgba(30,29,27,.16);--g-line2:rgba(30,29,27,.32);--g-tint:rgba(30,29,27,.06);
--cream:var(--g-bg);--ink:var(--g-body);--muted:var(--g-mute);--line:var(--g-line);--paper:var(--g-raise);--navy:var(--g-display);--coral:var(--r-pink);--pink:var(--r-pink);
--tp-ink:var(--g-body);--tp-cream:var(--g-bg);--tp-line:var(--g-line);--tp-muted:var(--g-mute);--tp-coral:var(--r-pink);
--r-radius:6px;--r-tag:3px}
/* house rule: emphasis is weight, never italics */
em,i,cite,var,dfn,address{font-style:normal}
em{font-weight:600}

.performance-overview,.references,#tide-1,#applications,.closing,.closing-footer,.secondary-footer,.rt-extra-footer,.future-section,.tp-standalone,.review-bar{
--g-bg:#1E1D1B;--g-panel:#292825;--g-raise:#262522;--g-body:#EEDCA8;--g-hi:#F6EEE2;--g-mute:#A89F8A;--g-display:#F76E71;--g-lit:#00A7A6;--g-fact:#00AA5A;--g-line:rgba(238,220,168,.14);--g-line2:rgba(238,220,168,.3);--g-tint:rgba(238,220,168,.07);
--cream:var(--g-bg);--ink:var(--g-body);--muted:var(--g-mute);--line:var(--g-line);--paper:var(--g-raise);--navy:var(--g-display);
--tp-ink:var(--g-body);--tp-cream:var(--g-bg);--tp-line:var(--g-line);--tp-muted:var(--g-mute);
background:var(--g-bg);color:var(--g-body);color-scheme:dark}
.performance-overview,.references{box-shadow:0 0 0 100vmax var(--g-bg);clip-path:inset(0 -100vmax)}

html,body,.secondary{background:var(--r-paper);color:var(--g-body)}
.tp-standalone-main{background:transparent}
.enterprise,#evidence{background:var(--r-paper);color:var(--g-body)}
.tp-standalone{background:var(--r-black)}

h1,h2,.section-heading h2,.closing h2,.secondary-hero h1,.secondary h1,.careers-hero h1,.job-hero h1,.access-story h1,.resource-hero h1,.tp-standalone-title h1,.blog-index .blog-hero h1,.docs-layout .intro h1,.future-section h2{color:var(--g-display)}
.hero h1{color:var(--g-display)}
.hero h1 span,.closing h2 span,.access-story h1 span{color:var(--g-body)}
h3,h4,.performance-case h3,.evidence-grid h3,.mdx-h2,.mdx-h3,.article-prose h2,.article-prose h3,.blog-index .journal-row h2{color:var(--g-body)}
.eyebrow,.tp-kicker{color:var(--g-mute)}
.section-heading>p,section .section-heading>p:not(.eyebrow),.hero-body,.closing-actions>p,.closing .closing-actions>p{color:var(--g-body)}
p,li{color:inherit}

.section-heading>p:not(.eyebrow),.example-strip>div>p,.feedback-line p,#application-panel>p:not(.eyebrow),.enterprise-copy>p,.runtime-reinforcement p,.secondary-hero>p:not(.eyebrow),.secondary-hero>div>p:not(.eyebrow),.article-description,.story-grid p,.person p:not(.eyebrow),.research-item p,.blog-index .journal-row p,.article-prose p,.article-prose li,.legal-prose p,.legal-prose li{color:var(--g-body)}
.scenario-result p,.application-kpi>span,.screen-top .status-pill,.source-row>span,.reinforcement-row>span,.reinforcement-row p,.evidence-grid article>p:not(.eyebrow),.journal-label time,.blog-index .journal-label time,.blog-index .journal-author,.article-toc a,.legal-toc a,.tp-standalone-title>p:last-child,.footer small,.footer-links>span,.job-number,.enterprise-guide article>span{color:var(--g-mute)}

.performance-number,.big-metric,#application-metric .kpi-number,.application-tabs button[role=tab]>span.app-fact,.application-tabs button[role=tab][aria-selected=true]>span.app-fact,.feature-stat,.research-number,.research-number b,.fact-line b{color:var(--g-fact)}
.performance-number small,.big-metric span{color:var(--g-body)}

.performance-case,.performance-case:nth-child(even){background:var(--g-panel);border:0;border-top:4px solid var(--g-fact);border-radius:0 0 var(--r-radius) var(--r-radius)}
.evidence-grid article{border-top:4px solid var(--g-fact)}
#tide-1{position:relative;border-top:14px solid transparent;border-image:var(--r-pat-scales) 0 0 0 0/14px 0 0 0 repeat;border-image-slice:14 0 0 0;border-image-source:var(--r-pat-scales);border-image-repeat:round}

.site-header,.tp-site-header,.docs-header,.rt-menu-panel{--g-bg:#F6EEE2;--g-panel:#EEDCA8;--g-raise:#EFE5D3;--g-body:#1E1D1B;--g-hi:#121110;--g-mute:#5E574C;--g-display:#007474;--g-lit:#007474;--g-fact:#00733D;--g-line:rgba(30,29,27,.16);--g-line2:rgba(30,29,27,.32);--g-tint:rgba(30,29,27,.06);--cream:var(--g-bg);--ink:var(--g-body);--muted:var(--g-mute);--line:var(--g-line);color-scheme:light}
.site-header,header.site-header,.tp-site-header,.docs-header{background:#F6EEE2;border-bottom:1px solid var(--g-line);color:var(--g-body)}
.site-header .main-nav>a:not(.button),.site-header .header nav>a:not(.button):not(.secondary-cta),.rt-resource-menu summary,.tp-site-header nav>a:not(.tp-access),.docs-header nav>a:not(.primary-link){color:var(--g-mute);font-weight:500;text-decoration:none}
.site-header .main-nav>a:not(.button):hover,.site-header .header nav>a:not(.button):not(.secondary-cta):hover,.rt-resource-menu summary:hover,.rt-resource-menu[open]>summary,.tp-site-header nav>a:not(.tp-access):hover,.docs-header nav>a:not(.primary-link):hover{color:var(--g-body)}
.site-header .main-nav>a[aria-current],.site-header .header nav>a[aria-current]{color:var(--g-body)}
.site-header .main-nav .button,.site-header .header>.button,.tp-site-header .tp-access,.docs-header .primary-link{background:var(--r-pink);color:var(--r-actink)!important;box-shadow:none;border:0}
.site-header .main-nav .button:hover,.site-header .header>.button:hover,.tp-site-header .tp-access:hover,.docs-header .primary-link:hover{background:var(--r-pink);color:var(--r-actink)!important;box-shadow:inset 0 0 0 3px var(--r-red)}
.rt-resource-links{background:var(--r-paper);color:var(--g-body);border:1px solid var(--g-line);border-radius:var(--r-radius);box-shadow:0 10px 30px -12px rgba(30,29,27,.28)}
.rt-resource-links a{color:var(--g-body);border-radius:var(--r-tag)}
.rt-resource-links a:hover,.rt-resource-links a:focus-visible,.rt-resource-links a[aria-current=page]{background:var(--g-tint)}
.rt-resource-subnav{border-color:var(--g-line);color:var(--g-body)}
.rt-menu-panel{background:var(--r-paper);border-bottom-color:var(--g-line);box-shadow:0 16px 32px rgba(30,29,27,.12)}
.rt-menu-link{border-bottom-color:var(--g-line);color:var(--g-body)}
.rt-menu-group{color:var(--g-mute)}
.rt-menu-button{border-color:var(--g-line2);color:var(--g-body);border-radius:4px}
.rt-menu-open .rt-menu-button{background:var(--g-body);color:var(--r-paper)}
.rt-menu-cta{background:var(--r-pink);color:var(--r-actink)}

.hero .hero-actions .button.ink,.closing-actions .button.coral,.job-hero-bottom .button.coral,.job-bottom-apply .button.coral,.access-panel .button.coral,.future-section .primary-link,main .button.coral,.tide-playground .tp-bottom .tp-access,.open-application .button.coral,.newsletter-form .newsletter-submit{background:var(--r-pink);color:var(--r-actink)!important;box-shadow:none;border:0}
.hero .hero-actions .button.ink:hover,.closing-actions .button.coral:hover,.closing .closing-actions .button.coral:hover,.job-hero-bottom .button.coral:hover,.job-bottom-apply .button.coral:hover,.access-panel .button.coral:hover,.future-section .primary-link:hover,main .button.coral:hover,.tide-playground .tp-bottom .tp-access:hover,.open-application .button.coral:hover,.newsletter-form .newsletter-submit:hover{background:var(--r-pink);color:var(--r-actink)!important;box-shadow:inset 0 0 0 3px var(--r-red)}
main .button.ink:not(.small),.diff-actions .button,.tide-playground .tp-run,.tide-playground .tp-feedback-button:not(:disabled),.learning-button,.closing .button.ink,.on-ink .button.ink{background:transparent;color:var(--g-body)!important;box-shadow:inset 0 0 0 1.5px var(--g-body);border:0}
main .button.ink:not(.small):hover,.diff-actions .button:hover,.tide-playground .tp-run:hover,.tide-playground .tp-feedback-button:not(:disabled):hover,.learning-button:hover,.closing .button.ink:hover,.on-ink .button.ink:hover{background:var(--g-tint);color:var(--g-body)!important;box-shadow:inset 0 0 0 2px var(--g-lit)}
.hero .hero-actions .button.ink{background:var(--r-pink)}
.status-pill{border-radius:var(--r-tag);border-color:var(--g-line2);color:var(--g-body)}
.text-link,.contact-link,.read-link,.all-articles,.inline-link{color:var(--g-body);text-decoration-color:var(--g-lit)}
.text-link:hover,.contact-link:hover{color:var(--g-body)}

:focus-visible{outline:2px solid var(--g-lit);outline-offset:3px}
*:focus-visible{outline-color:var(--g-lit)!important;box-shadow:none}

.tp-tabs button[role=tab],.application-tabs button[role=tab],.enterprise-tabs button[role=tab]{color:var(--g-body);border-left-color:var(--g-line2)}
.tp-tabs button[role=tab]>span,.application-tabs button[role=tab]>span,.enterprise-tabs button[role=tab]>span{color:var(--g-mute)}
.tp-tabs button[role=tab]:hover,.application-tabs button[role=tab]:hover,.enterprise-tabs button[role=tab]:hover{border-left-color:var(--g-mute)}
.tp-tabs button[role=tab][aria-selected=true],.application-tabs button[role=tab][aria-selected=true],.enterprise-tabs button[role=tab][aria-selected=true]{border-left-color:var(--g-lit);background:var(--g-panel);color:var(--g-body)}
.tp-tabs button[role=tab][aria-selected=true]>span,.application-tabs button[role=tab][aria-selected=true]>span:not(.app-fact),.enterprise-tabs button[role=tab][aria-selected=true]>span{color:var(--g-body)}
@media(min-width:1101px){
#enterprise .enterprise-tabs[role=tablist]{border-bottom-color:var(--g-line2)}
#enterprise .enterprise-tabs button[role=tab]:hover{border-bottom-color:var(--g-mute)}
#enterprise .enterprise-tabs button[role=tab][aria-selected=true]{border-bottom-color:var(--g-lit);background:var(--g-panel)}
}
@media(min-width:901px){
.tide-playground .tp-tabs[role=tablist]{border-bottom-color:var(--g-line2);background:var(--g-raise)}
.tide-playground .tp-tabs button[role=tab]:hover{border-bottom-color:var(--g-mute)}
.tide-playground .tp-tabs button[role=tab][aria-selected=true]{border-bottom-color:var(--g-lit);background:var(--g-panel)}
}
.code-tabs button[aria-selected=true]{border-bottom-color:var(--g-lit)}
.nav-group a.active{border-left-color:var(--g-lit)}

.hero{background:var(--r-paper)}
.availability{color:var(--g-body)}

.performance-case>p:not(.eyebrow),.performance-case .model-label{color:var(--g-body)}
.performance-case>a{color:var(--g-body)}
.references .lg-logo{background:var(--g-mute)}
section.references>.eyebrow{color:var(--g-mute)}

.builder-section{background:var(--g-bg)}
.tide-playground{--tp-ink:var(--g-body);--tp-cream:var(--g-bg);--tp-line:var(--g-line);--tp-muted:var(--g-mute);--tp-coral:var(--r-pink);background:var(--g-bg);color:var(--g-body);border-color:var(--g-line);border-radius:var(--r-radius)}
.tp-panel,.tp-feedback-grid{background:transparent}
.tp-tabs,.tp-bottom,.tp-comparison{background:var(--g-raise)}
.tp-input select{background:var(--g-panel);color:var(--g-body);border-color:var(--g-line2)}
.tp-customer{background:var(--g-panel);border-color:var(--g-line)}
.tp-customer p{color:var(--g-body)}
.tp-code,.code-panel,.terminal{background:#121110;color:var(--r-panel)}
.tp-code-bar{border-bottom-color:rgba(238,220,168,.14);color:#A89F8A}
.tp-code-bar button{color:#EEDCA8!important;border-color:rgba(238,220,168,.3)}
.tp-approved{color:var(--g-lit)}
.tp-declined{color:var(--r-pink)}
.tp-test-badge{background:rgba(0,170,90,.16);color:var(--r-pass)}
.tp-test-badge.tp-fail{background:rgba(247,110,113,.14);color:var(--r-pink)}
.tp-comparison article+article{background:var(--g-panel)}
.tp-comparison article.tp-corrected{background:rgba(247,110,113,.14)}
.tp-comparison article.tp-safe{background:rgba(0,170,90,.16)}
.tp-feedback-button:disabled{background:rgba(0,170,90,.16)!important;color:var(--r-pass)!important}
.tp-tabs button span{color:var(--g-mute)}
.code-key{color:#F76E71}.code-string{color:#00A7A6}.code-number{color:#00AA5A}

#application-panel{background:var(--g-panel);border-color:var(--g-line);border-radius:var(--r-radius)}
#application-example{background:var(--g-bg);border-left-color:var(--g-lit);color:var(--g-body)}
.application-kpi{border-top-color:var(--g-fact)}
.portable-demo{background:var(--g-raise);color:var(--g-body)}
.portable-demo button{border-color:var(--g-line2);color:var(--g-body)}
.volume-control [aria-pressed=true],.store-picker [aria-pressed=true],.portable-demo [aria-pressed=true]{background:var(--g-body);border-color:var(--g-body);color:var(--g-bg)}
#diff-results .fail{color:var(--r-pink)}
#diff-results .pass{color:var(--g-fact)}

.enterprise-screen,.doc-panel{background:var(--r-raise);border-color:var(--g-line);border-radius:var(--r-radius)}
.graph-result{background:var(--r-panel)}
.source-row .flag{background:rgba(231,81,0,.12);color:var(--g-body)}
.source-row .flag.missing{background:rgba(0,116,116,.12);color:var(--g-body)}
.doc-status{background:var(--r-panel)}

.closing .eyebrow,.newsletter-row>.eyebrow{color:var(--g-mute)}
/* the newsletter sits in the closing copy's column: no full-width rule above it */
.newsletter-row{border-top:0}
.newsletter-form>label,.newsletter-done{color:var(--g-body)}
.newsletter-form>input{background:var(--g-panel);border-color:var(--g-line2);color:var(--g-body)}
.newsletter-form>input:focus-visible{outline-color:var(--g-lit)}
.newsletter-form>.access-error{color:var(--r-pink)}
.newsletter-form>.access-status{border-color:var(--r-pink);color:var(--g-body)}
.footer nav a,.footer-links nav a,.site-footer nav a,.rt-extra-footer a{color:var(--g-body)}
.rt-us-footer,.rt-us-footer strong{color:var(--g-body)}
.footer-brand,.footer-links .brand{background:var(--r-paper);border-radius:var(--r-tag)}
.footer-intro>p{color:var(--g-display)}
.review-bar{background:var(--r-black);color:var(--r-panel)}
.review-bar b{background:var(--r-pink);color:var(--r-actink)}
.skip,.tp-standalone .skip{background:var(--r-black);color:var(--r-panel)}
.toast{background:var(--r-black);color:var(--r-panel);border-color:rgba(238,220,168,.3)}

.company-story,.blog-index .journal-row>a:hover{background:transparent}
.company-story{background:var(--r-raise)}
.company-values,.research-feature,.open-application,.featured-story>a,.article-end{background:var(--r-panel);color:var(--g-body)}
.company-values{border-top:14px solid transparent;border-image:var(--r-pat-scales) 14 0 0 0/14px 0 0 0 round}
.article-prose blockquote{border-left-color:var(--r-teal);background:var(--r-raise)}
.article-prose th{background:var(--r-raise)}
.article-prose pre,.article-prose .video-link{background:var(--r-black);color:var(--r-panel)}
.article-toc a{border-bottom-color:var(--g-line)}
.article-toc a[aria-current="location"]{color:var(--g-body);border-left-color:var(--r-teal);background:var(--r-raise)}
.article-cover img,.blog-index .journal-image{background:var(--r-raise)}
/* One image treatment: blog cards, article covers and resources cards take the same light desaturate and multiply. The hover that lifts it stays on blog cards only. */
.blog-index .journal-image,.article-cover img,.resource-image img{filter:grayscale(.16) sepia(.16) saturate(.74) contrast(1.025);mix-blend-mode:multiply}
.blog-index .journal-row{background:transparent}
.blog-filters button{border-color:var(--g-line2);color:var(--g-body)}
.blog-filters button[aria-pressed=true]{background:var(--g-body);border-color:var(--g-body);color:var(--r-paper)}
.blog-filters button:hover:not([aria-pressed=true]){background:var(--g-tint)}
.legal-toc a{border-bottom-color:var(--g-line)}
.access-panel{background:var(--r-raise);border-color:var(--g-line);border-top-color:var(--r-teal);border-radius:var(--r-radius)}
.access-story h1 span,.access-benefits span{color:var(--r-teal)}
.access-dot{background:var(--r-pink)}
.access-panel label>.access-error,.access-panel .access-error{color:#A33A00}
.access-panel [aria-invalid=true]{border-color:#A33A00}
.access-status{border-color:var(--r-teal);background:var(--r-raise)}
.access-panel input,.access-panel textarea,.access-panel select,.journal-controls input,.blog-index .journal-controls input,.audit-controls input,.audit-controls select,.department-filter select,.resource-search input,.nav-search input{background:var(--r-paper);border-color:var(--g-mute);color:var(--g-body);border-radius:4px}
.location-filters button,.resource-filters button{border-color:var(--g-line2);color:var(--g-body)}
.location-filters button[aria-pressed=true],.resource-filters button[aria-pressed=true],.location-filters button.active,.resource-filters button.active{background:var(--g-body);color:var(--r-paper);border-color:var(--g-body)}
.future-section{background:var(--g-bg)}
.future-section p,.future-section .eyebrow{color:var(--g-body)}
meter{background:var(--g-panel)}
.closing h2 span{color:var(--g-lit)}
.newsletter-form .newsletter-submit,.newsletter-form .newsletter-submit:hover{background:transparent;color:var(--g-body)!important;box-shadow:inset 0 0 0 1.5px var(--g-body)}
.newsletter-form .newsletter-submit:hover{background:var(--g-tint);box-shadow:inset 0 0 0 2px var(--g-lit)}
.tp-approved,.tp-declined{color:var(--g-lit)}
.tp-test-badge,.tp-test-badge.tp-fail{background:var(--g-panel);box-shadow:inset 0 0 0 1px currentColor}
.research-number span,.feature-stat span,.big-metric span{color:var(--g-body)}
.feature-copy h2{color:var(--g-body)}
.terminal>span,.terminal{color:#A89F8A}
.terminal code{color:#EEDCA8}
.terminal button,.code-copy{color:#EEDCA8;border-color:rgba(238,220,168,.3);background:transparent}
.on-page>a{color:var(--g-mute)}
.on-page>a:hover,.on-page>a[aria-current]{color:var(--g-body)}
.portable-demo button{font-family:var(--sans);font-weight:500;border-radius:4px}
.volume-control [aria-pressed=true],.store-picker [aria-pressed=true],.portable-demo [aria-pressed=true]{background:var(--r-pink);border-color:var(--r-pink);color:var(--r-actink)}
#application-panel>#application-description{line-height:1.5}
.enterprise-screen pre,.runtime-learning strong,.runtime-learning p{font-size:16px}
.performance-cases .performance-case:nth-child(n){border-top:4px solid var(--g-fact);border-left:0}
.performance-cases{border-color:var(--g-line)}
.footer{border-top-color:var(--g-line)}
.rt-us-footer{border-top-color:var(--g-line)}
.footer small{color:var(--g-mute)}
#applications.wrap{box-shadow:0 0 0 100vmax #1E1D1B;clip-path:inset(-2px -100vmax 0)}
footer .rt-us-footer{border-top:0;margin-top:0;padding-top:0}
footer .rt-us-footer>div{padding-left:0;padding-right:0;font-family:var(--mono);font-size:16px;color:var(--g-muted,#A89F8A)}
footer .rt-us-footer strong{font-weight:400;color:var(--g-muted,#A89F8A)}
.footer-brand{background:none;padding:0}
.footer-brand img{opacity:0}
.footer-brand{display:inline-block;width:150px;height:38px;background-color:#EEDCA8;-webkit-mask:url(/assets/rippletide-logo.svg) center/contain no-repeat;mask:url(/assets/rippletide-logo.svg) center/contain no-repeat}
footer .rt-us-footer>div{margin-left:0;margin-right:0}
.footer-brand{-webkit-mask-position:left center;mask-position:left center}
footer .rt-us-footer>div{max-width:none;width:100%}
.footer-brand{margin-left:-12px}
#tide-1,.company-values{border-top:0;border-image:none}

/* Tide it playground: live days slider with presets, flip marks on the store cards, changed check rows */
.tp-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.tide-playground .tp-input.tp-days{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;align-items:stretch}
.tp-days-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.tp-days .tp-days-top label{margin:0}
.tp-presets{display:flex;gap:4px}
.tp-presets button{min-width:44px;min-height:44px;padding:0 8px;border:1px solid var(--g-line2);border-radius:4px;background:transparent;color:var(--g-body);font:400 16px/1 var(--mono);cursor:pointer}
.tp-presets button:hover{border-color:var(--g-mute);background:var(--g-tint)}
.tp-presets button[aria-pressed=true]{border-color:var(--g-lit);background:var(--g-panel);color:var(--g-hi)}
.tp-days-slider{display:flex;align-items:center;gap:12px}
.tp-days-slider output{flex:none;min-width:7ch;text-align:right;font:400 16px/1.3 var(--mono);color:var(--g-hi)}
.tp-days input[type=range]{-webkit-appearance:none;appearance:none;flex:1;min-width:0;height:44px;margin:0;cursor:pointer;background:linear-gradient(var(--g-lit),var(--g-lit)) 50% 50%/2px 18px no-repeat,linear-gradient(var(--g-lit),var(--g-lit)) calc(75% - 5px) 50%/2px 18px no-repeat,linear-gradient(var(--g-line2),var(--g-line2)) 50% 50%/100% 4px no-repeat}
.tp-days input[type=range]::-webkit-slider-runnable-track{height:44px;background:transparent;border:0}
.tp-days input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:11px;border-radius:50%;background:var(--r-pink);border:2px solid var(--r-black);box-shadow:0 0 0 1px var(--r-pink)}
.tp-days input[type=range]::-moz-range-track{height:44px;background:transparent;border:0}
.tp-days input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--r-pink);border:2px solid var(--r-black);box-shadow:0 0 0 1px var(--r-pink)}
.tp-customer{transition:border-color .3s,box-shadow .3s}
.tp-customer.tp-flipped{border-color:var(--g-lit);box-shadow:inset 0 0 0 1px var(--g-lit)}
.tp-customer.tp-flipped .tp-decision strong{animation:tp-fade-in .3s ease-out}
.tp-decision{display:flex;align-items:center;justify-content:space-between;gap:4px 12px;flex-wrap:wrap}
.tp-flip-marker{flex:none;padding:0 8px;border:1px solid var(--g-lit);border-radius:var(--r-tag);color:var(--g-hi);font:400 16px/1.4 var(--mono);white-space:nowrap}
.tp-flip-marker[hidden]{display:none}
.tp-tests li.tp-changed{animation:tp-row-flash 1.2s ease-out}
@keyframes tp-fade-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes tp-row-flash{from{background:rgba(0,167,166,.24);box-shadow:-8px 0 0 rgba(0,167,166,.24),8px 0 0 rgba(0,167,166,.24)}to{background:transparent;box-shadow:-8px 0 0 transparent,8px 0 0 transparent}}
@media(prefers-reduced-motion:reduce){.tp-customer,.tp-customer.tp-flipped .tp-decision strong,.tp-tests li.tp-changed{transition:none;animation:none}.tp-tests li.tp-changed{background:rgba(0,167,166,.16)}}
.tide-playground .tp-input:not(.tp-days) select{grid-column:1/-1}
.review-bar{display:none}

/* Homepage header over dark sections (header-surface.js sets data-surface). Dark values are the reef black tokens above. */
.site-header[data-surface]{transition:margin-bottom .2s ease,background-color .2s ease,border-color .2s ease}
.site-header[data-surface] .main-nav>a:not(.button),.site-header[data-surface] .rt-resource-menu summary,.site-header[data-surface] .rt-menu-button,.site-header[data-surface] .rt-resource-links{transition:color .2s ease,background-color .2s ease,border-color .2s ease}
.site-header[data-surface] .brand{position:relative}
.site-header[data-surface] .brand::after{content:"";position:absolute;left:0;top:50%;width:var(--rt-bw,100%);aspect-ratio:604/180;transform:translateY(-50%);background:var(--r-panel);-webkit-mask:url(/assets/rippletide-logo.svg) 0 0/100% 100% no-repeat;mask:url(/assets/rippletide-logo.svg) 0 0/100% 100% no-repeat;clip-path:inset(0 0 0 30.5%);opacity:0;pointer-events:none;transition:opacity .2s ease,clip-path .2s ease}
.site-header[data-surface=dark],.site-header[data-surface=dark] .rt-menu-panel{--g-bg:#1E1D1B;--g-panel:#292825;--g-raise:#262522;--g-body:#EEDCA8;--g-hi:#F6EEE2;--g-mute:#A89F8A;--g-display:#F76E71;--g-lit:#00A7A6;--g-fact:#00AA5A;--g-line:rgba(238,220,168,.14);--g-line2:rgba(238,220,168,.3);--g-tint:rgba(238,220,168,.07);--cream:var(--g-bg);--ink:var(--g-body);--muted:var(--g-mute);--line:var(--g-line);color-scheme:dark}
.site-header[data-surface=dark]{background:var(--r-black)}
.site-header[data-surface=dark] .brand::after{opacity:1}
/* Shrunk header: the overlay wordmark clips away with the logo image, so no sliver of the r shows next to the disc at narrow widths. */
.site-header.rt-shrunk[data-surface] .brand::after{clip-path:inset(0 70% 0 30.5%)}
/* Dark header: a paper ring keeps the navy disc readable. Disc in the 604x180 logo: x 56 to 170, y 31 to 145. */
.site-header[data-surface] .brand::before{content:"";position:absolute;left:calc(var(--rt-bw,150px) * 56 / 604);top:calc(50% - var(--rt-bw,150px) * 59 / 604);width:calc(var(--rt-bw,150px) * 114 / 604);aspect-ratio:1;border-radius:50%;box-shadow:0 0 0 1.5px var(--r-paper);opacity:0;pointer-events:none;transition:opacity .2s ease}
.site-header[data-surface=dark] .brand::before{opacity:1}
.site-header[data-surface=dark] .rt-resource-links,.site-header[data-surface=dark] .rt-menu-panel{background:var(--r-black);box-shadow:0 10px 30px -12px rgba(0,0,0,.6)}
.site-header[data-surface=dark].rt-menu-open .rt-menu-button{color:var(--r-black)}
.site-header.hs-still,.site-header.hs-still *,.site-header.hs-still .brand::after,.site-header.hs-still .brand::before{transition:none!important}
@media(prefers-reduced-motion:reduce){.site-header[data-surface],.site-header[data-surface] .main-nav>a:not(.button),.site-header[data-surface] .rt-resource-menu summary,.site-header[data-surface] .rt-menu-button,.site-header[data-surface] .rt-resource-links,.site-header[data-surface] .brand::after,.site-header[data-surface] .brand::before{transition:none}}
/* Homepage closing: early access asks for a work email only. Same field and button shapes as the newsletter form. */
.closing .closing-actions>.closing-form,.closing .closing-actions>.closing-done{grid-column:2;align-self:start;max-width:560px;margin-top:32px}
.closing .closing-actions>.closing-done{margin-top:24px}
.closing-form{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px}
.closing-form>label{grid-column:1/-1;margin-bottom:8px;font-size:16px;font-weight:500;color:var(--g-body)}
.closing-form>input{grid-column:1;min-height:48px;width:100%;padding:0 12px;border:1px solid var(--g-line2);border-radius:4px;background:var(--g-panel);color:var(--g-body);font:16px/1.2 var(--sans)}
.closing-form>input::placeholder{color:var(--g-mute);opacity:1}
.closing-form>input:focus-visible{outline:3px solid var(--g-lit);outline-offset:2px}
.closing-form>input[aria-invalid=true]{border-color:var(--r-pink);box-shadow:inset 0 0 0 1px var(--r-pink)}
.closing-form>.button{grid-column:2;grid-row:2;margin:0;min-height:48px;white-space:nowrap}
.closing-form>.access-error{grid-column:1/-1;margin:8px 0 0;font-size:16px;color:var(--r-pink)}
.closing-form>.access-status{grid-column:1/-1;margin:12px 0 0;padding:12px;border:1px solid var(--r-pink);background:transparent;color:var(--g-body);font-size:16px}
.closing-form>.access-hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.closing-done{color:var(--g-body)}
.closing-done h3{margin:0 0 8px;font-size:24px;line-height:1.25;color:var(--g-body)}
.closing-done>p{margin:0;font-size:16px;line-height:1.5;overflow-wrap:anywhere}
/* Optional follow-up on the thank-you state (homepage closing and waitlist page). */
.access-followup{min-width:0;margin:16px 0 0;padding:0;border:0}
.access-success .access-followup{margin:0 0 24px}
.access-followup legend{padding:0;margin-bottom:8px;font-size:16px;font-weight:500;color:var(--g-body)}
.access-followup legend>span{margin-left:5px;font-weight:400;color:var(--g-mute)}
.access-followup-options{display:flex;flex-wrap:wrap;gap:8px}
.access-followup-options button{min-height:44px;padding:0 18px;border:0;border-radius:4px;background:transparent;box-shadow:inset 0 0 0 1.5px var(--g-line2);color:var(--g-body);font:500 16px/1 var(--sans);cursor:pointer}
.access-followup-options button:hover:not(:disabled){box-shadow:inset 0 0 0 2px var(--g-body)}
.access-followup-options button:focus-visible{outline:3px solid var(--g-lit);outline-offset:2px}
.access-followup-options button[aria-pressed=true]{background:var(--g-body);box-shadow:none;color:var(--g-bg)}
.access-followup-options button:disabled{cursor:default}
.access-followup-status{min-height:1.5em;margin:8px 0 0;font-size:16px;line-height:1.5;color:var(--g-body)}
.access-success .access-followup-status{font-size:16px;margin:8px 0 0}
@media (max-width:900px){.closing .closing-actions>.closing-form,.closing .closing-actions>.closing-done{grid-column:1}}
@media (max-width:520px){.closing-form{grid-template-columns:minmax(0,1fr);row-gap:8px}.closing-form>.button{grid-column:1;grid-row:auto;width:100%;justify-content:center}}
/* Paper footers on access pages: the US address name used the dark-surface mute colour (2.28:1). */
footer.access-footer>.rt-us-footer strong{color:var(--muted)}
/* Homepage closing with the open water (2026-11-05): the water (open-water/, loaded on demand) is the whole section's
   ground, edge to edge; the eyebrow, heading, beta line, form and contact link stack in the left column on top of it,
   the newsletter row below. The box is reserved here so nothing shifts when the water arrives. */
section.closing:has(>.closing-water){position:relative;isolation:isolate;overflow:hidden}
.closing>.closing-water{position:absolute;inset:0;z-index:0}
.closing:has(>.closing-water)>.wrap{position:relative;z-index:1}
.closing .closing-grid:has(>.closing-lead){grid-template-columns:var(--col-left) minmax(0,1fr);column-gap:var(--col-gap);align-items:start}
.closing .closing-lead{grid-column:1;grid-row:1;display:flex;flex-direction:column}
.closing .closing-lead .closing-actions{display:block;margin-top:24px}
.closing .closing-lead .closing-actions>p{max-width:none;margin:0}
.closing .closing-lead .closing-actions>.closing-form,.closing .closing-lead .closing-actions>.closing-done{max-width:560px;margin-top:16px}
.closing .closing-lead .closing-actions>.contact-link{max-width:400px}
/* once on the list, the beta line has done its job: the success block takes its place, so the column stays one screen */
.closing .closing-lead .closing-actions:has(>.closing-done:not([hidden]))>p{display:none}
.closing .closing-lead .closing-actions>.closing-done:not([hidden]){margin-top:0}
/* at least one screen of water; the open water below the copy takes what the copy leaves */
@media (min-width:901px){
  section.closing:has(>.closing-water){min-height:100vh;display:flex;flex-direction:column;padding-top:56px}
  .closing:has(>.closing-water) .closing-grid{flex:0 0 auto;padding-bottom:var(--s-24,96px)}
  .closing:has(>.closing-water) .newsletter-row{padding:24px 0 32px}
}
@media (min-width:901px) and (max-height:820px){
  .closing:has(>.closing-water) h2{font-size:clamp(48px,5vw,72px)}
  section.closing:has(>.closing-water){padding-top:48px}
}
/* closing title: two lines on desktop, set by the <br>; the second runs past the column over open water. On phones it
   sets in four (gets and wrong are joined, so no word sits alone). */
@media (min-width:901px){.closing .closing-lead h2{width:max-content;max-width:none}}
/* phone: the copy stacks across the top; open water below it, where the old water box stood */
@media (max-width:900px){
  .closing .closing-grid:has(>.closing-lead){grid-template-columns:minmax(0,1fr);padding-bottom:clamp(320px,48vh,440px)}
}
/* hero: the title reads in three lines on desktop, beside the figure */
@media (min-width:761px){
  .hero .hero-copy h1{font-size:clamp(48px,5.7vw,82px);letter-spacing:-.015em}
  .hero .hero-copy h1>span{white-space:nowrap}
}
/* hero: early access email capture, the closing form's styles on one row, Tide it beside it */
.hero .hero-actions{flex-wrap:wrap;align-items:flex-end;column-gap:24px;row-gap:16px}
.hero .hero-access{flex:0 1 520px;min-width:0}
.hero .hero-form>.button{padding:0 20px}
.hero .hero-actions>.text-link{min-height:48px;display:inline-flex;align-items:center}
.hero .hero-done h2{margin:0 0 8px;font-size:24px;line-height:1.25;letter-spacing:0;color:var(--g-body)}
.hero .hero-done .access-followup{margin-top:12px}
.hero .hero-actions:has(.hero-done:not([hidden]))>.hero-access{flex-basis:100%}
/* home: no horizontal rules between sections. The results band loses its top and bottom rules,
   the footer loses its top rule, and the dark bands overlap by 1px so no hairline seam shows at fractional edges */
main>.performance-overview{border-top:0;border-bottom:0}
main>.performance-overview,main>.references{clip-path:inset(-1px -100vmax)}
.closing-footer>.footer{border-top:0}
/* use cases: the five tabs share the panel's height, so both columns align top and bottom; phone keeps its stacking */
@media (min-width:761px){
  #applications .application-tabs{align-content:stretch;grid-auto-rows:minmax(48px,1fr)}
  #applications .application-tabs button[role=tab]{align-content:center}
}
/* closing: the newsletter sits on the left, in the closing copy's column, its title above the form */
.closing .newsletter-row{grid-template-columns:minmax(0,var(--col-left,1fr))}
.closing .newsletter-row>.newsletter-done{grid-column:1}
@media (max-width:900px){.closing .newsletter-row{grid-template-columns:minmax(0,1fr)}}
/* hero h1: the accent sits on "decision" only; the first line keeps the h1 colour and still never wraps */
.hero h1 .hero-l1{color:inherit}
/* phones: one 16px side gutter on every page, through the shared .wrap */
@media (max-width:760px){.wrap{width:calc(100% - 32px)}}
/* Footer pinned to the bottom on every page: on pages shorter than the viewport, main takes the slack, so no paper strip
   shows under the dark footer. */
body:has(>.site-header){min-height:100vh;display:flex;flex-direction:column}
body:has(>.site-header)>main{flex:1 0 auto}
/* Enterprise panel: Contact us sits 32px under whatever ends the copy (the header alone on 01 and 02). */
.enterprise-copy>.text-link{display:inline-block;margin-top:var(--s-8,32px)}
.enterprise-copy #enterprise-extra .runtime-learning{margin-bottom:0}

/* Book a call (book-call.js): Calendly in a site dialog. Desktop centered, sized for Calendly's two-column layout; phones full screen. */
html.rt-book-lock{overflow:hidden}
html.rt-book-lock body{overflow:hidden;padding-right:var(--rt-book-gutter,0)}
.rt-book{--g-bg:#F6EEE2;--g-body:#1E1D1B;--g-mute:#5E574C;--g-lit:#007474;--g-line:rgba(30,29,27,.16);--g-line2:rgba(30,29,27,.32);--g-tint:rgba(30,29,27,.06);color-scheme:light;
padding:0;border:1px solid var(--g-line);border-radius:var(--r-radius);background:var(--r-paper);color:var(--g-body);
width:min(1200px,calc(100vw - 64px));height:min(760px,calc(100dvh - 48px));max-width:none;max-height:none;overflow:hidden;box-shadow:0 24px 60px -24px rgba(30,29,27,.45)}
.rt-book::backdrop{background:rgba(30,29,27,.56)}
.rt-book-box{display:flex;flex-direction:column;height:100%}
.rt-book-bar{display:flex;align-items:center;gap:20px;padding:0 8px 0 20px;min-height:52px;border-bottom:1px solid var(--g-line);flex:none}
.rt-book-title{margin:0;max-width:none;font-size:14px;font-weight:600;color:var(--g-body);flex:1;min-width:0}
.rt-book-out{font-size:13px;font-weight:500;color:var(--g-mute);text-decoration:underline;text-underline-offset:3px}
.rt-book-out:hover{color:var(--g-body)}
.rt-book-close{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0 12px;border:0;border-radius:var(--r-tag);background:transparent;color:var(--g-body);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.rt-book-close:hover{background:var(--g-tint)}
.rt-book-body{position:relative;flex:1;min-height:0}
.rt-book-loading{position:absolute;inset:0;max-width:none;display:flex;align-items:center;justify-content:center;gap:12px;margin:0;background:var(--r-paper);color:var(--g-mute);font-size:14px;font-weight:500;transition:opacity .2s}
.rt-book-loading::before{content:"";width:14px;height:14px;border:2px solid var(--g-line2);border-top-color:var(--g-lit);border-radius:50%;animation:rt-book-spin .8s linear infinite}
.rt-book-body.is-ready .rt-book-loading{opacity:0;pointer-events:none}
.rt-book-frame{display:block;width:100%;height:100%;border:0}
@keyframes rt-book-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.rt-book-loading::before{animation-duration:2.4s}}
@media (max-width:700px){
.rt-book{width:100vw;height:100dvh;margin:0;border:0;border-radius:0}
.rt-book-bar{padding-left:16px;gap:12px}
.rt-book-out{display:none}}

/* Use cases: the tab list keeps its own height; a panel that grows (Run sample tests) grows alone, the list never stretches. */
@media(min-width:901px){#applications .application-tabs{align-self:start;grid-auto-rows:minmax(48px,1fr)}}
