:root{--paper: #f7f5ef;--paper-soft: #fbfaf6;--card: rgb(255 254 250 / 82%);--ink: #252520;--muted: #77736a;--line: #d8d2c8;--line-strong: #bfb7aa;--blue: #345f86;--green: #5f8b70;--amber: #a9895b;--coral: #9b6a5c;--gray: #77736a;--shadow-sm: 0 6px 18px rgb(39 35 28 / 5%);--shadow-md: 0 14px 42px rgb(39 35 28 / 7%);interpolate-size:allow-keywords}*{box-sizing:border-box}html{min-width:320px;background:var(--paper);color:var(--ink);font-size:17px;font-family:Avenir Next,PingFang SC,Noto Sans SC,Microsoft YaHei,sans-serif}body{margin:0;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle,rgb(64 57 45 / 9%) 1px,transparent 1.2px) 8px 8px / 34px 34px,radial-gradient(circle at 50% 0%,rgb(255 255 255 / 88%) 0 32rem,transparent 54rem),linear-gradient(180deg,#fdfbf7 0%,var(--paper) 100%)}a{color:inherit;text-decoration:none}summary{font:inherit}.page-shell{position:relative;min-height:100vh;padding:16px 18px 48px}body[data-intro-drawer-open=true]{overflow:hidden}.intro-scrim{position:fixed;inset:0;z-index:20;padding:0;border:0;background:#25221d42;cursor:default;opacity:0;pointer-events:none;transition:opacity .18s ease}body[data-intro-drawer-open=true] .intro-scrim{opacity:1;pointer-events:auto}.roadmap-board{width:min(1180px,100%);margin:0 auto;padding:52px 46px 58px;border:1px solid var(--line-strong);border-radius:4px;background:#fdfcf8b8;box-shadow:var(--shadow-md)}.roadmap-title{position:relative;z-index:1;display:grid;place-items:center;min-height:62px;text-align:center}.roadmap-title h1{position:relative;margin:0;font-family:Songti SC,STSong,"Noto Serif SC",Georgia,serif;font-size:clamp(22px,2.4vw,30px);font-weight:500;line-height:1.1;letter-spacing:0}.roadmap-title h1:after{content:"";display:block;width:32px;height:1px;margin:14px auto 0;background:#252520b8}.roadmap-flow{position:relative;padding:30px 0 6px}.roadmap-flow:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;border-radius:999px;background:linear-gradient(180deg,var(--blue) 0%,var(--blue) 30%,var(--green) 58%,var(--amber) 78%,var(--coral) 100%);transform:translate(-50%)}.roadmap-stage{--connector-width: 46px;--accent: var(--gray);position:relative;display:grid;grid-template-columns:minmax(0,1fr) 170px minmax(0,1fr);align-items:center;gap:54px;min-height:128px;padding:12px 0;opacity:0;transform:translateY(10px);animation:stage-in .46s ease forwards;animation-delay:calc(var(--stage-index) * 48ms);content-visibility:auto;contain-intrinsic-size:142px}.roadmap-stage:not(.is-empty):before{content:"";position:absolute;top:50%;width:var(--connector-width);border-top:2px dotted color-mix(in srgb,var(--accent) 72%,transparent);transform:translateY(-50%)}.roadmap-stage:not(.is-empty):after{content:"";position:absolute;top:50%;width:5px;height:5px;border:1px solid color-mix(in srgb,var(--accent) 82%,transparent);border-radius:50%;background:var(--paper-soft);transform:translate(-50%,-50%)}.roadmap-stage.is-left:not(.is-empty):before{left:calc(50% - 85px - var(--connector-width))}.roadmap-stage.is-left:not(.is-empty):after{left:calc(50% - 85px - var(--connector-width))}.roadmap-stage.is-right:not(.is-empty):before{right:calc(50% - 85px - var(--connector-width))}.roadmap-stage.is-right:not(.is-empty):after{left:calc(50% + 85px + var(--connector-width))}.roadmap-stage.has-intro:not(.is-empty):before,.roadmap-stage.has-intro:not(.is-empty):after{display:none}body[data-intro-drawer-open=true] .roadmap-board{filter:saturate(.82) brightness(.88);transition:filter .26s ease}.stage-side{min-width:0}.stage-panel:empty{min-height:1px}.stage-spine{position:relative;z-index:2;display:grid;place-items:center}.stage-spine:before,.stage-spine:after{content:"";position:absolute;left:50%;width:5px;height:5px;border-radius:50%;background:color-mix(in srgb,var(--accent) 82%,#f7f5ef);transform:translate(-50%)}.stage-spine:before{top:-4px}.stage-spine:after{bottom:-4px}.stage-node{appearance:none;display:flex;align-items:center;justify-content:center;width:min(150px,100%);min-height:54px;padding:12px 18px;border:1px solid var(--line-strong);border-radius:6px;background:linear-gradient(180deg,#ffffffc2,#eeeae2c2),var(--paper-soft);box-shadow:0 1px #fffc inset,0 10px 26px #27231c14;color:var(--ink);font-size:18px;font-weight:680;line-height:1.1;letter-spacing:0;text-align:center}.stage-node-button{cursor:pointer;font-family:inherit;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.stage-node-button:hover{border-color:color-mix(in srgb,var(--accent) 62%,var(--line-strong));box-shadow:0 1px #fffc inset,0 14px 32px #27231c1a;transform:translateY(-1px)}.stage-node-button:focus{outline:none}.stage-node-button:focus-visible{box-shadow:0 1px #fffc inset,0 0 0 4px #345f8629,0 10px 26px #27231c14}.tone-blue{--accent: var(--blue)}.tone-green{--accent: var(--green)}.tone-amber{--accent: var(--amber)}.tone-coral{--accent: var(--coral)}.tone-gray{--accent: var(--gray)}.roadmap-stage:has(.tone-blue){--accent: var(--blue)}.roadmap-stage:has(.tone-green){--accent: var(--green)}.roadmap-stage:has(.tone-amber){--accent: var(--amber)}.roadmap-stage:has(.tone-coral){--accent: var(--coral)}.is-left .stage-groups{align-items:flex-end}.stage-groups{display:flex;flex-direction:column;gap:8px}.group-card{width:min(320px,100%);padding:16px 20px;border:1px solid var(--line);border-radius:6px;background:var(--card);box-shadow:0 1px #ffffffbf inset,var(--shadow-sm);backdrop-filter:blur(2px)}.group-card h2{margin:0 0 10px;padding-bottom:10px;border-bottom:1px solid var(--line);font-size:15px;font-weight:700;line-height:1.2;text-align:left}.group-description{display:grid;gap:8px;margin:0 0 12px}.group-description p{margin:0;color:#625d55;font-size:12px;font-weight:420;line-height:1.75}.chip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.capability-card{width:min(360px,100%)}.capability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.capability-button{min-height:38px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-radius:4px;background:#faf8f3c7;color:#302d28;cursor:pointer;font:inherit;font-size:13px;font-weight:620;line-height:1.2;text-align:center;transition:border-color .17s ease,box-shadow .17s ease,transform .17s ease}.capability-button:hover{border-color:color-mix(in srgb,var(--accent) 52%,var(--line-strong));box-shadow:0 8px 18px #27231c0d;transform:translateY(-1px)}.capability-button:focus{outline:none}.capability-button:focus-visible{box-shadow:0 0 0 3px #345f8626}.chip-grid span,.resource-details summary,.resource-list a,.resource-link-unavailable{min-height:34px;border:1px solid var(--line);border-radius:4px;background:#faf8f3bd}.chip-grid span{display:inline-flex;align-items:center;justify-content:center;padding:6px 8px;color:#37342f;font-size:12px;font-weight:520;line-height:1.2;text-align:center}.resource-details{display:grid;gap:6px}.resource-reveal{height:0;overflow:hidden;opacity:0;transform:translateY(-4px);transition:height .28s cubic-bezier(.22,1,.36,1),opacity .22s ease,transform .26s cubic-bezier(.22,1,.36,1)}.resource-details[open] .resource-reveal{height:auto;opacity:1;transform:translateY(0)}.resource-details.is-animating .resource-reveal,.resource-details.is-closing .resource-reveal{overflow:hidden;transition:none}.resource-details.is-closing .resource-reveal{opacity:0;transform:translateY(-4px)}.resource-details summary{display:flex;align-items:center;justify-content:center;padding:6px 10px;color:#2d2b27;cursor:pointer;font-size:13px;font-weight:650;list-style:none;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.resource-details summary::-webkit-details-marker{display:none}.resource-details summary:after{content:"+";margin-left:8px;color:#37342f;font-size:13px;line-height:1;transition:transform .22s ease}.resource-details[open] summary{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));background:#f6f3ece0;box-shadow:0 8px 18px #27231c0a}.resource-details[open] summary:after{content:"-";transform:rotate(180deg)}.resource-details summary:hover{border-color:var(--line-strong);transform:translateY(-1px)}.resource-details summary:focus{outline:none}.resource-details summary:focus-visible{box-shadow:0 0 0 3px #345f8626}.resource-list{display:grid;gap:6px;margin:6px 0 0;padding:0;list-style:none}.resource-list a,.resource-link-unavailable{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 12px 12px 14px;background:#fffefadb;color:#302d28;font-size:13px;font-weight:560;line-height:1.35}.resource-link-content{display:grid;gap:7px;min-width:0}.resource-link-title{color:#24251f;font-size:13px;font-weight:680;line-height:1.35}.resource-link-note{color:#69635a;font-size:12px;font-weight:430;line-height:1.7}.resource-list a{transition:border-color .17s ease,box-shadow .17s ease,transform .17s ease}.resource-list a:hover{border-color:var(--line-strong);box-shadow:0 8px 18px #27231c0d;transform:translateY(-1px)}.resource-list svg{flex:0 0 auto;margin-top:2px;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.resource-link-unavailable{color:var(--muted)}.intro-popover{position:fixed;z-index:30;top:0;right:0;bottom:0;width:clamp(420px,36vw,680px);overflow:hidden;border:0;border-left:1px solid var(--line);border-radius:0;background:#fdfcf8f7;box-shadow:none;opacity:0;pointer-events:none;transform:translate(100%);transform-origin:right center;transition:opacity .22s ease,transform .42s cubic-bezier(.22,1,.36,1),box-shadow .26s ease;backdrop-filter:blur(8px)}.intro-popover.is-open{box-shadow:-1px 0 #ffffffb8 inset,-28px 0 80px #27231c24;opacity:1;pointer-events:auto;transform:translate(0)}.intro-popover-close{position:absolute;top:12px;right:12px;z-index:2;display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;background:#faf8f3c7;color:var(--ink);cursor:pointer;font:inherit;font-size:18px;line-height:1;transition:border-color .16s ease,background .16s ease,transform .16s ease}.intro-popover-close:hover{border-color:var(--line-strong);background:var(--paper-soft);transform:translateY(-1px)}.intro-popover-body{display:grid;gap:26px;height:100%;overflow:auto;overscroll-behavior:contain;padding:62px 34px 42px}.intro-section{display:grid;gap:12px}.intro-section h2{margin:0 0 4px;color:#24251f;font-size:19px;font-weight:690;line-height:1.25}.intro-section p{margin:0;color:#565149;font-size:15px;font-weight:410;line-height:1.9}.intro-section .intro-lead{margin:2px 0 4px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--blue) 20%,var(--line));border-radius:8px;background:#f5f9fcd1;color:#283747;font-size:16px;font-weight:560;line-height:1.75}.intro-overview .intro-lead{padding:0;border:0;background:transparent;color:#565149;font-size:15px;font-weight:430;line-height:1.85}.intro-popover .stage-groups{gap:18px}.intro-popover .group-card{width:100%;padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none}.intro-popover .group-description p{color:#625d55;font-size:14px;line-height:1.85}.resource-inline{margin-top:4px}@keyframes stage-in{to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:960px){.page-shell{padding:10px 10px 36px}.roadmap-board{padding:28px 14px 34px}.roadmap-title{place-items:start;min-height:54px;padding-left:34px;text-align:left}.roadmap-title h1:after{margin-left:0}.roadmap-flow{padding:20px 0 0 34px}.roadmap-flow:before{left:8px;width:2px}.roadmap-stage{display:block;min-height:0;padding:12px 0 14px}.roadmap-stage:not(.is-empty):before{left:-26px;right:auto;width:26px;border-top-width:1px}.roadmap-stage:not(.is-empty):after{left:-26px}.stage-spine{display:block;margin-bottom:8px}.stage-spine:before,.stage-spine:after{display:none}.stage-node{width:min(180px,100%);min-height:38px;font-size:14px}.stage-panel:empty{display:none}.is-left .stage-groups,.stage-groups{align-items:stretch}.group-card{width:100%}.intro-popover{width:100vw}.intro-popover-body{max-height:none}}@media(max-width:520px){.roadmap-board{border-radius:3px}.roadmap-title h1{font-size:20px}.chip-grid{grid-template-columns:1fr 1fr}}
