:root{--bg: #07080b;--panel: #0a0c10;--muted: #9aa6ae;--text: #e6eef8;--accent: #4f8cff;--accent-2: #61dafb;--radius: 12px;--container: 1100px;--transition: .22s}#root{width:100%;margin:0;padding:0;text-align:left}.logo,.logo:hover,.logo.react:hover,.card{all:unset}.read-the-docs{display:none}@keyframes logo-spin{0%{transform:none}to{transform:none}}*{box-sizing:border-box;margin:0;padding:0}*{will-change:transform,opacity}html,body,#root{height:100%;touch-action:manipulation;-ms-touch-action:manipulation;-webkit-text-size-adjust:100%}body{background:radial-gradient(1200px 600px at 50% 30%,rgba(79,140,255,.04),transparent 30%),var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}html{scroll-behavior:smooth}.app-container{max-width:var(--container);margin:0 auto;padding:28px}h1,h2,h3{font-family:Poppins,Inter,sans-serif;color:var(--text)}h1{font-size:2.8rem;line-height:1.05}h2{font-size:2rem}.btn{display:inline-flex;align-items:center;gap:8px;cursor:pointer;border:none;padding:10px 16px;border-radius:10px;font-weight:600}.btn-primary{background:linear-gradient(90deg,var(--accent),#3a6ecf);color:#fff}.btn-ghost{background:transparent;color:var(--text);border:1px solid rgba(255,255,255,.06)}.section{padding:64px 16px}.small{font-size:.9rem;color:var(--muted)}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reduced-motion,.reduced-motion *{animation:none!important;transition:none!important}}@media(max-width:1024px){:root{--container: 920px}h1{font-size:clamp(26px,4.2vw,40px)}h2{font-size:clamp(20px,3.2vw,28px)}.app-container{padding:22px}}@media(max-width:900px){:root{--container: 720px}body{font-size:15.5px}.app-container{padding:18px}.btn{padding:12px 16px;font-size:.95rem}.btn-primary,.project-btn,.contact-btn{width:100%;display:inline-flex;justify-content:center}}@media(max-width:560px){:root{--container: 100%}body{font-size:15px}h1{font-size:1.9rem}h2{font-size:1.4rem}.app-container{padding:12px}.btn,.project-btn,.contact-btn{padding:14px 16px;border-radius:10px}}:focus{outline-color:#4f8cff47}.hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:92vh;text-align:center;overflow:hidden;padding:48px 12px;background:radial-gradient(1200px 600px at 50% 30%,rgba(79,140,255,.04),transparent 30%),var(--bg);color:var(--text)}.hero-inner{display:grid;grid-template-columns:1.1fr 1.1fr;gap:48px;align-items:center;width:min(100%,var(--container));margin:0 auto}.hero-left{text-align:left;animation:fadeInUp .9s ease both}.hero-title{font-size:clamp(28px,3.8vw,52px);margin:0 0 12px;font-weight:700}.hero-sub{color:var(--muted);max-width:560px;margin-bottom:16px;opacity:.95}.hero-buttons{display:flex;gap:10px;align-items:center;margin-top:12px}.hero .btn{padding:7px 12px;border-radius:12px;font-weight:600;box-shadow:none;transition:transform .14s ease,opacity .14s ease,background .14s ease;border:1px solid transparent;background:#ffffff05}.hero .btn:hover{transform:translateY(-2px) scale(1.01);opacity:.98}.hero .btn-primary{background:linear-gradient(90deg,#4f8cfff2,#3a6ecff2);color:#fff;text-decoration:none;border:1px solid rgba(0,0,0,.08)}.hero .btn-ghost{background:transparent;color:var(--text);border:none;text-decoration:none;padding:6px 10px}.hero .btn-ghost:hover{opacity:.9}.hero:before,.hero:after{content:"";position:absolute;inset:0;pointer-events:none}.hero:before{background-image:radial-gradient(circle at 20% 30%,rgba(79,140,255,.06) .6px,transparent .8px),radial-gradient(circle at 80% 70%,rgba(97,218,251,.04) .6px,transparent .8px);background-size:90px 90px,120px 120px;opacity:.6;filter:blur(4px)}.hero:after{background:linear-gradient(180deg,rgba(0,0,0,.2),transparent)}.boat-hero{position:relative;width:100%;max-width:680px;aspect-ratio:2.8 / 1;margin-inline:auto;overflow:visible}.boat-svg{width:100%;height:100%;display:block}.boat-hull,.boat-mast,.boat-sail,.boat-wave{stroke-dasharray:1500;stroke-dashoffset:1500;animation:boat-draw 3s ease forwards}.boat-mast{animation-delay:.3s}.boat-sail{animation-delay:.6s}.boat-wave{animation-delay:.9s,3.5s}.boat-wave{animation:boat-draw 3s forwards ease,wave-move 6s ease-in-out infinite 3.2s}@keyframes boat-draw{to{stroke-dashoffset:0}}@keyframes wave-move{0%{transform:translateY(0);opacity:.9}50%{transform:translateY(-6px);opacity:.65}to{transform:translateY(0);opacity:.9}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.hero{min-height:80vh;padding:40px 16px}.hero-inner{grid-template-columns:1fr;gap:28px}.hero-left{text-align:center}.hero-left h1{font-size:clamp(26px,4.8vw,44px)}.boat-hero{max-width:520px;aspect-ratio:2.6 / 1}}@media(max-width:720px){.hero-inner{grid-template-columns:1fr;text-align:center}.hero-left{order:2}.hero-right{order:1}.boat-hero{max-width:480px;aspect-ratio:3 / 1}}@media(prefers-reduced-motion:reduce){.boat-hull,.boat-mast,.boat-sail,.boat-wave{animation:none!important;stroke-dashoffset:0!important}}.boat-hero{animation:boat-rock 5s ease-in-out infinite;transform-origin:50% 80%}@keyframes boat-rock{0%{transform:rotate(0) translateY(0)}25%{transform:rotate(-1.3deg) translateY(-4px)}50%{transform:rotate(1.3deg) translateY(2px)}75%{transform:rotate(-1deg) translateY(-3px)}to{transform:rotate(0) translateY(0)}}.scroll-indicator{position:absolute;left:50%;transform:translate(-50%);bottom:28px;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--muted);text-decoration:none;border-radius:999px;background:#ffffff05;border:1px solid rgba(255,255,255,.03);transition:transform .2s ease,background .2s ease,color .2s ease;z-index:10}.scroll-indicator:hover{transform:translate(-50%) translateY(-6px);color:var(--accent);background:#4f8cff0f}.scroll-indicator .chev{display:block}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.scroll-indicator{transition:none}}.about{padding:64px 16px;background:transparent;color:var(--text);--grad-color-1: #d6e7ff;--grad-color-2: var(--accent)}.about-inner{width:min(100%,var(--container));margin:0 auto;padding:8px 0}.about-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px;align-items:center}.about-content h2{font-size:2rem;color:var(--accent);margin-bottom:12px;text-align:left;opacity:0;transform:translateY(8px);transition:opacity .42s ease,transform .42s ease}.about-content p{color:var(--muted);line-height:1.7;margin-bottom:12px;font-size:1rem;opacity:0;transform:translateY(6px);transition:opacity .42s ease,transform .42s ease}.about-portrait{position:relative;justify-self:center;justify-items:center;display:block;justify-content:center;align-items:center;width:100%;max-width:300px;height:auto;border-radius:0;padding:0;background:transparent;border:none;box-shadow:none;opacity:0;transform:translateY(10px) scale(.98);transition:opacity .42s ease,transform .42s ease;margin-top:-100px;margin-left:-250px}.portrait-svg{width:100%;height:auto;display:block}.about-portrait .portrait-svg path{stroke:url(#portraitGradient);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none!important;stroke-dasharray:2000;stroke-dashoffset:2000}.about.visible .about-portrait .portrait-svg path{stroke-dashoffset:0;transition:stroke-dashoffset 1.8s ease}.about.visible .about-content h2{opacity:1;transform:translateY(0);transition-delay:80ms}.about.visible .about-content p{opacity:1;transform:translateY(0);transition-delay:.14s}.about.visible .about-portrait{opacity:1;transform:translateY(0) scale(1);transition-delay:.2s}@keyframes portrait-draw{to{stroke-dashoffset:0}}.about-underline{display:block;width:220px;height:24px;margin:6px auto 18px;color:var(--accent)}.about-underline .underline-path{stroke:currentColor;stroke-dasharray:260;stroke-dashoffset:260;transition:stroke-dashoffset .9s ease;will-change:stroke-dashoffset}.about.visible .about-underline .underline-path{stroke-dashoffset:0}@keyframes underline-draw{to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.portrait-line{animation:none!important;stroke-dashoffset:0!important}.about-content h2,.about-content p,.about-portrait{transition:none!important;transform:none!important;opacity:1!important}.about-underline .underline-path{transition:none!important;stroke-dashoffset:0!important}.about-portrait .portrait-svg path{transition:none!important;stroke-dashoffset:0!important}}@media(max-width:900px){.about-inner{text-align:center}.about-grid{grid-template-columns:1fr;gap:24px}.about-content h2{text-align:center}.about-portrait{margin:0 auto}}@media(max-width:1024px){.about-inner{text-align:center}.about-grid{grid-template-columns:1fr;gap:20px}.about-content h2{text-align:center}.about-content p{margin-left:auto;margin-right:auto}.about-portrait{margin:0 auto 0 0;transform:none;width:220px}}.navbar{position:fixed;top:18px;left:0;right:0;display:flex;justify-content:center;align-items:center;z-index:60;padding:6px 12px;background:transparent}.nav-center{width:min(100%,var(--container));display:flex;align-items:center;justify-content:center;gap:24px;position:relative}.nav-logo{position:absolute;left:20px;font-weight:700;font-size:1rem;color:var(--text)}.nav-links{display:flex;gap:16px;align-items:center}.nav-links a{color:#ffffffa6;text-decoration:none;padding:6px 8px;border-radius:6px;font-size:.95rem;position:relative}.nav-links a:after{content:"";position:absolute;left:8px;right:8px;bottom:-6px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--transition) ease;opacity:0}.nav-links a:hover{color:var(--accent);background:#ffffff05}.nav-links a:hover:after{transform:scaleX(1);opacity:1}.hamburger{display:none;flex-direction:column;cursor:pointer;gap:6px}.hamburger span{width:28px;height:3px;background:var(--text);border-radius:3px;transition:.3s}.hamburger.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}@media(max-width:850px){.nav-center{width:100%;padding:0 12px}.nav-links{display:none;position:absolute;top:64px;left:0;right:0;background:#0a0c10f5;padding:12px;flex-direction:column;gap:8px;align-items:center;border-top:1px solid rgba(255,255,255,.03)}.nav-links.open{display:flex}.nav-links a{padding:12px 16px;width:100%;text-align:center}.hamburger{display:flex;position:absolute;right:12px}.nav-links{max-width:720px;margin:0 auto;border-radius:12px;box-shadow:0 8px 30px #00000073;padding:20px 18px}}.nav-lang{display:flex;position:absolute;right:20px;top:50%;transform:translateY(-50%);gap:6px;align-items:center;z-index:10}.nav-lang .lang-btn{padding:6px 8px;border-radius:8px;font-weight:700;border:1px solid rgba(255,255,255,.08);background:transparent;color:#ffffffe6}.nav-lang .lang-btn.active{background:var(--accent);color:var(--bg);border-color:transparent}@media(max-width:850px){.nav-lang{display:none}}.nav-lang-mobile{display:none}@media(max-width:850px){.nav-lang-mobile{display:flex;gap:10px;margin-top:12px;justify-content:center}.nav-lang-mobile .lang-btn{padding:10px 14px;border-radius:10px;font-weight:700;background:transparent;border:1px solid rgba(255,255,255,.06);color:#fffffff2;min-width:96px}.nav-lang-mobile .lang-btn.active{background:var(--accent);color:var(--bg);border-color:transparent}}@media(min-width:768px)and (max-width:1024px){.nav-lang-mobile .lang-btn{padding:8px 12px;min-width:78px;font-size:.88rem}}@media(max-width:560px){.lang-toggle .lang-btn{padding:10px 12px}}.projects{padding:64px 28px;background:transparent;color:var(--text);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:1100px;margin:0 auto}.projects h2{font-size:2.4rem;color:var(--accent);margin-bottom:12px;opacity:0;transform:translateY(10px);animation:fadeInUp .52s cubic-bezier(.2,.9,.3,1) forwards}.projects-subtitle{font-size:1.05rem;color:var(--muted);margin-bottom:40px;opacity:0;transform:translateY(8px);animation:fadeInUp .52s cubic-bezier(.2,.9,.3,1) forwards;animation-delay:.12s}.projects-grid{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(260px,320px));justify-content:center;width:auto;opacity:0;transform:translateY(6px);animation:fadeInUp .52s cubic-bezier(.2,.9,.3,1) forwards;animation-delay:.22s}.project-card{background:linear-gradient(180deg,#ffffff05,#00000008);border-radius:var(--radius);padding:18px;text-align:left;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .42s ease;border:1px solid rgba(255,255,255,.03);max-width:320px;width:100%;opacity:0;transform:translateY(18px) scale(.995);animation:cardIn .64s cubic-bezier(.2,.9,.3,1) forwards}.project-card:nth-child(1){animation-delay:.32s}.project-card:nth-child(2){animation-delay:.44s}.project-card:nth-child(3){animation-delay:.56s}.project-card:nth-child(4){animation-delay:.68s}.project-card:nth-child(5){animation-delay:.8s}.project-card:nth-child(6){animation-delay:.92s}.project-card:nth-child(7){animation-delay:1.04s}.project-card:nth-child(8){animation-delay:1.16s}.project-card:hover{transform:translateY(-8px) scale(1.01);box-shadow:0 22px 48px #0009;border-color:#4f8cff47;background:linear-gradient(180deg,#4f8cff08,#00000005)}.project-image{height:160px;background:center/cover no-repeat;border-radius:10px;margin-bottom:16px;position:relative;overflow:hidden}.project-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff0,#ffffff08,#fff0);transform:translate(-120%);animation:shimmer 2.2s linear infinite;pointer-events:none}.project-card h3{font-size:1.2rem;margin-bottom:8px}.project-card p{color:var(--muted);margin:8px 0 16px}.project-meta{display:flex;gap:10px;align-items:center;justify-content:space-between}.badge{background:#4f8cff1f;color:var(--accent);padding:6px 10px;border-radius:999px;font-weight:700;font-size:.85rem}.project-btn{padding:10px 16px;display:inline-block;background:linear-gradient(90deg,var(--accent),#3a6ecf);color:#fff;text-decoration:none;border-radius:8px;font-weight:600;transition:transform .18s ease,box-shadow .18s ease}.project-btn:hover{transform:translateY(-3px);box-shadow:0 8px 24px #3a6ecf2e}.projects#skills .projects-grid .project-card{text-align:center}.projects#contact{padding-top:72px;padding-bottom:72px}@media(max-width:900px){.projects{padding:52px 18px}}@media(max-width:500px){.project-card{padding:14px}.projects h2{font-size:1.8rem}}@media(max-width:1024px){.projects{padding:48px 18px}.projects h2{text-align:center}.projects-grid{justify-content:center;grid-template-columns:repeat(auto-fit,minmax(220px,320px))}.project-card{max-width:300px;margin:0 auto}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes cardIn{0%{opacity:0;transform:translateY(18px) scale(.995)}60%{opacity:1;transform:translateY(-6px) scale(1.002)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shimmer{0%{transform:translate(-120%)}to{transform:translate(120%)}}.badge{animation:pulse 2.2s ease-in-out infinite;opacity:.98}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.projects h2,.projects-subtitle,.projects-grid,.project-card,.project-image:after,.badge{animation:none!important;transition:none!important}}.footer{background:#0b0b0b;color:#ccc;padding:50px 40px 20px;margin-top:60px;text-align:center}.footer-container{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:30px}.footer-logo{font-size:1.6rem;font-weight:700;color:#4f8cff}.footer-links{display:flex;gap:30px;align-items:center;justify-content:center}.footer-links a{text-decoration:none;color:#ccc;transition:.2s}.footer-links a:hover{color:#fff}.footer-socials{display:flex;gap:20px;font-size:1.4rem;align-items:center;justify-content:center}.footer-socials a{color:#ccc;transition:.2s}.footer-socials a:hover{color:#4f8cff}.footer-copy{text-align:center;margin-top:40px;color:#777;font-size:.9rem}@media(max-width:700px){.footer-container{flex-direction:column;text-align:center}.footer-links{flex-wrap:wrap;justify-content:center}}@media(max-width:1024px){.footer{padding:36px 20px}.footer-container{flex-direction:column;gap:18px}.footer-links{gap:16px}.footer-copy{margin-top:28px}}.skills{padding:60px 20px;max-width:1100px;margin:0 auto;text-align:center}.skills h2{color:var(--accent);font-size:36px;margin-bottom:10px}.skills-subtitle{color:#94a3b8;margin-bottom:40px}.skills-section{margin-bottom:50px}.skills-section h3{color:#e2e8f0;font-size:24px;margin-bottom:20px;text-align:left}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px}.skill-card{background:#0f172a;border:1px solid #1e2a47;padding:20px;border-radius:14px;display:flex;flex-direction:column;align-items:center;transition:all .25s ease;box-shadow:0 0 #38bdf81a}.skill-card:hover{border-color:var(--accent);box-shadow:0 0 15px #38bdf840;transform:translateY(-4px)}.skill-icon{width:50px;height:50px;margin-bottom:10px}.skill-card span{color:#e2e8f0;font-size:15px}.contact{padding:64px 18px;color:var(--text);text-align:center}.contact-inner{max-width:var(--container);margin:0 auto}.contact-header h2{font-size:2.4rem;color:var(--accent);margin-bottom:8px}.contact-subtitle{color:var(--muted);margin-bottom:28px}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;align-items:start}.contact-card{background:linear-gradient(180deg,#ffffff04,#00000005);border-radius:12px;padding:18px;text-align:left;border:1px solid rgba(255,255,255,.03)}.contact-card h3{margin:0 0 8px;color:var(--accent)}.contact-card p.small{color:var(--muted);margin-bottom:12px;font-size:.95rem}.contact-btn{display:inline-block;padding:10px 14px;background:linear-gradient(90deg,var(--accent),#3a6ecf);color:#fff;text-decoration:none;border-radius:8px;font-weight:700;border:none}.contact-form input,.contact-form textarea{width:100%;padding:10px 12px;margin-bottom:10px;border-radius:8px;border:1px solid rgba(255,255,255,.06);background:#ffffff05;color:var(--text);resize:vertical}.contact-form textarea{min-height:100px}.contact-actions{display:flex;justify-content:flex-end}@media(max-width:1024px){.contact{text-align:center;padding:48px 16px}.contact-grid{justify-items:center}.contact-card{margin:0 auto;text-align:center}.contact-actions{justify-content:center}}@media(max-width:720px){.contact-card{text-align:center}.contact-actions{justify-content:center}}
