@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2) format("woff2-variations")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations")}@font-face{font-family:Codystar;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/codystar-latin-400-normal-D3u8Q1lt.woff2) format("woff2")}:root{--bg: #060810;--bg-soft: rgba(15, 22, 38, .55);--bg-soft-hover: rgba(22, 36, 60, .7);--text-strong: #e8eef7;--text-base: rgba(220, 230, 240, .88);--text-muted: rgba(180, 200, 230, .75);--mono-faint: rgba(170, 210, 245, .8);--accent: rgba(150, 215, 255, .95);--accent-strong: rgba(150, 215, 255, 1);--accent-border: rgba(150, 215, 255, .5);--accent-fill: rgba(150, 215, 255, .12);--accent-fill-hover: rgba(150, 215, 255, .22);--glow-soft: rgba(150, 215, 255, .35);--glow-strong: rgba(150, 215, 255, .75);--desktop-content-top: 172px;--desktop-content-bottom: 24px;--desktop-chrome-gap: 32px;--docked-logo-gap: 28px;--docked-content-top-fallback: 128px;--scene-safe-top: var(--desktop-content-top);--scene-safe-bottom: var(--desktop-content-bottom);--flow-scene-top: var(--docked-content-top-fallback);--logo-wordmark-bottom: 100px;--logo-fade-start: 5px;--logo-fade-end: var(--docked-logo-gap);--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--scene-inline-gutter: clamp(18px, 3vw, 56px);--dock-menu-height: 56px;--dock-content-reserve: 94px;--experience-orbit-content-end: 1076px;--layout-docked: 0;--experience-orbital: 1;--layout-short: 0;--layout-small-phone: 0;--layout-tablet: 0}@media(max-width:1599.98px){:root{--experience-orbital: 0}}@media(min-width:1500px)and (max-height:900px){:root{--layout-short: 1}}@media(min-width:900px)and (max-width:1499.98px){:root{--layout-tablet: 1}}@media(max-width:560px){:root{--layout-small-phone: 1}}*{margin:0;padding:0;box-sizing:border-box}body,html{overflow:hidden;background:var(--bg);color:var(--text-strong);width:100%;height:100%;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:17.5px;line-height:1.5;transition:background .4s ease,color .4s ease}h1,h2,h3{font-family:Space Grotesk,Inter,system-ui,sans-serif;font-weight:600;letter-spacing:-.01em}code,.mono{font-family:JetBrains Mono,Courier New,monospace}canvas{display:block}#menu{position:absolute;inset:0;pointer-events:none;z-index:10}.menu-btn{position:absolute;transform:translate(-50%,-50%);margin:0;padding:8px 14px;background:transparent;border:0;cursor:pointer;pointer-events:auto;white-space:nowrap;font-family:Codystar,Space Grotesk,system-ui,sans-serif;font-size:33.5px;font-weight:400;-webkit-text-stroke:.4px currentColor;letter-spacing:.04em;text-transform:lowercase;color:transparent;outline:none;border-radius:4px;transition:color .6s ease,text-shadow .22s ease}.menu-btn.text-on{color:var(--text-muted)}.menu-btn.text-on:hover{color:var(--text-strong)}.menu-btn.text-on.active{color:var(--accent-strong);animation:menu-pulse 2.8s ease-in-out infinite}.menu-btn.glow-burst{animation:menu-glow-burst .8s ease-out}@keyframes menu-glow-burst{0%{color:var(--accent-strong);text-shadow:0 0 18px var(--glow-strong),0 0 36px var(--glow-strong),0 0 60px var(--glow-soft);opacity:0}15%{opacity:1}to{color:var(--text-muted);text-shadow:none;opacity:1}}@keyframes menu-pulse{0%,to{text-shadow:0 0 6px var(--glow-soft),0 0 14px var(--glow-soft)}50%{text-shadow:0 0 12px var(--glow-strong),0 0 28px var(--glow-soft)}}.menu-btn:focus-visible{outline:2px solid var(--accent);outline-offset:4px}#scenes{position:absolute;inset:0;pointer-events:none;z-index:5}.scene{position:absolute;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s ease,visibility 0s .5s}.scene--active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .5s ease,visibility 0s 0s}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.scene .accent{color:var(--accent)}.scene-reading{top:var(--scene-safe-top);bottom:var(--scene-safe-bottom);max-height:none;overflow-y:auto;overscroll-behavior-y:contain}.scene-reading__inner{min-height:100%;display:flex;flex-direction:column;justify-content:center}.scene-about{left:10vw;transform:none;width:54vw;max-width:1000px;padding-right:8px}.scene-about .about-intro{font-family:Space Grotesk,system-ui,sans-serif;font-weight:600;font-size:clamp(37.5px,4.2vw,61.5px);line-height:1.05;letter-spacing:-.02em;margin-bottom:12px;color:var(--text-strong)}.scene-about .tagline{font-family:JetBrains Mono,Courier New,monospace;font-size:14.5px;color:var(--text-muted);letter-spacing:.04em;margin-bottom:26px;line-height:1.5}.scene-about .bio p{font-size:16px;line-height:1.65;color:var(--text-base);margin-bottom:12px}.scene-about .bio em{color:var(--accent);font-style:normal}.scene-about .bio-meta{font-family:JetBrains Mono,Courier New,monospace;font-size:13.5px;color:var(--text-muted);letter-spacing:.02em;margin-top:12px}.scene-about .closing{margin-top:22px;font-size:16px;color:var(--text-muted);font-style:italic}.about-extras{display:grid;grid-template-columns:1fr;gap:20px;margin-top:24px}.about-extra h3{font-family:JetBrains Mono,monospace;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;font-weight:500}.about-extra ul{list-style:none;padding:0;margin:0}.about-extra p{font-size:15px;line-height:1.55;color:var(--text-base);margin:0}.about-extra li{position:relative;padding-left:16px;font-size:15px;line-height:1.55;color:var(--text-base);margin-bottom:6px}.about-extra li:before{content:"·";position:absolute;left:0;top:-1px;color:var(--accent);font-weight:700;font-size:19.5px;line-height:1}.scene-skills{left:50%;transform:translate(-50%);width:min(960px,70vw);padding:0 4px}.scene-skills .scene-reading__inner{gap:14px}.scene-title{font-family:Space Grotesk,system-ui,sans-serif;font-weight:600;font-size:clamp(25.5px,2vw,33.5px);letter-spacing:-.01em;margin-bottom:10px;color:var(--text-strong)}.scene-lead{font-family:JetBrains Mono,Courier New,monospace;font-size:14px;color:var(--text-muted);letter-spacing:.04em;margin-bottom:22px;line-height:1.55}.scene-skills .scene-title{text-align:left}.skills-intro{display:grid;gap:6px;margin:0}.skills-intro p{font-size:14px;line-height:1.5;color:var(--text-base)}.skills-intro p:last-child{color:var(--text-muted)}.skills-stack{font-family:JetBrains Mono,Courier New,monospace;font-size:13px;line-height:1.55;color:var(--text-muted)}.skills-stack strong{color:var(--text-strong);font-weight:600}.skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 22px}.skill-cat{padding:4px 6px;background:transparent;border:0;border-radius:0;backdrop-filter:none}.skill-cat h3{font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:4px;font-weight:500}.skill-cat p,.skill-line{font-size:13px;line-height:1.5;color:var(--text-base)}.skill-list{list-style:none;padding:0;margin:0}.skill-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 0;font-size:13px;line-height:1.3;color:var(--text-base);border-bottom:1px dashed rgba(150,215,255,.08)}.skill-list li:last-child{border-bottom:0}.skill-list--inline{display:flex;flex-wrap:wrap;gap:4px 12px}.skill-list--inline li{border-bottom:0;padding:1px 0}.lvl{font-family:JetBrains Mono,monospace;font-size:18px;line-height:1;letter-spacing:.06em;white-space:nowrap;color:var(--accent-strong);text-shadow:0 0 10px var(--glow-soft);flex-shrink:0;min-width:48px;text-align:right}.lang-level{font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.scene-experience{inset:0;transform:scale(.4);transform-origin:50% 50%;transition:transform .9s cubic-bezier(.16,1,.3,1),opacity .6s ease,visibility 0s .6s}.scene-experience.scene--active{transform:scale(1);transition:transform .9s cubic-bezier(.16,1,.3,1),opacity .5s ease,visibility 0s 0s}.experience-orbit{position:relative;width:100%}@media(min-width:1600px){.scene-experience{inset:var(--scene-safe-top) 0 0;overflow-x:clip;overflow-y:auto;overscroll-behavior-y:contain}.experience-orbit{width:min(100%,1600px);height:100%;margin-inline:auto}.scene-experience .solar-system{top:max(calc(50% - 86px),528px)}.scene-experience .exp-entry--delta{top:0}.scene-experience .exp-entry--beta{top:20px}.scene-experience .exp-entry--beta .exp-planet{inset:140px auto auto -104px}.scene-experience .exp-entry--alpha{top:max(calc(50% - 6px),608px)}.scene-experience .exp-entry--gamma{top:max(calc(50% - 146px),468px);right:calc(50% - 724px)}.scene-experience .exp-entry--epsilon{bottom:min(152px,calc(100% - var(--experience-orbit-content-end)))}}.scene-experience:focus-visible{outline:1px solid var(--accent-border);outline-offset:-3px}.solar-system{position:absolute;top:50%;left:50%;width:520px;height:520px;margin:-430px 0 0 -260px;pointer-events:none;z-index:1}.solar-system__halo{position:absolute;top:50%;left:50%;width:300px;height:300px;margin:-150px 0 0 -150px;border-radius:50%;background:radial-gradient(circle,#ffb43c47,#ff8c1e24 38%,#ff6e1400 72%);filter:blur(8px);animation:halo-pulse 7s ease-in-out infinite}.solar-system__sun{position:absolute;top:50%;left:50%;width:160px;height:160px;margin:-80px 0 0 -80px;border-radius:50%;background:radial-gradient(circle at center,#fff6c8,#ffd14a 22%,#ffa517,#e06317 82%,#8a280b);box-shadow:inset 0 0 36px #fff0b480,0 0 18px 2px #ffa828d9,0 0 48px 8px #ff821e8c,0 0 120px 28px #ff5a1440;animation:sun-flare 9s ease-in-out infinite}.solar-system__belt{position:absolute;top:50%;left:50%;width:460px;height:460px;margin:-230px 0 0 -230px;border-radius:50%;overflow:hidden;animation:orb 240s linear infinite}.solar-system__belt:before{content:"";position:absolute;top:50%;left:50%;width:2px;height:2px;margin:-1px 0 0 -1px;border-radius:50%;box-shadow:var(--asteroid-shadows, 0 0 0 0 transparent)}@keyframes orb{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes halo-pulse{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.08);opacity:1}}@keyframes sun-flare{0%,to{box-shadow:inset 0 0 36px #fff0b480,0 0 18px 2px #ffa828d9,0 0 48px 8px #ff821e8c,0 0 120px 28px #ff5a1440}50%{box-shadow:inset 0 0 40px #fff0b499,0 0 24px 3px #ffb432f2,0 0 64px 12px #ff8c1ea6,0 0 150px 36px #ff5a1452}}.scene-experience:not(.scene--active) .solar-system__halo,.scene-experience:not(.scene--active) .solar-system__sun,.scene-experience:not(.scene--active) .solar-system__belt,.scene-experience:not(.scene--active) .exp-planet--earthy:after{animation-play-state:paused}.exp-list{display:contents}.exp-entry{position:absolute;padding:0;background:transparent;border:0;z-index:2;opacity:0;text-align:left;transition:opacity .5s ease,transform .7s cubic-bezier(.16,1,.3,1)}.exp-entry--delta{top:172px;right:calc(50% + 258px);max-width:470px;transform:translate(-40px,-28px)}.exp-entry--beta{top:192px;right:calc(50% - 590px);max-width:360px;transform:translate(40px,-28px)}.exp-entry--alpha{top:calc(50% + 80px);left:calc(50% - 210px);max-width:360px;transform:translate(-28px,40px)}.exp-entry--gamma{top:calc(50% + 60px);right:calc(50% - 772px);max-width:470px;transform:translate(40px,28px)}.exp-entry--epsilon{bottom:48px;right:calc(50% + 320px);max-width:360px;transform:translate(-40px,28px)}.scene-experience.scene--active .exp-entry{opacity:1;transform:translate(0)}.scene-experience.scene--active .exp-entry--delta{transition-delay:.18s}.scene-experience.scene--active .exp-entry--beta{transition-delay:.26s}.scene-experience.scene--active .exp-entry--epsilon{transition-delay:.34s}.scene-experience.scene--active .exp-entry--alpha{transition-delay:.42s}.scene-experience.scene--active .exp-entry--gamma{transition-delay:.5s}.exp-planet{display:block;position:absolute;width:56px;height:56px;border-radius:50%}.exp-entry--delta .exp-planet{top:0;right:-90px;bottom:auto}.exp-entry--beta .exp-planet{bottom:-28px;left:-72px}.exp-entry--epsilon .exp-planet{inset:-28px -72px auto auto}.exp-entry--alpha .exp-planet{inset:-50px auto auto 10%;transform:translateY(-50%)}.exp-entry--gamma .exp-planet{top:-28px;left:-72px}.exp-planet--earthy{transform-style:preserve-3d;background:radial-gradient(circle at 32% 28%,#dcdade,#898792,#1f1e26);box-shadow:inset -6px -8px 18px #0000008c}.exp-planet--earthy:after{content:"";position:absolute;top:50%;left:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#c4fff2,#6dfede 55%,#18a290);box-shadow:inset -2px -2.5px 4px #0006,0 0 6px #6dfede99;animation:moon-orbit-delta 20s linear infinite}@keyframes moon-orbit-delta{0%{transform:rotateX(60deg) rotate(0) translate(38px) rotate(0) rotateX(-60deg)}to{transform:rotateX(60deg) rotate(-360deg) translate(38px) rotate(360deg) rotateX(-60deg)}}.exp-planet--oceanic{background:radial-gradient(circle at 32% 28%,#d6f6ff,#35a7d4 40%,#0d4a76 75%,#04121f);box-shadow:inset -6px -8px 18px #00000080,0 0 22px #46beeb66}.exp-planet--rusted{background:radial-gradient(circle at 32% 28%,#ffb27a,#c75028 55%,#4a1207);box-shadow:inset -6px -8px 18px #0000008c,0 0 22px #ff874659}.exp-planet--icy{background:radial-gradient(circle at 32% 28%,#fff,#c8e7f7,#6ea4c8 70%,#2c4a66);box-shadow:inset -6px -8px 18px #00000073,0 0 22px #aadcff66}.exp-planet--banded{background:repeating-linear-gradient(180deg,#d49e6000,#d49e608c 4px,#b47a3c8c 9px,#d49e6000 13px,#f1c88273 18px,#f1c88200 24px),radial-gradient(circle at 32% 28%,#f4cf91,#b07a3a 60%,#4d2d10);box-shadow:inset -6px -8px 18px #00000080,0 0 22px #dca55a4d}.exp-head h3{font-family:Space Grotesk,system-ui,sans-serif;font-weight:600;font-size:16px;color:var(--text-strong);margin-bottom:3px;line-height:1.35;transition:text-shadow .22s ease}.exp-entry:hover .exp-head h3{text-shadow:0 0 10px var(--glow-soft)}.exp-meta{font-family:JetBrains Mono,monospace;font-size:12px;letter-spacing:.06em;color:var(--accent);margin-bottom:8px}.exp-entry>p{font-size:16px;line-height:1.65;color:var(--text-base);margin-bottom:8px;text-shadow:0 0 8px rgba(6,8,16,.6)}.exp-entry em{color:var(--accent);font-style:normal}.exp-entry strong{color:var(--text-strong);font-weight:600}.exp-bullets{list-style:none;padding:0;margin:6px 0 8px}.exp-bullets li{position:relative;padding-left:12px;font-size:15px;line-height:1.55;color:var(--text-base);margin-bottom:4px;text-shadow:0 0 8px rgba(6,8,16,.6)}.exp-bullets li:before{content:"·";position:absolute;left:0;top:-3px;color:var(--accent);font-weight:700;font-size:17.5px;line-height:1}.exp-bullets a{color:var(--accent);text-decoration:none;border-bottom:1px dotted var(--accent-border);transition:color .2s ease,border-color .2s ease}.exp-bullets a:hover{color:var(--accent-strong);border-bottom-color:var(--accent-strong)}.exp-stack{font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.5;color:var(--text-muted);margin-top:6px;padding-top:6px;border-top:1px dashed rgba(150,215,255,.12)}.exp-stack span{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin-right:6px}.scene-contact{inset:0;text-align:center}.contact-upper{position:absolute;left:50%;bottom:calc(50% + 100px);transform:translate(-50%)}.contact-lower{position:absolute;left:50%;top:calc(50% + 10px);transform:translate(-50%);width:min(700px,92vw)}.contact-portrait{width:280px;margin:0 auto 28px;border-radius:12px;overflow:hidden;border:1px solid var(--accent-border);box-shadow:0 0 32px var(--glow-soft),0 8px 32px #00000073;background:var(--bg-soft);transition:box-shadow .28s ease,border-color .28s ease,transform .28s ease}.contact-portrait picture{display:block;width:100%;line-height:0}.contact-portrait:hover{box-shadow:0 0 48px var(--glow-strong),0 12px 40px #00000080;border-color:var(--accent-strong);transform:translateY(-3px)}.contact-portrait img{width:100%;height:auto;aspect-ratio:560 / 374;object-fit:cover;display:block}.contact-sub{font-size:16.5px;color:var(--text-base);margin-bottom:24px;line-height:1.55}.contact-details{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}.contact-details:before{content:"";position:absolute;z-index:-1;inset:8% 7%;border:1px dashed rgba(150,215,255,.13);border-radius:50%;transform:rotate(-4deg);pointer-events:none}.contact-detail{--planet-rgb: 112, 203, 255;--planet-orbit: -18deg;position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:50px minmax(0,1fr) 24px;align-items:center;gap:12px;min-width:0;min-height:90px;padding:12px 16px 12px 12px;text-decoration:none;text-align:left;border:1px solid rgba(var(--planet-rgb),.28);border-radius:999px 28px 28px 999px;background:radial-gradient(circle at 76% 22%,rgba(var(--planet-rgb),.58) 0 1px,transparent 1.6px),radial-gradient(circle at 89% 68%,rgba(255,255,255,.4) 0 1px,transparent 1.6px),radial-gradient(circle at 68% 78%,rgba(var(--planet-rgb),.34) 0 .8px,transparent 1.4px),radial-gradient(circle at 8% 50%,rgba(var(--planet-rgb),.14),transparent 34%),linear-gradient(115deg,#0f1626db,#080c18bd);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 1px #ffffff0a,0 8px 24px #0000002e;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background-color .22s ease}.contact-detail:after{content:"";position:absolute;z-index:0;top:50%;right:-44px;width:108px;height:64px;border:1px solid rgba(var(--planet-rgb),.15);border-left-color:transparent;border-radius:50%;transform:translateY(-50%) rotate(-16deg);pointer-events:none}.contact-detail>*{position:relative;z-index:1}.contact-detail--phone{--planet-rgb: 105, 232, 217;--planet-orbit: -20deg}.contact-detail--email{--planet-rgb: 127, 150, 255;--planet-orbit: 16deg}.contact-detail--resume{--planet-rgb: 255, 178, 75;--planet-orbit: -13deg}.contact-detail--ats{--planet-rgb: 166, 214, 255;--planet-orbit: 22deg}.contact-detail__celestial{width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 31% 27%,#fffffffa 0 5%,rgba(var(--planet-rgb),.98) 18%,rgba(var(--planet-rgb),.58) 54%,#030812fa);box-shadow:inset -8px -7px 13px #00000080,0 0 16px rgba(var(--planet-rgb),.34);transition:transform .24s ease,box-shadow .24s ease}.contact-detail--phone .contact-detail__celestial{background:radial-gradient(ellipse at 68% 70%,rgba(4,74,82,.58) 0 8%,rgba(4,74,82,.4) 14%,rgba(4,74,82,.16) 19%,transparent 24%),radial-gradient(circle at 31% 27%,#fffffffa 0 5%,#69e8d9fa 18%,#208091b8 58%,#030812fa)}.contact-detail--email .contact-detail__celestial{background:radial-gradient(ellipse at 38% 72%,rgba(49,43,133,.68) 0 9%,rgba(49,43,133,.46) 15%,rgba(49,43,133,.18) 20%,transparent 25%),radial-gradient(circle at 31% 27%,#fffffffa 0 5%,#96b2fffa 18%,#4b5fcdbf 58%,#030812fa)}.contact-detail--resume .contact-detail__celestial{background:repeating-linear-gradient(0deg,transparent 0 7px,rgba(105,45,8,.32) 8px 10px),radial-gradient(circle at 31% 27%,#fffffffa 0 5%,#ffcc67fa 18%,#cd6822c7 62%,#230a04fa)}.contact-detail--ats .contact-detail__celestial{background:radial-gradient(circle at 31% 27%,#fffffffa 0 5%,#bee1fffa 18%,#4e89c3b8 58%,#030812fa)}.contact-detail__celestial:before{content:"";position:absolute;inset:9px -7px;border:1px solid rgba(var(--planet-rgb),.54);border-right-color:transparent;border-radius:50%;transform:rotate(var(--planet-orbit));transition:transform .3s ease}.contact-detail__copy{min-width:0}.contact-detail__label{display:block;font-family:JetBrains Mono,monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}.contact-detail__value{display:block;font-family:Space Grotesk,system-ui,sans-serif;font-size:15.5px;font-weight:500;color:var(--text-strong);letter-spacing:.02em;overflow-wrap:anywhere}.contact-detail__action-icon{position:relative;z-index:1;display:grid;place-items:center;justify-self:center;width:22px;height:22px;color:rgba(var(--planet-rgb),.72);font-family:Segoe UI Symbol,"Noto Sans Symbols 2",sans-serif;font-size:19px;line-height:1;text-align:center;filter:drop-shadow(0 0 0 rgba(var(--planet-rgb),0));transition:color .22s ease,filter .22s ease,transform .22s ease}.contact-detail__action-icon--email{font-size:20px}.contact-detail__action-icon--cv{width:20px;height:24px;border:1px solid currentColor;border-radius:3px 7px 3px 3px;font-family:JetBrains Mono,Courier New,monospace;font-size:8px;font-weight:700;letter-spacing:.04em}.contact-detail__action-icon--cv:before{content:"";position:absolute;top:3px;right:2px;width:5px;border-top:1px solid currentColor;transform:rotate(45deg);transform-origin:right center}@media(hover:hover){.contact-detail:hover{border-color:rgba(var(--planet-rgb),.72);transform:translateY(-3px);box-shadow:inset 0 1px #ffffff12,0 12px 30px #00000047,0 0 22px rgba(var(--planet-rgb),.16)}.contact-detail:hover .contact-detail__celestial{transform:scale(1.07) rotate(-4deg);box-shadow:inset -8px -7px 13px #0000007a,0 0 24px rgba(var(--planet-rgb),.5)}.contact-detail:hover .contact-detail__celestial:before{transform:rotate(calc(var(--planet-orbit) + 32deg))}.contact-detail:hover .contact-detail__action-icon{color:rgb(var(--planet-rgb));filter:drop-shadow(0 0 7px rgba(var(--planet-rgb),.55));transform:scale(1.1)}}.contact-loc{font-family:JetBrains Mono,monospace;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mono-faint);line-height:1.6;margin-bottom:20px}.contact-icons{position:relative;isolation:isolate;display:flex;gap:20px;justify-content:center;align-items:center}.contact-icons:before{content:"";position:absolute;z-index:-1;top:50%;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,var(--accent-border),transparent);pointer-events:none}.contact-icons a{display:flex;align-items:center;justify-content:center;width:46px;height:46px;padding:7px;border:1px solid rgba(150,215,255,.18);border-radius:50%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.09),transparent 38%),#0a101ddb;box-shadow:0 0 12px #96d7ff14;transition:transform .2s ease,filter .2s ease,border-color .2s ease,box-shadow .2s ease}.contact-icons picture{display:block;line-height:0}.contact-icons a:hover{transform:translateY(-3px);border-color:var(--accent-border);box-shadow:0 0 18px var(--glow-soft)}.contact-icons img{display:block;width:32px;height:32px;object-fit:contain;filter:brightness(.85) saturate(0);opacity:.7;transition:filter .2s ease,opacity .2s ease}.contact-icons a:hover img{filter:brightness(1) saturate(1);opacity:1}.contact-detail:focus-visible,.contact-icons a:focus-visible,.about-reference a:focus-visible,.exp-reference a:focus-visible,.exp-bullets a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-color:var(--accent-strong);box-shadow:0 0 18px var(--glow-soft)}.contact-detail:focus-visible .contact-detail__celestial{transform:scale(1.06);box-shadow:inset -8px -7px 13px #0000007a,0 0 24px rgba(var(--planet-rgb),.5)}.contact-detail:focus-visible .contact-detail__celestial:before{transform:rotate(calc(var(--planet-orbit) + 32deg))}.contact-detail:focus-visible .contact-detail__action-icon{color:rgb(var(--planet-rgb));filter:drop-shadow(0 0 7px rgba(var(--planet-rgb),.55));transform:scale(1.1)}.contact-icons a:focus-visible img{filter:brightness(1) saturate(1);opacity:1}.scene[data-scrollable=true]:focus-visible,#scenes[data-scrollable=true]:focus-visible{outline:1px solid var(--accent-border);outline-offset:-3px}@media(min-width:1500px)and (max-width:1599.98px),(min-width:1500px)and (max-height:900px){.scene-skills{width:min(1100px,calc(100vw - 2 * var(--scene-inline-gutter)));padding:0 8px 0 4px}.scene-contact{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:var(--scene-safe-top) var(--scene-inline-gutter) var(--scene-safe-bottom);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--accent-border) transparent}.contact-upper,.contact-lower{position:static;transform:none;width:min(640px,90vw)}.contact-upper{flex:0 0 auto;margin-bottom:clamp(116px,18vh,140px)}.contact-portrait{width:clamp(190px,28vh,250px);margin:0 auto}}@media(min-width:1500px)and (max-width:1599.98px){.scene-experience,.scene-experience.scene--active{transform:none}.scene-experience{inset:var(--scene-safe-top) 0 0;overflow-x:clip;overflow-y:auto;overscroll-behavior-y:contain;padding:0 var(--scene-inline-gutter) var(--desktop-content-bottom)}.scene-experience .experience-orbit{width:100%;height:auto;margin-inline:0}.scene-experience .solar-system{position:relative;top:auto;left:auto;width:260px;height:230px;margin:0 auto 24px}.scene-experience .solar-system__halo{width:160px;height:160px;margin:-80px 0 0 -80px}.scene-experience .solar-system__sun{width:78px;height:78px;margin:-39px 0 0 -39px}.scene-experience .solar-system__belt{width:230px;height:230px;margin:-115px 0 0 -115px}.scene-experience .exp-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px clamp(42px,5vw,76px);width:min(1320px,100%);margin:0 auto}.scene-experience .exp-entry{position:relative;inset:auto;width:100%;max-width:none;padding-left:64px;opacity:1;transform:none;text-align:left;transition:none}.scene-experience .exp-entry--delta{grid-column:1 / -1;width:min(100%,1000px);justify-self:center}.scene-experience.scene--active .exp-entry{transform:none}.scene-experience .exp-entry .exp-planet{position:absolute;inset:2px auto auto 0;width:44px;height:44px;transform:none}}.scene-about,.scene-skills,.scene-experience,.scene-contact,#scenes{scrollbar-width:thin;scrollbar-color:var(--accent-border) transparent}.scene-about::-webkit-scrollbar,.scene-skills::-webkit-scrollbar,.scene-experience::-webkit-scrollbar,.scene-contact::-webkit-scrollbar,#scenes::-webkit-scrollbar{width:10px;height:10px}.scene-about::-webkit-scrollbar-track,.scene-skills::-webkit-scrollbar-track,.scene-experience::-webkit-scrollbar-track,.scene-contact::-webkit-scrollbar-track,#scenes::-webkit-scrollbar-track{background:transparent}.scene-about::-webkit-scrollbar-thumb,.scene-skills::-webkit-scrollbar-thumb,.scene-experience::-webkit-scrollbar-thumb,.scene-contact::-webkit-scrollbar-thumb,#scenes::-webkit-scrollbar-thumb{background:var(--accent-border);background-clip:padding-box;border:2px solid transparent;border-radius:999px}.scene-about::-webkit-scrollbar-thumb:hover,.scene-skills::-webkit-scrollbar-thumb:hover,.scene-experience::-webkit-scrollbar-thumb:hover,.scene-contact::-webkit-scrollbar-thumb:hover,#scenes::-webkit-scrollbar-thumb:hover{background:var(--accent);background-clip:padding-box}.scene-about .about-reference{padding:0 0 0 14px;margin:2px 0 14px}.scene-about .about-reference p{font-size:14px;line-height:1.6;color:var(--text-base);margin:0}.scene-about .about-reference strong{color:var(--text-strong);font-weight:600}.scene-about .about-reference__quote{margin:8px 0;font-size:14px;line-height:1.55;font-style:italic;color:var(--text-muted)}.scene-about .about-reference__link{margin-top:8px}.about-reference a,.exp-reference a{color:var(--accent);text-decoration:none;border-bottom:1px dotted var(--accent-border);transition:color .2s ease,border-color .2s ease}.about-reference a:hover,.exp-reference a:hover{color:var(--accent-strong);border-bottom-color:var(--accent-strong)}.exp-entry .exp-reference{font-size:13.5px;margin:2px 0 0}@media(max-width:1499.98px){:root{--layout-docked: 1;--experience-orbital: 0;--scene-safe-bottom: calc(var(--dock-content-reserve) + var(--safe-area-bottom));--flow-inline-gutter: 18px;--flow-scene-bottom: 32px}html,body{overflow:hidden;height:100%;height:100dvh}canvas#c{position:fixed;inset:0;z-index:0}#menu{position:fixed;inset:auto 0 0;height:calc(var(--dock-menu-height) + var(--safe-area-bottom));padding:0 calc(8px + var(--safe-area-right)) var(--safe-area-bottom) calc(8px + var(--safe-area-left));display:flex;align-items:center;justify-content:space-around;background:#060810f5;z-index:30;pointer-events:auto}.menu-btn{position:static!important;left:auto!important;top:auto!important;transform:none!important;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 6px;font-size:14.5px;letter-spacing:.06em;flex:1 1 auto;text-align:center;min-width:0}#scenes{position:fixed;inset:0 0 var(--scene-safe-bottom) 0;z-index:5;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:var(--accent-border) transparent;-webkit-overflow-scrolling:touch;pointer-events:auto}.scene{position:relative;inset:auto;width:100%;max-width:none;max-height:none;transform:none!important;overflow:visible;display:none;opacity:1;visibility:visible;pointer-events:auto;transition:none;padding:var(--flow-scene-top) calc(var(--flow-inline-gutter) + var(--safe-area-right)) var(--flow-scene-bottom) calc(var(--flow-inline-gutter) + var(--safe-area-left));box-sizing:border-box}.scene.scene--active{display:block}.scene-reading__inner{min-height:0;justify-content:flex-start}.scene-about{text-align:left}.scene-about .about-intro,.scene-about .tagline,.scene-about .bio,.scene-about .closing{opacity:0;transition:opacity .7s ease}.scene-about.mobile-revealed .about-intro,.scene-about.mobile-revealed .tagline,.scene-about.mobile-revealed .bio,.scene-about.mobile-revealed .closing{opacity:1}.scene-about .about-intro{font-size:clamp(31.5px,8.5vw,45.5px);margin-bottom:10px}.scene-about .tagline{font-size:14px;margin-bottom:22px}.scene-about .bio p{font-size:15.5px;line-height:1.6}.about-extras{grid-template-columns:1fr;gap:18px;margin-top:22px}.scene-experience{inset:auto;transform:none}.scene-experience.scene--active{transform:none}.scene-experience .solar-system{--solar-mobile-size: min(260px, 72vw, 46vh);--solar-mobile-size: min(260px, 72vw, 46dvh);position:relative;top:auto;left:auto;width:var(--solar-mobile-size);height:var(--solar-mobile-size);margin:0 auto 28px}.scene-experience .solar-system__halo{width:61.54%;height:61.54%;margin:-30.77% 0 0 -30.77%}.scene-experience .solar-system__sun{width:30%;height:30%;margin:-15% 0 0 -15%}.scene-experience .solar-system__belt{width:88.46%;height:88.46%;margin:-44.23% 0 0 -44.23%}.exp-list{display:flex;flex-direction:column;gap:32px;width:100%}.exp-entry{position:relative;inset:auto!important;max-width:none!important;width:100%;transform:none!important;opacity:1;transition:none;padding-left:56px;text-align:left!important}.scene-experience.scene--active .exp-entry{transform:none!important}.exp-entry .exp-planet,.exp-entry--delta .exp-planet,.exp-entry--beta .exp-planet,.exp-entry--epsilon .exp-planet,.exp-entry--alpha .exp-planet,.exp-entry--gamma .exp-planet{position:absolute;inset:2px auto auto 0;width:40px;height:40px;transform:none}.exp-entry--alpha{text-align:left}.scene-skills{width:100%;max-width:none}.scene-skills .scene-reading__inner{gap:18px}.skills-intro p{font-size:14px}.skill-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px 18px}.skill-cat h3{font-size:11.5px}.skill-list li{font-size:12.5px}.scene-contact{inset:auto;text-align:center}.contact-upper,.contact-lower{position:relative;inset:auto;transform:none;width:100%;max-width:520px;margin:0 auto}.contact-upper{margin-bottom:24px}.contact-portrait{width:min(220px,60vw,40vh);width:min(220px,60vw,40dvh);margin:0 auto 18px}.contact-details{flex-direction:column;align-items:stretch;gap:10px}.contact-detail{width:100%;min-width:0;padding:12px 18px}.contact-icons{gap:14px}.contact-icons img{width:28px;height:28px}.scene-experience,.scene-skills,.scene-contact{opacity:0;transition:opacity .35s ease}.scene-experience.scene--active,.scene-skills.scene--active,.scene-contact.scene--active{opacity:1}}.lang-picker{position:fixed;top:calc(8px + var(--safe-area-top));right:calc(8px + var(--safe-area-right));z-index:40;width:44px;height:44px;display:grid}.lang-picker a{grid-column:1;grid-row:1;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 0 var(--glow-soft);transition:box-shadow .2s ease}.lang-picker picture{display:grid;width:100%;height:100%;place-items:center;line-height:0}.lang-picker a img{display:block;width:18px;height:18px;object-fit:cover;border-radius:50%;outline:1px solid var(--accent-border);transition:transform .2s ease,outline-color .2s ease}.lang-picker a:hover{box-shadow:0 0 12px var(--glow-soft)}.lang-picker a:hover img{transform:scale(1.08);outline-color:var(--accent)}.lang-picker a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lang-picker a:focus-visible img{outline-color:var(--accent-strong)}html[lang=en] .lang-picker a[data-lang=en],html[lang=de] .lang-picker a[data-lang=de],.lang-picker a.lang-active{display:none}@media(max-width:1499.98px){.lang-picker{top:calc(4px + var(--safe-area-top));right:calc(4px + var(--safe-area-right))}}@media(min-width:900px)and (max-width:1499.98px){:root{--flow-inline-gutter: clamp(28px, 4vw, 60px);--flow-scene-bottom: 56px}.scene-about{width:min(1080px,100%);margin-inline:auto}.scene-about .bio>p{max-width:860px}.about-extras{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 34px}.scene-skills{width:min(1240px,100%);margin-inline:auto;gap:14px}.skill-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 22px}.lvl{font-size:18px;padding:0}.scene-experience .exp-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px clamp(34px,5vw,64px);width:min(1180px,100%);margin:0 auto}.scene-experience .exp-entry--delta{grid-column:1 / -1;width:min(100%,940px);justify-self:center}.scene-contact.scene--active{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,520px);justify-content:center;align-items:center;gap:clamp(32px,5vw,64px)}.scene-contact .contact-upper,.scene-contact .contact-lower{margin:0}.scene-contact .contact-portrait{width:min(260px,100%);margin:0 auto}.scene-contact .contact-details{flex-direction:row;align-items:stretch}.scene-contact .contact-detail{flex:1 1 140px;width:auto;min-width:140px}}@media(max-width:560px){:root{--flow-inline-gutter: 16px;--flow-scene-bottom: 24px}.menu-btn{padding-inline:4px;font-size:13px;letter-spacing:.035em}.scene-about .about-intro{font-size:clamp(31.5px,9vw,42px)}.contact-portrait{width:min(180px,58vw,40vh);width:min(180px,58vw,40dvh)}.contact-details{grid-template-columns:1fr;gap:10px}.contact-details:before{inset:24px auto 24px 34px;width:1px;border:0;border-left:1px dashed rgba(150,215,255,.15);border-radius:0;transform:none}.contact-icons{gap:8px}.contact-detail{min-width:0;min-height:82px;padding:11px 14px}}@media(max-width:899.98px)and (max-height:500px){.scene-experience .solar-system{--solar-mobile-size: min(180px, 60vw, 30vh);--solar-mobile-size: min(180px, 60vw, 30dvh);margin-bottom:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important}.scene-experience,.scene-experience.scene--active,.scene-experience .exp-entry,.scene-experience.scene--active .exp-entry,.contact-portrait,.contact-detail,.contact-detail:hover .contact-detail__celestial,.contact-detail:focus-visible .contact-detail__celestial,.contact-detail:hover .contact-detail__action-icon,.contact-detail:focus-visible .contact-detail__action-icon,.contact-icons a,.lang-picker a:hover img{transform:none!important}.contact-detail:hover .contact-detail__celestial:before,.contact-detail:focus-visible .contact-detail__celestial:before{transform:rotate(var(--planet-orbit))!important}.scene-about .about-intro,.scene-about .tagline,.scene-about .bio,.scene-about .closing{opacity:1!important}}html.bootstrap-fallback #menu{position:fixed;inset:0 0 auto;min-height:60px;padding:8px 64px 8px 12px;display:flex;align-items:center;justify-content:center;gap:8px;background:#060810f7;z-index:30}html.bootstrap-fallback .menu-btn{position:static!important;transform:none!important;min-height:44px;color:var(--text-base)}html.bootstrap-fallback .scene{z-index:5}@media(forced-colors:active){.menu-btn:focus-visible,.lang-picker a:focus-visible,.contact-detail:focus-visible,.contact-icons a:focus-visible,.about-reference a:focus-visible,.exp-reference a:focus-visible,.exp-bullets a:focus-visible,.scene[data-scrollable=true]:focus-visible,#scenes[data-scrollable=true]:focus-visible{outline:2px solid CanvasText;box-shadow:none}.contact-detail{border-color:ButtonText;background:Canvas}.contact-detail__celestial{border:1px solid ButtonText;background:Canvas;box-shadow:none}.contact-detail__celestial:before{border-color:ButtonText}}
