/* Public learning surfaces — V2 AX. Four identities, shared readable hierarchy. */
html[data-ui-theme] #main :is(.gh-primary,.gh-chapter-action,.gh-role-links a) { border:1px solid var(--action);border-radius:999px!important;justify-content:center;text-align:center;gap:0;min-height:48px;padding:12px 30px; }
html[data-ui-theme] #main .gh-role-links a > span { display:none; }
html[data-ui-theme] #main .gh-chapter { min-height:585px; }
html[data-ui-theme="atelier"] #main .gh-chapter { min-height:630px; }
html[data-ui-theme="studio"] #main .gh-chapter { min-height:525px; }
html[data-ui-theme] #main .gh-chapter-action { display:inline-flex;align-items:center;min-width:210px;min-height:56px;margin-top:44px;font-size:21px;text-decoration:none;background:var(--action);color:#fff;border-color:var(--action); }
html[data-ui-theme] #main .gh-chapter-action:hover { background:color-mix(in srgb,var(--action) 88%,#000);border-color:color-mix(in srgb,var(--action) 88%,#000);color:#fff; }
html[data-ui-theme] #main .gh-chapter-action:focus-visible { outline:3px solid var(--action);outline-offset:5px;box-shadow:0 0 0 3px #fff;color:#fff; }
html[data-ui-theme] #main .gh-overview dt { font-size:15px; }
html[data-ui-theme] .site-footer .footer-inner { gap:18px;grid-template-columns:minmax(200px,1.3fr) repeat(4,minmax(0,1fr)); }
html[data-ui-theme] .site-footer .xd-footer-column > nav { column-gap:6px; }
html[data-ui-theme] .site-footer .footer-partners { justify-content:center;flex-wrap:wrap;gap:8px 32px;text-align:center; }
html[data-ui-theme] .site-footer .xd-footer-institutions { justify-content:center;gap:0 32px; }

/* Give catalogue pages a clear pause before the shared footer. */
html[data-ui-theme] body:is([data-page="courses"],[data-page="projects"],[data-page="mentors"]) #main { padding-bottom:112px; }
@media(min-width:761px) {
 /* Existing directory containers already contribute 48px or 64px. */
 html[data-ui-theme] body:is([data-page="events"],[data-page="event-calendar"]) #main { padding-bottom:64px; }
 html[data-ui-theme] body:is([data-page="selection"],[data-page="community"],[data-page="learning-paths"]) #main { padding-bottom:48px; }
}
@media(max-width:760px) {
 html[data-ui-theme] body:is([data-page="courses"],[data-page="projects"],[data-page="mentors"]) #main { padding-bottom:96px; }
}

/* Search always comes first; the original inputs and selects retain their listeners. */
html[data-ui-theme] #main.xd-catalog-page { --xd-paper:#fff;--xd-surface:#f3f6f9;--xd-rule:#dce4ec;--xd-text:#263d51; }
html[data-ui-theme="cobalt"] #main.xd-catalog-page { --xd-surface:#f2f1f8;--xd-text:#34354f;--xd-rule:#dfdeeb; }
html[data-ui-theme="atelier"] #main.xd-catalog-page { --xd-surface:#f4f5f3;--xd-text:#2b3b3c; }
html[data-ui-theme="studio"] #main.xd-catalog-page { --xd-surface:#edf2f6;--xd-text:#2a3d50; }
html[data-ui-theme] #main.xd-catalog-page > .container:not(.xd-directory-banner) { max-width:1280px; }
html[data-ui-theme] #main.xd-catalog-page > .page-intro:not(.xd-directory-banner) { padding-block:36px 22px; }
html[data-ui-theme] #main .xd-top-filters { display:flex;flex-wrap:wrap;align-items:center;width:100%;max-width:none;gap:8px;padding:0 24px 22px;margin-bottom:0; }
html[data-ui-theme] #main .xd-search-top { display:flex;justify-content:center;align-items:center;position:relative;flex:1 0 100%;width:100%;gap:20px;padding:22px 0 24px; }
html[data-ui-theme] #main .xd-search-input { width:min(100%,580px);min-width:0;position:relative; }
html[data-ui-theme] #main .xd-search-input input { display:block;max-width:none;width:100%;height:50px;border:1px solid #bfcbd8;border-radius:999px;padding:12px 22px;background:var(--xd-paper);color:var(--xd-text);font:inherit;font-size:15px;box-shadow:none; }
html[data-ui-theme] #main .xd-search-input input:focus-visible { outline:2px solid var(--action);outline-offset:3px; }
.xd-search-label { position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden; }
html[data-ui-theme] #main .xd-choice-group { display:grid;grid-template-columns:92px minmax(0,1fr);align-items:start;flex:1 0 100%;width:100%;min-width:0;gap:0;margin:0;padding:6px 0;border:0;border-bottom:1px solid var(--xd-rule,#e3e8ed); }
html[data-ui-theme] #main .xd-choice-group legend { float:left;width:92px;min-height:42px;margin:0;padding:10px 0;font-size:13px;line-height:22px;color:var(--xd-text); }
html[data-ui-theme] #main .xd-choice-options { display:flex;flex-wrap:nowrap;gap:2px 6px;min-width:0;grid-column:2;overflow-x:auto;scrollbar-width:thin;padding-bottom:4px; }
html[data-ui-theme] #main .xd-choice-options label { flex:0 0 auto; }
html[data-ui-theme] #main .xd-choice-options span { min-height:42px;padding:8px 14px;border-radius:999px;white-space:nowrap;font-size:13px; }
html[data-ui-theme] #main .v2-course-extra-filters { display:block;margin:0 0 22px;padding:0 24px 22px;border:1px solid var(--xd-rule);border-top:0;border-radius:0 0 12px 12px;background:#fff; }
html[data-ui-theme] body[data-page="courses"] #main .xd-top-filters { border-radius:12px 12px 0 0;border-bottom:0;padding-bottom:8px; }
html[data-ui-theme] #main .v2-course-extra-filters > summary { display:none; }
html[data-ui-theme] #main .v2-course-extra-grid { display:grid;grid-template-columns:1fr;gap:8px;padding:0; }
html[data-ui-theme] #main :is(.v2-filter-reset,.xd-filter-reset,[data-event-clear],#course-layer,.v2-course-extra-filters .v2-course-filter-active) { display:none!important; }
html[data-ui-theme] #main .xd-mentor-apply { position:absolute;right:0;border-radius:999px;padding:10px 22px; }
html[data-ui-theme] #main .xd-project-tabs { display:flex;justify-content:center;gap:6px;margin:4px auto 0;padding:5px;border-radius:999px;background:var(--xd-surface);border:1px solid var(--xd-rule);width:fit-content; }
html[data-ui-theme] #main .xd-project-tabs a { display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px 36px;border-radius:999px;font-weight:550;color:var(--muted); }
html[data-ui-theme] #main .xd-project-tabs a[aria-current] { background:var(--action);color:#fff; }

