/* Cyberpunk palette layered over the spacious dashboard layout. */
body.zen{--bg:#090d18;--sidebar-bg:#0c1220;--card-bg:#101a2a;--accent:#69e6ff;--accent2:#8de8ff;--green:#7fe7bd;--red:#ff88bd;--orange:#e8c777;--text:#e3edf7;--text-dim:#a3b3c7;--border:#27354b;background:radial-gradient(ellipse at 90% 0,#53285a24,transparent 45%),var(--bg);color:var(--text)}
.zen .sidebar{background:#0c1220f5;border-color:#26374d}.zen .logo{color:#83eaff;text-shadow:0 0 18px #5ee6ff35}.zen nav a:hover{color:#a9f2ff;background:#182c3d}.zen .hub-link{color:#9aabc1}
.zen .hero h1{color:#edf4fc}.zen .hero h1 span{color:#83eaff}.zen .hero::before{content:'CYBERSEC / FIELD NOTES';display:block;font:600 10px Consolas,monospace;letter-spacing:.2em;color:#e39cc9;margin-bottom:22px}
.zen .stats{background:#101a2a;border-color:var(--border);border-radius:4px}.zen .stat-card{background:transparent;border-color:var(--border)}.zen .stat-value{color:#9beaff}.zen .stat-value.green{color:#7fe7bd}
.zen .btn{background:#78e4f7;border-color:#78e4f7;color:#07111e;border-radius:3px}.zen .btn-outline{background:transparent;border-color:#3e6279;color:#a5eaff}.zen .btn:hover{background:#b8f4ff;color:#07111e;border-color:#b8f4ff}
.zen .project-card,.zen .hub-card,.zen .cert-card,.zen .about-card,.zen .thm-profile,.zen .skills-grid{background:linear-gradient(135deg,#142033,#101824);border-color:#293a50;border-radius:5px;box-shadow:none}.zen .project-card:hover,.zen .hub-card:hover{border-color:#5f9fb5;box-shadow:0 0 22px #5ce1ff09}
.zen .project-tag,.zen .project-tag.critical,.zen .project-tag.high,.zen .project-tag.medium,.zen .project-tag.low{background:#163040;color:#9ceaff;border-color:#285064;border-radius:3px}.zen .project-tag.critical{background:#352239;color:#f6b3d6;border-color:#5d3654}.zen .project-tag.medium{background:#342e22;color:#edcf8e;border-color:#55482e}
.zen .terminal-section,.zen .hub-terminal{background:#09121d;border-color:#2b4256;border-radius:5px}.zen .terminal-header{background:#142332}.zen .terminal-title,.zen .terminal-details summary{color:#96d5e7}.zen .terminal-body{color:#a0c8dc}.zen .terminal-details[open] summary{border-color:#2b4256}.zen .terminal-cursor{color:#8eeaff}
.zen .about-tag{background:#193042;color:#a7d9ed;border-radius:4px}.zen .thm-avatar,.zen .thm-stat{background:#0d1726;border-color:#2b3b50}.zen .thm-room.done,.zen .thm-room.active{background:#132b31;border-color:#284a50;color:#a4dfd1}.zen .thm-room.active{background:#302938;border-color:#51405c;color:#e6b8dc}
.zen .ethics-banner{background:#211e30;border-color:#49324e;border-radius:5px;color:#bcb5cc}.zen .ethics-banner strong,.zen .ethics-icon{color:#e5b2ce}
.zen .system-status,.zen .system-status.critical{color:#9cacc0;border-color:#27354b}.zen .hub-prompt input{color:#b0eaff}.zen .hub-prompt label{color:#8de8ff}.zen .hub-card-icon{filter:grayscale(1);opacity:.8}.zen .hub-card-cta{color:#97eaff}
.zen a:focus-visible,.zen input:focus-visible,.zen summary:focus-visible{outline-color:#f2a3d5}.zen .section-title{color:#a4bad0}.zen .project-link{color:#9ae7fc}
@media(max-width:900px){.zen .stat-card:nth-child(-n+2){border-color:var(--border)}}

/* Night-shift banner shown after the intro */
.night-banner{position:relative;margin:0 0 36px;border:1px solid #2b4256;border-radius:6px;overflow:hidden;background:#06090f;box-shadow:0 0 0 1px #ff4fd81f,0 0 36px #5ce1ff1f,0 0 70px #c04bff14;animation:nightIn .9s ease both}
.night-banner img{display:block;width:100%;height:auto;max-height:46vh;object-fit:cover;object-position:60% 50%}
.night-banner::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,transparent 55%,#090d18 100%),repeating-linear-gradient(to bottom,#ffffff06 0,#ffffff06 1px,transparent 1px,transparent 3px)}
.night-banner figcaption{position:absolute;left:18px;bottom:14px;z-index:1;font:600 11px Consolas,'Courier New',monospace;letter-spacing:.2em;color:#9beaff;text-shadow:0 0 12px #5ee6ff80}
.night-banner figcaption span{color:#ff8bd6}
@keyframes nightIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.night-banner{animation:none}}
@media(max-width:600px){.night-banner img{max-height:none;aspect-ratio:16/10}.night-banner figcaption{font-size:9px;left:12px;bottom:10px}}

/* Red pill (left) and blue pill (right), shown after the intro */
.pill-rain{position:fixed;top:0;bottom:0;width:min(21vw,300px);height:100vh;z-index:0;pointer-events:none;opacity:0;transition:opacity 1.2s ease}
.pill-rain-l{left:0;-webkit-mask-image:linear-gradient(to right,#000 25%,transparent);mask-image:linear-gradient(to right,#000 25%,transparent)}
.pill-rain-r{right:0;-webkit-mask-image:linear-gradient(to left,#000 25%,transparent);mask-image:linear-gradient(to left,#000 25%,transparent)}
.pills-on .pill-rain{opacity:.5}
.pill-side{position:fixed;top:50%;z-index:5;width:min(19vw,260px);display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;font-family:Consolas,'Courier New',monospace;opacity:0;pointer-events:none;transform:translateY(-50%) translateY(14px);transition:opacity 1.1s ease .5s,transform 1.1s ease .5s}
.pill-red{left:max(14px,2vw);--g:255,60,80;color:#ff9aa6}
.pill-blue{right:max(14px,2vw);--g:70,150,255;color:#9cc8ff}
.pills-on .pill-side{opacity:1;pointer-events:auto;transform:translateY(-50%)}
.pill-svg{width:100%;height:auto;filter:drop-shadow(0 0 18px rgba(var(--g),.65)) drop-shadow(0 0 44px rgba(var(--g),.35));transition:transform .35s ease,filter .35s ease}
.pill-side:hover .pill-svg,.pill-side:focus-visible .pill-svg{filter:drop-shadow(0 0 26px rgba(var(--g),.95)) drop-shadow(0 0 64px rgba(var(--g),.6))}
.pill-red:hover .pill-svg{transform:rotate(-14deg) scale(1.08)}
.pill-blue:hover .pill-svg{transform:rotate(14deg) scale(1.08)}
.pill-side:focus-visible{outline:1px dashed rgba(var(--g),.8);outline-offset:8px}
.pill-label{margin-top:6px;font-weight:700;font-size:15px;letter-spacing:.28em;text-shadow:0 0 14px rgba(var(--g),.8)}
.pill-sub{margin-top:8px;font-size:11px;line-height:1.5;color:#b9c7d8;max-width:210px}
.pill-quote{margin-top:10px;font-size:10px;font-style:italic;color:rgba(var(--g),.0);transition:color .35s ease;max-width:200px;line-height:1.5}
.pill-side:hover .pill-quote,.pill-side:focus-visible .pill-quote{color:rgb(var(--g))}
@media(max-width:1280px){
  .pill-rain{display:none}
  .pill-side{top:auto;bottom:14px;width:112px;transform:translateY(14px)}
  .pills-on .pill-side{transform:none}
  .pill-sub,.pill-quote{display:none}
  .pill-label{font-size:10px;letter-spacing:.2em}
  .pill-red .pill-svg,.pill-blue .pill-svg{transform:none}
  .pill-red:hover .pill-svg,.pill-blue:hover .pill-svg{transform:scale(1.08)}
}
@media(prefers-reduced-motion:reduce){.pill-side,.pill-svg,.pill-rain{transition:none}}

/* Cyberpunk and Matrix pill upgrade */
.pill-side{font-family:'Share Tech Mono',Consolas,'Courier New',monospace}
.pill-stage{position:relative;display:block;width:100%;padding:14px 0;margin:4px 0;background:radial-gradient(ellipse at center,rgba(var(--g),.22),transparent 68%)}
.pill-stage::before{content:'';position:absolute;left:8%;right:8%;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--g),.8),transparent);opacity:.6;box-shadow:0 0 12px rgba(var(--g),.9)}
.pill-tag{font-size:10px;letter-spacing:.22em;color:#46ff9a;text-shadow:0 0 10px #1eff7a99;border:1px solid #1eff7a55;padding:3px 8px;background:#02150a99}
.pill-svg{position:relative;filter:drop-shadow(0 0 10px rgba(var(--g),.9)) drop-shadow(0 0 30px rgba(var(--g),.6)) drop-shadow(0 0 70px rgba(var(--g),.35));animation:pillFloat 4s ease-in-out infinite}
.pill-blue .pill-svg{animation-delay:-2s}
.pill-code{animation:pillCode 2.2s steps(4) infinite}
.pill-scan{animation:pillScan 2.6s linear infinite}
.pill-label{position:relative;color:#fff;font-size:17px;letter-spacing:.32em;text-shadow:0 0 8px rgba(var(--g),1),0 0 22px rgba(var(--g),.8),2px 0 rgba(255,0,80,.55),-2px 0 rgba(0,220,255,.55);animation:pillGlitch 5s steps(1) infinite}
.pill-sub{color:#8cffc0;text-shadow:0 0 8px #1eff7a55;font-size:11px}
.pill-sub::before{content:'> '}
.pill-quote{color:rgba(var(--g),0);min-height:3em}
.pill-caret{animation:pillBlink 1s steps(1) infinite}
.pill-side::after{content:'';position:absolute;inset:-10px;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0 2px,rgba(0,0,0,.22) 2px 3px);mix-blend-mode:multiply;opacity:.5}
@keyframes pillFloat{0%,100%{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-8px) rotate(var(--r,0deg))}}
@keyframes pillScan{0%{transform:translateY(-10px)}100%{transform:translateY(70px)}}
@keyframes pillCode{0%{transform:translateY(0)}100%{transform:translateY(-6px)}}
@keyframes pillBlink{50%{opacity:0}}
@keyframes pillGlitch{0%,92%,100%{transform:none;clip-path:none}93%{transform:translate(-3px,1px);clip-path:inset(10% 0 55% 0)}94%{transform:translate(3px,-1px);clip-path:inset(55% 0 5% 0)}95%{transform:none}}
.pill-red .pill-svg{--r:-18deg;transform:none}
.pill-blue .pill-svg{--r:18deg;transform:none}
.pill-red:hover .pill-svg,.pill-blue:hover .pill-svg{transform:none;filter:drop-shadow(0 0 16px rgba(var(--g),1)) drop-shadow(0 0 50px rgba(var(--g),.85)) drop-shadow(0 0 110px rgba(var(--g),.6))}
.pill-side:hover .pill-quote,.pill-side:focus-visible .pill-quote{color:#7dffb4;text-shadow:0 0 8px #1eff7a88}
.pill-side:hover .pill-tag{background:#0a3a1e;border-color:#46ff9a}
@media(max-width:1280px){.pill-tag,.pill-stage::before{display:none}.pill-stage{padding:0;background:none}.pill-svg{animation:none;--r:0deg}.pill-side::after{display:none}.pill-label{font-size:10px}}
@media(prefers-reduced-motion:reduce){.pill-svg,.pill-code,.pill-scan,.pill-label,.pill-caret{animation:none}}

/* ===== THEME PASS: Matrix x cyberpunk design system (red = offensive, blue = defensive) ===== */
:root{--n-green:#39ff88;--n-cyan:#5ce1ff;--n-mag:#ff4fd8;--n-red:#ff3d5a;--n-blue:#3fa9ff;--mono:'Share Tech Mono',Consolas,'Courier New',monospace}
body.zen{--a:92,225,255;--a2:57,255,136;--c:var(--a);background:radial-gradient(ellipse at 90% 0,#53285a30,transparent 45%),radial-gradient(ellipse at 0 100%,#0b3a4a30,transparent 50%),linear-gradient(#5ce1ff09 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,#5ce1ff09 1px,transparent 1px) 0 0/48px 48px,#070b14;background-attachment:fixed}
body.theme-soc{--a:63,169,255;--a2:57,255,136}
body.theme-pen{--a:255,61,90;--a2:255,79,216}
#bg-rain{position:fixed;inset:0;width:100%;height:100%;z-index:-1;opacity:.11;pointer-events:none}
body.zen::after{content:'';position:fixed;inset:0;z-index:9000;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0 2px,rgba(0,0,0,.09) 2px 3px),radial-gradient(ellipse at center,transparent 62%,rgba(0,0,0,.42) 100%)}
.zen :focus-visible{outline-color:rgb(var(--a))}
.zen .hub-title:focus,.zen .hub-title:focus-visible{outline:none}

/* Hub header */
.zen .hub-header .logo{font-family:var(--mono);font-size:.82rem;letter-spacing:.36em;color:var(--n-green);text-shadow:0 0 12px #39ff8877;margin-bottom:14px}
.zen .hub-header .logo::before{content:'// ';color:var(--n-mag);letter-spacing:0}
.zen .hub-header .logo::after{content:'.HUB';color:#8dffbd}
.zen .hub-title{font-family:var(--mono);font-weight:400;text-transform:uppercase;letter-spacing:.12em;font-size:clamp(1.55rem,6.6vw,3.7rem);line-height:1.06;color:#eafff3;text-shadow:0 0 8px #39ff886e,0 0 34px #39ff8838,2px 0 #ff2a6d55,-2px 0 #00e5ff55;margin-bottom:16px;animation:titleGlitch 8s steps(1) infinite}
.zen .hub-tagline{font-family:var(--mono);font-size:clamp(.82rem,2.6vw,1rem);letter-spacing:.06em;color:#c5d3e3;line-height:1.7}
.zen .hub-tagline .sep{color:var(--n-mag);margin:0 .5em;text-shadow:0 0 8px #ff4fd8aa}
.zen .hub-tagline b{font-weight:400;color:#8de8ff}
@keyframes titleGlitch{0%,94%,100%{transform:none;clip-path:none}95%{transform:translate(-3px,1px);clip-path:inset(15% 0 50% 0)}96%{transform:translate(3px,-1px);clip-path:inset(55% 0 10% 0)}97%{transform:none;clip-path:none}}

/* Section labels: // IAM.TOOLS */
.zen .section-title{display:flex;align-items:center;gap:.9em;font-family:var(--mono);font-weight:400;font-size:.86rem;letter-spacing:.3em;text-transform:uppercase;color:rgb(var(--c));border:0;padding:0;margin-bottom:22px;text-shadow:0 0 14px rgba(var(--c),.45)}
.zen .section-title::before{content:'//';color:var(--n-mag);letter-spacing:0;text-shadow:0 0 10px #ff4fd88a}
.zen .section-title::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,rgba(var(--c),.6),transparent)}
#iam{--c:57,255,136}#reg-support{--c:255,208,90}#compliance{--c:255,79,216}

/* Terminals */
.zen .hub-terminal,.zen .terminal-section{position:relative;background:#030a07;border:1px solid #1d6239;border-radius:4px;overflow:hidden;box-shadow:0 0 0 1px #39ff8812,0 0 32px #39ff8820,inset 0 0 44px #39ff8808}
.zen .hub-terminal::after{content:'';position:absolute;left:0;right:0;top:0;height:60px;pointer-events:none;background:linear-gradient(to bottom,transparent,#39ff8810,transparent);animation:termSweep 6s linear infinite}
@keyframes termSweep{from{transform:translateY(-70px)}to{transform:translateY(420px)}}
.zen .terminal-header{background:linear-gradient(90deg,#0b2a18,#07140d);border-bottom:1px solid #1d6239}
.zen .terminal-title{font-family:var(--mono);color:#7dffb4;letter-spacing:.26em;font-size:.72rem}
.zen .terminal-title::before{content:'■ ';color:#39ff88}
.zen .terminal-dot{opacity:1;box-shadow:0 0 6px currentColor}
.zen .terminal-dot.red{color:#ff3d5a}.zen .terminal-dot.yellow{color:#ffd05a}.zen .terminal-dot.green{color:#39ff88}
.zen .terminal-body{font-family:var(--mono);color:#9bffc6;font-size:.9rem;line-height:1.85}
.zen .terminal-line-cmd{color:var(--n-cyan)}.zen .terminal-line-out{color:#9bffc6}
.zen .hub-prompt label{font-family:var(--mono);color:var(--n-green);text-shadow:0 0 8px #39ff8888}
.zen .hub-prompt input{font-family:var(--mono);color:#e6ffee;caret-color:var(--n-green);border-bottom:1px solid #1d6239;padding:4px 2px}
.zen .hub-prompt input:focus{border-bottom-color:var(--n-green);box-shadow:0 8px 14px -10px #39ff88}
.zen .hub-prompt input::placeholder{color:#62b384}
.zen .terminal-cursor{color:var(--n-green);text-shadow:0 0 8px #39ff88}

/* Cards: color coded (blue = SOC, red = pentest, green = IAM, amber = reg, magenta = compliance) */
.zen .hub-card,.zen .project-card{--c:var(--a);position:relative;overflow:hidden;background:linear-gradient(160deg,#111d30,#0a121f);border:1px solid rgba(var(--c),.24);border-radius:4px;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.zen .hub-card[href="soc-dashboard.html"]{--c:63,169,255}
.zen .hub-card[href="pentest-dashboard.html"]{--c:255,61,90}
#iam .hub-card{--c:57,255,136}#reg-support .hub-card{--c:255,208,90}#compliance .hub-card{--c:255,79,216}
.zen .hub-card::before,.zen .project-card::before{content:'';position:absolute;left:0;top:0;height:2px;width:34%;background:rgb(var(--c));box-shadow:0 0 14px rgb(var(--c));transition:width .45s cubic-bezier(.2,.8,.2,1)}
.zen .hub-card::after,.zen .project-card::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0),rgba(var(--c),.17),transparent 70%)}
.zen .hub-card:hover,.zen .project-card:hover{transform:translateY(-4px);border-color:rgba(var(--c),.85);box-shadow:0 14px 44px rgba(var(--c),.18),0 0 0 1px rgba(var(--c),.3)}
.zen .hub-card:hover::before,.zen .project-card:hover::before{width:100%}
.zen .hub-card:hover::after,.zen .project-card:hover::after{opacity:1}
.zen .hub-card:focus-visible{outline:2px solid rgb(var(--c));outline-offset:4px}
.zen .hub-card h2,.zen .project-card h3{font-family:var(--mono);font-weight:400;letter-spacing:.07em;text-transform:uppercase;color:#f1f6fb}
.zen .hub-card h2{font-size:1.28rem}.zen .project-card h3{font-size:1.02rem}
.zen .hub-card-icon{filter:grayscale(1) drop-shadow(0 0 8px rgba(var(--c),.9));opacity:.95}
.zen .hub-card-stats{font-family:var(--mono);color:#a9bdd2;letter-spacing:.06em}
.zen .hub-card-stats span+span::before{content:'/';color:rgb(var(--c));margin-right:16px}
.zen .hub-card-cta,.zen .project-link{display:inline-block;font-family:var(--mono);font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:rgb(var(--c));text-shadow:0 0 12px rgba(var(--c),.45);transition:transform .25s ease,text-shadow .25s}
.zen .hub-card:hover .hub-card-cta,.zen .project-link:hover{transform:translateX(6px);text-shadow:0 0 16px rgba(var(--c),.9)}
.zen .hub-card .project-tag[class],.zen .project-card .project-tag[class]{font-family:var(--mono);letter-spacing:.18em;border-radius:2px}
.zen .hub-card .project-tag[class]{background:rgba(var(--c),.12);color:rgb(var(--c));border-color:rgba(var(--c),.45)}
.zen .project-tag.critical{background:#3a1520;color:#ff8da0;border-color:#7a2a3c}
.zen .project-tag.high{background:#0f2f45;color:#8fdcff;border-color:#25607f}
.zen .project-tag.medium{background:#352b14;color:#ffd98a;border-color:#6a5524}

/* Hub footer, access code */
.zen .hub-footer{gap:28px;border-top:1px solid #1d3a4e}
.zen .hub-footer a{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#a9bdd2;transition:color .2s,text-shadow .2s}
.zen .hub-footer a::before{content:'> ';color:var(--n-green)}
.zen .hub-footer a:hover,.zen .hub-footer a:focus-visible{color:var(--n-green);text-shadow:0 0 12px #39ff8899}
.zen .reg-lock label{font-family:var(--mono);letter-spacing:.24em;color:#ffd05a;text-shadow:0 0 10px #ffd05a55}
.zen .reg-lock input{font-family:var(--mono);color:#fff;border-bottom:1px solid #6a5524}
.zen .reg-msg{font-family:var(--mono)}

/* Banner HUD */
.night-banner::before{content:'';position:absolute;inset:10px;z-index:2;pointer-events:none;--b:rgba(92,225,255,.95);background:linear-gradient(var(--b),var(--b)) top left/20px 2px no-repeat,linear-gradient(var(--b),var(--b)) top left/2px 20px no-repeat,linear-gradient(var(--b),var(--b)) top right/20px 2px no-repeat,linear-gradient(var(--b),var(--b)) top right/2px 20px no-repeat,linear-gradient(var(--b),var(--b)) bottom left/20px 2px no-repeat,linear-gradient(var(--b),var(--b)) bottom left/2px 20px no-repeat,linear-gradient(var(--b),var(--b)) bottom right/20px 2px no-repeat,linear-gradient(var(--b),var(--b)) bottom right/2px 20px no-repeat;filter:drop-shadow(0 0 5px rgba(92,225,255,.8))}
.night-banner figcaption{font-size:12px;letter-spacing:.26em}
.night-banner figcaption::before{content:'● ';color:var(--n-red);text-shadow:0 0 8px var(--n-red);animation:pillBlink 1.6s steps(1) infinite}

/* Dashboards: sidebar, hero, stats, buttons */
.zen .sidebar{border-right:1px solid rgba(var(--a),.4);box-shadow:8px 0 44px rgba(var(--a),.07)}
.zen .logo{font-family:var(--mono);color:rgb(var(--a));text-shadow:0 0 14px rgba(var(--a),.6)}
.zen .hub-link{font-family:var(--mono);letter-spacing:.2em;color:#a9bdd2;text-decoration:none}.zen .hub-link:hover{color:var(--n-green)}
.zen .profile-label{font-family:var(--mono);letter-spacing:.24em;color:rgb(var(--a));font-size:.68rem}
.zen .profile-name{font-family:var(--mono);font-weight:400;letter-spacing:.06em;font-size:1.3rem}
.zen .profile-tags{color:#b6c6d8}
.zen nav a{position:relative;font-family:var(--mono);letter-spacing:.06em;color:#b6c6d8;border-radius:2px;transition:color .2s,background .2s,padding .2s}
.zen nav a:hover,.zen nav a.active{color:rgb(var(--a));background:rgba(var(--a),.1);box-shadow:inset 2px 0 rgb(var(--a));padding-left:16px}
.zen nav a.active::before,.zen nav a:hover::before{content:'>';position:absolute;left:4px}
.zen .system-status,.zen .system-status.critical{font-family:var(--mono);letter-spacing:.06em;color:#b6c6d8}
.zen .system-status::before{content:'● ONLINE';display:block;color:var(--n-green);letter-spacing:.24em;margin-bottom:6px;text-shadow:0 0 8px #39ff8888}
.zen .hero::before{font:400 12px var(--mono);letter-spacing:.3em;color:rgb(var(--a));text-shadow:0 0 12px rgba(var(--a),.5)}
body.theme-soc .hero::before{content:'// SOC.DASHBOARD [ DEFENSIVE ]'}
body.theme-pen .hero::before{content:'// PENTEST.DASHBOARD [ OFFENSIVE ]'}
.zen .hero h1{font-family:var(--mono);font-weight:400;letter-spacing:-.01em;font-size:clamp(1.9rem,4.4vw,3.5rem);line-height:1.12;color:#f1f7ff;text-shadow:0 0 22px rgba(var(--a),.2)}
.zen .hero h1 span{color:rgb(var(--a));text-shadow:0 0 8px rgba(var(--a),.7),0 0 34px rgba(var(--a),.4)}
@supports(-webkit-background-clip:text) or (background-clip:text){.zen .hero h1 span{background:linear-gradient(90deg,rgb(var(--a)),rgb(var(--a2)) 115%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 0 14px rgba(var(--a),.45))}}
.zen .tagline{font-family:var(--mono);letter-spacing:.04em;color:#c5d3e3}
.zen .bio{color:#a9bdd2}
.zen .stats{background:#0b1424;border:1px solid rgba(var(--a),.3);border-radius:4px;box-shadow:0 0 30px rgba(var(--a),.07)}
.zen .stat-label{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;font-size:.7rem;color:#a9bdd2}
.zen .stat-label::before{content:'> ';color:rgb(var(--a))}
.zen .stat-value{font-family:var(--mono);font-weight:400;color:rgb(var(--a));text-shadow:0 0 16px rgba(var(--a),.5)}
.zen .stat-value.green{color:var(--n-green);text-shadow:0 0 14px #39ff8877;letter-spacing:.2em}
.zen .stat-value.green::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--n-green);box-shadow:0 0 10px var(--n-green);margin-right:10px;vertical-align:middle;animation:pillBlink 1.6s steps(1) infinite}
.zen .btn{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;font-weight:400;font-size:.8rem;border-radius:2px;background:rgb(var(--a));border-color:rgb(var(--a));color:#04101a;box-shadow:0 0 18px rgba(var(--a),.35);transition:box-shadow .25s,transform .25s,background .25s}
.zen .btn:hover{background:#fff;border-color:#fff;color:#04101a;box-shadow:0 0 28px rgba(var(--a),.8);transform:translateY(-2px)}
.zen .btn-outline{background:transparent;color:rgb(var(--a));border-color:rgba(var(--a),.55);box-shadow:none}
.zen .btn-outline:hover{background:rgba(var(--a),.14);color:#fff;border-color:rgb(var(--a))}
.zen .ethics-banner{background:repeating-linear-gradient(135deg,#2a1219,#2a1219 14px,#231019 14px,#231019 28px);border:1px solid #6a2a3c;border-left:4px solid var(--n-red);border-radius:2px;color:#d9c9d4}
.zen .ethics-banner strong,.zen .ethics-icon{color:#ff8da0;font-family:var(--mono);letter-spacing:.06em}
.zen .cert-card,.zen .about-card,.zen .thm-profile,.zen .skills-grid{border-radius:4px;background:linear-gradient(160deg,#111d30,#0a121f);border:1px solid rgba(var(--a),.22)}
.zen .cert-issuer,.zen .thm-stat-label,.zen .about-clearance{font-family:var(--mono);letter-spacing:.16em}
.zen .cert-name,.zen .thm-username,.zen .thm-stat-val{font-family:var(--mono);font-weight:400;letter-spacing:.04em}
.zen .thm-stat-val{color:rgb(var(--a));text-shadow:0 0 12px rgba(var(--a),.4)}
.zen .skill-row{font-family:var(--mono)}
.zen .terminal-details summary{font-family:var(--mono);letter-spacing:.14em;color:#7dffb4}
.zen .terminal-details summary::marker{color:var(--n-green)}

/* Scroll reveal (only when theme.js is running and motion is allowed) */
.reveal-on .rv:not(.in){opacity:0}
.reveal-on .rv.in{animation:rvIn .65s cubic-bezier(.2,.8,.2,1) var(--rv-d,0ms) backwards}
@keyframes rvIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.zen .decoded{animation:decodeFlash .6s ease-out 1}
@keyframes decodeFlash{from{filter:brightness(2.2)}to{filter:none}}

/* Phones and tablets (<=1280px): the fixed side pills are replaced by an inline "choose your pill" row, see the mobile pass at the end of this file */
@media(max-width:680px){
  .zen .hero h1{font-size:1.85rem}
  .zen .stat-value{font-size:1.4rem}
  .zen .hub-card,.zen .project-card{padding:22px}
  .night-banner figcaption{letter-spacing:.14em}
  .zen .section-title{letter-spacing:.2em;font-size:.78rem}
}
@media(prefers-reduced-motion:reduce){body.zen::after{background:radial-gradient(ellipse at center,transparent 62%,rgba(0,0,0,.42) 100%)}.zen .hub-terminal::after{display:none}.zen .hub-title{animation:none}.reveal-on .rv:not(.in){opacity:1}}

/* Pass 2 refinements */
.zen .hub-prompt input:focus,.zen .hub-prompt input:focus-visible,.zen .reg-lock input:focus-visible{outline:none}
.zen .reg-lock input:focus{border-bottom-color:#ffd05a;box-shadow:0 8px 14px -10px #ffd05a}
.zen .stat-value.green::before{animation:none}
@media(min-width:1500px){.zen .hub-main{max-width:1060px}}

/* Pass 3 refinements */
::selection{background:#39ff88;color:#020b07}
html{scrollbar-color:#1d6239 #070b14;scrollbar-width:thin}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#070b14}::-webkit-scrollbar-thumb{background:#1d6239;border:2px solid #070b14;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#39ff88}
.zen .tagline::before{content:'> ';color:rgb(var(--a))}
.zen .thm-room-title,.zen .thm-sub,.zen .thm-user{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase}
.zen .thm-room-title::before{content:'// ';color:var(--n-mag);letter-spacing:0}
.zen .thm-room{font-family:var(--mono);letter-spacing:.03em;border-radius:2px}
.zen .thm-room.done{background:linear-gradient(90deg,#0c2a1c,#0a1a14);border-color:#1d6239;color:#b8ffd6}
.zen .thm-room.active{background:linear-gradient(90deg,#2b1530,#1a1022);border-color:#6a2d6a;color:#ffc2ec}
.zen .cert-status{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--n-green);text-shadow:0 0 10px #39ff8866}
.zen .cert-card{position:relative;transition:border-color .25s,box-shadow .25s}.zen .cert-card:hover{border-color:rgba(var(--a),.7);box-shadow:0 0 28px rgba(var(--a),.14)}
.zen .thm-avatar{box-shadow:0 0 18px rgba(var(--a),.35);border-color:rgba(var(--a),.6)}
.zen .about-tag{font-family:var(--mono);letter-spacing:.1em;border:1px solid rgba(var(--a),.3);background:rgba(var(--a),.08);color:#cfe3f5}
.zen .skill-val{color:#c5d3e3}
.zen .hub-card:hover h2,.zen .project-card:hover h3{text-shadow:2px 0 #ff2a6d66,-2px 0 #00e5ff66}
.zen .project-card{min-width:0}
@media(prefers-reduced-motion:reduce){.zen .hub-card:hover h2,.zen .project-card:hover h3{text-shadow:none}}

/* Pass 4 refinements */
/* Performance: animated drop-shadow filters cost ~40 fps in software rendering, so the pill glow is now static gradient layers */
.pill-side .pill-svg,.pill-side:hover .pill-svg,.pill-side:focus-visible .pill-svg,.pill-red:hover .pill-svg,.pill-blue:hover .pill-svg{filter:none;will-change:transform}
.pill-stage{background:radial-gradient(ellipse 72% 58% at 50% 50%,rgba(var(--g),.5),rgba(var(--g),.16) 46%,transparent 74%);transition:filter .3s}
.pill-side:hover .pill-stage,.pill-side:focus-visible .pill-stage{filter:brightness(1.7) saturate(1.2)}
.pill-stage::after{content:'';position:absolute;left:10%;right:10%;bottom:-6px;height:14px;background:radial-gradient(ellipse at center,rgba(var(--g),.55),transparent 70%);pointer-events:none}
.zen .section .btn{margin-top:14px}
.zen #contact p{margin-bottom:4px}
.pill-blue .pill-label{animation-delay:-2.6s}
.pill-blue .pill-tag{margin-top:0}

/* ===== MOBILE PASS (20261027m): phones, landscape phones and tablets ===== */
/* Inline pill chooser: hidden on desktop (the fixed side pills are used there) */
.pill-choose{display:none}
.pc-capsule i{font-style:normal}

@media(max-width:1280px){
  /* Never leave fixed pills or pill rain over content */
  .pill-side,.pill-rain{display:none!important}
  .pill-choose{display:block;margin:0 0 32px}
  .pill-choose-title{display:flex;align-items:center;gap:.9em;margin:0 0 14px;font:400 .86rem/1.2 var(--mono);letter-spacing:.3em;color:var(--n-green);text-shadow:0 0 12px #39ff8855}
  .pill-choose-title::before{content:'//';color:var(--n-mag);letter-spacing:0;text-shadow:0 0 10px #ff4fd88a}
  .pill-choose-title::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,rgba(57,255,136,.6),transparent)}
  .pill-choose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}
  .pill-card{--g:255,61,90;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;min-height:160px;padding:18px 8px 16px;text-align:center;text-decoration:none;font-family:var(--mono);color:#e6ffee;border:1px solid rgba(var(--g),.55);border-radius:4px;background:radial-gradient(ellipse 80% 55% at 50% 46%,rgba(var(--g),.26),transparent 72%),linear-gradient(160deg,#0f1a2b,#050a12);box-shadow:0 0 22px rgba(var(--g),.18),inset 0 0 24px rgba(var(--g),.07);-webkit-tap-highlight-color:rgba(var(--g),.28);touch-action:manipulation;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
  .pill-card-blue{--g:63,169,255}
  .pill-card::before,.pill-card::after{content:'';position:absolute;width:14px;height:14px;pointer-events:none;border:2px solid rgb(var(--g));filter:drop-shadow(0 0 4px rgba(var(--g),.9))}
  .pill-card::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
  .pill-card::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
  .pill-card:active{transform:scale(.97);border-color:rgb(var(--g));box-shadow:0 0 34px rgba(var(--g),.5),inset 0 0 28px rgba(var(--g),.18)}
  .pill-card:focus-visible{outline:2px solid rgb(var(--g));outline-offset:3px}
  .pc-tag{font-size:12px;line-height:1;letter-spacing:.12em;color:#46ff9a;text-shadow:0 0 8px #1eff7a77}
  .pc-capsule{position:relative;display:flex;width:112px;height:46px;margin:6px 0 4px;border-radius:23px;overflow:hidden;border:2px solid rgb(var(--g));background:#05060a;box-shadow:0 0 18px rgba(var(--g),.75),0 0 40px rgba(var(--g),.35)}
  .pc-capsule i{display:block;flex:1}
  .pc-dark{display:flex!important;align-items:center;justify-content:center;font:400 13px/1 var(--mono);letter-spacing:.06em;color:#39ff88;text-shadow:0 0 6px #39ff88;background:linear-gradient(180deg,#1c2a22,#030806)}
  .pc-lit{background:linear-gradient(180deg,rgb(var(--g)),rgba(var(--g),.38) 58%,#05060a);border-left:2px solid #000}
  .pc-capsule::after{content:'';position:absolute;left:10px;right:10px;top:4px;height:8px;border-radius:4px;background:#fff;opacity:.3}
  .pc-label{font-size:17px;line-height:1.1;letter-spacing:.16em;color:#fff;text-shadow:0 0 10px rgba(var(--g),.85);-webkit-font-smoothing:antialiased}
  .pc-sub{font-size:13px;line-height:1.3;letter-spacing:.02em;color:#c5d3e3;white-space:nowrap}
  .pc-sub::after{content:' \2192';color:rgb(var(--g))}
}
@media(max-width:1280px) and (hover:hover){
  .pill-card:hover{border-color:rgb(var(--g));box-shadow:0 0 36px rgba(var(--g),.45),inset 0 0 28px rgba(var(--g),.16);transform:translateY(-3px)}
}
@media(max-width:400px){.pc-sub{font-size:12px;letter-spacing:0}}
@media(max-width:340px){.pc-label{font-size:15px;letter-spacing:.1em}.pc-tag{letter-spacing:.06em}.pc-capsule{width:96px}}
@media(max-width:1280px) and (prefers-reduced-motion:reduce){.pill-card,.pill-card:hover,.pill-card:active{transition:none;transform:none}}

/* Dashboards: top bar layout up to 900px (also landscape phones and portrait tablets) */
@media(max-width:900px){
  body.zen{display:block;background-attachment:scroll}
  #bg-rain{display:none}
  body.zen::after{background:radial-gradient(ellipse at center,transparent 66%,rgba(0,0,0,.34) 100%)}
  .zen .sidebar{position:relative;width:100%;height:auto;min-height:0;overflow:visible;padding:max(10px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 10px max(14px,env(safe-area-inset-left));gap:0;border-right:0;border-bottom:1px solid rgba(var(--a),.4);box-shadow:0 8px 30px rgba(var(--a),.07);display:grid;grid-template-columns:1fr auto;align-items:center}
  .zen .sidebar .profile-card,.zen .system-status{display:none}
  .zen .hub-link{display:inline-flex;align-items:center;min-height:44px;padding:0 6px 0 0;font-size:14px;letter-spacing:.14em;-webkit-tap-highlight-color:rgba(var(--a),.25)}
  .zen .sidebar .logo{justify-self:end;font-size:14px;letter-spacing:.24em}
  .zen nav{grid-column:1/-1;flex-direction:row;flex-wrap:nowrap;gap:6px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scroll-padding-inline:max(14px,env(safe-area-inset-left));scrollbar-width:none;margin:0 calc(-1*max(14px,env(safe-area-inset-right))) 0 calc(-1*max(14px,env(safe-area-inset-left)));padding:2px max(14px,env(safe-area-inset-right)) 2px max(14px,env(safe-area-inset-left));-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
  .zen nav::-webkit-scrollbar{display:none}
  .zen nav a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 14px;font-size:14px;white-space:nowrap;scroll-snap-align:start;border:1px solid rgba(var(--a),.28);border-radius:3px;-webkit-tap-highlight-color:rgba(var(--a),.25);touch-action:manipulation}
  .zen nav a:hover,.zen nav a.active{padding-left:14px;box-shadow:none;border-color:rgba(var(--a),.8)}
  .zen nav a.active::before,.zen nav a:hover::before{display:none}
  .zen .main{margin:0;width:100%;max-width:none;padding:28px max(16px,env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
  .zen .section{scroll-margin-top:12px}
  .zen .hero{margin-bottom:28px}
  .zen .hero::before{font-size:12px;letter-spacing:.18em;margin-bottom:16px;line-height:1.5;overflow-wrap:anywhere}
  .zen .hero h1{font-size:clamp(1.7rem,8vw,2.6rem);line-height:1.15;margin-bottom:16px;overflow-wrap:break-word}
  .zen .tagline{font-size:15px;line-height:1.6;letter-spacing:.02em}
  .zen .bio{font-size:16px;line-height:1.7;margin-bottom:20px}
  .zen .btn{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;margin:0 0 10px;font-size:14px;letter-spacing:.12em;text-align:center;-webkit-tap-highlight-color:rgba(var(--a),.25);touch-action:manipulation}
  .zen .section .btn{margin-top:0}
  .zen .stats{margin-bottom:32px}
  .zen .stat-card{padding:16px}
  .zen .stat-label{font-size:12px;letter-spacing:.14em;line-height:1.4}
  .zen .stat-value{font-size:clamp(1.4rem,6vw,1.9rem)}
  .zen .stat-value.green{font-size:1rem;letter-spacing:.12em}
  .zen .section-title{font-size:13px;letter-spacing:.2em;margin-bottom:18px;line-height:1.4}
  .zen .project-card,.zen .hub-card{padding:22px}
  .zen .project-card h3{font-size:1.1rem;line-height:1.3;overflow-wrap:anywhere}
  .zen .project-card p{font-size:15px;line-height:1.65;margin-bottom:16px}
  .zen .project-tag,.zen .project-tag.critical,.zen .project-tag.high,.zen .project-tag.medium,.zen .project-tag.low{font-size:12px;padding:4px 10px}
  .zen .project-link{display:inline-flex;align-items:center;min-height:44px;font-size:14px;-webkit-tap-highlight-color:rgba(var(--a),.25)}
  .zen .terminal-details summary{display:flex;align-items:center;min-height:48px;padding:0 18px;font-size:14px}
  .zen .terminal-body{font-size:14px;line-height:1.7;padding:16px 18px;overflow-x:auto;overflow-wrap:anywhere;word-break:break-word;min-height:0}
  .zen .terminal-title{font-size:12px}
  .zen .terminal-header{padding:12px 16px}
  .zen .cert-card{padding:20px}
  .zen .cert-issuer{font-size:12px}
  .zen .cert-name{font-size:1.05rem;overflow-wrap:anywhere}
  .zen .cert-status{font-size:13px}
  .zen .about-card,.zen .thm-profile{padding:22px}
  .zen .about-bio{font-size:16px;line-height:1.75}
  .zen .about-clearance{font-size:15px;line-height:1.5}
  .zen .about-tag{font-size:13px;padding:6px 10px}
  .zen .thm-stat-label,.zen .thm-room-title,.zen .thm-sub{font-size:12px;line-height:1.4}
  .zen .thm-username{font-size:1.1rem;overflow-wrap:anywhere}
  .zen .thm-room{font-size:14px;line-height:1.5;overflow-wrap:anywhere;padding:10px 12px}
  .zen .skill-row{font-size:15px;line-height:1.6;padding:14px 18px;overflow-wrap:anywhere}
  .zen .ethics-banner{font-size:14px;line-height:1.7;padding:18px}
  .zen #contact p{font-size:16px;line-height:1.6;margin-bottom:14px}
}
@media(min-width:601px) and (max-width:900px){
  .zen .btn{display:inline-flex;margin-right:10px}
  .zen .hero{max-width:640px}
  .zen .main{max-width:860px;margin:0 auto}
}
@media(max-width:900px) and (max-height:520px){
  .zen nav a,.zen .hub-link{min-height:44px}
}
@media(max-width:380px){
  .zen .stat-value.green{letter-spacing:.06em}
  .zen .stat-value.green::before{margin-right:6px}
  .zen .stat-card{padding:14px 12px}
  .zen .stat-label{letter-spacing:.08em}
}

/* Hub page on phones and tablets */
@media(max-width:1280px){
  .zen.hub-body{display:block;min-height:100vh;min-height:100dvh;padding:max(20px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
  .zen .hub-main{margin:0 auto;max-width:720px}
  .night-banner{margin-bottom:24px}
  .zen .hub-header{margin-bottom:24px}
  .zen .hub-header .logo{font-size:14px;letter-spacing:.3em}
  .zen .hub-title{font-size:clamp(1.5rem,6.4vw,3rem);overflow-wrap:anywhere}
  .zen .hub-tagline{font-size:clamp(.9rem,3.6vw,1.05rem);line-height:1.7}
  .zen .hub-terminal{margin-bottom:28px}
  .zen .hub-terminal::after{display:none}
  .zen .hub-terminal .terminal-body{font-size:14px;line-height:1.75;padding:16px 18px;min-height:0;overflow-wrap:anywhere}
  .zen .hub-prompt{flex-wrap:wrap;gap:6px 8px}
  .zen .hub-prompt label{font-size:14px;flex:none}
  .zen .hub-prompt input{flex:1 1 100%;font-size:16px;min-height:44px;padding:8px 2px;touch-action:manipulation}
  .zen .hub-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px;margin-bottom:24px}
  .zen .hub-card{padding:22px;-webkit-tap-highlight-color:rgba(var(--c),.25);touch-action:manipulation}
  .zen .hub-card h2{font-size:1.2rem;line-height:1.3;overflow-wrap:anywhere}
  .zen .hub-card p{font-size:15px;line-height:1.65}
  .zen .hub-card-stats{font-size:13px;flex-wrap:wrap;gap:6px 16px}
  .zen .hub-card .project-tag[class]{font-size:12px;padding:4px 10px}
  .zen .hub-card-cta{display:inline-flex;align-items:center;min-height:44px;font-size:14px}
  .zen .iam-section{margin-bottom:28px}
  .zen .section-title{font-size:13px;letter-spacing:.2em;line-height:1.4;flex-wrap:wrap}
  .zen .reg-lock{flex-wrap:wrap;gap:8px 12px;align-items:center}
  .zen .reg-lock label{font-size:14px;letter-spacing:.18em;flex:none}
  .zen .reg-lock input{flex:1 1 180px;max-width:none;min-height:44px;font-size:16px;touch-action:manipulation}
  .zen .reg-msg{font-size:14px;flex-basis:100%}
  .zen .hub-footer{flex-wrap:wrap;gap:4px 24px;padding-top:12px;padding-bottom:env(safe-area-inset-bottom)}
  .zen .hub-footer a{display:inline-flex;align-items:center;gap:.5ch;min-height:44px;padding:0 4px;font-size:14px;letter-spacing:.16em;-webkit-tap-highlight-color:rgba(57,255,136,.25);touch-action:manipulation}
}
/* Light effects on touch devices and small screens: no code rain canvas, no scanline overlay, scrolling background */
@media(max-width:900px),(pointer:coarse) and (max-width:1280px){
  body.zen{background-attachment:scroll}
  body.zen::after{background:radial-gradient(ellipse at center,transparent 66%,rgba(0,0,0,.34) 100%)}
  #bg-rain{display:none}
  .zen .hub-terminal::after{display:none}
}
@media(max-width:380px){
  .zen .hub-title{letter-spacing:.07em}
  .zen .hub-header .logo{letter-spacing:.2em}
}
/* Landscape phones: keep the banner from filling the screen */
@media(max-height:520px) and (orientation:landscape){
  .night-banner img{max-height:62vh;aspect-ratio:auto}
  .pill-card{min-height:136px;padding-top:12px;padding-bottom:12px}
}
