@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--ink:#edf4ff;--muted:#a1aac0;--blue:#62a9ff;--violet:#9f70ff;--glass:#0d112a8a;--line:#bedaff33;color:var(--ink);background:#050611;font-family:Space Grotesk,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#050611;margin:0}button,input,textarea{font:inherit}button{color:inherit;cursor:pointer}main{background:radial-gradient(at 75% 5%,#263770 0%,#0000 27%),radial-gradient(at 25% 55%,#251c55 0%,#0000 30%),#050611;position:relative;overflow:hidden}.star-canvas{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.scroll-orbit{z-index:0;pointer-events:none;border:1px solid #93c0ff1f;border-radius:50%;width:55vw;min-width:580px;height:55vw;min-height:580px;transition:transform .1s linear;position:fixed;top:20%;left:53%}.scroll-orbit:after{content:"";background:#92c6ff;border-radius:50%;width:10px;height:10px;display:block;transform:translate(26%,8%);box-shadow:0 0 20px 6px #4088ff}.navbar{z-index:5;border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0a0d1e8f;border-radius:18px;justify-content:space-between;align-items:center;height:66px;padding:0 10px 0 18px;display:flex;position:fixed;top:22px;left:clamp(18px,4vw,72px);right:clamp(18px,4vw,72px);box-shadow:0 12px 45px #0005}.brand{background:0 0;border:0;align-items:center;gap:9px;font-size:17px;font-weight:700;display:flex}.brand span{background:linear-gradient(135deg,#62baff,#6d52e8);border-radius:9px;place-items:center;width:31px;height:31px;font-size:11px;display:grid}nav,.nav-tools{align-self:stretch;align-items:center;gap:8px;display:flex}nav button,.nav-contact,.ghost-button{color:#d7def0;background:0 0;border:1px solid #0000;border-radius:14px;padding:0 18px;transition:all .25s}nav button,.nav-contact{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);height:64px}nav button:hover,.ghost-button:hover,nav button.selected,.nav-contact.selected{background:linear-gradient(115deg,#659eff20,#946bff20);border-color:#87b9ff99;transform:translateY(-1px);box-shadow:inset 0 0 18px #9dc8ff12,0 0 0 3px #6d9cff18,0 0 18px #79adff1f}.nav-contact{color:#fff;background:#6aaaff1a;border-color:#76b3ff80}.nav-contact:hover,.primary-button:hover{transform:translateY(-3px);box-shadow:0 10px 28px #3988ff55}.language-toggle{--toggle:#40cf83;border:1px solid color-mix(in srgb,var(--toggle) 65%,#a4c1fa);color:#9ca8c2;letter-spacing:.05em;background:#080b1d8c;border-radius:999px;grid-template-columns:1fr 1fr;align-self:center;align-items:center;width:66px;height:34px;padding:3px;font:10px DM Mono;transition:all .25s;display:grid;position:relative;overflow:hidden}.language-toggle:hover{box-shadow:0 0 16px color-mix(in srgb,var(--toggle) 42%,transparent)}.language-toggle span{z-index:1;text-align:center;place-items:center;height:26px;transition:color .2s;display:grid;position:relative}.language-toggle i{z-index:0;background:var(--toggle);width:29px;height:26px;box-shadow:0 0 14px color-mix(in srgb,var(--toggle) 80%,transparent);border-radius:50%;transition:transform .3s cubic-bezier(.2,.85,.3,1.15),background .25s;position:absolute;top:3px;left:3px}.language-toggle.pt span:first-child,.language-toggle.en span:last-of-type{color:#07101b;font-weight:700}.language-toggle.en{--toggle:#5b9fff}.language-toggle.en i{transform:translate(31px)}.section{z-index:1;min-height:100vh;padding:150px clamp(24px,7vw,136px) 80px;display:flex;position:relative}.scene-placeholder{display:none}.scene-placeholder:before{content:"";background:linear-gradient(140deg,#6a8adb4c,#32237422);border:1px solid #a4b8ff44;border-radius:47% 53% 46% 54%;width:420px;height:420px;position:absolute;top:18%;right:8%;transform:rotate(22deg);box-shadow:inset 0 0 70px #9cbfff23,0 0 90px #4f5eff22}.scene-placeholder span{letter-spacing:.16em;color:#c3d0ff99;border:1px dashed #9cb8ff66;padding:10px 13px;font:11px DM Mono;position:absolute;bottom:8%;right:6%}.scene-background{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.scene-background img{object-fit:cover;opacity:.1;filter:brightness(.7)saturate(1.2);width:100%;height:100%}.projects-scene:after{content:"";background:radial-gradient(circle at 50% 40%,#0000 0%,#050611cc 75%),linear-gradient(#050611 0%,#0000 35%,#050611 100%);position:absolute;inset:0}.projects>:not(.scene-background){z-index:1;position:relative}.scene-background:after,.hero-gif:before{content:"";z-index:2;pointer-events:none;background:linear-gradient(#050611 0%,#0000 18% 82%,#050611 100%);position:absolute;inset:0}.scene-background img,.hero-gif img{z-index:1;position:relative}.hero{align-items:center}.hero-copy{z-index:1;max-width:880px;position:relative}.hero-gif{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-gif img{object-fit:cover;opacity:.35;filter:brightness(.75)saturate(1.2);width:100%;height:100%}.hero-gif:after{content:"";background:radial-gradient(circle at 70% 40%,#0000 0%,#050611aa 65%),linear-gradient(90deg,#050611 0%,#0000 45%,#050611 100%);position:absolute;inset:0}.eyebrow{letter-spacing:.14em;color:#81b6ff;margin:0 0 23px;font:12px DM Mono,monospace}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.065em;margin-bottom:26px;font-size:clamp(46px,6vw,94px);line-height:.98}h1 em{color:#0000;background:linear-gradient(100deg,#91c9ff,#fc7f60);-webkit-background-clip:text;background-clip:text;font-style:normal}h1 span,h2 span{color:#8d79ff}.lead{max-width:575px;color:var(--muted);font-size:clamp(16px,1.5vw,21px);line-height:1.55}.hero-actions{gap:12px;margin-top:34px;display:flex}.primary-button{background:linear-gradient(135deg,#40cf83,#050611);border-radius:12px;padding:14px 19px;font-weight:600;transition:all .25s}.primary-button b{margin-left:12px;font-size:17px}.ghost-button{border-color:var(--line)}.scroll-hint{letter-spacing:.15em;color:#aab8d4;flex-direction:column;align-items:center;gap:8px;font:10px DM Mono;display:flex;position:absolute;bottom:44px;left:clamp(24px,7vw,136px)}.scroll-hint span{color:#81b6ff;font-size:20px}.skills{align-items:flex-start;min-height:105vh}.section-heading{z-index:1;max-width:560px;position:relative}h2{letter-spacing:-.06em;margin-bottom:18px;font-size:clamp(42px,5.3vw,76px);line-height:1}.section-heading>p:last-child,.contact-copy>p:last-child{color:var(--muted);font-size:17px;line-height:1.6}.constellation-wrap{z-index:2;width:min(62vw,830px);height:min(65vw,680px);min-height:500px;position:absolute;bottom:10%;right:5%}.constellation-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.constellation-lines path{fill:none;stroke:#aeb4ff55;stroke-width:.22px;stroke-dasharray:.8 .8}.skill-star{background:0 0;border:0;place-items:center;gap:6px;transition:all .25s;display:grid;position:absolute;transform:translate(-50%,-50%)}.skill-star span{width:46px;height:46px;color:var(--star);background:color-mix(in srgb, var(--star) 19%, #0a0d25);border:1px solid var(--star);box-shadow:0 0 0 5px color-mix(in srgb, var(--star) 11%, transparent), 0 0 22px color-mix(in srgb, var(--star) 50%, transparent);border-radius:50%;place-items:center;display:grid}.skill-star img{object-fit:contain;width:29px;height:29px}.skill-star small{color:#e1e8ff;white-space:nowrap;opacity:.75;font:10px DM Mono}.skill-star.featured span{width:61px;height:61px;box-shadow:0 0 0 7px color-mix(in srgb, var(--star) 8%, transparent), 0 0 25px color-mix(in srgb, var(--star) 36%, transparent);border-width:1.5px;animation:3.8s ease-in-out infinite constellation-pulse}.skill-star.featured img{width:39px;height:39px}.skill-star.featured small{color:#fff;font-size:11px}.skill-star:hover,.skill-star.active{transform:translate(-50%,-50%)scale(1.15)}.skill-star.active span{box-shadow:0 0 0 9px color-mix(in srgb, var(--star) 16%, transparent), 0 0 35px var(--star)}.skill-card{z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform-origin:0 0;background:#12152bd9;border:1px solid #c5cbff44;border-radius:15px;width:205px;padding:34px 17px 17px;animation:.34s cubic-bezier(.2,.88,.28,1.28) mac-window-in;position:absolute;box-shadow:0 15px 36px #0006}.window-controls{gap:5px;display:flex;position:absolute;top:13px;left:15px}.window-controls i{background:#ff5e57;border-radius:50%;width:8px;height:8px}.window-controls i:nth-child(2){background:#febc2e}.window-controls i:nth-child(3){background:#28c840}.skill-card>span,.skill-card>strong{color:#a9b5d0;letter-spacing:.12em;font:10px DM Mono}.skill-title{color:var(--star);align-items:center;gap:9px;margin:7px 0 12px;display:flex}.skill-title img,.skill-title svg{object-fit:contain;flex:none;width:32px;height:32px}.skill-card h3{color:#f1f5ff;margin:0;font-size:19px}.level{gap:4px;margin-bottom:10px;display:flex}.level i{background:#fff2;border-radius:5px;width:21px;height:5px}.level i.filled{background:var(--star);box-shadow:0 0 8px var(--star)}.skill-card strong{color:#fff;letter-spacing:0;font-size:20px}.unrated{color:#aeb9d1;margin:0;font-size:13px;line-height:1.4}@keyframes constellation-pulse{0%,to{box-shadow:0 0 0 7px color-mix(in srgb, var(--star) 6%, transparent), 0 0 21px color-mix(in srgb, var(--star) 24%, transparent)}50%{box-shadow:0 0 0 13px color-mix(in srgb, var(--star) 2%, transparent), 0 0 33px color-mix(in srgb, var(--star) 42%, transparent)}}@keyframes mac-window-in{0%{opacity:0;filter:blur(8px);transform:scale(.15)}70%{opacity:1;filter:blur();transform:scale(1.04)}to{transform:scale(1)}}.projects{padding-top:130px;display:block}.project-grid{z-index:1;grid-template-columns:repeat(3,1fr);gap:19px;margin-top:48px;display:grid;position:relative}.project-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#10132999;border-radius:19px;transition:all .3s;overflow:hidden}.project-card:hover{border-color:#a6c6ff99;transform:translateY(-8px);box-shadow:0 22px 55px #0007}.project-image{text-align:center;border-bottom:1px solid var(--line);color:#bcf;letter-spacing:.12em;background:linear-gradient(145deg,#293674,#11162d 48%,#34215d);place-items:center;height:260px;font:11px/1.8 DM Mono;display:grid;position:relative}.project-image:after{content:"";border:1px solid #d6e1ff55;border-radius:50%;width:115px;height:115px;position:absolute;box-shadow:inset 0 0 25px #a4b7ff33}.project-image b{color:#fff8;font:14px DM Mono;position:absolute;top:16px;right:18px}.project-info{padding:21px}.project-info p{color:#7faef9;letter-spacing:.11em;margin-bottom:9px;font:10px DM Mono}.project-info h3{margin-bottom:8px;font-size:24px}.project-info>span{color:#aab3ca;font-size:14px;line-height:1.45}.project-bottom{justify-content:space-between;align-items:center;margin-top:18px;display:flex}.project-info a{background:linear-gradient(90deg,#fff 0%,#ffd76a 100%);color:#0000;-webkit-background-clip:text;background-clip:text;border:0;align-items:center;gap:6px;padding:0;font-weight:700;text-decoration:none;transition:all .25s;display:inline-flex}.project-info a:hover{background:linear-gradient(90deg,#ffd76a 0%,#fff 100%);-webkit-background-clip:text;background-clip:text;transform:translate(3px)}.project-info a b{font-size:17px}.project-info b{color:#80b9ff;margin-left:6px}.project-techs{align-items:center;gap:7px;display:flex}.project-techs img{object-fit:contain;width:20px;height:20px}.project-image{width:100%;height:200px;overflow: ;border-bottom:1px solid var(--line);background:linear-gradient(145deg,#293674,#11162d 48%,#34215d);justify-content:center;align-items:center;display:flex;position:relative}.project-image img{object-fit:cover;z-index:1;width:100%;height:100%;transition:transform .45s;display:block;position:relative}.project-card:hover .project-image img{transform:scale(1.05)}.project-image:after{display:none}.contact{background:radial-gradient(at 72%,#412d7b55,#0000 35%);align-items:center;gap:10vw;min-height:88vh}.contact-copy{z-index:1;max-width:560px;position:relative}.contact-form{z-index:1;border:1px solid var(--line);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#101329b8;border-radius:20px;gap:14px;width:min(460px,100%);padding:26px;display:grid;position:relative}.contact-form label{color:#c7d2ee;gap:7px;font-size:13px;display:grid}.contact-form input,.contact-form textarea{color:#f3f6ff;resize:vertical;background:#06091780;border:1px solid #a0b9e638;border-radius:9px;outline:none;padding:11px;transition:all .2s}.contact-form input:focus,.contact-form textarea:focus{border-color:#7eb5ff;box-shadow:0 0 0 3px #598dff22}.contact-form small{color:#8994ac;text-align:center}footer{z-index:1;border-top:1px solid var(--line);color:#9da8bf;justify-content:space-between;align-items:center;gap:20px;min-height:105px;padding:24px clamp(24px,7vw,136px);font-size:13px;display:flex;position:relative}footer .brand{color:#f4f6ff}footer a{color:#cdd9f4;align-items:center;gap:6px;text-decoration:none;transition:all .2s;display:flex}footer a svg{flex-shrink:0;width:20px;height:20px}footer p{margin:0}footer div{gap:18px;display:flex}footer a:hover{color:#83b9ff}.modal-backdrop{z-index:10;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#06071366;place-items:center;padding:25px;animation:.2s fade;display:grid;position:fixed;inset:0}.about-modal{scrollbar-width:none;-ms-overflow-style:none;background:linear-gradient(145deg,#29244b66,#0e122a66);border:1px solid #bfceff55;border-radius:25px;width:min(640px,100%);max-height:90vh;padding:clamp(52px,5vw,65px) clamp(25px,4vw,45px) clamp(25px,4vw,45px);animation:.42s cubic-bezier(.2,.88,.28,1.28) mac-window-in;position:relative;overflow:auto;box-shadow:0 30px 90px #000b}.about-modal::-webkit-scrollbar{display:none}.modal-close{background:#ffffff0c;border:1px solid #bdcaff55;border-radius:50%;width:34px;height:34px;font-size:25px;line-height:1;position:absolute;top:16px;right:18px}.about-modal h2{margin-bottom:23px}.about-modal>p:not(.eyebrow){color:#d0d7ea;line-height:1.6}.about-code{color:#abb7d7;background:#070a1b80;border-left:2px solid #78b6ff;margin:0 0 23px;padding:13px 15px;font:12px/1.75 DM Mono}.about-code span{color:#be86ff}.about-code i{color:#86c9ff;font-style:normal}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (width<=850px){.navbar{height:58px;top:12px;left:12px;right:12px}nav{display:none}.nav-contact{height:54px;padding:8px 10px;font-size:12px}.section{padding:120px 24px 70px}.hero{min-height:760px}.constellation-wrap{width:100%;height:530px;min-height:0;margin:10px auto 0;position:relative;bottom:auto;right:auto}.skills{display:block}.skill-card{top:39%;left:37%}.project-grid{grid-template-columns:1fr}.project-image{height:220px}.contact{flex-direction:column;align-items:flex-start;gap:25px}footer{flex-direction:column;align-items:flex-start}}@media (width<=450px){.navbar .brand{font-size:14px}.navbar .brand span{width:26px;height:26px}.nav-contact{font-size:0}.nav-contact b{margin:0;font-size:17px}h1{font-size:45px}.hero-actions{flex-direction:column;align-items:flex-start}.scene-placeholder:before{right:-30%}.skill-star span{width:36px;height:36px}.skill-star small{font-size:8px}.skill-card{width:145px;padding:12px}.skill-card h3{font-size:16px}}.constellation-lines line{stroke:#aeb4ff70;stroke-width:.24px;stroke-dasharray:.9 .9;animation:5s linear infinite constellation-line}@keyframes constellation-line{to{stroke-dashoffset:-8px}}.navbar{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffffff0d;border-radius:50px;transition:background .35s,border-color .35s,box-shadow .35s,-webkit-backdrop-filter .35s,backdrop-filter .35s}nav button,.nav-contact{border-radius:999px}.brand-logo{width:70px;height:70px}.navbar.scrolled{box-shadow:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:0 0;border-color:#0000}.navbar.scrolled nav button,.navbar.scrolled .nav-contact{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#7a291b38;border-color:#b4cdff1c}.navbar.scrolled .brand{opacity:.55;transition:opacity .25s}.navbar.scrolled:hover .brand{opacity:1}.accessibility{z-index:8;justify-items:end;gap:11px;display:grid;position:fixed;bottom:24px;right:24px}.accessibility-button{color:#91c3ff;-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);background:#070b1bb8;border:1px solid #b7d5ff66;border-radius:50%;place-items:center;width:53px;height:53px;transition:all .25s;display:grid;box-shadow:0 10px 28px #0008}.accessibility-button:hover{color:#fff;background:#478fff55;border-color:#9dcdff;transform:scale(1.08)}.accessibility-button svg{fill:currentColor;width:25px;height:25px}.accessibility-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0a0e21db;border:1px solid #c0d6ff55;border-radius:15px;width:225px;padding:15px;animation:.25s ease-out mac-window-in;box-shadow:0 18px 45px #0009}.accessibility-panel strong{margin-bottom:11px;font-size:14px;display:block}.accessibility-panel label{color:#d8e2f5;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;font-size:13px;display:flex}.accessibility-panel input{appearance:none;cursor:pointer;background:#ffffff1a;border:1px solid #9ab7e466;border-radius:99px;width:32px;height:18px;margin:0}.accessibility-panel input:checked{background:#579cff;border-color:#79b6ff}.accessibility-panel input:checked:after{transform:translate(14px)}.accessibility-panel input:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;margin:2px;transition:all .2s;display:block}.high-contrast{--ink:#fff;--muted:#e1e6f1;background:#000}.high-contrast .scene-placeholder,.high-contrast .star-canvas,.high-contrast .scroll-orbit{opacity:.08}.high-contrast .section,.high-contrast .project-card,.high-contrast .contact-form{background-color:#000!important}.high-contrast a,.high-contrast h1 span,.high-contrast h2 span{color:#8bc5ff}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.loader{z-index:9999;background:radial-gradient(#0d0a24 0%,#060414 60%,#020109 100%);flex-direction:column;justify-content:center;align-items:center;animation:.8s 3.6s forwards loaderFadeOut;display:flex;position:fixed;inset:0;overflow:hidden}.particles{z-index:1;background-image:radial-gradient(1.5px 1.5px at 10% 20%,#9fd6ff,#0000),radial-gradient(1.5px 1.5px at 85% 15%,#c9a8ff,#0000),radial-gradient(1px 1px at 20% 80%,#9fd6ff,#0000),radial-gradient(1.5px 1.5px at 90% 75%,#ff9fe0,#0000),radial-gradient(1px 1px at 50% 90%,#9fd6ff,#0000),radial-gradient(1.5px 1.5px at 5% 55%,#c9a8ff,#0000),radial-gradient(1px 1px at 70% 10%,#9fd6ff,#0000),radial-gradient(1.5px 1.5px at 95% 45%,#ff9fe0,#0000);background-size:100% 100%;animation:3s ease-in infinite pullIn;position:absolute;inset:0}@keyframes pullIn{0%{opacity:0;transform:scale(1.6)}15%{opacity:1}to{opacity:0;transform:scale(.05)}}.portal{z-index:3;justify-content:center;align-items:center;width:220px;height:220px;display:flex;position:relative}.disk{border-radius:50%;position:absolute;inset:0}.disk1{filter:blur(1px);background:conic-gradient(#0000 0deg,#4fd1ff 60deg,#0000 140deg,#8b5cf6 220deg,#0000 300deg,#4fd1ff 360deg);animation:3.2s linear infinite spin;-webkit-mask:radial-gradient(circle,#0000 58%,#000 60% 100%);mask:radial-gradient(circle,#0000 58%,#000 60% 100%)}.disk2{opacity:.85;background:conic-gradient(from 90deg,#0000 0deg,#ff5ec4 80deg,#0000 160deg,#4fd1ff 260deg,#0000 340deg);animation:2s linear infinite reverse spin;inset:25px;-webkit-mask:radial-gradient(circle,#0000 55%,#000 58% 100%);mask:radial-gradient(circle,#0000 55%,#000 58% 100%)}.disk3{border:1px solid #9fd6ff59;animation:5s linear infinite spin;inset:48px}.core{background:radial-gradient(circle,#1a1440 0%,#060414 70%);border-radius:50%;animation:2.4s ease-in-out infinite pulseCore;position:absolute;inset:78px;box-shadow:0 0 40px 8px #4fd1ff59,inset 0 0 20px #8b5cf680}.loader-logo{object-fit:contain;z-index:4;filter:drop-shadow(0 0 18px #6bb0ff);width:56px;height:56px;animation:3s ease-in-out infinite logoFloat;position:relative}.loading-container{z-index:3;align-items:center;margin-top:50px;display:flex}.loading-text{letter-spacing:5px;text-transform:uppercase;background:linear-gradient(90deg,#6eb8ff,#b98cff,#ff8cd9,#6eb8ff) 0 0/300% 100%;color:#0000;-webkit-background-clip:text;background-clip:text;font:700 12px DM Mono,monospace;animation:4s ease-in-out infinite textFlow}.cursor{color:#6eb8ff;margin-left:4px;font-size:18px;animation:.55s step-end infinite blink}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulseCore{0%,to{box-shadow:0 0 40px 8px #4fd1ff59,inset 0 0 20px #8b5cf680}50%{box-shadow:0 0 60px 14px #8b5cf680,inset 0 0 28px #4fd1ff99}}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes textFlow{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes blink{50%{opacity:0}}@keyframes loaderFadeOut{to{opacity:0;visibility:hidden}}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important}}
