@font-face{font-family:Departure Mono;src:url(https://cdn.jsdelivr.net/gh/nicholasboyce/departuremono@main/fonts/DepartureMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{color-scheme:light;--bg: #f4f4f4;--surface: #f4f4f4;--text: #121620;--muted: #4f5868;--border: #c8c8c0;--accent: #1d56ff;--accent-soft: #f1f4ff;--shadow: 0 10px 24px rgba(16, 20, 30, .08);--font-sans: "Departure Mono", "Source Sans 3", system-ui, -apple-system, sans-serif;--font-serif: "Departure Mono", "Source Serif 4", "Georgia", serif;--font-mono: "Departure Mono", "IBM Plex Mono", "SFMono-Regular", monospace;--radius: 14px;--container: 1180px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 72px}*{box-sizing:border-box}body{margin:0;font-family:var(--font-serif);color:var(--text);background:var(--bg);line-height:1.7}img{max-width:100%}a{color:inherit;text-decoration:none}.container{width:min(100% - 80px,var(--container));margin:0 auto}.site-header{padding:var(--space-6) 0;border-bottom:none;background:var(--bg)}.site-header .container{width:min(100% - 40px,1400px)}.header-hero{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-5) 0 var(--space-4)}.header-left{display:flex;align-items:center}.header-title-box{background:transparent;border:none;padding:0;display:inline-block}.pixel-title{font-family:"Press Start 2P",var(--font-mono);font-size:clamp(28px,4.5vw,48px);color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:0;line-height:1.4;font-weight:400;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.pixel-subtitle{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:12px 0 0}.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.header-nav-link{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text);text-decoration:none;transition:opacity .2s ease}.header-nav-link:hover{opacity:.7}.nav-icon{font-size:12px;line-height:1}.header-right{font-family:var(--font-serif);font-size:14px;color:var(--muted);text-align:right;line-height:1.5;max-width:320px;margin-left:auto}.header-right p{margin:0 0 6px}.header-right a{color:var(--muted);border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}.header-right a:hover{color:var(--accent);border-color:var(--accent)}.header-right p:last-child{margin-bottom:0}.site-brand{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.brand-mark{display:inline-flex;align-items:center;gap:var(--space-3);font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase}.brand-dot{width:10px;height:10px;border-radius:50%;background:var(--accent)}.brand-meta{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.nav{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:flex-end;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.12em}.nav a{padding-bottom:2px;border-bottom:1px solid transparent;transition:border-color .2s ease,color .2s ease}.nav a:hover{border-color:var(--accent);color:var(--accent)}.section{padding:var(--space-8) 0;border-bottom:1px solid var(--border)}.journey-section{border-bottom:none;padding-bottom:var(--space-5)}.learnings-section{padding-top:var(--space-5);border-bottom:none}.section-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.display{font-family:var(--font-serif);font-weight:600;font-size:clamp(40px,4.6vw,58px);margin:0 0 var(--space-4);letter-spacing:-.025em}.hero-title{font-family:var(--font-mono);font-size:clamp(34px,4.4vw,54px);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 var(--space-3);line-height:1.05}.hero-subtitle{font-family:var(--font-serif);font-size:18px;margin:0;color:var(--muted);max-width:520px}h2{font-family:var(--font-serif);font-weight:600;font-size:clamp(26px,3vw,32px);margin:0}h3{font-weight:600;font-size:20px;margin:0 0 var(--space-3)}h4{font-weight:600;font-size:18px;margin:0 0 var(--space-3)}.lede{font-size:18px;color:var(--muted);max-width:520px;margin:0}.eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:var(--accent);margin:0 0 var(--space-3)}.meta{color:var(--muted);font-size:13px;margin:var(--space-2) 0 0}.body{margin:0 0 var(--space-4)}.mono{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:0}.card{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);padding:var(--space-5);box-shadow:none}.button-row{display:flex;gap:var(--space-3);flex-wrap:wrap}.button{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:10px 18px;border-radius:999px;font-size:14px;font-weight:500;cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease,background .2s ease}.button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.button.ghost{background:transparent}.button:hover{transform:translateY(-1px);box-shadow:0 8px 20px #0a0a0a1f}.text-link{color:var(--accent);font-weight:500;display:inline-flex;gap:var(--space-2)}.text-link:after{content:"→";transition:transform .2s ease}.text-link:hover:after{transform:translate(4px)}.resume-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4)}.divider{height:1px;background:var(--border);margin:var(--space-6) 0}.content-block{margin-bottom:var(--space-7)}.timeline-item{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-3)}.list{margin:0;padding-left:18px;color:var(--text)}.list li{margin-bottom:var(--space-3)}.site-footer{padding:var(--space-6) 0;background:#121620;color:#fffc}.site-footer .meta{color:#ffffffb3}.footer-grid{display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.hero{padding:var(--space-6) 0 var(--space-6);border-top:none}.hero-grid{display:grid;gap:var(--space-7);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start;padding-bottom:var(--space-5);border-bottom:1px dotted var(--border)}.hero-left{display:grid;gap:var(--space-3)}.hero-right{font-family:var(--font-serif);font-size:16px;color:var(--muted);text-align:right}.hero-byline{max-width:360px;margin:0 0 0 auto;line-height:1.6}.hero-body{padding-top:var(--space-6);width:min(100% - 40px,1400px);margin:0 auto}.hero-body a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.hero-body a:hover{text-decoration:none}.dropcap:first-letter{float:left;font-size:3.2em;line-height:.9;padding-right:10px;padding-top:4px;font-family:var(--font-serif);color:var(--text)}.magazine-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-7);align-items:start}.mag-col{display:grid;gap:var(--space-3);align-content:start}.mag-col>:first-child{margin-top:0}.dropcap{margin-top:0}.figure-card{display:grid;gap:var(--space-3)}.figure-label,.figure-meta{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0}.figure-box{border:1px solid var(--border);min-height:180px;display:grid;place-items:center;font-family:var(--font-mono);color:var(--accent);letter-spacing:.18em;text-transform:uppercase;font-size:10px}.diagram-placeholder{background:#0b0b0b;color:#f5f5f5;border-color:#f5f5f5;text-transform:uppercase;letter-spacing:.2em;padding:16px;align-content:center;justify-content:center}.logo-grid{display:flex;align-items:center;justify-content:center;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-4)}.logo-item{display:flex;align-items:center;justify-content:center;background:var(--surface);border-radius:8px;padding:12px 16px;min-width:60px;min-height:48px;transition:transform .2s ease,box-shadow .2s ease;text-decoration:none}.logo-item:hover{transform:scale(1.05);box-shadow:0 4px 12px #fff3}.logo-item img{width:48px;height:48px;object-fit:contain}.logo-text{font-family:var(--font-mono);font-size:14px;font-weight:600;letter-spacing:.08em;color:#0b0b0b;text-transform:uppercase}@media(max-width:480px){.logo-grid{gap:var(--space-3)}.logo-item{padding:10px 12px;min-width:50px;min-height:40px}.logo-item img{width:36px;height:36px}.logo-text{font-size:12px}}.diagram-placeholder span{opacity:.9}.diagram{width:100%;display:grid;gap:10px;font-family:var(--font-mono);letter-spacing:.12em;justify-items:center}.diagram .node{border:1px solid #f5f5f5;padding:6px 10px;text-transform:uppercase;font-size:10px}.diagram .arrow{font-size:12px;opacity:.8}.diagram-loop .diagram-row{display:flex;align-items:center;gap:8px;justify-content:center}.diagram-loop .small{font-size:9px;opacity:.7;text-align:center}.diagram-pull .pull-row{display:grid;grid-template-columns:70px 1fr;gap:8px;align-items:center;width:100%}.diagram-pull .label{font-size:9px;text-transform:uppercase}.diagram-pull .bar{height:6px;border:1px solid #f5f5f5;background:transparent}.diagram-pull .bar.strong{background:#f5f5f5}.diagram-stack .stack-bar{border:1px solid #f5f5f5;padding:6px 10px;font-size:9px;text-align:center}.diagram-stack .stack-bar.strong{background:#f5f5f5;color:#0b0b0b}.diagram-policy{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.diagram-policy .policy-box{border:1px solid #f5f5f5;padding:8px;text-align:center;font-size:9px}.diagram-policy .policy-box.muted{opacity:.6}.diagram-policy .policy-divider{width:14px;height:1px;background:#f5f5f5}.diagram-layers .layer{border:1px solid #f5f5f5;padding:6px 10px;text-align:center;font-size:9px;width:100%}.diagram-pipeline{display:flex;align-items:center;gap:8px;justify-content:center}.diagram-flywheel{display:grid;gap:8px;width:100%}.diagram-flywheel .wheel{border:1px dashed #f5f5f5;padding:8px;text-align:center;font-size:9px}.diagram-forecast{position:relative;min-height:120px;border:1px solid #f5f5f5}.diagram-forecast .forecast-band{position:absolute;top:45%;left:10%;right:10%;height:20%;background:#f5f5f526}.diagram-forecast .forecast-line{position:absolute;left:10%;right:10%;top:55%;height:1px;background:#f5f5f5}.diagram-forecast .forecast-line.strong{top:35%;background:#f5f5f5}.diagram-funnel .funnel-step{border:1px solid #f5f5f5;padding:6px 10px;font-size:9px;text-align:center;width:100%}.diagram-timeline{display:grid;gap:8px;position:relative;width:100%}.diagram-timeline .timeline-line{height:1px;background:#f5f5f5}.diagram-timeline .timeline-node{font-size:9px;border:1px solid #f5f5f5;padding:4px 6px;justify-self:start}.diagram-system .system-row{display:flex;align-items:center;gap:8px;justify-content:center}.emphasis{font-weight:600}.cta-card{display:block;text-decoration:none;transition:transform .2s ease}.cta-card:hover{transform:translateY(-2px)}.cta-card:hover .figure-box{background:var(--accent);border-color:var(--accent)}.hero-project-links{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-4)}.hero-project-link{display:inline-block;padding:12px 20px;border:1px solid #000000;background:#fff;color:#000!important;text-decoration:none;font-family:var(--font-mono);font-size:13px;font-weight:400;text-transform:none;transition:background .2s ease,color .2s ease}.hero-project-link:hover{background:#000;color:#fff!important}.hero-project-link:visited{color:#000!important}.hero-project-link:visited:hover{color:#fff!important}.hero-copy .body{max-width:520px}.hero-side{display:grid;gap:var(--space-5);font-family:var(--font-sans);font-size:14px;color:var(--muted)}.hero-figure{border:1px solid var(--border);padding:var(--space-4);display:grid;gap:6px;font-family:var(--font-mono);letter-spacing:.2em;color:var(--accent);text-align:center}.hero-meta{border-left:2px solid var(--accent);padding-left:var(--space-4)}.hero-meta p{margin:0 0 var(--space-2)}.hero-links{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-5)}.hero-stack{display:grid;gap:var(--space-4)}.hero-note{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4)}.hero-profile{border:1px solid var(--accent);box-shadow:0 10px 30px #1e5bff1f}.journey-title{margin:0 0 var(--space-4);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:600;color:var(--accent)}.journey-timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-7);position:relative;margin-bottom:var(--space-6);padding:var(--space-4) 0}.journey-timeline:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border);transform:translateY(-50%)}.journey-timeline-item{position:relative;display:grid;grid-template-rows:auto auto;gap:var(--space-2);padding-left:18px;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.journey-timeline-item:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--bg);border:1px solid var(--border);box-shadow:0 0 0 2px var(--bg);position:absolute;top:50%;left:0;transform:translateY(-50%)}.journey-label{font-size:13px;letter-spacing:.08em;color:var(--accent);font-weight:600}.journey-date{white-space:nowrap;font-weight:600;color:var(--accent)}.experience-list{display:grid;gap:var(--space-3)}.experience-item{display:grid;gap:2px}.experience-company{font-family:var(--font-serif);font-weight:600;font-size:15px;color:var(--text)}.experience-role{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.experience-summary{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--muted);margin:var(--space-4) 0 0}.experience-heading{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;margin:0 0 var(--space-3)}.experience-goals{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.experience-goals li{font-family:var(--font-serif);font-size:15px;color:var(--text);padding-left:16px;position:relative}.experience-goals li:before{content:"→";position:absolute;left:0;color:var(--accent)}.experience-cta{font-family:var(--font-serif);font-size:14px;color:var(--muted);margin:var(--space-4) 0 0;font-style:italic}.faq-section{padding:var(--space-7) 0;border-bottom:none}.faq-section .container{width:min(100% - 40px,1400px)}.faq-title{font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:600;margin:0 0 var(--space-5)}.faq-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--space-6);align-items:stretch}.faq-questions{display:flex;flex-direction:column;gap:var(--space-2)}.faq-question{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;padding:var(--space-3) 0;background:none;border:none;border-bottom:1px solid var(--border);font-family:var(--font-serif);font-size:15px;font-weight:600;color:var(--muted);text-align:left;cursor:pointer;transition:color .2s ease}.faq-question:hover,.faq-question.active{color:var(--text)}.faq-arrows{display:flex;gap:var(--space-2);font-family:var(--font-mono);font-size:14px;color:var(--muted)}.faq-arrow{cursor:pointer;transition:color .2s ease}.faq-arrow:hover{color:var(--accent)}.faq-answer-panel{background:var(--surface);border:1px solid var(--border);padding:var(--space-5);display:flex;flex-direction:column;height:100%}.faq-answer-in{display:flex;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border);margin-bottom:var(--space-4)}.faq-answer-out{display:flex;gap:var(--space-4)}.faq-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex-shrink:0;padding-top:2px}.faq-answer-question{font-family:var(--font-mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}.faq-answer-text{font-family:var(--font-serif);font-size:16px;line-height:1.7;color:var(--text)}@media(max-width:768px){.faq-grid{grid-template-columns:1fr;gap:var(--space-5)}.header-hero{flex-direction:column;gap:var(--space-5);align-items:flex-start}.header-right{align-items:flex-start}.header-title-box{padding:10px 16px}.pixel-title{font-size:clamp(20px,4vw,28px)}}.journey-map-section{padding:var(--space-7) 0;border-bottom:none}.journey-map-section .container{width:min(100% - 40px,1400px)}.skills-section{padding:var(--space-5) 0;border-bottom:none}.skills-section .container{width:min(100% - 40px,1400px)}.tools-section{padding:var(--space-6) 0;border-bottom:none}.tools-section .container{width:min(100% - 40px,1400px)}.learnings-section{padding:var(--space-6) 0;border-bottom:none}.learnings-section .container{width:min(100% - 40px,1400px)}.learnings-grid{display:block}.learnings-group{margin-bottom:0}.learnings-group:last-child{margin-bottom:0}.learnings-list{list-style:none;margin:0;padding:0 0 0 24px;column-count:3;column-gap:80px;column-fill:balance}.learnings-item{position:relative;margin:0 0 20px;break-inside:avoid;page-break-inside:avoid;-webkit-column-break-inside:avoid}.learnings-item:last-child{margin-bottom:0}.learnings-item:before{content:"•";position:absolute;left:-18px;top:2px;color:#000;font-weight:700;font-size:14px;line-height:1}.learnings-link{display:flex;align-items:baseline;gap:10px;text-decoration:none;color:inherit;transition:color .15s ease}.learnings-link:hover .learnings-title{color:#555}.learnings-link:hover .learnings-leader{border-bottom-color:#888}.learnings-link:hover .learnings-meta{color:#555}.learnings-title{font-family:"Source Serif 4","Source Serif Pro",Georgia,Times New Roman,serif;font-size:16px;font-weight:300;line-height:1.4;color:#1a1a1a;flex-shrink:1;transition:color .15s ease}.learnings-leader{flex:1;border-bottom:1px dotted #cccccc;align-self:end;margin-bottom:5px;min-width:16px;transition:border-color .2s ease}.learnings-meta{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#999;flex-shrink:0;white-space:nowrap;transition:color .2s ease}@media(max-width:1024px){.learnings-list{column-count:2;column-gap:56px}}@media(max-width:640px){.learnings-list{column-count:1}}.section-divider{padding:var(--space-5) 0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;color:var(--border);overflow:hidden;white-space:nowrap}.section-divider-header{padding-top:0;margin-top:calc(var(--space-5) * -1)}.section-divider:before,.section-divider:after{content:"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░";flex-shrink:0}.section-divider span{color:var(--muted);padding:0 var(--space-4);flex-shrink:0}.writings-section{padding:var(--space-6) 0}.writings-section .container{width:min(100% - 40px,1400px)}.writings-link{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5);background:var(--surface);color:var(--accent);text-decoration:none;border:1px solid var(--border);transition:background .2s ease,transform .2s ease,border-color .2s ease}.writings-link:hover{background:var(--accent-soft);border-color:var(--accent);transform:translateY(-2px)}.writings-title{font-family:"Press Start 2P",var(--font-mono);font-size:clamp(14px,2vw,20px);letter-spacing:.08em;text-transform:uppercase}.writings-arrow{font-size:20px;transition:transform .2s ease}.writings-link:hover .writings-arrow{transform:translate(4px)}.toc{list-style:none;margin:0;padding:0}.toc-group{border-bottom:1px solid var(--border);padding:var(--space-5) 0}.toc-group:last-child{border-bottom:none}.toc-group-title{display:inline-flex;font-family:var(--font-sans);font-weight:600;color:var(--text);margin-bottom:var(--space-4)}.toc-group ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}.toc-item{display:flex;justify-content:space-between;gap:var(--space-4);font-family:var(--font-sans);font-size:15px;color:var(--text);padding-bottom:var(--space-2);border-bottom:1px dotted var(--border)}.toc-item span:first-child{max-width:75%}.toc-item:hover{color:var(--accent)}.toc-meta{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.toc-title{margin:0 0 var(--space-4);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:600;color:var(--accent)}.toc-timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-7);position:relative;margin-bottom:var(--space-6);padding:var(--space-4) 0}.toc-timeline:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border);transform:translateY(-50%)}.toc-timeline-item{position:relative;display:grid;grid-template-rows:auto auto;gap:var(--space-2);padding-left:18px}.toc-timeline-item:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--bg);border:1px solid var(--border);box-shadow:0 0 0 2px var(--bg);position:absolute;top:50%;left:0;transform:translateY(-50%)}.toc-timeline-item .toc-meta{font-weight:600}.toc-spacer{height:1em}.toc-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-7)}.topics-row{grid-template-columns:repeat(3,minmax(0,1fr))}.topics-row+.topics-row{margin-top:var(--space-7)}.toc-block-title{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin:0 0 var(--space-4)}.topics-section .toc-block-title{color:var(--accent);font-weight:600}.toc-more{margin-top:var(--space-3)}.toc-more summary{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:var(--space-2);transition:color .2s ease,transform .2s ease}.toc-more summary:before{content:"+";font-size:12px;font-weight:400;transition:transform .2s ease}.toc-more[open] summary:before{content:"−"}.toc-more summary::marker,.toc-more summary::-webkit-details-marker{display:none}.toc-more summary:hover{color:var(--accent);transform:translate(2px)}.toc-more-link{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-decoration:none;margin-top:var(--space-3);padding-top:var(--space-2);transition:color .2s ease,transform .2s ease}.toc-more-link:hover{color:var(--accent)}.toc-more ul{list-style:none;margin:var(--space-3) 0 0;padding:0;display:grid;gap:var(--space-3);animation:fadeSlideIn .25s ease}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.toc-block ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}.toc-block li{border-bottom:1px dotted var(--border);padding-bottom:var(--space-2)}.toc-link{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-3);font-family:var(--font-serif);font-size:15px;color:var(--text);text-decoration:none}.toc-link:hover{color:var(--accent)}.toc-link span:last-child{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.chapter-body{background:var(--bg);color:var(--text)}.chapter-layout{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:var(--space-7);padding:var(--space-7) 0 var(--space-8)}.chapter-nav{font-family:var(--font-serif);font-size:14px;color:var(--muted);line-height:1.7;background:var(--bg);border-right:1px dotted var(--border);padding-right:var(--space-5);position:sticky;top:32px;align-self:start;max-height:calc(100vh - 64px);overflow:auto}.chapter-nav a{color:inherit;text-decoration:none}.chapter-nav a:hover{color:var(--accent)}.nav-section{margin-bottom:var(--space-4);border-bottom:1px dotted var(--border);padding-bottom:var(--space-4)}.nav-section:last-of-type{border-bottom:none}.nav-section-toggle{display:flex;align-items:center;gap:var(--space-2);width:100%;background:none;border:none;padding:var(--space-2) 0;font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700;cursor:pointer;text-align:left;transition:color .2s ease}.nav-section-toggle:hover{color:var(--text)}.nav-section-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:400;transition:transform .2s ease}.nav-section-content{display:none;padding-top:var(--space-2)}.nav-section-content.open{display:block;animation:fadeSlideIn .2s ease}.chapter-nav-group{margin-bottom:var(--space-2)}.nav-group-toggle{display:flex;align-items:center;gap:var(--space-2);width:100%;background:none;border:none;padding:var(--space-2) 0;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text);font-weight:600;cursor:pointer;text-align:left;transition:color .2s ease}.nav-group-toggle:hover{color:var(--accent)}.nav-group-icon{width:14px;height:14px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:400;color:var(--muted);transition:transform .2s ease,color .2s ease}.nav-group-toggle:hover .nav-group-icon{color:var(--accent)}.nav-group-list{list-style:none;margin:0;padding:0 0 0 var(--space-4);display:none}.nav-group-list.open{display:grid;gap:var(--space-2);padding-top:var(--space-2);padding-bottom:var(--space-2);animation:fadeSlideIn .2s ease}.nav-group-list li{padding:var(--space-1) 0}.chapter-nav-item{display:block;padding:2px 0;transition:color .15s ease,transform .15s ease}.chapter-nav-item:hover{transform:translate(4px)}.chapter-nav-item.active{color:var(--accent);font-weight:600}.chapter-back{display:inline-flex;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-5);text-decoration:none}.chapter-back:hover{color:var(--text)}.chapter-main{font-family:var(--font-serif);font-size:16px;line-height:1.8;background:var(--surface);padding:var(--space-5);border:1px solid var(--border)}.chapter-meta{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 var(--space-4)}.chapter-title{font-size:clamp(28px,3.4vw,40px);margin:0 0 var(--space-3)}.chapter-subtitle{font-size:18px;color:var(--muted);margin:0 0 var(--space-4)}.chapter-divider{font-family:var(--font-mono);letter-spacing:.2em;color:var(--muted);margin:0 0 var(--space-5)}.chapter-figure{margin:0 0 var(--space-6)}.chapter-figure .figure-box{min-height:260px}.chapter-figure figcaption{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:var(--space-2)}.chapter-section-title{font-size:20px;margin:var(--space-6) 0 var(--space-3)}.tag-row,.pill-grid{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tag,.pill{font-size:12px;padding:6px 12px;border-radius:999px;background:transparent;color:var(--accent);border:1px solid rgba(30,91,255,.35)}@media(max-width:1024px){.container{width:min(100% - 48px,var(--container))}.magazine-grid,.toc-columns{grid-template-columns:repeat(2,1fr);gap:var(--space-5)}.topics-row{grid-template-columns:repeat(2,1fr)!important}.chapter-layout{grid-template-columns:minmax(200px,260px) minmax(0,1fr);gap:var(--space-5)}.hero-grid{gap:var(--space-5)}}@media(max-width:768px){.container{width:min(100% - 32px,var(--container))}.header-hero{grid-template-columns:1fr;gap:var(--space-4);padding:var(--space-4) 0}.header-right{text-align:left;max-width:none;margin-left:0}.top-bar{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.nav{justify-content:flex-start;width:100%}.hero{padding:var(--space-5) 0}.hero-grid{grid-template-columns:1fr}.hero-right{text-align:left}.magazine-grid{grid-template-columns:1fr;gap:var(--space-5)}.hero-project-links{flex-direction:column;gap:var(--space-2)}.hero-project-link{width:100%;text-align:center}.section{padding:var(--space-6) 0}.section-header{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.journey-timeline{grid-template-columns:1fr;gap:var(--space-3);padding:var(--space-3) 0}.journey-timeline:before{left:4px;right:auto;height:100%;width:1px;top:0;transform:none}.journey-timeline-item{padding-left:var(--space-5)}.journey-timeline-item:before{top:8px;transform:none}.toc-columns{grid-template-columns:1fr;gap:var(--space-5)}.topics-row{grid-template-columns:1fr!important}.toc-timeline{grid-template-columns:1fr;gap:var(--space-3);padding:var(--space-3) 0}.toc-timeline:before{left:4px;right:auto;height:100%;width:1px;top:0}.toc-timeline-item{padding-left:var(--space-5)}.chapter-layout{grid-template-columns:1fr;padding:var(--space-5) 0 var(--space-6)}.chapter-nav{position:static;border-right:none;border-bottom:1px dotted var(--border);padding-right:0;padding-bottom:var(--space-5);max-height:none;overflow:visible}.chapter-main{padding:var(--space-4)}.timeline-item{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.figure-card{gap:var(--space-2)}.figure-box{min-height:140px}.chapter-figure .figure-box{min-height:180px}.footer-grid{flex-direction:column;gap:var(--space-2)}}@media(max-width:480px){:root{--space-7: 36px;--space-8: 48px}.container{width:min(100% - 24px,var(--container))}.site-header{padding:var(--space-4) 0}.pixel-title{font-size:clamp(18px,5vw,28px)}.pixel-subtitle{font-size:10px;letter-spacing:.14em}.brand-mark{font-size:11px}.nav{gap:var(--space-3);font-size:11px}.display{font-size:clamp(28px,8vw,40px)}.hero-title{font-size:clamp(24px,7vw,40px)}h2{font-size:clamp(22px,5vw,28px)}.dropcap:first-letter{font-size:2.6em;padding-right:8px}.hero-project-link{font-size:12px;padding:10px 16px}.body,.lede{font-size:16px}.chapter-title{font-size:clamp(22px,6vw,32px)}.chapter-subtitle{font-size:16px}.chapter-main{padding:var(--space-3);font-size:15px}.chapter-section-title{font-size:18px}.toc-link{font-size:14px;gap:var(--space-2)}.toc-link span:last-child{font-size:10px}.toc-block-title{font-size:11px}.journey-title,.toc-title,.journey-label{font-size:12px}.journey-date{font-size:10px}.button{padding:8px 14px;font-size:13px}.button-row{flex-direction:column;width:100%}.button-row .button{width:100%;text-align:center}.tag,.pill{font-size:11px;padding:5px 10px}.nav-section-toggle{font-size:11px}.nav-group-toggle{font-size:10px}.chapter-nav-item{font-size:13px}.toc-more summary{font-size:10px}.meta{font-size:12px}.site-footer{padding:var(--space-5) 0}}@media(max-width:360px){.container{width:min(100% - 16px,var(--container))}.pixel-title{font-size:16px;letter-spacing:.04em}.pixel-subtitle{font-size:9px}.chapter-main{padding:var(--space-2)}.nav-section-toggle,.nav-group-toggle{font-size:10px;letter-spacing:.1em}}@media(max-height:500px)and (orientation:landscape){.hero{padding:var(--space-4) 0}.section{padding:var(--space-5) 0}.chapter-nav{max-height:calc(100vh - 100px);overflow-y:auto}}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.brand-dot{box-shadow:0 0 0 .5px var(--accent)}}@media(hover:hover)and (pointer:fine){.chapter-nav-item:hover{transform:translate(4px)}.toc-link:hover{color:var(--accent)}.button:hover{transform:translateY(-1px);box-shadow:0 8px 20px #0a0a0a1f}}@media(hover:none){.chapter-nav-item:hover,.button:hover{transform:none}.toc-more summary:hover{transform:none}}@media print{.site-header,.site-footer,.chapter-nav,.nav-section,.toc-more{display:none}.chapter-layout{grid-template-columns:1fr}.chapter-main{border:none;padding:0}.container{width:100%;max-width:none}}.making-software-layout{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);background:#fafafa;color:#000;min-height:100vh;min-height:100dvh;width:100%;overflow-x:clip;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}.making-software-layout *{box-sizing:border-box}.making-software-layout .ms-top-header{position:sticky;top:0;background:#fafafa;border-bottom:1px solid #e5e5e5;z-index:100;width:100%;transform:translateZ(0);will-change:transform;backface-visibility:hidden}.making-software-layout .ms-top-header-content{max-width:1400px;margin:0 auto;padding:16px 40px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:40px;width:min(100% - 80px,1400px);box-sizing:border-box}.making-software-layout .ms-top-header-left{flex-shrink:0}.making-software-layout .ms-top-header-title{font-size:20px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#000;text-decoration:none;white-space:nowrap;word-wrap:break-word;overflow-wrap:break-word}.making-software-layout .ms-top-header-center{display:flex;justify-content:center;align-items:center}.making-software-layout .ms-top-breadcrumb{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.making-software-layout .ms-top-breadcrumb a{color:var(--muted);text-decoration:none}.making-software-layout .ms-top-breadcrumb span{margin:0 8px}.making-software-layout .ms-top-breadcrumb-title{text-transform:none;letter-spacing:.02em;color:#444;font-weight:500;max-width:360px;overflow:hidden;text-overflow:ellipsis;display:inline-block;vertical-align:bottom}.making-software-layout .ms-progress-bar{position:fixed;top:0;left:0;height:2px;background:#000;z-index:200;transition:width .08s linear;pointer-events:none}.making-software-layout .ms-section{scroll-margin-top:90px}.making-software-layout .ms-text,.making-software-layout .ms-subsection-title{opacity:0;transform:translateY(6px);transition:opacity .45s ease,transform .45s ease}.making-software-layout .ms-text.is-visible,.making-software-layout .ms-subsection-title.is-visible{opacity:1;transform:translateY(0)}.making-software-layout .ms-top-header-right{display:flex;justify-content:flex-end;flex-shrink:0}.making-software-layout .ms-layout-container{max-width:1400px;margin:0 auto;padding:0;display:grid;grid-template-columns:240px 1fr;gap:40px;align-items:start;width:min(100% - 80px,1400px);box-sizing:border-box}.making-software-layout .ms-layout-container--no-sidebar{display:block;max-width:1320px;width:min(100% - 80px,1320px);margin:0 auto;padding:0}.making-software-layout .ms-layout-container--no-sidebar .ms-main-content{max-width:100%;width:100%;margin:40px 0;min-height:0;position:static;height:auto;overflow:visible}.making-software-layout .ms-layout-container--no-sidebar .ms-article{max-height:none;overflow-y:visible;padding:60px 80px 40px}.making-software-layout .ms-sidebar{background:#fafafa;padding:60px 20px 40px 0;position:-webkit-sticky;position:sticky;top:66px;align-self:start;height:calc(100vh - 66px);max-height:calc(100vh - 66px);overflow-y:auto;z-index:10}.making-software-layout .ms-sidebar-nav{display:flex;flex-direction:column;gap:0}.making-software-layout .ms-nav-section{display:flex;flex-direction:column;gap:0;margin-bottom:40px}.making-software-layout .ms-nav-main-title{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:17px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:#000;margin:0 0 16px;line-height:1.5;padding-left:4px}.making-software-layout .ms-nav-section-title{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#000;margin-bottom:4px}.making-software-layout .ms-nav-list{list-style:none;padding:0;margin:0 0 0 8px;display:flex;flex-direction:column;gap:12px;line-height:1.8}.making-software-layout .ms-nav-item{margin:0;padding-left:0}.making-software-layout .ms-nav-link{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:14px;color:#000;text-decoration:none;display:flex;align-items:center;padding:0;transition:color .2s ease;text-transform:none;font-weight:400;line-height:1.6;width:100%}.making-software-layout .ms-nav-text{flex-shrink:0}.making-software-layout .ms-nav-dots{flex:1;margin:0 0 0 8px;border-bottom:1px dotted #cccccc;height:1px}.making-software-layout .ms-nav-item{position:relative}.making-software-layout .ms-nav-link{position:relative;padding-left:12px;transition:color .2s ease,transform .15s ease}.making-software-layout .ms-nav-link:before{content:"";position:absolute;left:0;top:50%;width:2px;height:0;background:#000;transform:translateY(-50%);transition:height .2s ease}.making-software-layout .ms-nav-link:hover .ms-nav-text{color:#555}.making-software-layout .ms-nav-link.active .ms-nav-text{color:#000;font-weight:600}.making-software-layout .ms-nav-link.active:before{height:70%}.making-software-layout .ms-nav-link.active .ms-nav-dots{border-bottom-color:#888}.making-software-layout .ms-pylar-box{display:inline-block;padding:12px 20px;border:1px solid #000000;background:#fff;color:#000;text-decoration:none;font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:13px;font-weight:400;text-transform:none;transition:background .2s ease,color .2s ease;margin-top:8px}.making-software-layout .ms-pylar-box:hover{background:#000;color:#fff}.making-software-layout .ms-main-content{background:#fff;padding:0;border:1px solid #e5e5e5;box-shadow:0 2px 8px #00000014;margin:40px 0;position:sticky;top:66px;align-self:start;height:calc(100vh - 146px);display:flex;flex-direction:column;max-width:1100px;overflow:hidden}.making-software-layout .ms-content-bar{background:#f5f5f5;border-bottom:1px solid #e5e5e5;padding:8px 16px;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:11px;flex-shrink:0}.making-software-layout .ms-content-bar-left{display:flex;align-items:center;gap:12px}.making-software-layout .ms-nav-button{background:none;border:none;font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:14px;color:#000;cursor:pointer;padding:8px 12px;transition:color .2s ease;min-height:44px;min-width:44px;touch-action:manipulation}.making-software-layout .ms-nav-button{border:1px solid transparent;border-radius:4px;transition:color .2s ease,background .2s ease,border-color .2s ease,opacity .2s ease}.making-software-layout .ms-nav-button:hover:not(:disabled){color:#000;background:#f0f0f0;border-color:#ddd}.making-software-layout .ms-nav-button:disabled{opacity:.25;cursor:default}.making-software-layout .ms-content-breadcrumb{color:#000;letter-spacing:.05em}.making-software-layout .ms-content-breadcrumb a{color:#000;text-decoration:none}.making-software-layout .ms-content-breadcrumb a:hover{color:#555}.making-software-layout .ms-content-breadcrumb span{margin:0 4px;color:#666}.making-software-layout .ms-article{padding:80px 40px 80px 120px;max-width:none;margin:0;width:100%;flex:1 1 auto;overflow-y:auto;min-height:0}.making-software-layout .ms-article-header{text-align:center;margin-bottom:60px}.making-software-layout .ms-article-meta{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#666;margin-bottom:24px}.making-software-layout .ms-article-title{font-size:48px;font-weight:700;letter-spacing:-.02em;color:#000;margin:0 0 20px;line-height:1.2}.making-software-layout .ms-article-subtitle{font-size:16px;line-height:1.6;color:#333;max-width:600px;margin:0 auto 32px}.making-software-layout .ms-article-separator{font-size:14px;color:#666;letter-spacing:.2em}.making-software-layout .ms-article-body{font-size:15px;line-height:1.8;color:#000;word-wrap:break-word;overflow-wrap:break-word}.making-software-layout .ms-section{margin-bottom:60px}.making-software-layout .ms-section-title{font-size:36px;font-weight:700;letter-spacing:-.02em;text-transform:uppercase;color:#000;margin:0 0 40px;line-height:1.2}.making-software-layout .ms-subsection-title{font-size:16px;font-weight:600;color:#000;margin:40px 0 16px;line-height:1.4}.making-software-layout .ms-text{margin:0 0 24px;line-height:1.8;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.making-software-layout .ms-text code{background:#f5f5f5;padding:2px 6px;border-radius:3px;font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:13px;color:#1d56ff}.making-software-layout .ms-article-end{text-align:center;font-size:14px;color:#666;letter-spacing:.2em;margin-top:80px;padding-top:40px}.making-software-layout .ms-blog-toc{display:flex;flex-direction:column;gap:56px;margin-top:24px;width:100%}.making-software-layout .ms-blog-toc-group-title{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#000;margin:0 0 24px}.making-software-layout .ms-blog-toc-list{list-style:none;margin:0;display:flex;flex-direction:column;gap:16px;padding:0 0 0 32px}.making-software-layout .ms-blog-toc-item{margin:0;position:relative}.making-software-layout .ms-blog-toc-item:before{content:"•";position:absolute;left:-20px;top:1px;color:#000;font-weight:700;font-size:14px}.making-software-layout .ms-blog-toc-link{display:flex;align-items:baseline;gap:12px;text-decoration:none;color:inherit;transition:color .15s ease}.making-software-layout .ms-blog-toc-link:hover .ms-blog-toc-title{color:#555}.making-software-layout .ms-blog-toc-title{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:17px;font-weight:400;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;transition:color .15s ease}.making-software-layout .ms-blog-toc-leader{flex:1;border-bottom:1px dotted #cccccc;align-self:end;margin-bottom:6px;min-width:24px}.making-software-layout .ms-blog-toc-meta{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#999;flex-shrink:0;white-space:nowrap;transition:color .2s ease}@keyframes ms-page-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.making-software-layout{animation:ms-page-enter .35s ease both}.making-software-layout .ms-top-header-content--split{grid-template-columns:auto auto;justify-content:space-between;align-items:center}.making-software-layout .ms-top-header-content--split .ms-top-header-right{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.making-software-layout .ms-top-link{color:#555;text-decoration:none;transition:color .15s ease}.making-software-layout .ms-top-link:hover{color:#000}.making-software-layout .ms-top-current{color:#000;font-weight:700}.making-software-layout .ms-top-divider{color:#ccc;-webkit-user-select:none;user-select:none}.making-software-layout .ms-top-meta{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#888}.making-software-layout .ms-blog-toc-list--flat{gap:18px;padding-left:32px;margin-top:24px;list-style:none;display:flex;flex-direction:column}.making-software-layout .ms-content-bar--sticky{position:sticky;top:60px;z-index:50;padding:12px 24px;background:#fafafaeb;backdrop-filter:saturate(180%) blur(8px);-webkit-backdrop-filter:saturate(180%) blur(8px);display:block;overflow:hidden}.making-software-layout .ms-group-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}.making-software-layout .ms-group-chips::-webkit-scrollbar{display:none}.making-software-layout .ms-group-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid #e0e0e0;border-radius:999px;background:#fff;font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#555;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .15s ease}.making-software-layout .ms-group-chip:hover{background:#f2f2f2;border-color:#999;color:#000;transform:translateY(-1px)}.making-software-layout .ms-group-chip.is-active{background:#000;border-color:#000;color:#fff}.making-software-layout .ms-group-chip-num{font-weight:700;opacity:.55}.making-software-layout .ms-group-chip.is-active .ms-group-chip-num,.making-software-layout .ms-group-chip.is-active .ms-group-chip-count{opacity:.8}.making-software-layout .ms-group-chip-count{font-size:9px;opacity:.6;padding-left:4px;border-left:1px solid currentColor}.making-software-layout .ms-blog-toc-group{scroll-margin-top:130px}.making-software-layout .ms-blog-toc-item{opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .45s ease}.making-software-layout .ms-blog-toc-item.is-visible{opacity:1;transform:translateY(0)}.making-software-layout .ms-blog-toc-link{transition:transform .2s ease}.making-software-layout .ms-blog-toc-link:hover{transform:translate(4px)}.making-software-layout .ms-blog-toc-link:hover .ms-blog-toc-leader{border-bottom-color:#888}.making-software-layout .ms-blog-toc-link:hover .ms-blog-toc-meta{color:#555}.making-software-layout .ms-blog-toc-leader{transition:border-color .2s ease}.making-software-layout .ms-back-to-top{position:fixed;bottom:32px;right:32px;width:44px;height:44px;border-radius:50%;border:1px solid #dddddd;background:#fff;color:#000;font-size:16px;font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);line-height:1;cursor:pointer;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease,background .2s ease,color .2s ease;z-index:200;box-shadow:0 2px 12px #0000000f}.making-software-layout .ms-back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.making-software-layout .ms-back-to-top:hover{background:#000;color:#fff;border-color:#000}@media(max-width:640px){.making-software-layout .ms-back-to-top{bottom:20px;right:20px;width:40px;height:40px}.making-software-layout .ms-content-bar--sticky{padding:10px 16px}}@media(prefers-reduced-motion:reduce){.making-software-layout,.making-software-layout .ms-blog-toc-item,.making-software-layout .ms-blog-toc-link,.making-software-layout .ms-group-chip,.making-software-layout .ms-back-to-top{transition:none!important;transform:none!important}.making-software-layout .ms-blog-toc-item,.making-software-layout .ms-text,.making-software-layout .ms-subsection-title{opacity:1!important}.making-software-layout{opacity:1!important;animation:none!important}}@media(max-width:1024px){.making-software-layout .ms-top-header-content{width:min(100% - 40px,1400px);padding:16px 20px;gap:24px}.making-software-layout .ms-layout-container{grid-template-columns:200px 1fr;gap:32px;width:min(100% - 40px,1400px)}.making-software-layout .ms-sidebar{padding:30px 0 30px 20px}.making-software-layout .ms-article{padding:40px 32px 60px}.making-software-layout .ms-main-content{margin:32px 0}}@media(max-width:768px){.making-software-layout .ms-top-header-content{grid-template-columns:1fr;gap:8px;padding:12px 20px;width:100%;align-items:flex-start}.making-software-layout .ms-top-header-left{order:1;width:100%}.making-software-layout .ms-top-header-center{order:2;width:100%;justify-content:flex-start}.making-software-layout .ms-top-header-right{order:3;display:none}.making-software-layout .ms-top-header-title{font-size:18px}.making-software-layout .ms-top-breadcrumb{font-size:10px;white-space:normal}.making-software-layout .ms-layout-container{grid-template-columns:1fr;gap:0;width:100%;padding:0}.making-software-layout .ms-sidebar{position:static;height:auto;padding:20px;order:1;max-height:none;overflow:visible}.making-software-layout .ms-main-content{order:2;position:static;height:auto;max-height:none;overflow:visible;margin:20px 0;width:100%;max-width:100%}.making-software-layout .ms-content-bar{padding:8px 12px;font-size:10px}.making-software-layout .ms-article{padding:30px 20px 40px;max-height:none;overflow:visible}.making-software-layout .ms-article-header{margin-bottom:40px}.making-software-layout .ms-article-title{font-size:clamp(28px,8vw,36px);line-height:1.2}.making-software-layout .ms-article-subtitle{font-size:15px;max-width:100%}.making-software-layout .ms-section-title{font-size:clamp(28px,6vw,32px);margin:0 0 32px;line-height:1.2}.making-software-layout .ms-section{margin-bottom:48px}.making-software-layout .ms-subsection-title{font-size:15px;margin:32px 0 12px}.making-software-layout .ms-text{font-size:15px;line-height:1.7}.making-software-layout .ms-nav-main-title{font-size:15px}.making-software-layout .ms-nav-link{font-size:13px;padding:8px 0;min-height:44px}.making-software-layout .ms-blog-card{padding:24px 0}.making-software-layout .ms-blog-card-title{font-size:20px}}@media(max-width:480px){.making-software-layout .ms-section-title{font-size:clamp(24px,7vw,28px);margin:0 0 28px}.making-software-layout .ms-top-header-content{padding:10px 16px;gap:6px}.making-software-layout .ms-top-header-title{font-size:16px}.making-software-layout .ms-top-breadcrumb{font-size:9px;white-space:normal}.making-software-layout .ms-sidebar{padding:16px}.making-software-layout .ms-nav-main-title{font-size:14px;margin-bottom:12px}.making-software-layout .ms-nav-link{font-size:12px;padding:6px 0}.making-software-layout .ms-nav-list{gap:8px}.making-software-layout .ms-main-content{margin:16px 0}.making-software-layout .ms-content-bar{padding:6px 12px}.making-software-layout .ms-article{padding:24px 16px 32px}.making-software-layout .ms-article-header{margin-bottom:32px}.making-software-layout .ms-article-title{font-size:clamp(24px,7vw,32px);margin:0 0 16px}.making-software-layout .ms-article-subtitle{font-size:14px;margin:0 auto 24px}.making-software-layout .ms-article-meta{font-size:10px;margin-bottom:20px}.making-software-layout .ms-subsection-title{font-size:14px;margin:28px 0 10px}.making-software-layout .ms-text{font-size:14px;line-height:1.7;margin:0 0 20px}.making-software-layout .ms-article-end{margin-top:60px;padding-top:32px;font-size:12px}.making-software-layout .ms-pylar-box{padding:10px 16px;font-size:12px}.making-software-layout .ms-blog-card-title{font-size:18px}}.making-software-layout.ms-blog-detail{background:#fafafa}.making-software-layout.ms-blog-detail .ms-layout-container{grid-template-columns:280px 1fr;gap:56px;max-width:1500px;width:min(100% - 80px,1500px);padding-right:56px}.making-software-layout .ms-top-arrow{width:24px;height:24px;border:none;background:transparent;color:#888;font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:13px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:3px;transition:color .15s ease,background .15s ease}.making-software-layout .ms-top-arrow:hover:not(:disabled){color:#000;background:#f0f0f0}.making-software-layout .ms-top-arrow:disabled{opacity:.25;cursor:default}.making-software-layout .ms-top-divider--gap{display:inline-block;width:4px;color:transparent}.making-software-layout.ms-blog-detail .ms-sidebar{background:transparent;padding:32px 16px 40px 8px;scrollbar-width:thin}.making-software-layout.ms-blog-detail .ms-sidebar-nav{gap:32px}.making-software-layout .ms-nav-group{display:flex;flex-direction:column;gap:14px}.making-software-layout .ms-nav-group-title{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:12px;font-weight:600;letter-spacing:.08em;color:#000;margin:0 0 4px;line-height:1.4}.making-software-layout .ms-nav-group-list{list-style:none;padding:0 0 0 14px;margin:0;display:flex;flex-direction:column;gap:14px}.making-software-layout .ms-nav-group-item{position:relative;padding-left:16px}.making-software-layout .ms-nav-group-item:before{content:"";position:absolute;left:0;top:.65em;width:5px;height:5px;border-radius:50%;background:#ccc;transition:background .18s ease,transform .18s ease}.making-software-layout .ms-nav-group-item:hover:before{background:#888}.making-software-layout .ms-nav-group-item.active:before{background:#1d56ff;transform:scale(1.35)}.making-software-layout .ms-nav-group-link{font-family:"Source Serif 4","Source Serif Pro",Georgia,Times New Roman,serif;font-size:15px;line-height:1.5;color:#666;text-decoration:none;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:1.5em;transition:color .18s ease,max-height .32s cubic-bezier(.4,0,.2,1)}.making-software-layout .ms-nav-group-link:hover{color:#000}.making-software-layout .ms-nav-group-item:hover .ms-nav-group-link{white-space:normal;overflow:visible;text-overflow:clip;max-height:6em}.making-software-layout .ms-nav-group-link.active{color:#1d56ff;font-weight:500}.making-software-layout .ms-nav-group-item.active .ms-nav-group-link{white-space:normal;overflow:visible;text-overflow:clip;max-height:6em}.making-software-layout .ms-nav-footer{margin-top:16px}.making-software-layout.ms-blog-detail .ms-main-content{background:#fff;border:1px solid #ececec;box-shadow:none;margin:32px 0;max-width:100%;min-width:0;border-radius:2px}.making-software-layout.ms-blog-detail .ms-article{padding:56px 80px 80px}.making-software-layout.ms-blog-detail .ms-article-header{margin:0 auto 56px;max-width:760px}.making-software-layout.ms-blog-detail .ms-article-meta{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#888;margin-bottom:28px;text-align:center}.making-software-layout .ms-article-meta-sep{display:inline-block;margin:0 10px;color:#ccc}.making-software-layout.ms-blog-detail .ms-article-title{font-family:"Source Serif 4","Source Serif Pro",Georgia,Times New Roman,serif;font-size:clamp(40px,4.6vw,64px);font-weight:500;letter-spacing:-.015em;line-height:1.08;color:#111;margin:0 0 24px;text-align:center}.making-software-layout.ms-blog-detail .ms-article-subtitle{font-family:"Source Serif 4","Source Serif Pro",Georgia,Times New Roman,serif;font-size:18px;line-height:1.55;color:#555;font-style:normal;max-width:620px;margin:0 auto 36px;text-align:center}.making-software-layout.ms-blog-detail .ms-article-separator{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:12px;color:#bbb;letter-spacing:.1em;text-align:center}.making-software-layout.ms-blog-detail .ms-article-body{max-width:720px;margin:0 auto;font-family:"Source Serif 4","Source Serif Pro",Georgia,Times New Roman,serif;font-size:17px;line-height:1.75;color:#222}.making-software-layout.ms-blog-detail .ms-section-title{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#888;margin:0 0 28px;padding-bottom:12px;border-bottom:1px solid #ececec}.making-software-layout.ms-blog-detail .ms-subsection-title{font-family:"Source Serif 4","Source Serif Pro",Georgia,Times New Roman,serif;font-size:22px;font-weight:500;color:#111;margin:48px 0 18px;letter-spacing:-.005em;line-height:1.3}.making-software-layout.ms-blog-detail .ms-text{font-size:17px;line-height:1.75;color:#222;margin:0 0 22px}.making-software-layout.ms-blog-detail .ms-article-end{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:11px;letter-spacing:.3em;color:#bbb;margin-top:96px;padding-top:32px;border-top:1px solid #ececec;text-align:center}.making-software-layout .ms-scroll-rail{position:fixed;top:80px;right:14px;bottom:24px;display:flex;flex-direction:column;align-items:flex-end;gap:12px;pointer-events:none;z-index:50}.making-software-layout .ms-scroll-rail-label{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:11px;letter-spacing:.05em;color:#1d56ff;font-variant-numeric:tabular-nums}.making-software-layout .ms-scroll-rail-ticks{flex:1;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;width:12px}.making-software-layout .ms-scroll-rail-tick{width:10px;height:1px;background:#d8d8d8;display:block;transition:background .15s ease,width .15s ease}.making-software-layout .ms-scroll-rail-tick.filled{background:#1d56ff;width:12px}.making-software-layout.ms-blog-detail .ms-progress-bar{display:none}.making-software-layout .ms-focus-toggle{position:absolute;top:14px;right:18px;z-index:6;display:inline-flex;align-items:center;gap:10px;background:transparent;border:none;padding:6px 8px;cursor:pointer;font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#888;border-radius:4px;transition:color .2s ease,background .2s ease}.making-software-layout .ms-focus-toggle:hover{color:#000;background:#f5f5f5}.making-software-layout .ms-focus-toggle.is-on{color:#1d56ff}.making-software-layout .ms-focus-toggle-track{position:relative;width:26px;height:14px;background:#d8d8d8;border-radius:999px;transition:background .25s ease}.making-software-layout .ms-focus-toggle-thumb{position:absolute;top:2px;left:2px;width:10px;height:10px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #00000026;transition:transform .28s cubic-bezier(.4,0,.2,1)}.making-software-layout .ms-focus-toggle.is-on .ms-focus-toggle-track{background:#1d56ff}.making-software-layout .ms-focus-toggle.is-on .ms-focus-toggle-thumb{transform:translate(12px)}.making-software-layout.ms-blog-detail .ms-layout-container{transition:grid-template-columns .45s cubic-bezier(.4,0,.2,1),gap .45s cubic-bezier(.4,0,.2,1),max-width .45s ease,padding-right .45s ease}.making-software-layout.ms-blog-detail .ms-sidebar{transition:opacity .32s ease,transform .42s cubic-bezier(.4,0,.2,1);will-change:opacity,transform}.making-software-layout.ms-blog-detail.ms-focus-on .ms-layout-container{grid-template-columns:0 1fr;gap:0;max-width:1080px;padding-right:0}.making-software-layout.ms-blog-detail.ms-focus-on .ms-sidebar{opacity:0;transform:translate(-24px);pointer-events:none;overflow:hidden}.making-software-layout.ms-blog-detail.ms-focus-on .ms-main-content{margin:32px auto}.making-software-layout.ms-blog-detail .ms-main-content{transition:margin .4s ease,max-width .4s ease}.making-software-layout.ms-blog-detail.ms-focus-on .ms-scroll-rail{opacity:0;pointer-events:none;transition:opacity .3s ease}.making-software-layout.ms-blog-detail .ms-scroll-rail{transition:opacity .3s ease}@media(max-width:1024px){.making-software-layout.ms-blog-detail .ms-layout-container{grid-template-columns:240px 1fr;gap:32px;padding-right:40px}.making-software-layout.ms-blog-detail .ms-article{padding:64px 48px}.making-software-layout .ms-scroll-rail{right:8px}}@media(max-width:768px){.making-software-layout.ms-blog-detail .ms-layout-container,.making-software-layout.ms-blog-detail.ms-focus-on .ms-layout-container{grid-template-columns:1fr;gap:0;width:100%;max-width:100%;padding:0}.making-software-layout.ms-blog-detail .ms-sidebar{display:none}.making-software-layout.ms-blog-detail .ms-main-content,.making-software-layout.ms-blog-detail.ms-focus-on .ms-main-content{position:static;height:auto;max-height:none;overflow:visible;margin:16px 12px;width:auto;max-width:none}.making-software-layout.ms-blog-detail .ms-article{padding:56px 20px 48px}.making-software-layout.ms-blog-detail .ms-article-header{margin:0 auto 40px}.making-software-layout.ms-blog-detail .ms-article-title{font-size:clamp(28px,7.5vw,38px)}.making-software-layout.ms-blog-detail .ms-article-subtitle{font-size:16px;margin:0 auto 28px}.making-software-layout.ms-blog-detail .ms-section-title{margin:0 0 22px}.making-software-layout.ms-blog-detail .ms-subsection-title{font-size:19px;margin:36px 0 14px}.making-software-layout.ms-blog-detail .ms-text{font-size:16px;line-height:1.7}.making-software-layout.ms-blog-detail .ms-article-end{margin-top:56px}.making-software-layout .ms-top-header-content--split{grid-template-columns:1fr auto;column-gap:12px;row-gap:0;padding:12px 16px;width:100%;align-items:center}.making-software-layout .ms-top-header-content--split .ms-top-header-right{flex-wrap:nowrap;justify-content:flex-end;gap:10px;align-items:center}.making-software-layout .ms-top-header-content--split .ms-top-meta,.making-software-layout .ms-top-header-content--split .ms-top-divider,.making-software-layout .ms-top-header-content--split .ms-top-current,.making-software-layout .ms-top-header-content--split .ms-top-arrow,.making-software-layout .ms-top-header-content--split .ms-top-divider--gap{display:none}.making-software-layout .ms-top-header-content--split .ms-top-link{display:inline-flex;align-items:center;font-size:11px;letter-spacing:.16em}.making-software-layout .ms-top-header-title{font-size:14px;letter-spacing:.06em}.making-software-layout.ms-blog-detail .ms-focus-toggle{top:10px;right:12px;font-size:9px;gap:8px}.making-software-layout .ms-scroll-rail{display:none}.making-software-layout .ms-top-controls{gap:8px}.making-software-layout .ms-top-trail-current{max-width:200px}.making-software-layout .ms-blog-toc-title{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.45}.making-software-layout .ms-blog-toc-link{align-items:flex-start;flex-wrap:wrap;column-gap:12px;row-gap:4px}.making-software-layout .ms-blog-toc-leader{display:none}.making-software-layout .ms-blog-toc-meta{flex-basis:100%;margin-top:2px}.making-software-layout .ms-blog-toc-list,.making-software-layout .ms-blog-toc-list--flat{padding-left:24px;gap:22px}.making-software-layout .ms-blog-toc-link:hover{transform:none}.making-software-layout .ms-layout-container--no-sidebar .ms-main-content{margin:16px 12px;width:auto;max-width:none}.making-software-layout .ms-layout-container--no-sidebar .ms-article{padding:40px 24px 48px}.making-software-layout .ms-blog-toc-title{font-size:15px}.making-software-layout .ms-blog-toc-meta{font-size:10px}}@media(max-width:480px){.making-software-layout.ms-blog-detail .ms-main-content{margin:12px 8px}.making-software-layout.ms-blog-detail .ms-article{padding:52px 16px 40px}.making-software-layout.ms-blog-detail .ms-article-title{font-size:clamp(26px,8vw,34px)}.making-software-layout.ms-blog-detail .ms-article-subtitle,.making-software-layout.ms-blog-detail .ms-text{font-size:15px}.making-software-layout.ms-blog-detail .ms-prose{font-size:16px}.making-software-layout.ms-blog-detail .ms-prose h3{font-size:19px}.making-software-layout .ms-blog-toc-list,.making-software-layout .ms-blog-toc-list--flat{padding-left:20px;gap:20px}.making-software-layout .ms-top-header-content--split{padding:10px 14px}.making-software-layout .ms-top-header-title{font-size:13px}.making-software-layout .ms-layout-container--no-sidebar .ms-main-content{margin:12px 8px}.making-software-layout .ms-layout-container--no-sidebar .ms-article{padding:36px 18px 40px}.making-software-layout .ms-blog-toc-title{font-size:14px}}.making-software-layout.ms-blog-detail .ms-article-byline{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#888;text-align:center;margin:18px 0 0}.making-software-layout.ms-blog-detail .ms-prose{font-family:"Source Serif 4","Source Serif Pro",Georgia,Times New Roman,serif;color:#222;font-size:17px;line-height:1.75}.making-software-layout.ms-blog-detail .ms-prose p{margin:0 0 22px}.making-software-layout.ms-blog-detail .ms-prose h2{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:#1d56ff;margin:56px 0 20px;padding-bottom:10px;border-bottom:1px solid #ececec}.making-software-layout.ms-blog-detail .ms-prose h3{font-family:"Source Serif 4","Source Serif Pro",Georgia,Times New Roman,serif;font-size:22px;font-weight:500;color:#111;margin:40px 0 16px;letter-spacing:-.005em;line-height:1.3}.making-software-layout.ms-blog-detail .ms-prose h4{font-family:"Source Serif 4","Source Serif Pro",Georgia,Times New Roman,serif;font-size:18px;font-weight:600;color:#111;margin:32px 0 12px}.making-software-layout.ms-blog-detail .ms-prose a{color:#1d56ff;text-decoration:none;border-bottom:1px solid rgba(29,86,255,.3);transition:border-color .15s ease}.making-software-layout.ms-blog-detail .ms-prose a:hover{border-bottom-color:#1d56ff}.making-software-layout.ms-blog-detail .ms-prose strong{color:#111;font-weight:600}.making-software-layout.ms-blog-detail .ms-prose em{font-style:italic}.making-software-layout.ms-blog-detail .ms-prose ul,.making-software-layout.ms-blog-detail .ms-prose ol{margin:0 0 22px;padding-left:24px}.making-software-layout.ms-blog-detail .ms-prose li{margin:0 0 8px}.making-software-layout.ms-blog-detail .ms-prose blockquote{margin:28px 0;padding:4px 0 4px 20px;border-left:3px solid #1d56ff;color:#444;font-style:italic}.making-software-layout.ms-blog-detail .ms-prose code{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:.9em;background:#f5f5f5;padding:2px 6px;border-radius:3px;color:#1d56ff}.making-software-layout.ms-blog-detail .ms-prose pre{margin:24px 0;padding:18px 20px;background:#0f1115;color:#e6edf3;border-radius:6px;overflow-x:auto;font-size:13px;line-height:1.6}.making-software-layout.ms-blog-detail .ms-prose pre code{background:transparent;color:inherit;padding:0;border-radius:0;font-size:inherit}.making-software-layout.ms-blog-detail .ms-prose hr{border:none;border-top:1px solid #ececec;margin:40px 0}.making-software-layout.ms-blog-detail .ms-prose img{max-width:100%;height:auto;border-radius:4px;margin:24px 0}.making-software-layout.ms-blog-detail .ms-prose table{width:100%;border-collapse:collapse;margin:24px 0;font-size:15px}.making-software-layout.ms-blog-detail .ms-prose th,.making-software-layout.ms-blog-detail .ms-prose td{text-align:left;padding:10px 14px;border-bottom:1px solid #ececec}.making-software-layout.ms-blog-detail .ms-prose th{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#666;font-weight:500}.making-software-layout.ms-blog-detail .ms-article-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:56px;padding-top:24px;border-top:1px solid #ececec}.making-software-layout.ms-blog-detail .ms-article-tag{font-family:var(--font-mono, "Departure Mono", "IBM Plex Mono", monospace);font-size:11px;letter-spacing:.08em;color:#888;background:#f5f5f5;padding:4px 10px;border-radius:999px}
