/* Public-main colours and symbol: aspinos.com and git main 9ab3de0f.
   Typography remains the existing review Archivo at the founder's request.
   Landing tokens come from main:src/app/landing.css; surfaces use its app
   ground/panel set. Scene layout and clock ownership remain unchanged. */
:root {
  --sans: Archivo, Arial, sans-serif;
  --serif: Archivo, Arial, sans-serif;
  --main-intelligence: #4fd6e8;
  --main-prediction: #f0b43e;
  --main-authority: #f05a4f;
  --main-audited: #67d698;
  --main-reason: #a78bfa;
  color-scheme: dark;
  --paper: #071018;
  --ink: #edf5f6;
  --surface: #10151d;
  --surface-raised: #161c25;
  --muted: #aeb6bf;
  --copper: #4fd6e8;
  --copper-light: #6ee0ef;
  --rule: #94a3b82b;
  --school-source-background: #071018;
  --main-charcoal: #071018;
  --main-film-ink: #edf5f6;
}
html, body { background: var(--paper); color: var(--ink); }
::selection { background: #4fd6e8; color: #06272c; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline-color: var(--copper);
}
.button { background: var(--copper); color: #edf5f6; }
.button:hover { background: #6ee0ef; }
.button.outline { background: transparent; color: var(--ink); border-color: var(--ink); }
.text-link:hover { color: var(--copper); }
.site-header, .document-page .site-header, .case-page .site-header {
  background: var(--paper) !important;
  color: var(--ink);
  border-color: var(--rule) !important;
}
.landing-page .site-header { background: transparent !important; color: #edf5f6; border-color: #edf5f633 !important; }
.brand-wordmark .aspinos-mark { color: currentColor; }
.brand-wordmark .brand-lettering {
  display: inline-block;
  width: auto;
  height: auto;
  font: 550 24px/1 var(--sans);
  letter-spacing: .11em;
  color: currentColor;
}
.site-footer .brand-wordmark .brand-lettering { width: auto; height: auto; font-size: 29px; }
.nav-panel, .mobile-nav { background: var(--paper); color: var(--ink); border-color: var(--rule); }
.site-header .nav-panel > a, .site-header .mobile-nav a { color: var(--ink); }
.site-header .nav-panel a:hover, .site-header [aria-current=page] { color: var(--copper) !important; }
.site-header .menu-toggle { color: currentColor; }
.mobile-nav > div > p { color: var(--muted); }

/* Shared dark canvas carries film and reading through the same experience. */
.connected-world, .connected-stage, .story-stage, .living-world, .community-chapter,
.place-panel, .world-interlude, .horizon-section, .build-chapter, .site-footer, .review-footer {
  --paper: #071018;
  --ink: #edf5f6;
  --surface: #10151d;
  --surface-raised: #10151d;
  --muted: #aeb6bf;
  --copper: #4fd6e8;
  --copper-light: #6ee0ef;
  --rule: #edf5f638;
  background: #071018;
  color: #edf5f6;
}
.connected-stage { background: #071018; }
.connected-grain { background: radial-gradient(ellipse 53% 43% at 50% 43%, #071018b3, transparent 95%); }
.connected-stage::before { background: linear-gradient(#071018f5, transparent); }
.connected-copy h1 { color: #edf5f6; text-shadow: 0 3px 40px #071018; }
.connected-copy p, .connected-purpose p, .connected-source, .connected-stakes p { color: #aeb6bf; }
.connected-purpose h2, .connected-stakes h2 { color: #edf5f6; }
.immersive-classification, .opening-classification { color: #aeb6bf; }
.opening-classification { background: #071018b8; }
#school-stage .story-shade { background: linear-gradient(180deg, #071018c9 0, transparent 57%, #07101886) !important; }
#school-stage[data-phase=reality] .story-shade, #school-stage[data-phase=observe] .story-shade {
  background: linear-gradient(270deg, #071018d9 0, #07101873 30%, transparent 67%) !important;
}
.story-copy, .story-copy h2, .hero-copy h2, .community-copy, .community-copy h2, .place-copy, .place-copy h3 { color: #edf5f6; }
.story-copy p, .hero-copy p, .community-copy > p, .place-copy p, .story-footer .source-label { color: #aeb6bf; }
.story-footer { color: #edf5f6; background: linear-gradient(transparent, #071018f0); }
.story-stage[data-phase=response].is-visible .story-footer { background: linear-gradient(#071018 65%, transparent); }
.experience-controls, .place-playback, .place-stage-controls, .platform-layers, .mechanism-playback, .world-camera-controls, .world-controls {
  background: #161c25ed;
  color: #edf5f6;
  border-color: #94a3b82b;
}
.experience-controls .play-control { background: #4fd6e8; color: #edf5f6; }
.experience-controls button, .place-stage-controls button, .platform-layers button { color: #edf5f6; }
.place-playback button[aria-pressed=true], .platform-layers button[aria-pressed=true] { background: #071018; color: #edf5f6; }
.living-world { background: #071018; }
.living-copy .eyebrow, .living-copy > p, .living-caption, .living-steps button, .living-steps button b { color: #aeb6bf; }
.living-symbols, .living-stage[data-layer=authority] .living-symbols { color: #4fd6e8; }
.living-steps { border-color: #edf5f638; }
.living-steps button[aria-pressed=true] { color: #edf5f6; border-color: #4fd6e8; }
.living-steps button:hover { background: #edf5f60d; }
.community-chapter .community-shade { background: linear-gradient(90deg, #071018ed, transparent 77%) !important; }
.community-chapter.understanding .community-shade { background: linear-gradient(90deg, #071018f5 0%, #071018cc 23%, #07101822 60%, transparent) !important; }
.place-overlay { background: linear-gradient(0deg, #071018f7, #07101863 44%, #0710181a 80%) !important; }

/* Main reading chapters and their actions. */
.purpose, .places-chapter, .landing-additions, #capabilities, .founders-chapter,
.document-page, .case-page, .addition-page, .addition-section, .technical-section,
.planning-section, .case-section, .platform-lab, .addition-lab {
  background: var(--paper);
  color: var(--ink);
}
.platform-chapter, .engineering-chapter{ background: #10151d; color: #edf5f6; }
.landing-page .platform-chapter::after { background: linear-gradient(90deg, #071018f5 0%, #071018cc 28%, #07101800 60%); }
.platform-copy, .platform-copy h2 { color: #edf5f6; }
.platform-copy > p, .founder-grid p { color: #aeb6bf; }
.place-tabs button[aria-selected=true] { color: #edf5f6; border-color: #4fd6e8; background: #10151d; }
.capability-links .restored-symbol, .capability-links svg, .sector-entry svg { color: #4fd6e8; }
.engineering-chain article { border-color: #94a3b82b; }
.build-chapter > p, .build-options p, .site-footer .footer-purpose p, .site-footer a:not(.wordmark) { color: #aeb6bf; }
.build-options button, .build-options a { color: #edf5f6; border-color: #edf5f638; }
.build-options button:hover, .build-options a:hover { background: #edf5f60d; }
.site-footer { background: #071018 !important; border-color: #edf5f638 !important; }
.site-footer .footer-label, .site-footer .footer-version { color: #aeb6bf; }
.review-current { border-color: #94a3b82b; }
.review-footer p { color: #aeb6bf; }

/* Scoped work panels retain clear text and distinct operational states. */
.agent-focus, .response-panel, .school-receipt, .community-story, .community-response,
.community-agent-focus, .community-outcome, .platform-detail, dialog, .detail-dialog, .enquiry-dialog {
  --paper: #071018;
  --ink: #edf5f6;
  --surface: #10151d;
  --surface-raised: #161c25;
  --muted: #aeb6bf;
  --copper: #4fd6e8;
  --copper-light: #6ee0ef;
  --rule: #94a3b82b;
  background: #161c25f5;
  color: #edf5f6;
  border-color: #94a3b82b;
}
.agent-focus p, .response-panel p, .response-panel small, .response-route > span, .case-scores,
.school-receipt p, .community-story p, .community-agent-focus p, .community-outcome p, .platform-detail p {
  color: #aeb6bf;
}
.agent-node { background: #071018e8; color: #edf5f6; border-color: #edf5f666; }
.agent-node:focus-visible, .agent-node.active, .agent-node:hover, .agent-node.selected { background: #10151de8; border-color: #4fd6e8; }
.agent-node[data-status=complete] b { background: #4fd6e8; }
.community-detail-links .text-link { color: #edf5f6; border-color: #94a3b82b; }
.dialog-heading, .dialog-head, .detail-head, .proof-dialog-head { background: #071018; color: #edf5f6; border-color: #94a3b82b; }
.dialog-body, .detail-body, .detail-content, .form-review { color: #edf5f6; border-color: #94a3b82b; }
dialog p, dialog small { color: #aeb6bf; }
dialog label { color: #edf5f6; }
dialog::backdrop { background: #071018ba; }
.dialog-close, .close-small { color: #edf5f6; background: #10151d; border-color: #94a3b82b; }
input:not([type=range]):not([type=checkbox]):not([type=radio]), textarea, select,
.landing-page .enquiry-dialog input, .landing-page .enquiry-dialog select, .landing-page .enquiry-dialog textarea {
  background: #161c25;
  color: #edf5f6;
  border-color: #94a3b84d;
}
input::placeholder, textarea::placeholder { color: #aeb6bf; }
.enquiry-interests button[aria-pressed=true] { background: #161c25; color: #edf5f6; border-color: #4fd6e8; }

/* Shared lab and case components used by all retained product/sector routes. */
.editorial-hero figcaption, .sx-native-note, .sx-camera-label { color: #edf5f6; background: #071018e8; border-color: #edf5f638; }
.addition-cta, .case-cta, .document-cta { background: #10151d; color: #edf5f6; }
.mechanism-visual, .workflow-illustration, .sx-scene { background: #10151d; color: #edf5f6; }
.zone-verdict, .handoff-line, .plan-decision, .case-followup { background: #10151d; color: #edf5f6; border-color: #94a3b82b; }
.plan-choice { background: #161c25; }
.plan-choice button[aria-pressed=true] { background: #071018; color: #edf5f6; border-color: #071018; }
.planning-map-figure, .zone-figure { background: #10151d; color: #edf5f6; }
.case-viewer { background: #071018; }
.case-camera-control select { background: #161c25; color: #edf5f6; border-color: #94a3b82b; }
.technical-agent-grid button[aria-pressed=true], .mechanism-tabs button[aria-pressed=true],
.scenario-tabs button[aria-pressed=true], .proof-tabs button[aria-pressed=true],
.case-layer-controls button[aria-pressed=true], .case-modes button[aria-pressed=true],
.segmented button[aria-pressed=true], .workflow-tabs button[aria-selected=true], .workflow-tabs button[aria-pressed=true] {
  background: #161c25;
  color: #edf5f6;
  border-color: #4fd6e8;
}
.sector-interactive.sx { --sx-paper: #071018; --sx-rule: #94a3b82b; --sx-copper: #4fd6e8; --sx-ink: #edf5f6; background: #071018; }
.sx-tabs button[aria-pressed=true] { background: #10151d; color: #edf5f6; border-color: #4fd6e8; }
.sx select, .sx input:not([type=range]) { background: #161c25; color: #edf5f6; border-color: #94a3b82b; }
.sx-inspector, .sx-form, .sx-outcome, .sx-record, .sx-transport, .sx-controls { background: #10151d; color: #edf5f6; border-color: #94a3b82b; }

@media (max-width: 760px) {
  .brand-wordmark .brand-lettering { font-size: 20px; }
  #school-stage .story-shade, #school-stage:is([data-phase=reality], [data-phase=observe]) .story-shade {
    background: linear-gradient(180deg, #071018ea 0, #07101880 27%, transparent 62%) !important;
  }
  .community-chapter .community-shade { background: linear-gradient(180deg, #071018ef 0%, #07101870 38%, transparent 65%) !important; }
  .community-chapter.understanding .community-shade { background: linear-gradient(180deg, #071018f5 0%, #071018c9 18%, transparent 43%) !important; }
  .landing-page .platform-chapter::after { background: linear-gradient(180deg, #071018 0%, #071018de 27%, #07101800 51%); }
}

/* Legacy interaction sheets set a few local colours beyond shared tokens. */
#school-stage { --school-source-background: #071018; }
#school-stage .concept-disclosure { background: #071018ed; box-shadow: 0 0 0 4px #071018ed; }
#school-stage .agent-node.agent-exchange-member { background: #071018eb; }
#school-stage .agent-node.agent-exchange-member:is(:hover, :focus-visible, .active, .selected) { background: #10151de8; }
#school-stage .experience-controls .play-control { color: #edf5f6; }
.platform-world { --pw-copper: #4fd6e8; --pw-ink: #edf5f6; --pw-paper: #071018; background: #10151d; color: #edf5f6; }
.pw-anchor, .pw-source-button, .pw-work, .pw-reset { color: #edf5f6; font-family: var(--sans); }
.pw-readout, .pw-reset, .pw-rail, .pw-anchor-text { background-color: #161c25; }
.proof-image-button { background: #071018; }
.capture-stamp, .capture-stamp .status-dot, .response-route-visual > .interaction-note,
.recorded-timeline, .recorded-stamp, .observation-choices button { color: #edf5f6; }
.recorded-timeline { background: #10151d; }
.observation-choices button[aria-pressed=true], .evidence-mixer .mixer-result,
.addition-page .segmented button[aria-pressed=true] { background: #071018; color: #edf5f6; border-color: #071018; }
.planning-legend { color: #aeb6bf; }
.planning-legend .legend-view { background: #94a3b877; }
.case-source-label, .case-viewer[data-layer=source] .case-source-label { color: #edf5f6; background: #071018d9; border-color: #edf5f638; }
.case-clock span, .case-stage-nav button span, .case-access-controls, .case-gap,
.story-details > p, .story-details > .detail-content > p, .case-supplemental p,
.case-pilot-table th, .case-pilot-table td, .case-trace li p, .case-cta p,
.case-preview-boundary { color: #aeb6bf; }
.workflow-input { color: #edf5f6; }
button, input, select, textarea { font-family: var(--sans); }
.planning-map-figure figcaption, .planning-map-figure :is(p, span) { color: #aeb6bf; }
.sx-outcome > svg { color: #aeb6bf; }
.workflow-illustration .workflow-input { color: #edf5f6; }
.site-header .menu-toggle { width: auto; min-width: 62px; min-height: 44px; padding-inline: 15px; white-space: nowrap; }

/* Main uses cyan for intelligence and a distinct signal for human authority. */
.button, .button:hover, .play-control, #school-stage .experience-controls .play-control { color: #06272c; }
.brand-wordmark .aspinos-mark .mark-intelligence { fill: #4fd6e8; }
.living-stage[data-layer=authority] .living-symbols { color: #f05a4f; }
.living-stage[data-layer=authority] .living-steps button[aria-pressed=true] { border-color: #f05a4f; }
.living-stage[data-layer=record] .living-symbols { color: #67d698; }
.agent-node:is(:hover, :focus-visible, .active, .selected), #school-stage .agent-node.agent-exchange-member:is(:hover, :focus-visible, .active, .selected) { background: #10151d; border-color: #4fd6e8; }
.sx-native-note, .sx-camera-label, .case-source-label, .case-viewer[data-layer=source] .case-source-label, .editorial-hero figcaption { background: #071018e8; color: #edf5f6; }

h1, h2, h3, h4 { font-family: var(--sans); }
h2, h3, h4 { color: #eef6f7; }
.pw-disclosure { background: #161c25e8; color: #aeb6bf; border-color: #94a3b82b; font-family: var(--sans); }

/* Authored workflow drawings share main's palette, with the review's Archivo.
   Scope to this editable diagram; retained film and evidence are not recoloured. */
#workflow-visual > rect[fill="#e6e0d3"] { fill: #10151d; }
#workflow-visual g[stroke="#c6c3b4"] { stroke: #94a3b8; opacity: .18; }
#workflow-visual [fill="#ede8dc"], #workflow-visual [fill="#ece7db"] { fill: #161c25; }
#workflow-visual [stroke="#66715d"], #workflow-visual [stroke="#65705b"], #workflow-visual [stroke="#7b886e"] { stroke: #aeb6bf; }
#workflow-visual [fill="#b8c0a4"] { fill: #aeb6bf; }
#workflow-visual [fill="#7b8a6328"] { fill: #4fd6e81f; }
#workflow-visual [fill="#ac542e30"] { fill: #4fd6e830; }
#workflow-visual [fill="#ac542e"] { fill: #4fd6e8; }
#workflow-visual [stroke="#ac542e"] { stroke: #4fd6e8; }
#workflow-visual text { fill: #edf5f6; font-family: var(--sans); }

/* Native place chrome is created only after its chapter enters view.
   Its legacy sheets load lazily, so these scoped selectors keep the shared
   identity authoritative without recolouring the underlying film or foliage. */
:root .case-world, #place-site.case-world { background: #071018; }
.case-world[data-world-framing=hero] { background: transparent; }
:root .case-world > canvas:focus-visible { outline-color: #4fd6e8; }
.case-world .case-world-ui, .case-world .case-world-pin, .case-world .case-world-caption, :root .place-evidence { font-family: var(--sans); }
.case-world .case-world-caption { color: #aeb6bf; background: #161c25e8; border: 1px solid #94a3b82b; }
.case-world .case-world-pin {
  background: #161c25f0;
  color: #edf5f6;
  border-color: #94a3b84d;
  box-shadow: 0 4px 15px #00000026;
}
.case-world .case-world-pin:hover, .case-world .case-world-pin[aria-pressed=true] { background: #10151d; border-color: #4fd6e8; }
.case-world .case-world-pin:focus-visible { outline-color: #4fd6e8; }
.case-world .case-world-role { background: #161c25e8; color: #edf5f6; border-color: #94a3b84d; }
.case-world .case-world-role[data-active=true] { border-color: #4fd6e8; }
.case-world .case-world-role[data-world-selected=policy][data-active=true],
.case-world .case-world-role[data-world-selected=policy][aria-pressed=true] { border-color: #f05a4f; }
:root .case-world[data-unavailable=true]::after { color: #aeb6bf; background: #071018; font-family: var(--sans); }
:root .place-evidence { color: #edf5f6; }
.place-evidence .pe-connection { stroke: #4fd6e8; }
.place-evidence .pe-particle { fill: #4fd6e8; stroke: #071018; }
.place-evidence .pe-zone { stroke: #4fd6e8; }
.place-evidence .pe-buffer { fill: #f0b43e10; stroke: #f0b43e80; }
.place-evidence .pe-work-button {
  background: #161c25eb;
  color: #edf5f6;
  border-color: #94a3b84d;
  box-shadow: 0 5px 18px #00000022;
}
.place-evidence .pe-role-number { color: #4fd6e8; border-color: #4fd6e866; font-family: var(--sans); }
.place-evidence .pe-work-progress { background: #94a3b82b; }
.place-evidence .pe-work-progress > span { background: #4fd6e8; }
.place-evidence .pe-work-button[data-status=waiting] { border-color: #94a3b82b; }
.place-evidence .pe-work-button:hover, .place-evidence .pe-anchor:hover,
.place-evidence .pe-work-button[aria-pressed=true], .place-evidence .pe-anchor[aria-pressed=true] { background: #10151d; border-color: #4fd6e8; }
.place-evidence .pe-anchor { background: #161c25e8; color: #edf5f6; border-color: #94a3b84d; box-shadow: 0 3px 14px #00000026; }
.place-evidence .pe-anchor-dot { border-color: #4fd6e8; }
.place-evidence .pe-anchor-dot::after { background: #4fd6e8; }
.place-evidence .pe-work-button[data-role=policy] .pe-role-number { color: #f05a4f; border-color: #f05a4f80; }
.place-evidence .pe-work-button[data-role=policy] .pe-work-progress > span { background: #f05a4f; }
.place-evidence .pe-anchor[data-role=policy] .pe-anchor-dot { border-color: #f05a4f; }
.place-evidence .pe-anchor[data-role=policy] .pe-anchor-dot::after { background: #f05a4f; }
.place-evidence .pe-receipt {
  background: #161c25f2;
  color: #edf5f6;
  border-color: #94a3b84d;
  border-left-color: #4fd6e8;
  box-shadow: 0 8px 26px #00000025;
}
.place-evidence .pe-receipt-main { color: #edf5f6; background: transparent; }
.place-evidence .pe-receipt-main:hover { color: #4fd6e8; }
.place-evidence .pe-receipt-mark { color: #4fd6e8; font-family: var(--sans); }
.place-evidence .pe-task { font-family: var(--sans); }
.place-evidence .pe-owner, .place-evidence .pe-result { color: #aeb6bf; }
.place-evidence .pe-policy-button { color: #f05a4f; background: transparent; border-color: #94a3b82b; }
.place-evidence .pe-policy-button:hover { color: #f2f5f8; }
.place-evidence button:focus-visible { outline-color: #4fd6e8; }
.place-evidence .pe-policy-button:focus-visible { outline-color: #f05a4f; }
.detail-dialog p, .detail-dialog ul, .detail-dialog li { color: #aeb6bf; }
.detail-dialog .detail-intro, .detail-dialog strong, .detail-dialog summary { color: #edf5f6; }
.detail-dialog .detail-sections, .detail-dialog summary { border-color: #94a3b82b; }

/* Founder-requested public presentation: one explanation replaces repeated micro-captions. */
[data-public-provenance],.case-world-caption,.world-source-label,.district-provenance{display:none!important}
.site-footer .brand-wordmark,.site-footer .brand-wordmark:visited{color:#edf5f6!important;opacity:1;filter:none}
.site-footer .brand-wordmark .brand-lettering,.site-footer .brand-wordmark .aspinos-mark{color:inherit!important;-webkit-text-fill-color:currentColor;opacity:1}
.site-footer .brand-wordmark:hover{color:#4fd6e8!important}
.site-footer .brand-wordmark .mark-intelligence{fill:#4fd6e8}
.site-footer .footer-answers{align-self:start}
.site-footer .footer-answers a{display:block;margin-block:0;line-height:1.5} /* the column's own gap spaces its links, as in the other three */
.button:not(.outline){color:#071018}.button:not(.outline):hover{color:#071018}
.founders-chapter{background:#071018!important;gap:4vw;padding-block:110px}
.founders-chapter h2{font-size:clamp(40px,4vw,68px);line-height:1.04;letter-spacing:-.045em}
.founders-chapter .founder{border-top:1px solid #344550;padding-top:23px}
.founder h3{font-size:clamp(28px,2.5vw,40px);line-height:1.12;letter-spacing:-.035em;margin:12px 0}
.founder .founder-role{color:#4fd6e8;margin:0;font-size:14px}
.founder p:not(.founder-role){color:#b5c2c8;line-height:1.65;font-size:16px}
.founder .founder-location{color:#edf5f6!important;margin-bottom:26px!important}
.founder-background{padding:22px 0 8px;border-top:1px solid #283741;margin-top:25px}
.founder-background>span{font-size:13px;color:#a9bbc5}.founder-background p{margin-top:9px;line-height:1.8!important}
.founder .founder-link{font-size:14px;display:inline-flex;gap:15px;margin-top:20px}
@media(min-width:1100px){.site-footer{grid-template-columns:2fr 1fr 1fr 1fr 1fr!important;gap:3vw!important}}
@media(max-width:1000px){.founders-chapter{grid-template-columns:1fr 1fr}.founders-chapter>h2{grid-column:1/-1;max-width:650px}.founders-chapter h2 br{display:none}}
@media(max-width:680px){.founders-chapter{grid-template-columns:1fr;gap:40px;padding-block:65px}.founders-chapter h2{font-size:43px}.founder p:not(.founder-role){font-size:16px}}

/* Trust band (Yusuf, 11 October 2026, third round): one band, at the top of every footer, of three permanent product
   rules as award badges between laurels, like the award laurels on the App Store: a category over a short title. NVIDIA's
   Inception badge stands beside the Aspinos logo instead, where NVIDIA's clear-space drawing puts a partner's logo, and
   never between laurels: a membership is not an award. Not a div in the footer: the footer's column rules address its
   divs. Every word is set at 12 px or more (the site's type floor). No signal orange. */
.site-footer .footer-trust{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:30px clamp(40px,6vw,104px);margin:0;padding:2px 0 46px;list-style:none;border-bottom:1px solid #edf5f61f}
.trust-award{display:flex;align-items:center;gap:8px}
/* One width for every badge, so the laurels stand the same distance from each title; a longer label widens its own. */
.award-words{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:162px;text-align:center}
.site-footer .award-words p{margin:0}
.award-label{font:600 12px/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:#e2c27f!important}
/* Arabic letters join: spacing them apart breaks the words. */
html[dir=rtl] .award-label{letter-spacing:0}
.award-title{font:600 18px/1.22 var(--sans);letter-spacing:-.005em;color:#f5f1e8!important;max-width:9em;text-wrap:balance}
.site-footer a.award-words{color:inherit!important;text-decoration:none;margin:0!important;padding:0!important}
a.award-words .award-title{text-decoration:underline;text-decoration-color:#e2c27f66;text-decoration-thickness:1px;text-underline-offset:4px}
a.award-words:hover .award-title,a.award-words:focus-visible .award-title{text-decoration-color:#e2c27f}
a.award-words:focus-visible{outline:2px solid #e2c27f;outline-offset:6px;border-radius:4px}
.laurel{flex:0 0 auto;width:36px;height:86px}
.laurel-end{transform:scaleX(-1)}
/* Each branch opens towards the words; right to left, the branches swap sides, so they swap their mirror too. */
html[dir=rtl] .laurel-start{transform:scaleX(-1)}
html[dir=rtl] .laurel-end{transform:none}
.laurel-stem{fill:none;stroke:#cfae66;stroke-width:1.6;stroke-linecap:round}
/* The gold is defined once per page, in the first branch; the flat colour after it is the fallback. */
.laurel-leaf{fill:url(#laurel-gold) #e2c27f}
.laurel-leaf-in{fill:url(#laurel-gold-deep) #b8954f}
/* NVIDIA's badge beside the Aspinos logo: its own file unchanged, as tall as the logo's 44 px box and half its width
   (NVIDIA: never bigger than the partner logo; 30 px is its digital minimum), clear of the logo by more than the width
   of NVIDIA's eye. Yusuf, 11 October 2026: at 36 px it was too small to read. 22 px of clear space keeps the two on
   one row from 1280 px wide down to a phone. */
.footer-lockup{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px}
/* style.css stretches the footer's wordmark to the full width (footer .wordmark{width:100%}), which pushed the badge
   onto a line of its own on phones. */
.site-footer .footer-lockup .brand-wordmark{width:auto;flex:0 0 auto}
.footer-inception{display:block;flex:0 0 auto;width:auto;height:44px}
.site-footer .footer-legal{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 40px;padding-top:26px;border-top:1px solid #edf5f61f;font-size:12px;line-height:1.5;color:#7f8b95}
.site-footer .footer-legal span{max-width:78ch}
/* The company link reads as part of the legal row, not as one of the footer's navigation links (which are 14 px). */
.site-footer .footer-legal a:not(.wordmark){font-size:inherit;line-height:inherit;padding:0;color:inherit;text-decoration:underline;text-decoration-color:#7f8b9599;text-underline-offset:3px}
.site-footer .footer-legal a:not(.wordmark):hover,.site-footer .footer-legal a:not(.wordmark):focus-visible{color:#edf5f6}

/* No evidence words on the public website (Yusuf, 11 October 2026, D-099): he judged the class stamps and illustration
   eyebrows to weaken the site, so none is shown. One line in the home page's footer says the scenes are illustrations.
   The stamps stay in the markup, where the model stages read their class and the tests guard it, and the evidence page
   still explains the classes; the dashboard and its demonstration keep every stamp. Screen-reader descriptions keep
   their wording, so an illustration is never described as a photograph. */
.stage-stamp,.school-room-stamp,.school-receipt-class,.value-reel-mark,.pw-disclosure,.art-label,.source-annotation,
.de-model-note,.case-source-label,#connection-status,.sx-heading>p,.sx-native-note,#case-sequence li>span,#community-time{display:none!important}
/* The sector cards' links and the partner picture's frame keep the box they took when the stamps were added (layout
   unchanged). */
.sector-entry>a{position:relative;display:block}
.picture-frame{position:relative;display:block}

/* Footer headings read as headings (Yusuf, 11 October 2026): an icon and a bolder, brighter weight, so they are never
   taken for links that do nothing. The links below them keep the lighter footer colour. */
.site-footer p.footer-label{display:flex;align-items:center;gap:9px;margin:0 0 8px;font-size:14px;font-weight:650;letter-spacing:.01em;color:#edf5f6!important}
.footer-label-icon{width:18px;height:18px;flex:none;fill:none;stroke:#4fd6e8;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* The mark arrives (Yusuf, 11 October 2026: a logo with the feel of physical intelligence). Nothing loops, because
   nothing on this site moves on a timer to look alive (D-023): the frame draws itself once as the page arrives, the two
   base nodes light, the intelligence node wakes and one ping leaves it, and the lettering is scanned in. Pointing at
   the mark, or focusing it, sends one signal round the frame and one ping. Reduced motion shows the finished mark. */
.aspinos-mark{overflow:visible}
.aspinos-mark .mark-signal{fill:none;stroke:#4fd6e8;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:.14 .86;stroke-dashoffset:1;opacity:0}
.aspinos-mark .mark-ping{fill:none;stroke:#4fd6e8;stroke-width:1.2;opacity:0;transform-box:view-box;transform-origin:20px 4px}
.aspinos-mark .mark-intelligence{transform-box:view-box;transform-origin:20px 4px;filter:drop-shadow(0 0 2px #4fd6e8b3)}
@media (prefers-reduced-motion:no-preference){
 .site-header .aspinos-mark .mark-frame{stroke-dasharray:1;stroke-dashoffset:1;animation:mark-draw .9s cubic-bezier(.65,0,.25,1) .1s forwards}
 .site-header .aspinos-mark .mark-node{opacity:0;animation:mark-node .28s ease-out .55s forwards}
 .site-header .aspinos-mark .mark-node-end{animation-delay:.72s}
 .site-header .aspinos-mark .mark-intelligence{opacity:0;animation:mark-wake .5s cubic-bezier(.2,.9,.25,1.35) .95s forwards}
 .site-header .aspinos-mark .mark-ping{animation:mark-ping 1.1s cubic-bezier(.2,.6,.3,1) 1.2s 1}
 .site-header .brand-lettering{animation:mark-scan .7s cubic-bezier(.65,0,.25,1) .45s backwards}
 .brand-wordmark:is(:hover,:focus-visible) .aspinos-mark .mark-signal{animation:mark-signal .85s cubic-bezier(.45,0,.2,1) 1}
 .brand-wordmark:is(:hover,:focus-visible) .aspinos-mark .mark-ping{animation:mark-ping-again 1s cubic-bezier(.2,.6,.3,1) .5s 1}
}
@keyframes mark-draw{to{stroke-dashoffset:0}}
@keyframes mark-node{from{opacity:0}to{opacity:1}}
@keyframes mark-wake{0%{opacity:0;transform:scale(.2)}60%{opacity:1;transform:scale(1.55)}100%{opacity:1;transform:scale(1)}}
@keyframes mark-ping{0%{opacity:.85;transform:scale(1)}100%{opacity:0;transform:scale(5.5)}}
@keyframes mark-ping-again{0%{opacity:.85;transform:scale(1)}100%{opacity:0;transform:scale(5.5)}}
@keyframes mark-signal{0%{opacity:1;stroke-dashoffset:1}90%{opacity:1}100%{opacity:0;stroke-dashoffset:0}}
@keyframes mark-scan{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}


/* The closing calls (Yusuf, 12 October 2026): after the founders, the four paths read as cards a reader can press, with
   the three awards beneath them, and the closing city follows as the way into the footer. Each card is one link: its
   drawing, its words and its arrow. Motion has two causes and no third. When the reader reaches the section
   (experience.js's reveal) each card's top rule draws and its drawing is inked, once, in order, and the laurels grow up
   their stems; a hand on a card fills its arrow, moves it on and inks the drawing again. Nothing loops, nothing waits on
   a timer, and the words never move. No glow, no blur, no signal orange. Without a script, or with reduced motion, every
   card and award stands finished. */
.next-steps{padding:clamp(64px,8vw,112px) var(--pad);background:#071018}
.next-paths{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.next-paths a{position:relative;display:grid;grid-template-rows:auto 1fr auto;align-items:start;gap:26px;min-height:208px;padding:26px 24px 22px;border:1px solid #edf5f624;border-top-width:0;border-radius:3px;background:#0a161f;color:#edf5f6;text-decoration:none;transition:background-color .3s ease,border-color .3s ease}
/* The card's top edge is its rule, inside the card: the card clips its sketch, and a rule laid over the border would be
   clipped with it (it was, on the first built check). */
.next-paths .path-rule{position:absolute;top:0;inset-inline:0;height:1px;background:#edf5f66b;transform-origin:left center}
html[dir=rtl] .next-paths .path-rule{transform-origin:right center}
.next-paths .path-icon{width:36px;height:36px;fill:none;stroke:#4fd6e8;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.next-paths .path-icon>*{stroke-dasharray:1;stroke-dashoffset:0}
.next-paths .path-name{font:500 clamp(22px,1.85vw,28px)/1.18 var(--sans);letter-spacing:-.012em;max-width:11em}
html[dir=rtl] .next-paths .path-name{letter-spacing:0}
.next-paths .path-go{justify-self:end;display:grid;place-items:center;width:46px;height:46px;border:1px solid #edf5f647;border-radius:50%;color:#edf5f6;transition:background-color .3s ease,border-color .3s ease,color .3s ease}
.next-paths .path-go svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s ease}
html[dir=rtl] .next-paths .path-go svg{transform:scaleX(-1)}
.next-paths a:hover,.next-paths a:focus-visible{background:#0e2029;border-color:#4fd6e86b}
.next-paths a:hover .path-rule,.next-paths a:focus-visible .path-rule{background:#4fd6e8}
.next-paths a:hover .path-go,.next-paths a:focus-visible .path-go{background:#4fd6e8;border-color:#4fd6e8;color:#071018}
.next-paths a:hover .path-go svg,.next-paths a:focus-visible .path-go svg{transform:translateX(4px)}
html[dir=rtl] .next-paths a:hover .path-go svg,html[dir=rtl] .next-paths a:focus-visible .path-go svg{transform:scaleX(-1) translateX(4px)}
.next-paths a:focus-visible{outline:2px solid #4fd6e8;outline-offset:4px}
.next-paths a:hover .path-icon>*{animation:path-ink .9s cubic-bezier(.3,.7,.2,1) both}
@keyframes path-ink{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
/* A hand on a card draws a large, faint copy of its drawing across the card, the way a sketch goes down on a plan, and
   lifting the hand takes it back; it carries no words and says nothing a reader needs. */
.next-paths a{overflow:hidden;isolation:isolate}
.next-paths .path-sketch{position:absolute;z-index:-1;inset-inline-end:-18px;bottom:-26px;width:168px;height:168px;fill:none;stroke:#4fd6e8;stroke-width:.55;stroke-linecap:round;stroke-linejoin:round;opacity:0;pointer-events:none;transition:opacity .5s ease}
/* Transparent until a hand arrives: an undrawn stroke's round caps still paint a dot where each dash ends. */
.next-paths a:hover .path-sketch,.next-paths a:focus-visible .path-sketch{opacity:.22;transition:opacity .25s ease}
.next-paths .path-sketch>*{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .5s ease}
.next-paths a:hover .path-sketch>*,.next-paths a:focus-visible .path-sketch>*{stroke-dashoffset:0;transition:stroke-dashoffset 1.2s cubic-bezier(.3,.7,.2,1)}
@media(max-width:760px){.next-paths .path-sketch{display:none}}
.trust-awards{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:30px clamp(40px,6vw,104px);margin:clamp(52px,6vw,84px) 0 0;padding:0;list-style:none}
.trust-awards .award-words p{margin:0}
.trust-awards a.award-words{color:inherit!important;text-decoration:none}
/* Arrival, keyed to the section's reveal: the rules draw, then the drawings ink, then the laurels grow, card by card. */
.next-paths a:nth-child(2){--i:1}.next-paths a:nth-child(3){--i:2}.next-paths a:nth-child(4){--i:3}
.trust-award:nth-child(2){--j:1}.trust-award:nth-child(3){--j:2}
.next-steps .path-rule{transition:transform .8s cubic-bezier(.2,.7,.2,1) calc(.15s + var(--i,0) * 90ms),background-color .3s ease}
.next-steps .path-icon>*{transition:stroke-dashoffset 1s cubic-bezier(.3,.7,.2,1) calc(.35s + var(--i,0) * 90ms)}
.next-steps .laurel{transition:clip-path 1.1s cubic-bezier(.25,.7,.2,1) calc(.6s + var(--j,0) * 120ms)}
.motion-ready .next-steps:not(.is-visible) .path-rule{transform:scaleX(0)}
.motion-ready .next-steps:not(.is-visible) .path-icon>*{stroke-dashoffset:1}
.motion-ready .next-steps:not(.is-visible) .laurel{clip-path:inset(100% 0 0 0)}
@media(max-width:1100px){.next-paths{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.next-paths{grid-template-columns:1fr;gap:12px}.next-paths a{grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto;align-items:center;gap:16px;min-height:0;padding:18px 16px}.next-paths .path-icon{width:30px;height:30px}.next-paths .path-name{font-size:21px}.next-paths .path-go{width:40px;height:40px}.trust-awards{gap:26px 40px}}
@media(prefers-reduced-motion:reduce){.next-paths a,.next-paths .path-go,.next-paths .path-go svg,.next-steps .path-rule,.next-steps .path-icon>*,.next-steps .laurel,.next-paths .path-sketch,.next-paths .path-sketch>*{transition:none!important}.next-paths a:hover .path-icon>*{animation:none}}
