/* RootWright theme styles. Colours, fonts and sizes come from theme.json presets; this file adds the brand devices. */
:root {
	--rw-char: var(--wp--preset--color--char);
	--rw-bone: var(--wp--preset--color--bone);
	--rw-chalk: var(--wp--preset--color--chalk);
	--rw-stone: var(--wp--preset--color--stone);
	--rw-ash: var(--wp--preset--color--ash);
	--rw-smoke: var(--wp--preset--color--smoke);
	--rw-line: #2A231E;
	--rw-lms: var(--wp--preset--color--lms);
	--rw-display: var(--wp--preset--font-family--display);
	--rw-mono: var(--wp--preset--font-family--mono);
	--rw-ease: var(--wp--custom--ease);
	--rw-r-plate: var(--wp--custom--radius--plate);
	--rw-r-panel: var(--wp--custom--radius--panel);
	--rw-r-control: var(--wp--custom--radius--control);
	--rw-r-control-sm: var(--wp--custom--radius--control-small);
	--rw-radical: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='9 42 43 40'%3E%3Cpath d='M13 55L19.5 46.5L35 77L47 58.5' fill='none' stroke='%23000' stroke-width='8.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---------- base */
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
::selection { background: var(--rw-char); color: var(--rw-bone); }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 4px; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.rw-main { margin-block-start: 0; }
.wp-block-post-content > .alignfull, .rw-main > .alignfull { margin-block-start: 0; margin-block-end: 0; }
.rw-rule { border-top: 1px solid var(--rw-stone); }
.has-char-background-color.rw-rule { border-color: var(--rw-line); }
img { height: auto; }

/* ---------- type devices */
.is-style-eyebrow { font-family: var(--rw-mono); font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; line-height: 1.4; color: var(--rw-ash); display: flex; align-items: center; gap: 10px; }
.is-style-eyebrow img { width: 24px; height: auto; }
:is(.has-char-background-color, .has-plate-gradient-background, .is-style-card-dark, .is-style-cta) .is-style-eyebrow { color: var(--rw-smoke); }
.is-style-lead { font-size: var(--wp--preset--font-size--large); color: var(--rw-ash); max-width: 56ch; text-wrap: pretty; }
:is(.has-char-background-color, .is-style-cta, .is-style-card-dark) .is-style-lead { color: var(--rw-smoke); }
h1, h2, h3 { text-wrap: balance; }

/* Radical marker: one per page, before the main headline, at cap height */
.is-style-radical::before { content: ""; display: inline-block; width: .74em; height: .66em; margin-right: .14em; background: currentColor; -webkit-mask: var(--rw-radical) left center / contain no-repeat; mask: var(--rw-radical) left center / contain no-repeat; clip-path: inset(0 100% 0 0); animation: rw-reveal .9s .15s var(--rw-ease) forwards; }
@keyframes rw-reveal { to { clip-path: inset(0); } }

.is-style-number { font-family: var(--rw-display); font-weight: 600; font-size: var(--wp--preset--font-size--number); line-height: .95; letter-spacing: -.05em; font-variant-numeric: tabular-nums; margin: 0; }
.is-style-status, .is-style-status-live { display: inline-flex; align-items: center; gap: 8px; font-family: var(--rw-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--rw-ash); margin: 0; }
.is-style-status::before, .is-style-status-live::before { content: ""; width: 7px; height: 7px; border-radius: 2px; background: var(--rw-stone); flex: none; }
.is-style-status-live::before { background: currentColor; animation: rw-blink 1.6s steps(2) infinite; }
:is(.has-lms-gradient-background, .is-style-card-dark) .is-style-status-live { color: inherit; }
@keyframes rw-blink { 50% { opacity: .25; } }

.rw-chip { display: inline-flex; align-items: center; gap: 8px; width: fit-content; min-height: 32px; padding: 5px 14px 5px 6px; border-radius: 999px; background: var(--rw-chalk); border: 1px solid var(--rw-stone); font-family: var(--rw-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; line-height: 1.3; }
.rw-chip img { width: 20px !important; }
.rw-chip a { text-decoration: none; }
.has-lms-gradient-background .rw-chip { background: rgba(15, 12, 10, .25); border-color: rgba(246, 243, 236, .25); color: inherit; padding-left: 12px; }
.rw-more a, .rw-card-cta { font-weight: 600; text-decoration: none; border-bottom: 1.5px solid currentColor; padding-bottom: 2px; }
.rw-card-cta { width: fit-content; }

/* Block bullets */
.is-style-blocks, .is-style-blocks-stone { list-style: none; padding-left: 0; }
.is-style-blocks li, .is-style-blocks-stone li { position: relative; padding-left: calc(.62em + 14px); }
.is-style-blocks li + li, .is-style-blocks-stone li + li { margin-top: 12px; }
.is-style-blocks li::before, .is-style-blocks-stone li::before { content: ""; position: absolute; left: 0; top: .42em; width: .62em; height: .68em; border-radius: 2px; background: currentColor; }
.is-style-blocks-stone li::before { background: var(--rw-stone); }

/* ---------- buttons */
.wp-element-button, .wp-block-button__link { position: relative; overflow: hidden; isolation: isolate; transition: transform .25s var(--rw-ease), background-color .25s, color .25s, border-color .25s; border: 1.5px solid transparent; }
.wp-block-button__link::after { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--wp--preset--gradient--plate); opacity: 0; transition: opacity .3s; }
.wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button__link:hover::after { opacity: 1; }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--rw-char); border-color: var(--rw-char); padding: 15px 24px; }
.wp-block-button.is-style-outline > .wp-block-button__link::after, .is-style-outline-light > .wp-block-button__link::after { display: none; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--rw-char); color: var(--rw-bone); }
.is-style-light > .wp-block-button__link { background: var(--rw-bone); color: var(--rw-char); }
.is-style-light > .wp-block-button__link::after { background: #fff; }
.is-style-outline-light > .wp-block-button__link { background: transparent; color: var(--rw-bone); border-color: rgba(244, 239, 231, .4); }
.is-style-outline-light > .wp-block-button__link:hover { background: var(--rw-bone); color: var(--rw-char); border-color: var(--rw-bone); }

/* ---------- forms: any form plugin inherits the brand corner */
.wp-site-blocks :is(input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], input[type="search"], input[type="password"], select, textarea) {
	width: 100%; min-height: 52px; padding: 0 16px; border: 1.5px solid var(--rw-stone); border-radius: var(--rw-r-control); background: #fff; color: var(--rw-char); font: inherit; transition: border-color .2s, box-shadow .2s;
}
.wp-site-blocks textarea { min-height: 160px; padding: 14px 16px; border-radius: 28px 6px 6px 6px; resize: vertical; }
.wp-site-blocks select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M28 40L50 62L72 40' fill='none' stroke='%2315110E' stroke-width='9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 14px center / 18px no-repeat; padding-right: 44px; }
.wp-site-blocks :is(input, select, textarea):hover { border-color: var(--rw-smoke); }
.wp-site-blocks :is(input, select, textarea):focus { outline: none; border-color: var(--rw-char); box-shadow: 0 0 0 4px rgba(21, 17, 14, .08); }
.wp-site-blocks :is(button[type="submit"], input[type="submit"]):not(.wp-block-search__button) { min-height: 52px; padding: 0 24px; border: 0; border-radius: var(--rw-r-control); background: var(--rw-char); color: var(--rw-bone); font: 600 16px var(--wp--preset--font-family--text); cursor: pointer; }
.has-char-background-color :is(input, select, textarea) { background: var(--wp--preset--color--char-2); border-color: var(--rw-line); color: var(--rw-bone); }
.wp-site-blocks .has-char-background-color :is(button[type="submit"], input[type="submit"]):not(.wp-block-search__button) { background: var(--rw-bone); color: var(--rw-char); }
.wp-block-search__inside-wrapper { gap: 8px; border: 0; padding: 0; }
.wp-block-search__button { min-height: 52px; margin: 0; padding: 0 24px; border-radius: var(--rw-r-control); background: var(--rw-char); color: var(--rw-bone); font-weight: 600; border: 0; }
.rw-search { max-width: 520px; }
.is-style-form-card { background: var(--rw-chalk); border: 1px solid var(--rw-stone); border-radius: var(--rw-r-panel); padding: clamp(24px, 4vw, 48px); }
/* RootWright Forms: brand corner on its fields and button, brand type on its labels */
.rootwright-fr-form { padding: 0 !important; box-shadow: none !important; }
.rootwright-fr-form :is(.rootwright-fr-input, .rootwright-fr-select) { min-height: 52px; border: 1.5px solid var(--rw-stone) !important; border-radius: var(--rw-r-control) !important; background-color: #fff; }
.rootwright-fr-form .rootwright-fr-textarea { border: 1.5px solid var(--rw-stone) !important; border-radius: 28px 6px 6px 6px !important; background-color: #fff; }
.rootwright-fr-form :is(.rootwright-fr-input, .rootwright-fr-select, .rootwright-fr-textarea):focus { border-color: var(--rw-char) !important; box-shadow: 0 0 0 4px rgba(21, 17, 14, .08) !important; outline: none; }
.rootwright-fr-form .rootwright-fr-field-label { font-family: var(--rw-mono); font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--rw-ash); }
.rootwright-fr-form .rootwright-fr-submit-button { min-height: 52px; border-radius: var(--rw-r-control) !important; font-weight: 600; transition: transform .25s var(--rw-ease), background .25s; }
.rootwright-fr-form .rootwright-fr-submit-button:hover { transform: translateY(-2px); background: var(--wp--preset--gradient--plate) !important; }
.rootwright-fr-form .is-notice { font-size: 14px; color: var(--rw-ash); }
.has-char-background-color .rootwright-fr-form :is(.rootwright-fr-input, .rootwright-fr-select, .rootwright-fr-textarea) { background-color: var(--wp--preset--color--char-2); border-color: var(--rw-line) !important; color: var(--rw-bone); }
.has-char-background-color .rootwright-fr-form .rootwright-fr-field-label { color: var(--rw-smoke); }
.has-char-background-color .rootwright-fr-form { --rootwright-fr-color-text: var(--rw-bone); }
.has-char-background-color .rootwright-fr-form .rootwright-fr-submit-button { background: var(--rw-bone) !important; color: var(--rw-char) !important; }
.has-char-background-color .rootwright-fr-form a { color: var(--rw-bone); }
.rw-form-slot > * { margin-block: 0 0 12px; }

/* Rows whose fields are all hidden by topic take no space */
.rootwright-fr-form-row:not(:has(.rootwright-fr-conditional-field:not([hidden]))) { display: none !important; }
/* Topic and impact choices as brand chips */
.is-chips .rootwright-fr-radio-group { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 8px; }
.is-chips .rootwright-fr-radio-label { position: relative; display: inline-flex !important; align-items: center; width: auto !important; min-height: 40px; margin: 0 !important; padding: 0 16px !important; border: 1.5px solid var(--rw-stone); border-radius: var(--rw-r-control-sm); background: #fff; font-size: 15px; font-weight: 500; cursor: pointer; transition: background .2s, border-color .2s, color .2s; }
.is-chips .rootwright-fr-radio-label:hover { border-color: var(--rw-char); }
.is-chips .rootwright-fr-radio-input { position: absolute; opacity: 0; pointer-events: none; }
.is-chips .rootwright-fr-radio-custom { display: none !important; }
.is-chips .rootwright-fr-radio-label:has(:checked) { background: var(--rw-char); border-color: var(--rw-char); color: var(--rw-bone); }
.is-chips .rootwright-fr-radio-label:has(:focus-visible) { outline: 2px solid var(--rw-char); outline-offset: 2px; }

/* Editor-only notes for slots where a form plugin's block goes */
body:not(.editor-styles-wrapper) .rw-slot-note { display: none; }
.rw-slot-note { border: 1.5px dashed var(--rw-smoke); border-radius: var(--rw-r-control); padding: 12px 16px; font-size: 14px; color: var(--rw-ash); }

/* ---------- header */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
.rw-header { background: rgba(244, 239, 231, .84); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px); border-bottom: 1px solid transparent; transition: border-color .3s; }
.rw-header.scrolled { border-color: var(--rw-stone); }
.rw-nav { min-height: 76px; gap: 24px; }
.rw-logo { margin: 0; flex: none; }
.rw-logo img { display: block; }
.rw-nav-right { gap: 20px; }
.rw-menu .wp-block-navigation-item__content { padding: 10px 14px; border-radius: var(--rw-r-control-sm); transition: background .2s; position: relative; }
.rw-menu .wp-block-navigation-item__content:hover { background: rgba(21, 17, 14, .06); text-decoration: none; }
.rw-menu .current-menu-item > .wp-block-navigation-item__content { font-weight: 600; }
.rw-menu .current-menu-item > .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 8px; height: 9px; border-radius: 2px; background: currentColor; transform: translateX(-50%); }
.rw-menu .wp-block-navigation__container { gap: 4px; }
.rw-nav-cta .wp-block-button__link { padding: 10px 18px; font-size: 15px; border-radius: var(--rw-r-control-sm); }
.wp-block-navigation__responsive-container-open { width: 44px; height: 44px; display: grid; place-items: center; border: 1.5px solid var(--rw-char); border-radius: var(--rw-r-control-sm); }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--rw-bone) !important; padding: 24px 16px; }
/* The header's blur would trap the full-screen menu inside the header, so drop it while the menu is open */
.rw-header:has(.is-menu-open) { backdrop-filter: none; -webkit-backdrop-filter: none; }
.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start !important; }
.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; width: 100%; gap: 0 !important; }
.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--rw-stone); align-items: flex-start !important; }
.rw-menu .rw-menu-cta { display: none; }
.is-menu-open .rw-menu-cta { display: flex; border: 0; margin-top: 16px; }
.is-menu-open .rw-menu-cta .wp-block-navigation-item__content { font: 600 16px var(--wp--preset--font-family--text) !important; background: var(--rw-char); color: var(--rw-bone); padding: 15px 24px !important; border-radius: var(--rw-r-control); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font: 600 28px/1.2 var(--rw-display); padding: 12px 8px; }
/* Core collapses the menu at 600px; with five links and a button this header needs it at 960px */
@media (max-width: 960px) {
	.rw-nav .rw-nav-cta { display: none !important; }
	.rw-menu .wp-block-navigation__responsive-container-open:not(.always-shown) { display: grid; }
	.rw-menu .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* ---------- section heads */
.rw-section-head { align-items: flex-end; margin-bottom: var(--wp--preset--spacing--50); gap: 40px; }
.rw-head-text { max-width: 760px; }
.rw-head-text > * + * { margin-block-start: 16px; }
.rw-head-text h2 { margin-top: 0; }
.rw-hero-cols { gap: clamp(32px, 5vw, 72px); }
.rw-page-hero .rw-hero-cols { margin-top: 24px; }

/* ---------- home hero */
.rw-hero-meta { gap: 32px; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--rw-stone); }
.rw-hero-meta > .wp-block-group > * { margin: 0; }
.rw-meta-num { font: 600 28px/1 var(--rw-display); letter-spacing: -.02em; margin-bottom: 4px !important; }
.is-style-field-panel { position: relative; border-radius: var(--rw-r-panel); padding: 28px !important; min-height: 560px; display: flex; flex-direction: column; gap: 20px; overflow: hidden; isolation: isolate; }
.is-style-field-panel > * { margin: 0 !important; max-width: none !important; }
.rw-panel-top { color: var(--rw-smoke); }
.rw-panel-top > * { margin: 0; }
.rw-panel-top img { width: 36px !important; }
.rw-field { display: grid; grid-template-columns: repeat(var(--cols, 9), 1fr); gap: 6px; height: auto !important; margin-block: auto !important; }
.rw-field i { aspect-ratio: 33 / 36.5; border-radius: 4px; background: rgba(244, 239, 231, .045); transition: background .9s var(--rw-ease); animation: rw-rise .7s var(--rw-ease) both; animation-delay: calc(var(--d, 0) * 1ms); }
.rw-field i.lit { background: var(--rw-stone); }
.rw-field i.mark { background: var(--rw-bone); }
@keyframes rw-rise { from { opacity: 0; transform: translateY(16px); } }
.is-style-build-log { background: rgba(15, 12, 10, .72); border: 1px solid var(--rw-line); border-radius: 14px; padding: 18px 20px !important; min-height: 150px; }
.is-style-build-log > * { margin: 0 !important; font: 400 13px/1.9 var(--rw-mono); color: var(--rw-smoke); }
.is-style-build-log strong { color: var(--rw-bone); font-weight: 500; }
.is-style-build-log > p:last-child::after { content: ""; display: inline-block; width: 8px; height: 15px; margin-left: 6px; background: var(--rw-bone); vertical-align: -2px; animation: rw-blink 1s steps(2) infinite; }

