:root{color-scheme:dark;--bg: #020605;--surface: rgba(8, 18, 17, .72);--surface-strong: rgba(12, 28, 25, .92);--line: rgba(122, 255, 222, .2);--text: #eefcf7;--muted: #a7bdb6;--cyan: #20f7ff;--green: #4dffb4;--amber: #ffc857;--rose: #ff4f8b;--cursor-x: 50vw;--cursor-y: 50vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);scroll-behavior:smooth}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at var(--cursor-x) var(--cursor-y),rgba(77,255,180,.3),transparent 17rem),radial-gradient(circle at var(--cursor-x) var(--cursor-y),rgba(32,247,255,.2),transparent 30rem),linear-gradient(180deg,#020605,#06110f 48%,#020605);color:var(--text)}body{overflow-x:hidden}body:before{content:"";position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at var(--cursor-x) var(--cursor-y),rgba(77,255,180,.18),transparent 20rem),radial-gradient(circle at var(--cursor-x) var(--cursor-y),rgba(255,200,87,.08),transparent 13rem),linear-gradient(rgba(77,255,180,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(32,247,255,.04) 1px,transparent 1px);background-repeat:no-repeat,no-repeat,repeat,repeat;background-size:auto,auto,42px 42px,42px 42px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 86%);mask-image:linear-gradient(to bottom,black,transparent 86%)}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:80;background:linear-gradient(rgba(255,255,255,.03) 50%,transparent 50%);background-size:100% 4px;mix-blend-mode:soft-light;opacity:.18}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.cursor-dot,.cursor-ring,.cursor-trail{position:fixed;left:0;top:0;z-index:100;pointer-events:none;border-radius:999px;transform:translate(-50%,-50%)}.cursor-dot{width:10px;height:10px;background:var(--green);box-shadow:0 0 22px var(--green),0 0 68px #4dffb4d1}.cursor-ring{width:66px;height:66px;border:1px solid rgba(32,247,255,.82);background:radial-gradient(circle,rgba(77,255,180,.16),transparent 62%);box-shadow:inset 0 0 28px #20f7ff42,0 0 34px #20f7ff66,0 0 96px #4dffb457}.cursor-trail{width:26px;height:26px;border:1px solid rgba(255,200,87,.55);box-shadow:0 0 46px #ffc85747;opacity:0}.cursor-active .cursor-ring{border-color:var(--amber)}.site-header{position:fixed;left:0;right:0;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,4vw,4rem);transition:background .25s ease,border-color .25s ease,backdrop-filter .25s ease}.site-header.is-scrolled{background:#020605c2;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-mark{display:grid;width:44px;height:44px;place-items:center;border:1px solid rgba(77,255,180,.55);background:#4dffb414;color:var(--green);font-weight:900;letter-spacing:0;transform:skew(-6deg)}.brand-mark span{transform:skew(6deg)}.site-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.35rem}.site-nav a{border:1px solid transparent;color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:0;padding:.62rem .82rem;text-transform:uppercase}.site-nav a:hover{border-color:#20f7ff61;color:var(--text);background:#20f7ff12}.hero{position:relative;min-height:100svh;display:grid;align-items:center;padding:7rem clamp(1rem,5vw,5rem) 3.8rem;overflow:hidden;isolation:isolate}#hero-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.scan-layer{position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 72% 46%,rgba(77,255,180,.16),transparent 26rem),linear-gradient(90deg,#020605bd,#02060514 55%,#02060580);pointer-events:none}.hero-content{max-width:min(740px,100%);position:relative;z-index:3;text-shadow:0 0 28px rgba(0,0,0,.85)}.eyebrow,.section-kicker,.signal-label{color:var(--green);font-size:clamp(1.55rem,3.2vw,3rem);font-weight:800;letter-spacing:0;text-shadow:0 0 12px rgba(77,255,180,.55),0 0 32px rgba(77,255,180,.26),0 0 56px rgba(32,247,255,.18);text-transform:uppercase}.eyebrow,.signal-label{font-size:.76rem;text-shadow:none}.hero h1{margin:.5rem 0 0;font-size:clamp(4.2rem,14vw,12rem);line-height:.82;letter-spacing:0;text-transform:uppercase}.typing-line{min-height:2.2rem;margin:1.25rem 0 0;color:#dffdf7;font-family:SFMono-Regular,Consolas,monospace;font-size:clamp(1rem,2.2vw,1.55rem)}.typing-caret{display:inline-block;width:.72rem;height:1.1em;margin-left:.3rem;background:var(--amber);vertical-align:-.2em;animation:caret .85s steps(1) infinite}@keyframes caret{50%{opacity:0}}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}.primary-action,.secondary-action,.contact-actions a{display:inline-flex;min-height:48px;align-items:center;justify-content:center;border:1px solid rgba(77,255,180,.45);padding:.82rem 1.05rem;font-weight:800;color:var(--text);background:#4dffb41a;box-shadow:0 0 30px #4dffb41a;transition:transform .18s ease,border-color .18s ease,background .18s ease}.secondary-action{border-color:#20f7ff57;background:#20f7ff0f}.primary-action:hover,.secondary-action:hover,.contact-actions a:hover{transform:translateY(-3px);border-color:var(--amber);background:#ffc8571a}.hero-panel{position:absolute;right:clamp(1rem,5vw,4.5rem);bottom:clamp(5rem,10vh,7rem);z-index:4;display:grid;gap:.8rem;max-width:320px}.signal-card{border:1px solid var(--line);background:#0206059e;padding:1rem;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.signal-card strong,.signal-card span{display:block}.signal-card strong{margin:.28rem 0;color:var(--text)}.signal-card span:last-child{color:var(--muted);font-size:.92rem}.scroll-cue{position:absolute;left:50%;bottom:1.2rem;z-index:5;display:grid;width:32px;height:52px;place-items:start center;border:1px solid rgba(238,252,247,.38);border-radius:999px;padding-top:.45rem;transform:translate(-50%)}.scroll-cue span{width:5px;height:10px;border-radius:999px;background:var(--green);animation:scrollCue 1.25s ease-in-out infinite}@keyframes scrollCue{50%{transform:translateY(18px);opacity:.35}}.section{width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:clamp(4.5rem,9vw,7.5rem) 0;scroll-margin-top:6rem}.split-layout,.section-heading,.contact-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);gap:clamp(1.8rem,5vw,5rem);align-items:center}.section h2{max-width:820px;margin:.65rem 0 1rem;font-size:clamp(2rem,4.8vw,4.4rem);line-height:.95;letter-spacing:0}.section p{color:var(--muted);font-size:clamp(1rem,1.5vw,1.08rem);line-height:1.8}.terminal-card,.skills-console,.certificate-shell,.experience-card,.contact-grid{border:1px solid var(--line);background:linear-gradient(140deg,#091614db,#020605bd);box-shadow:0 20px 80px #0000004d,inset 0 0 40px #4dffb40a;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.terminal-card{overflow:hidden}.terminal-top{display:flex;gap:.45rem;border-bottom:1px solid rgba(122,255,222,.13);padding:.75rem}.terminal-top span{width:10px;height:10px;border-radius:50%}.terminal-top span:nth-child(1){background:var(--rose)}.terminal-top span:nth-child(2){background:var(--amber)}.terminal-top span:nth-child(3){background:var(--green)}.terminal-card pre{margin:0;overflow:auto;padding:clamp(1rem,3vw,1.5rem)}.terminal-card code{color:#d9fff3;font-family:SFMono-Regular,Consolas,monospace;font-size:clamp(.82rem,1.45vw,1rem);line-height:1.8}.stats-band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--line);background:#0812118a;scroll-margin-top:6rem}.stat{min-height:148px;padding:clamp(1.2rem,3vw,2rem);border-right:1px solid rgba(122,255,222,.14)}.stat:last-child{border-right:0}.stat strong,.stat span{display:block}.stat strong{color:var(--amber);font-size:clamp(2rem,5vw,4.5rem);line-height:1}.stat span{margin-top:.7rem;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.project-card{position:relative;min-height:360px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid rgba(122,255,222,.18);background:linear-gradient(180deg,#0f221fd1,#040908eb),radial-gradient(circle at 30% 12%,rgba(32,247,255,.16),transparent 12rem);padding:1.15rem;overflow:hidden;transform-style:preserve-3d;transition:transform .24s ease,border-color .24s ease}.project-card:before{content:"";position:absolute;inset:-1px;background:linear-gradient(125deg,transparent,rgba(77,255,180,.14),transparent 62%);opacity:0;transition:opacity .24s ease}.project-card:hover{border-color:#ffc85799;transform:perspective(900px) rotateX(5deg) rotateY(-5deg) translateY(-8px)}.project-card:hover:before{opacity:1}.project-index{color:var(--green);font-family:SFMono-Regular,Consolas,monospace;font-size:.86rem}.project-card h3{position:relative;margin:4rem 0 .9rem;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.08}.project-card p{position:relative;font-size:.95rem}.tags{position:relative;display:flex;flex-wrap:wrap;gap:.45rem}.tags span{border:1px solid rgba(32,247,255,.22);color:#c6fff0;font-size:.76rem;padding:.36rem .48rem;background:#20f7ff12}.skills-console{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.skill-column{min-height:290px;border-right:1px solid rgba(122,255,222,.14);padding:clamp(1rem,2vw,1.4rem)}.skill-column:last-child{border-right:0}.skill-column h3{min-height:3rem;margin:0 0 1rem;color:var(--green);font-size:clamp(1.12rem,1.7vw,1.42rem)}.skill-column ul{display:grid;gap:.8rem;margin:0;padding:0;color:var(--muted);list-style:none}.skill-column li{position:relative;padding-left:1.1rem}.skill-column li:before{content:"";position:absolute;left:0;top:.65em;width:.38rem;height:.38rem;background:var(--amber);box-shadow:0 0 14px #ffc85780}.certificate-shell{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) 56px;gap:clamp(.4rem,2vw,1rem);align-items:center;min-height:610px;overflow:hidden;padding:clamp(.8rem,2vw,1.4rem);perspective:1500px}.certificate-stage{position:relative;height:548px;transform-style:preserve-3d}.certificate-stage.is-transitioning .certificate-card[data-distance="0"]{animation:certFocusIn .9s cubic-bezier(.16,1,.3,1) both}.certificate-stage.is-transitioning .certificate-card[data-distance="1"],.certificate-stage.is-transitioning .certificate-card[data-distance="2"]{animation:certSideSettle .9s cubic-bezier(.16,1,.3,1) both}@keyframes certFocusIn{0%{filter:brightness(.72) saturate(.85) blur(5px);opacity:0;transform:translate(-50%,-50%) translate(calc(var(--offset) * 250px)) translateZ(-24px) rotateY(0) rotateX(10deg) scale(.82)}58%{filter:brightness(1.12) saturate(1.16) blur(0);opacity:1;transform:translate(-50%,-50%) translate(calc(var(--offset) * 250px)) translateZ(88px) rotateY(0) rotateX(-2deg) scale(1.035)}to{filter:brightness(1) saturate(1);transform:translate(-50%,-50%) translate(calc(var(--offset) * 250px)) translateZ(calc((3 - max(var(--offset),-1 * var(--offset)))*18px)) rotateY(0) scale(calc(1 - (min(var(--offset) * var(--offset),9)*.07)))}}@keyframes certSideSettle{0%{opacity:0;filter:saturate(.6) brightness(.48) blur(3px);transform:translate(-50%,-50%) translate(calc(var(--offset) * 210px)) translateZ(-34px) rotateY(0) scale(.78)}to{opacity:calc(1 - (min(var(--offset) * var(--offset),9)*.17));transform:translate(-50%,-50%) translate(calc(var(--offset) * 250px)) translateZ(calc((3 - max(var(--offset),-1 * var(--offset)))*18px)) rotateY(0) scale(calc(1 - (min(var(--offset) * var(--offset),9)*.07)))}}.certificate-card{position:absolute;left:50%;top:50%;width:min(var(--cert-width),70vw);border:1px solid rgba(122,255,222,.22);padding:.5rem;background:#020605d1;box-shadow:0 28px 90px #00000080;cursor:pointer;opacity:calc(1 - (min(var(--offset) * var(--offset),9)*.17));transform:translate(-50%,-50%) translate(calc(var(--offset) * 250px)) translateZ(calc((3 - max(var(--offset),-1 * var(--offset)))*18px)) rotateY(0) scale(calc(1 - (min(var(--offset) * var(--offset),9)*.07)));transition:transform .86s cubic-bezier(.16,1,.3,1),opacity .86s ease,border-color .25s ease,filter .45s ease}.certificate-card[data-distance="0"]{z-index:6;border-color:#ffc857b8;background:#020605f5;box-shadow:0 28px 100px #000000b8,0 0 42px #ffc8571f}.certificate-card[data-distance="1"]{z-index:4;filter:saturate(.8) brightness(.74)}.certificate-card[data-distance="2"]{z-index:2;filter:saturate(.6) brightness(.54)}.certificate-card[data-distance="3"],.certificate-card[data-distance="4"],.certificate-card[data-distance="5"],.certificate-card[data-distance="6"],.certificate-card[data-distance="7"]{pointer-events:none;opacity:0}.certificate-card img{display:block;width:100%;aspect-ratio:var(--ratio);height:auto;object-fit:contain;background:radial-gradient(circle at 50% 50%,rgba(238,252,247,.1),transparent 42%),linear-gradient(135deg,#071310,#020605);box-shadow:0 0 0 1px #eefcf71a}.icon-button,.dialog-close{position:relative;z-index:12;display:grid;width:48px;height:48px;place-items:center;border:1px solid rgba(32,247,255,.35);border-radius:50%;color:var(--text);background:#20f7ff14;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.icon-button:hover,.dialog-close:hover{border-color:var(--amber);background:#ffc8571a;transform:translateY(-2px)}.icon-button svg,.dialog-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.certificate-meta{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:.75rem;margin-top:1rem;text-align:center}.certificate-meta strong{color:var(--amber);font-size:1.05rem}.certificate-meta span{color:var(--muted)}.experience-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 1.9fr;gap:clamp(1.5rem,5vw,4rem);align-items:center;min-height:380px;overflow:hidden;padding:clamp(1.4rem,4vw,2.2rem);transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease}.experience-card:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(77,255,180,.18),transparent 38%),radial-gradient(circle at 82% 20%,rgba(255,200,87,.16),transparent 16rem);opacity:.62;pointer-events:none}.experience-card:hover{border-color:#ffc8579e;box-shadow:0 26px 90px #0000006b,0 0 48px #4dffb41a;transform:perspective(1000px) rotateX(2deg) rotateY(-2deg) translateY(-6px)}.experience-card>*{position:relative;z-index:1}.police-badge-3d{position:relative;width:min(300px,100%);aspect-ratio:1;place-self:center;transform-style:preserve-3d;animation:logoFloat 4.8s ease-in-out infinite;filter:drop-shadow(0 26px 42px rgba(0,0,0,.55)) drop-shadow(0 0 32px rgba(32,247,255,.12));transform:perspective(900px) rotateY(-16deg) rotateX(8deg) translateY(0);transition:transform .35s ease,filter .35s ease}.experience-card:hover .police-badge-3d{filter:drop-shadow(0 28px 48px rgba(0,0,0,.58)) drop-shadow(0 0 34px rgba(77,255,180,.2));transform:perspective(900px) rotateY(-4deg) rotateX(3deg) translateY(-6px)}@keyframes logoFloat{0%,to{transform:perspective(900px) rotateY(-16deg) rotateX(8deg) translateY(0)}50%{transform:perspective(900px) rotateY(-10deg) rotateX(4deg) translateY(-16px)}}.badge-glow{position:absolute;inset:0;border-radius:50%}.badge-face{position:absolute;inset:5%;display:grid;place-items:center;background:transparent;transform:translateZ(34px)}.badge-face img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(4px 5px 0 rgba(95,62,8,.52)) drop-shadow(8px 10px 0 rgba(2,6,5,.58)) drop-shadow(18px 26px 22px rgba(0,0,0,.56)) drop-shadow(0 0 22px rgba(77,255,180,.12))}.badge-glow{inset:9%;background:radial-gradient(circle,rgba(255,200,87,.16),transparent 42%),radial-gradient(circle,rgba(77,255,180,.16),transparent 68%);filter:blur(28px);transform:translateZ(-38px) scale(1.18)}.experience-date{display:inline-flex;margin-bottom:.8rem;border:1px solid rgba(255,200,87,.42);color:var(--amber);background:#ffc85714;font-family:SFMono-Regular,Consolas,monospace;font-size:.84rem;font-weight:800;padding:.42rem .6rem;text-transform:uppercase}.experience-card h2{margin-bottom:.45rem;font-size:clamp(2.3rem,5.2vw,5rem)}.experience-place{margin:0 0 1rem;color:var(--green);font-size:clamp(1.25rem,2.7vw,1.95rem);font-weight:900;line-height:1.2;text-transform:uppercase}.compact-heading{margin-bottom:1.5rem}.compact-heading h2{font-size:clamp(2rem,4.6vw,4.2rem)}.timeline{display:grid;gap:1rem}.timeline-item{position:relative;display:grid;grid-template-columns:170px minmax(0,1fr);gap:clamp(1rem,3vw,1.6rem);border:1px solid rgba(122,255,222,.16);border-left:3px solid var(--green);background:linear-gradient(90deg,#4dffb41f,#4dffb406),#02060594;padding:clamp(1.1rem,2.8vw,1.6rem);overflow:hidden;transition:transform .24s ease,border-color .24s ease,background .24s ease,box-shadow .24s ease}.timeline-item:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 20%,rgba(32,247,255,.12),transparent 58%);opacity:0;transform:translate(-28%);transition:opacity .24s ease,transform .45s ease;pointer-events:none}.timeline-item:hover{border-color:#ffc8577a;background:linear-gradient(90deg,#4dffb429,#ffc8570a),#020605c2;box-shadow:0 18px 52px #00000047;transform:translate(8px) translateY(-3px)}.timeline-item:hover:after{opacity:1;transform:translate(26%)}.timeline-item span{color:var(--amber);font-family:SFMono-Regular,Consolas,monospace;font-size:clamp(.92rem,1.5vw,1.08rem);font-weight:900;text-transform:uppercase}.timeline-item h3{margin:0 0 .35rem;font-size:clamp(1.18rem,2.2vw,1.7rem);line-height:1.15}.timeline-item p{grid-column:2;margin:0;font-size:clamp(.98rem,1.4vw,1.08rem);line-height:1.65}.contact-grid{padding:clamp(1.2rem,4vw,2rem)}.contact-actions{display:grid;gap:.8rem}.contact-actions a{justify-content:flex-start;overflow-wrap:anywhere}.cert-dialog{width:min(1040px,calc(100vw - 2rem));max-height:calc(100svh - 2rem);border:1px solid rgba(122,255,222,.36);background:#020605f0;padding:1rem;box-shadow:0 30px 100px #000000bd}.cert-dialog::backdrop{background:#000000c7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cert-dialog img{display:block;width:100%;max-height:calc(100svh - 5rem);object-fit:contain}.dialog-close{position:absolute;right:1rem;top:1rem;z-index:2}@media(max-width:1060px){.project-grid,.skills-console{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-column:nth-child(2){border-right:0}.skill-column:nth-child(-n+2){border-bottom:1px solid rgba(122,255,222,.14)}}@media(max-width:820px){.cursor-dot,.cursor-ring,.cursor-trail{display:none}.site-header{align-items:flex-start;padding:.8rem 1rem}.site-nav{max-width:78%;flex-wrap:nowrap;justify-content:flex-start;gap:.2rem;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:none}.site-nav::-webkit-scrollbar{display:none}.site-nav a{flex:0 0 auto;padding:.46rem .52rem;font-size:.68rem}.section,.stats-band{scroll-margin-top:8.5rem}.hero{min-height:100svh;align-items:end;padding-top:6rem}.scan-layer{background:radial-gradient(circle at 52% 35%,rgba(77,255,180,.16),transparent 19rem),linear-gradient(180deg,#0206054d,#020605d6 58%,#020605f5)}.hero h1{font-size:clamp(3.4rem,18vw,6rem)}.hero-panel{position:relative;right:auto;bottom:auto;max-width:none;margin-top:1.5rem}.split-layout,.section-heading,.experience-card,.contact-grid{grid-template-columns:1fr}.stats-band{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{border-bottom:1px solid rgba(122,255,222,.14)}.stat:nth-child(2n){border-right:0}.certificate-shell{grid-template-columns:44px minmax(0,1fr) 44px;min-height:430px}.certificate-stage{height:360px}.certificate-card{width:min(var(--cert-width),72vw);transform:translate(-50%,-50%) translate(calc(var(--offset) * 116px)) rotateY(0) scale(calc(1 - (min(var(--offset) * var(--offset),9)*.08)))}.experience-card{min-height:auto}.police-badge-3d{width:min(220px,68vw)}.icon-button{width:42px;height:42px}.timeline-item{grid-template-columns:1fr}.timeline-item p{grid-column:1}}@media(max-width:620px){.brand-mark{width:38px;height:38px}.hero-actions a{width:100%}.project-grid,.skills-console,.stats-band{grid-template-columns:1fr}.stat,.skill-column{border-right:0}.project-card{min-height:300px}.certificate-shell{margin-inline:-.25rem;padding-inline:.35rem}}
