[data-md-color-scheme="slate"] {
  --md-default-bg-color: #090909;
  --md-primary-fg-color: #090909;
  --md-footer-bg-color: #070707;
  --md-footer-bg-color--dark: #070707;
  --md-typeset-a-color: #c4c4c4;
}
.md-header, .md-tabs { background: #090909; border-color: #262626; }
.md-typeset a { color: #c4c4c4; }
.md-content__inner:has(.landing) > h1 { display: none; }
.landing { position: relative; display: grid; grid-template-columns: 1.25fr .8fr; align-items: center; gap: 3rem; min-height: 580px; overflow: hidden; isolation: isolate; padding: 2.2rem 0 3rem; border-bottom: 1px solid #2b2b2b; }
.defense-field { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; opacity: .75; }
.landing-copy { position: relative; }
.md-typeset .eyebrow { font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; color: #989898; margin-bottom: 1.4rem; }
.md-typeset .landing h1 { font-size: clamp(2.15rem, 4vw, 3.25rem); font-weight: 600; line-height: 1.05; letter-spacing: -.055em; margin: 0 0 .75rem; }
.md-typeset .landing-role { font-size: 1.35rem; line-height: 1.25; color: #c0c0c0; letter-spacing: -.025em; margin: 0 0 1.4rem; }
.md-typeset .landing-summary { max-width: 53ch; font-size: .8rem; color: #acacac; line-height: 1.75; }
.landing-copy > p:last-child { margin-top: 1.5rem; }
.md-typeset .landing .md-button { background: #d6d6d6; color: #121212; border: 1px solid #d6d6d6; padding: .65em 1.15em; }
.md-typeset .landing .md-button:hover { background: #f0f0f0; }
.md-typeset .landing-portrait { margin: 0 1rem 0 0; position: relative; justify-self: end; max-width: 350px; width: 100%; }
.landing-portrait img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; filter: grayscale(1); border: 1px solid #393939; border-radius: 2px; }
.md-typeset .landing-portrait figcaption { text-align: left; font-style: normal; font-size: .7rem; color: #b6b6b6; margin: .7rem 0 0; }
.landing-portrait figcaption span { display: block; color: #8b8b8b; font-size: .62rem; margin-top: .2rem; }
.motion-toggle { position: absolute; right: 0; bottom: .7rem; border: 0; padding: .45rem .2rem; color: #a8a8a8; background: transparent; font: inherit; font-size: .6rem; cursor: pointer; min-height: 44px; }
.motion-toggle:hover { color: #e7e7e7; }
.motion-toggle[hidden] { display: none; }
.practice-strip { display: grid; grid-template-columns: repeat(3,1fr); gap: 2rem; padding: 1.7rem 0 2rem; }
.md-typeset .practice-strip h2 { font-size: .86rem; margin-top: 0; }
.md-typeset .practice-strip p { font-size: .74rem; color: #a7a7a7; }
.practice-strip > div + div { border-left: 1px solid #2b2b2b; padding-left: 1.4rem; }
.home-work { border-color: #2b2b2b; }
.md-typeset .linkedin-credentials table:not([class]) th:first-child { width: 52%; }
.md-typeset .linkedin-credentials table:not([class]) th:nth-child(2) { width: 30%; }
.md-typeset .linkedin-credentials table:not([class]) th:last-child { width: 18%; }
.landing { box-sizing: border-box; min-height: 550px; padding-top: 1.2rem; padding-bottom: 1.8rem; }
.landing > p { margin: 0; position: absolute; right: 0; bottom: 0; }
.motion-toggle { white-space: nowrap; }
.defense-field { opacity: 1; mask-image: linear-gradient(90deg, transparent 25%, #000000 57%); }
.md-typeset .landing-portrait { max-width: 300px; margin-right: 2rem; }
.replay-intro { position: absolute; bottom: .7rem; right: 7rem; padding: .45rem .2rem; min-height: 44px; background: transparent; border: 0; color: #a8a8a8; font: inherit; font-size: .6rem; cursor: pointer; white-space: nowrap; }
.replay-intro:hover { color: #e7e7e7; }
.replay-intro[hidden] { display: none; }
.md-header__button.md-logo img { width: 34px; height: 34px; }
.site-loader { display: none; position: fixed; inset: 0; z-index: 1000; background: #080808; align-items: center; justify-content: center; }
.intro-loading .site-loader { display: flex; }
.loader-content { text-align: center; width: 240px; color: #d4d4d4; }
.loader-mark { width: 86px; height: 86px; }
.loader-mark path { stroke: #dadada; stroke-width: 2.5; stroke-dasharray: 100; stroke-dashoffset: 100; }
.intro-loading .loader-mark path { animation: mark-draw 800ms cubic-bezier(.22,1,.36,1) forwards; }
.loader-content p { font-size: 18px; letter-spacing: -.02em; margin: 18px 0 25px; }
.loader-content p span { display: block; margin-top: 7px; font-size: 12px; letter-spacing: .08em; color: #8e8e8e; }
.loader-track { display: block; height: 1px; background: #2d2d2d; overflow: hidden; }
.loader-track::after { content: ''; display: block; width: 35%; height: 1px; background: #bfbfbf; animation: loader-travel 1100ms ease-in-out infinite; }
.skip-intro { border: 0; background: transparent; color: #939393; padding: 12px; min-height: 44px; margin-top: 25px; cursor: pointer; }
@keyframes mark-draw { to { stroke-dashoffset: 0; } }
@keyframes loader-travel { from { transform: translateX(-100%); } to { transform: translateX(390%); } }
@keyframes intro-arrive { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
.intro-enter .landing-copy > * { animation: intro-arrive 650ms cubic-bezier(.22,1,.36,1) both; }
.intro-enter .landing-copy > :nth-child(2) { animation-delay: 80ms; }
.intro-enter .landing-copy > :nth-child(3) { animation-delay: 150ms; }
.intro-enter .landing-copy > :nth-child(n+4) { animation-delay: 220ms; }
.intro-enter .landing-portrait { animation: intro-arrive 800ms 160ms cubic-bezier(.22,1,.36,1) both; }
.motion-ready .reveal-target { opacity: 0; transform: translateY(12px); transition: opacity 450ms ease-out, transform 450ms ease-out; transition-delay: var(--reveal-delay, 0ms); }
.motion-ready .reveal-target.is-visible { opacity: 1; transform: translateY(0); }
.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.7rem; }
.project-card { position: relative; padding: 1.5rem; background: #121212; border: 1px solid #2c2c2c; border-radius: 8px; display: flex; flex-direction: column; transition: border-color 150ms ease-out, background-color 150ms ease-out; }
.project-card:hover, .project-card:focus-within { border-color: #5a5a5a; background: #171717; }
.md-typeset .project-card h2 { margin: 1.2rem 0 .65rem; font-size: 1.05rem; }
.md-typeset .project-card p { color: #afafaf; font-size: .76rem; }
.md-typeset .project-card p:last-child { margin-top: auto; padding-top: .8rem; }
.project-number { font-family: Consolas, monospace; font-size: .65rem; color: #929292; border-bottom: 1px solid #3c3c3c; padding-bottom: .5rem; width: 2rem; }
.project-card a { text-underline-offset: 4px; display: inline-block; padding-block: .35rem; }
.md-typeset .project-card > p:has(.project-number) { margin: 0; line-height: 1; }
.md-typeset .project-card > p:last-child:not(:has(a)) { margin-top: .3rem; padding-top: 0; }
.career-list { margin-top: 2rem; }
.career-entry { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 2rem; margin-bottom: 1rem; border: 1px solid #2d2d2d; background: #0f0f0f; border-radius: 8px; padding: 1.5rem; }
.career-date { position: relative; font-size: .7rem; color: #9c9c9c; font-variant-numeric: tabular-nums; border-right: 1px solid #2d2d2d; padding-right: 1rem; }
.career-date::before { content: ''; display: block; width: 6px; height: 6px; border: 1px solid #bfbfbf; border-radius: 50%; margin: .3rem 0 1.1rem; }
.md-typeset .career-company { font-size: .66rem; letter-spacing: .09em; text-transform: uppercase; color: #a4a4a4; margin: 0 0 .5rem; }
.md-typeset .career-body h2 { margin: 0 0 1.4rem; font-size: 1.2rem; }
.career-responsibilities { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem 1.5rem; }
.career-group:last-child:nth-child(odd) { grid-column: 1/-1; }
.md-typeset .career-group h3 { color: #cdcdcd; margin: 0 0 .7rem; font-size: .8rem; }
.md-typeset .career-body ul { font-size: .74rem; color: #b2b2b2; margin: 0; line-height: 1.75; }
.md-typeset .career-body li { margin-bottom: .7rem; }
.animation-controls { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.1rem; }
.animation-controls button { position: static; min-height: 44px; border: 1px solid #383838; border-radius: 4px; padding: .45rem .7rem; font-size: .67rem; color: #bdbdbd; background: #111111; transition: border-color 150ms ease-out, background-color 150ms ease-out; }
.animation-controls button:hover { border-color: #797979; background: #1b1b1b; }
.animation-controls button:active { transform: scale(.96); }
.animation-controls .replay-intro span { margin-right: .35rem; font-size: .9rem; }
.credential-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .8rem; margin: 1.2rem 0 2.5rem; }
.credential-card { padding: 1.2rem; background: #111111; border: 1px solid #2f2f2f; border-radius: 4px; display: flex; flex-direction: column; }
.md-typeset .card-kicker { font-size: .6rem; letter-spacing: .09em; text-transform: uppercase; color: #9c9c9c; margin: 0 0 .85rem; }
.md-typeset .credential-card h3 { font-size: .86rem; line-height: 1.45; margin: 0 0 .7rem; }
.md-typeset .credential-date { font-size: .65rem; color: #9a9a9a; margin: .2rem 0; }
.md-typeset .credential-card p:last-child { margin-top: auto; padding-top: .8rem; font-size: .65rem; }
.credential-card a { display: inline-block; min-height: 40px; align-content: center; text-underline-offset: 4px; }
.profile-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; margin-top: 2rem; }
.profile-panel { border-top: 1px solid #464646; padding: 1.2rem; background: #101010; }
.md-typeset .profile-panel h2 { margin: 0 0 .8rem; font-size: .95rem; }
.profile-panel p, .profile-panel li { color: #b3b3b3; font-size: .75rem; }
.contact-panel { grid-column: 1/-1; }
.contact-link { display: inline-block; min-height: 44px; align-content: center; margin-right: 1.2rem; text-underline-offset: 4px; }
.skill-groups { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; }
.md-typeset .skill-group h3 { margin-top: .5rem; font-size: .8rem; }
.skill-list { display: flex; flex-wrap: wrap; gap: .4rem; }
.skill-list span { display: inline-block; padding: .2rem .45rem; font-size: .63rem; line-height: 1.5; border: 1px solid #343434; background: #121212; color: #b3b3b3; border-radius: 3px; }
.article-list { border-top: 1px solid #383838; }
.article-card { padding: .9rem 1.1rem; border-bottom: 1px solid #2d2d2d; background: #0f0f0f; }
.md-typeset .article-card p { margin: 0; font-size: .76rem; color: #a9a9a9; }
.article-card a { display: inline-block; min-height: 40px; align-content: center; text-underline-offset: 4px; }
:root, [data-md-color-scheme="slate"] {
  --ink-0: #080808; --ink-1: #111111; --ink-2: #161616;
  --line: #292929; --line-2: #484848;
  --tx-1: #ededed; --tx-2: #b4b4b4; --tx-3: #949494;
  --md-default-bg-color: var(--ink-0); --md-primary-fg-color: var(--ink-0);
  --md-typeset-a-color: var(--tx-1); --md-accent-fg-color: var(--tx-1);
}
.md-header, .md-tabs { background: var(--ink-0); }
.md-typeset a { color: var(--tx-1); text-decoration-color: var(--line-2); }
.md-typeset a:hover { text-decoration-color: var(--tx-1); }
.project-card, .credential-card, .article-card, .career-entry { border-radius: 3px; background: var(--ink-1); border-color: var(--line); }
.project-card:hover, .project-card:focus-within { background: var(--ink-1); border-color: var(--line-2); }
.md-typeset .project-card h2 { margin: 0 0 .5rem; }
.md-typeset .project-card p:last-child:has(a) { border-top: 1px solid var(--line); }
.md-typeset .skill-list { font-size: .73rem; line-height: 1.9; color: var(--tx-2); display: block; }
.profile-biography { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; margin: 1.5rem 0; }
.profile-biography .profile-panel:first-child { grid-column: 1/-1; }
.md-typeset .profile-biography p { margin: 0; }
.site-loader { transition: opacity 280ms ease-out; }
.intro-leaving .site-loader { opacity: 0; }
.loader-mark { color: var(--tx-1); }
.loader-mark path { stroke: currentColor; stroke-width: 4; stroke-dasharray: none; stroke-dashoffset: 0; }
.intro-loading .loader-mark .mark-ridge { stroke-dasharray: 100; stroke-dashoffset: 100; animation: mark-draw 700ms cubic-bezier(.22,1,.36,1) forwards; }
.intro-loading .loader-mark .mark-bar { transform-box: fill-box; transform-origin: left; transform: scaleX(0); animation: bar-scan 250ms 700ms ease-out forwards; }
@keyframes bar-scan { to { transform: scaleX(1); } }
.loader-content p { animation: intro-arrive 400ms 500ms both; }
.loader-content p span { letter-spacing: .02em; }
.defense-field { opacity: .65; }
.md-typeset .landing-portrait figcaption { display: none; }
@media(prefers-reduced-motion: reduce) { .loader-content p, .loader-mark .mark-bar { animation: none; transform: none; } .site-loader { transition: none; } }
@media(max-width: 760px) { .profile-biography { grid-template-columns: 1fr; } .profile-biography .profile-panel:first-child { grid-column: auto; } }
/* Spartan edition: one illustrated scene, then quiet editorial content. */
.landing { display: block; min-height: 650px; padding: 2.5rem 2rem 2.2rem; border: 1px solid #292929; background: #080808; margin-top: .3rem; }
.citadel-art, .citadel-mantle { position: absolute; inset: 0; z-index: -2; background: url('../assets/spartan-storm-v2.png') center center / cover no-repeat; filter: grayscale(1); }
.citadel-art::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(8,8,8,.96) 0%,rgba(8,8,8,.87) 32%,rgba(8,8,8,.3) 64%,transparent 85%),linear-gradient(0deg,#080808,transparent 22%); }
.citadel-mantle { z-index: -1; filter: url('#cloak-wind') grayscale(1); mask-image: radial-gradient(ellipse 16% 22% at 69% 66%,#000000 20%,transparent 100%); }
.defense-field { z-index: -1; opacity: 1; mask-image: linear-gradient(90deg,transparent 30%,#000000 67%); }
.landing-copy { max-width: 57%; }
.md-typeset .landing h1 { font-size: clamp(2.2rem,4vw,3.25rem); letter-spacing: -.045em; }
.md-typeset .landing-summary { color: #c0c0c0; max-width: 46ch; font-size: .79rem; }
.md-typeset .landing-role { color: #d2d2d2; }
.md-typeset .landing-portrait.identity-photo { display: flex; gap: .7rem; align-items: center; width: auto; max-width: none; margin: 1.4rem 0 .7rem; }
.md-typeset .landing-portrait.identity-photo { justify-self: start; }
.identity-photo img { width: 64px; height: 64px; aspect-ratio: 1; border-radius: 3px; outline: 1px solid rgba(255,255,255,.15); border: 0; }
.md-typeset .landing-portrait.identity-photo figcaption { display: block; font-size: .68rem; margin: 0; color: #d8d8d8; }
.identity-photo figcaption span { font-size: .6rem; color: #a0a0a0; }
.animation-controls { margin-top: .7rem; gap: .5rem; }
.animation-controls button { background: rgba(15,15,15,.75); font-size: .61rem; padding: .3rem .6rem; }
.md-typeset .credentials-summary { color: #aaaaaa; font-size: .68rem; border-block: 1px solid #292929; padding: 1rem 0; margin: 0 0 1.5rem; }
.scene-filters { position: absolute; pointer-events: none; }
.spartan-loader { width: 90px; height: 90px; }
.spartan-loader path { stroke: none; stroke-dasharray: none; animation: none !important; }
.spartan-loader path:last-child { stroke: #080808; stroke-width: 1.6; }
.intro-loading .spartan-loader { animation: helmet-emerge 950ms cubic-bezier(.22,1,.36,1) both; }
@keyframes helmet-emerge { from { opacity: 0; clip-path: inset(0 0 100% 0); transform: scale(.93); } to { opacity: 1; clip-path: inset(0); transform: scale(1); } }
.certificate-preview { display: block; aspect-ratio: 1.45; overflow: hidden; margin: -1.2rem -1.2rem 1rem; background: #1b1b1b; border-bottom: 1px solid #333333; }
.certificate-preview img { display: block; width: 100%; height: 100%; object-fit: contain; filter: grayscale(1) brightness(.83); transition: filter 200ms ease-out; }
.certificate-preview:hover img, .certificate-preview:focus-visible img { filter: grayscale(1) brightness(1); }
.issuer-badge { position: relative; width: 72px; aspect-ratio: 245/251; overflow: hidden; margin: 0 0 .7rem; }
.issuer-badge img { position: absolute; max-width: none; filter: grayscale(1); }
.issuer-badge.mad20 img { width: 525.3%; left: -19.6%; top: -251.4%; }
.issuer-badge.ine { width: 110px; aspect-ratio: 190/90; }
.issuer-badge.ine img { width: 677.4%; left: -47.4%; top: -83.3%; }
.issuer-badge.belkasoft { width: 120px; aspect-ratio: 238/90; }
.issuer-badge.belkasoft img { width: 540.3%; left: -220.6%; top: -244.4%; }
.issuer-badge.groupib { width: 120px; aspect-ratio: 181/40; }
.issuer-badge.groupib img { width: 710.5%; left: -17.7%; top: -90%; }
.issuer-badge.groupib-investigator { width: 120px; aspect-ratio: 94/21; }
.issuer-badge.groupib-investigator img { width: 510.6%; left: -14.9%; top: -61.9%; }
.certificate-pending { display: grid; align-content: center; justify-content: center; min-height: 160px; font-size: .7rem; text-align: center; color: #999999; background: #161616; border-bottom: 1px solid #333333; margin: -1.2rem -1.2rem 1rem; }
.md-typeset .credential-card > p:last-child { padding-top: .5rem; }
.project-card:has(a[href*="compromise-assessment"]), .project-card:has(a[href*="multi-tenant-elastic"]), .project-card:has(a[href*="threatops-intelligence"]) { border-top: 2px solid #777777; }
@media(max-width: 900px) { .landing { padding: 1.8rem 1.2rem; min-height: 620px; } .landing-copy { max-width: 65%; } }
@media(max-width: 760px) {
  .landing { padding: 17rem 1rem 1.5rem; min-height: auto; }
  .landing-copy { max-width: 100%; }
  .citadel-art, .citadel-mantle { height: 360px; background-size: auto 360px; background-position: 100% top; }
  .citadel-art::after { background: linear-gradient(0deg,#080808 3%,rgba(8,8,8,.8) 18%,transparent 65%); }
  .citadel-mantle { display: none; }
  .defense-field { height: 360px; mask-image: linear-gradient(0deg,transparent,#000000); }
  .md-typeset .landing h1 { font-size: 2.1rem; }
  .md-typeset .landing-role { font-size: 1.1rem; }
  .md-typeset .landing-summary { font-size: .76rem; }
  .certificate-preview { margin-inline: -1.2rem; }
}
@media(prefers-reduced-motion: reduce) { .intro-loading .spartan-loader { animation: none; } }
.strike-lightning[hidden] { display: none; }
.architecture-flow { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding: 1.2rem; border: 1px solid #333333; margin: 1rem 0; background: #111111; }
.architecture-flow span { flex: 1; min-width: 120px; padding: .75rem; border: 1px solid #444444; text-align: center; font-size: .7rem; }
.architecture-flow b { color: #aaaaaa; font-weight: 400; }
@media(max-width:760px) { .architecture-flow { flex-direction: column; } .architecture-flow span { width: 100%; } .architecture-flow b { transform: rotate(90deg); } }
@media(max-width: 1050px) { .credential-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .skill-groups { grid-template-columns: 1fr; } }
@media(max-width: 760px) { .credential-grid, .profile-grid { grid-template-columns: 1fr; } .contact-panel { grid-column: auto; } }
@media (prefers-reduced-motion: reduce) {
  .site-loader { display: none !important; }
  .intro-enter .landing-copy > *, .intro-enter .landing-portrait, .loader-track::after, .loader-mark path { animation: none; }
  .motion-ready .reveal-target { opacity: 1; transform: none; transition: none; }
}
@media(max-width: 760px) {
  .landing { grid-template-columns: 1fr; gap: 1.8rem; min-height: auto; padding: 1rem 0 2.5rem; }
  .md-typeset .landing h1 { font-size: 2.25rem; }
  .md-typeset .landing-role { font-size: 1.15rem; }
  .md-typeset .landing-portrait { justify-self: start; max-width: 240px; margin: 0; }
  .practice-strip { grid-template-columns: 1fr; gap: .75rem; }
  .practice-strip > div + div { border-left: 0; border-top: 1px solid #2b2b2b; padding: .8rem 0 0; }
  .project-grid { grid-template-columns: 1fr; }
  .project-card { padding: 1.2rem; }
  .career-entry { grid-template-columns: 1fr; gap: .6rem; padding: 1.1rem; }
  .career-date { border-right: 0; border-bottom: 1px solid #2d2d2d; padding: 0 0 .5rem; }
  .career-date::before { display: none; }
  .career-responsibilities { grid-template-columns: 1fr; }
  .defense-field { mask-image: linear-gradient(180deg, transparent 30%, #000000 65%); }
}

/* Figurative brand mark and final mobile scene spacing. */
.md-header__button.md-logo img { width: 44px; height: 44px; object-fit: contain; }
.spartan-loader { width: 160px; height: 160px; object-fit: contain; }
.md-typeset .landing-portrait { justify-self: start; }
@media(max-width:760px) {
 .landing { padding: 17rem 1rem 1.5rem; }
 .defense-field { mask-image: linear-gradient(0deg,transparent,#000000); }
}

.md-typeset .credential-card > p:empty { display: none; }
.md-typeset .credential-card h3 { min-height: 3.75em; }
.credential-card > .certificate-preview { flex-shrink: 0; display: block; }
.credential-actions { margin-top: auto; padding-top: 1rem; }
.md-typeset .credential-actions p { margin: 0; font-size: .7rem; }
.md-typeset .credential-card > p:last-child { margin-top: .2rem; padding-top: 0; }

/* Curated capabilities: readable scope first, tools separately. */
.capability-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .9rem; margin: 1.2rem 0 2rem; }
.capability-card { padding: 1.2rem; border: 1px solid #303030; background: #101010; border-radius: 3px; }
.md-typeset .capability-card h3 { font-size: .9rem; line-height: 1.4; margin: 0 0 .7rem; text-wrap: balance; }
.md-typeset .capability-card p { font-size: .75rem; line-height: 1.7; color: #b5b5b5; margin: 0 0 1rem; }
.capability-tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.capability-tags span { font-size: .6rem; line-height: 1.5; padding: .25rem .45rem; color: #d0d0d0; border: 1px solid #353535; border-radius: 2px; }
.tool-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; padding: 1.2rem 0; border-block: 1px solid #303030; }
.md-typeset .tool-groups h4 { font-size: .75rem; margin: 0 0 .5rem; }
.md-typeset .tool-groups p { font-size: .75rem; color: #b5b5b5; margin: 0; }
@media(max-width:1050px) { .capability-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) { .capability-grid, .tool-groups { grid-template-columns: 1fr; } }
.md-typeset #skills { scroll-margin-top: 7rem; }

/* Site-wide motion: entrances, tactile surfaces and a scroll-linked rule. */
.md-header::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 1px; background: #c9c9c9; transform: scaleX(var(--reading-progress,0)); transform-origin: left; pointer-events: none; }
.page-motion .md-content__inner > h1 { animation: page-title-enter 650ms cubic-bezier(.22,1,.36,1) both; }
@keyframes page-title-enter { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
.motion-ready .reveal-target { transform: translateY(25px); transition: opacity 650ms cubic-bezier(.22,1,.36,1), transform 650ms cubic-bezier(.22,1,.36,1), translate 240ms ease-out, border-color 240ms ease-out, background-color 240ms ease-out, box-shadow 240ms ease-out; transition-delay: var(--reveal-delay,0ms), var(--reveal-delay,0ms), 0ms, 0ms, 0ms, 0ms; }
.motion-ready .reveal-target.is-visible { transform: translateY(0); opacity: 1; }
.capability-card, .project-card, .credential-card, .career-entry { position: relative; transition: translate 240ms ease-out, border-color 240ms ease-out, background-color 240ms ease-out, box-shadow 240ms ease-out; }
.capability-card::after, .project-card::after { content: ''; position: absolute; top: -1px; left: 16%; width: 68%; height: 1px; background: linear-gradient(90deg,transparent,#c0c0c0,transparent); transform: scaleX(0); transition: transform 300ms cubic-bezier(.22,1,.36,1); pointer-events: none; }
.capability-card:focus-within, .project-card:focus-within, .credential-card:focus-within { border-color: #777777; background-color: #161616; }
.md-typeset .md-button { transition: translate 180ms ease-out, background-color 180ms ease-out, box-shadow 180ms ease-out, scale 120ms ease-out; }
.md-typeset .md-button:active { scale: .96; }
.md-tabs__link { transition: color 180ms ease-out, opacity 180ms ease-out; }
.md-typeset .text-link, .md-typeset .contact-link { text-decoration-thickness: 1px; transition: color 180ms ease-out, text-underline-offset 180ms ease-out; }
.md-typeset .text-link:hover, .md-typeset .contact-link:hover { color: #ffffff; text-underline-offset: 7px; }
.profile-panel { transition: border-color 240ms ease-out, background-color 240ms ease-out; }
@media(hover:hover) and (pointer:fine) {
 .capability-card:hover, .project-card:hover, .credential-card:hover { translate: 0 -4px; border-color: #696969; background-color: #151515; box-shadow: 0 12px 28px #00000040; }
 .capability-card:hover::after, .project-card:hover::after { transform: scaleX(1); }
 .profile-panel:hover, .career-entry:hover { border-color: #565656; }
 .md-typeset .md-button:hover { translate: 0 -2px; box-shadow: 0 6px 18px #00000050; }
 .certificate-preview img { transition: filter 300ms ease-out, scale 500ms cubic-bezier(.22,1,.36,1); }
 .certificate-preview:hover img { scale: 1.025; }
}
@media(prefers-reduced-motion:reduce) {
 .page-motion .md-content__inner > h1 { animation: none; }
 .motion-ready .reveal-target { transform: none; opacity: 1; transition: none; }
 .capability-card, .project-card, .credential-card, .career-entry, .profile-panel, .md-typeset .md-button, .certificate-preview img { transition: none; translate: none; scale: 1; }
 .capability-card::after, .project-card::after { transition: none; }
}

.not-found { min-height: 65vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 2rem 1rem 3rem; animation: page-title-enter 650ms cubic-bezier(.22,1,.36,1) both; }
.not-found-mark { width: 110px; height: 110px; object-fit: contain; margin-bottom: 1rem; }
.md-typeset .not-found-code { font-size: clamp(5rem,14vw,8rem); font-weight: 600; letter-spacing: -.07em; line-height: 1; color: #e0e0e0; margin: 0 0 .9rem; }
.md-typeset .not-found h1 { font-size: 1.5rem; margin: 0 0 .65rem; color: #dedede; }
.md-typeset .not-found > p:last-of-type { max-width: 40ch; color: #a8a8a8; font-size: .8rem; }
.not-found-actions { display: flex; gap: .65rem; justify-content: center; flex-wrap: wrap; margin-top: 1rem; }
.md-typeset .not-found .md-button { background: #dedede; border: 1px solid #dedede; color: #111; padding: .6rem 1rem; font-size: .75rem; }
.md-typeset .not-found .not-found-secondary { background: transparent; border-color: #464646; color: #c4c4c4; }
@media(prefers-reduced-motion:reduce) { .not-found { animation: none; } }

/* A single spear discharge connects the loading emblem to the storm scene. */
.loader-stage { position: relative; width: 260px; height: 240px; margin-left: -10px; display: grid; place-items: center; }
.loader-stage .spartan-loader { position: relative; z-index: 1; }
.loader-strike { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.loader-bolt-core, .loader-bolt-halo, .loader-bolt-fork { stroke: #f5f5f5; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
.loader-bolt-core { stroke-width: 1.8; }
.loader-bolt-halo { stroke-width: 8; filter: blur(4px); opacity: .55; }
.loader-bolt-fork { stroke-width: 1; }
.intro-loading .loader-bolt-core, .intro-loading .loader-bolt-halo, .intro-loading .loader-bolt-fork { animation: loader-discharge 1000ms 650ms ease-out both; }
.loader-reflection { opacity: 0; filter: blur(4px); }
.intro-loading .loader-reflection { animation: loader-ground 900ms 900ms ease-out both; }
@keyframes loader-discharge { 0% { stroke-dashoffset: 1; opacity: 0; } 18% { opacity: 1; } 35% { stroke-dashoffset: 0; opacity: 1; } 100% { stroke-dashoffset: 0; opacity: 0; } }
@keyframes loader-ground { 0% { opacity: 0; transform: scaleX(.4); transform-origin: center; } 20% { opacity: .65; } 100% { opacity: 0; transform: scaleX(1.2); transform-origin: center; } }
@media(prefers-reduced-motion:reduce) { .loader-strike { display: none; } }
