/* Constellation color belongs to the entire node; small marks show academic state. */
.brand-name { display: flex; align-items: baseline; gap: 7px; }
.brand-prefix { font: 800 16px var(--sans); color: #c7b9d5; letter-spacing: -.3px; }
.brand-title { font: 800 24px var(--sans); color: #e1d1a7; letter-spacing: .4px; }
.sky-trails { stroke: var(--sky-accent); opacity: .42; filter: drop-shadow(0 0 4px color-mix(in srgb,var(--sky-accent) 25%,transparent)); }
.catalog-stars { fill: var(--sky-accent); filter: drop-shadow(0 0 5px color-mix(in srgb,var(--sky-accent) 60%,transparent)); }
.term-label strong { color: var(--sky-accent); }
.dossier-sky .dossier-trails { stroke: var(--sky-accent); }
.dossier-sky .dossier-stars { fill: var(--sky-accent); }
.course-node.available,.course-node.locked,.course-node.preview,.course-node.completed,.course-node.active-course { color: var(--sky-accent); }
.course-node .star-rays,.course-node .star-center,.course-node .star-aura { fill: var(--sky-accent); }
.course-node .star-facet-light { fill: color-mix(in srgb,var(--sky-accent) 60%,white); }
.course-node .star-spark { fill: color-mix(in srgb,var(--sky-accent) 30%,white); }
.course-node.locked .star-center { opacity: .52; }
.course-node .skill-star { filter: drop-shadow(0 0 11px color-mix(in srgb,var(--sky-accent) 32%,transparent)); }
.course-node:hover .skill-star,.course-node:focus-visible .skill-star { filter: drop-shadow(0 0 18px color-mix(in srgb,var(--sky-accent) 55%,transparent)); }
.course-node .elevation-base { fill: color-mix(in srgb,var(--sky-accent) 13%,#081021); }
.elevation-base,.elevation-base-side,.elevation-base-light,.elevation-stem { stroke: var(--sky-accent); }
.elevation-contact { fill: var(--sky-accent); }
.course-node .node-copy,.course-node.path-member .node-copy { border-color: color-mix(in srgb,var(--sky-accent) 26%,transparent); }
.course-node .node-copy .node-code,.course-node:hover .node-copy .node-code,.course-node.selected-node .node-copy .node-code { color: var(--sky-accent); }
.course-node.locked .node-copy .node-code { color: color-mix(in srgb,var(--sky-accent) 72%,#535566); }
.course-node:hover .node-copy,.course-node:focus-visible .node-copy,.course-node.selected-node .node-copy { border-color: color-mix(in srgb,var(--sky-accent) 65%,transparent); background: color-mix(in srgb,var(--sky-accent) 8%,#101021aa); }
.course-node.preview .node-copy { border-style: dashed; }
.course-node.completed .node-code:after { content: '\2713'; display: inline-block; margin-left: 9px; color: #c4e6a9; font: 800 15px var(--sans); vertical-align: 3px; }
.course-node.active-course .node-code:after { content: ''; display: inline-block; width: 6px; height: 6px; margin-left: 10px; border-radius: 50%; background: #edc58e; box-shadow: 0 0 7px #edc58e70; vertical-align: 6px; }
.map-legend .legend-node.complete { border: 0; background: transparent; color: #c4e6a9; width: 12px; height: 12px; }
.map-legend .legend-node.complete:after { content: '\2713'; font: 800 12px var(--sans); position: relative; top: -3px; }
.graph-lines .connection-line.specialization-thread:not(.path-muted):not(.path-traced):not(.path-selected) { stroke: var(--sky-accent); opacity: .34; }
.specialization-constellation { position: absolute; inset: 0; pointer-events: none; }
.specialization-heading { position: absolute; z-index: 4; color: var(--sky-accent); }
.specialization-heading>span { display: block; font-size: 12px; letter-spacing: 1.5px; }
.specialization-heading>strong { display: block; margin: 10px 0 14px; font-size: 32px; }
.specialization-heading button { border: 0; border-bottom: 1px solid #ac95b655; border-radius: 0; padding: 7px 0; background: transparent; color: #a999ba; font-size: 12px; }
.revealing-branch .specialization-node,.revealing-branch .specialization-constellation { animation: constellation-arrive 450ms ease-out both; }
@keyframes constellation-arrive { from { opacity: 0; } to { opacity: 1; } }

/* A check reveals one constellation. The separate active-path badge describes commitment. */
.branch-card { position: relative; }
.branch-check { width: 18px; height: 18px; display: grid; place-items: center; border: 1px solid #73608170; border-radius: 3px; color: #9685a8; font: 800 12px var(--sans); flex-shrink: 0; }
.branch-card.viewing .branch-check { border-color: var(--sky-accent); color: var(--sky-accent); background: color-mix(in srgb,var(--sky-accent) 9%,transparent); }
.branch-card .branch-symbol,.branch-card.current .branch-symbol { color: var(--sky-accent); }
.branch-card.viewing,.branch-card.current.viewing { border-color: var(--sky-accent); }
.branch-card.viewing strong { color: var(--sky-accent); }
.branch-card.current:not(.viewing) { border-color: #423347; }
.branch-card.current small { color: #b9cf9f; }
.branch-card.current small:before { content: '◆'; margin-right: 5px; font-size: 7px; }

/* This meter reflects required academic completion, independently of the inspected branch. */
.journey-progress { padding: 0 30px 15px; border-bottom: 1px solid #393047; background: #0a0a14; }
.path-summary { border-bottom: 0; }
.journey-label { display: flex; align-items: baseline; gap: 12px; margin-bottom: 9px; font-size: 10px; color: #a194b2; }
.journey-label>span { letter-spacing: .3px; }
.journey-label strong { margin-left: auto; color: #d9cda9; font-size: 11px; }
.journey-label strong span { color: #8b7f9a; }
.journey-label>b { color: #ddd3e7; min-width: 30px; text-align: right; font-size: 12px; }
.journey-track { position: relative; height: 9px; border: 1px solid #58476780; background: #181320; }
.journey-track:after { content: ''; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(90deg,transparent 0,transparent calc(10% - 1px),#090713aa calc(10% - 1px),#090713aa 10%); }
.journey-fill { position: relative; height: 100%; background: linear-gradient(90deg,#7d6e95,#b1a7cc 60%,#dbcf9c); box-shadow: 0 0 12px #bbaaeb30; transition: width 650ms cubic-bezier(.2,.7,.25,1); }
.journey-fill>span { position: absolute; right: -6px; top: -7px; z-index: 1; color: #efdfb4; font-size: 17px; text-shadow: 0 0 12px #e7cf9b99; }
.journey-empty .journey-fill>span { opacity: 0; }
.journey-earned .journey-fill>span { animation: journey-spark 750ms ease-out; }
@keyframes journey-spark { 40% { transform: scale(1.7); text-shadow: 0 0 22px #ebd09c; } }
.map-viewport { height: calc(100dvh - 390px); }
.term-label { z-index: 4; max-width: 340px; width: max-content; pointer-events: none; }
.cluster-meta { display: flex; align-items: baseline; gap: 13px; letter-spacing: 0; }
.cluster-year { color: #d5c9e0; font: 800 22px/1.3 var(--sans); }
.cluster-term { padding-left: 13px; border-left: 1px solid #8a769954; color: #a896b8; font: 800 12px var(--sans); letter-spacing: .7px; }
.reset-progress-button { border: 1px solid #7d566250; border-radius: 3px; padding: 7px 10px; background: transparent; color: #b394a4; font: 800 10px var(--sans); white-space: nowrap; }
.reset-progress-button:hover { border-color: #b3859e; background: #36202d50; color: #d7b9c9; }
.journal-reset { margin-top: 12px; }
#reset-dialog { width: min(540px,calc(100vw - 36px)); }
#reset-dialog h2 { font-size: 30px; }
#reset-dialog p { line-height: 1.6; }
.reset-confirm { padding: 13px 18px; border: 1px solid #ad7088; border-radius: 3px; background: #663246; color: #f2dae5; font: 800 13px var(--sans); }
.reset-confirm:hover { background: #7d3e55; }
@media(max-width:760px) {
 .brand-name { flex-direction: column; align-items: flex-start; gap: 0; }
 .brand-prefix { font-size: 10px; line-height: 1.3; }
 .brand-title { font-size: 19px; line-height: 1.2; }
 .journey-progress { padding: 0 14px 14px; }
 .branch-check { width: 15px; height: 15px; font-size: 10px; }
 .branch-card small { display: block; margin-left: 0; font-size: 7px; }
 .journey-label { font-size: 9px; gap: 6px; }
 .reset-progress-button { font-size: 9px; padding: 7px 8px; }
}
@media(prefers-reduced-motion:reduce) {
 .journey-fill { transition: none; }
 .revealing-branch .specialization-node,.revealing-branch .specialization-constellation,.journey-earned .journey-fill>span { animation: none; }
}
