.stack-page{--stack-blue: #7170FF;--stack-green: #828FFF;--stack-red: #FF6B6B;--stack-amber: #828FFF;--stack-line: rgba(113, 112, 255, .28);--stack-dash: rgba(113, 112, 255, .4);--stack-cta-fg: #08090A}.map-link{stroke:var(--stack-blue)}.map-link.is-warn{stroke:var(--stack-amber)}.map-arrowhead{fill:var(--stack-blue)}.stack-hero{display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:40px;align-items:center;padding:24px 0 48px;border-bottom:1px solid var(--border)}.stack-kicker,.section-kicker,.metric-label,.node-type,.route-verb,.tool-chip{font-family:var(--mono)}.stack-kicker{display:inline-flex;align-items:center;gap:8px;color:var(--stack-blue);font-size:var(--text-meta);font-weight:700;margin-bottom:18px}.stack-kicker:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--stack-blue)}.stack-hero h1{max-width:620px;font-size:var(--text-h1);line-height:1.02;margin:0;color:var(--fg)}.stack-lead{max-width:620px;margin-top:22px;font-size:var(--text-lead);line-height:1.72;color:var(--fg-dim)}.stack-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.stack-button{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border:1px solid var(--fg);border-radius:var(--radius-btn);color:var(--fg);font-size:var(--text-desc);font-weight:700;text-decoration:none}.stack-button:hover{color:var(--fg);text-decoration:none;background:var(--bg-elev)}.stack-button.primary{border-color:var(--stack-blue);background:var(--stack-blue);color:var(--stack-cta-fg)}.stack-button.primary:hover{color:var(--stack-cta-fg);background:var(--accent-dim)}.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:34px}.metric{min-height:98px;border:1px solid var(--border);border-radius:var(--radius-btn);padding:14px;background:var(--bg-elev)}.metric strong{display:block;color:var(--fg);font-size:var(--text-h2);line-height:1}.metric span{display:block;margin-top:6px;color:var(--fg-dim);font-size:var(--text-meta)}.metric-label{margin-top:12px;color:var(--fg-mute);font-size:var(--text-badge)}.system-map{position:relative;min-height:560px;border:1px solid var(--border);border-radius:var(--radius-btn);background:linear-gradient(var(--stack-line) 1px,transparent 1px),linear-gradient(90deg,var(--stack-line) 1px,transparent 1px),var(--bg-elev);background-size:42px 42px;overflow:hidden}.system-map:before{content:"";position:absolute;inset:42px;border:1px dashed var(--stack-dash);border-radius:var(--radius-btn);pointer-events:none}.map-title{position:absolute;top:22px;left:22px;color:var(--fg);font-size:var(--text-desc);font-weight:700}.map-caption{position:absolute;left:22px;bottom:20px;max-width:340px;color:var(--fg-dim);font-size:var(--text-meta);line-height:var(--leading-desc)}.map-svg{position:absolute;inset:0;width:100%;height:100%}.map-node{position:absolute;width:138px;min-height:74px;border:1px solid var(--border);border-radius:var(--radius-btn);padding:10px 12px;background:var(--bg);box-shadow:0 14px 28px var(--shadow)}.map-node.hub{width:162px;min-height:88px;border-color:var(--stack-blue);background:var(--accent-bg)}.map-node .map-icon{display:block;font-size:var(--text-h2);line-height:1}.map-node strong{display:block;margin-top:7px;color:var(--fg);font-size:var(--text-desc)}.map-node span{display:block;margin-top:2px;color:var(--fg-mute);font-family:var(--mono);font-size:var(--text-badge)}.map-node.mac{left:34px;top:148px}.map-node.notebook{right:34px;top:148px}.map-node.phone{left:50%;bottom:82px;transform:translate(-50%)}.map-node.hub{left:50%;top:236px;transform:translate(-50%)}.stack-section{padding:54px 0 0}.section-head{display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,1fr);gap:28px;align-items:end;margin-bottom:22px}.section-kicker{color:var(--stack-blue);font-size:var(--text-meta);font-weight:700}.section-head h2{margin-top:6px;color:var(--fg);font-size:var(--text-h2);line-height:1.18}.section-head p{color:var(--fg-dim);font-size:var(--text-body);line-height:var(--leading-body)}.layer-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);border-radius:var(--radius-btn);overflow:hidden}.layer-card{min-height:208px;padding:20px;background:var(--bg-elev)}.layer-card+.layer-card{border-left:1px solid var(--border)}.layer-card .eyebrow{color:var(--stack-blue);font-family:var(--mono);font-size:var(--text-badge);font-weight:700}.layer-card h3{margin-top:16px;color:var(--fg);font-size:var(--text-h3);line-height:1.3}.layer-card p{margin-top:12px;color:var(--fg-dim);font-size:var(--text-desc);line-height:var(--leading-body)}.node-roster{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.node-card{border:1px solid var(--border);border-radius:var(--radius-btn);padding:18px;background:var(--bg-elev)}.node-top{display:flex;align-items:flex-start;gap:12px}.node-icon{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-btn);background:var(--bg);font-size:var(--text-h3);flex:0 0 auto}.node-card h3{color:var(--fg);font-size:var(--text-h3);line-height:var(--leading-h1)}.node-type{display:inline-block;margin-top:4px;color:var(--stack-blue);font-size:var(--text-badge);font-weight:700}.node-meta{margin-top:16px;color:var(--fg-mute);font-family:var(--mono);font-size:var(--text-badge);line-height:1.6;word-break:break-word}.node-role{margin-top:14px;padding-top:14px;border-top:1px solid var(--border-soft);color:var(--fg-dim);font-size:var(--text-desc);line-height:var(--leading-body)}.tag-row,.tool-stack{display:flex;flex-wrap:wrap;gap:7px}.tag-row{margin-top:14px}.tag{padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-btn);background:var(--bg);color:var(--fg-dim);font-family:var(--mono);font-size:var(--text-badge)}.route-board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.route-step{position:relative;min-height:188px;border:1px solid var(--border);border-radius:var(--radius-btn);padding:18px;background:var(--bg-elev)}.route-step:after{content:"";position:absolute;top:44px;right:-13px;width:12px;height:1px;background:var(--border)}.route-step:last-child:after{display:none}.route-index{color:var(--stack-blue);font-size:var(--text-h2);font-weight:800;line-height:1}.route-line{margin-top:16px;color:var(--fg);font-size:var(--text-body);font-weight:700;line-height:1.45}.route-verb{display:block;margin:6px 0;color:var(--stack-amber);font-size:var(--text-badge)}.route-step p{margin-top:12px;color:var(--fg-dim);font-size:var(--text-desc);line-height:var(--leading-desc)}.tool-panel{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px;align-items:start;border:1px solid var(--border);border-radius:var(--radius-btn);padding:24px;background:var(--bg-elev)}.tool-panel h2{color:var(--fg);font-size:var(--text-h2);line-height:var(--leading-h1)}.tool-panel p{margin-top:12px;color:var(--fg-dim);font-size:var(--text-desc);line-height:var(--leading-body)}.tool-chip{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-btn);background:var(--bg);color:var(--fg);font-size:var(--text-badge)}.stack-back{display:inline-flex;margin-top:36px;color:var(--fg-dim);font-size:var(--text-desc);text-decoration:none}.stack-back:hover{color:var(--fg)}@media(max-width:960px){.stack-hero,.section-head,.tool-panel{grid-template-columns:1fr}.system-map{min-height:520px}.metric-strip,.layer-grid,.route-board{grid-template-columns:repeat(2,1fr)}.layer-card+.layer-card{border-left:0;border-top:1px solid var(--border)}.layer-card:nth-child(2){border-top:0;border-left:1px solid var(--border)}.node-roster{grid-template-columns:repeat(2,1fr)}.route-step:after{display:none}}@media(max-width:640px){.stack-hero{gap:28px;padding-top:6px}.stack-lead{font-size:16px}.layer-grid,.node-roster,.route-board{grid-template-columns:1fr}.metric-strip{grid-template-columns:repeat(2,1fr)}.layer-card:nth-child(2){border-left:0;border-top:1px solid var(--border)}.system-map{min-height:660px}.map-node,.map-node.hub{width:132px;min-height:70px}.map-node.mac{left:18px;top:130px}.map-node.notebook{right:18px;top:130px}.map-node.hub{top:240px}.map-node.phone{bottom:105px}.map-caption{right:18px;max-width:none}}
