/* .47 Dashboard scenes. With no scene selected, none of the dashboard rules match. */
.nocto-dashboard-scene { display:none; }
.dashboard-scene-editor { grid-column:1 / -1; min-width:0; }
.scene-editor-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.scene-editor-heading h3 { margin:4px 0 0; }
.scene-choices { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:10px; margin:20px 0; }
.scene-choice { display:flex; align-items:center; gap:12px; padding:14px; min-width:0; min-height:88px; border:1px solid var(--line); border-radius:14px; color:var(--text); background:var(--panel); text-align:left; cursor:pointer; font:inherit; }
.scene-choice > span:nth-child(2) { flex:1; min-width:0; }
.scene-choice b,.scene-choice small { display:block; }
.scene-choice small { margin-top:4px; color:var(--muted); font-size:12px; line-height:1.5; }
.scene-choice[aria-pressed="true"] { border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent); }
.scene-choice:focus-visible,.scene-editor-actions :focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
.scene-choice-mark { flex:none; width:16px; color:var(--accent); }
.scene-swatch { display:block; flex:none; width:44px; height:54px; border:1px solid var(--line); border-radius:9px; background:linear-gradient(145deg,var(--scene-swatch-a,var(--panel)) 0 60%,var(--scene-swatch-b,var(--accent)) 61%); }
.scene-preview { position:relative; margin:16px 0; height:240px; overflow:hidden; border-radius:16px; background:var(--bg); }
.scene-preview img { width:100%; height:100%; object-fit:contain; }
.scene-preview figcaption { position:absolute; bottom:10px; left:10px; max-width:calc(100% - 20px); padding:7px 11px; border-radius:8px; background:#101820; color:#fff; font-size:12px; }
.scene-preview[hidden] { display:none; }
.scene-editor-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.scene-editor-actions :is(button,a) { min-height:44px; }
.scene-editor-actions a { display:inline-flex; align-items:center; text-decoration:none; }
.scene-footnote { margin-bottom:0; font-size:12px; line-height:1.6; }

/* These variables exist only on the authenticated Dashboard body, not :root.
   Shared navigation inherits the palette; its route/capability logic is unchanged. */
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] {
  isolation:isolate; color:var(--text); color-scheme:var(--scene-mode);
  background:var(--scene-bg) !important;
  --journey-light:var(--accent); --journey-metal:var(--secondary);
  --journey-stroke:var(--line); --journey-back:var(--panel);
  --journey-glass:var(--panel); --journey-shadow:0 12px 34px #00000014;
  --surface:var(--scene-inset); --focus:var(--accent); --spark:var(--secondary);
  --glass-blur:10px;
  --scene-muted:var(--muted);
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene]::before,
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene]::after { content:none !important; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .nocto-dashboard-scene:not([hidden]) {
  display:block; position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none; background:var(--scene-bg);
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .nocto-dashboard-scene > img {
  display:block; position:absolute; top:var(--scene-top,0px); right:var(--scene-right,0%);
  width:var(--scene-width,100%); height:var(--scene-height,100%);
  object-fit:var(--scene-fit,cover); object-position:var(--scene-position,center top);
  filter:none; opacity:1;
  -webkit-mask-image:var(--scene-mask,linear-gradient(#000 72%,transparent));
  mask-image:var(--scene-mask,linear-gradient(#000 72%,transparent));
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .nocto-dashboard-scene > img[hidden] { display:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] study-page-shell {
  --chrome-nav-bg:var(--panel); --chrome-active-bg:var(--scene-inset);
  --chrome-menu-bg:var(--panel); --chrome-menu-border:var(--line);
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 { color:var(--text); }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] :is(.workspace,.shell,#content) { background:transparent; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-atmosphere { display:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-hero {
  overflow:visible; isolation:isolate; background:transparent; border-color:transparent; box-shadow:none;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-hero::before {
  content:""; position:absolute; inset:-20px -18px; z-index:-1; pointer-events:none;
  background:linear-gradient(90deg,rgba(var(--bg-rgb),.96),rgba(var(--bg-rgb),.93) 49%,rgba(var(--bg-rgb),.3) 70%,transparent);
  filter:none; border-radius:0; box-shadow:none;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-hero::after,
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-hero-copy::before,
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-hero-copy::after { content:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-hero-copy { background:transparent; border:0; box-shadow:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-hero h2,
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-hero h2 :is(em,i,span) {
  color:var(--text); -webkit-text-fill-color:var(--text); background:none; filter:none; text-shadow:none;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-hero :is(.j-kicker,p,.j-practice-plan) { color:var(--text); text-shadow:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-coordinate { display:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-hero-note {
  top:20px; transform:none; color:var(--text); background:var(--panel); border-color:var(--line); box-shadow:none;
  backdrop-filter:none; -webkit-backdrop-filter:none;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-hero-note :is(p,em,small,span) { color:var(--text); text-shadow:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 :is(.j-card,.j-primary,.j-secondary,.j-tabs [aria-selected="true"],.j-activity-details) {
  color:var(--text); border-color:var(--line); text-shadow:none; box-shadow:0 1px 0 #ffffff0c,0 10px 30px #00000014;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 :is(.j-card,.j-activity-details) {
  background:var(--panel); border-radius:var(--scene-radius,16px); backdrop-filter:none; -webkit-backdrop-filter:none;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-card::before { content:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 :is(.j-primary,.j-tabs [aria-selected="true"]) {
  color:var(--on-accent); background:var(--accent); border-color:var(--accent); box-shadow:none;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-secondary { color:var(--text); background:var(--panel); }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 :is(.j-primary,.j-tabs [aria-selected="true"]) .j-icon { color:var(--on-accent); filter:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-card :is(h3,h4,strong,b) { color:var(--text); text-shadow:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-card :is(p,small,.j-kicker,.j-small-label,.j-live-label,.j-measure-note,.j-import-help,.j-radar-caption,.j-performance-caption,.j-chart-caption,.j-chart-legend) { color:var(--muted); text-shadow:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-card :is(.j-module-body,.j-focus-row,.j-action-tile,.j-next-step,.j-stat,.j-tabs,.j-live-label,.j-module-symbol,.j-focus-mark,.j-performance-trend,.j-chart,.j-mastery-radar > svg) {
  color:var(--text); background:var(--scene-inset); border-color:var(--line); box-shadow:none;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-card .j-tabs [aria-selected="true"] { color:var(--on-accent); background:var(--accent); }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 :is(.j-icon,.j-text-action) { color:var(--accent); filter:none; text-shadow:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 svg text { fill:var(--text); filter:none; text-shadow:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 :is(.j-performance-line,.j-performance-point,.j-ring-value,.j-radar-score) { filter:none; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-streak > p,
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-streak > p em { color:var(--text); background:none; -webkit-text-fill-color:var(--text); }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 :is(button,summary,[tabindex]):focus-visible { outline:3px solid var(--accent); outline-offset:3px; }

/* Art direction uses original files; no enlargement filters or generated replacements. */
body[data-dashboard-scene="eventide"] { --scene-top:-95px; --scene-height:clamp(640px,60vw,820px); --scene-position:50% 65%; }
body[data-dashboard-scene="prismatic-archive"] { --scene-width:auto; --scene-height:clamp(500px,48vw,660px); --scene-top:-45px; --scene-right:14%; --scene-fit:contain; --scene-mask:none; }
body[data-dashboard-scene="redline-chrome"] { --scene-width:auto; --scene-height:850px; --scene-right:3%; --scene-fit:contain; --scene-mask:linear-gradient(#000 82%,transparent); }
body[data-dashboard-scene="aero-commons"] { --scene-width:62%; --scene-height:105vh; --scene-position:right 50%; --scene-mask:linear-gradient(90deg,transparent,#000 25%); }
body[data-dashboard-scene="glass-muse"] { --scene-width:auto; --scene-height:690px; --scene-right:17%; --scene-top:-45px; --scene-fit:contain; --scene-mask:linear-gradient(90deg,transparent,#000 16%,#000 84%,transparent); }
body[data-dashboard-scene="quiet-orbit"] { --scene-width:70%; --scene-height:900px; --scene-position:center 50%; --scene-mask:linear-gradient(90deg,transparent,#000 25%); }
body[data-dashboard-scene="rose-nocturne"] { --scene-position:65% top; }
body[data-dashboard-scene="stone-and-sea"] { --scene-height:100%; --scene-position:65% top; }
.scene-aero-atmosphere { display:none; }
body[data-dashboard-scene="aero-commons"] .scene-aero-atmosphere { display:block; position:absolute; inset:0; overflow:hidden; }
.scene-cloud { position:absolute; width:300px; height:120px; opacity:.75; background:radial-gradient(ellipse at 40% 65%,#fff 0 22%,transparent 24%),radial-gradient(ellipse at 60% 45%,#fff 0 23%,transparent 25%),radial-gradient(ellipse at 75% 67%,#fff 0 22%,transparent 24%); }
.scene-cloud-one { left:4%; top:6%; }.scene-cloud-two { left:27%; top:37%; transform:scale(.7); opacity:.5; }
.scene-bubble { position:absolute; left:39%; top:20%; width:74px; height:74px; border:1px solid #ffffffb3; border-radius:50%; background:radial-gradient(circle at 30% 24%,#fff9,transparent 21%),radial-gradient(circle at 60% 85%,#b9ffba66,transparent 45%); box-shadow:inset 2px 2px 6px #ffffffa6,inset -3px -5px 6px #08799d66; }
.scene-bubble:nth-of-type(4) { left:8%; top:49%; width:120px; height:120px; }
.scene-bubble:nth-of-type(5) { left:49%; top:61%; width:42px; height:42px; }
.scene-bubble:nth-of-type(6) { left:28%; top:9%; width:32px; height:32px; }
@media (min-width:1800px) {
  body[data-dashboard-scene="eventide"] { --scene-top:-120px; }
  body[data-dashboard-scene="prismatic-archive"] { --scene-height:710px; --scene-right:18%; }
}
@media (max-width:767px) {
  .scene-choices { grid-template-columns:1fr; }
  .scene-preview { height:190px; }
  html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-hero::before { inset:-16px; background:rgba(var(--bg-rgb),.96); }
  html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-hero-note { display:none; }
  body[data-dashboard-scene] { --scene-position:62% top; --scene-height:100%; }
  body[data-dashboard-scene="eventide"] { --scene-height:660px; --scene-top:-80px; --scene-position:54% 50%; }
  body[data-dashboard-scene="prismatic-archive"] { --scene-height:560px; --scene-top:-25px; --scene-right:-34%; }
  body[data-dashboard-scene="aero-commons"] { --scene-width:100%; --scene-mask:none; }
  body[data-dashboard-scene="redline-chrome"] { --scene-height:760px; --scene-right:-38%; }
  body[data-dashboard-scene="glass-muse"] { --scene-height:600px; --scene-right:-25%; }
  body[data-dashboard-scene="quiet-orbit"] { --scene-width:100%; --scene-height:800px; }
}
@media (prefers-reduced-motion:reduce) { .nocto-dashboard-scene *,.dashboard-scene-editor * { animation:none !important; transition:none !important; } }

/* Scene palettes. Applied below the root so all other study surfaces retain .46 tokens. */
body[data-study-route="dashboard"][data-dashboard-scene="verdant-afterhours"]{--scene-mode:dark;--scene-bg:#101e1a;--bg:#101e1a;--bg-rgb:16,30,26;--panel:#162b23;--panel-rgb:22,43,35;--rail-rgb:16,30,26;--text:#f2f1df;--muted:#bccac1;--accent:#b9dabf;--accent-rgb:185,218,191;--on-accent:#13261d;--secondary:#dec196;--line:#334a3c;--scene-inset:#1c342b;--scene-radius:16px;}
.scene-swatch[data-scene-palette="verdant-afterhours"]{--scene-swatch-a:#101e1a;--scene-swatch-b:#b9dabf;}
body[data-study-route="dashboard"][data-dashboard-scene="orbital-oasis"]{--scene-mode:dark;--scene-bg:#07172a;--bg:#07172a;--bg-rgb:7,23,42;--panel:#0c2237;--panel-rgb:12,34,55;--rail-rgb:7,23,42;--text:#f0eadb;--muted:#bdcbd8;--accent:#e5bc7d;--accent-rgb:229,188,125;--on-accent:#252015;--secondary:#b8d4e7;--line:#394e61;--scene-inset:#142c43;--scene-radius:16px;}
.scene-swatch[data-scene-palette="orbital-oasis"]{--scene-swatch-a:#07172a;--scene-swatch-b:#e5bc7d;}
body[data-study-route="dashboard"][data-dashboard-scene="celestial-atrium"]{--scene-mode:light;--scene-bg:#e7eef4;--bg:#e7eef4;--bg-rgb:231,238,244;--panel:#f6f9fb;--panel-rgb:246,249,251;--rail-rgb:231,238,244;--text:#19354c;--muted:#465f73;--accent:#28648a;--accent-rgb:40,100,138;--on-accent:#ffffff;--secondary:#855a25;--line:#b6c8d3;--scene-inset:#e9f0f4;--scene-radius:18px;}
.scene-swatch[data-scene-palette="celestial-atrium"]{--scene-swatch-a:#e7eef4;--scene-swatch-b:#28648a;}
body[data-study-route="dashboard"][data-dashboard-scene="riviera-canvas"]{--scene-mode:light;--scene-bg:#efe5d0;--bg:#efe5d0;--bg-rgb:239,229,208;--panel:#faf3e3;--panel-rgb:250,243,227;--rail-rgb:239,229,208;--text:#293b46;--muted:#53616b;--accent:#2f6287;--accent-rgb:47,98,135;--on-accent:#ffffff;--secondary:#a64a2e;--line:#c9c0a8;--scene-inset:#eee5d2;--scene-radius:12px;}
.scene-swatch[data-scene-palette="riviera-canvas"]{--scene-swatch-a:#efe5d0;--scene-swatch-b:#2f6287;}
body[data-study-route="dashboard"][data-dashboard-scene="aero-commons"]{--scene-mode:light;--scene-bg:#168fce;--bg:#d4effb;--bg-rgb:212,239,251;--panel:#eaf8fd;--panel-rgb:234,248,253;--rail-rgb:212,239,251;--text:#173d58;--muted:#41627a;--accent:#075c93;--accent-rgb:7,92,147;--on-accent:#ffffff;--secondary:#3d692c;--line:#9fbfce;--scene-inset:#dbf0f8;--scene-radius:18px;}
.scene-swatch[data-scene-palette="aero-commons"]{--scene-swatch-a:#d4effb;--scene-swatch-b:#075c93;}
body[data-study-route="dashboard"][data-dashboard-scene="stillwater-ink"]{--scene-mode:light;--scene-bg:#e6e4d7;--bg:#e6e4d7;--bg-rgb:230,228,215;--panel:#f6f3e8;--panel-rgb:246,243,232;--rail-rgb:230,228,215;--text:#202b23;--muted:#536253;--accent:#354f3c;--accent-rgb:53,79,60;--on-accent:#ffffff;--secondary:#6c5038;--line:#bec4b2;--scene-inset:#e9e9dc;--scene-radius:8px;}
.scene-swatch[data-scene-palette="stillwater-ink"]{--scene-swatch-a:#e6e4d7;--scene-swatch-b:#354f3c;}
body[data-study-route="dashboard"][data-dashboard-scene="acid-chrome"]{--scene-mode:dark;--scene-bg:#0e110d;--bg:#0e110d;--bg-rgb:14,17,13;--panel:#171c15;--panel-rgb:23,28,21;--rail-rgb:14,17,13;--text:#eff3e7;--muted:#c0cbb4;--accent:#c3f13c;--accent-rgb:195,241,60;--on-accent:#202b0d;--secondary:#cfd5c8;--line:#48533d;--scene-inset:#22291d;--scene-radius:5px;}
.scene-swatch[data-scene-palette="acid-chrome"]{--scene-swatch-a:#0e110d;--scene-swatch-b:#c3f13c;}
body[data-study-route="dashboard"][data-dashboard-scene="liquid-ether"]{--scene-mode:light;--scene-bg:#d0e6f4;--bg:#d0e6f4;--bg-rgb:208,230,244;--panel:#eef7fd;--panel-rgb:238,247,253;--rail-rgb:208,230,244;--text:#163047;--muted:#486276;--accent:#245ba6;--accent-rgb:36,91,166;--on-accent:#ffffff;--secondary:#556589;--line:#afc7dc;--scene-inset:#e0eef8;--scene-radius:18px;}
.scene-swatch[data-scene-palette="liquid-ether"]{--scene-swatch-a:#d0e6f4;--scene-swatch-b:#245ba6;}
body[data-study-route="dashboard"][data-dashboard-scene="neon-reverie"]{--scene-mode:dark;--scene-bg:#091523;--bg:#091523;--bg-rgb:9,21,35;--panel:#0d1b2b;--panel-rgb:13,27,43;--rail-rgb:9,21,35;--text:#eff6fb;--muted:#b8c9d9;--accent:#9addeb;--accent-rgb:154,221,235;--on-accent:#153340;--secondary:#e4bbd8;--line:#3e526b;--scene-inset:#172b40;--scene-radius:14px;}
.scene-swatch[data-scene-palette="neon-reverie"]{--scene-swatch-a:#091523;--scene-swatch-b:#9addeb;}
body[data-study-route="dashboard"][data-dashboard-scene="eventide"]{--scene-mode:dark;--scene-bg:#050b10;--bg:#050b10;--bg-rgb:5,11,16;--panel:#0d171e;--panel-rgb:13,23,30;--rail-rgb:5,11,16;--text:#f1eade;--muted:#c9c0b0;--accent:#decaa7;--accent-rgb:222,202,167;--on-accent:#2e261c;--secondary:#b8c9cf;--line:#475052;--scene-inset:#17252d;--scene-radius:16px;}
.scene-swatch[data-scene-palette="eventide"]{--scene-swatch-a:#050b10;--scene-swatch-b:#decaa7;}
body[data-study-route="dashboard"][data-dashboard-scene="prismatic-archive"]{--scene-mode:dark;--scene-bg:#010504;--bg:#010504;--bg-rgb:1,5,4;--panel:#091014;--panel-rgb:9,16,20;--rail-rgb:1,5,4;--text:#f3f5f3;--muted:#b6c0c6;--accent:#bedce7;--accent-rgb:190,220,231;--on-accent:#14222c;--secondary:#cedacb;--line:#3c4b50;--scene-inset:#142127;--scene-radius:10px;}
.scene-swatch[data-scene-palette="prismatic-archive"]{--scene-swatch-a:#010504;--scene-swatch-b:#bedce7;}
body[data-study-route="dashboard"][data-dashboard-scene="redline-chrome"]{--scene-mode:dark;--scene-bg:#ed0000;--bg:#c80000;--bg-rgb:200,0,0;--panel:#171719;--panel-rgb:23,23,25;--rail-rgb:200,0,0;--text:#f5f1ed;--muted:#c9c2be;--accent:#e8e5e1;--accent-rgb:232,229,225;--on-accent:#1e1e1e;--secondary:#e9a39b;--line:#535254;--scene-inset:#242426;--scene-radius:5px;}
.scene-swatch[data-scene-palette="redline-chrome"]{--scene-swatch-a:#c80000;--scene-swatch-b:#e8e5e1;}
body[data-study-route="dashboard"][data-dashboard-scene="stone-and-sea"]{--scene-mode:light;--scene-bg:#e6ddc8;--bg:#e6ddc8;--bg-rgb:230,221,200;--panel:#f7f2e6;--panel-rgb:247,242,230;--rail-rgb:230,221,200;--text:#263b39;--muted:#4c635e;--accent:#31686e;--accent-rgb:49,104,110;--on-accent:#ffffff;--secondary:#805333;--line:#c5c2ae;--scene-inset:#e9e4d4;--scene-radius:12px;}
.scene-swatch[data-scene-palette="stone-and-sea"]{--scene-swatch-a:#e6ddc8;--scene-swatch-b:#31686e;}
body[data-study-route="dashboard"][data-dashboard-scene="glass-muse"]{--scene-mode:light;--scene-bg:#6eb5d1;--bg:#b7dae8;--bg-rgb:183,218,232;--panel:#f2fafd;--panel-rgb:242,250,253;--rail-rgb:183,218,232;--text:#173f58;--muted:#4f6b7c;--accent:#805b48;--accent-rgb:128,91,72;--on-accent:#ffffff;--secondary:#315e7c;--line:#adc9d6;--scene-inset:#e1eef4;--scene-radius:18px;}
.scene-swatch[data-scene-palette="glass-muse"]{--scene-swatch-a:#b7dae8;--scene-swatch-b:#805b48;}
body[data-study-route="dashboard"][data-dashboard-scene="quiet-orbit"]{--scene-mode:dark;--scene-bg:#020c14;--bg:#020c14;--bg-rgb:2,12,20;--panel:#0a1b24;--panel-rgb:10,27,36;--rail-rgb:2,12,20;--text:#e7f0ee;--muted:#a7bdc5;--accent:#9dc6c6;--accent-rgb:157,198,198;--on-accent:#132c34;--secondary:#c3c9aa;--line:#3b535d;--scene-inset:#122c36;--scene-radius:12px;}
.scene-swatch[data-scene-palette="quiet-orbit"]{--scene-swatch-a:#020c14;--scene-swatch-b:#9dc6c6;}
body[data-study-route="dashboard"][data-dashboard-scene="rose-nocturne"]{--scene-mode:dark;--scene-bg:#100c10;--bg:#100c10;--bg-rgb:16,12,16;--panel:#21171e;--panel-rgb:33,23,30;--rail-rgb:16,12,16;--text:#f5e9e5;--muted:#c5b2b4;--accent:#d7a5b0;--accent-rgb:215,165,176;--on-accent:#34202a;--secondary:#c5c7a1;--line:#54424c;--scene-inset:#30242b;--scene-radius:15px;}
.scene-swatch[data-scene-palette="rose-nocturne"]{--scene-swatch-a:#100c10;--scene-swatch-b:#d7a5b0;}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] study-page-shell{background:linear-gradient(var(--panel) 0 72px,transparent 72px);}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .dashboard-v24 .j-card :is(.j-stat>span,.j-progress-label,.j-chart-legend,.j-module-body p,.j-focus-row small,.j-next-step small){color:var(--muted);}

/* The original global themes contain intentional !important ink fixes.
   Override those only inside an explicitly selected Dashboard scene. The
   content ID also outranks the original per-tab paint without editing it. */
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-card {
  --muted:var(--scene-muted);
  color:var(--text) !important; background:var(--panel) !important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-card :is(h3,h4,strong,b,.j-streak-summary) {
  color:var(--text) !important; text-shadow:none !important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-card :is(p,small,span,summary,.empty,.j-chart-legend,.j-text-action,.j-focus-footer),
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-card .j-tabs button {
  color:var(--muted) !important; text-shadow:none !important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-card :is(.j-icon,.j-module-symbol,.j-focus-mark) {
  color:var(--accent) !important; filter:none !important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-card :is(.j-module-body,.j-focus-row,.j-action-tile,.j-next-step,.j-stat,.j-tabs,.j-mastery-radar,.j-empty-measure,.j-performance-trend,.j-chart) {
  background:var(--scene-inset) !important; border-color:var(--line) !important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-card :is(.j-chart-caption,.j-measure-note,.j-radar-caption),
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-mastery-radar > h4 {
  background:none !important; box-shadow:none !important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 :is(.j-primary,.j-tabs button[aria-selected="true"]),
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 :is(.j-primary,.j-tabs button[aria-selected="true"]) :is(span,.j-icon) {
  color:var(--on-accent) !important; background-color:var(--accent); text-shadow:none !important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 svg text {
  fill:var(--text) !important; text-shadow:none !important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 :is(.j-radar-empty,.j-performance-empty) rect {
  fill:var(--panel) !important; stroke:var(--line) !important;
}

/* .47 glass refinement: the artwork is the scene, not a hero-card backdrop.
   Keep these materials scoped to the opt-in dashboard scene marker. */
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] {
  --scene-glass-top: .38;
  --scene-glass-bottom: .52;
  --scene-glass-rim: rgba(255,255,255,.40);
  --scene-glass-highlight: rgba(255,255,255,.24);
  --scene-glass-inner: rgba(255,255,255,.045);
  --scene-glass-inner-line: rgba(255,255,255,.19);
  --scene-glass-filter: blur(20px) saturate(1.12) brightness(.88);
  --scene-type-edge: rgba(0,8,14,.75);
  --scene-type-soft: rgba(0,8,14,.35);
  --scene-copy-ink: var(--text);
  --scene-muted: color-mix(in srgb,var(--text) 86%,var(--muted));
  --chrome-nav-bg: rgba(var(--panel-rgb),.48);
  --chrome-active-bg: rgba(var(--panel-rgb),.22);
  --chrome-menu-bg: rgba(var(--panel-rgb),.9);
  --chrome-menu-border: var(--scene-glass-rim);
  --journey-glass: rgba(var(--panel-rgb),.42);
  --journey-back: rgba(var(--panel-rgb),.10);
  --journey-shadow: 0 10px 30px rgba(0,0,0,.09);
  --glass-blur: 20px;
}
html:root body.study-shell[data-study-route="dashboard"]:is([data-dashboard-scene="celestial-atrium"],[data-dashboard-scene="riviera-canvas"],[data-dashboard-scene="aero-commons"],[data-dashboard-scene="stillwater-ink"],[data-dashboard-scene="liquid-ether"],[data-dashboard-scene="stone-and-sea"],[data-dashboard-scene="glass-muse"]) {
  --scene-glass-top: .43;
  --scene-glass-bottom: .52;
  --scene-glass-rim: rgba(255,255,255,.78);
  --scene-glass-highlight: rgba(255,255,255,.88);
  --scene-glass-inner: rgba(235,246,253,.12);
  --scene-glass-inner-line: rgba(255,255,255,.54);
  --scene-glass-filter: blur(20px) saturate(1.06);
  --scene-type-edge: rgba(249,253,255,.94);
  --scene-type-soft: rgba(239,249,255,.65);
  --scene-muted: color-mix(in srgb,var(--text) 48%,var(--muted));
  --chrome-nav-bg: rgba(var(--panel-rgb),.50);
  --chrome-active-bg: rgba(255,255,255,.36);
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene="aero-commons"] {
  background: linear-gradient(115deg,#b9e7f5 0%,#6fc8eb 40%,#168fce 75%)!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene="redline-chrome"] { --scene-copy-ink:#fff; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .study-page-shell {
  background: transparent!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 :is(.j-hero,.j-hero-copy) {
  background: transparent!important;
  border-color: transparent!important;
  box-shadow: none!important;
  backdrop-filter: none!important;
  -webkit-backdrop-filter: none!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-hero::before,
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-hero::after,
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-hero-copy::before,
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-hero-copy::after {
  content:none!important;
  display:none!important;
  background:none!important;
  box-shadow:none!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-hero-copy :is(h2,h2 em,h2 i,h2 span,p,.j-kicker,.j-practice-plan) {
  color:var(--scene-copy-ink)!important;
  -webkit-text-fill-color:var(--scene-copy-ink)!important;
  background:none!important;
  box-shadow:none!important;
  filter:none!important;
  text-shadow:0 1px 2px var(--scene-type-edge),0 0 12px var(--scene-type-soft)!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-hero-copy > p {
  font-weight:500;
  text-shadow:0 1px 2px var(--scene-type-edge),0 0 5px var(--scene-type-edge),0 0 11px var(--scene-type-soft)!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 :is(.j-card,.j-activity-details,.j-hero-note) {
  color:var(--text)!important;
  background:linear-gradient(135deg,rgba(var(--panel-rgb),var(--scene-glass-top)),rgba(var(--panel-rgb),var(--scene-glass-bottom)))!important;
  border:1px solid var(--scene-glass-rim)!important;
  box-shadow:inset 0 1px 0 var(--scene-glass-highlight),inset 0 -1px 0 rgba(255,255,255,.06),0 8px 28px rgba(0,0,0,.08)!important;
  -webkit-backdrop-filter:var(--scene-glass-filter)!important;
  backdrop-filter:var(--scene-glass-filter)!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-card {
  border-radius:max(16px,var(--scene-radius,18px));
  --muted:var(--scene-muted);
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-card::after { opacity:.42; }
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-hero-note {
  border-radius:20px;
  background:linear-gradient(135deg,rgba(var(--panel-rgb),.28),rgba(var(--panel-rgb),.42))!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-card :is(.j-module-body,.j-focus-row,.j-action-tile,.j-next-step,.j-stat,.j-tabs,.j-mastery-radar,.j-empty-measure,.j-performance-trend,.j-chart,.j-live-label) {
  background:var(--scene-glass-inner)!important;
  border-color:var(--scene-glass-inner-line)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12)!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-card :is(h3,h4,strong,b,.j-streak-summary) {
  color:var(--text)!important;
  background:none!important;
  box-shadow:none!important;
  text-shadow:0 1px 2px color-mix(in srgb,var(--scene-type-edge) 35%,transparent)!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-card :is(p,small,span,summary,.empty,.j-chart-legend,.j-text-action,.j-focus-footer),
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-card .j-tabs button {
  color:var(--scene-muted)!important;
  text-shadow:0 1px 2px color-mix(in srgb,var(--scene-type-edge) 35%,transparent)!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 :is(.j-primary,.j-tabs button[aria-selected="true"]) {
  color:var(--on-accent)!important;
  background:linear-gradient(125deg,color-mix(in srgb,var(--accent) 88%,white),var(--accent))!important;
  border-color:color-mix(in srgb,var(--accent) 55%,white)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.44),0 4px 16px rgba(0,0,0,.10)!important;
  text-shadow:none!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 :is(.j-primary,.j-tabs button[aria-selected="true"]) :is(span,.j-icon) {
  color:var(--on-accent)!important;
  background:none!important;
  text-shadow:none!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 .j-secondary {
  background:rgba(var(--panel-rgb),.26)!important;
  border:1px solid var(--scene-glass-rim)!important;
  box-shadow:inset 0 1px 0 var(--scene-glass-highlight),0 5px 18px rgba(0,0,0,.06)!important;
  -webkit-backdrop-filter:blur(12px) saturate(1.08);
  backdrop-filter:blur(12px) saturate(1.08);
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 :is(.j-radar-empty,.j-performance-empty) rect {
  fill:rgba(var(--panel-rgb),.30)!important;
  stroke:var(--scene-glass-inner-line)!important;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] #content .dashboard-v24 svg text {
  fill:var(--text)!important;
  text-shadow:0 1px 2px var(--scene-type-soft)!important;
}
@media(max-width:640px) {
  html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] {
    --scene-glass-top:.42;
    --scene-glass-bottom:.55;
    --scene-glass-filter:blur(16px) saturate(1.08);
  }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] {
    --scene-glass-top:.84;
    --scene-glass-bottom:.90;
  }
}

/* Artwork-aware ink and framing, without a text backplate. */
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene="stone-and-sea"] #content .dashboard-v24 .j-hero-copy {
  --scene-copy-ink:#fff8ed;
  --scene-type-edge:rgba(8,15,16,.90);
  --scene-type-soft:rgba(8,15,16,.45);
}
@media(max-width:640px) {
  html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene="stillwater-ink"] {
    --scene-position:left top;
  }
}
/* .50 nested mastery glass. The radar already lives inside the same translucent
   inset as the other dashboard cards. Do not paint another sheet behind its
   drawing, heading or caption. The two IDs deliberately outrank the legacy
   artwork theme rules, even when dashboard-v24.css is loaded afterward.
   Keep border widths, spacing, artwork and the parent backdrop filter intact. */
html:root body.study-shell[data-study-route="dashboard"] #content .dashboard-v24 #journey-panel-mastery .j-mastery-radar > :is(svg,h4,.j-radar-caption) {
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
html:root body.study-shell[data-study-route="dashboard"] #content .dashboard-v24 #journey-panel-mastery .j-mastery-radar > h4 {
  color:var(--text)!important;
}
html:root body.study-shell[data-study-route="dashboard"] #content .dashboard-v24 #journey-panel-mastery .j-radar-caption {
  color:inherit!important;
}
html:root body.study-shell[data-study-route="dashboard"] #content .dashboard-v24 #journey-panel-mastery .j-mastery-radar > svg :is(text,tspan) {
  fill:var(--text)!important;
}
/* Chart captions use the chart's glass, not a second tinted text strip. */
html:root body.study-shell[data-study-route="dashboard"] #content .dashboard-v24 #journey-panel-performance .j-chart-caption,
html:root body.study-shell[data-study-route="dashboard"] #content .dashboard-v24 #journey-panel-time .j-chart-caption {
  background:transparent!important;
  box-shadow:none!important;
}

/* .50 adaptive art: only the seven opted-in scenes receive this marker.
   Keep original pixels sharp and complete; reuse the same URL for the fill. */
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .nocto-dashboard-scene[data-scene-fit] > img {
  inset:0;
  width:100%; height:100%; max-width:none; max-height:none; margin:auto;
  object-fit:cover; object-position:center;
  -webkit-mask-image:none; mask-image:none;
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .nocto-dashboard-scene[data-scene-fit="contain"] > img {
  object-fit:contain;
  max-width:var(--scene-art-max-width,100%);
  max-height:var(--scene-art-max-height,100%);
}
html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .nocto-dashboard-scene[data-scene-fit="contain"]::before {
  content:""; position:absolute; inset:-48px;
  background:var(--scene-fill-image) center / cover no-repeat;
  filter:blur(24px) brightness(.72); transform:scale(1.05);
}
html:root body.study-shell[data-study-route="dashboard"] #content .dashboard-v24 #journey-panel-mastery .j-mastery-radar { background:transparent!important; border-color:transparent!important; box-shadow:none!important; }

/* .50 desktop contain art: feather the intrinsic image box, not a letterboxed
   viewport-sized box. Keep its centre right of the headline and let the fixed
   scene layer continue behind the cards. The existing 1.25x pixel cap remains.
   Phone layouts, cover scenes, the blurred fill and card glass are unchanged. */
@media (min-width:1024px) {
  html:root body.study-shell[data-study-route="dashboard"][data-dashboard-scene] .nocto-dashboard-scene[data-scene-fit="contain"] > img {
    inset:auto;
    top:50%; left:62.5%;
    width:auto;
    height:min(100%,var(--scene-art-max-height,100%));
    max-width:none; max-height:none; margin:0;
    transform:translate(-50%,-50%);
    -webkit-mask-image:linear-gradient(to right,transparent,#000 18%,#000 82%,transparent),linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent);
    mask-image:linear-gradient(to right,transparent,#000 18%,#000 82%,transparent),linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-composite:source-in;
    mask-composite:intersect;
  }
}
