| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806 |
- .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;
- }
- }
|