/* Jeroen's Security Engineering portfolio — visual direction approved 2026-11-03.
   All case summaries are curated. Visual cards are illustrations, not test screenshots. */
:root{color-scheme:dark;--bg:#06111f;--bg2:#071a2b;--card:#0a1c30;--edge:#1d4364;--edge-hot:#2572a6;--text:#f3f8ff;--muted:#b6c8df;--soft:#829ebc;--cyan:#35f4ef;--blue:#2587ff;--violet:#a079ff;--green:#40e5be;--radius:13px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;min-width:320px;background:linear-gradient(180deg,#071321 0%,#071728 45%,#04101d 100%);color:var(--text);font-size:15px;line-height:1.53;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(ellipse 52% 26% at 57% 4%,rgba(12,87,163,.14),transparent),radial-gradient(ellipse 70% 30% at 50% 95%,rgba(7,95,196,.06),transparent)}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;height:auto}svg{display:block}p,h1,h2,h3{margin-top:0}a:focus-visible,button:focus-visible{outline:3px solid #8cfaff;outline-offset:4px;border-radius:4px}::selection{color:#061321;background:var(--cyan)}.shell{width:min(1510px,calc(100% - 72px));margin:auto}.skip{position:absolute;left:12px;top:-100px;padding:12px 18px;background:var(--cyan);color:#00121d;z-index:50}.skip:focus{top:10px}
/* Header */
.site-header{position:relative;z-index:20;isolation:isolate;height:72px;background:rgba(5,16,30,.92);border-bottom:1px solid rgba(42,98,153,.34);box-shadow:0 1px 24px rgba(0,85,169,.09)}.topbar{display:flex;align-items:center;height:100%;gap:40px}.brand{min-width:242px;display:flex;align-items:center;gap:13px;font-size:20px;font-weight:760;line-height:1.02;letter-spacing:-.04em}.brand small{display:block;color:#a9bfe0;font-size:12px;font-weight:450;letter-spacing:.015em;margin-top:5px}.logo-mark{color:#4cf9f1;font-size:35px;font-weight:800;position:relative;line-height:1;text-shadow:0 0 15px rgba(0,253,230,.6)}.logo-mark span{font-size:19px;position:absolute;left:18px;top:15px}.nav{display:flex;gap:34px;align-items:center;flex:1}.nav a{position:relative;color:#d1def1;font-size:14px;font-weight:540;white-space:nowrap;transition:color .2s}.nav a:hover{color:var(--cyan)}.nav .nav-overview{color:#4da9ff;font-weight:720}.nav-overview:after{content:"";position:absolute;left:0;right:0;bottom:-15px;height:2px;background:#2eacff;box-shadow:0 0 10px #118dff}.topbar-actions{display:flex;align-items:center;gap:24px}.github-link{font-size:14px;color:#e3edff;display:flex;gap:9px;align-items:center}.github-svg{width:19px;height:19px;fill:currentColor}.top-divider{height:23px;width:1px;background:#34526e}.button{border:1px solid rgba(72,166,230,.58);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:13px;padding:12px 18px;min-height:44px;font-size:14px;font-weight:650;line-height:1.2;white-space:nowrap;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s}.button:hover{transform:translateY(-2px)}.button .arrow,.card-link .arrow,.panel-foot .arrow{height:16px;width:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}.button.primary{background:linear-gradient(135deg,#199ef8,#1763f8 90%);border:1px solid #2daaff;color:white;box-shadow:0 0 0 1px rgba(20,182,239,.11),0 6px 22px rgba(15,105,231,.24)}.button.primary:hover{box-shadow:0 0 22px rgba(32,158,254,.35),0 8px 22px rgba(15,105,231,.2)}.button.ghost{background:rgba(6,22,41,.63);color:#d8ecff;box-shadow:inset 0 0 13px rgba(4,100,184,.06)}.button.ghost:hover{background:#123456;border-color:#3dd8ee}.button.small{padding:9px 20px;min-height:37px}.menu-button,.mobile-contact{display:none}
/* Hero */
.hero-background{position:relative;background:radial-gradient(ellipse 53% 78% at 53% 35%,rgba(6,54,104,.35),transparent 77%),linear-gradient(180deg,#071421 0%,#071524 82%,#061421 100%);overflow:hidden;border-bottom:1px solid rgba(40,92,140,.18)}.hero-background:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(30,103,161,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(30,103,161,.06) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to right,transparent 24%,black 60%,transparent 98%);pointer-events:none}.hero-background:after{content:"";position:absolute;height:140px;width:100%;bottom:-80px;left:0;background:radial-gradient(ellipse at center,rgba(12,113,217,.13),transparent 70%);pointer-events:none}.hero-grid{position:relative;display:grid;grid-template-columns:minmax(315px,360px) minmax(390px,1fr) minmax(245px,286px);gap:14px;align-items:stretch;min-height:445px;padding-top:30px;padding-bottom:25px}.hero-copy{z-index:2;padding-top:13px}.eyebrow{font-size:10px;line-height:1.4;letter-spacing:.19em;font-weight:750;color:#8eadd0}.hero-overline{display:flex;align-items:center;gap:8px;margin-bottom:16px;white-space:nowrap;font-size:9px;letter-spacing:.17em}.hero-overline b{color:#437295}.short-line{width:20px;height:3px;background:#16e8f1;box-shadow:0 0 12px #07dcec;flex-shrink:0}.hero-copy h1{font-size:clamp(42px,4vw,58px);line-height:.97;letter-spacing:-.058em;font-weight:800;margin-bottom:16px}.hero-copy h1 em{font-style:normal;color:var(--cyan);text-shadow:0 0 36px rgba(4,228,234,.24)}.hero-subtitle{font-size:15px;font-weight:760;letter-spacing:-.012em;color:#eef5ff;margin-bottom:12px}.hero-subtitle span{color:#4b92c6}.hero-description{font-size:14px;line-height:1.65;color:#c4d5ea;max-width:355px;margin-bottom:20px}.hero-buttons{display:flex;gap:9px;flex-wrap:wrap}.hero-buttons .button{min-height:42px;padding:11px 15px}.hero-footnote{display:flex;align-items:center;gap:8px;font-size:11px;color:#93adca;margin:18px 0 0}.tiny-check{display:inline-flex;align-items:center;justify-content:center;height:17px;width:17px;border-radius:50%;border:1px solid #36d3c0;color:var(--green);font-weight:800}.hero-art{z-index:1;align-self:center;position:relative;max-width:790px;margin-left:-12px;margin-right:-14px;pointer-events:none}.hero-art img{width:100%;height:auto;display:block;filter:saturate(1.22) contrast(1.08) drop-shadow(0 0 24px rgba(4,111,250,.08));border-radius:9px;mask-image:radial-gradient(ellipse 74% 66% at 50% 50%,black 75%,transparent 100%)}.art-glow{position:absolute;bottom:15px;left:28%;height:13px;width:43%;border-radius:50%;background:#05baff;filter:blur(26px);opacity:.2}.panel{background:linear-gradient(165deg,rgba(7,23,40,.94),rgba(9,33,56,.94));border:1px solid rgba(45,120,176,.52);border-radius:9px;box-shadow:inset 0 1px rgba(153,210,255,.04),0 10px 25px rgba(0,7,21,.1)}.activity-panel{z-index:3;align-self:stretch;padding:17px 18px;max-height:420px;overflow:hidden;display:flex;flex-direction:column}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:14px;border-bottom:1px solid rgba(49,105,144,.45)}.panel-title{display:flex;gap:10px;align-items:center}.panel-title h2{margin:0;font-size:16px;font-weight:760;letter-spacing:-.028em}.mini-icon{color:var(--cyan);font-size:25px;line-height:1}.review-badge{font-size:10px;color:#90edcd;display:flex;align-items:center;gap:6px}.review-badge:before{content:"";height:6px;width:6px;border-radius:50%;background:#3becd1;box-shadow:0 0 10px #3becd1}.timeline{list-style:none;padding:12px 0 0;margin:0;flex:1}.timeline li{position:relative;padding:2px 0 14px 20px;margin-left:4px;border-left:1px solid #2d6287}.timeline li:last-child{border-left-color:transparent}.time-dot{position:absolute;left:-6px;top:6px;width:11px;height:11px;border-radius:50%;border:2px solid #66f9ed;background:#07304a;box-shadow:0 0 0 3px #061728}.timeline time{font-size:10px;color:#87a9ca;display:block;letter-spacing:.06em}.timeline a{font-size:12px;font-weight:720;color:#eff6ff;line-height:1.4;display:block;margin:3px 0 1px}.timeline a:hover{color:#44ecfa}.timeline p{font-size:11px;line-height:1.43;color:#aec2da;margin:0}.panel-foot{border-top:1px solid rgba(50,112,160,.4);color:#7e9bbb;font-size:10px;padding-top:11px;margin:0}.panel-foot a{color:#69b5ff;font-weight:680;display:inline-flex;align-items:center;gap:3px}.panel-foot .arrow{width:12px}
/* Headings and focus */
.content-shell{padding-top:23px}.section-heading{display:flex;align-items:center;gap:18px;margin-bottom:17px}.section-heading-main{display:flex;align-items:center;gap:14px;flex:1;min-width:0}.section-heading h2{font-size:22px;letter-spacing:-.04em;margin:0;white-space:nowrap;line-height:1.25}.section-icon{font-size:27px;color:#3cedf7;line-height:1;text-shadow:0 0 15px rgba(0,243,237,.23)}.heading-rule{background:linear-gradient(90deg,#326894,rgba(14,49,82,0));height:1px;flex:1;margin-left:6px}.section-heading>p{font-size:9px;font-weight:700;letter-spacing:.2em;color:#8facc8;margin:0;white-space:nowrap}.focus-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.focus-card{position:relative;min-height:154px;padding:17px 18px;border-radius:9px;background:radial-gradient(ellipse 56% 72% at 90% 108%,rgba(24,157,240,.26),transparent),linear-gradient(136deg,rgba(15,45,75,.96),#0a1b2d);border:1px solid #23669a;overflow:hidden;box-shadow:inset 0 1px rgba(144,215,255,.08);transition:transform .2s,box-shadow .2s}.focus-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,96,196,.13)}.focus-card:after{content:"";position:absolute;height:58px;width:110%;left:8%;bottom:-31px;border-top:2px solid rgba(40,198,253,.24);border-radius:50% 50% 0 0;transform:rotate(-10deg);box-shadow:0 -12px 20px rgba(22,172,242,.14);pointer-events:none}.focus-entra:after{border-color:rgba(65,113,244,.48)}.focus-defender:after{border-color:rgba(73,141,244,.3)}.focus-sentinel:after{border-color:rgba(135,96,254,.54)}.focus-head{display:flex;align-items:center;justify-content:space-between}.focus-icon{color:#2eecf2;display:inline-flex}.focus-entra .focus-icon{color:#4c9fff}.focus-defender .focus-icon{color:#3c99ff}.focus-sentinel .focus-icon{color:#548eff}.focus-icon svg{height:34px;width:34px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.focus-arrow{font-size:17px;color:#7bb0db}.focus-card h3{font-size:16px;letter-spacing:-.025em;margin:12px 0 4px}.focus-card p{font-size:12px;color:#c0d0e3;line-height:1.48;max-width:270px;margin:0;position:relative;z-index:1}
/* Projects */
.projects-section{padding-top:34px}.projects-section .section-heading{margin-bottom:6px}.section-intro{font-size:13px;color:#b8cce1;margin:0 0 19px;max-width:810px}.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(228px,.91fr);gap:13px;align-items:stretch}.project-card,.about-card{min-width:0;border-radius:9px;border:1px solid #236493;background:linear-gradient(160deg,#0c2339 0%,#07192b 95%);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 13px 32px rgba(1,13,28,.25),inset 0 1px rgba(160,220,255,.03)}.project-card{transition:border-color .2s,transform .2s,box-shadow .2s}.project-card:hover{transform:translateY(-4px);border-color:#4ccde9;box-shadow:0 14px 34px rgba(0,76,162,.2)}.project-detection{border-color:#65508e}.project-visual{position:relative;height:124px;flex-shrink:0;background-size:cover;background-repeat:no-repeat;background-position:center;overflow:hidden}.project-visual:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(6,25,42,.5))}.visual-osint{background-image:linear-gradient(90deg,rgba(8,25,48,.18),rgba(8,25,48,.08)),url('./osint-map.webp')}.visual-windows{background-image:linear-gradient(90deg,rgba(8,25,48,.08),rgba(8,25,48,.08)),url('./windows-art.webp')}.visual-detection{background-image:linear-gradient(90deg,rgba(8,25,48,.08),rgba(8,25,48,.08)),url('./detection-art.webp')}.project-visual-label{position:absolute;left:12px;bottom:9px;z-index:1;font-size:9px;letter-spacing:.15em;font-weight:800;color:white;text-shadow:0 1px 4px #001}.status{display:inline-flex;align-items:center;gap:6px;border-radius:99px;border:1px solid #315c84;padding:5px 9px;font-size:10px;line-height:1.05;color:#ddedfd;background:#0c2944;white-space:nowrap;font-weight:680}.status i{width:6px;height:6px;border-radius:50%;background:currentColor}.status-completed{background:#073b3c;border-color:#1daea9;color:#76f7e5}.status-in-progress{background:#103270;border-color:#438fff;color:#a9d7ff}.status-roadmap{background:#362354;border-color:#8967ca;color:#d4b6ff}.project-visual>.status{position:absolute;top:12px;right:10px;z-index:2;backdrop-filter:blur(9px)}.project-body{padding:16px 15px 14px;flex:1;display:flex;flex-direction:column}.project-kicker{font-size:10px;font-weight:720;letter-spacing:.04em;color:#90aed0;margin-bottom:7px}.project-kicker span{color:#3ddbe0;margin:0 3px}.project-card h3{font-size:17px;line-height:1.3;letter-spacing:-.025em;margin:0 0 7px}.project-card h3 a:hover{color:#6befff}.project-desc{font-size:12px;line-height:1.48;color:#b9cde4;min-height:53px;margin-bottom:12px}.proof-list{margin:0 0 14px}.proof-list>div{display:grid;grid-template-columns:81px minmax(0,1fr);column-gap:9px;border-bottom:1px solid rgba(67,111,146,.33);padding:8px 0}.proof-list dt{font-size:11px;color:#e5f3ff;font-weight:730}.proof-list dd{font-size:11px;line-height:1.43;color:#a8c1da;margin:0}.card-link{margin-top:auto;display:flex;align-items:center;gap:8px;padding-top:3px;color:#73c3ff;font-size:12px;font-weight:740}.card-link:hover{color:#6ffffa}.card-link .arrow{height:14px;width:14px}.about-card{padding:17px 18px 18px;border-color:#2b648e}.about-heading{display:flex;align-items:center;gap:9px}.about-heading h2{margin:0;font-size:17px}.about-art{height:118px;margin:16px -18px 12px;background:radial-gradient(ellipse 85% 55% at 40% 120%,rgba(35,191,230,.25),transparent 75%),repeating-radial-gradient(ellipse 120% 90% at 80% 150%,transparent 0 15px,rgba(43,196,241,.3) 16px 17px,transparent 19px 24px);border-block:1px solid rgba(63,120,173,.18);mask-image:linear-gradient(to bottom,transparent,#000 25%,#000 80%,transparent)}.about-card>p{font-size:12px;line-height:1.62;color:#c5d4e6;margin:0 0 14px}.about-divider{height:1px;background:#315476;margin:4px 0 12px}.about-card h3{font-size:12px;letter-spacing:.04em;color:#e7f5ff;margin-bottom:10px}.legend{display:grid;gap:10px}.legend>div{display:flex;align-items:flex-start;gap:8px}.legend .status{font-size:9px;padding:4px 7px;flex-shrink:0}.legend>div>span:last-child{font-size:10px;line-height:1.3;color:#a8bfda;margin-top:3px}.about-link{margin-top:auto;align-self:flex-start;max-width:100%;min-width:0;font-size:12px;padding:9px 10px}.workflow-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:20px;align-items:center;margin:36px 0 55px;padding:23px 27px;border:1px solid #244b70;border-radius:10px;background:linear-gradient(110deg,rgba(11,43,72,.55),rgba(8,22,40,.3))}.workflow-section h2{font-size:21px;letter-spacing:-.035em;line-height:1.2;margin:6px 0 8px}.workflow-section>div>p:last-child{font-size:12px;color:#b2c9df;margin:0}.workflow-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.workflow-steps span{padding:12px 9px;border:1px solid #24517d;border-radius:6px;font-size:11px;color:#44c9f6;text-align:center}.workflow-steps strong{font-size:11px;color:#e9f7ff;display:block;margin-top:6px}
/* Footer */
.footer{border-top:1px solid #244059;padding-top:22px;padding-bottom:24px;display:grid;grid-template-columns:1fr auto;gap:8px}.footer strong{font-size:15px}.accent{color:var(--cyan)}.footer p{margin:5px 0 0;color:#9bb6d3;font-size:12px}.footer-actions{display:flex;gap:18px;align-items:center;font-size:12px;color:#a2c8ea}.footer-actions a:hover{color:var(--cyan)}.footer .fineprint{grid-column:1/-1;font-size:10px;color:#809cb6;margin-top:12px}
/* Detail pages */
.detail-page{padding-top:45px;padding-bottom:64px}.back{font-size:13px;color:#83caff;display:inline-block;margin-bottom:25px}.back:hover{color:var(--cyan)}.detail-hero{padding:30px 35px;border-radius:13px;border:1px solid #24567d;background:radial-gradient(ellipse 55% 95% at 90% 40%,rgba(16,99,180,.3),transparent),linear-gradient(130deg,#0b2845,#081b30);margin-bottom:24px}.detail-hero>.eyebrow{color:#6ae4f0}.detail-hero-heading{display:flex;gap:25px;align-items:center;flex-wrap:wrap}.detail-hero h1{font-size:clamp(28px,4.2vw,48px);line-height:1.1;letter-spacing:-.048em;margin:8px 0 13px;max-width:950px}.detail-summary{font-size:16px;line-height:1.6;color:#c5d9ee;max-width:900px;margin:0 0 15px}.detail-disclaimer{font-size:12px;color:#a0c2db;border-left:2px solid var(--cyan);padding:6px 13px;margin:0;max-width:860px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px}.detail-main{padding:14px 30px 10px;border:1px solid #254d70;border-radius:10px;background:#091c30}.detail-intro-heading{font-size:24px;margin:8px 0 20px}.detail-section{display:grid;grid-template-columns:38px 1fr;gap:18px;padding:23px 0;border-top:1px solid #264766}.detail-numeral{color:#41f1e8;font-size:13px;font-weight:800}.detail-section h2{font-size:19px;letter-spacing:-.02em;margin:0 0 9px}.detail-section p{font-size:14px;line-height:1.85;color:#c1d0e3;max-width:930px;margin:0}.detail-sidebar{display:grid;align-content:start;gap:15px}.detail-panel{padding:20px}.detail-panel h2{font-size:17px;margin:0 0 14px}.detail-panel p{font-size:13px;color:#bdcfe4}.detail-facts{margin:0}.detail-facts>div{padding:10px 0;border-top:1px solid #284c6a}.detail-facts dt{font-size:11px;color:#86a5c2}.detail-facts dd{font-size:13px;margin:3px 0 0}.toolchips{display:flex;flex-wrap:wrap;gap:7px}.toolchips span{font-size:11px;padding:7px 9px;border:1px solid #2c6086;border-radius:5px;background:#12334f;color:#c5dfff}.detail-bottom{margin-top:27px;display:flex;gap:12px;flex-wrap:wrap}
/* Laptop / tablet / mobile */
@media(max-width:1310px){.shell{width:calc(100% - 50px)}.topbar{gap:22px}.brand{min-width:210px}.nav{gap:18px}.topbar-actions{gap:12px}.hero-grid{grid-template-columns:minmax(285px,355px) minmax(350px,1fr) minmax(238px,260px);gap:6px}.hero-copy h1{font-size:48px}.hero-art{margin:0 -30px 0 -21px}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.about-card{grid-column:1/-1;display:grid;grid-template-columns:180px 1fr 1fr;column-gap:20px;align-items:start;min-height:200px}.about-heading{grid-column:1/-1}.about-art{margin:0;height:132px}.about-card>p{margin:0}.about-divider{display:none}.about-card h3,.legend,.about-link{grid-column:3}.about-card h3{margin:0}.about-card .legend{margin-top:-110px;padding-top:20px}.about-link{margin-top:10px;justify-self:start}.section-heading>p{display:none}}
@media(max-width:1030px){.topbar{gap:16px}.brand{min-width:182px}.brand small{font-size:11px}.nav{gap:14px}.nav a{font-size:13px}.topbar-actions .github-link,.top-divider{display:none}.hero-grid{grid-template-columns:minmax(290px,.9fr) minmax(350px,1.1fr);min-height:0;padding-bottom:28px}.hero-copy{padding-top:10px}.hero-art{margin:0 -20px 0 -18px;align-self:center}.activity-panel{grid-column:1/-1;max-height:none;padding:15px 18px}.timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding-top:15px}.timeline li{border-left:1px solid #2d6287;padding-bottom:6px}.panel-foot{margin-top:8px}.focus-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-card{grid-column:auto;display:flex;min-height:0}.about-art{height:95px;margin:12px -18px}.about-card>p{margin:0 0 15px}.about-divider{display:block}.about-card h3,.legend,.about-link{grid-column:auto}.about-card .legend{margin:0;padding:0}.about-link{margin-top:auto}}
@media(max-width:720px){.shell{width:calc(100% - 32px)}.site-header{height:64px}.topbar{justify-content:space-between}.brand{min-width:0;font-size:18px}.brand small{font-size:11px}.topbar-actions{margin-left:auto}.topbar-actions .nav-cta{display:none}.nav{display:none;position:absolute;left:0;right:0;top:64px;padding:15px 16px 22px;background:#0b2035;border-bottom:1px solid #2c648b;box-shadow:0 16px 25px rgba(0,0,0,.4);flex-direction:column;align-items:stretch;gap:0}.nav.is-open{display:flex}.nav a{font-size:15px;padding:12px 9px;border-bottom:1px solid #1e3b56}.nav-overview:after{display:none}.nav .mobile-contact{display:flex;color:#7cd9ff;align-items:center;gap:10px}.mobile-contact .arrow{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}.menu-button{display:flex;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;border:1px solid #3e7395;border-radius:6px;background:#0e2b47;cursor:pointer;padding:10px}.menu-button span{height:2px;width:100%;border-radius:2px;background:#cbe5fb}.hero-grid{display:flex;flex-direction:column;gap:8px;padding-top:22px}.hero-copy{padding-top:0}.hero-copy h1{font-size:clamp(46px,11vw,63px);margin-bottom:12px}.hero-description{max-width:600px}.hero-buttons{gap:10px}.hero-art{width:100%;max-width:700px;margin:-4px auto -12px;align-self:center}.activity-panel{margin:8px 0 0}.timeline{display:block}.timeline li{padding-bottom:13px}.focus-section{padding-top:9px}.content-shell{padding-top:14px}.section-heading h2{font-size:21px}.projects-section{padding-top:30px}.projects-grid{grid-template-columns:1fr}.project-visual{height:165px}.project-desc{min-height:0}.proof-list>div{grid-template-columns:108px 1fr}.project-card h3{font-size:19px}.project-body{padding:18px}.about-card{min-height:0}.about-art{height:120px}.workflow-section{grid-template-columns:1fr;padding:20px;margin-bottom:35px}.workflow-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-page{padding-top:24px}.detail-hero{padding:23px}.detail-layout{grid-template-columns:1fr}.detail-main{padding:13px 21px}.footer{grid-template-columns:1fr}.footer-actions{flex-wrap:wrap}.footer .fineprint{grid-column:1}}
@media(max-width:420px){.hero-overline{letter-spacing:.07em;font-size:8px;gap:5px}.hero-copy h1{font-size:44px}.hero-subtitle{font-size:13px}.hero-description{font-size:13px}.hero-buttons .button{font-size:12px;padding:10px 12px}.hero-art{margin:0 -8px -2px;width:calc(100% + 16px)}.focus-grid{gap:10px}.focus-card{padding:14px;min-height:158px}.focus-card h3{font-size:13px}.focus-card p{font-size:11px}.focus-icon svg{height:30px;width:30px}.proof-list>div{grid-template-columns:88px 1fr}.section-heading-main{gap:10px}.section-heading h2{font-size:19px}.detail-hero h1{font-size:29px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.focus-card,.project-card{transition:none}}
/* Hide a small clipped fragment of the original concept screenshot at artwork edge. */
.hero-art::before{content:"";position:absolute;left:0;bottom:0;width:90px;height:98px;z-index:3;background:linear-gradient(90deg,#071524 16%,rgba(7,21,36,.8) 48%,transparent);pointer-events:none}
/* Evidence in recruiter-readable, source-separated format. */
.evidence-snapshot{margin-bottom:24px;padding:18px 19px 20px;background:linear-gradient(125deg,#0e2f4b,#0b2036);border:1px solid #2670a0;border-radius:8px}
.evidence-snapshot h2{font-size:20px;margin:0 0 7px;letter-spacing:-.025em}.evidence-snapshot>p{font-size:12px;color:#b5c9dc;margin-bottom:14px}
.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th,td{border-bottom:1px solid #31526e;padding:9px 7px;vertical-align:top}thead th{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#8faccc}tbody th{font-weight:670;color:#edf6ff;width:27%}tbody td{color:#bed2e7}tbody tr:last-child>*{border-bottom:none}.evidence-state{font-size:11px;color:#67eadf;font-weight:700;white-space:nowrap}
.example-command{margin-top:15px}.example-command>.eyebrow{margin:0 0 8px}.example-command pre{margin:0;background:#051522;padding:10px 12px;border:1px solid #285876;border-radius:5px;color:#9afcf1;font-size:12px;overflow-x:auto}
@media(max-width:720px){.evidence-snapshot{padding:14px 11px}table{min-width:490px}}
.detail-layout,.detail-main,.evidence-snapshot,.table-scroll{min-width:0}.table-scroll{max-width:100%;overscroll-behavior-x:contain}

/* Navigation and dedicated recruiter-friendly subpages (V2.1) */
.nav a[aria-current="page"]{color:#70c6ff;font-weight:760}
.nav a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-15px;height:2px;background:linear-gradient(90deg,#22eaff,#318dff);box-shadow:0 0 15px rgba(24,191,255,.65)}
.nav a:hover{color:#78fff5}
.text-link{display:inline-flex;align-items:center;gap:9px;color:#7ad0ff;font-weight:720;font-size:13px;transition:color .18s}
.text-link:hover{color:#60fff0}
.text-link .arrow{width:16px;height:16px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linejoin:round;stroke-linecap:round}
.section-intro-line{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:15px}
.section-intro-line .section-intro{margin:0}
.section-more{margin-top:20px}
.subpage-hero{position:relative;overflow:hidden;border-bottom:1px solid rgba(58,117,181,.3);background:radial-gradient(ellipse 46% 150% at 88% 35%,rgba(15,116,212,.18),transparent 78%),linear-gradient(120deg,#0b2138,#071627 65%,#081f3a);padding:28px 0 52px}
.subpage-hero:after{content:"";position:absolute;pointer-events:none;inset:0;background-image:linear-gradient(rgba(37,136,216,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(37,136,216,.055) 1px,transparent 1px);background-size:37px 37px;mask-image:linear-gradient(to right,transparent,black)}
.subpage-hero .shell{position:relative;z-index:1}
.breadcrumbs{display:flex;align-items:center;gap:11px;margin-bottom:27px;color:#a7c7e5;font-size:13px}
.breadcrumbs a{color:#78cfff}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs span:last-child{color:#d8eaff}
.subpage-hero .eyebrow{font-size:10px;letter-spacing:.22em;color:#64e9f0;margin:0 0 10px;font-weight:760}
.subpage-hero h1{font-size:clamp(34px,4.2vw,62px);line-height:1.1;letter-spacing:-.055em;max-width:850px;margin:0 0 15px}
.subpage-hero .shell>p:last-child{font-size:clamp(15px,1.5vw,18px);line-height:1.65;color:#c1d6ed;max-width:850px;margin:0}
.subpage-body{padding-top:36px;padding-bottom:65px}
.summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #2b5982;border-radius:12px;overflow:hidden;background:linear-gradient(105deg,#0b2844,#0a1a2f);margin-bottom:40px}
.summary-strip>div{padding:22px 26px;display:flex;flex-direction:column;gap:4px}
.summary-strip>div+div{border-left:1px solid #244969}
.summary-strip strong{font-size:34px;color:#63eeef;letter-spacing:-.055em;line-height:1}
.summary-strip span{color:#bcd2e9;font-size:13px}
.list-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:16px}
.list-heading .eyebrow{font-size:10px;color:#6fd4f5;letter-spacing:.18em;margin-bottom:4px}
.list-heading h2,.subpage-intro h2{font-size:clamp(24px,2.6vw,33px);letter-spacing:-.04em;line-height:1.2;margin:0 0 7px}
.list-heading>p{max-width:420px;color:#aec8df;margin:0;font-size:13px}
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 25px}
.filter-button{padding:9px 16px;background:#102841;border:1px solid #315b7d;border-radius:7px;color:#c7dff5;font:inherit;font-size:13px;font-weight:680;cursor:pointer;display:flex;gap:11px;align-items:center}
.filter-button span{color:#8ab6d9}.filter-button.is-selected,.filter-button:hover{border-color:#36d4f6;background:#153b5e;color:#eafcff}.filter-button.is-selected span{color:#7de9fb}
.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.catalog-card{background:linear-gradient(145deg,#0d2944,#091a2c);border:1px solid #2b5c82;border-radius:13px;overflow:hidden;display:flex;flex-direction:column;min-width:0;box-shadow:0 12px 32px rgba(0,6,18,.23)}
.catalog-card:hover{border-color:#48bff0;box-shadow:0 14px 45px rgba(17,103,194,.16)}
.catalog-image{height:180px;background-position:center;background-size:cover;position:relative;border-bottom:1px solid #264863}
.catalog-image:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(7,18,31,.6))}
.catalog-body{padding:23px;display:flex;flex:1;flex-direction:column;align-items:flex-start}
.catalog-body h2{font-size:22px;letter-spacing:-.035em;line-height:1.2;margin:16px 0 12px}
.catalog-body h2 a:hover{color:#6ae8f4}
.catalog-body>p{font-size:14px;line-height:1.65;color:#c0d5e8;min-height:72px}
.catalog-facts{border-top:1px solid #2a4d6d;margin:8px 0 24px;width:100%}
.catalog-facts>div{display:grid;grid-template-columns:75px minmax(0,1fr);gap:12px;border-bottom:1px solid #243f5c;padding:12px 0}
.catalog-facts dt{font-weight:750;font-size:12px;color:#d8eafb}.catalog-facts dd{font-size:12px;line-height:1.6;color:#a9c3db;margin:0}
.catalog-body>.text-link{margin-top:auto}
.empty-filter{color:#b5cee6}
.next-path{margin-top:44px;padding:27px 30px;border:1px solid #376786;border-radius:12px;background:radial-gradient(ellipse at 90% 0,rgba(18,116,206,.17),transparent 55%),#0b2138;display:flex;justify-content:space-between;align-items:center;gap:24px}
.next-path h2{font-size:22px;letter-spacing:-.03em;margin:0 0 8px}
.next-path p{color:#b4cee5;line-height:1.7;margin:0;max-width:750px;font-size:14px}
.next-path .button{flex-shrink:0}
.subpage-intro{margin-bottom:26px;max-width:930px}
.subpage-intro p{font-size:15px;line-height:1.72;color:#b6cee5;margin:0}
.skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.skill-proof-card{display:grid;grid-template-columns:38px minmax(0,1fr);gap:17px;border:1px solid #2b5d83;border-radius:12px;background:linear-gradient(130deg,#0c253e,#091a2e);padding:24px;min-width:0}
.skill-index{font-size:16px;color:#43e1ea;font-weight:720;letter-spacing:.06em}
.skill-title{display:flex;align-items:start;gap:10px;justify-content:space-between;flex-wrap:wrap}
.skill-title h2{font-size:20px;letter-spacing:-.03em;line-height:1.25;margin:0}
.skill-state{font-size:11px;line-height:1.2;padding:6px 9px;border-radius:99px;border:1px solid #34628b;background:#102f50;color:#b9e1ff}
.skill-info>p{font-size:14px;line-height:1.6;color:#c5d8e9;margin:12px 0 14px}
.skill-evidence{border-top:1px solid #244760;margin-bottom:15px;padding-top:14px}
.skill-evidence strong{font-size:12px;color:#80e9eb}
.skill-evidence p{font-size:13px;line-height:1.65;color:#b2cee4;margin:7px 0 0}
.about-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:23px;align-items:start}
.about-main{display:grid;gap:18px}.editorial-panel{border:1px solid #2a567b;background:linear-gradient(140deg,#0b233a,#081a2c);border-radius:12px;padding:31px 34px}
.editorial-panel .eyebrow{font-size:11px;letter-spacing:.17em;color:#55e3ea;margin-bottom:8px}
.editorial-panel h2{font-size:clamp(22px,2.5vw,32px);line-height:1.2;letter-spacing:-.04em;margin:0 0 16px;max-width:800px}
.editorial-panel p{font-size:15px;color:#c3d5e8;line-height:1.8;max-width:860px;margin:0 0 16px}
.editorial-panel p:last-child{margin-bottom:0}.method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:22px}
.method-grid article{padding:20px;background:#0b2c49;border:1px solid #2a5d83;border-radius:9px}
.method-grid span{color:#45e7ee;font-size:13px;font-weight:800}.method-grid h3{font-size:17px;margin:8px 0 6px}
.method-grid article p{font-size:13px;margin:0;color:#bbd0e7;line-height:1.68}
.profile-panel,.aside-note{background:linear-gradient(155deg,#103657,#0a1d32);border:1px solid #326a95;border-radius:12px;padding:26px}
.profile-panel{text-align:left}.profile-mark{height:64px;width:64px;display:grid;place-items:center;background:linear-gradient(145deg,#26e8e9,#286dff);border-radius:16px;font-size:40px;font-weight:850;color:#031424;box-shadow:0 0 32px rgba(19,157,244,.2)}
.profile-panel h2{font-size:29px;letter-spacing:-.04em;margin:20px 0 4px}.profile-panel p{font-size:14px;color:#b9cde3;margin:0 0 19px;line-height:1.65}
.profile-panel strong{color:#72ebed;display:block;font-size:12px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:7px}
.profile-panel .button{width:100%}.profile-sep{display:block;border-top:1px solid #2b5471;margin:8px 0 18px}
.about-side{display:grid;gap:16px}.aside-note{background:#0b1e31;padding:24px}
.aside-note h3,.aside-note h2{font-size:17px;line-height:1.3;margin:0 0 12px}
.aside-note p{font-size:13px;line-height:1.75;color:#b5cee3;margin:0}
.activity-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:25px;align-items:start}
.activity-full-list{list-style:none;margin:0;padding:0;position:relative}.activity-entry{display:grid;grid-template-columns:140px minmax(0,1fr);gap:23px;position:relative;border-top:1px solid #315370;padding:25px 0}
.activity-date{display:flex;flex-direction:column;align-items:start;gap:9px;font-size:13px;color:#a6c4df}
.activity-category{border-radius:50px;padding:5px 8px;border:1px solid #326892;background:#0e2d4a;color:#a9ddff;font-size:11px}
.activity-content h2{font-size:21px;line-height:1.3;letter-spacing:-.03em;margin:0 0 8px}.activity-content h2 a:hover{color:#7deaff}
.activity-content p{font-size:14px;line-height:1.7;color:#bed1e6;margin:0 0 12px}.activity-aside .text-link{margin-top:22px}
@media(max-width:1180px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-title{display:block}.skill-state{display:inline-flex;margin-top:9px}}
@media(max-width:920px){.catalog-grid{grid-template-columns:1fr 1fr}.about-layout,.activity-layout{grid-template-columns:1fr}.about-side{grid-template-columns:1fr 1fr}.skill-grid{grid-template-columns:1fr}.next-path{align-items:flex-start;flex-direction:column}}
@media(max-width:720px){.nav a[aria-current="page"]::after{display:none}.nav a[aria-current="page"]{background:rgba(38,142,212,.15);padding-left:13px;border-left:3px solid #39d8fb}.subpage-hero{padding:20px 0 36px}.breadcrumbs{margin-bottom:22px}.subpage-body{padding-top:24px}.summary-strip{grid-template-columns:1fr 1fr 1fr}.summary-strip>div{padding:16px 13px}.summary-strip strong{font-size:26px}.summary-strip span{font-size:11px}.catalog-grid{grid-template-columns:1fr}.catalog-image{height:185px}.catalog-body>p{min-height:0}.list-heading{display:block}.list-heading>p{margin-top:10px}.section-intro-line{display:block}.section-intro-line .text-link{margin-top:10px}.editorial-panel{padding:23px}.about-side{grid-template-columns:1fr}.activity-entry{grid-template-columns:1fr;gap:10px}.activity-date{flex-direction:row;align-items:center}.method-grid{grid-template-columns:1fr 1fr}.skill-proof-card{grid-template-columns:25px 1fr;padding:20px}.next-path{padding:23px}.subpage-hero h1{font-size:clamp(32px,10vw,48px)}}
@media(max-width:420px){.summary-strip{grid-template-columns:1fr}.summary-strip>div{flex-direction:row;align-items:center;gap:16px;padding:12px 17px}.summary-strip>div+div{border-left:0;border-top:1px solid #244969}.summary-strip strong{min-width:20px}.method-grid{grid-template-columns:1fr}.catalog-body{padding:19px}.skill-title h2{font-size:18px}.filter-button{padding:9px 12px;font-size:12px}}
[hidden]{display:none!important}
