/* Shared theme tokens: neutral graphite surfaces, paper-white type and the brand's lime signal. */
:root {
  --rw-control-bg: transparent;
  --rw-control-hover: var(--rw-soft);
  --rw-button-bg: var(--rw-ink);
  --rw-button-ink: #ffffff;
  --rw-button-hover: #285545;
  --rw-theme-radius: 7px;
  --rw-theme-motion: 180ms cubic-bezier(.22,1,.36,1);
}
:root[data-theme="dark"] {
  --rw-canvas: #101112;
  --rw-white: #1a1c1e;
  --rw-ink: #f0f2ed;
  --rw-muted: #b2b8af;
  --rw-line: #35393a;
  --rw-accent: #d6f58a;
  --rw-soft: #202325;
  --rw-focus: #d6f58a;
  --rw-subtle: #c1c9b6;
  --rw-surface: #17191a;
  --rw-raised: #232628;
  --rw-stage: #24292b;
  --rw-stage-violet: #292830;
  --rw-header-bg: rgb(16 17 18 / .96);
  --rw-button-bg: #d6f58a;
  --rw-button-ink: #183023;
  --rw-button-hover: #e1ffa3;
  --rw-error: #ff9b94;
  --rw-shadow: 0 16px 40px rgb(0 0 0 / .2);
}
/* Explicit body tokens override the old page-scoped light palettes. */
:root[data-theme="dark"] body.rework-page {
  --ink: var(--rw-ink);
  --ink-soft: var(--rw-muted);
  --white: var(--rw-canvas);
  --mint: var(--rw-surface);
  --mint-strong: var(--rw-soft);
  --green: var(--rw-accent);
  --green-bright: var(--rw-accent);
  --green-hover: var(--rw-button-hover);
  --green-text: var(--rw-accent);
  --line: var(--rw-line);
  --line-dark: var(--rw-muted);
  --field-border: #636a66;
  --map-grid: #25282a;
  --map-branch: #636a66;
  --panel-ink: var(--rw-canvas);
  --panel-green: var(--rw-surface);
  --panel-green-inner: var(--rw-soft);
  --footer-bg: var(--rw-canvas);
  --footer-ink: var(--rw-ink);
  --footer-muted: var(--rw-muted);
  --footer-line: var(--rw-line);
  --error: var(--rw-error);
  --scroll-track: var(--rw-soft);
  background: var(--rw-canvas);
  color: var(--rw-ink);
  color-scheme: dark;
}
.rw-nav { gap: 22px; }
.rw-navigation { order: 2; margin-left: auto; }
.rw-nav-tools { order: 3; display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.rw-theme-toggle {
  display: inline-grid; place-items: center; position: relative;
  width: 44px; height: 44px; flex: 0 0 44px; padding: 0;
  color: var(--rw-ink); background: var(--rw-control-bg);
  border: 1px solid var(--rw-line); border-radius: var(--rw-theme-radius);
  cursor: pointer; transition: background var(--rw-theme-motion), border-color var(--rw-theme-motion);
}
.rw-theme-toggle[hidden] { display: none; }
.rw-theme-toggle:hover { background: var(--rw-control-hover); border-color: var(--rw-muted); }
.rw-theme-toggle:focus-visible { outline: 3px solid var(--rw-focus); outline-offset: 4px; }
.rw-theme-toggle svg { grid-area: 1 / 1; transition: transform var(--rw-theme-motion), opacity var(--rw-theme-motion); }
.rw-theme-toggle .rw-theme-sun { opacity: 0; transform: rotate(-45deg) scale(.6); }
:root[data-theme="dark"] .rw-theme-toggle .rw-theme-sun { opacity: 1; transform: rotate(0) scale(1); }
:root[data-theme="dark"] .rw-theme-toggle .rw-theme-moon { opacity: 0; transform: rotate(45deg) scale(.6); }
:root[data-theme="dark"] .rw-header { background: var(--rw-header-bg); }
:root[data-theme="dark"] .rw-scroll-progress span { background: var(--rw-accent); }
:root[data-theme="dark"] .rework-page :is(h2>span,.rw-hero h1>span) { color: var(--rw-subtle); }
:root[data-theme="dark"] .rework-page :is(.rw-button,.button) { color: var(--rw-button-ink)!important; border-color: var(--rw-button-bg); background: var(--rw-button-bg); box-shadow: none; }
:root[data-theme="dark"] .rework-page :is(.rw-button,.button):hover { background: var(--rw-button-hover); border-color: var(--rw-button-hover); color: var(--rw-button-ink); }
:root[data-theme="dark"] .rework-page .rw-button-secondary { background: transparent; border-color: var(--rw-line); color: var(--rw-ink)!important; }
:root[data-theme="dark"] .rework-page .rw-button-secondary:hover { background: var(--rw-soft); border-color: var(--rw-muted); }
:root[data-theme="dark"] .rework-page :is(.rw-skip,.skip-link) { background: var(--rw-accent); color: var(--rw-button-ink); }
:root[data-theme="dark"] .rw-status-dot { background: var(--rw-accent); box-shadow: none; }
:root[data-theme="dark"] :is(.rw-service-number,.rw-service-symbol,.rw-media-note,.rw-work-nav>a>span:first-child,.rw-window-bar>b) { color: var(--rw-muted); }
:root[data-theme="dark"] :is(.rw-service,.rw-contact-form) { background: var(--rw-surface); }
:root[data-theme="dark"] .rw-service-featured { background: var(--rw-soft); }
:root[data-theme="dark"] .rw-work-section { background: var(--rw-surface); }
:root[data-theme="dark"] :is(.rw-work-nav,.rw-work-nav>a,.rw-work-card,.rw-tags li,.rw-round-link,.rw-contact-section,.rw-contact-form) { border-color: var(--rw-line); }
:root[data-theme="dark"] .rw-round-link:hover { color: var(--rw-button-ink); }
:root[data-theme="dark"] .rw-product-image { background: var(--rw-stage); border-color: var(--rw-line); }
:root[data-theme="dark"] .rw-product-learning { background: var(--rw-stage-violet); }
:root[data-theme="dark"] .rw-product-phones { background: var(--rw-canvas); }
:root[data-theme="dark"] .rw-product-desktop img { border-color: var(--rw-line); box-shadow: var(--rw-shadow); }
:root[data-theme="dark"] .rw-window-bar { background: var(--rw-raised); border-color: var(--rw-line); }
:root[data-theme="dark"] .rw-window-bar>span { background: var(--rw-muted); }
:root[data-theme="dark"] .rw-about-band { background: var(--rw-soft); color: var(--rw-ink); border-block: 1px solid var(--rw-line); }
:root[data-theme="dark"] :is(.rw-about-photo>span,.rw-about-grid p:not(.rw-eyebrow),.rw-about-aside small) { color: var(--rw-muted); }
:root[data-theme="dark"] .rw-about-grid .rw-eyebrow { color: var(--rw-accent); }
:root[data-theme="dark"] .rw-about-aside { border-color: var(--rw-line); }
:root[data-theme="dark"] .rw-contact-section { background: var(--rw-soft); }
:root[data-theme="dark"] .rw-contact-grid h2>span { color: var(--rw-accent); }
:root[data-theme="dark"] :is(.rw-contact-grid>div>p:not(.rw-eyebrow),.rw-contact-person span,.rw-contact-form label>span) { color: var(--rw-muted); }
:root[data-theme="dark"] .rw-contact-form { box-shadow: none; }
:root[data-theme="dark"] .rw-contact-form :is(input,textarea) { background: var(--rw-canvas); border-color: var(--field-border); color: var(--rw-ink); }
:root[data-theme="dark"] .rw-contact-form :is(input,textarea)::placeholder { color: var(--rw-muted); }
:root[data-theme="dark"] .rw-contact-form :is(input,textarea):user-invalid { border-color: var(--rw-error); }
/* Portfolio and case studies: media stays in its authentic application colors. */
:root[data-theme="dark"] .rp-page :is(.rp-hero h1 em,.rp-hero-bottom>p,.rp-breadcrumb,.rp-index-nav span,.rp-project-copy>p,.rp-tags,.rp-media>figcaption,.rp-outcome span,.rp-case-meta dt,.rp-story-copy>p,.rp-capability>span,.rp-capability p,.rp-flow-label,.rp-flow li p,.rp-next span,.rp-extra) { color: var(--rw-muted); }
:root[data-theme="dark"] .rp-page :is(.rp-index-nav a,.rp-media>figcaption a,.rp-outcome p,.rp-case-nav a,.rp-story-copy>p strong,.rp-next a,.rp-extra a,.rp-breadcrumb a:hover,.text-link) { color: var(--rw-ink); }
:root[data-theme="dark"] .rp-page :is(.rp-index-nav,.rp-project,.rp-window,.rp-window-bar,.rp-outcome,.rp-case-meta div,.rp-case-nav,.rp-capabilities,.rp-capability,.rp-flow,.rp-next,.project-gallery-frame,.project-insight-list li,.architecture-scroll,.application-insights li,.tech-ledger dl>div,.engineering-principles) { border-color: var(--rw-line); }
:root[data-theme="dark"] .rp-page .rp-stage { background: var(--rw-stage); }
:root[data-theme="dark"] .rp-page .rp-stage::before { border-color: var(--rw-line); }
:root[data-theme="dark"] .rp-page .rp-stage-randalo { background: var(--rw-canvas); }
:root[data-theme="dark"] .rp-page .rp-stage-keinbock { background: var(--rw-stage-violet); }
:root[data-theme="dark"] .rp-page :is(.rp-window,.rp-window-bar) { background: var(--rw-raised); box-shadow: none; }
:root[data-theme="dark"] .rp-page .rp-window-bar span { color: var(--rw-muted); }
:root[data-theme="dark"] .rp-page .rp-window-bar i { background: var(--rw-muted); }
:root[data-theme="dark"] .rp-page .rp-cta { background: var(--rw-soft); color: var(--rw-ink); border-block: 1px solid var(--rw-line); }
:root[data-theme="dark"] .rp-page .rp-cta p { color: var(--rw-muted); }
:root[data-theme="dark"] .rp-page .rp-cta .rw-eyebrow { color: var(--rw-accent); }
:root[data-theme="dark"] .rp-page .rp-flow b { color: var(--rw-button-ink); background: var(--rw-accent); }
:root[data-theme="dark"] .rp-page .rp-flow li::before { background: var(--rw-line); }
:root[data-theme="dark"] .rp-page :is(.project-gallery-section,.project-engineering-wrap) { background: var(--rw-surface); }
:root[data-theme="dark"] .rp-page .screenshot-tour-section { background: var(--rw-canvas); }
:root[data-theme="dark"] .rp-page :is(.project-section-heading>p:last-child,.media-topline,.project-gallery-figure figcaption,.project-insight-list span,.engineering-header>p:last-child,.engineering-label,.architecture-artifact figcaption,.application-insights li span,.tech-ledger dt,.engineering-principle>span,.engineering-principle p,.application-insights li::before) { color: var(--rw-muted); }
:root[data-theme="dark"] .rp-page :is(.case-engineering,.engineering-header h2,.application-insights h3,.tech-ledger h3,.application-insights li strong,.tech-ledger dd,.engineering-principle h3) { color: var(--rw-ink); }
:root[data-theme="dark"] .rework-page :is(.system-label,.engineering-label) { color: var(--rw-subtle); }
:root[data-theme="dark"] .rp-page :is(.project-gallery-grid-phone .project-gallery-frame,.project-randalo-gallery .randalo-stage,.screenshot-tour.is-mobile-screenshot .screenshot-frame) { background: var(--rw-stage); }
:root[data-theme="dark"] .rp-page .project-randalo-gallery .randalo-stage { scrollbar-color: var(--rw-muted) var(--rw-stage); }
:root[data-theme="dark"] .rework-page .screenshot-nav button[aria-current="true"] { background: var(--rw-accent); border-color: var(--rw-accent); color: var(--rw-button-ink); }
:root[data-theme="dark"] .rp-page .architecture-zoom { color: var(--rw-ink); border-color: var(--rw-line); }
:root[data-theme="dark"] .rp-page .architecture-zoom:hover { background: var(--rw-soft); }
:root[data-theme="dark"] .rp-page .architecture-dialog { color: var(--rw-ink); background: var(--rw-canvas); border-color: var(--rw-line); }
:root[data-theme="dark"] .rp-page .architecture-dialog-header { border-color: var(--rw-line); }
:root[data-theme="dark"] .rp-page .architecture-dialog-close { color: var(--rw-ink); background: var(--rw-soft); border-color: var(--rw-line); }
/* About, integration, legal pages and the existing project planner. */
:root[data-theme="dark"] .secondary-page main :is(h1,h2,h3) { color: var(--rw-ink); }
:root[data-theme="dark"] .secondary-page main h1 span { color: var(--rw-subtle); }
:root[data-theme="dark"] .secondary-page :is(.text-link,.legal-copy a) { color: var(--rw-accent); }
:root[data-theme="dark"] .secondary-page :is(a,button,input,select,textarea,summary):focus-visible { outline-color: var(--rw-focus); }
:root[data-theme="dark"] .secondary-page :is(.about-introduction>p.about-lead,.chatgpt-introduction>p.chatgpt-lead) { color: var(--rw-subtle); }
:root[data-theme="dark"] .secondary-page :is(.about-profile,.about-expertise-grid article,.chatgpt-process-grid>li,.chatgpt-usecase-grid article,.planner-aside) { background: var(--rw-soft); border-color: var(--rw-line); }
:root[data-theme="dark"] .secondary-page :is(.about-profile li,.about-principles li>span,.planner-intro ul,.planner-progress button,.secondary-plan-result-label,.secondary-plan-result-bottom) { color: var(--rw-muted); border-color: var(--rw-line); }
:root[data-theme="dark"] .secondary-page :is(.about-approach,.about-expertise,.chatgpt-process,.chatgpt-voice,.chatgpt-responsibility,.planner-next-steps) { background: var(--rw-surface); border-color: var(--rw-line); }
:root[data-theme="dark"] .secondary-page .career-timeline article::before { background: var(--rw-accent); box-shadow: 0 0 0 6px var(--rw-canvas); }
:root[data-theme="dark"] .secondary-page :is(.about-contact,.chatgpt-contact) { background: var(--rw-soft); border-block: 1px solid var(--rw-line); }
:root[data-theme="dark"] .secondary-page :is(.chatgpt-hero-example,.chatgpt-plan-example,.planner-form,.secondary-plan-result) { background: var(--rw-surface); border-color: var(--rw-line); box-shadow: none; }
:root[data-theme="dark"] .secondary-window-bar { color: var(--rw-muted); background: var(--rw-soft); border-color: var(--rw-line); }
:root[data-theme="dark"] .secondary-window-dots i { background: var(--rw-muted); }
:root[data-theme="dark"] .secondary-window-status { color: var(--rw-accent); }
:root[data-theme="dark"] .secondary-page :is(.chatgpt-hero-example blockquote,.chatgpt-plan-check,.chatgpt-questions details[open]) { color: var(--rw-ink); background: var(--rw-soft); }
:root[data-theme="dark"] .secondary-page .chatgpt-bridge li { border-color: var(--rw-line); }
:root[data-theme="dark"] .secondary-page .chatgpt-bridge li>span { color: var(--rw-button-ink); background: var(--rw-accent); }
:root[data-theme="dark"] .secondary-page .chatgpt-draft-label { color: var(--rw-accent); background: var(--rw-soft); border-color: var(--rw-line); }
:root[data-theme="dark"] .secondary-page .planner-intro ul li::before { color: var(--rw-accent); }
:root[data-theme="dark"] .secondary-page :is(.secondary-plan-art,.planner-progress) { background: var(--rw-soft); border-color: var(--rw-line); }
:root[data-theme="dark"] .secondary-page .secondary-plan-art figcaption { border-color: var(--rw-line); }
:root[data-theme="dark"] .secondary-plan-result>strong { color: var(--rw-ink); }
:root[data-theme="dark"] .secondary-page.planner-page .secondary-plan-result ul { color: var(--rw-muted); }
:root[data-theme="dark"] .secondary-page.planner-page .secondary-plan-result ul li::before { color: var(--rw-accent); }
:root[data-theme="dark"] .secondary-page .planner-progress button span { border-color: var(--rw-line); }
:root[data-theme="dark"] .secondary-page .planner-progress button[aria-current="step"] { color: var(--rw-ink); border-bottom-color: var(--rw-accent); }
:root[data-theme="dark"] .secondary-page .planner-progress button[aria-current="step"] span { color: var(--rw-button-ink); background: var(--rw-accent); border-color: var(--rw-accent); }
:root[data-theme="dark"] .secondary-page.planner-page .planner-goal { background: var(--rw-canvas); border-color: var(--rw-line); }
:root[data-theme="dark"] .secondary-page.planner-page .planner-goal:has(input:checked) { background: var(--rw-soft); border-color: var(--rw-accent); box-shadow: inset 0 0 0 1px var(--rw-accent); }
:root[data-theme="dark"] .secondary-page.planner-page .planner-goal-art .planner-goal-icon { color: var(--rw-accent); }
:root[data-theme="dark"] .secondary-page .planner-checks label { background: var(--rw-canvas); border-color: var(--rw-line); }
:root[data-theme="dark"] .secondary-page .planner-checks label:has(input:checked) { background: var(--rw-soft); border-color: var(--rw-accent); }
:root[data-theme="dark"] .secondary-page .planner-form :is(input:not([type="checkbox"]),textarea,select),
:root[data-theme="dark"] .secondary-page .form-select-trigger { background: var(--rw-canvas); color: var(--rw-ink); }
:root[data-theme="dark"] .legacy-project-page .tour-hero-grid>div>p:not(.system-label) { color: var(--rw-muted); }
:root[data-theme="dark"] .secondary-page .legal-copy .eyebrow { color: var(--rw-subtle); }
@media(max-width:1150px) { .rw-nav { gap: 16px; } .rw-navigation { gap: 18px; } }
@media(max-width:920px) { .rw-nav-tools { margin-left: auto; gap: 15px; } .rw-navigation { margin-left: 0; } .rw-menu { padding-left: 0; } }
@media(max-width:400px) { .rw-nav { gap: 8px; } .rw-nav-tools { gap: 10px; } .rw-nav .rw-brand { font-size: 17px; gap: 8px; } .rw-nav .rw-brand small { font-size: 6.8px; letter-spacing: .9px; } .rw-menu { font-size: 12px; gap: 7px; } }
@media(prefers-reduced-motion:reduce) { .rw-theme-toggle,.rw-theme-toggle svg { transition: none; } }
@media print { .rw-nav-tools { display:none!important; } }
/* Apply the whole palette in one frame; hover transitions resume immediately. */
html.rw-theme-changing .rework-page *, html.rw-theme-changing .rework-page *::before, html.rw-theme-changing .rework-page *::after { transition: none!important; }
:root[data-theme="dark"] .legacy-project-page .engineering-label span { color: var(--rw-button-ink); }