/* ---------- marquee */
.rw-marquee-band { overflow: hidden; border-block: 1px solid var(--rw-stone); padding: 0 !important; }
.is-style-marquee { gap: 56px !important; width: max-content; max-width: none !important; padding: 22px 0; animation: rw-scroll 38s linear infinite; margin: 0 !important; }
.rw-marquee-band:hover .is-style-marquee { animation-play-state: paused; }
.is-style-marquee > .wp-block-group { gap: 14px; flex: none; }
.is-style-marquee > .wp-block-group > * { margin: 0; }
.is-style-marquee img { width: 40px !important; }
.rw-marquee-name { font: 600 24px var(--rw-display); letter-spacing: -.02em; white-space: nowrap; }
.rw-marquee-status { font: 500 11px var(--rw-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--rw-ash); white-space: nowrap; }
@keyframes rw-scroll { to { transform: translateX(-50%); } }

/* ---------- numbers and principles */
.is-style-numbers { gap: 0 !important; border-top: 1px solid var(--rw-line); }
.is-style-numbers > .wp-block-column { padding: 40px 32px 8px; border-right: 1px solid var(--rw-line); }
.is-style-numbers > .wp-block-column:first-child { padding-left: 0; }
.is-style-numbers > .wp-block-column:last-child { border-right: 0; }
.is-style-numbers p:not(.is-style-number) { max-width: 22ch; margin-top: 16px; }
.is-style-principles { gap: 0 !important; }
.is-style-principles > .wp-block-column { padding: 32px 32px 0 0; border-top: 1px solid var(--rw-line); }
.is-style-principles > .wp-block-column + .wp-block-column { padding-left: 32px; border-left: 1px solid var(--rw-line); }
.is-style-principles h3 { margin: 40px 0 12px; }
.rw-stats { gap: 16px !important; margin-top: var(--wp--preset--spacing--50); }
.rw-stats > .wp-block-column { border-top: 2px solid var(--rw-char); padding-top: 20px; }
.rw-stats .is-style-number { font-size: clamp(48px, 6vw, 80px); letter-spacing: -.04em; }
.rw-stats p { margin-top: 4px; }

