@font-face{font-family:Inter;src:url('assets/InterVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('assets/JetBrainsMono-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
:root{color-scheme:dark;--bg:#000;--text:#ededed;--muted:#999;--line:#242424;--accent:#8ddcdb;--mono:'JetBrains Mono',Consolas,monospace;--sans:Inter,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.75 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}a,button,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}a:hover,button:hover{color:#fff}a:focus-visible,button:focus-visible,summary:focus-visible,canvas:focus-visible{outline:1px solid var(--accent);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500;line-height:1.25;letter-spacing:-.035em}p{color:var(--muted)}h1{font-size:clamp(36px,4.2vw,58px);letter-spacing:-.05em}h2{font-size:26px}h3{font-size:17px}svg.icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0}.mono,.eyebrow,.section-label,.section-number,.job-date,.record-meta{font-family:var(--mono)}.small{font-size:11px}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:.025em;color:var(--muted)}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#72b596;vertical-align:middle;margin-right:6px}.skip-link{position:fixed;top:-80px;left:20px;padding:10px 15px;background:#fff;color:#000;z-index:50}.skip-link:focus{top:12px}
.header{position:sticky;top:0;z-index:20;max-width:1240px;margin:auto;height:80px;padding:0 40px;display:flex;align-items:center;gap:38px;background:#000f;border-bottom:1px solid var(--line)}.name-link{font-size:15px;font-weight:500;letter-spacing:-.3px;white-space:nowrap}.nav{display:flex;gap:29px;align-items:center;margin-left:auto}.nav>a{display:flex;align-items:center;min-height:44px;font-size:12px;color:var(--muted);position:relative}.nav>a.active{color:var(--text)}.nav>a.active:after{content:'';position:absolute;bottom:5px;left:0;right:0;height:1px;background:#ddd}.header-contact{font-size:12px;display:flex;gap:7px;align-items:center;min-height:44px}.header-contact .icon{width:13px;height:13px}main{max-width:1240px;padding:0 40px;margin:auto}.view[hidden]{display:none}.home-intro{text-align:center;padding:39px 0 0}.home-intro h1{font-size:clamp(36px,4vw,54px);margin:13px 0 14px;line-height:1.1}.home-intro>p:not(.eyebrow){font-size:13px;line-height:1.8}.intro-links{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:22px}.intro-links>a,.intro-links>button,.text-link,.contact-links>a,.contact-links>button{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:12px;padding:0;color:#c2c2c2}.intro-links a:first-child{color:var(--text)}.intro-links .icon,.text-link .icon{width:13px;height:13px}.home-intro .intro-links{justify-content:center;margin-top:12px}.globe-panel{margin:18px 0 0}.globe-stage{position:relative;height:565px}#globe{display:block;width:100%;height:100%;cursor:grab;touch-action:pan-y}#globe:active{cursor:grabbing}.globe-top,.globe-bottom{position:absolute;left:0;right:0;z-index:2;display:flex;justify-content:space-between;align-items:center;pointer-events:none;font-size:11px;color:var(--muted)}.globe-top{top:12px}.globe-bottom{bottom:8px}.globe-bottom>div:first-child{display:flex;align-items:center;gap:12px}.globe-bottom .mono,.globe-coordinate{font-size:9px}.globe-bottom>#renderer-status{font-size:8px;color:#707070;min-width:160px;text-align:right}.globe-controls{display:flex;align-items:center;gap:2px;position:absolute;left:50%;transform:translateX(-50%);pointer-events:auto}.icon-button{width:44px;height:44px;display:grid;place-items:center;color:var(--muted);border-radius:0}.icon-button:hover{color:var(--text)}.icon-button .icon{width:14px;height:14px}.telemetry-overlay{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0 10px;margin-top:9px}.telemetry-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.telemetry-heading>.mono{font-size:10px}.log-filters{display:flex;align-items:center;gap:22px}.log-filters>button{font:10px var(--mono);color:#888;min-height:44px;padding:0;border-bottom:1px solid transparent}.log-filters>button[aria-pressed=true]{color:#ddd;border-color:#777}.logs{height:127px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#383838 #000;overscroll-behavior:contain;font:10px/1.8 var(--mono);padding:10px 0;display:grid;grid-template-columns:1fr 1fr;gap:12px 30px}.log-line{display:grid;grid-template-columns:54px 1fr;align-content:start;gap:0 8px}.log-time{color:#777;font-size:9px}.log-level{color:#aaa;grid-column:2;grid-row:1;font-size:9px}.log-text{color:#999;grid-column:2;font-size:9px;overflow-wrap:anywhere}.log-level.pass{color:#97b4a4}.log-level.blocked,.log-level.rate-limit{color:#baa899}.log-level.query{color:#9da8b4}.log-level .muted{color:#777}.terminal-footer{display:flex;justify-content:space-between;font-size:8px;color:#777;margin-top:9px}.log-empty{font:11px var(--mono);padding:15px 0}
.selected-work{padding:60px 0 16px}.section-label{font-size:11px;color:#999}.work-summary{display:grid;grid-template-columns:1.3fr 1fr;gap:50px;margin-top:19px}.work-summary h2{font-size:29px}.work-summary h2 .icon{margin-left:8px;width:18px;height:18px;color:#aaa}.work-summary p{font-size:13px;margin-top:11px;max-width:480px}.inline-skills{display:flex;flex-wrap:wrap;gap:5px 14px;color:#777;font:10px var(--mono);margin-top:18px}.work-impact{padding-top:0}.work-impact p{font-size:12px;margin-top:0;margin-bottom:9px}.work-impact strong{color:var(--text);font-weight:500;display:inline-block;min-width:78px;font-size:18px}.work-impact>.small{font-size:10px;line-height:1.8;display:block;margin-top:14px;max-width:320px}
.reading-page{max-width:980px;margin:auto}.page-intro{padding:65px 0 48px;border-bottom:1px solid var(--line)}.page-intro h1{margin:17px 0 21px;max-width:850px}.page-intro>p:not(.eyebrow){font-size:15px}.page-intro .intro-links{margin-top:21px}.resume-section{padding:37px 0 15px}.resume-section>h2{font-size:22px;margin-bottom:24px}.timeline details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:170px 1fr 20px;gap:25px;padding:24px 0}summary::-webkit-details-marker{display:none}.job-date{font-size:10px;color:#888;letter-spacing:0;padding-top:4px}.job-info strong{display:block;font-weight:500;font-size:18px;line-height:1.5;letter-spacing:-.025em}.job-info>span{display:block;color:#888;font-size:12px;margin-top:6px}summary>.icon{width:15px;height:15px;color:#777;margin-top:6px;transition:transform .15s}details[open] summary>.icon{transform:rotate(45deg)}.job-content{margin-left:195px;padding-bottom:26px;max-width:670px;font-size:13px;line-height:1.95}.job-content ul{padding-left:17px;color:var(--muted);margin:11px 0}.job-content li{padding-left:4px;margin-bottom:7px}.job-content .text-link{font-size:11px;margin-top:4px}.skill-matrix{display:grid;grid-template-columns:1fr 1fr;gap:29px 55px}.skill-group h3{font-size:15px;letter-spacing:-.02em;margin-bottom:9px}.skill-group p{font-size:13px;line-height:2}.record-row{display:grid;grid-template-columns:170px 1fr;gap:25px;padding:21px 0;border-bottom:1px solid var(--line)}.record-meta{font-size:10px;color:#888;padding-top:3px}.record-row h3{font-size:17px}.record-row p{font-size:13px;margin-top:6px}.record-row p.small{font-size:11px;color:#888}.credential-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}.credential-row h3{font-size:14px;letter-spacing:-.02em}.credential-row>span{font-size:11px;color:#888;white-space:nowrap}.credential-note{font-size:11px;margin:9px 0 10px}.resume-footnote{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#888;margin-top:33px}.resume-footnote>a{display:inline-flex;align-items:center;gap:7px;color:#ccc;margin-top:4px;align-self:start;min-height:44px}.resume-footnote .icon{width:12px;height:12px}
.case-page{max-width:900px}.case-page .page-intro h1{font-size:60px}.case-page .page-intro{padding-bottom:34px}.case-facts{display:grid;grid-template-columns:1fr 1fr;gap:45px;padding:30px 0 32px;border-bottom:1px solid var(--line)}.case-facts strong{display:block;font-size:34px;font-weight:500;letter-spacing:-1.2px}.case-facts div>span{display:block;font-size:13px;color:#ccc;margin-top:4px}.case-facts p{font-size:11px;margin-top:6px}.case-opening{font-size:21px;letter-spacing:-.35px;color:#ccc;line-height:1.7;margin:37px 0 25px;max-width:800px}.case-technology{display:grid;grid-template-columns:90px 1fr;gap:25px;padding-bottom:31px;border-bottom:1px solid var(--line);align-items:baseline}.case-technology p{font-size:12px;line-height:1.9}.editorial-section{display:grid;grid-template-columns:55px 1fr;gap:25px;padding:42px 0;border-bottom:1px solid var(--line)}.section-number{font-size:11px;color:#777;padding-top:6px}.editorial-section h2{font-size:25px;margin-bottom:18px}.editorial-section p{font-size:14px;line-height:1.95;margin-top:13px}.editorial-section h3{font-size:17px;margin-bottom:8px}.case-subsection{margin-top:30px}.case-subsection p{margin-top:10px}.case-subsection code{color:#c5c5c5;font:12px var(--mono)}.flow{display:flex;flex-wrap:wrap;gap:0 20px;margin:27px 0 0;border-bottom:1px solid var(--line)}.flow>button{min-height:50px;padding:4px 0 11px;color:#888;border-bottom:1px solid transparent;font-size:11px;text-align:left}.flow>button>span{font:9px var(--mono);color:#666;margin-right:5px}.flow>button[aria-pressed=true]{color:var(--text);border-color:#bbb}.stage-detail{display:grid;grid-template-columns:25px 1fr;gap:15px;margin:25px 0 29px;min-height:155px}.stage-detail h3{font-size:17px}.stage-detail p{font-size:13px;margin-top:7px;line-height:1.9}.stage-detail code{display:block;font:10px/1.8 var(--mono);color:#999;margin-top:13px;white-space:normal}.integration-line{margin-top:27px}.integration-line p{font-size:13px}.editorial-section .design-note{font-size:11px;line-height:1.9;color:#777;margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}.request-lifecycle,.priority-list{padding-left:20px;color:#aaa;font-size:13px;line-height:1.9;margin:18px 0 0}.request-lifecycle li,.priority-list li{padding-left:6px;margin-bottom:9px}.editorial-section .takeaway{font-size:17px;color:#ccc;line-height:1.8;margin-top:30px}.source-note{font-size:11px;line-height:1.9;color:#777;margin-top:25px}
.contact-section{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;border-top:1px solid var(--line);padding:48px 0 57px;margin-top:72px;scroll-margin-top:105px}.contact-section h2{font-size:37px;margin:13px 0}.contact-section p{font-size:13px}.contact-section p.eyebrow{font-size:11px}.contact-email{display:inline-flex;align-items:center;gap:15px;margin:22px 0 4px;font-size:20px;letter-spacing:-.5px;min-height:44px}.contact-email .icon{width:17px;height:17px}.contact-links{display:flex;gap:24px}.contact-links>a,.contact-links>button{font-size:11px}.contact-links .icon{width:12px;height:12px}.contact-compose{padding-top:10px}.contact-compose>p.small{font-size:11px}.contact-options{display:flex;gap:23px;margin:10px 0 12px}.contact-options>button{font-size:11px;min-height:44px;padding:0;color:#888;border-bottom:1px solid transparent}.contact-options>button[aria-pressed=true]{border-color:#aaa;color:#ddd}.contact-compose>.text-link{font-size:12px;color:#ccc}footer{max-width:1240px;margin:auto;padding:23px 40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:#777;font-size:10px}footer>a{min-height:44px;display:flex;align-items:center}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,15px);max-width:90vw;opacity:0;pointer-events:none;border:1px solid #333;background:#111;padding:12px 20px;z-index:50;font-size:12px;transition:opacity .15s,transform .15s}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1500px){.globe-stage{height:610px}.home-intro h1{font-size:58px}}
@media(max-width:850px){.header{padding:0 26px;gap:25px}.nav{gap:22px}main{padding:0 26px}.header-contact{font-size:11px}.home-intro{padding-top:36px}.home-intro h1{font-size:45px}.globe-stage{height:510px}.logs{gap:12px 20px}.globe-bottom>#renderer-status{min-width:120px;font-size:6px}.globe-bottom>div:first-child{flex-direction:column;gap:0;align-items:start}.globe-coordinate{font-size:8px}.work-summary{gap:30px;grid-template-columns:1.2fr 1fr}.work-summary h2{font-size:25px}.reading-page{max-width:100%}.page-intro h1{font-size:43px}.page-intro{padding-top:48px}summary,.record-row{grid-template-columns:145px 1fr 18px;gap:20px}.record-row{grid-template-columns:145px 1fr}.job-content{margin-left:165px}.skill-matrix{gap:26px 35px}.case-page .page-intro h1{font-size:52px}.contact-section{gap:35px}.contact-email{font-size:18px}.contact-options{gap:18px}.log-filters{gap:17px}}
@media(max-width:600px){html{scroll-padding-top:115px}.header{height:102px;flex-wrap:wrap;padding:15px 20px 5px;gap:0;align-content:start}.name-link{font-size:14px;min-height:30px;display:flex;align-items:center}.header-contact{margin-left:auto;font-size:10px;min-height:30px}.header-contact .icon{width:12px;height:12px}.nav{width:100%;margin:3px 0 0;gap:28px;height:44px}.nav>a{font-size:11px;min-height:44px}.nav>a.active:after{bottom:3px}main{padding:0 20px}.home-intro{padding-top:31px}.home-intro>.eyebrow{font-size:9px}.home-intro h1{font-size:36px;letter-spacing:-1.7px;margin:15px 0 17px;line-height:1.14}.home-intro>p:not(.eyebrow){font-size:12px;max-width:340px;margin:auto}.desktop-break{display:none}.intro-links{gap:21px}.intro-links>a,.intro-links>button{font-size:10px}.home-intro .intro-links{margin-top:15px;gap:23px}.globe-panel{margin-top:15px}.globe-stage{height:385px}.globe-top{top:8px;font-size:9px}.globe-top>.small{font-size:8px}.globe-bottom{bottom:3px}.globe-bottom .mono{font-size:7px}.globe-coordinate{font-size:6px}.globe-bottom>#renderer-status{min-width:0;font-size:5px;max-width:80px}.globe-controls{gap:0}.globe-controls .icon-button{width:34px}.globe-controls .icon{width:12px;height:12px}.telemetry-overlay{padding-top:10px;margin-top:12px}.telemetry-heading{display:block}.telemetry-heading>.mono{font-size:9px}.log-filters{gap:21px;margin-top:5px}.log-filters>button{font-size:9px}.logs{height:166px;display:block;padding-top:10px}.log-line{grid-template-columns:48px 1fr;gap:0 5px;margin-bottom:12px}.log-time,.log-level{font-size:8px}.log-text{font-size:9px}.terminal-footer{font-size:7px}.selected-work{padding-top:41px}.section-label{font-size:10px}.work-summary{grid-template-columns:1fr;gap:24px;margin-top:16px}.work-summary h2{font-size:26px}.work-summary p{font-size:12px}.inline-skills{font-size:9px}.work-impact strong{font-size:18px;min-width:76px}.work-impact>.small{font-size:9px;max-width:290px;margin-top:12px}.page-intro{padding:36px 0 29px}.page-intro h1{font-size:37px;letter-spacing:-1.7px;margin:16px 0 19px}.page-intro>.eyebrow{font-size:9px}.page-intro>p:not(.eyebrow){font-size:13px}.page-intro .intro-links{gap:18px;margin-top:15px}.resume-section{padding-top:30px}.resume-section>h2{font-size:21px;margin-bottom:12px}summary{display:grid;grid-template-columns:1fr 18px;gap:10px;padding:23px 0}.job-date{grid-column:1;font-size:9px}.job-info{grid-column:1;grid-row:2}.job-info strong{font-size:17px;line-height:1.5}.job-info>span{font-size:11px}summary>.icon{grid-column:2;grid-row:1;margin-top:3px;width:13px;height:13px}.job-content{margin-left:0;font-size:12px;line-height:1.9;padding-bottom:23px}.job-content ul{padding-left:16px}.skill-matrix{grid-template-columns:1fr;gap:24px;margin-top:22px}.skill-group h3{font-size:15px}.skill-group p{font-size:12px}.record-row{grid-template-columns:1fr;gap:10px;padding:20px 0}.record-row h3{font-size:16px}.record-meta{font-size:9px}.record-row p{font-size:12px}.record-row p.small{font-size:10px}.credential-row{display:block;padding:17px 0}.credential-row h3{font-size:13px;line-height:1.6}.credential-row>span{display:block;font-size:10px;margin-top:5px}.credential-note{font-size:10px}.resume-footnote{font-size:10px;gap:11px}.case-page .page-intro h1{font-size:44px}.case-facts{gap:20px;padding:24px 0}.case-facts strong{font-size:29px}.case-facts div>span{font-size:11px;line-height:1.7}.case-facts p{font-size:9px;line-height:1.8}.case-opening{font-size:18px;line-height:1.8;margin:28px 0 23px}.case-technology{grid-template-columns:1fr;gap:9px;padding-bottom:23px}.case-technology p{font-size:11px}.editorial-section{grid-template-columns:23px 1fr;gap:12px;padding:31px 0}.section-number{font-size:9px;padding-top:5px}.editorial-section h2{font-size:22px;margin-bottom:16px}.editorial-section p{font-size:12px;line-height:1.95}.editorial-section h3{font-size:16px}.flow{gap:0 17px;margin-top:19px}.flow>button{font-size:10px;min-height:44px;padding-bottom:9px}.flow>button>span{font-size:8px}.stage-detail{grid-template-columns:1fr;gap:7px;margin:20px 0 24px;min-height:210px}.stage-detail>.section-number{display:none}.stage-detail h3{font-size:15px}.stage-detail p,.integration-line p{font-size:12px}.stage-detail code{font-size:9px}.editorial-section .design-note{font-size:10px;margin-top:23px}.case-subsection{margin-top:25px}.request-lifecycle,.priority-list{font-size:12px;padding-left:17px}.editorial-section .takeaway{font-size:16px;margin-top:26px}.source-note{font-size:10px}.contact-section{grid-template-columns:1fr;gap:31px;margin-top:45px;padding:32px 0 39px;scroll-margin-top:125px}.contact-section h2{font-size:32px}.contact-section p{font-size:12px}.contact-section p.eyebrow{font-size:10px}.contact-email{font-size:18px;gap:12px;margin-top:19px}.contact-compose{padding-top:0}.contact-options{margin-top:4px;gap:24px}.contact-options>button{font-size:11px}.contact-compose>.text-link{font-size:11px}footer{padding:17px 20px;font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{body{background:#fff;color:#111;font-size:10pt}.header,.skip-link,.intro-links,.contact-section,footer,.toast,.job-content .text-link,.resume-footnote a{display:none!important}main{max-width:none;padding:0}.view{display:none!important}#resume,#resume[hidden]{display:block!important}.page-intro{padding:0 0 20px}.page-intro h1{font-size:26pt}.page-intro>p:not(.eyebrow){font-size:11pt}p,.eyebrow,.job-content ul,.job-date,.job-info>span,.record-meta,.credential-row>span,.resume-footnote{color:#444!important}.resume-section{padding-top:24px}.resume-section>h2{font-size:16pt}summary{padding:16px 0 10px;grid-template-columns:140px 1fr 12px;gap:20px}.job-date{font-size:8pt}.job-info strong{font-size:12pt}.job-content{font-size:9pt;line-height:1.6;margin-left:160px;padding-bottom:14px}.skill-matrix{grid-template-columns:1fr 1fr;gap:20px 35px}.skill-group{break-inside:avoid}.skill-group p{font-size:9pt}.record-row{grid-template-columns:140px 1fr;gap:20px}.record-meta{font-size:8pt}.credential-row{padding:12px 0;display:flex}.credential-row h3{font-size:10pt}.credential-row>span{font-size:8pt}.credential-note,.resume-footnote{font-size:8pt}details{break-inside:avoid}.resume-footnote{margin-top:24px}}
#renderer-status{display:none}
@media(max-width:600px){.name-link{order:1}.header-contact{order:2}.nav{order:3}}
.timeline-subheading{font-size:20px;margin:33px 0 4px}.job-content .experience-note{font-size:11px;line-height:1.9;color:#999;margin-bottom:14px}.credential-row.credential-with-badge{display:grid;grid-template-columns:88px 1fr;gap:25px;align-items:center;padding:22px 0}.credential-art{display:grid;place-items:center;width:80px;height:80px}.credential-art img{display:block;width:80px;height:80px;object-fit:contain}.credential-with-badge h3{font-size:15px;line-height:1.7}.credential-with-badge p{font-size:11px;margin-top:6px}.credential-with-badge .cert-progress{color:#c5c5c5}.architecture-figure{margin:27px 0 0}.architecture-figure figcaption{font-size:13px;color:#ccc;display:flex;justify-content:space-between;gap:20px;margin-bottom:9px}.architecture-figure figcaption span{font-size:10px;color:#888}.diagram-toolbar{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-height:48px}.diagram-toolbar button{min-width:36px;min-height:44px;font-size:17px;padding:0 5px}.diagram-toolbar #diagram-fit{font-size:11px;min-width:80px}.diagram-toolbar output{font:10px var(--mono);min-width:40px;text-align:center;color:#aaa}.diagram-toolbar>span{font-size:9px;color:#777;margin-left:auto}.diagram-viewport{max-height:740px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#444 #080808;border-bottom:1px solid var(--line)}#architecture-diagram{display:block;width:100%;min-width:800px;height:auto;background:#000;font-family:var(--sans)}.diagram-lane{font:11px var(--mono);fill:#aaa;letter-spacing:1px}.diagram-node rect{fill:#080808;stroke:#404040;stroke-width:1}.diagram-node-title{font-size:15px;font-weight:500;fill:#ddd;letter-spacing:-.2px}.diagram-node-description{font-size:12px;fill:#929292}.diagram-node[role=button]{cursor:pointer}.diagram-node[aria-pressed=true] rect{stroke:#b4d7d6;fill:#0c1515;stroke-width:1.5}.diagram-node[role=button]:hover rect{stroke:#ccc}.diagram-node[role=button]:focus-visible{outline:none}.diagram-node[role=button]:focus-visible rect{stroke:#fff;stroke-width:2.5}.diagram-footnote{font-size:10px;fill:#888}.stage-detail{margin-top:25px}
.editorial-section>div{min-width:0}.architecture-figure{min-width:0;max-width:100%}.diagram-viewport{width:100%;min-width:0}.credential-art img[src$="ccna.png"]{background:#fff;padding:4px;border-radius:2px}
.diagram-node[aria-haspopup=dialog]{cursor:pointer}.diagram-node[aria-haspopup=dialog]:hover rect{stroke:#ccc}.diagram-node[aria-haspopup=dialog]:focus-visible{outline:none}.diagram-node[aria-haspopup=dialog]:focus-visible rect{stroke:#fff;stroke-width:2.5}
#source-dialog{background:#070707;color:var(--text);border:1px solid #383838;border-radius:3px;padding:26px;width:min(940px,94vw);max-height:90vh;overflow:auto;overscroll-behavior:contain;box-shadow:0 25px 100px #000a}#source-dialog::backdrop{background:#000c;backdrop-filter:blur(5px)}body:has(#source-dialog[open]){overflow:hidden}.source-dialog-header{display:flex;align-items:start;justify-content:space-between;gap:25px}.source-dialog-header .eyebrow{font-size:10px}.source-dialog-header h2{font-size:28px;margin-top:10px;line-height:1.3}.source-dialog-header>.icon-button{border:1px solid #333;flex-shrink:0}.source-dialog-header .icon{width:17px;height:17px}#source-description{font-size:13px;line-height:1.85;margin:20px 0 25px;max-width:800px}.source-excerpt{border-top:1px solid #303030;margin:0 0 26px;min-width:0}.source-excerpt-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 0}.source-attribution{min-width:0}.source-file{font:11px/1.8 var(--mono);color:#ccc;overflow-wrap:anywhere}.source-location{display:block;font:9px/1.8 var(--mono);color:#888;margin-top:4px}.source-copy{min-height:44px;flex-shrink:0;font-size:11px;color:#bbb;border-bottom:1px solid #555;padding:0 2px}.source-code{font:11px/1.9 var(--mono);color:#ccc;background:#0b0b0b;padding:16px 14px;margin:0;overflow:auto;max-height:440px;tab-size:2;scrollbar-width:thin;scrollbar-color:#444 #0b0b0b;overscroll-behavior:contain}.source-code>code{display:block;min-width:max-content}.source-line{display:grid;grid-template-columns:4ch 1fr;gap:18px;white-space:pre;min-height:1.9em}.source-line-number{color:#6f6f6f;text-align:right;user-select:none}.source-code-text{display:block;white-space:pre}.syntax-comment{color:#939393}.syntax-string{color:#b8c6ad}.syntax-keyword{color:#a5c5d3}.syntax-number{color:#d0bfa4}.source-context{font-size:10px;color:#888;line-height:1.9;margin-top:7px}
@media(max-width:600px){#source-dialog{padding:18px 15px;max-height:92vh;width:94vw}.source-dialog-header{gap:13px}.source-dialog-header .eyebrow{font-size:8px}.source-dialog-header h2{font-size:22px}.source-dialog-header>.icon-button{width:38px;height:44px}.source-dialog-header .icon{width:15px;height:15px}#source-description{font-size:12px;margin:18px 0 23px}.source-excerpt-header{gap:10px;align-items:start;padding:12px 0}.source-file{font-size:9px}.source-location{font-size:8px}.source-copy{font-size:9px;min-width:58px}.source-code{font-size:10px;padding:13px 9px;max-height:370px}.source-line{gap:12px;grid-template-columns:3ch 1fr}.source-context{font-size:9px}}
@media(max-width:600px){.timeline-subheading{font-size:19px;margin-top:28px}.job-content .experience-note{font-size:10px}.credential-row.credential-with-badge{grid-template-columns:65px 1fr;gap:18px;padding:20px 0}.credential-art,.credential-art img{width:62px;height:62px}.credential-with-badge h3{font-size:12px}.credential-with-badge p{font-size:10px}.architecture-figure figcaption{display:block;font-size:12px}.architecture-figure figcaption span{display:block;font-size:9px;margin-top:5px}.diagram-toolbar{gap:6px;flex-wrap:wrap;padding-bottom:6px}.diagram-toolbar>span{flex-basis:100%;margin:0 0 4px;font-size:8px}.diagram-toolbar #diagram-fit{font-size:10px}.diagram-viewport{max-height:560px}.diagram-toolbar output{font-size:9px}}