/* Compact the requested directories without shrinking mobile tap targets. */
html[data-ui-theme] #main.xd-compact-filters .xd-top-filters { gap:4px;padding:12px 20px 4px; }
html[data-ui-theme] #main.xd-compact-filters .xd-search-top { padding:0 0 8px; }
html[data-ui-theme] #main.xd-compact-filters .xd-search-input input { height:44px;min-height:44px;padding:10px 20px;font-size:14px; }
html[data-ui-theme] #main.xd-compact-filters .xd-choice-group { padding:2px 0; }
html[data-ui-theme] #main.xd-compact-filters .xd-choice-group legend { min-height:36px;padding:7px 0; }
html[data-ui-theme] #main.xd-compact-filters .xd-choice-options { gap:4px 8px;padding-bottom:0; }
html[data-ui-theme] #main.xd-compact-filters .xd-choice-options span { min-height:36px;padding:6px 12px; }
html[data-ui-theme] #main.xd-compact-filters .xd-choice-options input:focus-visible + span { outline-offset:-2px; }
html[data-ui-theme] #main.xd-compact-filters .v2-course-extra-filters { margin-bottom:12px;padding:0 20px 12px; }
html[data-ui-theme] #main.xd-compact-filters .v2-course-extra-grid { gap:2px; }
@media(max-width:700px) {
  html[data-ui-theme] #main.xd-compact-filters .xd-top-filters { padding-inline:16px; }
  html[data-ui-theme] #main.xd-compact-filters .xd-choice-group legend { min-height:44px;padding:11px 0; }
  html[data-ui-theme] #main.xd-compact-filters .xd-choice-options span { min-height:44px;padding:8px 10px; }
  html[data-ui-theme] #main.xd-compact-filters .v2-course-extra-filters { padding-inline:16px; }
}

/* Resource cards contain the useful introduction and one direct destination. */
html[data-ui-theme] body[data-page="resources"] #main .resource { display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:24px; }
html[data-ui-theme] body[data-page="resources"] #main .resource h3 { margin:0;font-size:19px;line-height:1.5; }
html[data-ui-theme] body[data-page="resources"] #main .resource p { flex:1;margin:0;max-width:40em;font-size:15px;line-height:1.8; }
html[data-ui-theme] body[data-page="resources"] #main .resource > a { display:inline-flex;align-items:center;min-height:44px;font-size:14px; }

