/* Shared mineral grain: texture belongs to the surface, below text and controls. */
:root{--surface-grain:url('/art/surface-grain.svg');--surface-sheen:linear-gradient(135deg,#ffffff06,transparent 48%,#8b73ff04);--surface-inner:#ffffff08}
body{background-image:var(--surface-grain);background-size:160px 160px}
:is(.noema-landing .rv-price-card,.noema-step-card,.noema-board-strip article,.noema-workflow-source,.noema-workflow-output,.noema-usecase-art,.rv-product-preview,.rv-floating-receipt,.rv-receipt-slip,.rv-brand-tile,.rv-doc-cards a,.rv-dialog,.rv-product-menu,.rv-mobile-menu,.rv-header.is-scrolled .rv-header-inner,.np-model-card,.np-status-card,.np-platform-grid>article,.np-overall,.np-panel,.np-stats article,.np-plan-card,.np-selected-model,.np-dialog,.np-dropzone){background-image:var(--surface-grain),var(--surface-sheen);background-size:160px 160px,100% 100%;box-shadow:inset 0 1px 0 var(--surface-inner),0 4px 14px #00000008}
.noema-step-visual{background-image:var(--surface-grain),radial-gradient(ellipse at 50% 0,#8b73ff09,transparent 70%);background-size:160px 160px,100% 100%}
.np-models .np-model-info{background-image:linear-gradient(180deg,#00000008,transparent 90%)}
.noema-greek-art:after{content:'';position:absolute;inset:0;background-image:var(--surface-grain);background-size:160px 160px;opacity:.55;pointer-events:none}
.rv-footer{background-image:var(--surface-grain);background-size:160px 160px}
[data-theme=light]{--surface-sheen:linear-gradient(135deg,#fff9,transparent 50%,#8b73ff06);--surface-inner:#fff9}
[data-theme=light] .np-models .np-model-info{background-image:linear-gradient(180deg,#41364c03,transparent)}

/* Ordered print dots remain visible in the architecture's lit stone, like an engraving. */
.noema-greek-art:after{background-image:radial-gradient(circle,#08080dcf .7px,transparent 1px),var(--surface-grain);background-size:3px 3px,160px 160px;opacity:.85;mix-blend-mode:multiply}
.noema-final-backdrop:before{content:'';position:absolute;inset:0;z-index:1;background:radial-gradient(circle,#08080db3 .65px,transparent 1px);background-size:3px 3px;mix-blend-mode:multiply;opacity:.7;pointer-events:none;mask-image:linear-gradient(180deg,transparent,#000 18%,#000 78%,transparent)}
.noema-temple{opacity:.43}
.noema-faq-columns{opacity:.36}
.noema-hero-backdrop{opacity:.48}
.np-workspace-mark .rv-mark{width:23px;height:23px;color:var(--accent-text)}

/* Four carved scenes share one card frame; artwork stays behind the controls. */
.noema-step-visual{position:relative;isolation:isolate;border-radius:13px 13px 3px 3px;background:radial-gradient(ellipse at 50% 82%,#8b73ff35,transparent 70%),#17151f}
.noema-step-visual:before{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#17151f36,#17151f80),var(--step-scene,url('/art/hero-agora.png')) center 55%/cover;opacity:.72;filter:saturate(.3);transition:transform .7s ease,opacity .7s ease}
.noema-step-visual:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle,#08080d80 .65px,transparent 1px),linear-gradient(0deg,#17151f 0,transparent 35%),radial-gradient(ellipse at 50% 50%,#8b73ff22,transparent 70%);background-size:3px 3px,100% 100%,100% 100%}
.noema-timeline li:nth-child(2) .noema-step-visual{--step-scene:url('/art/thinker.png')}
.noema-timeline li:nth-child(3) .noema-step-visual{--step-scene:url('/art/temple.png')}
.noema-timeline li:nth-child(4) .noema-step-visual{--step-scene:url('/art/doorway-courtyard.png')}
.noema-step-visual svg{position:relative;z-index:1;filter:drop-shadow(0 12px 18px #0009)}
.noema-step-card:hover .noema-step-visual:before{transform:scale(1.035);opacity:.86}
[data-theme=light] .noema-step-visual{background-color:#e8e1f2}
[data-theme=light] .noema-step-visual:before{opacity:.38;filter:saturate(.25) contrast(.8)}
[data-theme=light] .noema-step-visual:after{background:radial-gradient(circle,#79668850 .65px,transparent 1px),linear-gradient(0deg,#ece7f2,transparent 50%);background-size:3px 3px,100% 100%}

/* Selected controls use a fill. Keyboard focus has one simple indicator. */
:where(a,button,summary):focus-visible{outline:1px solid var(--accent-text);outline-offset:3px;box-shadow:none}
:where(input,select,textarea):focus-visible{outline:none;box-shadow:none;border-color:var(--accent-text)}
.np-shell :is(input,select,textarea):focus-visible{box-shadow:none}
.np-shell :is(button,a):focus-visible,.np-login :is(button,a):focus-visible{outline-width:1px}
