:root{--bg-fallback:#222;--bg-image:url(/bg/goonk-legacy.jpg);--bg-overlay:#222222a6;--panel:#fffffff5;--panel-alt:#f5f5f5f5;--text:#555;--muted:#999;--muted-2:#a8b4bf;--heading:#222;--border:#0000001f;--accent:#0aa7ff;--max:1140px;--radius:12px}[data-theme=dark]{--bg-fallback:#0f0f0f;--bg-overlay:#0a0a0cd1;--panel:#18181cf2;--panel-alt:#121216f2;--text:#c8c8d0;--muted:#8888a0;--muted-2:#6a6a7f;--heading:#e8e8f0;--border:#ffffff14;--accent:#4db8ff}*{box-sizing:border-box}html{overflow-x:hidden}html,body{height:100%}body{background:var(--bg-fallback);color:#ffffffeb;isolation:isolate;margin:0;font-family:Open Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;line-height:1.55;position:relative}.photo-zone{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);position:relative}.photo-zone:before{content:"";background-image:var(--bg-image);z-index:0;background-position:top;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.photo-zone:after{content:"";background:var(--bg-overlay);z-index:1;position:absolute;inset:0}.photo-zone-inner{z-index:2;max-width:var(--max);margin:0 auto;padding:0 18px;position:relative}@media (width<=640px){.photo-zone-inner{padding:0 14px}}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}a:hover:has(h1,h2,h3,h4,p),a.card:hover{text-decoration:none}@media (prefers-reduced-motion:no-preference){a,button,.badge,.card,.project-thumb{transition:transform .12s,box-shadow .12s,border-color .12s,opacity .12s}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}a,button,.badge,.card,.project-thumb{transition:none!important}}:where(a,button,input,textarea,select,summary):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.container{max-width:var(--max);margin:0 auto;padding:28px 18px 0}.nav{justify-content:space-between;align-items:center;gap:14px;padding:14px 0 22px;display:flex}.nav nav{gap:14px;display:flex}.brand{letter-spacing:.06em;text-transform:uppercase;font-family:Voltaire,Open Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;font-weight:400}.brand a{color:#fff;text-decoration:none}.nav a{color:#ffffffd1}.nav a.active{color:#fff;text-decoration:none}.nav a:hover{color:#fff}.card{border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);color:var(--text);padding:18px}.card:hover{border-color:#0000002e}.card h1,.card h2,.card h3{color:var(--heading)}.hero{border-radius:var(--radius);color:#fff;backdrop-filter:blur(2px);background:#00000042;border:1px solid #ffffff2e;padding:22px}.hero .badge{margin-bottom:12px}.h1{margin:0 0 10px;font-family:Voltaire,Open Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;font-size:clamp(28px,5vw,44px);line-height:1.1}.lede{color:#ffffffc7;max-width:70ch;margin:0}.grid{grid-template-columns:repeat(12,1fr);gap:14px;margin-top:14px;display:grid}.col-7{grid-column:span 7}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-4{grid-column:span 4}@media (width<=860px){.col-7,.col-5,.col-8,.col-4{grid-column:1/-1}.col-6{grid-column:span 6}}@media (width<=720px){.col-6{grid-column:1/-1!important}}@media (width<=640px){.container{padding:18px 14px 0}.nav{flex-wrap:wrap;gap:10px;padding:10px 0 18px}.nav nav{flex-wrap:wrap;font-size:14px;gap:10px!important}.hero{padding:18px}.h1{font-size:clamp(24px,6vw,36px)}.badge{padding:6px 9px;font-size:12px}.cv-header{flex-direction:column!important;align-items:flex-start!important}.cv-header button{width:100%}.quote-callout{padding-left:36px!important}.recent-wins{grid-template-columns:1fr!important}button,a.badge{justify-content:center;align-items:center;min-height:44px;display:inline-flex}.meta{word-wrap:break-word;overflow-wrap:break-word}.prose{font-size:15px}.prose li{margin-bottom:8px}.card{padding:14px}.grid{gap:12px}}.meta{color:var(--muted);font-size:14px}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:#fff6;font-size:11px}.micro-label{color:#ffffff7a;margin-bottom:6px;font-size:11px}.verdict-badge{text-transform:none;letter-spacing:0;color:var(--text);font-size:11px}.verdict-badge:before{content:"· ";color:var(--muted)}.chip{border:1px solid var(--border);color:var(--muted);border-radius:4px;padding:3px 9px;font-size:11px;text-decoration:none;transition:color .15s,border-color .15s;display:inline-block}.chip:hover{color:var(--accent);border-color:var(--accent)}.title-link{color:var(--heading);font-weight:600;text-decoration:none}.title-link:hover{color:var(--accent)}.page-intro{margin-top:6px}.page-intro h1{color:#fff;margin:8px 0 10px}.page-chapter{border-top:1px solid #ffffff1a;margin-top:56px;padding-top:32px}.page-chapter h2{color:#fff;margin:0;font-size:24px}.chapter-head{margin-bottom:14px}.chapter-num{letter-spacing:.1em;color:var(--accent);margin-bottom:6px;font-size:11px}.page-prose{color:#ffffffb3;max-width:70ch;margin:0 0 24px;font-size:15.5px;line-height:1.65}.page-lede{color:#ffffffa6;max-width:62ch;margin:0;font-size:16px;line-height:1.6}.entry-meta{color:#fff6;font-size:12px}.field-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:700}.section-divider{border-top:1px solid #ffffff1a;margin-top:48px;padding-top:32px}.footer{font-size:14px}.footer.card{color:#fff9;background:var(--bg-fallback);border:none;border-top:1px solid #ffffff1f;border-radius:0;margin-top:0;padding:42px 0 28px}.footer.card:hover{border-color:#ffffff1f}.footer-links{color:#fff6;font-size:14px}.footer-links a{color:var(--accent);text-decoration:underline #0aa7ff8c}.prose h1,.prose h2,.prose h3{line-height:1.2}.prose{color:var(--text)}.prose h1,.prose h2,.prose h3{color:var(--heading);font-family:Voltaire,Open Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}.prose p{color:var(--text)}.prose a{color:var(--accent);text-decoration:underline #0aa7ff8c}.prose code:not(pre code){color:var(--heading);background:#0000000f;border-radius:8px;padding:2px 6px}.prose pre{border-radius:var(--radius);border:1px solid var(--border);color:#333;background:#f5f5f5eb;padding:14px;overflow:auto}[data-theme=dark] .prose code:not(pre code){color:#e8e8f0;background:#ffffff14}[data-theme=dark] .prose pre{color:#d0d0e0;background:#0c0c0ee6;border-color:#ffffff1f}.project-thumb{border-radius:calc(var(--radius) - 2px);border:1px solid var(--border);background:var(--panel-alt);width:100%;height:auto;display:block}a:hover .project-thumb{border-color:#0000002e}.embed{aspect-ratio:16/10;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-alt);width:100%;overflow:hidden}.embed iframe{border:0;width:100%;height:100%;display:block}@media print{nav,header.nav,footer,script,.no-print,#download-pdf,#debug-mode,.debug-comment,#achievement-counter{display:none!important}@page{margin:.5in;size:Letter}body{margin:0;padding:0;color:#000!important;background:#fff!important}body:before,body:after{display:none!important}.container{max-width:100%!important;padding:0!important}.card{box-shadow:none!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important}.cv-header{page-break-after:avoid;align-items:baseline!important;margin-bottom:6pt!important}h1{color:#000!important;margin:0 0 4pt!important;font-size:18pt!important}h2{color:#000!important;border-bottom:1px solid #ccc!important;margin-top:10pt!important;margin-bottom:5pt!important;padding-bottom:2pt!important;font-size:12pt!important}h3{page-break-after:avoid;color:#000!important;margin:0 0 3pt!important;font-size:10pt!important;font-weight:600!important}p,li{color:#000!important;margin-bottom:4pt!important;font-size:9pt!important;line-height:1.35!important}ul,ol{margin-top:3pt!important;margin-bottom:6pt!important;padding-left:16pt!important}li{page-break-inside:avoid;margin-bottom:2pt!important}.meta,.cv-role,.cv-job-date,.cv-job-loc,.cv-group-heading{color:#444!important;font-size:8pt!important}.cv-role{color:#000!important;font-size:11pt!important}.cv-section{border-top:none!important;margin-top:5pt!important;padding-top:2pt!important}.cv-job{page-break-inside:avoid;border-top:1px solid #ddd!important;grid-template-columns:90pt 1fr!important;gap:10pt!important;padding:4pt 0!important;display:grid!important}.cv-job-title{color:#000!important;margin-bottom:3pt!important;font-size:10pt!important}.cv-group-heading{page-break-after:avoid;margin:8pt 0 2pt!important}.cv-pullquote{page-break-inside:avoid;border-left:2px solid #999!important;margin:8pt 0!important;padding-left:10pt!important}.cv-pullquote p{font-size:9pt!important}.cv-pullquote-attr{font-size:7.5pt!important}.cv-skills-grid{grid-template-columns:repeat(4,1fr)!important;gap:8pt!important;display:grid!important}.cv-skills-list{font-size:8pt!important}a{color:#000!important;text-decoration:none!important}a[href^=mailto\:]:after{content:" (" attr(href) ")";color:#666;font-size:7pt}a[href^=http]:after{content:" (" attr(href) ")";color:#666;word-break:break-all;font-size:7pt}a[href^=\/]:after{content:none!important}p{orphans:3;widows:3}ul,ol{orphans:2;widows:2}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.lastfm-tab{cursor:pointer;color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;padding:2px 0;font-size:11px;transition:color .15s,border-color .15s}.lastfm-tab:hover{color:#ffffffd9}.lastfm-tab-active{border-bottom-color:var(--accent)!important;color:var(--accent)!important;background:0 0!important}.lastfm-tracklist{flex-direction:column;width:100%;display:flex}.lastfm-track{border-bottom:1px solid var(--border);color:inherit;align-items:baseline;gap:5px;padding:5px 0;font-size:13px;text-decoration:none;transition:opacity .15s;display:flex}.lastfm-track:last-child{border-bottom:none}.lastfm-track:hover{opacity:.75}.lastfm-track-artist{white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;max-width:35%;font-weight:600;overflow:hidden}.lastfm-track-sep{opacity:.4;flex-shrink:0}.lastfm-track-name{opacity:.8;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lastfm-track-now{color:var(--accent);flex-shrink:0;margin-left:auto;padding-left:6px;font-size:10px}.lastfm-track.lastfm-now-playing .lastfm-track-artist,.lastfm-track.lastfm-now-playing .lastfm-track-name{color:var(--accent)}.photo-grid{columns:3 180px;column-gap:8px}.photo-link{break-inside:avoid;border-radius:var(--radius);margin-bottom:8px;text-decoration:none;display:block;overflow:hidden}.photo-thumb{width:100%;height:auto;transition:opacity .2s;display:block}.photo-link:hover .photo-thumb{opacity:.85}.topology{flex-direction:column;align-items:center;gap:0;margin:16px 0;display:flex}.topology-internet{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-transform:uppercase;letter-spacing:.08em;opacity:.6;padding:6px 20px;font-size:12px;font-weight:600}.topology-arrow{opacity:.3;font-size:18px;line-height:1.4}.topology-nodes{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;width:100%;display:grid}.topology-node{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:12px;position:relative}.topology-node--public{border-color:var(--accent);box-shadow:0 0 0 1px #0aa7ff26}.topology-node--replacing{opacity:.55}.topology-node-header{align-items:center;gap:6px;margin-bottom:2px;display:flex}.topology-node-name{font-size:14px;font-weight:700}.topology-badge{letter-spacing:.06em;text-transform:uppercase;border-radius:4px;padding:1px 5px;font-size:9px;font-weight:700}.topology-badge--public{color:var(--accent);background:#0aa7ff26}.topology-badge--replacing{color:var(--muted);background:#ffffff14}.topology-node-meta{opacity:.5;margin-bottom:8px;font-size:11px}.topology-services{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.topology-services li{align-items:center;gap:5px;font-size:12px;display:flex}.topology-services li:before{content:"·";opacity:.4}.topology-service-note{opacity:.5;font-size:10px;font-style:italic}.topology-network{text-align:center;flex-direction:column;align-items:center;gap:3px;margin-top:12px;display:flex}.topology-network-label{opacity:.5;font-size:12px;font-weight:600}.topology-network-note{opacity:.4;font-size:11px;font-style:italic}.theme-toggle[data-astro-cid-l6lhmie6]{border:2px solid var(--border);background:var(--card);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex;position:relative;box-shadow:0 2px 4px #0000001a}.theme-toggle[data-astro-cid-l6lhmie6]:hover{background:var(--muted-bg);border-color:var(--accent);box-shadow:0 4px 8px #00000026}.sun-icon[data-astro-cid-l6lhmie6],.moon-icon[data-astro-cid-l6lhmie6]{transition:all .3s;position:absolute}.sun-icon[data-astro-cid-l6lhmie6]{color:#f59e0b}.moon-icon[data-astro-cid-l6lhmie6]{color:#8b5cf6}.sun-icon[data-astro-cid-l6lhmie6]{opacity:1;transform:rotate(0)scale(1)}.moon-icon[data-astro-cid-l6lhmie6],[data-astro-cid-l6lhmie6][data-theme=dark] .sun-icon[data-astro-cid-l6lhmie6]{opacity:0;transform:rotate(90deg)scale(0)}[data-astro-cid-l6lhmie6][data-theme=dark] .moon-icon[data-astro-cid-l6lhmie6]{opacity:1;transform:rotate(0)scale(1)}