/* The course poster introduces three concrete routes into the catalogue. */
html[data-ui-theme] #main .xd-course-poster { --xd-poster-rgb:244 248 253;position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1.1fr;align-items:center;gap:50px;max-width:1280px;width:calc(100% - 64px);margin:28px auto 0;padding:48px 54px;background:var(--xd-surface);border-radius:18px;border:1px solid var(--xd-rule);overflow:hidden; }
html[data-ui-theme] #main .xd-course-poster::before { content:'';position:absolute;inset:0;z-index:-2;background:url('/assets/course-hero-v2bb.webp') center 55% / cover no-repeat;pointer-events:none; }
html[data-ui-theme] #main .xd-course-poster::after { content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgb(var(--xd-poster-rgb) / .93) 0%,rgb(var(--xd-poster-rgb) / .84) 29%,rgb(var(--xd-poster-rgb) / .12) 51%,rgb(var(--xd-poster-rgb) / .12) 100%);pointer-events:none; }
html[data-ui-theme] #main .xd-course-poster h1 { font-size:clamp(32px,3vw,46px);font-weight:600;line-height:1.35;letter-spacing:-.035em;white-space:normal;margin:0 0 16px;color:var(--xd-text); }
html[data-ui-theme] #main .xd-poster-copy p { font-size:15px;line-height:1.9;margin:0 0 16px;color:var(--muted); }
html[data-ui-theme] #main .xd-map-link { display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid var(--action);color:var(--action);font-size:14px; }
html[data-ui-theme] #main .xd-recommended { display:grid;gap:0;min-width:0;background:#ffffffdb;padding:2px 24px;border-radius:10px; }
html[data-ui-theme] #main .xd-recommended a { display:flex;align-items:center;gap:18px;min-height:88px;padding:18px 0;border-bottom:1px solid var(--xd-rule); }
html[data-ui-theme] #main .xd-recommended a:last-child { border:0; }
html[data-ui-theme] #main .xd-recommend-number { font-size:28px;font-variant-numeric:tabular-nums;color:var(--action);font-weight:300; }
html[data-ui-theme] #main .xd-recommended small { font-size:12px;color:var(--muted);display:block;margin-bottom:4px; }
html[data-ui-theme] #main .xd-recommended strong { font-size:16px;color:var(--xd-text);font-weight:550; }
html[data-ui-theme] #main .xd-recommend-end { margin-left:auto;color:var(--action);font-size:22px;font-weight:300; }
html[data-ui-theme="cobalt"] #main .xd-course-poster { --xd-poster-rgb:244 243 252;background:#eeedf8;border-radius:24px;border:0; }
html[data-ui-theme="cobalt"] #main .xd-recommended { border-radius:18px; }
html[data-ui-theme="atelier"] #main .xd-course-poster { --xd-poster-rgb:255 255 255;border-width:1px 0;border-radius:0;background:#fff;padding-block:50px; }
html[data-ui-theme="atelier"] #main .xd-recommended { background:#ffffffdb;border-radius:0; }
html[data-ui-theme="studio"] #main .xd-course-poster { --xd-poster-rgb:240 245 249;border-radius:4px;border-left:5px solid var(--action);background:#edf2f6; }
html[data-ui-theme="studio"] #main .xd-recommended { border-radius:3px; }

/* Course and project motion stays subtle and has an equivalent keyboard state. */
html[data-ui-theme] #main :is(#project-grid .card,#course-grid .card,.xd-map-nodes a) { transition:transform 200ms ease,box-shadow 200ms ease,border-color 200ms ease; }
html[data-ui-theme] #main #project-grid .card-image { aspect-ratio:16/9;object-fit:cover;width:100%;height:auto; }
@media(hover:hover) {
  html[data-ui-theme] #main :is(#project-grid .card,#course-grid .card):hover { transform:translateY(-5px);box-shadow:0 14px 30px #233c541a;border-color:var(--action); }
  html[data-ui-theme] #main .xd-map-nodes a:hover { transform:translateY(-2px);border-color:var(--action);box-shadow:0 5px 16px #233c5410; }
}
html[data-ui-theme] #main :is(#project-grid .card,#course-grid .card):focus-within { outline:2px solid var(--action);outline-offset:3px; }
html[data-ui-theme] #main #mentor-grid .card { position:relative; }
html[data-ui-theme] #main #mentor-grid .xd-card-link::after { content:'';position:absolute;inset:0;z-index:1; }
html[data-ui-theme] #main #mentor-grid .card:focus-within { outline:2px solid var(--action);outline-offset:3px; }
html[data-ui-theme] #main .v2-event-agenda-card .v2-event-thumb { align-self:stretch;height:auto;min-height:100%; }
html[data-ui-theme] #main .v2-event-agenda-card .v2-event-thumb .event-image { width:100%;height:100%;min-height:100%;object-fit:cover; }
html[data-ui-theme] #main .xd-mentor-credentials { margin-top:24px;border-top:1px solid var(--line);padding-top:20px; }
html[data-ui-theme] #main .xd-mentor-credentials h2 { font-size:16px;margin:0 0 14px; }
.xd-mentor-credentials dl { margin:0;display:grid;gap:10px; }
.xd-mentor-credentials dl div { display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px;font-size:13px;line-height:1.8; }
.xd-mentor-credentials dt { color:var(--muted); }.xd-mentor-credentials dd { margin:0; }