/* ---------- cards */
.is-style-card, .is-style-card-dark { position: relative; border-radius: var(--wp--custom--radius--card); padding: 28px !important; transition: transform .35s var(--rw-ease), border-color .3s, box-shadow .35s var(--rw-ease); }
.is-style-card { background: var(--rw-chalk); border: 1px solid var(--rw-stone); }
.is-style-card-dark { background: var(--rw-char); border: 1px solid var(--rw-char); color: var(--rw-bone); }
.is-style-card > * + *, .is-style-card-dark > * + * { margin-block-start: 16px; }
.is-style-card > *, .is-style-card-dark > * { margin-block-end: 0; }
:is(.is-style-card, .is-style-card-dark, .rw-feature):has(:is(h2, h3, h4) a):hover { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--lift); }
.is-style-card:has(:is(h2, h3, h4) a):hover { border-color: var(--rw-char); }
:is(.is-style-card, .is-style-card-dark, .rw-feature) :is(h2, h3, h4) a { text-decoration: none; }
:is(.is-style-card, .is-style-card-dark, .rw-feature) :is(h2, h3, h4) a::after { content: ""; position: absolute; inset: 0; }
.is-style-card-dark .has-smoke-color { color: var(--rw-smoke); }
.is-style-plate { margin: 0; }
.is-style-plate img { transition: transform .45s var(--rw-ease); }
:is(.is-style-card, .is-style-card-dark, .rw-feature):hover .is-style-plate img { transform: translateY(-3px) scale(1.06); }

