/* RL Studio / editorial product-family layout. No third-party assets or fonts. */
:root {
 --sans:-apple-system,BlinkMacSystemFont,"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;
 --bg:#000;--surface:#161617;--surface-2:#202022;--surface-3:#303033;
 --border:#424245;--border-soft:#2d2d30;--text:#f5f5f7;--muted:#a1a1a6;--faint:#96969c;
 --blue:#2997ff;--blue-strong:#0071e3;--green:#55c486;--red:#ff6961;--amber:#e8ad60;
 --studio-page:#000;--studio-section:#161617;--studio-nav:rgb(22 22 23 / .88);
}
:root[data-theme=light] {
 --bg:#f5f5f7;--surface:#fff;--surface-2:#f5f5f7;--surface-3:#e8e8ed;
 --border:#d2d2d7;--border-soft:#e5e5e8;--text:#1d1d1f;--muted:#6e6e73;--faint:#747479;
 --blue:#0066cc;--blue-strong:#0071e3;--green:#248a3d;--red:#c43127;--amber:#9a6700;
 --studio-page:#fff;--studio-section:#f5f5f7;--studio-nav:rgb(250 250 252 / .88);
}
body { -webkit-font-smoothing:antialiased; }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid var(--blue);outline-offset:4px; }
.library-view,:root:not([data-theme=light]) .library-view { background:var(--studio-page);color:var(--text); }
.library-nav,:root:not([data-theme=light]) .library-nav {
 height:52px;padding:0 max(28px,calc((100vw - 1200px)/2));gap:30px;
 border:0;background:var(--studio-nav);backdrop-filter:saturate(180%) blur(20px);
}
.library-brand { flex-shrink:0;color:var(--text);text-decoration:none;font-size:15px;font-weight:600;letter-spacing:-.5px; }
.library-nav-links { position:static;transform:none;flex:1;justify-content:center;gap:8px; }
.library-nav-links a { padding:16px 10px;font-size:12px;border-radius:0;white-space:nowrap;color:var(--muted); }
.library-nav-links a.active,.library-nav-links a:hover { color:var(--text);background:none; }
.library-nav-links a.active { text-underline-offset:7px; }
.library-nav-actions { gap:10px; }
.library-nav .account-button { padding:0;border:0;border-radius:0;background:none;font-size:12px;font-weight:400; }
.library-nav .account-avatar { display:none; }
.library-nav .theme-button { width:32px;height:32px;border:0;background:none;font-size:19px; }
.domain-hub { max-width:none;margin:0;padding:0; }
.studio-heading { max-width:1200px;display:flex;justify-content:space-between;align-items:center;gap:40px;margin:0 auto;padding:75px 0 62px; }
.studio-heading h1,.domain-intro h1 { margin:0;font-size:clamp(48px,5.3vw,72px);font-weight:650;line-height:1.12;letter-spacing:-.055em; }
.studio-heading p,.domain-intro p { margin:0;font-size:24px;font-weight:600;color:var(--text);line-height:1.45;letter-spacing:-.035em; }
.domain-grid { max-width:1280px;margin:0 auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:6px 22px 76px; }
.domain-card { border:0;border-radius:0;box-shadow:none;background:none;text-align:center;transition:none; }
.domain-card:hover { transform:none;border:0; }
.domain-preview,.domain-vision .domain-preview,.domain-slam .domain-preview { padding:0;background:none;color:var(--text); }
.domain-preview svg { width:100%;height:auto;fill:none;transition:transform .4s ease; }
.domain-card:hover .domain-preview svg { transform:translateY(-5px); }
.domain-card-copy { padding:12px 14px 0; }
.domain-card h2 { margin:0 0 16px;font-size:30px;font-weight:600;letter-spacing:-.035em; }
.domain-card p { font-size:17px;line-height:1.65;color:var(--text);margin:0 0 17px; }
.domain-count { display:block;font-size:12px;color:var(--muted);line-height:1.6;min-height:20px; }
.domain-card strong { display:inline-flex;gap:14px;margin:25px 0 0;padding:11px 21px;border-radius:99px;background:#0071e3;color:#fff;font-size:14px;font-weight:400; }
.domain-card:hover strong { background:#0077ed; }
.studio-project-feature { display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px;background:var(--studio-section);padding:84px max(36px,calc((100vw - 1120px)/2)); }
.studio-section-label { color:var(--muted);font-size:17px;font-weight:600; }
.studio-project-feature h2 { margin:17px 0 22px;font-size:clamp(32px,3.8vw,48px);font-weight:600;line-height:1.22;letter-spacing:-.045em; }
.studio-project-feature p { font-size:17px;line-height:1.7;color:var(--muted); }
.studio-button { display:inline-flex;gap:15px;padding:12px 23px;border-radius:99px;background:#0071e3;color:#fff!important;text-decoration:none;font-size:14px;margin-top:12px; }
.studio-button:hover { background:#0077ed; }
.studio-code-sample { min-width:0;background:var(--surface);border-radius:16px;box-shadow:0 16px 40px #00000008;overflow:hidden; }
.studio-code-file { padding:19px 24px;border-bottom:1px solid var(--border-soft);font:12px var(--mono);display:flex;justify-content:space-between; }
.studio-code-file span { color:var(--muted); }
.studio-code-sample pre { margin:0;padding:28px 24px;font:13px/2.1 var(--mono);overflow:auto;color:var(--text); }
.studio-code-comment { color:var(--muted); }.studio-code-keyword { color:#a653ab; }.studio-code-function { color:var(--blue); }
.studio-code-sample p { display:flex;justify-content:space-between;border-top:1px solid var(--border-soft);margin:0;padding:18px 24px;font-size:12px; }
.domain-footnote { max-width:1200px;margin:0 auto;padding:28px 0;color:var(--muted);font-size:12px; }
/* A directory, not a dashboard. Filters and progress stay available. */
.hall-layout { max-width:1200px;grid-template-columns:175px minmax(0,1fr);min-height:calc(100vh - 52px);gap:48px; }
.hall-sidebar { top:52px;height:calc(100vh - 52px);padding:52px 0;border:0; }
.hall-main { padding:52px 0 36px; }
.hall-welcome { align-items:start;margin-bottom:52px;gap:22px; }
.hall-welcome .library-eyebrow { display:none; }
.hall-welcome h1 { font-size:48px;font-weight:600;letter-spacing:-.04em;margin:0 0 18px; }
.hall-welcome p { font-size:17px;line-height:1.6;color:var(--muted);max-width:340px; }
.hall-stats,:root:not([data-theme=light]) .hall-stats { border:0;border-radius:0;background:none;flex-shrink:0; }
.hall-stats div { min-width:65px;padding:5px 16px;border:0; }.hall-stats strong { font-size:24px;font-weight:500; }.hall-stats span { font-size:11px;line-height:1.5;color:var(--muted);margin-top:7px; }
.hall-section-title { margin:0;padding:0 0 20px;border-bottom:1px solid var(--border);gap:20px; }.hall-section-title h2 { font-size:24px;font-weight:600; }.hall-section-title small { color:var(--muted);font-size:12px; }
.hall-sidebar-label { color:var(--muted);font-weight:500;font-size:11px;letter-spacing:0; }
.hall-side-item,:root:not([data-theme=light]) .hall-side-item { color:var(--muted);font-weight:400;font-size:12px;grid-template-columns:1fr auto;gap:5px;border-radius:6px; }
.hall-side-item>span { display:none; }.hall-side-item small { color:inherit; }
.hall-side-item.active,:root:not([data-theme=light]) .hall-side-item.active { background:var(--surface-2);color:var(--text);font-weight:600; }
.sidebar-note { display:none; }.domain-back { font-size:12px;color:var(--blue); }
.course-list,:root:not([data-theme=light]) .course-list { background:none;border:0;border-radius:0; }
.course-row { grid-template-columns:30px minmax(0,1fr) auto;gap:20px;padding:26px 0;border-bottom:1px solid var(--border-soft); }
.course-symbol { display:none; }.course-index { font:12px var(--mono);color:var(--muted);align-self:start;padding-top:5px; }
.course-heading-line { gap:12px; }.course-heading-line h3 { margin:0;font-size:19px;font-weight:600;line-height:1.4; }.course-heading-line>span { padding:0;background:none;border-radius:0;font-size:11px;color:var(--muted); }
.course-row p { color:var(--muted);font-size:13px;line-height:1.7;margin-top:9px; }.course-row .course-prereq { font-size:12px;opacity:1; }.course-copy small { font-size:12px;color:var(--muted); }
.course-actions { flex-direction:column;align-items:end;gap:8px; }.course-actions a { color:var(--blue);font-size:12px;padding:7px 12px; }.course-actions .course-practice { background:#0071e3;color:white;border-radius:99px; }
.course-outline summary { font-weight:400;font-size:12px; }.course-outline>div { border-radius:8px;padding:16px;gap:12px; }.course-outline a { font-size:12px;line-height:1.6; }
/* Invitation page: the form is the focus. */
.access-gate,:root:not([data-theme=light]) .access-gate { background:var(--studio-page);color:var(--text);overflow-y:auto; }
.access-card,:root:not([data-theme=light]) .access-card { width:min(480px,100%);background:none;border:0;border-radius:0;box-shadow:none;padding:42px 28px;backdrop-filter:none; }
.access-logo { display:none; }.access-eyebrow { color:var(--text);font-size:19px;letter-spacing:-.5px;font-weight:600; }
.access-card h1 { margin:35px 0 20px;font-size:46px;font-weight:600;line-height:1.2;letter-spacing:-.04em; }
.access-card>p,:root:not([data-theme=light]) .access-card>p { font-size:17px;color:var(--muted);line-height:1.6; }
.access-input-row { grid-template-columns:1fr;gap:16px; }.access-input-row input,:root:not([data-theme=light]) .access-input-row input { border:1px solid var(--border);border-radius:10px;height:56px;font:16px var(--mono);color:var(--text);background:var(--surface); }
.access-input-row button { background:#0071e3;font-weight:400;border-radius:99px;box-shadow:none;height:48px; }.access-privacy { font-size:12px;color:var(--muted); }.access-privacy span { display:none; }
/* Project overview follows the same family layout. */
.studio-project-nav { background:var(--studio-nav);border:0;padding:0 max(28px,calc((100vw - 1200px)/2));height:52px;position:sticky;top:0;z-index:5;backdrop-filter:blur(20px); }
.studio-wordmark { font-weight:600;color:var(--text)!important;font-size:15px; }.studio-project-nav nav { display:flex;gap:32px;font-size:12px; }.studio-project-nav nav a { color:var(--muted); }.studio-project-nav button { border:0;background:none;padding:6px; }
.project-view:has(.studio-project-catalog) { background:var(--studio-page); }
.project-catalog.studio-project-catalog { max-width:1200px;padding:0;margin:0 auto; }
.studio-project-catalog .studio-heading h1 { font-size:clamp(48px,5.3vw,72px); }
.studio-project-catalog .studio-heading p { color:var(--text);font-size:24px;margin:0;line-height:1.45; }
.studio-project-grid { display:grid;grid-template-columns:1fr 1fr;column-gap:64px; }
.studio-project-item { display:grid;grid-template-columns:115px 1fr;align-items:center;gap:28px;padding:35px 0;border-top:1px solid var(--border); }
.studio-project-name { font-size:26px;font-weight:650;letter-spacing:-1px;color:var(--text); }
.studio-project-meta { font-size:11px;color:var(--muted); }.studio-project-item h2 { font-size:20px;line-height:1.5;margin:9px 0;color:var(--text);font-weight:600; }.studio-project-item p { font-size:13px;line-height:1.7;color:var(--muted);margin:0 0 18px; }
.studio-text-link { color:var(--blue);font-size:13px; }.studio-text-link span { margin-left:7px; }.studio-project-item:hover .studio-text-link { text-decoration:underline; }
.studio-endnote { margin:50px 0 0;padding:28px 0;border-top:1px solid var(--border-soft);color:var(--muted);font-size:12px;line-height:1.7; }
/* Working views keep their density; only typography and chrome are restyled. */
.topbar,:root[data-theme=light] .topbar { background:var(--surface);border-bottom-color:var(--border-soft); }
.brand-mark { background:var(--text);color:var(--surface);box-shadow:none;width:28px;height:28px;border-radius:7px;font-weight:600; }.brand-tag { display:none; }
.account-avatar,.account-button.signed-in .account-avatar { background:var(--surface-3);color:var(--text); }
.progress-track span { background:var(--blue); }.run-button { background:#0071e3;box-shadow:none;border-radius:99px; }.training-button { border-radius:99px; }
.project-view .project-primary { background:#0071e3;border-color:#0071e3;color:white; }
.project-problem,.project-code,.project-panel { border-radius:12px;box-shadow:none; }
.account-card { box-shadow:0 16px 60px #0002; }
@media(min-width:1600px) { .domain-grid { padding-top:22px;padding-bottom:90px; } }
@media(max-width:1280px) { .studio-heading,.hall-layout,.domain-footnote,.project-catalog.studio-project-catalog { width:calc(100% - 80px); }.hall-layout { gap:32px;grid-template-columns:155px minmax(0,1fr); }.library-nav { gap:18px; }.library-nav-links { gap:0; }.studio-project-grid { column-gap:40px; }.studio-project-item { grid-template-columns:100px 1fr;gap:20px; } }
@media(max-width:1000px) { .hall-welcome { flex-direction:column; }.hall-stats div:first-child { padding-left:0; }.studio-project-feature { gap:36px;padding:64px 40px; }.domain-count { font-size:11px; }.domain-card h2 { font-size:26px; }.domain-card p { font-size:15px; }.library-nav-links a { padding-left:8px;padding-right:8px;font-size:11px; }.library-nav .account-button [data-account-label] { display:none; }.library-nav .account-avatar { display:grid;background:none;color:var(--text); }.library-nav .account-button { width:26px; }.studio-project-item { grid-template-columns:1fr;gap:15px; } }
@media(max-width:760px) {
 .library-nav,:root:not([data-theme=light]) .library-nav { height:auto;min-height:52px;flex-wrap:wrap;padding:0 22px;gap:0; }.library-brand { order:0;height:52px;display:flex;align-items:center; }.library-nav-actions { order:1;margin-left:auto; }.library-nav-links { order:2;display:flex;flex:0 0 calc(100% + 44px);margin:0 -22px;padding:0 14px;overflow:auto;justify-content:space-between;border-top:1px solid var(--border-soft); }.library-nav-links a { padding:13px 8px;font-size:11px; }
 .studio-heading,.domain-intro { width:calc(100% - 44px);padding:46px 0 35px;display:block;margin:0 auto; }.studio-heading h1,.domain-intro h1 { font-size:48px; }.studio-heading p,.domain-intro p,.studio-project-catalog .studio-heading p { margin-top:20px;font-size:20px; }
 .domain-grid { grid-template-columns:1fr;padding:0 22px 38px;gap:0;max-width:540px; }.domain-card { display:grid;grid-template-columns:44% 1fr;align-items:center;padding:30px 0;border-bottom:1px solid var(--border-soft);text-align:left; }.domain-card:last-child { border:0; }.domain-card:hover { border-bottom:1px solid var(--border-soft); }.domain-card:last-child:hover { border:0; }.domain-card-copy { padding:0 0 0 16px; }.domain-card h2 { font-size:24px;margin-bottom:10px; }.domain-card p { font-size:13px;margin-bottom:10px; }.domain-card strong { margin-top:15px;padding:9px 16px;font-size:12px; }.domain-preview svg { width:115%;max-width:none;margin-left:-8%; }.domain-count { font-size:10px; }
 .studio-project-feature { grid-template-columns:1fr;padding:46px 24px;gap:36px; }.studio-project-feature h2 { font-size:36px; }.studio-code-sample { width:100%;max-width:500px; }.domain-footnote { width:auto;padding:25px 24px;font-size:11px; }
 .hall-layout { width:calc(100% - 44px);display:block; }.hall-main { padding:34px 0; }.hall-sidebar { display:block;position:static;height:auto;padding:22px 0 0;border:0; }.hall-sidebar>.hall-sidebar-label,.hall-sidebar>.hall-sidebar-separator,.hall-sidebar>div.hall-side-item,.domain-back { display:none; }.hall-course-filters { display:flex;gap:6px;overflow:auto; }.hall-course-filters .hall-side-item { width:auto;flex-shrink:0;display:flex;gap:8px;white-space:nowrap;padding:0 12px;margin:0; }.hall-welcome { margin-bottom:30px;gap:16px; }.hall-welcome h1 { font-size:36px; }.hall-welcome p { font-size:15px; }.hall-stats { width:auto;margin:0; }.hall-stats div { padding:5px 20px 5px 0;flex:none; }.hall-stats strong { font-size:22px; }.hall-section-title h2 { font-size:22px; }.hall-section-title small { display:none; }
 .course-row { grid-template-columns:25px minmax(0,1fr);gap:10px;padding:24px 0; }.course-actions { grid-column:2;flex-direction:row;justify-content:start;margin-top:5px; }.course-heading-line { flex-wrap:wrap;gap:6px; }.course-heading-line h3 { font-size:18px; }.course-outline>div { grid-template-columns:1fr;padding:12px; }.course-row p { white-space:normal; }
 .project-catalog.studio-project-catalog { width:calc(100% - 44px); }.studio-project-catalog .studio-heading { width:100%; }.studio-project-grid { grid-template-columns:1fr; }.studio-project-item { grid-template-columns:90px 1fr;gap:18px;padding:27px 0; }.studio-project-name { font-size:23px; }.studio-project-item h2 { font-size:18px; }.studio-project-nav { padding:0 22px;gap:14px; }.studio-project-nav nav { gap:14px;font-size:11px; }.studio-endnote { margin-top:24px; }
 .studio-project-nav { flex-direction:row;align-items:center; }
 .access-card { padding:30px 0; }.access-card h1 { font-size:38px; }.access-card>p { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { .domain-preview svg { transition:none; }.domain-card:hover .domain-preview svg { transform:none; } }