/* A spatial learning atlas, with genuine course links at every terminal node. */
html[data-ui-theme] #main.xd-map-page > .v2-expanded-page { display:block;max-width:1320px;padding-block:40px 64px; }
html[data-ui-theme] #main.xd-map-page > .v2-expanded-page > h1 { font-size:36px;margin:0 0 12px; }
html[data-ui-theme] #main.xd-map-page > .v2-expanded-page > .detail-lead { margin-bottom:8px; }
.xd-domain-guide > p { font-size:14px;color:var(--muted); }.xd-domain-guide nav { display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 30px; }
.xd-domain-guide a { display:inline-flex;align-items:center;min-height:44px;padding:8px 20px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:14px; }
.xd-domain-atlas { display:grid;gap:32px; }.xd-domain { border:1px solid #d6e0e9;background:#f4f7fa;border-radius:18px;overflow:hidden;scroll-margin-top:130px; }
.xd-domain-hub { display:flex;align-items:center;gap:26px;padding:30px 36px;background:#e8eff5;border-bottom:1px solid #d4e0ea; }
.xd-map-number { color:var(--action);font-size:46px;line-height:1;font-weight:300;letter-spacing:-.06em;font-variant-numeric:tabular-nums; }
html[data-ui-theme] #main .xd-domain-hub h2 { font-size:25px;line-height:1.5;margin:0 0 6px; }
.xd-domain-hub p { margin:0;font-size:14px;color:var(--muted);line-height:1.8; }.xd-domain-hub > a { margin-left:auto;white-space:nowrap;min-height:44px;display:flex;align-items:center;font-size:13px;color:var(--action); }
.xd-map-branches { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;padding:36px 28px 28px;position:relative; }
.xd-map-branches::before { content:'';position:absolute;top:19px;left:10%;right:10%;height:1px;background:#becfdf; }
.xd-map-branch { position:relative;min-width:0; }.xd-map-branch::before { content:'';position:absolute;left:50%;top:-17px;height:17px;width:1px;background:#becfdf; }
.xd-map-branch > header { text-align:center;min-height:92px;padding:12px 5px 18px; }
html[data-ui-theme] #main .xd-map-branch h3 { font-size:16px;margin:0 0 6px;line-height:1.6; }.xd-map-branch header p { font-size:12px;color:var(--muted);margin:0;line-height:1.8; }
.xd-map-nodes { display:grid;gap:10px; }.xd-map-nodes a { display:flex;flex-direction:column;justify-content:center;gap:7px;min-height:106px;line-height:1.7;padding:17px 15px;background:#fff;border:1px solid #dae3ec;border-radius:8px;font-size:14px; }
.xd-map-nodes small { color:var(--muted);font-size:11px; }.xd-domain:not(:first-child) .xd-map-branches { grid-template-columns:repeat(4,minmax(0,1fr)); }.xd-domain:nth-child(n+3) .xd-map-branches { grid-template-columns:repeat(2,minmax(0,1fr)); }
html[data-ui-theme="cobalt"] #main .xd-domain { border-color:#dfddec;background:#f4f3fa;border-radius:22px; }html[data-ui-theme="cobalt"] #main .xd-domain-hub { background:#e9e7f4; }
html[data-ui-theme="atelier"] #main .xd-domain { border-radius:0;background:#fafbf9; }html[data-ui-theme="atelier"] #main .xd-domain-hub { background:#f0f3ef; }html[data-ui-theme="atelier"] #main .xd-map-nodes a { border-radius:0; }
html[data-ui-theme="studio"] #main .xd-domain { border-radius:4px;background:#eef2f6; }html[data-ui-theme="studio"] #main .xd-domain-hub { background:#e2eaf1; }

/* Player gets the larger column; the heading and back navigation stay above it. */
html[data-ui-theme] #main .xd-video-page { max-width:1440px;padding-block:32px 60px; }
html[data-ui-theme] #main .xd-video-heading { display:block;margin-bottom:26px; }
html[data-ui-theme] #main .xd-video-heading h1 { font-size:30px;line-height:1.5;margin:0 0 8px; }
.xd-video-heading p { font-size:14px;color:var(--muted);margin:8px 0 0; }.xd-breadcrumb { display:flex;align-items:center;gap:12px;font-size:13px;color:var(--muted); }.xd-breadcrumb a { color:var(--action);min-height:36px;display:flex;align-items:center; }.xd-price-inline { margin-left:16px;color:var(--ink); }
html[data-ui-theme] #main .xd-video-page .v2-video-course-layout { display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start; }
html[data-ui-theme] #main .xd-video-page .v2-video-player-column { min-width:0; }
html[data-ui-theme] #main .xd-video-page .v2-video-player-frame { background:#101b27;border-radius:12px;overflow:hidden; }
html[data-ui-theme] #main .xd-video-page video { display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#101b27; }
html[data-ui-theme] #main .xd-video-page .v2-video-lesson-panel { width:100%;max-height:760px;overflow:auto;padding:22px;border:1px solid var(--line);border-radius:12px;background:#fff; }
html[data-ui-theme] #main .xd-video-page .v2-video-lesson-panel h2 { font-size:18px;margin:0 0 7px; }
html[data-ui-theme] #main .xd-video-page .v2-video-lesson-panel > p { font-size:12px;color:var(--muted); }
html[data-ui-theme] #main .xd-video-page .v2-video-lesson-panel a { display:grid;grid-template-columns:24px minmax(0,1fr);gap:6px 10px;padding:13px 10px;line-height:1.7;font-size:13px; }
html[data-ui-theme] #main .xd-video-page .v2-video-lesson-state { grid-column:2;font-size:11px; }
html[data-ui-theme] #main .xd-video-page .v2-video-title-row h2 { font-size:20px; }

/* Posts: author first, then the contribution, topic and usable interaction controls. */
html[data-ui-theme] #main .feed-post { padding:26px 30px;background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:16px; }
.xd-post-author { display:flex;align-items:center;gap:12px;margin-bottom:16px; }.xd-author-avatar { display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:#e8eef5;border-radius:50%;color:#45617c;font-size:18px;flex:none; }
.xd-post-author strong { font-size:14px;font-weight:550;display:block; }.xd-post-author time { display:block;font-size:12px;color:var(--muted);margin-top:3px; }
html[data-ui-theme] #main .feed-post h3 { font-size:20px;line-height:1.6;white-space:normal;margin:8px 0 10px; }
html[data-ui-theme] #main .feed-post > p:not(.xd-post-liked,.xd-post-feedback) { font-size:14px;line-height:1.95;color:var(--muted);margin:0 0 14px; }
.xd-post-tags .status { font-size:12px;border:0;background:#eef3f8;color:#4b6581;border-radius:4px; }
html[data-ui-theme] #main .feed-post .post-tools { display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px 24px;border-top:1px solid var(--line);padding-top:8px;margin-top:12px; }
html[data-ui-theme] #main .xd-post-action { display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:48px;min-height:44px;padding:5px 2px;margin:0;border:0;background:none;font:inherit;font-size:13px;color:var(--muted);cursor:pointer; }
html[data-ui-theme] #main .xd-post-action[aria-pressed="true"] { color:var(--action);font-weight:600; }.xd-post-action[aria-pressed="true"] svg { fill:color-mix(in srgb,var(--action) 14%,transparent); }
html[data-ui-theme] #main .xd-post-liked { margin:10px 0 0;color:var(--muted);font-size:12px; }.xd-post-feedback { color:var(--action);font-size:12px;margin:0;line-height:1.8; }.xd-post-feedback:not(:empty) { padding-top:6px; }.xd-share-url { width:100%; }
html[data-ui-theme] body[data-page="post-detail"] #main .ux-post-reading { box-sizing:border-box;max-width:900px;width:calc(100% - 48px);margin:26px auto 48px;padding:36px 42px!important;background:#fff;border:1px solid var(--line);border-radius:12px; }

/* Single poster, with the account form over its right side. */
html[data-ui-theme] #main .xd-login-scene { position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:48px;width:calc(100% - 64px);max-width:1320px;min-height:660px;margin:32px auto 48px;padding:56px 64px;overflow:hidden;border-radius:20px;background:#e9eff5; }
.xd-login-scene::before { content:'';position:absolute;inset:0;z-index:-2;background:url('/assets/community-learning-hero.png') center/cover;opacity:.48; }
.xd-login-scene::after { content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#ecf2f7ed,#ecf2f74d 62%,#ecf2f7b0); }
.xd-login-message { max-width:420px; }.xd-login-message h1 { font-size:42px;line-height:1.4;letter-spacing:-.04em; }.xd-login-message p { font-size:16px;line-height:1.9;color:#4e6377; }
html[data-ui-theme] #main .xd-login-form { width:380px;max-width:100%;flex:none;padding:32px;border-radius:16px;background:#fffffff5;border:1px solid #fff;box-shadow:0 16px 50px #1a344a15; }
html[data-ui-theme] #main .xd-login-form h2 { font-size:24px;margin:0 0 24px; }.xd-login-form .field { margin-bottom:18px; }.xd-login-form label { display:block;font-size:13px;margin-bottom:8px; }.xd-login-form input { width:100%;height:46px;min-width:0;padding:10px 13px;border:1px solid #cbd5e1;border-radius:6px;font-size:14px; }.xd-login-form .btn { width:100%;min-height:48px;border-radius:999px;margin-top:3px; }.xd-login-form .support-caption { font-size:12px;line-height:1.8;color:var(--muted);margin:14px 0; }.xd-login-form details { font-size:12px;color:var(--muted);margin:18px 0 0; }.xd-login-form summary { cursor:pointer;min-height:36px; }.xd-demo-accounts { display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:10px; }.xd-login-form .v2-auth-links { font-size:12px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:20px; }
@media(max-width:1100px) {
  html[data-ui-theme] #main .xd-map-branches { grid-template-columns:repeat(3,minmax(0,1fr)); }
  html[data-ui-theme] #main .xd-login-scene { padding:40px;gap:26px; }.xd-login-message h1 { font-size:34px; }
  html[data-ui-theme] #main .xd-mentor-apply { position:static;flex:none; }.xd-search-top:has(.xd-mentor-apply) .xd-search-input { max-width:580px; }
}
@media(max-width:800px) {
  html[data-ui-theme] #main .xd-video-page .v2-video-course-layout { grid-template-columns:minmax(0,1fr); }
  html[data-ui-theme] #main .xd-video-page .v2-video-lesson-panel { max-height:520px; }
  html[data-ui-theme] #main .xd-course-poster { grid-template-columns:1fr;padding:32px;gap:26px; }
  html[data-ui-theme] #main .xd-course-poster h1 br { display:none; }
  html[data-ui-theme] #main .xd-login-scene { flex-direction:column;align-items:stretch;padding:32px;gap:20px;min-height:0; }
  .xd-login-message { max-width:none; }.xd-login-message h1 { font-size:30px;margin:0 0 12px; }.xd-login-message p { font-size:14px;margin:0 0 12px; }
  html[data-ui-theme] #main .xd-login-form { width:100%; }
  html[data-ui-theme] .site-footer .footer-inner { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:640px) {
  html[data-ui-theme] #main .gh-chapter { min-height:555px; }
  html[data-ui-theme] #main .gh-overview dt { font-size:14px; }
  html[data-ui-theme] #main .xd-choice-group { grid-template-columns:68px minmax(0,1fr); }
  html[data-ui-theme] #main .xd-choice-group legend { width:68px;font-size:12px; }
  html[data-ui-theme] #main .xd-choice-options { flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin; }
  html[data-ui-theme] #main .xd-choice-options span { font-size:12px;padding-inline:12px; }
  html[data-ui-theme] #main .xd-top-filters { padding-inline:16px; }
  html[data-ui-theme] #main .v2-course-extra-filters { padding-inline:16px; }
  html[data-ui-theme] #main .xd-search-top { flex-wrap:wrap;gap:12px;padding:18px 0; }
  html[data-ui-theme] #main .xd-search-top:has(.xd-mentor-apply) { justify-content:space-between; }
  html[data-ui-theme] #main .xd-course-poster { width:calc(100% - 32px);padding:26px 22px;margin-top:18px;border-radius:10px; }
  html[data-ui-theme] #main .xd-course-poster::before { background-position:53% center; }
  html[data-ui-theme] #main .xd-course-poster::after { background:linear-gradient(180deg,rgb(var(--xd-poster-rgb) / .93) 0%,rgb(var(--xd-poster-rgb) / .84) 32%,rgb(var(--xd-poster-rgb) / .34) 62%,rgb(var(--xd-poster-rgb) / .48) 100%); }
  html[data-ui-theme] #main .xd-course-poster h1 { font-size:31px; }.xd-poster-copy p br { display:none; }
  html[data-ui-theme] #main .xd-recommended { padding-inline:16px; }html[data-ui-theme] #main .xd-recommended a { min-height:80px;gap:12px; }
  html[data-ui-theme] #main .xd-recommended strong { font-size:14px; }
  html[data-ui-theme] #main.xd-map-page > .v2-expanded-page { padding-block:26px 40px; }
  .xd-domain-guide nav { flex-wrap:nowrap;overflow:auto;margin-bottom:22px;padding-bottom:6px; }.xd-domain-guide a { white-space:nowrap;padding-inline:16px; }
  html[data-ui-theme] #main .xd-domain { border-radius:10px; }.xd-domain-hub { padding:23px 20px;gap:16px;flex-wrap:wrap; }.xd-map-number { font-size:36px; }.xd-domain-hub > div { flex:1; }.xd-domain-hub > a { display:none; }
  html[data-ui-theme] #main .xd-domain-hub h2 { font-size:20px; }.xd-domain-hub p { font-size:12px; }
  html[data-ui-theme] #main .xd-map-branches { display:grid;grid-template-columns:1fr!important;gap:22px;padding:24px 20px; }.xd-map-branches::before,.xd-map-branch::before { display:none; }
  .xd-map-branch > header { text-align:left;min-height:0;padding:0 0 14px 12px;border-left:2px solid var(--action); }
  .xd-map-nodes { grid-template-columns:repeat(2,minmax(0,1fr)); }.xd-map-nodes a { font-size:13px;padding:14px 12px;min-height:110px; }
  html[data-ui-theme] #main .feed-post { padding:22px 20px; }html[data-ui-theme] #main .feed-post h3 { font-size:18px; }
  html[data-ui-theme] #main .feed-post .post-tools { gap:3px 16px; }.xd-post-action { font-size:12px; }
  html[data-ui-theme] body[data-page="post-detail"] #main .ux-post-reading { width:calc(100% - 28px);padding:24px 20px!important;margin-top:16px; }
  html[data-ui-theme] #main .xd-video-heading h1 { font-size:24px; }html[data-ui-theme] #main .xd-video-page .v2-video-player-frame { border-radius:6px; }
  html[data-ui-theme] #main .xd-login-scene { width:calc(100% - 28px);padding:24px 18px;margin:20px auto 30px;border-radius:12px; }
  html[data-ui-theme] #main .xd-login-form { padding:26px 22px; }
  html[data-ui-theme] .site-footer .footer-inner { display:block; }.site-footer .xd-footer-intro { margin-bottom:18px; }
  html[data-ui-theme] .site-footer .xd-footer-institutions { display:flex;flex-wrap:wrap;gap:0 24px; }
}
@media(prefers-reduced-motion:reduce) {
  html[data-ui-theme] #main :is(#project-grid .card,#course-grid .card,.xd-map-nodes a) { transition:none;transform:none!important; }
}
/* Preserve the complete generated cover, including type, across all four layouts. */
html[data-ui-theme] #main :is(.card-image,.detail-visual)[src*="/learning-posters-v2ay/"],
html[data-ui-theme] #main :is(#course-grid,#project-grid) .card-image[src*="/learning-posters-v2ay/"] {
  display:block;width:100%;height:auto!important;aspect-ratio:16/9!important;
  object-fit:contain!important;object-position:center;
}

/* Catalogue banners meet the header and both edges of the content area. */
html[data-ui-theme] #main.xd-banner-page { padding-top:0; }
html[data-ui-theme] #main .xd-directory-banner {
  --xd-poster-rgb:244 248 253;position:relative;isolation:isolate;box-sizing:border-box;
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:14px;
  width:100%;max-width:none;min-height:320px;margin:0;
  padding:52px max(32px,calc((100% - 1160px)/2)) 64px;
  border:0;border-radius:0;background:#edf3f8;overflow:hidden;text-align:left;
}
html[data-ui-theme] #main .xd-directory-banner::before {
  content:'';position:absolute;inset:0;z-index:-2;
  background:var(--xd-banner-image) center 55% / cover no-repeat;pointer-events:none;
}
html[data-ui-theme] #main .xd-directory-banner::after {
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,rgb(var(--xd-poster-rgb) / .96),rgb(var(--xd-poster-rgb) / .85) 32%,rgb(var(--xd-poster-rgb) / .16) 72%);
}
html[data-ui-theme] #main .xd-courses-banner { --xd-banner-image:url('/assets/course-hero-v2bb.webp'); }
html[data-ui-theme] #main .xd-projects-banner { --xd-banner-image:url('/assets/directory-banners-v2bf/projects-hero.webp'); }
html[data-ui-theme] #main .xd-community-banner { --xd-banner-image:url('/assets/directory-banners-v2bf/community-hero.webp'); }
html[data-ui-theme] #main .xd-events-banner { --xd-banner-image:url('/assets/directory-banners-v2bf/events-hero.webp'); }
html[data-ui-theme] #main .xd-mentors-banner { --xd-banner-image:url('/assets/directory-banners-v2bf/mentors-hero.webp'); }
html[data-ui-theme=cobalt] #main .xd-directory-banner { --xd-poster-rgb:244 243 252; }
html[data-ui-theme=atelier] #main .xd-directory-banner { --xd-poster-rgb:252 253 250; }
html[data-ui-theme=studio] #main .xd-directory-banner { --xd-poster-rgb:240 245 249; }
html[data-ui-theme] #main .xd-directory-banner h1 {
  max-width:none;margin:0;font-size:clamp(30px,3.3vw,44px);line-height:1.4;letter-spacing:-.035em;color:var(--xd-text,var(--ink));
}
html[data-ui-theme] #main .xd-directory-banner > p {
  max-width:38em;margin:0;font-size:15px;line-height:1.9;color:var(--muted);
}
html[data-ui-theme] #main .xd-directory-banner.xd-course-poster {
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:48px;align-items:center;min-height:408px;
}
html[data-ui-theme] #main .xd-course-poster .xd-poster-copy h1 { margin:0 0 16px; }
html[data-ui-theme] #main .xd-course-poster .xd-map-link {
  display:inline-flex;align-items:center;justify-content:center;min-height:46px;
  padding:10px 24px;border:0;border-radius:999px;background:var(--action);color:#fff;text-decoration:none;
  font-size:14px;line-height:1.7;font-weight:550;
}
html[data-ui-theme] #main .xd-course-poster .xd-map-link:hover { background:color-mix(in srgb,var(--action) 88%,#000);color:#fff; }
html[data-ui-theme] #main .xd-course-poster .xd-map-link:focus-visible { outline:2px solid var(--action);outline-offset:4px; }
html[data-ui-theme] #main .xd-course-poster .xd-recommended {
  min-width:0;background:rgb(255 255 255 / .56);border:1px solid rgb(255 255 255 / .8);
  backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  html[data-ui-theme] #main .xd-course-poster .xd-recommended { background:#fffffff0; }
}
html[data-ui-theme] #main.xd-banner-page > .cp-page-shell {
  display:block;max-width:1280px;width:calc(100% - 56px);margin-inline:auto;padding-top:28px;
}
/* Filter rows use space rather than rules; visual pills remain easy to tap. */
html[data-ui-theme] #main.xd-banner-page .xd-top-filters { border:0; }
html[data-ui-theme] #main.xd-banner-page .xd-choice-group { border:0;padding:0; }
html[data-ui-theme] #main.xd-banner-page .xd-choice-group legend { min-height:36px;padding:7px 0; }
html[data-ui-theme] #main.xd-banner-page .xd-choice-options { padding-bottom:0;gap:2px 8px; }
html[data-ui-theme] #main.xd-banner-page .xd-choice-options label { min-height:36px;align-items:center; }
html[data-ui-theme] #main.xd-banner-page .xd-choice-options span { min-height:30px;padding:3px 12px;line-height:22px; }
html[data-ui-theme] #main.xd-banner-page .v2-course-extra-filters { border:0; }
html[data-ui-theme] #main.xd-banner-page .v2-course-extra-grid { gap:0; }
html[data-ui-theme] #main.xd-banner-page .xd-search-top { padding:0 0 8px; }
html[data-ui-theme] #main.xd-banner-page .xd-top-filters { padding-top:16px;padding-bottom:6px; }
@media(max-width:800px) {
  html[data-ui-theme] #main .xd-directory-banner.xd-course-poster { grid-template-columns:1fr;gap:28px; }
}
@media(max-width:700px) {
  html[data-ui-theme] #main.xd-banner-page > .cp-page-shell { width:calc(100% - 32px); }
  html[data-ui-theme] #main .xd-directory-banner { min-height:280px;padding:34px 20px 48px; }
  html[data-ui-theme] #main .xd-directory-banner::before { background-position:62% center; }
  html[data-ui-theme] #main .xd-directory-banner::after { background:linear-gradient(90deg,rgb(var(--xd-poster-rgb) / .95),rgb(var(--xd-poster-rgb) / .67) 60%,rgb(var(--xd-poster-rgb) / .3)); }
  html[data-ui-theme] #main .xd-directory-banner h1 { font-size:30px; }
  html[data-ui-theme] #main .xd-directory-banner > p { max-width:27em;font-size:14px; }
  html[data-ui-theme] #main .xd-directory-banner.xd-course-poster { min-height:0;padding:34px 20px 48px;gap:24px; }
  html[data-ui-theme] #main .xd-course-poster::after { background:linear-gradient(180deg,rgb(var(--xd-poster-rgb) / .94),rgb(var(--xd-poster-rgb) / .83) 38%,rgb(var(--xd-poster-rgb) / .3)); }
  html[data-ui-theme] #main .xd-course-poster .xd-recommended { padding-inline:16px; }
  html[data-ui-theme] #main.xd-banner-page .xd-choice-group legend { min-height:44px;padding:11px 0; }
  html[data-ui-theme] #main.xd-banner-page .xd-choice-options label { min-height:44px; }
  html[data-ui-theme] #main.xd-banner-page .xd-choice-options span { min-height:30px;padding-block:3px; }
}