.rw-family { gap: 16px; }
.rw-family > * { display: flex; flex-direction: column; min-height: 280px; margin: 0 !important; }
.rw-family > .is-style-card h3, .rw-family > .is-style-card-dark h3 { margin-top: auto !important; }
.rw-feature { position: relative; overflow: hidden; border-radius: var(--wp--custom--radius--card); padding: clamp(28px, 3.5vw, 48px) !important; gap: 16px; transition: transform .35s var(--rw-ease), box-shadow .35s; }
.rw-feature > * { margin: 0 !important; }
.rw-feature h3 { margin-top: auto !important; }
.rw-feature h3 a { color: inherit; }
.rw-feature p:not(.rw-chip):not(.rw-card-cta) { color: rgba(246, 243, 236, .8); max-width: 40ch; }
.rw-feature::after { content: ""; position: absolute; right: -40px; bottom: -40px; width: 300px; height: 300px; background: url(../brand/lms-mark.svg) center / contain no-repeat; opacity: .1; pointer-events: none; transition: transform .6s var(--rw-ease); }
.rw-feature:hover::after { transform: translate(-6px, -6px); }

/* ---------- LMS stage and learning loop */
.is-style-loop-stage { position: relative; border-radius: var(--rw-r-panel); padding: clamp(20px, 4vw, 48px) !important; overflow: hidden; isolation: isolate; }
.is-style-loop-stage::before { content: ""; position: absolute; inset: 0; z-index: -1; background: url(../brand/pattern-radical.svg) 0 0 / 72px; }
.is-style-loop-stage > * { max-width: none !important; }
.loop { --dur: 2500ms; }
.loop-cap { font: 500 12px var(--rw-mono); letter-spacing: .14em; text-transform: uppercase; color: rgba(246, 243, 236, .82); margin: 0 0 16px; }
.loop .app { display: flex; flex-direction: column; background: var(--rw-chalk); color: var(--rw-char); border-radius: 16px; box-shadow: 0 30px 60px -30px rgba(10, 40, 30, .55); overflow: hidden; font-size: 15px; }
.app-bar { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--rw-stone); }
.app-bar strong { font: 600 15px var(--rw-display); }
.loop .mono { font: 500 10px var(--rw-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--rw-ash); }
.loop-clock { margin-left: auto; font: 500 11px var(--rw-mono); letter-spacing: .1em; color: var(--rw-ash); font-variant-numeric: tabular-nums; }
.loop-toggle { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--rw-stone); border-radius: var(--rw-r-control-sm); background: #fff; cursor: pointer; padding: 0; }
.loop-toggle svg { width: 12px; height: 12px; fill: var(--rw-char); }
.loop-toggle .i-play, .loop.paused .loop-toggle .i-pause { display: none; }
.loop.paused .loop-toggle .i-play { display: inline; }
.loop-scenes { position: relative; height: 352px; overflow: hidden; }
.scene { position: absolute; inset: 0; padding: 20px 18px; display: grid; gap: 14px; align-content: start; opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity .45s var(--rw-ease), transform .45s var(--rw-ease), visibility 0s .45s; }
.scene.active { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.scene h4 { font: 600 22px/1.2 var(--rw-display); letter-spacing: -.02em; margin: 0; }
.scene p { margin: 0; }
.scene-label { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.tag { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: var(--rw-r-control-sm); background: rgba(30, 118, 91, .1); color: var(--rw-lms); font: 500 10px var(--rw-mono); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.result { font-size: 14px; color: var(--rw-ash); opacity: 0; }
.scene.active .result { animation: rw-show .4s 1.5s var(--rw-ease) forwards; }
@keyframes rw-show { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.video { position: relative; height: 184px; border-radius: 22px 8px 8px 8px; background: var(--wp--preset--gradient--plate); overflow: hidden; display: grid; place-items: center; }
.video .play { width: 52px; height: 52px; border-radius: 50%; background: rgba(244, 239, 231, .14); display: grid; place-items: center; }
.video .play::after { content: ""; border-left: 15px solid var(--rw-bone); border-block: 9px solid transparent; margin-left: 4px; }
.video-title { position: absolute; left: 16px; bottom: 12px; color: var(--rw-bone); font: 600 15px var(--rw-display); }
.wave { position: absolute; right: 16px; bottom: 14px; display: flex; gap: 3px; align-items: end; height: 22px; }
.wave i { width: 3px; height: 30%; background: rgba(244, 239, 231, .5); border-radius: 2px; }
.scene.active .wave i { animation: rw-wave .9s ease-in-out infinite alternate; }
.wave i:nth-child(3n) { animation-delay: -.3s !important; }
.wave i:nth-child(3n+1) { animation-delay: -.6s !important; }
@keyframes rw-wave { to { height: 100%; } }
.scrub { position: relative; height: 6px; border-radius: 3px; background: var(--rw-stone); }
.scrub-fill { position: absolute; inset: 0 auto 0 0; width: 0; border-radius: 3px; background: var(--rw-lms); }
.scene.active .scrub-fill { animation: rw-scrub 2.3s linear forwards; }
@keyframes rw-scrub { to { width: 62%; } }
.scrub-mark { position: absolute; left: 62%; top: 50%; width: 12px; height: 12px; background: var(--rw-char); border: 2px solid var(--rw-chalk); border-radius: 5px 2px 2px 2px; transform: translate(-50%, -50%); }
.opts { display: grid; gap: 8px; }
.opt { display: flex; justify-content: space-between; align-items: center; padding: 11px 14px; border: 1.5px solid var(--rw-stone); border-radius: var(--rw-r-control-sm); background: #fff; font-size: 15px; }
.opt b { opacity: 0; }
.scene.active .opt--pick { animation: rw-pick .35s .9s var(--rw-ease) forwards; }
.scene.active .opt--pick b { animation: rw-show .3s 1.15s forwards; }
@keyframes rw-pick { to { background: var(--rw-lms); border-color: var(--rw-lms); color: #F6F3EC; } }
.qgrid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; margin-top: 6px; }
.qgrid i { aspect-ratio: 33 / 36.5; border-radius: 10px 4px 4px 4px; background: var(--rw-stone); }
.scene.active .qgrid i { animation: rw-fillq .3s calc(150ms + var(--k) * 170ms) var(--rw-ease) forwards; }
.scene.active .qgrid i.miss { animation-name: rw-missq; }
@keyframes rw-fillq { 60% { transform: scale(1.08); } to { background: var(--rw-lms); } }
@keyframes rw-missq { 60% { transform: scale(1.08); } to { background: transparent; box-shadow: inset 0 0 0 2px var(--rw-ash); } }
.flash { padding: 16px; border: 1.5px solid var(--rw-stone); border-radius: 20px 6px 6px 6px; background: #fff; display: grid; gap: 8px; }
.flash-a { color: var(--rw-ash); font-size: 15px; opacity: 0; }
.scene.active .flash-a { animation: rw-show .4s .6s forwards; }
.streak { display: flex; gap: 4px; }
.streak i { width: 14px; height: 15px; border-radius: 2px; background: var(--rw-lms); }
.streak i.today { box-shadow: inset 0 0 0 2px var(--rw-lms); background: transparent; }
.scene.active .streak i.today { animation: rw-fillq .3s 1.4s forwards; }
.conf { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.conf span { font: 500 12px var(--rw-mono); padding: 8px 12px; border-radius: var(--rw-r-control-sm); border: 1px solid var(--rw-stone); color: var(--rw-ash); }
.scene.active .conf .pick { animation: rw-press .3s 1.1s var(--rw-ease) forwards; }
@keyframes rw-press { 40% { transform: scale(.94); } to { background: var(--rw-char); border-color: var(--rw-char); color: var(--rw-bone); } }
.conf em { margin-left: auto; font: 500 10px var(--rw-mono); letter-spacing: .1em; text-transform: uppercase; font-style: normal; color: var(--rw-lms); opacity: 0; }
.scene.active .conf em { animation: rw-show .4s 1.5s forwards; }
.interval { display: flex; align-items: center; gap: 12px; color: var(--rw-ash); }
.interval s { font: 500 13px var(--rw-mono); }
.interval b { font: 600 13px var(--rw-mono); color: var(--rw-lms); opacity: 0; }
.scene.active .interval b { animation: rw-show .4s 1.4s forwards; }
.curve { width: 100%; height: auto; overflow: visible; }
.curve path { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.curve-forget { stroke: var(--rw-stone); stroke-width: 2; stroke-dasharray: 4 5; }
.curve-memory { stroke: var(--rw-lms); stroke-width: 3.5; stroke-dasharray: 1; stroke-dashoffset: 1; }
.scene.active .curve-memory { animation: rw-draw 1.6s .2s var(--rw-ease) forwards; }
@keyframes rw-draw { to { stroke-dashoffset: 0; } }
.curve-dots circle { fill: var(--rw-lms); stroke: var(--rw-chalk); stroke-width: 2; transform-box: fill-box; transform-origin: center; transform: scale(0); }
.scene.active .curve-dots circle { animation: rw-pop .3s calc(.5s + var(--k) * .45s) var(--rw-ease) forwards; }
@keyframes rw-pop { to { transform: scale(1); } }
.curve-labels text { font: 500 9px var(--rw-mono); letter-spacing: .08em; fill: var(--rw-ash); text-anchor: middle; }
.skillbar { display: grid; gap: 8px; }
.rw-steps { display: flex; gap: 4px; }
.rw-steps i { flex: 1; height: 6px; background: var(--rw-stone); position: relative; overflow: hidden; }
.rw-steps i.on { background: var(--rw-char); }
.loop .rw-steps i.on { background: var(--rw-lms); }
.rw-steps i.grow::after { content: ""; position: absolute; inset: 0; width: 0; background: var(--rw-lms); }
.scene.active .rw-steps i.grow::after { animation: rw-grow .6s 1.6s var(--rw-ease) forwards; }
@keyframes rw-grow { to { width: 100%; } }
.loop-steps { list-style: none; padding: 12px 18px 16px; margin: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; border-top: 1px solid var(--rw-stone); }
.loop-steps button { width: 100%; display: grid; gap: 8px; padding: 0; border: 0; background: none; cursor: pointer; text-align: left; color: inherit; }
.loop-steps i { position: relative; height: 4px; border-radius: 2px; background: var(--rw-stone); overflow: hidden; }
.loop-steps i::after { content: ""; position: absolute; inset: 0; width: 0; background: var(--rw-lms); }
.loop-steps .done i::after { width: 100%; }
.loop-steps .active i::after { animation: rw-grow var(--dur) linear forwards; }
.loop.paused .loop-steps .active i::after, .loop.paused .scene * { animation-play-state: paused !important; }
.loop-steps span { font: 500 9px/1.2 var(--rw-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--rw-ash); }
.loop-steps .active span { color: var(--rw-char); }

/* Progress steps block */
.rw-progress { display: grid; gap: 8px; }
.rw-steps-label { display: flex; justify-content: space-between; gap: 8px; font: 500 10px var(--rw-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--rw-ash); }
.rw-steps-label .is-current { color: var(--rw-char); font-weight: 600; }
:is(.has-char-background-color, .is-style-card-dark) .rw-steps i { background: var(--rw-line); }
:is(.has-char-background-color, .is-style-card-dark) .rw-steps i.on { background: var(--rw-bone); }

/* ---------- journal */
.rw-posts .wp-block-post-template { gap: 24px; }
.rw-posts .wp-block-post { display: flex; flex-direction: column; gap: 14px; }
.rw-posts .wp-block-post > * { margin: 0; }
.is-style-cover { position: relative; aspect-ratio: 16 / 10; border-radius: var(--wp--custom--radius--card); overflow: hidden; padding: 0 !important; transition: transform .45s var(--rw-ease); }
.wp-block-post:hover .is-style-cover { transform: translateY(-4px); }
.is-style-cover > * { max-width: none !important; }
.is-style-cover .wp-block-post-featured-image { position: absolute; inset: 0; margin: 0; }
.is-style-cover .wp-block-post-featured-image :is(a, img) { width: 100%; height: 100%; object-fit: cover; display: block; }
.rw-cover-term { position: absolute; left: 22px; top: 20px; margin: 0 !important; color: var(--rw-bone); z-index: 1; }
.rw-cover-term a { color: inherit; }
.is-style-cover::after { content: ""; position: absolute; right: 22px; bottom: 22px; width: 25%; aspect-ratio: 1; background: url(../brand/rootwright-mark-reverse.svg) center / contain no-repeat; opacity: .92; }
.is-style-cover:has(.wp-block-post-featured-image img)::after { display: none; }
.rw-post-meta { gap: 12px; }
.rw-post-meta > * { margin: 0; }
.rw-posts .wp-block-post-title { font-size: 24px; line-height: 1.2; letter-spacing: -.015em; }
.rw-posts .wp-block-post-title a:hover { text-decoration: underline; text-underline-offset: 4px; }
body:not(.paged) .rw-posts--main .wp-block-post:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1.3fr 1fr; column-gap: clamp(24px, 4vw, 56px); row-gap: 14px; align-content: center; align-items: start; }
body:not(.paged) .rw-posts--main .wp-block-post:first-child .is-style-cover { grid-row: 1 / span 4; aspect-ratio: 16 / 10.5; }
body:not(.paged) .rw-posts--main .wp-block-post:first-child > :nth-child(2) { align-self: end; }
body:not(.paged) .rw-posts--main .wp-block-post:first-child .wp-block-post-title { font-size: clamp(30px, 3.4vw, 44px); line-height: 1.08; letter-spacing: -.03em; }
.wp-block-query-pagination { margin-top: var(--wp--preset--spacing--50); font-weight: 600; }
.is-style-chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--wp--preset--spacing--40); }
.is-style-chips a { display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border-radius: var(--rw-r-control-sm); border: 1px solid var(--rw-stone); background: var(--rw-chalk); text-decoration: none; font-size: 15px; font-weight: 500; transition: .2s; }
.is-style-chips a:hover { border-color: var(--rw-char); }
.is-style-chips .current-cat a { background: var(--rw-char); color: var(--rw-bone); border-color: var(--rw-char); }

/* Single post */
.rw-crumb a { text-decoration: none; }
.rw-byline { gap: 14px; margin-top: 32px; }
.rw-byline > * { margin: 0; }
.rw-byline-text > * { margin: 0; }
.wp-block-avatar img { border-radius: var(--rw-r-plate); }
.rw-author-name { font-weight: 600; }
.rw-article-cover { margin: 0 0 var(--wp--preset--spacing--50); }
.rw-article-cover img { border-radius: var(--rw-r-panel); }
.rw-author-box { margin-top: var(--wp--preset--spacing--60) !important; }
.rw-author-box .wp-block-group > * { margin: 0; }

/* Prose (posts, pages, legal) */
.rw-prose { font-size: 19px; line-height: 1.7; }
.rw-prose > * + * { margin-block-start: 24px; }
.rw-prose h2 { font-size: 32px; line-height: 1.15; letter-spacing: -.02em; margin-top: 56px; scroll-margin-top: 104px; }
.rw-prose h2:first-child { margin-top: 0; }
.rw-prose h3 { font-size: 23px; margin-top: 40px; }
.rw-prose :not(pre) > code { font: .86em var(--rw-mono); background: rgba(21, 17, 14, .07); padding: 2px 6px; border-radius: 4px; }
mark.has-inline-color { padding: 1px 6px; border-radius: 6px 2px 2px 2px; font-size: .88em; }

/* Legal pages */
.rw-legal-meta { gap: 10px; }
.rw-legal-meta > * { margin: 0; }
.rw-updated { font: 500 12px var(--rw-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--rw-ash); }
.rw-legal { gap: clamp(32px, 6vw, 96px) !important; }
.rw-legal > .wp-block-column:first-child { position: sticky; top: 104px; align-self: flex-start; }
.rw-toc-nav { display: grid; gap: 2px; margin-top: 12px; }
.rw-toc-nav a { padding: 8px 12px; border-radius: var(--rw-r-control-sm); color: var(--rw-ash); font-size: 15px; text-decoration: none; transition: background .2s, color .2s; }
.rw-toc-nav a:hover { background: rgba(21, 17, 14, .06); color: var(--rw-char); }

/* ---------- products */
.rw-family-row { gap: 16px; }
.rw-family-row > .wp-block-group > * { margin: 0; }
.rw-family-row > .wp-block-group { display: grid; gap: 10px; }
.rw-family-row img { width: 100%; transition: transform .45s var(--rw-ease); }
.rw-family-row a:hover img { transform: translateY(-6px); }
.rw-lms-detail { gap: 0 !important; border-radius: var(--rw-r-panel); overflow: hidden; border: 1px solid var(--rw-stone); background: var(--rw-chalk); scroll-margin-top: 100px; }
.rw-lms-side, .rw-lms-main { padding: clamp(28px, 4vw, 56px) !important; }
.rw-lms-side > * + *, .rw-lms-main > * + * { margin-top: 24px; }
.rw-lms-side p { color: rgba(246, 243, 236, .82); }
.rw-lms-side .is-style-status-live { color: rgba(246, 243, 236, .82); }
.rw-lms-main .is-style-blocks, .rw-lms-main .is-style-blocks-stone { font-size: 16px; }
.rw-facts { gap: 1px; background: rgba(246, 243, 236, .2); border-radius: 12px; overflow: hidden; }
.rw-facts > .wp-block-group { background: rgba(10, 50, 40, .35); padding: 18px; margin: 0; }
.rw-facts p { margin: 0; }
.rw-fact { font: 600 36px/1 var(--rw-display) !important; letter-spacing: -.03em; color: #F6F3EC !important; }
.rw-roadmap { gap: 16px; }
.rw-roadmap h3 { scroll-margin-top: 110px; }
.rw-roadmap > * { margin: 0 !important; }
.rw-roadmap .wp-block-group > .wp-block-group:first-child { justify-content: space-between; align-items: flex-start; }

/* ---------- pricing */
.wp-block-tabs { margin-top: 0; }
.wp-block-tab-list { display: inline-flex; gap: 0; padding: 4px; border-radius: var(--rw-r-control); background: var(--rw-chalk); border: 1px solid var(--rw-stone); margin-bottom: var(--wp--preset--spacing--40); }
.wp-block-tab-list [role="tab"] { height: 44px; padding: 0 20px; border: 0; background: none; border-radius: var(--rw-r-control-sm); font: 600 15px var(--wp--preset--font-family--text); color: var(--rw-char); cursor: pointer; transition: background .3s, color .3s; }
.wp-block-tab-list [role="tab"][aria-selected="true"] { background: var(--rw-char); color: var(--rw-bone); }
.wp-block-tab-panel { animation: rw-show .5s var(--rw-ease); }
.rw-plans { gap: 16px; }
.rw-plans > * { display: flex; flex-direction: column; margin: 0 !important; }
.rw-price-row { align-items: baseline; gap: 6px; }
.rw-price-row > * { margin: 0; }
.rw-price { font: 600 56px/1 var(--rw-display); letter-spacing: -.04em; }
.rw-sites { font: 600 18px var(--rw-display); padding: 12px 0; border-block: 1px solid var(--rw-stone); }
.is-style-card-dark .rw-sites { border-color: var(--rw-line); }
.rw-plans .is-style-blocks { font-size: 16px; }
.rw-plan-cta { margin-top: auto !important; padding-top: 8px; }
.rw-plan-cta .wp-block-button { width: 100%; }
.rw-plan-cta .wp-block-button__link { width: 100%; text-align: center; }
.rw-founding { gap: 0 !important; border-radius: var(--rw-r-panel); overflow: hidden; }
.rw-founding-left { padding: clamp(32px, 5vw, 64px) !important; }
.rw-founding-right { padding: clamp(32px, 5vw, 64px) !important; background: var(--rw-chalk); border: 1px solid var(--rw-stone); border-left: 0; border-radius: 0 24px 24px 0; }
.rw-founding-right > * + * { margin-top: 24px; }
.rw-big { font: 600 clamp(96px, 14vw, 200px)/.85 var(--rw-display); letter-spacing: -.06em; margin: 16px 0; }
.rw-compare { gap: 0 !important; border: 1px solid var(--rw-stone); border-radius: 20px; overflow: hidden; }
.rw-compare > .wp-block-column { padding: clamp(28px, 4vw, 48px) !important; }
.rw-compare .is-style-blocks { font-size: 16px; }
.wp-block-accordion { border-top: 1px solid var(--rw-stone); }
.wp-block-accordion-item { border-bottom: 1px solid var(--rw-stone); }
.wp-block-accordion-heading { margin: 0; }
.wp-block-accordion-heading__toggle { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 24px 0; border: 0; background: none; text-align: left; font: 600 clamp(19px, 2vw, 24px)/1.3 var(--rw-display); letter-spacing: -.01em; color: inherit; cursor: pointer; }
.wp-block-accordion-heading__toggle-icon { flex: none; width: 14px; height: 15px; border-radius: 3px; background: var(--rw-stone); color: transparent; font-size: 0; transition: background .3s, transform .4s var(--rw-ease); }
.wp-block-accordion-item.is-open .wp-block-accordion-heading__toggle-icon { background: var(--rw-char); transform: rotate(90deg); }
.wp-block-accordion-panel p { padding-bottom: 28px; color: var(--rw-ash); max-width: 64ch; margin: 0; }

/* ---------- about */
.rw-equation { gap: clamp(32px, 5vw, 72px); margin-top: var(--wp--preset--spacing--50); }
.rw-term { position: relative; display: grid; gap: 12px; align-content: start; }
.rw-term > * { margin: 0 !important; }
.rw-term img { width: 100%; aspect-ratio: 1; border-radius: var(--rw-r-plate); border: 1px solid var(--rw-stone); }
.rw-term:last-child img { border: 0; }
.rw-term:not(:last-child)::after { position: absolute; top: calc(50% - 64px); right: calc(clamp(32px, 5vw, 72px) / -2); transform: translate(50%, -50%); font: 300 clamp(40px, 5vw, 72px) var(--rw-display); color: var(--rw-smoke); }
.rw-term:nth-child(1)::after { content: "+"; }
.rw-term:nth-child(2)::after { content: "="; }
.rw-avatar { width: 96px; height: 96px; flex: none; display: grid; place-items: center; border-radius: var(--rw-r-plate); font: 600 34px var(--rw-display); letter-spacing: -.02em; margin: 0; padding: 0 !important; }
.is-style-card .rw-avatar + .wp-block-group > * { margin: 0 0 6px; }
.rw-voice table, .rw-voice th, .rw-voice td { border: 0 !important; }
.rw-voice table { width: 100%; border-collapse: collapse; }
.rw-voice th { text-align: left; padding-bottom: 16px; font: 500 12px var(--rw-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--rw-smoke); }
.rw-voice td { padding: 20px 24px 20px 0; border-top: 1px solid var(--rw-line) !important; width: 50%; font-size: 18px; }
.rw-voice td + td { color: var(--rw-smoke); text-decoration: line-through; text-decoration-color: rgba(168, 158, 146, .5); }

/* ---------- contact */
.rw-contact .is-style-card + .is-style-card, .rw-contact .is-style-card + .is-style-card-dark { margin-top: 16px; }
.rw-big-link a { font: 600 clamp(22px, 2.4vw, 28px) var(--rw-display); letter-spacing: -.02em; text-decoration: none; }
.rw-handles table, .rw-handles th, .rw-handles td { border: 0 !important; }
.rw-handles thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.rw-handles td { padding: 12px 0; border-bottom: 1px solid var(--rw-line) !important; font-size: 15px; }
.rw-handles td + td { text-align: right; font-family: var(--rw-mono); font-size: 13px; color: var(--rw-smoke); }
.rw-handles tr:last-child td { border-bottom: 0 !important; }

/* ---------- call to action */
.is-style-cta { position: relative; overflow: hidden; isolation: isolate; border-radius: var(--rw-r-panel); background: var(--rw-char); color: var(--rw-bone); padding: clamp(40px, 7vw, 96px) !important; gap: 40px; }
.is-style-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: url(../brand/pattern-radical.svg) 0 0 / 72px; animation: rw-drift 30s linear infinite; }
@keyframes rw-drift { to { background-position: 72px 72px; } }
.rw-cta-text { max-width: 760px; }
.rw-cta-text > * + * { margin-top: 20px; }

/* ---------- footer */
.rw-footer { padding-top: clamp(64px, 9vw, 96px) !important; padding-bottom: 32px !important; }
.rw-footer-cols { gap: 40px; padding-bottom: 64px; }
.rw-footer .is-style-eyebrow { margin-bottom: 20px; }
.rw-links { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.rw-links a { color: var(--rw-bone); opacity: .86; text-decoration: none; transition: opacity .2s; }
.rw-links a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
.rw-links img { width: 20px !important; vertical-align: -4px; margin-right: 10px; }
.rw-soon { font: 500 9px var(--rw-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--rw-smoke); margin-left: 6px; }
.rw-footer-bottom { padding-top: 24px; border-top: 1px solid var(--rw-line); color: var(--rw-smoke); font-size: 14px; gap: 24px; }
.rw-footer-bottom > * { margin: 0; }
.rw-legal-links { display: flex; flex-wrap: wrap; gap: 20px; }
.rw-legal-links a { text-decoration: none; }
.rw-legal-links a:hover { color: var(--rw-bone); }

/* ---------- reveal on scroll (classes added by theme.js, so the page works without it) */
.rw-reveal { opacity: 0; transform: translateY(24px); transition: opacity .9s var(--rw-ease), transform .9s var(--rw-ease); transition-delay: calc(var(--i, 0) * 80ms); }
.rw-reveal.in { opacity: 1; transform: none; }

/* ---------- responsive */
@media (max-width: 1080px) {
	.rw-family { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.rw-equation { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 781px) {
	.is-style-numbers > .wp-block-column, .is-style-numbers > .wp-block-column:first-child { padding: 32px 0 8px; border-right: 0; border-top: 1px solid var(--rw-line); }
	.is-style-principles > .wp-block-column, .is-style-principles > .wp-block-column + .wp-block-column { padding: 28px 0 0; border-left: 0; }
	.is-style-principles h3 { margin-top: 20px; }
	.rw-founding-right { border-left: 1px solid var(--rw-stone); border-top: 0; border-radius: 0 0 24px 24px; }
	.rw-legal > .wp-block-column:first-child { position: static; }
	body:not(.paged) .rw-posts--main .wp-block-post:first-child { display: flex; }
	.is-style-field-panel { min-height: 480px; }
}
@media (max-width: 600px) {
	.rw-family { grid-template-columns: 1fr !important; }
	.rw-family > .rw-feature { grid-column: auto !important; min-height: 420px; }
	.rw-equation { grid-template-columns: 1fr !important; }
	.rw-term:not(:last-child)::after { display: none; }
	.rw-term img { max-width: 220px; }
	.loop-scenes { height: 380px; }
	.loop-steps span { display: none; }
	.loop-steps .active span { display: block; white-space: nowrap; }
	.scene h4 { font-size: 19px; }
	.rw-field { gap: 4px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.rw-reveal { opacity: 1; transform: none; }
	.is-style-radical::before { clip-path: none; }
}
