@import"https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700;800&family=Outfit:wght@300;400;500;600&display=swap";:root{--bg: #f7f3ec;--bg-layer-1: rgba(15, 158, 140, .19);--bg-layer-2: rgba(242, 109, 91, .24);--bg-layer-3: rgba(244, 189, 82, .2);--surface: rgba(255, 255, 255, .65);--surface-strong: rgba(255, 255, 255, .85);--text: #1f1a18;--muted: #5d554f;--line: rgba(41, 26, 18, .12);--nav-bg-top: rgba(247, 243, 236, .93);--nav-bg-bottom: rgba(247, 243, 236, .72);--menu-bg-top: rgba(247, 243, 236, .98);--menu-bg-bottom: rgba(247, 243, 236, .96);--accent: #0f9e8c;--accent-2: #f26d5b;--accent-3: #f4bd52;--radius: 18px;--shadow: 0 18px 38px rgba(46, 31, 23, .13);--container: min(1120px, 92vw)}[data-theme=dark]{--bg: #0f1518;--bg-layer-1: rgba(36, 203, 177, .14);--bg-layer-2: rgba(242, 109, 91, .11);--bg-layer-3: rgba(244, 189, 82, .1);--surface: rgba(20, 30, 36, .62);--surface-strong: rgba(24, 36, 43, .82);--text: #e8f1f5;--muted: #a5bcc6;--line: rgba(190, 224, 236, .18);--nav-bg-top: rgba(12, 20, 24, .92);--nav-bg-bottom: rgba(12, 20, 24, .78);--menu-bg-top: rgba(12, 20, 24, .98);--menu-bg-bottom: rgba(12, 20, 24, .95);--accent: #2ccbb1;--accent-2: #ff8a75;--accent-3: #f4bd52;--shadow: 0 18px 38px rgba(0, 0, 0, .34)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Outfit,sans-serif;color:var(--text);background:radial-gradient(circle at 8% 12%,var(--bg-layer-1),transparent 34%),radial-gradient(circle at 91% 8%,var(--bg-layer-2),transparent 34%),radial-gradient(circle at 58% 68%,var(--bg-layer-3),transparent 42%),var(--bg);min-width:320px}h1,h2,h3,h4,h5,h6{margin:0;line-height:1.1;font-family:Sora,sans-serif}p{margin:0;line-height:1.65}a{color:inherit;text-decoration:none}ul{margin:0;padding:0;list-style:none}img,svg{display:block;max-width:100%}#root{isolation:isolate}.container{width:var(--container);margin-inline:auto}.site-shell{position:relative;overflow:clip}.floating-orb{position:fixed;width:16rem;aspect-ratio:1;border-radius:999px;filter:blur(10px);pointer-events:none;z-index:-1;opacity:.45}.floating-orb.one{top:-5rem;left:-3rem;background:linear-gradient(130deg,var(--accent),transparent 70%);animation:drift 12s ease-in-out infinite}.floating-orb.two{bottom:4rem;right:-3rem;background:linear-gradient(130deg,var(--accent-2),transparent 72%);animation:drift 14s ease-in-out infinite reverse}.nav-wrap{position:sticky;top:0;z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(180deg,var(--nav-bg-top),var(--nav-bg-bottom));border-bottom:1px solid var(--line)}.nav{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:1rem;position:relative}.brand{display:inline-flex;align-items:center;gap:.6rem;font-family:Sora,sans-serif;font-weight:700;letter-spacing:.02em;flex-shrink:0}.brand-dot{width:.75rem;aspect-ratio:1;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 0 0 7px #0f9e8c26}.nav-links{display:none;gap:1.2rem;color:var(--muted)}.nav-links a{padding:.5rem .7rem;border-radius:999px;transition:color .22s ease,background-color .22s ease}.nav-links a:hover{color:var(--text);background:#0f9e8c21}.nav-actions{display:flex;align-items:center;gap:.6rem}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:2.35rem;min-width:2.35rem;padding-inline:.72rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text);font-weight:600;cursor:pointer;transition:transform .24s ease,background-color .24s ease,border-color .24s ease}.theme-toggle:hover{transform:translateY(-1px);background:#0f9e8c1f;border-color:#0f9e8c8c}.theme-toggle svg{width:1.05rem;height:1.05rem}.theme-toggle-desktop{display:none;margin-left:.45rem}.nav-theme-mobile{display:none}.nav-language-desktop{display:none;align-items:center;gap:.35rem}.nav-language-mobile{display:flex;align-items:center;gap:.5rem;margin-bottom:.65rem}.lang-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-height:2.25rem;min-width:2.25rem;padding:.35rem .55rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;transition:transform .2s ease,border-color .2s ease,background-color .2s ease}.lang-toggle:hover{transform:translateY(-1px);border-color:#0f9e8c8c;background:#0f9e8c1f}.lang-toggle.active{border-color:#0f9e8c8c;box-shadow:0 0 0 2px #0f9e8c26}.theme-toggle-mobile{width:100%;justify-content:flex-start;gap:.55rem;padding:.62rem .92rem}.nav-hamburger{display:flex;flex-direction:column;gap:.35rem;background:none;border:none;cursor:pointer;padding:.5rem;margin-right:.3rem}.nav-hamburger span{width:1.3rem;height:.18rem;background:var(--text);border-radius:999px;transition:all .3s ease;display:block}.nav-hamburger.active span:nth-child(1){transform:rotate(45deg) translateY(.62rem)}.nav-hamburger.active span:nth-child(2){opacity:0}.nav-hamburger.active span:nth-child(3){transform:rotate(-45deg) translateY(-.62rem)}.nav-cta{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding-inline:1rem;border-radius:999px;border:1px solid rgba(15,158,140,.45);color:var(--accent);font-weight:600;transition:transform .26s ease,background-color .26s ease;flex-shrink:0}.nav-cta:hover{transform:translateY(-1px);background:#0f9e8c14}@media (min-width: 760px){.nav-hamburger{display:none}.nav-links{display:flex}.theme-toggle-desktop,.nav-language-desktop{display:inline-flex}.nav-theme-mobile{display:none!important}}.nav-links.active{position:absolute;top:100%;left:0;right:0;background:linear-gradient(180deg,var(--menu-bg-top),var(--menu-bg-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:50;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.nav-links.active a{padding:.7rem 1rem;display:block}.nav-links.active a:hover{background:#0f9e8c21}.nav-links.active .nav-theme-mobile{display:block;margin-top:.55rem;padding-top:.75rem;border-top:1px solid var(--line)}.nav-links.active .nav-language-mobile{display:flex}[data-theme=dark] .accent-card{background:linear-gradient(140deg,#1c2a32eb,#5a4a2642);border-color:#a4cfde3d}[data-theme=dark] .accent-card ul{color:#cfe0e8}[data-theme=dark] .project-card{background:linear-gradient(150deg,#162229e6,#131f26cc);border-color:#a4cfde3d}[data-theme=dark] .project-card:hover{box-shadow:0 22px 38px #0000006b}[data-theme=dark] .project-topline p{color:#9db8c3}[data-theme=dark] .project-card h3{color:#e8f1f5}[data-theme=dark] .tag-list li{border-color:#a4cfde40;color:#c9dce5;background:#17252da6}[data-theme=dark] .hero-panel{background:linear-gradient(160deg,#18262eeb,#131f26d1);border-color:#a4cfde3d}[data-theme=dark] .panel-label{color:#c7dce6}[data-theme=dark] .panel-role{color:#a9c1cb}[data-theme=dark] .panel-github{background:#2ccbb133;color:#8de8d9}[data-theme=dark] .panel-socials a{color:#c7dce6;border-color:#a4cfde3d;background:#1521288a}[data-theme=dark] .panel-socials a:hover{background:#2ccbb12e;color:#dff7f2}[data-theme=dark] .contact-card{background:linear-gradient(145deg,#24cbb11a,#ff8a7517,#121e25db);border-color:#a4cfde3d}[data-theme=dark] .contact-email{color:#8de8d9}[data-theme=dark] .contact-links a{border-color:#a4cfde3d;color:#c7dce6;background:#1521288a}[data-theme=dark] .contact-links a:hover{background:#2ccbb12e;color:#dff7f2}.hero{padding:3.8rem 0 2rem}.hero-grid{display:grid;gap:1.5rem}.hero-copy h1{font-size:clamp(2rem,7vw,4rem);letter-spacing:-.02em;max-width:12ch}.hero-copy h1 span{display:block;color:var(--accent)}.hero-kicker{margin-bottom:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:.76rem}.hero-intro{margin-top:1.1rem;color:var(--muted);max-width:54ch}.hero-actions{margin-top:1.7rem;display:flex;gap:.8rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:2.9rem;border-radius:999px;padding-inline:1.2rem;border:1px solid transparent;font-weight:600;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}.button:hover{transform:translateY(-2px)}.button-primary{color:#fff;background:linear-gradient(130deg,var(--accent),#0c7f71);box-shadow:0 12px 28px #0f9e8c3d}.button-ghost{border-color:var(--line);color:var(--text);background:var(--surface)}.hero-panel{padding:1.2rem;border-radius:calc(var(--radius) + 8px);background:linear-gradient(160deg,var(--surface-strong),rgba(255,255,255,.45));border:1px solid rgba(255,255,255,.7);box-shadow:var(--shadow);transform:perspective(900px) rotateX(4deg) rotateY(-7deg);transform-origin:center;transition:transform .34s ease}.hero-panel:hover{transform:perspective(900px) rotateX(0) rotateY(0)}.panel-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}.panel-name{margin-top:.6rem;font-weight:700;font-family:Sora,sans-serif;font-size:1.2rem}.panel-role{margin-top:.35rem;color:var(--muted)}.panel-github{margin-top:1rem;display:inline-flex;padding:.45rem .9rem;border-radius:999px;background:#0f9e8c1c;color:var(--accent);font-weight:600}.panel-socials{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.45rem}.panel-socials a{padding:.45rem .7rem;border-radius:999px;border:1px solid var(--line);font-size:.9rem;color:var(--muted);transition:background-color .22s ease,color .22s ease}.panel-socials a:hover{background:#f26d5b24;color:#7d2e23}.section{padding:2rem 0}.section-inner{display:grid;gap:1.2rem}.section-heading p{text-transform:uppercase;letter-spacing:.16em;color:var(--muted);font-weight:600;font-size:.75rem}.section-heading h2{margin-top:.55rem;font-size:clamp(1.4rem,4vw,2.3rem);max-width:22ch}.about-grid{display:grid;gap:1rem}.glass-card{padding:1.25rem;border-radius:var(--radius);background:var(--surface);border:1px solid rgba(255,255,255,.72);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.glass-card h3{font-size:1.05rem}.glass-card p{margin-top:.65rem;color:var(--muted)}.accent-card{background:linear-gradient(140deg,#fffc,#f4bd5233)}.accent-card ul{margin-top:.6rem;display:grid;gap:.5rem;color:#4e443f}.skills-grid{display:grid;gap:1rem}.skill-group{padding:1.15rem;border-radius:var(--radius);background:var(--surface);border:1px solid rgba(255,255,255,.74);box-shadow:var(--shadow)}.skill-group p{margin-top:.45rem;color:var(--muted)}.skill-list{margin-top:1rem;display:grid;gap:.7rem}.skill-row-head{display:flex;justify-content:space-between;font-size:.9rem}.skill-track{margin-top:.35rem;height:.62rem;border-radius:999px;overflow:hidden;background:#1f1a181a}.skill-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2));animation:fillSkill 1.6s ease both}.project-grid{display:grid;gap:1rem}.project-card{position:relative;overflow:hidden;padding:1.2rem;border-radius:var(--radius);background:linear-gradient(150deg,#ffffffd1,#ffffff80);border:1px solid rgba(255,255,255,.75);box-shadow:var(--shadow);transition:transform .34s ease,box-shadow .34s ease}.project-card:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:linear-gradient(120deg,transparent 10%,rgba(15,158,140,.35),rgba(242,109,91,.25),transparent 70%);opacity:0;transition:opacity .34s ease;z-index:-1}.project-card:hover{transform:translateY(-4px) rotateX(3deg);box-shadow:0 22px 38px #2818112e}.project-card:hover:before{opacity:1}.project-topline p{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:.73rem;font-weight:600}.project-card h3{margin-top:.7rem;font-size:1.15rem}.project-description{margin-top:.6rem;color:var(--muted)}.tag-list{margin-top:.8rem;display:flex;gap:.45rem;flex-wrap:wrap}.tag-list li{padding:.35rem .65rem;border-radius:999px;border:1px solid rgba(31,26,24,.12);font-size:.8rem;color:#4f453f}.project-link{margin-top:1rem;display:inline-flex;align-items:center;color:var(--accent);font-weight:600}.contact-card{padding:1.4rem;border-radius:calc(var(--radius) + 10px);background:linear-gradient(145deg,#0f9e8c14,#f26d5b17,#ffffffd1);border:1px solid rgba(255,255,255,.82);box-shadow:var(--shadow)}.contact-card p{text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;color:var(--muted)}.contact-card h2{margin-top:.65rem;font-size:clamp(1.4rem,4.4vw,2.2rem);max-width:20ch}.contact-email{margin-top:1rem;display:inline-flex;font-size:clamp(1rem,3.2vw,1.4rem);font-family:Sora,sans-serif;color:#0e685d;text-decoration:underline;text-underline-offset:.24em}.contact-links{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem}.contact-links a{border-radius:999px;border:1px solid rgba(31,26,24,.13);padding:.45rem .7rem;transition:transform .22s ease,background-color .22s ease}.contact-links a:hover{transform:translateY(-2px);background:#f26d5b24}.footer{padding:2rem 0 2.4rem}.footer-inner{border-top:1px solid var(--line);padding-top:1rem;display:flex;align-items:center;justify-content:space-between;color:var(--muted)}.footer-inner a{color:var(--accent);font-weight:600}.scroll-to-top{position:fixed;bottom:2rem;right:2rem;width:2.8rem;height:2.8rem;border-radius:999px;background:linear-gradient(135deg,var(--accent),#0c7f71);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #0f9e8c47;opacity:0;visibility:hidden;transform:translateY(1rem);transition:opacity .3s ease,transform .3s ease,visibility .3s ease,box-shadow .3s ease;z-index:30}.scroll-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.scroll-to-top:hover{transform:translateY(-.2rem);box-shadow:0 12px 32px #0f9e8c5c}.scroll-to-top:active{transform:translateY(.1rem)}.scroll-to-top svg{width:1.2rem;height:1.2rem;animation:bounceArrow 1.5s ease-in-out infinite}@keyframes bounceArrow{0%,to{transform:translateY(0)}50%{transform:translateY(-.3rem)}}@media (max-width: 640px){.theme-toggle{min-height:2.2rem;padding-inline:.72rem;font-size:.82rem}.scroll-to-top{bottom:1.2rem;right:1.2rem;width:2.4rem;height:2.4rem}.scroll-to-top svg{width:1rem;height:1rem}}@media (min-width: 760px){.hero{padding-top:5rem}.hero-grid{grid-template-columns:1.2fr .8fr;align-items:center;gap:1.5rem}.about-grid,.skills-grid,.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1040px){.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.section{padding:2.8rem 0}}@keyframes drift{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(0,1rem,0) scale(1.07)}}@keyframes fillSkill{0%{width:0}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