/* One surface owns the search and all filter rows. */
html[data-ui-theme] #main.xd-banner-page > .xd-floating-content {
  position:relative;z-index:1;margin-top:calc(-1 * var(--xd-filter-overlap,0px));
}
html[data-ui-theme] #main.xd-banner-page .xd-filter-panel {
  display:grid;grid-template-columns:minmax(0,1fr);gap:6px;
  padding:20px;margin:0 0 18px;border:0;border-radius:14px;background:#fff;
  box-shadow:0 12px 36px rgb(28 50 76 / .08),0 2px 8px rgb(28 50 76 / .025);
}
html[data-ui-theme] #main.xd-banner-page .xd-filter-panel .xd-top-filters {
  display:grid;grid-template-columns:minmax(0,1fr);gap:6px;
  width:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;
}
html[data-ui-theme] #main.xd-banner-page .xd-filter-panel .xd-search-top { padding:0;margin:0 0 10px; }
html[data-ui-theme] #main.xd-banner-page .xd-filter-panel .v2-course-extra-filters {
  margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;
}
html[data-ui-theme] #main.xd-banner-page .xd-filter-panel .v2-course-extra-grid { gap:6px; }
html[data-ui-theme] #main.xd-banner-page .xd-filter-panel .xd-choice-group { min-height:44px;padding:0;align-items:center; }
html[data-ui-theme] #main.xd-banner-page .xd-filter-panel .xd-choice-group legend { min-height:44px;padding:11px 0; }
html[data-ui-theme] #main.xd-banner-page .xd-filter-panel .xd-choice-options { flex-wrap:nowrap;overflow-x:auto;padding-bottom:0; }
html[data-ui-theme] #main.xd-banner-page .xd-filter-panel .xd-choice-options label { min-height:44px; }
html[data-ui-theme] #main.xd-banner-page .xd-filter-panel:has(.xd-project-tabs) { gap:18px; }
html[data-ui-theme] #main.xd-banner-page .xd-filter-panel .xd-project-tabs { margin:0 auto; }
/* Reserve space behind floating filters while keeping the banner copy clear. */
html[data-ui-theme] #main.xd-banner-page .xd-courses-banner { --xd-filter-reserve:max(0px,calc(var(--xd-filter-overlap,0px) - 24px)); }
html[data-ui-theme] #main.xd-banner-page :is(.xd-mentors-banner,.xd-projects-banner) { --xd-filter-reserve:max(0px,calc(var(--xd-filter-overlap,0px) - 48px)); }
html[data-ui-theme] #main.xd-banner-page .xd-directory-banner { padding-bottom:calc(64px + var(--xd-filter-reserve,0px)); }
/* The activity switcher has its own breathing room below the banner. */
html[data-ui-theme] #main.xd-banner-page > .v2-event-discovery { margin-top:28px; }
html[data-ui-theme] #main.xd-banner-page .v2-event-viewbar { margin:0 0 18px; }
@media(max-width:700px) {
  html[data-ui-theme] #main.xd-banner-page .xd-filter-panel { padding:16px;border-radius:12px; }
  html[data-ui-theme] #main.xd-banner-page .xd-filter-panel .xd-project-tabs a { padding-inline:24px;white-space:nowrap; }
  html[data-ui-theme] #main.xd-banner-page .xd-directory-banner { padding-bottom:calc(48px + var(--xd-filter-reserve,0px)); }
  html[data-ui-theme] #main.xd-banner-page > .v2-event-discovery { margin-top:24px; }
}
