/* Reveno Design Kernel. No runtime, asset or product layout required. */
.rv-scene { margin: 0; background: var(--rv-semantic-canvas); color: var(--rv-semantic-content); font-family: var(--rv-font-sans); isolation: isolate; }
.rv-scene > * { position: relative; z-index: 1; }
.rv-scene[data-rv-density="quiet"] { --rv-composition-gap: var(--rv-composition-quiet-gap); }
.rv-scene[data-rv-density="standard"], .rv-scene:not([data-rv-density]) { --rv-composition-gap: var(--rv-composition-standard-gap); }
.rv-scene[data-rv-density="dense"] { --rv-composition-gap: var(--rv-composition-dense-gap); }
.rv-stage { position: relative; display: grid; align-items: center; min-block-size: var(--rv-composition-stage-min); max-block-size: var(--rv-composition-stage-max); inline-size: var(--rv-composition-scene-inline); margin-inline: auto; padding-block: var(--rv-composition-gap); overflow: clip; }
.rv-stage[data-rv-stage="compact"] { min-block-size: auto; max-block-size: none; }
.rv-hero-object { position: relative; z-index: 0; inline-size: min(100%, var(--rv-composition-focus-max)); }
.rv-focus { position: relative; z-index: 2; min-inline-size: 0; max-inline-size: var(--rv-composition-focus-max); }
.rv-silence { min-block-size: var(--rv-composition-quiet-gap); pointer-events: none; }
.rv-intelligence-field, .rv-field { background-color: var(--rv-visual-field); background-image: radial-gradient(circle at 72% 28%, color-mix(in srgb, var(--rv-visual-glow) 18%, transparent), transparent 32rem), linear-gradient(var(--rv-visual-depth), var(--rv-visual-depth)); }
.rv-intelligence-field { position: relative; isolation: isolate; }
.rv-intelligence-field::before { position: absolute; z-index: 0; inset: 0; pointer-events: none; content: ""; background-image: linear-gradient(color-mix(in srgb, var(--rv-visual-graph) 11%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--rv-visual-graph) 11%, transparent) 1px, transparent 1px); background-size: var(--rv-visual-field-grid); mask-image: linear-gradient(to bottom, #000, transparent 92%); }
.rv-intelligence-field > * { position: relative; z-index: 1; }
.rv-intelligence-field[data-rv-field="institutional"] { --rv-visual-glow: var(--rv-color-brand); --rv-visual-trace: var(--rv-visual-time); }
.rv-intelligence-field[data-rv-field="commons"] { --rv-visual-glow: var(--rv-color-status-info); --rv-visual-trace: var(--rv-color-status-success); }
.rv-intelligence-field[data-rv-field="evidence"] { --rv-visual-glow: var(--rv-color-brand-dark); --rv-visual-trace: var(--rv-color-status-info); }
.rv-intelligence-field[data-rv-field="harness"] { --rv-visual-glow: var(--rv-color-status-success); --rv-visual-trace: var(--rv-color-brand); }
.rv-graph { background-image: linear-gradient(color-mix(in srgb, var(--rv-visual-graph) 11%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--rv-visual-graph) 11%, transparent) 1px, transparent 1px); background-size: 2rem 2rem; }
.rv-depth { box-shadow: 0 2rem 5rem color-mix(in srgb, var(--rv-visual-depth) 78%, transparent); }
.rv-glow { box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--rv-visual-glow) 15%, transparent), 0 0 2.75rem color-mix(in srgb, var(--rv-visual-glow) 34%, transparent); }
.rv-entity { color: var(--rv-visual-entity); font-weight: var(--rv-weight-semibold); }
.rv-relation { color: var(--rv-visual-relation); }
.rv-signal { color: var(--rv-visual-signal); }
.rv-trace { color: var(--rv-visual-trace); stroke: currentColor; fill: none; stroke-width: 2; vector-effect: non-scaling-stroke; }
.rv-boundary { border: 1px dashed var(--rv-visual-boundary); }
.rv-state { color: var(--rv-visual-state); }
.rv-time { color: var(--rv-visual-time); font-family: var(--rv-font-mono); font-size: var(--rv-size-xs); }
.rv-evidence { color: var(--rv-semantic-evidence); font: var(--rv-weight-medium) var(--rv-size-xs)/1.4 var(--rv-font-mono); }
.rv-reveal { animation: rv-reveal var(--rv-motion-reveal) var(--rv-motion-ease) both; }
.rv-reveal[data-rv-reveal="late"] { animation-delay: var(--rv-motion-fast); }
.rv-transition { transition: opacity var(--rv-motion-transition) var(--rv-motion-ease), transform var(--rv-motion-transition) var(--rv-motion-ease), color var(--rv-motion-standard) var(--rv-motion-ease); }
.rv-product-moment, .rv-evidence-moment { display: grid; gap: var(--rv-space-4); max-inline-size: var(--rv-composition-focus-max); }
.rv-product-moment { border-inline-start: 2px solid var(--rv-visual-signal); padding-inline-start: var(--rv-space-4); }
.rv-evidence-moment { border-inline-start: 2px solid var(--rv-visual-trace); padding-inline-start: var(--rv-space-4); }

