.academy-announcement { background: var(--body-bg-alt); border-bottom: 1px solid var(--border-color); font-size: .75rem; padding: .6rem 0; text-align: center; color: var(--text-secondary); }
.academy-announcement a { color: var(--primary); margin-left: 1rem; text-decoration: none; }
.navbar-brand { max-width: 245px; font-size: .98rem; }
.brand-monogram { font-family: ui-monospace, monospace; font-size: .95rem; letter-spacing: -.12em; width: 38px; }
.academy-hero { padding: 5rem 0 4.5rem; }
.academy-hero h1 { font-size: clamp(2.6rem, 4.6vw, 4.2rem); font-weight: 750; line-height: 1.08; letter-spacing: -.055em; max-width: 770px; }
.academy-hero h1 span { color: var(--primary); }
.academy-hero-copy { font-size: 1.1rem; line-height: 1.8; color: var(--text-secondary); max-width: 580px; margin-top: 1.6rem; }
.academy-hero-tags { display: flex; flex-wrap: wrap; gap: 1.3rem; font-size: .76rem; color: var(--text-muted); margin-top: 2rem; }
.academy-hero-tags i { color: var(--primary); margin-right: .3rem; }
.academy-workbench { border: 1px solid var(--border-color); background: var(--card-bg); border-radius: 18px; overflow: hidden; }
.academy-workbench-top { display: flex; align-items: center; gap: .6rem; padding: 1rem 1.25rem; font-size: .58rem; letter-spacing: .12em; color: var(--text-muted); border-bottom: 1px solid var(--border-color); }
.academy-workbench-top > span:last-child { margin-left: auto; }
.academy-status-dot { width: 6px; height: 6px; background: var(--primary); border-radius: 50%; }
.academy-device { display: flex; align-items: stretch; justify-content: center; padding: 3.5rem 1rem; background-image: radial-gradient(var(--border-color) 1px, transparent 1px); background-size: 18px 18px; }
.academy-device-board { background: #254b41; color: #c9dbcb; border: 2px solid #567664; width: 190px; padding: 1.5rem 1rem; border-radius: 9px; text-align: center; box-shadow: 9px 10px 0 rgb(0 0 0 / 8%); }
.academy-camera-lens { width: 67px; height: 67px; margin: 0 auto 1rem; border-radius: 50%; border: 8px solid #383c40; background: radial-gradient(circle, #7fabb6 0%, #26474e 20%, #0e161b 34%, #1f282d 50%, #11171b 70%); box-shadow: 0 0 0 6px #b3b4a9; }
.academy-device-board > span { font-size: .62rem; letter-spacing: .18em; }
.academy-chip { border: 1px solid #7b9581; background: #d9dbca; color: #254b41; margin-top: 1.1rem; padding: .7rem; font: 700 .65rem/1.5 ui-monospace, monospace; letter-spacing: .2em; }
.academy-pins { width: 14px; margin: 12px 0; background: repeating-linear-gradient(to bottom, #b7a470 0 8px, transparent 8px 18px); }
.academy-workbench-bottom { padding: 1.2rem 1.4rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; font-size: .83rem; color: var(--text-secondary); border-top: 1px solid var(--border-color); }
.academy-workbench-bottom a { border: 1px solid var(--border-color); width: 40px; height: 40px; display: grid; place-items: center; color: var(--text-primary); border-radius: 50%; }
.academy-principles { border-block: 1px solid var(--border-color); padding: 1.1rem 0; font-size: .78rem; color: var(--text-secondary); }
.academy-principles i { color: var(--primary); margin-right: .5rem; }
.academy-section { padding-top: 4.5rem; padding-bottom: 4.5rem; }
.academy-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 1.5rem; margin-bottom: 2rem; }
.academy-section-heading h2 { margin: 0; font-weight: 700; }
.academy-section-heading .editorial-eyebrow { margin-bottom: .85rem; }
.academy-text-link { color: var(--primary); text-decoration: none; font-weight: 600; font-size: .84rem; }
.academy-text-link:hover { text-decoration: underline; }
.academy-path-card { display: flex; flex-direction: column; height: 100%; padding: 1.7rem; border: 1px solid var(--border-color); background: var(--card-bg); border-radius: 14px; color: var(--text-primary); text-decoration: none; transition: border-color .2s; }
.academy-path-card:hover { color: var(--text-primary); border-color: var(--primary); }
.academy-card-top { display: flex; justify-content: space-between; gap: .5rem; align-items: center; margin-bottom: 1.7rem; }
.academy-icon { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; color: var(--primary); background: var(--accent-soft); font-size: 1.3rem; }
.academy-path-card h3 { font-size: 1.35rem; font-weight: 700; }
.academy-path-card p { font-size: .88rem; }
.academy-outcome { margin-bottom: 1.5rem; }
.academy-card-bottom { margin-top: auto; padding-top: 1.1rem; border-top: 1px solid var(--border-color); font-size: .72rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: .7rem; color: var(--text-muted); }
.academy-card-bottom > span:last-child { color: var(--primary); font-weight: 600; }
.academy-project-card { height: 100%; border: 1px solid var(--border-color); border-radius: 14px; background: var(--card-bg); overflow: hidden; }
.academy-project-card h3 { font-size: 1.3rem; font-weight: 700; }
.academy-project-card p { font-size: .87rem; }
.academy-project-visual { min-height: 170px; background: var(--body-bg-alt); color: var(--text-primary); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem; border-bottom: 1px solid var(--border-color); }
.academy-project-visual i { font-size: 3.2rem; color: var(--primary); }
.academy-project-visual span { font: .6rem ui-monospace, monospace; letter-spacing: .13em; color: var(--text-muted); }
.academy-process { display: flex; gap: 1.5rem; padding: 1.25rem 0; border-bottom: 1px solid var(--border-color); }
.academy-process > span { font: .9rem ui-monospace, monospace; color: var(--primary); padding-top: .2rem; }
.academy-process h3 { font-size: 1.18rem; font-weight: 700; }
.academy-process p { color: var(--text-secondary); font-size: .9rem; margin: .5rem 0 0; }
.academy-mentor-panel { padding: 3rem; background: var(--body-bg-alt); border: 1px solid var(--border-color); border-radius: 16px; display: grid; grid-template-columns: 2fr 1fr; gap: 3rem; align-items: center; }
.academy-mentor-panel p { color: var(--text-secondary); max-width: 660px; }
.academy-mentor-note { border-left: 1px solid var(--border-color); padding-left: 2rem; }
.academy-mentor-note i { font-size: 2rem; color: var(--primary); }
.academy-mentor-note p { font-size: 1.3rem; margin-top: 1rem; }
.academy-note { padding: 1.5rem; border: 1px solid var(--border-color); border-radius: 12px; background: var(--card-bg); height: 100%; }
.academy-note h3 { font-size: 1.2rem; }
.academy-note h3 a { color: var(--text-primary); text-decoration: none; }
.academy-note h3 a:hover { color: var(--primary); }
.academy-note p { font-size: .9rem; }
.academy-faq { border-bottom: 1px solid var(--border-color); padding: 1.2rem 0; }
.academy-faq summary { font-weight: 600; cursor: pointer; }
.academy-faq p { color: var(--text-secondary); margin: 1rem 0 0; }
.academy-final-cta { background: var(--accent-soft); border-top: 1px solid var(--border-color); }
.academy-page-heading { max-width: 850px; margin-bottom: 2.5rem; }
.academy-page-heading h1 { font-size: clamp(2.1rem, 4vw, 3.3rem); font-weight: 750; }
.academy-recommendation, .academy-side-panel { background: var(--body-bg-alt); border: 1px solid var(--border-color); border-radius: 14px; padding: 2rem; }
.academy-recommendation h2 { font-size: 1.8rem; }
.academy-help-panel { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; border: 1px solid var(--border-color); background: var(--body-bg-alt); padding: 1.7rem; border-radius: 12px; }
.academy-help-panel h3 { font-size: 1.2rem; }
.academy-help-panel p { font-size: .9rem; }
.academy-step { display: flex; gap: 1.5rem; padding: 1.5rem 0; border-bottom: 1px solid var(--border-color); }
.academy-step:first-of-type { padding-top: 0; }
.academy-step-number { flex-shrink: 0; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--accent-soft); color: var(--primary); font: .8rem ui-monospace, monospace; }
.academy-step h3 { font-size: 1.3rem; font-weight: 700; }
.academy-checkpoint { font-size: .84rem; color: var(--text-secondary); }
.academy-checkpoint i { color: var(--primary); margin-right: .4rem; }
.academy-requirements { padding-left: 1.2rem; color: var(--text-secondary); font-size: .9rem; }
.academy-requirements li { margin-bottom: .7rem; }
.academy-resource-link { display: block; color: var(--primary); font-size: .85rem; padding: .7rem 0; border-bottom: 1px solid var(--border-color); text-decoration: none; }
.academy-resource-card { display: block; height: 100%; padding: 2rem; background: var(--card-bg); color: var(--text-primary); border: 1px solid var(--border-color); border-radius: 14px; text-decoration: none; }
.academy-resource-card:hover { color: var(--text-primary); border-color: var(--primary); }
.academy-resource-card > i { display: inline-block; font-size: 1.8rem; margin-bottom: 1.2rem; color: var(--primary); }
.academy-resource-card p { color: var(--text-secondary); }
@media (max-width: 991.98px) { .academy-hero { padding: 3rem 0; } .academy-workbench { max-width: 520px; } .academy-section { padding-top: 3rem; padding-bottom: 3rem; } }
@media (max-width: 575.98px) { .academy-hero h1 { font-size: 2.65rem; } .academy-hero-copy { font-size: 1rem; } .academy-hero-tags { gap: .8rem; } .academy-section-heading { display: block; } .academy-section-heading > a { display: inline-block; margin-top: 1rem; } .academy-mentor-panel { grid-template-columns: 1fr; padding: 1.5rem; gap: 1.5rem; } .academy-mentor-note { border-left: 0; border-top: 1px solid var(--border-color); padding: 1.5rem 0 0; } .academy-help-panel { align-items: start; flex-direction: column; } .academy-side-panel, .academy-recommendation { padding: 1.5rem; } .academy-step { gap: 1rem; } .academy-announcement a { margin-left: .4rem; } .academy-principles .container { justify-content: start !important; } }
@media print { .academy-announcement, .academy-help-panel, footer, .navbar { display: none; } .academy-section { padding: 0; } .academy-side-panel { background: transparent; } .academy-step { break-inside: avoid; } }

@media (min-width: 992px) and (max-width: 1199.98px) {
    .navbar-collapse { padding-top: 1rem; }
    .navbar .navbar-nav .nav-link { padding: .7rem .6rem !important; }
    .navbar-search-form:not(.is-expanded) .navbar-search-fields { display: flex; }
    .navbar-actions { margin-top: .75rem; }
}

/* Image-led article lists and a two-row desktop navigation. */
.article-card-cover { display:block; position:relative; overflow:hidden; border-radius:var(--bs-card-border-radius,.65rem) var(--bs-card-border-radius,.65rem) 0 0; }
.article-card-cover img,.article-series-cover { display:block; width:100%; height:auto; aspect-ratio:2 / 1; object-fit:cover; background:var(--body-bg-alt); }
.article-part-badge { position:absolute; top:.9rem; left:.9rem; background:var(--card-bg); color:var(--primary); border:1px solid var(--border-color); border-radius:2rem; padding:.35rem .75rem; font-size:.85rem; font-weight:800; box-shadow:0 2px 8px #0001; }
.article-part-prefix { color:var(--primary); }
.article-list-card { overflow:hidden; }
.article-list-card h2 { line-height:1.5; }
.langgraph-generated-figure { margin:2rem 0; padding:1rem; border:1px solid var(--border-color); border-radius:12px; background:var(--card-bg); }
.langgraph-generated-figure figcaption { color:var(--text-secondary); font-size:.95rem; margin-top:1rem; }
.article-content .graph-key { padding-left:1.2rem; }
@media(min-width:1200px) {
    .navbar>.container { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.8rem 1rem; }
    .navbar>.container>.navbar-brand { grid-column:1; grid-row:1; max-width:none; }
    .navbar #navbarNav { display:contents !important; }
    .navbar .navbar-actions { grid-column:2; grid-row:1; justify-content:flex-end; }
    .navbar .academy-main-nav { grid-column:1 / -1; grid-row:2; width:100%; display:flex; flex-direction:row; flex-wrap:nowrap; align-items:center; gap:.25rem; border-top:1px solid var(--border-color); padding-top:.65rem; }
    .navbar .academy-main-nav>.nav-item>.nav-link { white-space:nowrap; }
}

.article-card-series,.article-series-title { color:var(--primary); text-decoration:none; overflow-wrap:anywhere; }
.article-card-series:hover,.article-series-title:hover { text-decoration:underline; }
.article-series-step { display:flex; flex-direction:column; gap:.45rem; height:100%; padding:1rem; border:1px solid var(--border-color); border-radius:10px; color:var(--text-primary); text-decoration:none; overflow-wrap:anywhere; }
.article-series-step:hover { border-color:var(--primary); color:var(--primary); }
.article-series-step>span { color:var(--primary); font-weight:700; }
.article-series-next { background:var(--accent-soft); border-color:var(--primary); }
