/* Motion and visual system: quiet navy, luminous mint, precise technical details. */
:root{--bg:#0b1220;--text:#9aaac1;--heading:#e6edf6;--accent:#7dddc6}body{background-color:var(--bg);background-image:radial-gradient(ellipse at 75% 0%,#172c3d70,transparent 50%);line-height:1.75}.layout{max-width:1320px;grid-template-columns:minmax(300px,.84fr) minmax(0,1.16fr);gap:88px;padding:0 56px}.topbar{position:absolute;top:0;left:0;width:100%;padding:25px max(32px,calc((100vw - 1208px)/2));display:flex;align-items:center;justify-content:space-between;z-index:10;border-bottom:1px solid #8193b612}.wordmark{font:700 15px/1.5 Consolas,monospace;letter-spacing:2px;color:var(--heading)}.wordmark span{font-size:10px;font-weight:400;letter-spacing:1.8px;color:#70829e}#motion-toggle{border:1px solid #7389a433;color:#a3b5ce;padding:7px 12px;background:#0e1b2c80;border-radius:30px;font:500 11px/1.5 "Segoe UI",sans-serif;cursor:pointer;transition:color .2s,border-color .2s}#motion-toggle:hover{color:var(--accent);border-color:#7dddc680}button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;transform:scaleX(0);transform-origin:left;background:var(--accent);z-index:30;box-shadow:0 0 14px #7dddc66b}.profile{padding:112px 0 35px;height:100dvh;min-height:700px}.avatar{border-radius:20px;width:62px;height:62px;font-size:20px;margin-bottom:22px;border-color:#7dddc640;background:#182a35;box-shadow:0 0 50px #7dddc60a}h1{font-size:clamp(44px,4.7vw,67px);font-weight:650;line-height:1.04;letter-spacing:-2.8px;max-width:450px;text-wrap:balance;margin-bottom:22px}#role{font-size:13px;font-weight:600;letter-spacing:1.2px;line-height:1.8;max-width:380px;color:#b6c6da}.intro{font-size:14px;max-width:365px;line-height:1.85;margin-top:16px}.language-switch{margin-bottom:22px}nav{margin-top:30px;gap:14px}nav a{font-size:10px;letter-spacing:1.8px}nav a.active{color:var(--accent)}nav a.active span{background:var(--accent)}main{padding:110px 0 70px}section{margin-bottom:100px}.network-stage{position:relative;height:290px;margin-bottom:64px;border:1px solid #8ba7c51b;background:linear-gradient(150deg,#172d3b44,#0d192500);border-radius:14px;overflow:hidden}.network-stage::before{content:"";position:absolute;inset:0;background-image:linear-gradient(#a7c7e209 1px,transparent 1px),linear-gradient(90deg,#a7c7e209 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(ellipse,black,transparent 85%);pointer-events:none}.network-label,.network-caption{position:absolute;z-index:2;display:flex;align-items:center;font:10px/1.5 Consolas,monospace;letter-spacing:1.3px;pointer-events:none}.network-label{top:19px;left:22px;gap:9px;color:#b4c9dc}.live-dot{width:5px;height:5px;background:var(--accent);border-radius:50%;box-shadow:0 0 12px #7dddc680}.network-caption{bottom:18px;left:22px;right:22px;justify-content:space-between;color:#6f8ba0;font-size:9px}#network-scene{height:100%;width:100%}#network-scene canvas{display:block;width:100%;height:100%}.network-fallback{position:absolute;width:145px;height:145px;left:50%;top:50%;transform:translate(-50%,-50%) rotate(35deg);border:1px solid #7dddc644;border-radius:28px;box-shadow:0 0 75px #7dddc611,inset 0 0 60px #7dddc608}.network-fallback::after{content:"";position:absolute;inset:22px;border:1px solid #7dddc644;border-radius:50%}.section-title,#about>.section-title,#experience>.section-title{position:static;clip-path:none;width:auto;height:auto;overflow:visible;display:flex;align-items:center;gap:18px;margin-bottom:32px;font-size:11px;letter-spacing:1.9px;color:#c2d2e6}.section-title::after{content:"";height:1px;background:#7b91ac26;flex:1}#bio p{font-size:15px;line-height:1.95;text-wrap:pretty}#bio strong{color:#d4e1f0}.tags span{font-size:10px;letter-spacing:.1px;padding:4px 10px;background:#7dddc60d;color:#90cebf;border:1px solid #7dddc612}.entry{border-radius:10px;padding:22px;margin:0 -22px 16px;grid-template-columns:105px minmax(0,1fr);gap:22px;transform-style:preserve-3d;isolation:isolate;overflow:hidden}.entry::before{content:"";position:absolute;inset:0;background:radial-gradient(300px circle at var(--card-x,50%) var(--card-y,50%),#7dddc60c,transparent 75%);opacity:0;transition:opacity .3s;pointer-events:none;z-index:-1}.entry:hover::before{opacity:1}.entry:hover,.entry:focus-within{background:#1726366b;border-color:#a2c5e31a;box-shadow:0 18px 40px -24px #030913,inset 0 1px 0 #a5c9e318}.entry h3{font-size:16px;line-height:1.65;letter-spacing:-.2px}.entry p{font-size:13px;line-height:1.9}.time{font:10px/1.8 Consolas,monospace;letter-spacing:.4px;color:#7a90a8}.project{grid-template-columns:152px minmax(0,1fr);gap:24px}.thumb{width:152px;aspect-ratio:4/3;border-radius:7px;transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .5s;filter:saturate(.8)}.project:hover .thumb{transform:scale(1.035);filter:saturate(1.15)}.project h3{font-size:17px}.project-group-title{font-size:13px;margin-bottom:24px;color:#91a5bd}.project-group+.project-group{margin-top:60px}.company-logo{height:44px;max-width:165px;border-radius:4px;margin-bottom:17px}#jobs,#schools{position:relative}#jobs::before,#schools::before{content:"";position:absolute;top:32px;bottom:32px;left:-33px;width:1px;background:linear-gradient(var(--accent),#7dddc614)}#jobs .entry::after,#schools .entry::after{content:"";position:absolute;left:0;top:30px;width:3px;height:20px;border-radius:2px;background:#7dddc65c}.socials .social-link{font-size:12px;gap:8px}.socials{gap:22px}.socials a:active,button:active{transform:scale(.96)}.back-top{position:fixed;bottom:24px;right:24px;width:40px;height:40px;display:grid;place-items:center;border:1px solid #7dddc630;background:#112332e8;border-radius:50%;color:var(--accent);z-index:10;backdrop-filter:blur(12px)}footer{font-size:11px;opacity:.8}.glow{background:radial-gradient(650px circle at var(--pointer-x,25vw) var(--pointer-y,15vh),#2b6b871a,transparent 80%)}.motion-off .entry{transform:none!important}.motion-off .click-light{display:none}
@media(min-width:901px) and (max-height:800px){.profile{padding-top:100px;min-height:610px}.avatar{width:48px;height:48px;margin-bottom:16px}h1{font-size:52px;margin-bottom:16px}.intro{font-size:12px;line-height:1.75}nav{gap:12px;margin-top:20px}.language-switch{margin-bottom:15px}}
@media(max-width:1100px){.layout{gap:55px;padding:0 35px}.project{grid-template-columns:115px minmax(0,1fr)}.thumb{width:115px}.entry{gap:15px}.profile{padding-top:105px}.socials{gap:14px}}
@media(max-width:800px){.layout{display:block;padding:0 26px}.profile{position:relative;height:auto;min-height:0;padding:105px 0 45px;gap:30px}h1{font-size:64px;max-width:500px}.intro{max-width:550px;font-size:14px}#role{max-width:500px}.profile nav{display:flex;flex-wrap:wrap;gap:13px 22px;margin-top:30px}.profile nav a{font-size:9px;gap:7px}.profile nav span{width:14px}.profile nav a.active span,.profile nav a:hover span{width:22px}main{padding:0 0 40px}.network-stage{height:250px;margin-bottom:48px}.topbar{padding:22px 26px}.entry{margin:0 -12px 16px;padding:16px 12px}.project{grid-template-columns:125px minmax(0,1fr);gap:18px}.thumb{width:125px}#jobs::before,#schools::before{display:none}section{margin-bottom:70px}.socials{gap:24px}.back-top{bottom:16px;right:16px}}
@media(max-width:420px){h1{font-size:56px}.project{grid-template-columns:86px minmax(0,1fr);gap:14px}.thumb{width:86px}.project h3{font-size:15px}.entry:not(.project){grid-template-columns:1fr}.entry p{font-size:12px}.network-caption{font-size:8px;letter-spacing:.4px}.network-label{font-size:9px}.wordmark span{font-size:8px}#bio p{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.entry,.thumb{transform:none!important}}

.glow{background:radial-gradient(600px circle at var(--pointer-x,25vw) var(--pointer-y,15vh),rgba(50,105,190,.23),transparent 80%)}

.avatar{width:88px;height:88px;border-radius:22px}.avatar img{object-position:center 35%}@media(min-width:901px) and (max-height:800px){.avatar{width:64px;height:64px}}@media(max-width:800px){.avatar{width:92px;height:92px}}
