:root,[data-theme=dark]{--bg: #0c1520;--bg-gradient: linear-gradient(135deg, #0c1520 0%, #0f1b2a 50%, #0a1118 100%);--surface: #131f30;--surface-hover: #1a2940;--border: #1e3148;--text: #e0eaf4;--text-dim: #7a9bb8;--accent: #38bdf8;--accent-hover: #0ea5e9;--accent-glow: rgba(56, 189, 248, .1);--accent-glow-strong: rgba(56, 189, 248, .22);--code-bg: #141f30;--overlay: rgba(5, 10, 20, .88);--shadow: 0 4px 24px rgba(0, 0, 0, .3);--cluster-shadow: 0 2px 12px rgba(56, 189, 248, .35);--marker-border: #38bdf8;color-scheme:dark}[data-theme=light]{--bg: #f4f8fc;--bg-gradient: linear-gradient(135deg, #f4f8fc 0%, #e3eef8 50%, #f0f5fa 100%);--surface: #ffffff;--surface-hover: #eef4fa;--border: #c4d8ea;--text: #13253a;--text-dim: #546e8a;--accent: #0284c7;--accent-hover: #0369a1;--accent-glow: rgba(2, 132, 199, .08);--accent-glow-strong: rgba(2, 132, 199, .18);--code-bg: #e8f0f8;--overlay: rgba(244, 248, 252, .92);--shadow: 0 4px 24px rgba(0, 0, 0, .08);--cluster-shadow: 0 2px 12px rgba(2, 132, 199, .3);--marker-border: #0284c7;color-scheme:light}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;line-height:1.6;transition:background .3s ease,color .3s ease;overflow-x:hidden}.app{max-width:800px;margin:0 auto;padding:0 24px;width:100%}.nav{display:flex;justify-content:space-between;align-items:center;padding:24px 0;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background .3s ease}.nav-logo{font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:700;color:var(--accent);letter-spacing:-.5px;text-decoration:none}.nav-logo-bracket{color:var(--text-dim);font-weight:400}.nav-links{display:flex;gap:24px;align-items:center}.nav-links a{color:var(--text-dim);text-decoration:none;font-size:.9rem;transition:color .2s;position:relative}.nav-links a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background:var(--accent);transition:width .25s ease}.nav-links a:hover{color:var(--text)}.nav-links a:hover:after{width:100%}.lang-toggle{background:none;border:1px solid var(--border);border-radius:8px;padding:6px 12px;cursor:pointer;font-size:.875rem;font-weight:600;line-height:1;color:var(--text);transition:border-color .2s,background .2s,color .2s;font-family:JetBrains Mono,monospace;letter-spacing:.5px}.lang-toggle:hover{border-color:var(--accent);background:var(--accent-glow);color:var(--accent)}.theme-toggle{background:none;border:1px solid var(--border);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:1.1rem;line-height:1;transition:border-color .2s,background .2s}.theme-toggle:hover{border-color:var(--accent);background:var(--accent-glow)}.nav-hamburger{display:none;flex-direction:column;gap:4px;background:none;border:1px solid var(--border);border-radius:8px;padding:8px;cursor:pointer;transition:border-color .2s}.nav-hamburger:hover{border-color:var(--accent)}.nav-hamburger span{display:block;width:20px;height:2px;background:var(--text);transition:all .3s;border-radius:2px}.nav-hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.nav-hamburger.open span:nth-child(2){opacity:0}.nav-hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.hero{padding:120px 0 80px;position:relative;overflow:hidden}.hero-particles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.6;max-width:100%}.hero-content{position:relative;z-index:1}.hero-greeting{color:var(--accent);font-size:1.1rem;font-weight:500;margin-bottom:8px;font-family:JetBrains Mono,monospace}.hero-greeting-code{opacity:.6;margin-right:4px}.hero-name{font-size:4rem;font-weight:800;letter-spacing:-2px;line-height:1.1;margin-bottom:8px;background:linear-gradient(135deg,var(--text) 0%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-title{font-size:1.5rem;font-weight:400;color:var(--text-dim);margin-bottom:24px}.hero-desc{color:var(--text-dim);max-width:520px;font-size:1.05rem;margin-bottom:32px}.hero-cta{display:inline-block;color:var(--accent);text-decoration:none;font-weight:600;padding:12px 28px;border:1px solid var(--accent);border-radius:10px;transition:all .25s ease}.hero-cta:hover{background:var(--accent);color:var(--bg);box-shadow:var(--cluster-shadow);transform:translateY(-1px)}.section{padding:80px 0;border-top:1px solid var(--border)}.section-title{font-size:1.5rem;font-weight:700;margin-bottom:32px;letter-spacing:-.5px;position:relative;display:inline-block}.section-title:after{content:"";position:absolute;bottom:-8px;left:0;width:40px;height:3px;background:var(--accent);border-radius:2px}.fade-in{opacity:0;transform:translateY(20px);animation:fadeInUp .6s ease forwards}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}.section:nth-child(3){animation-delay:.1s}.section:nth-child(4){animation-delay:.2s}.section:nth-child(5){animation-delay:.3s}.section:nth-child(6){animation-delay:.4s}.about-content p{color:var(--text-dim);margin-bottom:16px;font-size:1.05rem}.about-content code{background:var(--code-bg);padding:2px 8px;border-radius:4px;font-size:.9em;color:var(--accent);font-family:JetBrains Mono,monospace}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.project-card{display:flex;align-items:flex-start;gap:16px;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--text);transition:all .25s ease;cursor:pointer}.project-card:hover{border-color:var(--accent);background:var(--surface-hover);transform:translateY(-2px);box-shadow:var(--shadow)}.project-icon{font-size:1.8rem;flex-shrink:0;margin-top:2px}.project-logo{width:40px;height:40px;flex-shrink:0;margin-top:2px;object-fit:contain;border-radius:8px}.project-info{flex:1;min-width:0}.project-name{font-weight:600;font-size:1.1rem;display:block;margin-bottom:6px}.project-desc{color:var(--text-dim);font-size:.92rem;line-height:1.5;margin:0}.project-link{color:var(--accent);font-size:1.2rem;flex-shrink:0;margin-top:2px;opacity:.6;transition:opacity .2s}.project-card:hover .project-link{opacity:1}.contact-links{display:flex;gap:12px;flex-wrap:wrap}.contact-card{display:flex;align-items:center;gap:10px;padding:16px 24px;background:var(--surface);border:1px solid var(--border);border-radius:12px;color:var(--text);text-decoration:none;font-weight:500;transition:all .25s ease}.contact-card:hover{border-color:var(--accent);background:var(--surface-hover);transform:translateY(-2px);box-shadow:var(--shadow)}.contact-icon{font-size:1.3rem}.footer{padding:40px 0;border-top:1px solid var(--border);text-align:center}.footer p{color:var(--text-dim);font-size:.85rem;font-family:JetBrains Mono,monospace}.travel-map{width:100%;height:500px;border-radius:12px;border:1px solid var(--border);overflow:hidden}.travel-map-loading{height:500px;display:flex;align-items:center;justify-content:center;color:var(--text-dim);background:var(--surface);border-radius:12px}.photo-marker{background:none!important;border:none!important}.photo-marker-inner{width:52px;height:52px;border-radius:50%;border:3px solid var(--marker-border);overflow:hidden;box-shadow:0 2px 12px #0009;transition:transform .2s;cursor:pointer}.photo-marker-inner:hover{transform:scale(1.15)}.photo-marker-inner img{width:100%;height:100%;object-fit:cover}.photo-cluster-wrapper{background:none!important;border:none!important}.photo-cluster{width:48px;height:48px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1rem;box-shadow:var(--cluster-shadow);cursor:pointer;transition:transform .2s}.photo-cluster:hover{transform:scale(1.1)}.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large,.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:none!important}.travel-modal-overlay{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:10000;padding:24px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.travel-modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:32px;max-width:720px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:var(--shadow)}.travel-modal-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-dim);font-size:1.2rem;cursor:pointer;padding:4px 8px;border-radius:4px;transition:color .2s}.travel-modal-close:hover{color:var(--text)}.travel-modal-title{font-size:1.5rem;font-weight:700;margin-bottom:8px;color:var(--text)}.travel-modal-desc{color:var(--text-dim);margin-bottom:24px;font-size:1rem}.travel-modal-carousel{position:relative;width:100%;aspect-ratio:4/3;border-radius:10px;overflow:hidden;margin-bottom:12px;background:var(--bg)}.carousel-img{width:100%;height:100%;object-fit:cover}.carousel-blur{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(20px);transform:scale(1.1);z-index:0}.carousel-img-main{position:relative;z-index:1;width:100%;height:100%;object-fit:cover}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);background:#00000080;border:none;color:#fff;font-size:1.8rem;padding:8px 14px;cursor:pointer;z-index:2;border-radius:6px;transition:background .2s}.carousel-btn:hover{background:#000c}.carousel-prev{left:8px}.carousel-next{right:8px}.carousel-dots{display:flex;justify-content:center;gap:8px;margin-bottom:16px}.carousel-dot{width:8px;height:8px;border-radius:50%;border:none;background:var(--border);cursor:pointer;padding:0;transition:background .2s}.carousel-dot.active{background:var(--accent)}.travel-modal-thumbs{display:flex;gap:8px;overflow-x:auto}.travel-modal-thumbs .thumb-button{all:unset;cursor:pointer;flex-shrink:0;border-radius:6px}.travel-modal-thumbs .thumb-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.travel-modal-thumbs .thumb{width:64px;height:48px;object-fit:cover;border-radius:6px;cursor:pointer;border:2px solid transparent;opacity:.6;transition:all .2s;flex-shrink:0}.travel-modal-thumbs .thumb.active{border-color:var(--accent);opacity:1}.travel-modal-thumbs .thumb:hover{opacity:1}.travels-teaser{text-align:center;padding:40px 24px;background:var(--surface);border:1px solid var(--border);border-radius:16px}.travels-teaser-emoji{font-size:2.5rem;display:block;margin-bottom:12px}.travels-teaser-title{font-size:1.4rem;font-weight:700;margin-bottom:8px;color:var(--text)}.travels-teaser-desc{color:var(--text-dim);margin-bottom:20px;font-size:1rem}.travels-teaser-cta{display:inline-block;color:var(--accent);text-decoration:none;font-weight:600;padding:10px 24px;border:1px solid var(--accent);border-radius:10px;transition:all .25s ease}.travels-teaser-cta:hover{background:var(--accent);color:var(--bg);box-shadow:var(--cluster-shadow);transform:translateY(-1px)}@media(max-width:600px){.hero-name{font-size:2.5rem}.hero{padding:80px 0 60px}.projects-grid{grid-template-columns:1fr}.travel-map{height:400px;border-radius:8px}.travel-modal{padding:20px}.nav{flex-wrap:wrap}.nav-hamburger{display:flex}.nav-links{display:none;flex-direction:column;width:100%;gap:12px;padding-top:16px;align-items:stretch}.nav-links.open{display:flex}.nav-links a{font-size:.9rem;padding:8px 0;text-align:center}.nav-links a:after{display:none}.lang-toggle,.theme-toggle{width:100%;justify-content:center}}