/* Experience System: semantic SVG/DOM primitives and an accessible DOM companion. */
.rv-field-visual { display: block; inline-size: 100%; block-size: auto; overflow: visible; color: var(--rv-visual-graph); }
.rv-field-visual .rv-trace { fill: none; stroke: currentColor; stroke-width: var(--rv-visual-trace-width); stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.rv-field-visual .rv-trace[data-rv-state="active"] { stroke: var(--rv-visual-glow); stroke-width: var(--rv-visual-trace-width-active); }
.rv-field-node { r: var(--rv-visual-node-size); fill: var(--rv-semantic-surface); stroke: var(--rv-visual-graph); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.rv-field-node[data-rv-kind="entity"] { fill: var(--rv-semantic-surface); stroke: var(--rv-visual-entity); }
.rv-field-node[data-rv-kind="signal"] { fill: var(--rv-visual-signal); stroke: var(--rv-semantic-canvas); }
.rv-field-node[data-rv-kind="state"] { fill: var(--rv-visual-state); stroke: var(--rv-semantic-canvas); }
.rv-field-label { fill: var(--rv-visual-entity); font: 600 12px/1.2 var(--rv-font-sans); }
.rv-field-companion { display: grid; gap: var(--rv-space-2); color: var(--rv-semantic-content); font-size: var(--rv-size-sm); }
.rv-field-companion ol { display: grid; gap: var(--rv-space-2); margin: 0; padding-inline-start: 1.25rem; }
.rv-field-companion li::marker { color: var(--rv-visual-glow); }
.rv-sr-only { position: absolute !important; inline-size: 1px; block-size: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.rv-intelligence-field[data-rv-field="institutional"] { --rv-visual-glow: var(--rv-profile-institutional-accent); --rv-visual-trace: var(--rv-visual-time); }
.rv-intelligence-field[data-rv-field="commons"] { --rv-visual-glow: var(--rv-color-status-info); --rv-visual-trace: var(--rv-color-status-success); }
.rv-intelligence-field[data-rv-field="evidence"] { --rv-visual-glow: var(--rv-profile-evidence-accent); --rv-visual-trace: var(--rv-color-status-info); }
.rv-intelligence-field[data-rv-field="harness"] { --rv-visual-glow: var(--rv-color-status-success); --rv-visual-trace: var(--rv-color-brand); }

/* Legacy utilities are intentionally quiet: cards and borders require opt-in. */
.rv-surface { background: var(--rv-semantic-surface); color: var(--rv-semantic-content); }
.rv-surface[data-rv-boundary="visible"] { border: 1px solid var(--rv-semantic-boundary); border-radius: var(--rv-radius-md); }
.rv-card { padding: var(--rv-space-6); }
.rv-card[data-rv-boundary="visible"] { border: 1px solid var(--rv-semantic-boundary); border-radius: var(--rv-radius-md); }
.rv-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 2.5rem; gap: var(--rv-space-2); padding: .625rem .9375rem; border: 1px solid transparent; border-radius: var(--rv-radius-sm); font: var(--rv-weight-semibold) var(--rv-size-sm)/1 var(--rv-font-sans); text-decoration: none; cursor: pointer; transition: background var(--rv-motion-standard) var(--rv-motion-ease), border-color var(--rv-motion-standard) var(--rv-motion-ease), transform var(--rv-motion-standard) var(--rv-motion-ease); }
.rv-btn:hover { transform: translateY(-1px); }.rv-btn:focus-visible { outline: 3px solid color-mix(in srgb, var(--rv-color-brand) 45%, transparent); outline-offset: 2px; }.rv-btn-primary { background: var(--rv-color-brand); color: var(--rv-color-on-brand); }.rv-btn-primary:hover { background: var(--rv-color-brand-hover); }.rv-btn-secondary { background: var(--rv-color-surface-raised); border-color: var(--rv-color-border); color: var(--rv-color-text); }.rv-btn-ghost { background: transparent; color: var(--rv-color-text-secondary); }
.rv-kicker { color: var(--rv-color-brand); font: var(--rv-weight-bold) var(--rv-size-xs)/1.25 var(--rv-font-mono); letter-spacing: .1em; text-transform: uppercase; }.rv-muted { color: var(--rv-color-text-tertiary); }.rv-divider { height: 1px; border: 0; background: var(--rv-color-border-subtle); }.rv-grid { display: grid; gap: var(--rv-space-4); }.rv-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }.rv-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }.rv-stack { display: flex; flex-direction: column; gap: var(--rv-space-4); }.rv-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--rv-space-2); }
@keyframes rv-reveal { from { opacity: 0; transform: translateY(.75rem); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 760px) { .rv-stage { inline-size: min(100% - 1.5rem, 80rem); } .rv-grid-2, .rv-grid-3 { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .rv-reveal { animation: none; } .rv-transition, .rv-btn { transition-duration: 0ms; } }
