﻿@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');

:root{--ink:#17211f;--muted:#75817d;--paper:#f7f8f4;--panel:#fff;--line:#e4e9e3;--green:#175c4b;--mint:#dcefe8;--orange:#e87b4d;--yellow:#f4c95d;--navy:#1d3440;--shadow:0 12px 40px rgba(23,33,31,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100vh}.sidebar{background:#102d29;color:#e5f1eb;width:280px;padding:32px 22px 24px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:10}.brand{display:flex;align-items:center;gap:12px;margin:0 10px 52px;font-family:'Space Grotesk'}.brand-mark{background:var(--orange);color:white;width:33px;height:33px;border-radius:10px;display:grid;place-items:center;font-weight:700;font-size:25.2px}.brand strong,.brand small{display:block}.brand strong{font-size:18px;letter-spacing:-.3px}.brand small{color:#8eaaa0;font:12px 'DM Mono';margin-top:3px}.sidebar-label,.eyebrow{font:500 12px 'DM Mono';letter-spacing:1.6px;color:#8da39c}.sidebar-label{margin:0 10px 16px}.phase-link{display:flex;align-items:center;gap:11px;padding:10px;border-radius:9px;color:#aabbb5;font-size:14.4px;margin-bottom:3px;transition:.2s}.phase-link:hover,.phase-link.active{background:#20473e;color:#fff}.phase-link .nav-index{font:13.2px 'DM Mono';color:#6e9187;width:22px}.phase-link.active .nav-index{color:#f4c95d}.sidebar-footer{margin-top:auto;border-top:1px solid #2a4b44;padding:22px 10px 0}.streak-card{background:#193e37;border-radius:10px;padding:14px}.streak-card .eyebrow{color:#80aa9c;font-size:10.8px}.streak-card strong{display:block;margin:9px 0 12px;font:600 15.6px 'Space Grotesk'}.progress-track{height:5px;background:#31584e;border-radius:99px;overflow:hidden}.progress-track span{height:100%;display:block;background:var(--yellow);width:0;transition:.4s}.sidebar-footer>p{color:#6e9187;font-size:12px;line-height:1.5;margin:16px 3px 0}.main-content{margin-left:280px;flex:1;min-width:0}.topbar{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 6.2vw}.breadcrumbs{font:12px 'DM Mono';letter-spacing:1.2px;color:var(--muted)}.breadcrumbs i{font-style:normal;padding:0 12px;color:#bbc5c1}.breadcrumbs strong{color:var(--ink);font-weight:500}.mark-button,.outline-button{border:1px solid #cbd6d0;background:transparent;border-radius:5px;padding:10px 14px;color:var(--green);font:13.2px 'DM Mono';cursor:pointer}.mark-button:hover,.outline-button:hover{background:var(--mint)}.menu-button{display:none}.view{max-width:1260px;margin:0 auto;padding:0 6.2vw 80px}.hero{min-height:460px;display:flex;align-items:center;justify-content:space-between;gap:40px;padding:65px 0 48px}.hero-copy{max-width:670px}.accent{color:var(--orange)}h1,h2{font-family:'Space Grotesk';letter-spacing:-1.6px;margin:0}.hero h1{font-size:clamp(52.8px,5.2vw,93.6px);line-height:.98;margin:18px 0 23px}.hero h1 em{color:var(--green);font-style:normal}.hero-lede{font-size:19.2px;line-height:1.7;color:#68756f;max-width:550px}.hero-actions{display:flex;align-items:center;gap:25px;margin-top:30px}.primary-button{background:var(--orange);color:#fff;padding:14px 18px;border-radius:5px;font:13.2px 'DM Mono';box-shadow:0 8px 18px #e87b4d33}.primary-button span,.text-button span{font-size:19.2px;margin-left:17px}.text-button{font:13.2px 'DM Mono';color:var(--green)}.hero-orbit{width:300px;height:300px;position:relative;flex:none}.orbit-ring{position:absolute;border:1px solid #bdd5cd;border-radius:50%;inset:20px}.ring-two{inset:62px;border-color:#e4cda2}.orbit-center{position:absolute;inset:97px;border-radius:50%;background:var(--green);color:white;display:grid;place-items:center;text-align:center;padding-top:10px}.orbit-center strong{font:700 34.8px 'Space Grotesk'}.orbit-center small{font-size:10.8px;line-height:1.2;color:#b9d8ce}.orbit-label{position:absolute;font:12px 'DM Mono';color:var(--green);background:var(--paper);padding:4px 7px}.label-top{top:0;left:122px}.label-right{right:0;top:143px}.label-bottom{bottom:0;left:111px}.label-left{left:-3px;top:143px}.stats-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);padding:23px 0;margin-bottom:80px}.stats-row div{border-right:1px solid var(--line);padding-left:25px}.stats-row div:first-child{padding-left:0}.stats-row div:last-child{border:0}.stats-row strong,.stats-row span{display:block}.stats-row strong{font:600 30px 'Space Grotesk';color:var(--green)}.stats-row span{color:var(--muted);font:12px 'DM Mono';margin-top:4px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:31px}.section-heading h2{font-size:40.8px;line-height:1.08;margin-top:12px}.section-heading>p{max-width:305px;color:var(--muted);font-size:15.6px;line-height:1.6;margin:0 0 3px}.phase-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:100px}.phase-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:22px 19px 19px;min-height:236px;display:flex;flex-direction:column;transition:.25s;position:relative;overflow:hidden}.phase-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#b9d5cb}.phase-card.completed:after{content:'âœ“';position:absolute;right:15px;top:15px;background:var(--mint);color:var(--green);border-radius:50%;width:21px;height:21px;display:grid;place-items:center;font-size:14.4px}.card-number{font:13.2px 'DM Mono';color:var(--orange);margin-bottom:26px}.phase-card h3{font:600 21.6px 'Space Grotesk';line-height:1.15;margin:0 0 9px}.phase-card p{color:var(--muted);font-size:13.2px;line-height:1.5;margin:0}.card-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:auto;padding-top:14px;font:10.8px 'DM Mono';color:#87948f}.card-footer b{color:var(--green);font-weight:500}.architecture-section{background:#e8f0eb;margin:0 -6.2vw;padding:55px 6.2vw 68px}.compact{margin-bottom:35px}.flow-diagram{display:flex;align-items:center;justify-content:space-between;gap:10px}.flow-diagram>i{font-style:normal;color:#a4b8af;font-size:24px}.flow-node{background:#fff;border:1px solid #d5e0d9;border-radius:7px;padding:17px 15px;min-width:145px;box-shadow:0 5px 15px #5472650c}.flow-node.highlight{background:var(--green);color:white;border-color:var(--green)}.flow-node span{font:12px 'DM Mono';color:var(--orange)}.flow-node strong,.flow-node small{display:block}.flow-node strong{font:600 18px 'Space Grotesk';margin:12px 0 4px}.flow-node small{font-size:12px;color:#87948f}.highlight small{color:#a9d0c3}.article-header{padding:70px 0 45px;max-width:800px}.phase-number{font:50.4px 'Space Grotesk';color:var(--orange);margin-right:15px}.article-header h1{font-size:clamp(45.6px,5vw,75.6px);line-height:1;margin:18px 0}.article-header>p{font-size:19.2px;line-height:1.7;color:var(--muted);max-width:700px}.tag-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}.tag{border:1px solid #cad9d2;padding:6px 9px;border-radius:3px;color:var(--green);font:10.8px 'DM Mono'}.article-layout{display:grid;grid-template-columns:minmax(0,760px) 270px;gap:70px;align-items:start}.article-body-intro{font:500 24px/1.5 'Space Grotesk';color:var(--green);margin:0 0 34px}.article-paragraph{margin:0 0 25px;font-size:16.8px;line-height:1.75;color:#52605b}.article-line{display:block}.article-paragraph:nth-of-type(3){border-left:3px solid var(--orange);padding-left:22px;color:var(--ink);font-size:18px}.article-body h2{font-size:30px;margin:42px 0 18px}.article-aside{display:flex;flex-direction:column;gap:15px;position:sticky;top:24px}.aside-card{background:#fff;border:1px solid var(--line);border-radius:7px;padding:18px}.aside-card .eyebrow{display:block;margin-bottom:15px;color:var(--green)}.study-item{padding:11px 0;border-top:1px solid var(--line)}.study-item:first-child{border-top:0;padding-top:0}.study-item b{display:block;font:12px 'DM Mono';color:var(--orange);margin-bottom:5px}.study-item span,.deliverable-card p{font-size:13.2px;line-height:1.5;color:var(--muted)}.deliverable-card p{margin:0 0 17px}.source-link{display:block;font-size:12px;line-height:1.4;color:var(--green);padding:8px 0;border-top:1px solid var(--line)}.source-link:first-of-type{border-top:0}.source-link small{display:block;color:var(--muted);font-size:10.8px;margin-top:2px}.view:not(.active){display:none}
@media(max-width:1000px){.sidebar{width:235px}.main-content{margin-left:235px}.phase-grid{grid-template-columns:repeat(2,1fr)}.article-layout{grid-template-columns:1fr}.article-aside{position:static;display:grid;grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.sidebar{transform:translateX(-100%);transition:.25s;width:280px}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0}.topbar{padding:0 20px}.menu-button{display:block;border:0;background:transparent;color:var(--green);font-size:25.2px;cursor:pointer}.view{padding:0 20px 50px}.hero{padding:48px 0 35px;display:block}.hero-orbit{width:230px;height:230px;margin:48px auto 0}.orbit-center{inset:73px}.ring-two{inset:48px}.hero h1{font-size:57.6px}.stats-row{margin-bottom:55px}.section-heading{display:block}.section-heading>p{margin-top:17px}.phase-grid{grid-template-columns:1fr;margin-bottom:60px}.architecture-section{margin:0 -20px;padding:45px 20px}.flow-diagram{display:grid;grid-template-columns:1fr 1fr}.flow-diagram>i{display:none}.flow-node{min-width:0}.article-header{padding:48px 0 30px}.article-aside{display:block}.article-body-intro{font-size:21.6px}.mark-button{font-size:10.8px;padding:8px}.breadcrumbs{font-size:10.8px}}
.tech-section{margin-top:90px;padding-top:50px;border-top:1px solid var(--line)}.week-group{margin-bottom:34px}.week-group h3{margin:0 0 14px;font:500 13.2px 'DM Mono';letter-spacing:1.4px}.week-group h3 span{background:var(--green);color:#fff;padding:6px 10px;border-radius:3px}.guide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.guide-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:18px;display:flex;flex-direction:column;gap:9px;transition:.2s}.guide-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#b9d5cb}.guide-card strong{font:600 18px/1.25 'Space Grotesk'}.guide-card p{margin:0;font-size:14.4px;line-height:1.55;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.guide-card span{margin-top:auto;font:12px 'DM Mono';color:var(--orange)}
.back-link{display:inline-block;margin:36px 0 0;font:13.2px 'DM Mono';color:var(--green)}.guide-header{max-width:800px;padding:26px 0 30px}.guide-header h1{font-size:clamp(38.4px,4.4vw,64.8px);line-height:1.02;margin:16px 0}.guide-header p{font-size:20.4px;line-height:1.65;color:var(--muted);margin:0}.guide-body{max-width:860px}.guide-points{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:28px}.point{background:#fff;border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:6px;padding:16px 18px}.point h3{margin:0 0 7px;font:600 18px 'Space Grotesk'}.point p{margin:0;font-size:15.6px;line-height:1.65;color:#52605b}
.diagram{margin:0 0 28px;background:#eef4f0;border:1px solid #d5e0d9;border-radius:9px;padding:20px}.diagram figcaption{font:500 12px 'DM Mono';letter-spacing:1.4px;color:var(--green);text-transform:uppercase;margin-bottom:16px}.dg-flow{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px}.dg-node{background:#fff;border:1px solid #cfdcd5;border-radius:7px;padding:11px 13px;font:600 14.4px/1.35 'DM Sans';min-width:105px;max-width:170px;flex:1 1 105px;position:relative}.dg-node em{display:block;font:normal 12px 'DM Mono';color:var(--orange);margin-bottom:5px}.dg-arrow{align-self:center;color:#8fb0a3;font-size:21.6px}.dg-layers{display:flex;flex-direction:column;gap:6px}.dg-layer{padding:12px 16px;border-radius:6px;font:600 14.4px 'DM Sans';text-align:center}.l0{background:var(--green);color:#fff}.l1{background:#2f7d69;color:#fff}.l2{background:#a9d1c3;color:var(--ink)}.l3{background:#fff;border:1px dashed #9bbbad;color:var(--ink)}.dg-table{width:100%;border-collapse:collapse;background:#fff;font-size:14.4px}.dg-table th{background:var(--green);color:#fff;text-align:left;padding:9px 11px;font:500 12px 'DM Mono';letter-spacing:.8px}.dg-table td{padding:9px 11px;border-top:1px solid var(--line);line-height:1.45}.dg-tree,.dg-tree ul{list-style:none;margin:0;padding-left:22px;position:relative}.dg-tree{padding-left:0}.dg-tree ul:before{content:'';position:absolute;left:8px;top:0;bottom:14px;border-left:1px solid #9bbbad}.dg-tree li{position:relative;margin:6px 0}.dg-tree ul li:before{content:'';position:absolute;left:-14px;top:14px;width:12px;border-top:1px solid #9bbbad}.dg-tree li>span{display:inline-block;background:#fff;border:1px solid #cfdcd5;border-radius:5px;padding:5px 10px;font:500 14.4px 'DM Sans'}
.code-block{background:#102d29;border-radius:8px;margin-bottom:24px;overflow:hidden}.code-lang{display:block;padding:8px 14px;background:#183c36;color:#8fb5a8;font:12px 'DM Mono';text-transform:uppercase;letter-spacing:1.2px}.code-block pre{margin:0;padding:16px 18px;overflow-x:auto}.code-block code{font:14.4px/1.65 'DM Mono',monospace;color:#d7ece4}.official-source{display:block;background:#fff;border:1px solid var(--line);border-radius:7px;padding:15px 18px;font-weight:600;font-size:16.8px;color:var(--green)}.official-source small{display:block;font:10.8px 'DM Mono';letter-spacing:1.4px;color:var(--muted);margin-bottom:4px}.official-source:hover{background:var(--mint)}.guide-pager{display:flex;justify-content:space-between;gap:14px;max-width:860px;margin-top:34px}.guide-pager a{flex:1;max-width:50%;border:1px solid var(--line);border-radius:7px;padding:14px 16px;background:#fff;font:600 15.6px 'Space Grotesk'}.guide-pager a.next{text-align:right}.guide-pager small{display:block;font:10.8px 'DM Mono';color:var(--orange);margin-bottom:5px}.guide-pager a:hover{border-color:#b9d5cb}
@media(max-width:700px){.guide-points{grid-template-columns:1fr}.dg-flow{flex-direction:column}.dg-arrow{transform:rotate(90deg);align-self:center}.dg-node{max-width:none}.guide-pager{flex-direction:column}.guide-pager a{max-width:none}.dg-table{display:block;overflow-x:auto}}

html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{overflow-wrap:break-word}img,svg{max-width:100%}.scrim{display:none}
.topbar{position:sticky;top:0;z-index:5;background:rgba(247,248,244,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
@media(max-width:900px),(orientation:landscape) and (max-height:500px),(any-pointer:coarse) and (max-width:1500px){
.sidebar{transform:translateX(-100%);transition:transform .25s ease;width:min(300px,84vw);height:100vh;height:100dvh;overflow-y:auto;box-shadow:none;padding-top:max(24px,env(safe-area-inset-top))}
.sidebar.open{transform:translateX(0);box-shadow:8px 0 40px rgba(0,0,0,.35)}
.scrim{position:fixed;inset:0;background:rgba(10,25,22,.5);z-index:9;opacity:0;pointer-events:none;transition:opacity .25s;display:block}
.scrim.show{opacity:1;pointer-events:auto}
body.nav-open{overflow:hidden}
.main-content{margin-left:0}
.menu-button{display:grid;place-items:center;width:44px;height:44px;margin-left:-10px;border:0;background:transparent;color:var(--green);font-size:26.4px;cursor:pointer;flex:none}
.topbar{height:64px;padding:0 max(20px,3vw);gap:8px}
.breadcrumbs{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.breadcrumbs span,.breadcrumbs i{display:none}.breadcrumbs strong{display:block;overflow:hidden;text-overflow:ellipsis}
.mark-button{flex:none;min-height:40px}
.view{padding:0 max(20px,3vw) 60px}
.architecture-section{margin:0 calc(-1*max(20px,3vw));padding-left:max(20px,3vw);padding-right:max(20px,3vw)}
.phase-link{padding:13px 10px}
.article-layout{grid-template-columns:1fr;gap:36px}
.article-aside{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
}
@media(max-width:700px){
.hero{min-height:0}.hero h1{font-size:clamp(45.6px,12vw,62.4px)}.hero-lede{font-size:18px}
.hero-actions{flex-wrap:wrap;gap:16px}.primary-button{padding:15px 18px}
.stats-row{grid-template-columns:1fr 1fr;row-gap:20px}.stats-row div:nth-child(2){border-right:0}.stats-row div:nth-child(3){padding-left:0}
.section-heading h2{font-size:32.4px}
.phase-card{min-height:0}.phase-card h3{font-size:22.8px}.phase-card p{font-size:14.4px}
.article-header h1,.guide-header h1{font-size:clamp(36px,9vw,50.4px)}
.article-paragraph{font-size:17.4px}.article-paragraph:nth-of-type(3){font-size:18px;padding-left:16px}
.article-aside{grid-template-columns:1fr}
.tech-section{margin-top:56px;padding-top:36px}.guide-grid{grid-template-columns:1fr}.guide-card{padding:16px}
.guide-header p{font-size:18.6px}.point{padding:14px 15px}
.diagram{padding:16px 14px;margin-left:-6px;margin-right:-6px}
.dg-flow{gap:4px}.dg-node{flex:none;width:100%}.dg-arrow{transform:rotate(90deg);line-height:1;height:18px}
.dg-layer{font-size:14.4px;padding:11px 12px}.dg-table th,.dg-table td{white-space:normal;min-width:90px}
.dg-tree ul{padding-left:16px}.dg-tree li>span{font-size:13.8px}
.code-block{margin-left:-6px;margin-right:-6px;border-radius:6px}.code-block code{font-size:13.2px}.code-block pre{padding:13px 14px;-webkit-overflow-scrolling:touch}
.official-source{padding:14px 15px}.guide-pager a{padding:14px}
.flow-node{padding:14px 12px}
}
@media(max-width:380px){.mark-button{font-size:10.2px;padding:7px}.hero-orbit{width:200px;height:200px}.orbit-center{inset:62px}.ring-two{inset:42px}.label-top{left:84px}.label-bottom{left:72px}.label-right,.label-left{top:93px}.stats-row strong{font-size:26.4px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media(min-width:701px) and (max-width:900px),(orientation:landscape) and (max-height:500px) and (min-width:701px){.flow-diagram{flex-wrap:wrap;justify-content:center;row-gap:12px}.flow-node{min-width:0;flex:1 1 120px}}
@media(min-width:901px) and (max-width:1500px){.flow-diagram{flex-wrap:wrap;justify-content:center;row-gap:12px}.flow-node{min-width:0;flex:1 1 130px}.code-block pre,.code-block code{white-space:pre-wrap;overflow-wrap:anywhere;overflow-x:hidden}}
@media(max-width:1500px){html,body{overflow-x:hidden}}
.sidebar-art{display:block;width:100%;max-width:100%;height:auto;margin:18px 0 6px;border-radius:12px;flex:none}
.mark-button[hidden]{display:none!important}
