:root{--ink-0: #0a0d13;--ink-1: #10141d;--ink-2: #161c28;--line: #232b3b;--line-bright: #33405a;--text: #eef1f7;--text-2: #9aa7bd;--text-3: #5d6a80;--blue: #7da7d9;--blue-deep: #3c5a80;--amber: #e8b34b;--green: #7ec98f;--font-display: "Instrument Serif", Georgia, serif;--font-sans: "Instrument Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--radius: 10px;--dur: .18s;--ease-out: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;min-height:100dvh;background-color:var(--ink-0);background-image:radial-gradient(ellipse 700px 420px at 18% -60px,rgba(125,167,217,.07),transparent 65%),radial-gradient(ellipse 500px 380px at 92% 8%,rgba(232,179,75,.035),transparent 70%);background-repeat:no-repeat;color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:60;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}::selection{background:var(--blue);color:var(--ink-0)}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1.25rem;background:#0a0d13d1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar-mark{display:flex;align-items:center;gap:.7rem;color:var(--text);text-decoration:none}.topbar-mark img{width:30px;height:30px;display:block;filter:brightness(1.55)}.topbar-word{font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}.topbar-word-sep{color:var(--text-3);margin:0 .15rem}.topbar-word-role{color:var(--text-3);transition:color var(--dur) ease-out}.topbar-mark:hover .topbar-word-role{color:var(--blue)}.topbar-mark:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}@media(max-width:680px){.topbar-word-sep,.topbar-word-role{display:none}}.topbar-nav{display:flex;gap:1.1rem;flex-wrap:wrap}.topbar-nav a{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent;transition:color var(--dur) ease-out,border-color var(--dur) ease-out}.topbar-nav a:hover{color:var(--text);border-bottom-color:var(--blue)}.topbar-nav a:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:2px}.page{max-width:1080px;margin:0 auto;padding:1.5rem 1.25rem 3rem;display:grid;grid-template-columns:1fr;gap:1.25rem}.main{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.main>section{padding:0;margin:0}@media(min-width:880px){.page{grid-template-columns:300px minmax(0,1fr);gap:1.5rem;padding:2rem 2rem 4rem}}.rail-portrait .portrait-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%!important;height:100%!important;border-radius:10px;opacity:0;transition:opacity .9s var(--ease-out);cursor:crosshair;touch-action:pan-y}.rail-portrait.portrait-ready .portrait-canvas{opacity:1}.rail-portrait-img{transition:opacity .9s var(--ease-out)}.rail-portrait-img.portrait-img-hidden{opacity:0}.rail-portrait.portrait-revealed .portrait-canvas{opacity:0;transition-delay:.25s}.rail-portrait.portrait-revealed .rail-portrait-img.portrait-img-hidden{opacity:1}@media(prefers-reduced-motion:reduce){.rail-portrait .portrait-canvas,.rail-portrait-img{transition:none}}.reveal{opacity:0;transform:translateY(14px);transition:opacity .65s var(--ease-out) var(--reveal-delay, 0ms),transform .65s var(--ease-out) var(--reveal-delay, 0ms)}.reveal.is-in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}.site-footer{border-top:1px solid var(--line);padding:1.75rem 1.25rem 2.25rem}.site-footer-inner{max-width:1080px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}.site-footer-brand{display:flex;align-items:center;gap:.6rem}.site-footer-brand img{width:24px;height:24px;display:block}.rail{display:flex;flex-direction:column;gap:1rem;font-family:var(--font-sans)}.rail-panel{background:var(--ink-1);border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.25rem}.rail-portrait{position:relative;background:#080b10;border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:border-color .15s ease-out}.rail-portrait:hover{border-color:var(--line-bright)}.rail-portrait-img{display:block;width:100%;height:auto;aspect-ratio:1 / 1;object-fit:cover;border-radius:10px}.rail-portrait-caption{position:absolute;bottom:0;left:0;right:0;padding:.5rem .75rem;font-family:var(--font-mono);font-size:10px;color:var(--text-3);background:linear-gradient(to top,rgba(8,11,16,.9),transparent);pointer-events:none}.rail-name{font-family:var(--font-display);font-size:2rem;font-weight:400;font-style:normal;line-height:1.1;color:var(--text);margin:0}.rail-headline{font-family:var(--font-sans);font-size:14px;line-height:1.55;color:var(--text-2);margin:0}.rail-status{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem;font-family:var(--font-mono);font-size:12px}.rail-status-row{display:flex;align-items:center;gap:.45rem}.rail-status-dot{position:relative;width:8px;height:8px;border-radius:50%;background:var(--green)}.rail-status-dot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:var(--green);opacity:.35;animation:rail-pulse 2s ease-out infinite}@keyframes rail-pulse{0%,to{transform:scale(1);opacity:.35}50%{transform:scale(2);opacity:.05}}.rail-status-online{color:var(--green)}.rail-status-key{color:var(--text-3)}.rail-status-value{color:var(--text-2)}.rail-status-value--amber{color:var(--amber)}.rail-kicker{display:block;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--text-3);margin-bottom:.6rem}.rail-contact{display:flex;flex-direction:column}.rail-contact-link{display:flex;align-items:center;justify-content:space-between;padding:.55rem 0;border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:12.5px;color:var(--text);text-decoration:none;transition:background-color .15s ease-out,border-color .15s ease-out,transform .15s ease-out}.rail-contact-link:last-child{border-bottom:none}.rail-contact-link:hover{background-color:var(--ink-2);border-color:var(--line-bright);transform:translateY(-1px)}.rail-contact-link:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}.rail-contact-arrow{color:var(--text-3);transition:transform .15s ease-out}.rail-contact-link:hover .rail-contact-arrow{transform:translate(2px,-2px)}.rail-network{background:#e8b34b12;border:1px solid rgba(232,179,75,.28);border-radius:10px;padding:.85rem 1rem;font-family:var(--font-display);font-size:15px;font-style:italic;color:var(--amber)}@media(min-width:720px){.rail{position:sticky;top:1.5rem;align-self:start}}.about-section{padding:0 1rem}.about-grid{display:grid;gap:1rem;max-width:1100px;margin:0 auto}.about-panel{background:var(--ink-1);border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.25rem;transition:border-color .2s ease-out,background-color .2s ease-out,transform .2s ease-out}.about-panel:hover{border-color:var(--line-bright);background:var(--ink-2);transform:translateY(-1px)}.about-kicker{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--text-3);display:block;margin-bottom:.35rem}.about-title{font-family:var(--font-display);font-style:italic;font-size:1.35rem;color:var(--blue);margin:0 0 .75rem;line-height:1.25}.about-copy{font-family:var(--font-sans);font-size:15px;line-height:1.65;color:var(--text-2);margin:0 0 1rem}.about-copy:last-of-type{margin-bottom:0}.about-link{font-family:var(--font-mono);font-size:12px;color:var(--text-2);text-decoration:none;border:1px solid var(--line);border-radius:8px;padding:.5rem .9rem;display:inline-block;margin-top:.75rem;transition:border-color .2s ease-out,background-color .2s ease-out,transform .2s ease-out}.about-link:hover{border-color:var(--line-bright);background:var(--ink-2);transform:translateY(-1px)}.about-link:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.about-cert{display:flex;align-items:center;gap:.85rem;margin-top:1rem;padding:.7rem .85rem;background:var(--ink-0);border:1px solid var(--line);border-radius:8px;text-decoration:none;transition:border-color .2s ease-out,background-color .2s ease-out,transform .2s ease-out}.about-cert:hover{border-color:var(--line-bright);background:var(--ink-2);transform:translateY(-1px)}.about-cert:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.about-cert-img{width:52px;height:52px;flex:none;display:block}.about-cert-body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.about-cert-name{font-family:var(--font-sans);font-size:13.5px;font-weight:500;color:var(--text)}.about-cert-meta{font-family:var(--font-mono);font-size:10.5px;color:var(--text-3);line-height:1.5}@media(min-width:720px){.about-grid{grid-template-columns:1fr 1fr;gap:1.25rem}}.top8-section{width:100%}.top8-panel{background:var(--ink-1);border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.25rem}.top8-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.top8-kicker{display:block;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--text-3);margin-bottom:.35rem}.top8-heading{margin:0;font-family:var(--font-display);font-size:1.35rem;font-style:italic;font-weight:400;color:var(--blue)}.top8-heading-note{margin:0;font-family:var(--font-mono);font-size:11px;color:var(--text-3)}.top8-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.top8-tile{position:relative;display:flex;flex-direction:column;gap:.35rem;min-height:112px;padding:.9rem;background:var(--ink-1);border:1px solid var(--line);border-radius:8px;text-decoration:none;transition:transform .18s ease-out,background-color .18s ease-out,border-color .18s ease-out}.top8-tile:hover{transform:translateY(-1px);background-color:var(--ink-2);border-color:var(--line-bright)}.top8-tile:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.top8-tile--live{background:#7ec98f0f;border-color:#7ec98f59}.top8-tile--live:hover{border-color:#7ec98fa6}.top8-tile--placeholder{border-style:dashed;cursor:default}.top8-tile--placeholder:hover{border-color:var(--line-bright)}.top8-index{font-family:var(--font-mono);font-size:11px;color:var(--text-3)}.top8-tile--live .top8-index{color:var(--green)}.top8-name{font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--text)}.top8-tile--placeholder .top8-name{color:var(--text-3)}.top8-desc{font-family:var(--font-sans);font-size:12px;line-height:1.5;color:var(--text-2)}.top8-placeholder-note{font-family:var(--font-mono);font-size:10.5px;color:var(--text-3)}.top8-badge{position:absolute;top:.65rem;right:.65rem;font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.06em;color:var(--green);padding:2px 5px;border:1px solid rgba(126,201,143,.4);border-radius:4px;background:#7ec98f1f}@media(min-width:720px){.top8-grid{grid-template-columns:repeat(4,1fr)}}.xp-section{padding:0 1rem 2.5rem}.xp-panel{background:var(--ink-1);border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.25rem 1.25rem}.xp-kicker{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--text-3);margin-bottom:.35rem}.xp-heading{font-family:var(--font-display);font-size:1.35rem;font-style:italic;color:var(--blue);margin:0 0 1.25rem}.xp-timeline{list-style:none;margin:0;padding:0 0 0 1.35rem;position:relative}.xp-timeline:before{content:"";position:absolute;top:.4rem;bottom:.4rem;left:.15rem;width:2px;background:var(--line)}.xp-entry{position:relative;padding-bottom:1.25rem;transition:color .2s ease-out}.xp-entry:last-child{padding-bottom:0}.xp-node{position:absolute;left:-1.35rem;top:.35rem;width:8px;height:8px;border-radius:50%;background:var(--ink-1);border:2px solid var(--blue-deep);box-shadow:0 0 0 2px var(--ink-1);transform:scale(1);transform-origin:center;transition:transform .2s ease-out,background-color .2s ease-out}.xp-entry:first-child .xp-node{background:var(--blue);border-color:var(--blue)}.xp-role{font-family:var(--font-sans);font-size:14.5px;color:var(--text);line-height:1.45;transition:color .2s ease-out}.xp-meta{font-family:var(--font-mono);font-size:11.5px;color:var(--text-3);line-height:1.55;margin-top:.15rem}.xp-badge{display:inline-block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);border:1px solid var(--blue-deep);border-radius:4px;padding:.1rem .35rem;margin-left:.4rem;vertical-align:1px}.xp-org-link{color:var(--text-2);text-decoration:underline;text-decoration-color:var(--blue-deep);text-underline-offset:3px;transition:color .2s ease-out,text-decoration-color .2s ease-out}.xp-org-link:hover{color:var(--blue);text-decoration-color:var(--blue)}.xp-org-link:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:2px}.xp-entry:hover .xp-node{transform:scale(1.3)}.xp-entry:hover .xp-role{color:var(--blue)}.xp-earlier{font-family:var(--font-mono);font-size:11.5px;color:var(--text-3);margin:1.25rem 0 0;line-height:1.55}@media(min-width:720px){.xp-section{padding:0 0 2.5rem}}.skills-section{margin:0 0 1.5rem}.skills-panel{background:var(--ink-1);border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.25rem}.skills-kicker{display:block;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--text-3);margin-bottom:.35rem}.skills-heading{font-family:var(--font-display);font-size:1.35rem;font-style:italic;font-weight:400;color:var(--blue);line-height:1.2;margin:0 0 1.25rem}.skills-groups{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:1.25rem}.skills-group-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-3);font-weight:400;margin:0 0 .6rem}.skills-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.skills-chip{font-family:var(--font-sans);font-size:13px;color:var(--text-2);border:1px solid var(--line);border-radius:999px;padding:.35rem .8rem;transition:border-color .15s ease-out,color .15s ease-out,background-color .15s ease-out,transform .15s ease-out}.skills-chip:hover{border-color:var(--line-bright);color:var(--text);background:var(--ink-2);transform:translateY(-1px)}.skills-footnote{font-family:var(--font-mono);font-size:11.5px;color:var(--text-3);line-height:1.5;margin:0}@media(min-width:720px){.skills-panel{padding:1.25rem 1.5rem}.skills-groups{gap:1.5rem}}.wall-section{display:block}.wall-panel{background:var(--ink-1);border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.25rem}.wall-header{margin-bottom:.75rem}.wall-kicker{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.15em;color:var(--text-3);text-transform:uppercase;margin-bottom:.35rem}.wall-heading{font-family:var(--font-display);font-size:1.35rem;font-style:italic;font-weight:400;line-height:1.2;color:var(--blue);margin:0}.wall-feed{list-style:none;margin:0;padding:0}.wall-post{padding:1.25rem 0;border-top:1px solid var(--line)}.wall-post:first-child{border-top:none;padding-top:0}.wall-post:last-child{padding-bottom:0}.wall-date{display:block;font-family:var(--font-mono);font-size:11px;color:var(--text-3);margin-bottom:.4rem}.wall-message{font-family:var(--font-sans);font-size:14px;line-height:1.65;color:var(--text-2);margin:0}.wall-accent{color:var(--text)}.wall-footer{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:10.5px;color:var(--text-3)}.wall-footer p{margin:0}@media(min-width:720px){.wall-panel{padding:1.5rem 1.75rem}.wall-post{padding:1.5rem 0}}
