.course-home { width: 100%; min-width: 0; margin: 0; padding: 0; } .course-home section { margin: 58px 0 0; } .home-hero { max-width: 900px; } .home-hero h1 { font-size: clamp(31px, 3.8vw, 46px); line-height: 1.4; } .home-lead { max-width: 790px; color: #59677e; font-size: 17px; line-height: 1.95; } .home-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 15px 24px; margin-top: 25px; } .home-primary-link, .home-secondary-link { display: inline-flex; gap: 12px; align-items: center; font-size: 14px; } .home-primary-link { background: var(--primary); color: #fff; border-radius: 7px; padding: 11px 16px; font-weight: 500; } .home-primary-link:hover { background: #225bdc; } .home-secondary-link { color: #445c80; } .home-secondary-link:hover { color: var(--primary); } .home-course-facts { display: flex; flex-wrap: wrap; gap: 22px 54px; margin: 32px 0 0; } .home-course-facts > div { display: flex; align-items: baseline; gap: 10px; } .home-course-facts dt { font-size: 25px; line-height: 1.3; color: #243d65; font-weight: 600; font-variant-numeric: tabular-nums; } .home-course-facts dd { margin: 0; font-size: 12px; color: #6a768c; } .home-scope-note { display: flex; align-items: flex-start; gap: 14px; padding: 21px 24px; margin-top: 32px; border: 1px solid #dfe8f7; border-left: 3px solid #80a9ef; border-radius: 0 8px 8px 0; background: #f7faff; } .home-scope-note > svg { margin-top: 3px; color: #4b74b7; } .home-scope-note strong { display: block; color: #324c74; font-size: 14px; } .home-scope-note p { font-size: 13px; line-height: 1.85; color: #65738a; margin: 5px 0 0; } .home-section-heading { margin-bottom: 23px; } .home-section-heading > span { display: block; font-family: var(--font-geist-mono), monospace; font-size: 11px; letter-spacing: 1.3px; color: #70809a; margin-bottom: 10px; } .home-section-heading p { max-width: 850px; color: #647188; font-size: 14px; margin: 11px 0 0; line-height: 1.85; } .home-architecture-figure { container: home-architecture / inline-size; margin: 0; border: 1px solid #dfe6f0; border-radius: 11px; background: #fcfdff; overflow: hidden; } .home-diagram-legend { display: flex; flex-wrap: wrap; gap: 12px 24px; padding: 19px 22px; border-bottom: 1px solid #e4eaf3; font-size: 0.8125rem; color: #576983; } .home-diagram-legend > span { display: inline-flex; align-items: center; gap: 9px; } .home-diagram-legend i { display: inline-block; flex-shrink: 0; width: 15px; height: 13px; border-radius: 3px; } .home-legend-module { background: #f3f7ff; border: 1px solid #a4bee6; } .home-diagram-legend .home-legend-task { position: relative; width: 25px; height: 0; border-top: 2px solid #b87020; border-radius: 0; } .home-legend-task::after { content: ''; position: absolute; right: 0; top: -4px; width: 6px; height: 6px; border-top: 2px solid #b87020; border-right: 2px solid #b87020; transform: rotate(45deg); } .home-legend-context { background: #f2f4f8; border: 1px dashed #a8b2c2; } .home-layered-architecture { display: grid; grid-template-columns: minmax(0, 1fr) 180px; gap: 16px; padding: 22px; } .home-architecture-stack { display: grid; gap: 12px; min-width: 0; } .home-architecture-layer { display: grid; grid-template-columns: 116px minmax(0, 1fr); border: 1px solid #dbe5f3; border-left: 3px solid #83a6d8; border-radius: 7px; background: #f5f8fd; min-width: 0; } .home-layer-heading { padding: 18px 12px; align-self: center; } .home-layer-heading h3 { margin: 0; color: #304c74; font-size: 0.9375rem; font-weight: 600; } .home-layer-heading p { margin: 6px 0 0; color: #687a92; font-size: 0.75rem; line-height: 1.7; } .home-layer-content { min-width: 0; padding: 12px; border-left: 1px solid #e0e8f4; background: #fff; border-radius: 0 6px 6px 0; } .home-layer-nodes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } .home-layer-client .home-layer-nodes, .home-layer-access .home-layer-nodes { grid-template-columns: minmax(0, 1fr); } .home-layer-runtime .home-layer-nodes { grid-template-columns: repeat(2, minmax(0, 1fr)); } .home-layer-tasks { border-color: #e7d7bf; border-left-color: #c89855; background: #fbf7f0; } .home-layer-tasks .home-layer-content { border-left-color: #efe5d6; } .home-layer-tasks .home-layer-nodes { grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr) 18px minmax(0, 1fr); gap: 5px; } .home-task-arrow { color: #b87020; align-self: center; } .home-layer-data { border-left-color: #78a4ae; background: #f2f8fa; } .home-layer-runtime { border-left-color: #899bb3; background: #edf1f7; } .home-architecture-node { display: flex; flex-direction: column; min-width: 0; padding: 13px 12px; background: #f3f7ff; border: 1px solid #b9cdeb; border-radius: 5px; overflow-wrap: anywhere; } .home-architecture-node strong { display: block; margin-bottom: 5px; color: #253f66; font-size: 0.875rem; line-height: 1.65; font-weight: 600; } .home-architecture-node > span { color: #566781; font-size: 0.875rem; line-height: 1.8; } .home-node-context { background: #f4f5f8; border-color: #bdc5d2; border-style: dashed; } .home-node-queue { background: #fff8ee; border-color: #e2cba9; } .home-node-storage { background: #f0f7fa; border-color: #b6ced8; } .home-node-runtime { background: #f1f4f9; border-color: #c6d2e2; } .home-architecture-node:is(a):hover, .home-architecture-node:is(a):focus-visible { border-color: #2f6bff; background: #edf4ff; } .home-layer-note { margin: 9px 1px 0; font-size: 0.75rem; line-height: 1.85; color: #65748b; } .home-crosscutting { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 16px 12px 12px; background: #eff4fc; border: 1px dashed #a9bddb; border-radius: 7px; } .home-crosscutting-heading > span { color: #355783; font-size: 0.9375rem; font-weight: 600; } .home-crosscutting-heading p { margin: 4px 0 0; color: #657996; font-size: 0.75rem; line-height: 1.8; } .home-crosscutting-card { flex: 1; padding: 15px 12px; border: 1px solid #ccdaee; border-radius: 5px; background: #fff; overflow-wrap: anywhere; } .home-crosscutting-number { display: block; margin-bottom: 10px; color: #527bb4; font-family: var(--font-geist-mono), monospace; font-size: 0.8125rem; } .home-crosscutting-card h3 { margin: 0; color: #304c74; font-size: 0.9375rem; } .home-crosscutting-card p { margin: 9px 0 16px; color: #62738c; font-size: 0.8125rem; line-height: 1.85; } .home-crosscutting-card dl { display: grid; gap: 12px; margin: 0; } .home-crosscutting-card dt { color: #3f5e88; font-size: 0.8125rem; font-weight: 500; } .home-crosscutting-card dd { margin: 0; color: #6d7d94; font-size: 0.75rem; } .home-crosscutting-card ul { display: grid; gap: 10px; margin: 0; padding-left: 17px; color: #526c90; font-size: 0.8125rem; } .home-crosscutting-tag { display: block; margin-top: 18px; color: #75829a; font-size: 0.75rem; } .home-crosscutting-card:hover { border-color: #2f6bff; } .home-architecture-figure figcaption { border-top: 1px solid #e4eaf3; padding: 13px 20px; margin: 0; color: #6b7790; font-size: 12px; background: #f8faff; line-height: 1.9; } .home-reading-paths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 21px; margin-top: 25px; } .home-reading-paths article { border-top: 2px solid #d9e5f7; padding-top: 14px; } .home-reading-number { display: block; color: #6384b5; font-size: 12px; font-weight: 600; margin-bottom: 5px; } .home-reading-paths h3 { font-size: 15px; } .home-reading-paths p { color: #65728a; font-size: 13px; line-height: 1.9; margin: 7px 0 0; } .home-term-note { padding: 18px 21px; background: #f5f7fb; border-radius: 7px; color: #66748a; font-size: 13px; margin: 24px 0 0; line-height: 1.9; } .home-term-note strong { color: #354f73; } .home-module-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 21px; } .home-module-card { display: flex; flex-direction: column; border: 1px solid #e0e7f1; border-radius: 9px; padding: 23px 24px 0; scroll-margin-top: 90px; min-width: 0; } .home-module-card:target { border-color: #91b4ed; box-shadow: 0 0 0 3px #edf4ff; } .home-module-card-top { display: flex; align-items: center; gap: 12px; color: #78859a; font-size: 11px; margin-bottom: 14px; } .home-module-card-top > svg { margin-left: auto; color: #6c88b0; } .home-module-number { display: inline-flex; align-items: center; justify-content: center; background: #edf4ff; color: #326dd0; width: 31px; height: 28px; border-radius: 5px; font-size: 12px; font-weight: 600; font-family: var(--font-geist-mono), monospace; } .home-module-card h3 { color: #263c5d; font-size: 20px; } .home-module-question { font-size: 13px; color: #577399; line-height: 1.85; margin: 5px 0 0; } .home-module-card dl { display: grid; gap: 12px; margin: 18px 0 23px; } .home-module-card dl > div { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 12px; } .home-module-card dt { font-size: 12px; color: #465a78; font-weight: 500; padding-top: 1px; } .home-module-card dd { font-size: 13px; color: #69758b; margin: 0; line-height: 1.85; overflow-wrap: anywhere; } .home-module-entry { display: flex; gap: 8px; align-items: center; justify-content: space-between; border-top: 1px solid #e8edf5; padding: 15px 0; margin-top: auto; font-size: 13px; color: #356cbd; } .home-module-entry:hover { color: #174d9c; } .home-task-timeline { margin: 0; padding: 0; list-style: none; } .home-task-timeline > li { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 20px; position: relative; padding-bottom: 23px; } .home-task-timeline > li:not(:last-child)::before { content: ''; position: absolute; left: 17px; top: 34px; bottom: 0; width: 1px; background: #d5e1f2; } .home-timeline-index { display: flex; align-items: center; justify-content: center; background: #eff5ff; border: 1px solid #d6e5fc; color: #4375bc; height: 35px; width: 35px; border-radius: 50%; font-size: 13px; position: relative; } .home-timeline-title { display: flex; flex-wrap: wrap; gap: 7px 15px; align-items: center; min-height: 35px; margin-bottom: 5px; } .home-timeline-title h3 { margin: 0; font-size: 16px; } .home-timeline-title > span { color: #7c715d; background: #faf5ec; font-size: 11px; border-radius: 3px; padding: 1px 7px; } .home-task-timeline p { margin: 0; color: #66748b; font-size: 14px; line-height: 1.9; } .home-failure-note { padding: 21px 24px; background: #f7f9fc; border: 1px solid #e2e8f1; border-radius: 8px; margin-top: 3px; } .home-failure-note strong { color: #3e5576; font-size: 15px; } .home-failure-note p { color: #65738b; font-size: 13px; margin: 7px 0 12px; } .home-failure-note a { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: #3a70be; } .home-learning-route { padding: 0; margin: 0; list-style: none; } .home-learning-route > li { display: flex; align-items: flex-start; gap: 18px; padding: 23px 0; border-top: 1px solid #e4eaf3; } .home-learning-route > li > svg { color: #6483af; margin-top: 4px; } .home-learning-route > li > div { flex: 1; min-width: 0; } .home-learning-route h3 { font-size: 16px; } .home-learning-route p { color: #68758b; font-size: 13px; line-height: 1.85; margin: 6px 0 0; } .home-learning-route a { display: inline-flex; align-items: center; gap: 7px; color: #4b74ac; font-size: 13px; white-space: nowrap; margin-top: 3px; } @container home-architecture (max-width: 940px) { .home-layered-architecture { grid-template-columns: minmax(0, 1fr); padding: 16px; } .home-crosscutting { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 16px; } .home-crosscutting-heading { grid-column: 1 / -1; } .home-crosscutting-card { padding: 16px; } .home-crosscutting-card dl { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } } @media (max-width: 1120px) { .home-reading-paths { gap: 17px; } .home-module-card { padding: 20px 20px 0; } .home-module-card dl > div { grid-template-columns: 1fr; gap: 2px; } } @container home-architecture (max-width: 680px) { .home-architecture-layer { grid-template-columns: minmax(0, 1fr); } .home-layer-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 14px; padding: 12px 14px; } .home-layer-heading p { margin: 0; } .home-layer-content, .home-layer-tasks .home-layer-content { border-left: 0; border-top: 1px solid #e0e8f4; border-radius: 0 0 6px 6px; } } @media (max-width: 800px) { .home-reading-paths { grid-template-columns: 1fr; gap: 18px; } .home-reading-paths article { display: grid; grid-template-columns: 22px minmax(0, 1fr); column-gap: 11px; } .home-reading-number { grid-row: span 2; margin-top: 2px; } .home-reading-paths p { margin-top: 1px; } .home-module-grid { grid-template-columns: 1fr; } .home-module-card dl > div { grid-template-columns: 58px minmax(0, 1fr); gap: 12px; } } @container home-architecture (max-width: 540px) { .home-layered-architecture { padding: 12px; gap: 12px; } .home-diagram-legend { padding: 15px; gap: 9px 16px; } .home-layer-nodes, .home-layer-runtime .home-layer-nodes, .home-layer-tasks .home-layer-nodes, .home-crosscutting { grid-template-columns: minmax(0, 1fr); } .home-task-arrow { justify-self: center; transform: rotate(90deg); } .home-layer-tasks .home-layer-nodes { gap: 7px; } .home-architecture-node { padding: 13px 14px; } } @media (max-width: 540px) { .course-home section { margin-top: 43px; } .home-hero h1 { font-size: 30px; line-height: 1.45; margin-top: 15px; } .home-lead { font-size: 15px; } .home-course-facts { column-gap: 21px; row-gap: 15px; } .home-course-facts > div { flex-direction: column; gap: 4px; } .home-course-facts dt { font-size: 22px; } .home-course-facts dd { font-size: 11px; } .home-scope-note { padding: 17px 15px; gap: 10px; } .home-scope-note > svg { width: 17px; } .home-section-heading h2 { font-size: 22px; } .home-architecture-figure figcaption { padding: 12px 14px; } .home-module-card { padding: 20px 18px 0; } .home-module-card dl > div { grid-template-columns: 1fr; gap: 2px; } .home-task-timeline > li { gap: 13px; } .home-failure-note { padding: 19px 18px; } .home-learning-route > li { gap: 11px; flex-wrap: wrap; } .home-learning-route a { width: 100%; margin-left: 31px; } }