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