/* An editorial maker's notebook, in the portal's existing crimson / teal theme. */
.landing-container{gap:88px}
.mission-hero{padding:48px 0 24px;gap:64px;grid-template-columns:1.12fr .88fr}
.mission-hero>*{min-width:0}.mission-hero .hero-title{overflow-wrap:anywhere}
.mission-hero .hero-title{font-size:clamp(36px,4.3vw,62px);line-height:1.06;letter-spacing:-.045em;max-width:770px}
.mission-hero .hero-lead{font-size:18px;line-height:1.75;max-width:550px}
.mission-hero .eyebrow{font-size:10px;letter-spacing:.13em;margin:0;color:var(--primary)}
.hero-secondary{font-size:13px;font-weight:600;border-bottom:1px solid var(--line-strong);padding:10px 0}
.hero-secondary span{margin-left:10px}
.hero-course-meta{display:flex;gap:28px;border-top:1px solid var(--line);padding-top:25px;margin-top:14px;font-size:12px;color:var(--muted)}
.hero-course-meta strong{font-size:23px;color:var(--ink);margin-right:5px}
.hero-course-meta strong span{font-size:12px;font-weight:400;color:var(--muted)}
.maker-board{position:relative;background:#f0f5f3;border:1px solid #cedbd7;border-radius:18px;padding:24px;transform:rotate(2deg);box-shadow:9px 12px 0 #e4e9e7;background-image:radial-gradient(#b9c8c3 1px,transparent 1px);background-size:20px 20px}
.board-caption{display:flex;justify-content:space-between;gap:8px;font:9px var(--font-mono);color:#47675e;letter-spacing:.06em}
.board-status{color:#0c766c}
.board-code{margin:25px 0 0;background:#fff;border:1px solid #dbe5e0;border-radius:9px;padding:23px;font:12px/1.9 var(--font-mono);box-shadow:0 5px 20px #17332b08;transform:rotate(-3deg)}
.code-comment{color:#82938d}.code-keyword{color:#a51c30}.code-active{color:#087b70}.code-cursor{color:#a51c30}
.board-vessel{display:block;width:100%;max-height:220px;margin-top:10px}
.board-note{font-size:12px;color:#577269;line-height:1.65;border-left:3px solid #0d9488;padding-left:12px}
.board-note strong{color:#163d31}
.mission-route{padding:50px 0 0;border-top:1px solid var(--line)}
.route-heading{display:grid;grid-template-columns:1fr 1fr;gap:20px 60px;align-items:end}
.route-heading h2{font-size:clamp(32px,4vw,48px);line-height:1.13;letter-spacing:-.04em;margin:12px 0 0}
.route-heading p{font-size:15px;line-height:1.8;margin:0;max-width:360px;color:var(--muted)}
.route-skip{grid-column:2;font-size:12px;text-decoration:underline;text-underline-offset:5px;color:var(--primary)}
.route-map{position:relative;margin-top:60px;isolation:isolate}
.route-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.route-base,.route-progress{fill:none;stroke-width:3;stroke-linecap:round}.route-base{stroke:#dbe3e5;stroke-dasharray:5 8}.route-progress{stroke:#0d9488}
.route-stations{list-style:none;padding:0;margin:0}
.route-station{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:240px;min-height:235px;padding:28px 0}
.route-station article{padding:25px 28px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 4px 18px #14233303;transition:border-color .25s,box-shadow .25s}
.station-right article{grid-column:2}
.station-index{font:10px var(--font-mono);letter-spacing:.07em;color:var(--muted)}
.route-station h3{font-size:24px;line-height:1.2;margin:14px 0 12px;letter-spacing:-.035em}
.route-station p{font-size:14px;line-height:1.75;color:var(--muted);margin-bottom:16px}
.route-station code{font:11px var(--font-mono);color:#0a756b;background:#ecf8f4;padding:6px 9px;border-radius:4px;display:inline-block}
.station-dot{position:absolute;top:59px;width:14px;height:14px;border:3px solid #cbd8d4;background:var(--bg);border-radius:50%;transform:translateX(-50%);display:none}
.route-ready .station-dot{display:block}.is-reached .station-dot{border-color:#0d9488;background:#0d9488}
.is-reached article{border-color:#94c9ba;box-shadow:0 8px 28px #143f2b05}
.route-traveler{display:none;position:absolute;left:0;top:0;z-index:3;width:72px;height:72px;border-radius:20px;background:#fff;border:1px solid #cbded6;box-shadow:0 5px 20px #16422b20;padding:12px;color:#087c70;will-change:transform;pointer-events:none}
.route-ready .route-traveler{display:block}.route-traveler svg{width:100%;height:100%}.route-traveler [data-icon]{opacity:0;transition:opacity .25s}
.route-traveler[data-stage="python"] [data-icon="python"],.route-traveler[data-stage="drone"] [data-icon="drone"],.route-traveler[data-stage="api"] [data-icon="api"],.route-traveler[data-stage="boat"] [data-icon="boat"]{opacity:1}
.route-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:4}.route-confetti i{position:absolute;width:7px;height:12px;border-radius:1px}
.route-outro{text-align:center;border:1px solid var(--line);border-radius:12px;background:white;padding:35px 20px;margin-top:35px}
.route-completion{display:block;font:10px var(--font-mono);letter-spacing:.08em;color:var(--muted);margin-bottom:13px}
.route-outro a{font-size:clamp(18px,2.5vw,27px);font-weight:600;color:var(--ink)}.route-outro a span{color:var(--primary);margin-left:12px}
.is-complete .route-outro{background:#eef8f3;border-color:#98cbb8}
.curriculum-section{scroll-margin-top:95px}.curriculum-top-bar h2{font-size:36px;letter-spacing:-.04em}.cs-syllabus-item{padding-top:23px;padding-bottom:23px}.cs-syllabus-item:hover{background:#f0f7f5}.cs-syllabus-item .mod-title{font-weight:500}
.editorial-grid{gap:28px}.editorial-card.card{box-shadow:none;border:0;border-top:2px solid var(--line);border-radius:0;background:transparent}.editorial-card-header{padding-left:0;padding-right:0}.editorial-card-body.prose{padding-left:0;padding-right:0;background:transparent}.docs-section{background:#edf6f2;border-color:#ccdcd4}
@media(max-width:1050px){.mission-hero{gap:32px}.board-code{font-size:10px;padding:16px}.route-station{gap:150px}.route-station article{padding:23px}.route-station h3{font-size:21px}.hero-course-meta{gap:18px}}
@media(max-width:740px){.landing-container{gap:54px}.mission-hero{grid-template-columns:1fr;padding:12px 0;gap:38px}.mission-hero .hero-title{font-size:clamp(32px,8vw,50px)}.mission-hero .hero-lead{font-size:16px}.maker-board{max-width:500px;width:calc(100% - 12px);margin:0 auto;transform:rotate(1deg)}.board-code{font-size:12px}.hero-course-meta{flex-wrap:wrap;row-gap:8px}.route-heading{display:block}.route-heading p{margin:20px 0 14px}.route-heading h2{font-size:34px}.route-map{margin-top:30px}.route-station{display:block;padding:20px 0 20px 88px;min-height:230px}.route-station article{padding:20px 16px}.route-station h3{font-size:22px}.route-traveler{width:54px;height:54px;padding:9px;border-radius:15px}.station-dot{top:59px}.route-outro{margin-top:20px}.hero-actions{flex-wrap:wrap}.route-skip{display:inline-block}.curriculum-top-bar{gap:20px}}
@media(prefers-reduced-motion:reduce){.route-traveler{display:none!important}.route-progress{stroke-dashoffset:0!important}.route-station article,.route-traveler [data-icon]{transition:none}html{scroll-behavior:auto!important}}
/* Stable columns for long Russian titles and narrow viewports. */
.cs-syllabus-card .cs-syllabus-item{display:grid;grid-template-columns:76px minmax(0,1fr);gap:24px;align-items:start}
.cs-syllabus-item .mod-title{min-width:0;line-height:1.6;overflow-wrap:anywhere}
.cs-syllabus-item .mod-code{line-height:1.85;white-space:nowrap}
.hero-course-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:0;gap:12px;padding:0;margin-top:24px}
.course-stat{padding:20px 14px;border:1px solid #d8e5df;border-radius:14px;background:linear-gradient(145deg,#fff,#edf6f2);animation:rise-in .7s both;transition:transform .25s,box-shadow .25s}
.course-stat:nth-child(2){animation-delay:.12s}.course-stat:nth-child(3){animation-delay:.24s}
.course-stat:hover{transform:translateY(-5px);box-shadow:0 10px 24px #153c2910}
.hero-course-meta .course-stat strong{display:block;font-size:36px;line-height:1.2;margin:0 0 8px;color:#087c70;letter-spacing:-.05em}
.course-stat strong small{font-size:16px;letter-spacing:0}.course-stat>span{font-size:12px;line-height:1.5;display:block}
.board-code{margin-top:0}.board-vessel{animation:vessel-float 5s ease-in-out infinite}.code-cursor{animation:cursor-blink 1s steps(2,start) infinite}
.course-trailer{display:grid;grid-template-columns:210px minmax(0,1fr);gap:34px;align-items:start;padding:34px;background:linear-gradient(135deg,#f1f8f5,#fff);border:1px solid #cddfd7;border-radius:20px;box-shadow:0 12px 35px rgba(15,23,42,.06)}
.trailer-heading{padding-top:9px}.trailer-heading h2{font-size:clamp(28px,3vw,38px);letter-spacing:-.04em;margin:10px 0 0;color:var(--ink)}.trailer-player{position:relative;aspect-ratio:16/9;overflow:hidden;background:#edf3f0;border:1px solid #c7d8d1;border-radius:14px;box-shadow:0 10px 28px #12332914}.trailer-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.route-heading{grid-template-columns:1fr}.route-station article{transition:transform .35s,border-color .35s,box-shadow .35s}.route-station.is-reached article{transform:translateY(-4px)}
.station-dot.mission-target{top:54px;width:24px;height:24px;padding:0;background:#fff;border:3px solid #b6d1c6;color:#087c70;z-index:4;transition:background .3s,box-shadow .3s;pointer-events:none}
.mission-target svg{position:absolute;inset:2px;width:14px;height:14px;transition:opacity .3s,transform .4s}.target-check{opacity:0;transform:scale(.4)}
.is-reached .mission-target{background:#087c70;color:#fff;border-color:#087c70;box-shadow:0 0 0 7px #0d948818}
.is-reached .target-check{opacity:1;transform:scale(1)}
.mission-done{display:block;color:#087c70;font-size:11px;font-weight:600;opacity:0;transform:translateY(5px);transition:opacity .3s,transform .3s;height:0;overflow:hidden}.is-reached .mission-done{opacity:1;transform:none;height:auto;margin-bottom:10px}
.editorial-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.editorial-grid .editorial-card.card{grid-column:auto;min-width:0;padding:28px;border:1px solid var(--line);border-radius:18px;background:#fff}
.editorial-grid .creation-card.card{grid-column:1/-1;background:linear-gradient(125deg,#edf7f2,#f8fafc);border-color:#ccdfd5;padding:42px}
.creation-card .editorial-card-header{border:0;padding:0}.creation-card h3{font-size:38px;letter-spacing:-.045em}.creation-card .editorial-card-body{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(520px,1.22fr);gap:54px;align-items:center}.creation-card .editorial-card-body>p{max-width:520px;font-size:16px;line-height:1.9;margin:0}
.creation-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0}
.creation-flow>div{position:relative;display:flex;flex-direction:column;gap:8px;min-height:138px;padding:22px 20px;background:#ffffffde;border:1px solid #d4e6dc;border-radius:14px;transition:transform .3s,box-shadow .3s;overflow:hidden}
.creation-flow>div:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:3px;background:#0d9488;transform-origin:left;animation:signal-flow 4s ease-in-out infinite}
.creation-flow>div:nth-child(2):after{animation-delay:.6s}.creation-flow>div:nth-child(3):after{animation-delay:1.2s}.creation-flow>div:nth-child(4):after{animation-delay:1.8s}
.creation-flow>div:hover{transform:translateY(-6px);box-shadow:0 12px 24px #143f2b0d}.creation-flow span{font:10px var(--font-mono);color:#087c70}.creation-flow strong{font-size:24px;line-height:1.3}.creation-flow small{font-size:12px;color:var(--muted);line-height:1.5}
.reveal-pending{opacity:0;transform:translateY(20px)}.reveal-visible{animation:rise-in .65s both}
@keyframes rise-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes vessel-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)}}
@keyframes cursor-blink{to{visibility:hidden}}@keyframes signal-flow{0%,100%{transform:scaleX(.08);opacity:.3}50%{transform:scaleX(1);opacity:1}}
@media(max-width:980px){.creation-card .editorial-card-body{grid-template-columns:1fr;gap:28px}.creation-card .editorial-card-body>p{max-width:760px}.course-trailer{grid-template-columns:1fr;gap:22px}.trailer-heading{padding:0}}
@media(max-width:740px){.cs-syllabus-card .cs-syllabus-item{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:18px 14px}.cs-syllabus-item .mod-code{font-size:10px;min-width:0}.cs-syllabus-item .mod-title{font-size:14px}.course-stat{padding:16px 10px}.hero-course-meta .course-stat strong{font-size:30px}.course-stat>span{font-size:11px}.hero-course-meta{gap:8px}.course-trailer{padding:22px;border-radius:16px}.trailer-copy h2{font-size:30px}.editorial-grid{grid-template-columns:1fr}.editorial-grid .editorial-card.card,.editorial-grid .creation-card.card{grid-column:1;padding:22px}.creation-card h3{font-size:30px}.creation-flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.creation-flow>div{min-height:126px;padding:18px 12px}.creation-flow strong{font-size:21px}.creation-flow span{font-size:9px}.station-dot.mission-target{width:22px;height:22px;top:55px}.mission-target svg{inset:2px;width:12px;height:12px}}
@media(prefers-reduced-motion:reduce){.course-stat,.board-vessel,.code-cursor,.creation-flow>div:after,.reveal-visible{animation:none}.reveal-pending{opacity:1;transform:none}.course-stat,.creation-flow>div,.mission-target,.mission-target svg,.mission-done{transition:none}}
/* Reserve completion-label space so crossing a waypoint never moves the route. */
.mission-done{height:17px;margin-bottom:10px}.is-reached .mission-done{height:17px}
