:root {
  --vector-duration: 540ms;
  --vector-easing: cubic-bezier(.22, 1, .36, 1);
  --track-x: 0px;
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.topbar { z-index: 32; }
.topnav { gap: 29px; }
.topnav a[aria-current="page"] { color: #fff; }
.topnav a[aria-current="page"]::after { right: 0; left: 0; }

.vector-chrome {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 7px;
}
.vector-arrow,
.route-menu-toggle {
  min-width: 34px;
  height: 34px;
  padding: 0 10px;
  border: 1px solid rgba(111, 177, 218, .42);
  border-radius: 5px;
  background: rgba(8, 23, 33, .76);
  color: #b9d8ea;
  cursor: pointer;
}
.vector-arrow { padding: 0; font-size: 17px; }
.route-menu-toggle { min-width: 48px; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.vector-arrow:hover,
.route-menu-toggle:hover,
.route-menu-toggle[aria-expanded="true"] { border-color: var(--orange); color: #fff; background: rgba(255, 83, 5, .13); }
.vector-arrow:disabled { opacity: .34; cursor: default; }
.vector-progress { min-width: 39px; color: #8da4b3; font-size: 10px; font-variant-numeric: tabular-nums; text-align: center; }

.route-menu {
  position: absolute;
  z-index: 60;
  top: 51px;
  right: 44px;
  width: 212px;
  padding: 8px;
  border: 1px solid rgba(118, 173, 209, .42);
  border-radius: 8px;
  background: rgba(3, 11, 17, .98);
  box-shadow: 0 24px 65px rgba(0, 0, 0, .58);
  backdrop-filter: blur(18px);
}
.route-menu[hidden] { display: none; }
.route-menu a { display: flex; align-items: center; min-height: 42px; padding: 0 12px; border-radius: 5px; color: #a9bbc7; font-size: 12px; }
.route-menu a:hover,
.route-menu a:focus-visible,
.route-menu a[aria-current="page"] { color: #fff; background: rgba(78, 144, 185, .15); }
.route-menu a[aria-current="page"]::before { content: ""; width: 6px; height: 6px; margin-right: 9px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 10px var(--orange); }

.vector-viewport { position: relative; z-index: 2; }
.vector-track { will-change: transform; }
.vector-scene { position: relative; scroll-margin-top: 62px; }
.route-status { position: fixed; }
.engine-error { position: fixed; z-index: 100; right: 18px; bottom: 18px; max-width: 420px; padding: 12px 15px; border: 1px solid #f47a4e; border-radius: 6px; background: #1f0c07; color: #ffd4c6; }

html.js.engine-ready,
html.js.engine-ready body { height: 100%; overflow: hidden; }
html.js.engine-ready .stage-viewport { overflow: hidden; }
html.js.engine-ready .vector-viewport { width: 100%; height: 920px; overflow: hidden; }
html.js.engine-ready .vector-track {
  width: 100%;
  height: 100%;
  display: flex;
  transform: translate3d(var(--track-x), 0, 0);
  transition: transform var(--vector-duration) var(--vector-easing);
}
html.js.engine-ready .vector-scene {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: rgba(115, 187, 235, .52) rgba(5, 14, 21, .8);
}
html.js.engine-ready .vector-scene--sok { overflow: hidden; }
html.js.engine-ready .vector-scene[aria-hidden="true"] { pointer-events: none; }
html.js.engine-ready .vector-scene > * { opacity: .86; transform: translateX(18px); transition: opacity var(--vector-duration) var(--vector-easing), transform var(--vector-duration) var(--vector-easing); }
html.js.engine-ready .vector-scene.is-active > * { opacity: 1; transform: translateX(0); }

.sok-stack { width: 100%; height: 920px; }
.panel-link,
.dashboard-card a,
.scene-card a,
.scene-shell a,
.report-sheet a { color: #82c9f3; text-decoration: underline; text-decoration-color: rgba(130, 201, 243, .34); text-underline-offset: 3px; }
.idle-score { margin: 46px auto 14px; color: #e7eef2; font-family: var(--display); font-size: 72px; line-height: 1; text-align: center; }
.dashboard-empty { min-height: 30px; margin: 10px 0 6px; color: #8798a4; font-size: 9px; line-height: 1.45; }
.dashboard-card a { font-size: 8px; }

.scene-shell {
  width: min(1180px, calc(100% - 88px));
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0 auto;
  padding: 64px 0 88px;
}
.vector-scene:not(.vector-scene--sok) {
  background:
    radial-gradient(circle at 82% 18%, rgba(30, 100, 140, .18), transparent 32%),
    radial-gradient(circle at 14% 88%, rgba(255, 90, 8, .08), transparent 26%),
    linear-gradient(145deg, #03090d, #07141d 60%, #03090d);
}
.vector-scene:not(.vector-scene--sok)::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .16;
  background-image: linear-gradient(rgba(110, 166, 201, .11) 1px, transparent 1px), linear-gradient(90deg, rgba(110, 166, 201, .08) 1px, transparent 1px);
  background-size: 100% 44px, 64px 100%;
  pointer-events: none;
}
.scene-kicker { position: relative; margin: 0 0 14px; color: var(--orange); font-size: 11px; font-weight: 850; letter-spacing: .18em; }
.scene-shell > h2 { position: relative; max-width: 970px; margin: 0; font-family: var(--display); font-size: clamp(46px, 4.4vw, 70px); line-height: .98; letter-spacing: .02em; text-transform: uppercase; }
.scene-shell > h2:focus { outline: none; }
.scene-shell > h2:focus-visible { outline: 2px solid #fff; outline-offset: 8px; }
.scene-lead { position: relative; max-width: 790px; margin: 22px 0 31px; color: #aab9c2; font-size: 17px; line-height: 1.65; }
.scene-grid { position: relative; display: grid; gap: 16px; margin: 30px 0; }
.scene-grid--three { grid-template-columns: repeat(3, 1fr); }
.scene-grid--two { grid-template-columns: repeat(2, 1fr); }
.scene-card,
.empty-state,
.source-row,
.report-sheet {
  border: 1px solid rgba(117, 156, 182, .3);
  border-radius: 10px;
  background: linear-gradient(145deg, rgba(8, 23, 33, .96), rgba(3, 11, 17, .98));
  box-shadow: 0 20px 50px rgba(0, 0, 0, .25);
}
.scene-card { min-height: 220px; padding: 27px; }
.scene-card > span { color: var(--cyan); font-size: 12px; font-weight: 850; letter-spacing: .12em; }
.scene-card h3 { margin: 25px 0 10px; font-size: 22px; }
.scene-card p { color: #8ea0ac; font-size: 14px; line-height: 1.65; }
.scene-card--wide h3 { margin-top: 0; }
.scene-cta { position: relative; align-self: flex-start; margin-top: 8px; padding: 13px 18px; border: 1px solid rgba(255, 102, 28, .55); border-radius: 5px; background: rgba(255, 83, 5, .1); color: #fff !important; text-decoration: none !important; font-weight: 750; }

.result-layout { position: relative; display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 24px; margin-top: 38px; }
.result-orbit { min-height: 340px; display: grid; place-content: center; border: 1px solid rgba(255, 95, 20, .48); border-radius: 50%; background: radial-gradient(circle, rgba(15, 39, 53, .96) 0 50%, rgba(3, 10, 15, .98) 51%); box-shadow: 0 0 70px rgba(255, 83, 5, .13), inset 0 0 0 14px rgba(65, 106, 132, .11); text-align: center; }
.result-orbit span { color: var(--orange); font-size: 10px; font-weight: 850; letter-spacing: .14em; }
.result-orbit strong { margin: 7px 0; font-family: var(--display); font-size: 92px; line-height: .9; }
.result-orbit small { color: #758895; }
.result-orbit--unavailable {
  min-height: 260px;
  padding: 34px;
  border-color: rgba(121, 200, 245, .42);
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(8, 23, 33, .98), rgba(3, 11, 17, .98));
  box-shadow: 0 20px 50px rgba(0, 0, 0, .28);
}
.result-orbit--unavailable strong { max-width: 260px; margin: 18px auto; font-size: 27px; line-height: 1.08; }
.score-panel .idle-score { overflow-wrap: anywhere; }
.score-panel .idle-score:not(:empty) { font-size: 34px; }
.fact-list { margin: 16px 0 20px; }
.fact-list div { display: grid; grid-template-columns: 1fr 1.2fr; gap: 18px; padding: 12px 0; border-bottom: 1px solid rgba(117, 156, 182, .17); }
.fact-list dt { color: #718694; }
.fact-list dd { margin: 0; color: #d5dfe4; text-align: right; }
.missing-list { margin: 20px 0 0; padding: 0; list-style: none; }
.missing-list li { padding: 13px 0; border-bottom: 1px solid rgba(117, 156, 182, .17); color: #a99b92; }

.empty-state { position: relative; max-width: 900px; margin-top: 38px; padding: 44px; }
.empty-state span { color: var(--orange); font-size: 11px; font-weight: 850; letter-spacing: .14em; }
.empty-state strong { display: block; margin: 14px 0; font-size: 30px; }
.empty-state p { max-width: 760px; color: #94a5af; font-size: 15px; line-height: 1.7; }

.source-list { position: relative; display: grid; gap: 10px; margin-top: 30px; }
.source-row { min-height: 96px; display: grid; grid-template-columns: 126px 1fr 150px; align-items: center; gap: 22px; padding: 17px 22px; }
.source-row h3 { margin: 0 0 5px; font-size: 18px; }
.source-row p { margin: 0; color: #8295a2; }
.source-row > strong { color: #c4d4dd; text-align: right; }
.source-state { justify-self: start; padding: 6px 8px; border: 1px solid currentColor; border-radius: 4px; font-size: 8px; font-weight: 850; letter-spacing: .08em; }
.source-state--verified { color: #5cd99b; }.source-state--qualified { color: #79c8f5; }.source-state--off { color: #9c8e86; }
.source-version { position: relative; color: #6f8492; }

.vector-scene--carismagic { background: radial-gradient(circle at 52% 64%, rgba(255, 97, 17, .1), transparent 25%), linear-gradient(145deg, #02070b, #07151e 65%, #02070b) !important; }
.carismagic-mark { position: relative; margin: 48px 0 12px; color: #e8edf0; font-family: var(--display); font-size: clamp(62px, 9vw, 142px); line-height: .8; letter-spacing: .06em; text-shadow: 0 10px 45px rgba(0, 0, 0, .6); }
.carismagic-mark span { color: var(--orange); }

.report-sheet { position: relative; margin-top: 28px; padding: 30px; }
.report-sheet > header { display: flex; justify-content: space-between; gap: 24px; padding-bottom: 20px; border-bottom: 1px solid rgba(117, 156, 182, .24); }
.report-sheet header span { color: var(--cyan); font-size: 9px; font-weight: 850; letter-spacing: .14em; }
.report-sheet header h3 { margin: 6px 0 0; font-size: 26px; }
.report-sheet header > strong { align-self: start; padding: 7px 9px; border: 1px solid rgba(255, 102, 28, .5); border-radius: 4px; color: var(--orange); font-size: 9px; letter-spacing: .08em; }
.report-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.report-sheet > p { color: #93a3ad; }

button:focus-visible,
a:focus-visible,
input:focus-visible,
[tabindex="-1"]:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

.noscript-note { position: fixed; z-index: 100; right: 12px; bottom: 12px; left: 12px; padding: 10px; background: #251007; color: #ffe2d5; }
html:not(.js) body { overflow: auto; }
html:not(.js) .stage-viewport { width: 100%; height: auto; display: block; overflow: visible; }
html:not(.js) .risk-artboard { width: 100%; height: auto; overflow: visible; transform: none; }
html:not(.js) .vector-chrome,
html:not(.js) .route-menu { display: none; }
html:not(.js) .vector-track { display: block; }
html:not(.js) .vector-scene { min-height: 100vh; }
html:not(.js) .vector-scene--sok { min-height: 920px; }

@media (max-width: 767px) {
  .topbar { z-index: 40; grid-template-columns: 1fr auto; padding: 0 10px 0 18px; }
  .brand__main { font-size: 20px; letter-spacing: .13em; }
  .vector-chrome { gap: 3px; }
  .vector-arrow { min-width: 31px; width: 31px; height: 34px; }
  .vector-progress { min-width: 31px; font-size: 9px; }
  .route-menu-toggle { min-width: 41px; height: 34px; padding: 0 6px; }
  .route-menu { top: 55px; right: 8px; width: min(230px, calc(100vw - 16px)); }
  html.js.engine-ready .stage-viewport { width: 100vw; height: 100vh; height: 100dvh; display: block; overflow: hidden; }
  html.js.engine-ready .risk-artboard { width: 100vw; height: 100vh; height: 100dvh; min-height: 0; overflow: hidden; transform: none !important; }
  html.js.engine-ready .vector-viewport { height: calc(100vh - 62px); height: calc(100dvh - 62px); }
  html.js.engine-ready .vector-scene--sok { overflow-y: auto; }
  .sok-stack { height: auto; min-height: 100%; padding-bottom: max(14px, env(safe-area-inset-bottom)); }
  .vector-scene--sok .artboard-main { height: auto; min-height: 2400px; }
  .vector-scene--sok .hero-stage { min-height: 760px; }
  .vector-scene--sok .score-mount { position: relative; z-index: 5; }
  .vector-scene--sok .metric-ribbon { margin-top: 0; }
  .scene-shell { width: calc(100% - 36px); min-height: 100%; justify-content: flex-start; padding: 42px 0 max(54px, env(safe-area-inset-bottom)); }
  .scene-shell > h2 { max-width: 100%; font-size: clamp(32px, 9.2vw, 44px); overflow-wrap: anywhere; }
  .scene-lead { margin: 17px 0 24px; font-size: 14px; }
  .scene-grid--three,
  .scene-grid--two,
  .result-layout,
  .report-grid { grid-template-columns: 1fr; }
  .scene-card { min-height: 0; padding: 22px; }
  .result-orbit { width: min(290px, 88vw); min-height: 290px; margin: 0 auto; }
  .source-row { grid-template-columns: 1fr; gap: 10px; }
  .source-row > strong { text-align: left; }
  .empty-state { padding: 27px; }
  .report-sheet { padding: 21px; }
  .report-sheet > header { display: grid; }
  .fact-list div { grid-template-columns: 1fr; gap: 5px; }
  .fact-list dd { text-align: left; }
  .carismagic-mark { margin-top: 42px; font-size: 20vw; }
}

@media (max-height: 780px) and (min-width: 768px) {
  .scene-shell { justify-content: flex-start; padding-top: 42px; }
  .scene-shell > h2 { font-size: 50px; }
  .scene-card { min-height: 190px; }
}

@media (prefers-reduced-motion: reduce) {
  :root { --vector-duration: 1ms; }
  html.js.engine-ready .vector-track,
  html.js.engine-ready .vector-scene > * { transition-duration: 1ms !important; }
}

@media print {
  body { background: #fff !important; color: #111 !important; overflow: visible !important; }
  .topbar,
  .vector-scene:not([data-scene-id="rapport"]),
  .route-status,
  .engine-error { display: none !important; }
  .stage-viewport,
  .risk-artboard,
  .vector-viewport,
  .vector-track,
  .vector-scene[data-scene-id="rapport"] { width: auto !important; height: auto !important; overflow: visible !important; transform: none !important; background: #fff !important; color: #111 !important; }
  .vector-track { display: block !important; }
  .report-sheet { border: 1px solid #888; box-shadow: none; background: #fff; }
}
