:root{--bg:#080a0f;--panel:#10131a;--panel2:#151923;--text:#eef1f7;--muted:#9299a8;--line:#252a35;--cyan:#63e6ff;--lime:#c6f73f;--purple:#a880ff;--orange:#ff8c66;--sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"Cascadia Code","SFMono-Regular",Consolas,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(to bottom,black,transparent 75%)}a{color:inherit;text-decoration:none}.shell{width:min(1180px,calc(100% - 48px));margin-inline:auto}.skip-link{position:fixed;left:12px;top:-60px;z-index:50;background:var(--lime);color:#080a0f;padding:10px 15px}.skip-link:focus{top:12px}
.nav{height:84px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:5}.brand{font-size:1rem;font-weight:800;letter-spacing:-.04em}.brand span{color:var(--cyan);padding-left:4px}.nav nav{display:flex;align-items:center;gap:30px;font:500 .68rem var(--mono);letter-spacing:.07em;text-transform:uppercase}.nav nav>a:not(.nav-cta){color:var(--muted)}.nav nav>a:hover{color:var(--cyan)}.nav-cta{padding:11px 15px;border:1px solid var(--line);background:rgba(255,255,255,.03)}
.hero{min-height:calc(100svh - 84px);display:grid;grid-template-columns:1.2fr .8fr;gap:8vw;align-items:center;padding-block:70px 100px}.kicker{font:500 .66rem var(--mono);letter-spacing:.12em;color:var(--muted);text-transform:uppercase}.kicker>i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 14px var(--lime);margin-right:9px}.hero h1,.section h2,.contact h2{font-size:clamp(3.8rem,7.7vw,7.3rem);line-height:.88;letter-spacing:-.075em;margin:30px 0 38px}.hero h1 span,.section h2 span,.contact h2 span{color:transparent;-webkit-text-stroke:1px var(--cyan);text-shadow:0 0 38px rgba(99,230,255,.12)}.lede{max-width:660px;color:#b5bbc7;font-size:clamp(1rem,1.5vw,1.22rem);line-height:1.7}.actions{display:flex;gap:12px;margin-top:32px}.button{padding:14px 18px;border:1px solid var(--line);font:600 .72rem var(--mono);text-transform:uppercase}.button span{margin-left:16px}.button.primary{color:#071016;background:var(--cyan);border-color:var(--cyan)}.button.primary:hover{background:var(--lime);border-color:var(--lime)}.button.secondary:hover{border-color:var(--cyan);color:var(--cyan)}
.system-card{background:rgba(16,19,26,.88);border:1px solid #303642;box-shadow:0 35px 100px rgba(0,0,0,.45),0 0 70px rgba(168,128,255,.08);transform:rotate(1.5deg);min-height:520px}.window-bar{height:42px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 14px;gap:7px}.window-bar>span{width:7px;height:7px;border-radius:50%;background:#3c4250}.window-bar>span:first-child{background:var(--orange)}.window-bar code{margin-left:auto;color:#687080;font-size:.62rem}.system-body{padding:34px;position:relative;min-height:475px}.scope span,.readout-label{display:block;font:500 .62rem var(--mono);color:var(--cyan);letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}.scope strong{display:block;font-size:clamp(1.8rem,3vw,3rem);line-height:1;letter-spacing:-.055em}.scope small{display:block;color:var(--muted);margin-top:12px}.readout{margin-top:48px;border-top:1px solid var(--line);padding-top:25px}.readout p{display:flex;gap:18px;margin:10px 0;font:500 .72rem var(--mono);color:#abb2c0}.readout b{color:var(--purple)}.wave{height:60px;display:flex;align-items:center;gap:5px;margin-top:22px}.wave i{width:3px;height:20%;background:var(--cyan);box-shadow:0 0 8px rgba(99,230,255,.5);animation:wave 1.5s ease-in-out infinite}.wave i:nth-child(2n){height:65%;animation-delay:-.6s}.wave i:nth-child(3n){height:100%;animation-delay:-1s}.wave i:nth-child(5n){height:40%}@keyframes wave{50%{transform:scaleY(.25);opacity:.35}}.online{position:absolute;bottom:0;font:500 .58rem var(--mono);letter-spacing:.1em;color:#77808d}.online i{display:inline-block;width:5px;height:5px;background:var(--lime);border-radius:50%;margin-right:7px;box-shadow:0 0 8px var(--lime)}
.marquee{overflow:hidden;border-block:1px solid var(--line);padding:17px 0;background:#0c0f15}.marquee div{white-space:nowrap;width:max-content;font:500 .66rem var(--mono);letter-spacing:.12em;color:#737b89;animation:scroll 32s linear infinite}.marquee span{color:var(--purple);margin:0 28px}@keyframes scroll{to{transform:translateX(-50%)}}
.section{padding:145px 0}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:60px;margin-bottom:75px}.section-head h2{font-size:clamp(3.2rem,6vw,6rem);margin:25px 0 0}.section-head>p{max-width:390px;color:var(--muted);line-height:1.7}.projects{display:grid;grid-template-columns:1fr 1fr;gap:22px}.project{background:var(--panel);border:1px solid var(--line);min-width:0}.project.featured{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.project-top{display:flex;justify-content:space-between;padding:17px 20px;border-bottom:1px solid var(--line);grid-column:1/-1}.project-id,.status{font:500 .58rem var(--mono);letter-spacing:.09em;color:#6f7785}.status{color:var(--orange)}.project-visual{min-height:270px;background:#0c0f15;position:relative;overflow:hidden}.featured .project-visual{min-height:420px}.project-copy{padding:32px}.project-copy .meta,.log-card .meta{font:500 .6rem var(--mono);letter-spacing:.1em;color:var(--cyan)}.project-copy h3,.log-card h3{font-size:clamp(1.5rem,2.4vw,2.5rem);letter-spacing:-.045em;margin:14px 0}.project-copy>p:not(.meta),.log-card>p:not(.meta){color:var(--muted);line-height:1.7}.project-copy ul{list-style:none;display:flex;gap:7px;flex-wrap:wrap;padding:0;margin:25px 0 0}.project-copy li{font:500 .57rem var(--mono);color:#9fa6b4;border:1px solid var(--line);padding:7px 9px}
.plc:before,.dashboard:before,.sensor:before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:var(--purple);filter:blur(110px);opacity:.2;left:20%;top:20%}.plc-unit{position:absolute;left:16%;top:26%;width:115px;height:200px;background:#b3b8b8;color:#182025;padding:18px;box-shadow:16px 18px 0 #242a34}.plc-unit b{font-size:.55rem}.plc-unit span{display:block;font:500 .6rem var(--mono);margin-top:9px}.plc-unit i{display:block;width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 9px var(--lime);margin-top:18px}.screen{position:absolute;right:10%;top:19%;width:210px;height:160px;padding:20px;background:#101722;border:7px solid #343a43;box-shadow:20px 25px 0 rgba(0,0,0,.22)}.screen small{font:500 .5rem var(--mono);color:var(--cyan)}.screen strong{display:block;color:var(--lime);font:500 1.4rem var(--mono);margin-top:15px}.screen-bars{display:flex;align-items:end;gap:6px;height:50px}.screen-bars i{width:18px;height:35%;background:var(--purple)}.screen-bars i:nth-child(2){height:70%}.screen-bars i:nth-child(3){height:90%}.screen-bars i:nth-child(4){height:55%}.dashboard{padding:42px}.dash-nav{height:24px;width:100%;border:1px solid #2a3342}.dash-main{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin-top:10px}.dash-main i{height:60px;border:1px solid #263345;background:linear-gradient(150deg,rgba(99,230,255,.13),transparent)}.dash-main div{grid-column:span 3;height:45px;border:1px solid #263345}.dash-main div:last-child{height:30px}.sensor{display:grid;place-items:center}.sensor-core{z-index:2;width:90px;height:90px;border-radius:50%;display:grid;place-items:center;background:#171d28;border:1px solid var(--cyan);box-shadow:0 0 45px rgba(99,230,255,.25);font:500 1.4rem var(--mono);color:var(--cyan)}.sensor-core small{display:block;font-size:.4rem}.orbit{position:absolute;border:1px solid #324050;border-radius:50%}.orbit.a{width:180px;height:180px}.orbit.b{width:245px;height:245px}.node{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 12px var(--lime)}.n1{top:17%;left:50%}.n2{bottom:24%;left:25%}.n3{right:19%;top:58%}
.journey{background:#0c0f15;border-block:1px solid var(--line)}.timeline{border-top:1px solid var(--line)}.timeline article{display:grid;grid-template-columns:.8fr 1.3fr 1.5fr;gap:45px;padding:30px 0;border-bottom:1px solid var(--line)}.timeline time{font:500 .65rem var(--mono);color:var(--cyan)}.timeline h3{margin:8px 0 5px;font-size:1.2rem}.timeline article div>p:not(.tag),.timeline article>p{color:var(--muted);line-height:1.65;margin:0}.tag{display:inline-block;margin:0;font:500 .55rem var(--mono);color:#99a1af;text-transform:uppercase;border:1px solid var(--line);padding:5px 7px}.tag.current{color:var(--lime);border-color:rgba(198,247,63,.25)}
.about-head>p{font-size:1.05rem;color:#b4bac5}.tool-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}.tool-grid article{padding:36px;border:1px solid var(--line);margin:-1px}.tool-grid span{font:500 .58rem var(--mono);letter-spacing:.1em;color:var(--purple)}.tool-grid h3{font-size:1.5rem;margin:18px 0 10px}.tool-grid p{color:var(--muted);line-height:1.6;margin:0}.off-duty{display:grid;grid-template-columns:1fr 3fr;margin-top:80px;padding-top:30px;border-top:1px solid var(--line)}.off-duty ul{list-style:none;margin:0;padding:0}.off-duty li{display:flex;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line);font-size:1.05rem}.off-duty li span{color:var(--cyan)}
.logs{border-top:1px solid var(--line)}.log-card{max-width:740px;margin-left:auto;border:1px solid var(--line);background:var(--panel);padding:34px}.log-card>div{display:flex;justify-content:space-between;font:500 .58rem var(--mono);color:var(--lime)}.log-card time{color:#68707d}.log-card a{display:inline-block;margin-top:15px;color:var(--cyan);font:500 .65rem var(--mono);text-transform:uppercase}.contact{padding:140px 0;background:var(--cyan);color:#071016}.contact .kicker{color:#34505a}.contact h2{font-size:clamp(3.8rem,8vw,8rem);margin:28px 0}.contact h2 span{color:transparent;-webkit-text-stroke:1px #071016;text-shadow:none}.contact .shell>p:not(.kicker){max-width:620px;font-size:1.1rem;line-height:1.6}.email{display:flex;justify-content:space-between;align-items:center;margin-top:60px;padding:22px 0;border-bottom:2px solid #071016;font-size:clamp(1.4rem,3.7vw,3.5rem);font-weight:700;letter-spacing:-.04em}.contact-links{display:flex;gap:30px;margin-top:32px;font:500 .65rem var(--mono);text-transform:uppercase}.contact-links a:hover{text-decoration:underline}.disabled{opacity:.45}.footer{min-height:130px;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:30px;color:#656d7a;font:500 .58rem var(--mono);text-transform:uppercase}.footer .brand{text-transform:none;color:var(--text)}
@media(max-width:850px){.hero{grid-template-columns:1fr}.system-card{width:min(520px,100%);min-height:460px}.section-head{display:block}.section-head>p{margin-top:30px}.project.featured{display:block}.project.featured .project-top{display:flex}.projects{display:block}.project{margin-bottom:20px}.timeline article{grid-template-columns:1fr 1.5fr}.timeline article>p{grid-column:2}.about-head>p{margin-top:32px}.footer{grid-template-columns:1fr auto}.footer>p:nth-child(2){display:none}}
@media(max-width:560px){.shell{width:min(100% - 30px,1180px)}.nav{height:70px}.nav nav{gap:12px}.nav nav>a:not(.nav-cta){display:none}.hero{padding:55px 0 80px;min-height:auto}.hero h1{font-size:clamp(3rem,15vw,5rem)}.actions{align-items:stretch;flex-direction:column}.button{text-align:center}.system-card{min-height:420px;transform:none}.system-body{padding:25px}.screen{right:5%;width:180px}.plc-unit{left:7%}.marquee div{animation:none}.section{padding:95px 0}.section-head{margin-bottom:50px}.section h2,.contact h2{font-size:clamp(3rem,14vw,5rem)}.project-visual,.featured .project-visual{min-height:290px}.project-copy{padding:25px}.timeline article{grid-template-columns:1fr;gap:12px}.timeline article>p{grid-column:auto}.tool-grid{grid-template-columns:1fr}.off-duty{grid-template-columns:1fr}.off-duty ul{margin-top:20px}.contact{padding:95px 0}.email{font-size:1.05rem}.contact-links{flex-wrap:wrap}.footer{min-height:100px}.footer>p:last-child{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.wave i,.marquee div{animation:none}}

/* Lightweight interaction layer */
.cursor-glow{position:fixed;z-index:-1;width:440px;height:440px;left:0;top:0;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(99,230,255,.08),rgba(168,128,255,.025) 42%,transparent 70%);will-change:transform}
.nav nav>a.active{color:var(--cyan)}
.project{transition:border-color .3s,box-shadow .3s;transform-style:preserve-3d;will-change:transform}
.project:hover{border-color:#3b4656;box-shadow:0 25px 70px rgba(0,0,0,.25)}
.project-copy li{transition:color .2s,border-color .2s}.project:hover .project-copy li{color:#c3cad5;border-color:#37404d}
.orbit{animation:orbit 12s linear infinite}.orbit.b{animation-direction:reverse;animation-duration:18s}.orbit:after{content:"";position:absolute;top:-3px;left:50%;width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}
.node{animation:node-pulse 2.4s ease-in-out infinite}.n2{animation-delay:-.8s}.n3{animation-delay:-1.5s}
@keyframes orbit{to{transform:rotate(360deg)}}@keyframes node-pulse{50%{opacity:.25;transform:scale(.65)}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}.reveal.in-view{opacity:1;transform:none}
.reveal-stagger>*{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.reveal-stagger.in-view>*{opacity:1;transform:none}.reveal-stagger.in-view>*:nth-child(2){transition-delay:.09s}.reveal-stagger.in-view>*:nth-child(3){transition-delay:.18s}.reveal-stagger.in-view>*:nth-child(4){transition-delay:.27s}
@media(pointer:coarse){.cursor-glow{display:none}.tilt-card{transform:none!important}}
@media(prefers-reduced-motion:reduce){.orbit,.node{animation:none}.reveal,.reveal-stagger>*{opacity:1;transform:none;transition:none}.tilt-card{transform:none!important}}

/* Contact action cards */
.contact-links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:38px}
.social-link{min-height:92px;padding:16px 18px;border:1px solid rgba(7,16,22,.35);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;font-family:var(--sans);text-transform:none;transition:background .25s,color .25s,border-color .25s,transform .25s,box-shadow .25s}
.social-link .social-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid currentColor;font:700 .7rem var(--mono)}
.social-link>span:nth-child(2){display:flex;flex-direction:column;font-size:1rem;font-weight:800;letter-spacing:-.02em}.social-link small{font:500 .55rem var(--mono);letter-spacing:.05em;text-transform:uppercase;opacity:.58;margin-bottom:4px}.social-link b{font-size:1.25rem;transition:transform .25s}
.social-link:not(.disabled):hover{transform:translateY(-4px);background:#071016;color:var(--cyan);border-color:#071016;box-shadow:0 13px 0 rgba(7,16,22,.14)}.social-link:not(.disabled):hover b{transform:translate(3px,-3px)}
.social-link.linkedin:hover{color:#7ab9ff}.social-link.cv{border-style:dashed;background:rgba(7,16,22,.045);opacity:.7}.social-link.cv .social-icon{background:rgba(7,16,22,.08)}
@media(max-width:700px){.contact-links{grid-template-columns:1fr}.social-link{min-height:78px}.contact-links .disabled{display:grid}}
