@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;700&display=swap";:root{--bg-color:#050505;--bg-alt:#111;--text-primary:#ededed;--text-secondary:#9ca3af;--accent-color:#10b981;--accent-glow:#10b98166;--border-color:#27272a;--nav-bg:#0a0a0ad9;--card-bg:#111;--card-shadow:0 10px 30px #0006;--badge-bg:#ffffff0d;--input-bg:#050505;--container-max:1200px;--section-pad-y:clamp(56px, 8vw, 110px);--section-pad-x:clamp(16px, 4.5vw, 40px);--nav-height:80px;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px)}[data-theme=light]{--bg-color:#f8fafc;--bg-alt:#fff;--text-primary:#0f172a;--text-secondary:#475569;--accent-color:#059669;--accent-glow:#05966940;--border-color:#e2e8f0;--nav-bg:#ffffffd9;--card-bg:#fff;--card-shadow:0 10px 25px -5px #0f172a14, 0 8px 10px -6px #0f172a0a;--badge-bg:#0f172a0f;--input-bg:#fff}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height);overflow-x:hidden}body{background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;max-width:100vw;font-family:Outfit,sans-serif;line-height:1.6;transition:background-color .3s,color .3s;overflow-x:hidden}.section,.section-alt,.navbar,.skill-card,.project-card,.about-block,.contact-method,.timeline-content,.image-placeholder,input,textarea{transition:background-color .3s,color .3s,border-color .3s,box-shadow .3s}a{color:inherit;text-decoration:none;transition:color .3s}ul{list-style:none}.section{width:100%;max-width:var(--container-max);padding:var(--section-pad-y) var(--section-pad-x);flex-direction:column;justify-content:center;min-height:100dvh;margin:0 auto;display:flex}.section-alt{background-color:var(--bg-alt);width:100%;max-width:none;padding:0}.section-alt .section-content{width:100%;max-width:var(--container-max);padding:var(--section-pad-y) var(--section-pad-x);margin:0 auto}.section-title{text-align:left;letter-spacing:-.02em;align-self:flex-start;margin-bottom:clamp(1.75rem,4.5vw,3rem);font-size:clamp(1.8rem,5vw,2.5rem);font-weight:700;display:inline-block;position:relative}.section-title span{color:var(--accent-color)}.section-title:after{content:"";background-color:var(--accent-color);width:50%;height:3px;box-shadow:0 0 10px var(--accent-glow);border-radius:2px;position:absolute;bottom:-8px;left:0}.btn{letter-spacing:.01em;cursor:pointer;-webkit-user-select:none;user-select:none;border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:48px;padding:.85rem 1.85rem;font-size:.95rem;font-weight:600;transition:all .25s cubic-bezier(.2,.8,.2,1);display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background-color:var(--accent-color);color:#fff;box-shadow:0 4px 15px var(--accent-glow)}.btn-primary:hover{border-color:var(--accent-color);color:var(--accent-color);box-shadow:none;background-color:#0000}.btn-outline{border-color:var(--border-color);color:var(--text-primary);background-color:#0000}.btn-outline:hover{border-color:var(--accent-color);color:var(--accent-color);background-color:color-mix(in srgb, var(--accent-color) 8%, transparent)}@media (width<=768px){:root{--nav-height:64px;--section-pad-y:clamp(48px, 8vw, 72px);--section-pad-x:clamp(16px, 4vw, 24px)}.section,.section-alt .section-content{min-height:auto;padding-top:var(--section-pad-y);padding-bottom:var(--section-pad-y)}.section-title{margin-bottom:2rem}}.navbar{width:100%;padding:1.25rem var(--section-pad-x);padding-top:calc(1.25rem + var(--safe-area-top));z-index:1000;background-color:#0000;transition:background-color .3s,padding .3s,border-color .3s,box-shadow .3s;position:fixed;top:0;left:0}.navbar.scrolled{background-color:var(--nav-bg);-webkit-backdrop-filter:blur(14px);padding:.85rem var(--section-pad-x);padding-top:calc(.85rem + var(--safe-area-top));border-bottom:1px solid var(--border-color);box-shadow:0 4px 20px #00000014}.navbar-container{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.logo{letter-spacing:-.02em;color:var(--text-primary);align-items:center;font-size:1.45rem;font-weight:700;display:inline-flex}.logo span{color:var(--accent-color)}.nav-menu ul{gap:2rem;display:flex}.nav-menu a{color:var(--text-primary);padding:.25rem 0;font-size:.95rem;font-weight:500;position:relative}.nav-menu a:after{content:"";background-color:var(--accent-color);width:0;height:2px;transition:width .3s;position:absolute;bottom:-4px;left:0}.nav-menu a:hover:after{width:100%}.nav-menu a:hover{color:var(--accent-color)}.navbar-actions{align-items:center;gap:.75rem;display:flex}.theme-toggle{background:var(--bg-alt);border:1px solid var(--border-color);width:42px;height:42px;color:var(--text-primary);cursor:pointer;border-radius:50%;outline:none;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.theme-toggle:hover{border-color:var(--accent-color);color:var(--accent-color);box-shadow:0 0 15px var(--accent-glow);transform:rotate(15deg)scale(1.06)}.theme-toggle .sun-icon{color:#f59e0b}.theme-toggle .moon-icon{color:var(--accent-color)}.mobile-toggle{background:var(--bg-alt);border:1px solid var(--border-color);width:42px;height:42px;color:var(--text-primary);cursor:pointer;border-radius:12px;outline:none;justify-content:center;align-items:center;transition:all .2s;display:none}.mobile-toggle:active{transform:scale(.94)}:root{--offcanvas-width:min(78vw, 300px)}html.nav-locked,body.nav-locked{touch-action:none}.app-shell{background-color:var(--bg-alt);width:100%;min-height:100dvh;position:relative;overflow-x:hidden}.app-page-wrapper{background-color:var(--bg-color);transform-origin:0 0;z-index:1;width:100%;min-height:100dvh;transition:transform .38s cubic-bezier(.16,1,.3,1),border-radius .38s cubic-bezier(.16,1,.3,1),box-shadow .38s,filter .38s;position:relative}@media (width<=768px){.app-shell.offcanvas-active .app-page-wrapper{transform:translateX(calc(-1 * var(--offcanvas-width)));filter:brightness(.65)blur(5px);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:20px;box-shadow:-15px 0 45px #0000008c}.offcanvas-tap-dismiss{z-index:999;cursor:pointer;touch-action:none;-webkit-backdrop-filter:blur(8px);background:#00000040;transition:-webkit-backdrop-filter .38s,backdrop-filter .38s,background-color .38s;position:fixed;inset:0}}.mobile-nav-portal-container{pointer-events:none;z-index:10000;position:fixed;inset:0}.mobile-nav-drawer{width:var(--offcanvas-width);background-color:color-mix(in srgb, var(--bg-alt) 90%, transparent);-webkit-backdrop-filter:blur(20px);border-left:1px solid var(--border-color);height:100dvh;padding:calc(1.25rem + var(--safe-area-top)) 1.25rem calc(1.5rem + var(--safe-area-bottom));-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;pointer-events:auto;flex-direction:column;justify-content:space-between;display:flex;position:fixed;top:0;right:0;overflow-y:auto;box-shadow:-10px 0 35px #00000080}.mobile-nav-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding-bottom:1.25rem;display:flex}.mobile-close-btn{background:var(--bg-color);border:1px solid var(--border-color);width:40px;height:40px;color:var(--text-primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.mobile-close-btn:active{transform:scale(.92)}.mobile-nav-links{flex:1;margin:1.5rem 0}.mobile-nav-links ul{flex-direction:column;gap:.5rem;display:flex}.mobile-nav-link{color:var(--text-primary);background:0 0;border-radius:12px;align-items:center;padding:.85rem 1rem;font-size:1.1rem;font-weight:500;transition:all .2s;display:flex}.mobile-nav-number{color:var(--accent-color);margin-right:.85rem;font-family:monospace;font-size:.85rem;font-weight:700}.mobile-nav-text{flex:1}.mobile-nav-arrow{color:var(--text-secondary);opacity:.4;transition:transform .2s,opacity .2s}.mobile-nav-link:hover,.mobile-nav-link:active{background:color-mix(in srgb, var(--accent-color) 10%, transparent);color:var(--accent-color)}.mobile-nav-link:hover .mobile-nav-arrow,.mobile-nav-link:active .mobile-nav-arrow{opacity:1;color:var(--accent-color);transform:translate(4px)}.mobile-nav-footer{border-top:1px solid var(--border-color);flex-direction:column;gap:1rem;padding-top:1.25rem;display:flex}.mobile-theme-btn{background:var(--bg-color);border:1px solid var(--border-color);width:100%;color:var(--text-primary);cursor:pointer;border-radius:12px;align-items:center;gap:.85rem;padding:.75rem 1rem;font-size:.95rem;font-weight:500;transition:all .2s;display:flex}.mobile-theme-icon-box{background:var(--bg-alt);border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.mobile-theme-btn:active{transform:scale(.98)}.mobile-cta-btn{gap:.6rem;width:100%;font-size:1rem}@media (width<=768px){.navbar{padding:.85rem var(--section-pad-x);padding-top:calc(.85rem + var(--safe-area-top))}.nav-menu{display:none}.mobile-toggle{display:flex}}.hero-section{padding-top:calc(var(--nav-height) + var(--section-pad-y) / 2);flex-direction:column;justify-content:center;align-items:flex-start;min-height:100dvh;display:flex;position:relative}.hero-content{text-align:left;width:100%;max-width:800px}.hero-greeting{color:var(--accent-color);letter-spacing:.05em;margin-bottom:.75rem;font-family:monospace;font-size:clamp(.95rem,2.5vw,1.15rem);font-weight:600}.hero-name{letter-spacing:-.03em;color:var(--text-primary);margin-bottom:.35rem;font-size:clamp(2.5rem,8.5vw,5.5rem);font-weight:700;line-height:1.08}.hero-subtitle{color:var(--text-secondary);letter-spacing:-.02em;margin-bottom:1.5rem;font-size:clamp(1.4rem,5vw,3.5rem);font-weight:700;line-height:1.15}.hero-description{color:var(--text-secondary);max-width:600px;margin-bottom:clamp(1.75rem,5vw,3rem);font-size:clamp(.95rem,2.8vw,1.2rem);line-height:1.6}.hero-cta{flex-wrap:wrap;align-items:center;gap:2rem;display:flex}.social-links{align-items:center;gap:.85rem;display:flex}.social-links a{color:var(--text-secondary);background:var(--bg-alt);border:1px solid var(--border-color);border-radius:12px;justify-content:center;align-items:center;width:46px;height:46px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.social-links a:hover{color:var(--accent-color);border-color:var(--accent-color);box-shadow:0 4px 15px var(--accent-glow);transform:translateY(-3px)}.social-links a:active{transform:scale(.94)}.scroll-indicator{width:fit-content;color:var(--text-secondary);border-radius:20px;flex-direction:column;align-items:center;gap:4px;margin:0 auto;padding:8px 12px;transition:color .25s;display:flex;position:absolute;bottom:clamp(16px,3vh,32px);left:0;right:0}.scroll-indicator:hover{color:var(--accent-color)}.scroll-indicator-text{letter-spacing:2px;text-transform:uppercase;font-size:.75rem;font-weight:500}.scroll-indicator-arrow{color:var(--accent-color);filter:drop-shadow(0 0 6px var(--accent-glow));animation:1.6s ease-in-out infinite bounce-down}@keyframes bounce-down{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}@media (width<=768px){.hero-section{padding-top:calc(var(--nav-height) + 1.5rem);justify-content:center;min-height:100dvh;padding-bottom:3rem}.hero-cta{flex-direction:column;align-items:flex-start;gap:1.5rem;width:100%}.hero-cta .btn-primary{width:100%;max-width:320px}.scroll-indicator{bottom:12px}}@media (height<=680px){.scroll-indicator{display:none}}.about-container{flex-direction:column;display:flex}.about-content{justify-content:space-between;align-items:flex-start;gap:clamp(2rem,5vw,4rem);margin-top:1.5rem;display:flex}.about-text{color:var(--text-secondary);flex-direction:column;flex:1.4;gap:1.5rem;font-size:1.05rem;display:flex}.about-text strong{color:var(--text-primary);font-weight:500}.about-lead{color:var(--text-primary);border-left:3px solid var(--accent-color);padding-left:1.25rem;font-size:clamp(1.1rem,3vw,1.35rem);line-height:1.55}.about-lead strong{color:var(--accent-color)}.about-company-link{display:inline-inline;background-image:linear-gradient(var(--accent-color), var(--accent-color));white-space:nowrap;background-position:0 100%;background-repeat:no-repeat;background-size:100% 2px;align-items:center;gap:4px;transition:background-size .3s}.about-company-link svg{vertical-align:middle;margin-left:2px}.about-block{background:var(--bg-color);border:1px solid var(--border-color);border-radius:16px;padding:1.75rem;transition:border-color .3s,transform .3s}.about-block:hover{border-color:var(--accent-color);transform:translateY(-3px)}.about-block h3{color:var(--text-primary);align-items:center;gap:10px;margin-bottom:.85rem;font-size:1.15rem;display:flex}.about-block h3 svg{color:var(--accent-color)}.about-block p{margin-bottom:1rem;line-height:1.65}.about-block p:last-child{margin-bottom:0}.about-image{flex:1;justify-content:center;display:flex;position:sticky;top:120px}.image-placeholder{aspect-ratio:1;background-color:var(--bg-color);border:2px dashed var(--border-color);width:min(280px,70vw);color:var(--text-secondary);box-shadow:var(--card-shadow);border-radius:20px;justify-content:center;align-items:center;font-weight:500;display:flex;position:relative;overflow:visible}.image-placeholder img{object-fit:cover;border-radius:18px;width:100%;height:100%;display:block}.image-placeholder:before{content:"";border:2px solid var(--accent-color);z-index:-1;border-radius:20px;transition:all .3s;position:absolute;inset:14px -14px -14px 14px}.image-placeholder:hover:before{inset:8px -8px -8px 8px}@media (width<=768px){.about-content{flex-direction:column;align-items:center;gap:2rem}.about-image{width:100%;margin-bottom:1rem;padding-bottom:14px;padding-right:14px;position:static}.image-placeholder{width:min(220px,60vw)}.image-placeholder:before{inset:10px -10px -10px 10px}.about-text{gap:1.25rem;width:100%;font-size:.98rem}.about-lead{padding-left:1rem;font-size:1.1rem}.about-block{border-radius:14px;padding:1.25rem}.about-block:hover{transform:none}}.skills-header-row{flex-direction:column;display:flex}.skills-mobile-hint{color:var(--text-secondary);background:var(--bg-alt);border:1px solid var(--border-color);border-radius:999px;align-items:center;gap:6px;width:fit-content;margin-top:-1rem;margin-bottom:1.5rem;padding:6px 12px;font-size:.8rem;display:none}.skills-mobile-hint svg{color:var(--accent-color)}.skills-grid{grid-template-columns:repeat(6,1fr);gap:1.25rem;margin-top:2.5rem;display:grid}@media (width<=1100px){.skills-grid{grid-template-columns:repeat(4,1fr)}}@media (width<=768px){.skills-grid{grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem}.skills-mobile-hint{display:inline-flex}}@media (width<=560px){.skills-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;margin-top:1.25rem}}@media (width<=360px){.skills-grid{grid-template-columns:1fr}}.skill-card{background-color:var(--bg-alt);border:1px solid var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:16px;outline:none;flex-direction:column;justify-content:center;align-items:center;min-height:250px;padding:2.25rem 1rem;transition:border-color .3s,box-shadow .3s,transform .3s cubic-bezier(.2,.8,.2,1);display:flex;position:relative;overflow:hidden}.skill-card:hover,.skill-card:focus-visible,.skill-card.is-active{border-color:var(--skill-color);box-shadow:0 10px 25px color-mix(in srgb, var(--skill-color) 25%, transparent);transform:translateY(-6px)}.skill-front{text-align:center;flex-direction:column;align-items:center;transition:opacity .3s,transform .3s,filter .3s;display:flex}.skill-icon{justify-content:center;align-items:center;margin-bottom:1.25rem;transition:transform .3s;display:flex}.skill-card:hover .skill-icon,.skill-card.is-active .skill-icon{transform:scale(1.1)rotate(4deg)}.skill-name{color:var(--text-primary);font-size:1.05rem;font-weight:600;line-height:1.3}.skill-desc{text-align:center;background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--skill-color) 30%, transparent), transparent 70%), color-mix(in srgb, var(--bg-alt) 95%, var(--skill-color));opacity:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.25rem .85rem;transition:opacity .3s,transform .35s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;inset:0;transform:translateY(20%)}.skill-desc-title{color:var(--skill-color);letter-spacing:.02em;font-size:.95rem;font-weight:700}.skill-desc-title:after{content:"";background:var(--skill-color);width:26px;height:2px;box-shadow:0 0 8px var(--skill-color);border-radius:2px;margin:.35rem auto 0;display:block}.skill-desc p{color:var(--text-secondary);font-size:.82rem;line-height:1.4}.skill-tools{flex-wrap:wrap;justify-content:center;gap:.35rem;margin:.2rem 0 0;padding:0;list-style:none;display:flex}.skill-tool{color:var(--skill-color);background:color-mix(in srgb, var(--skill-color) 14%, transparent);border:1px solid color-mix(in srgb, var(--skill-color) 45%, transparent);text-align:center;opacity:0;border-radius:999px;max-width:100%;padding:.25rem .55rem;font-size:.68rem;font-weight:600;line-height:1.2;transition:opacity .3s,transform .35s cubic-bezier(.22,1,.36,1);transform:translateY(6px)scale(.9)}.skill-card:hover .skill-tool,.skill-card:focus-visible .skill-tool,.skill-card.is-active .skill-tool{opacity:1;transform:translateY(0)scale(1)}.skill-card:hover .skill-tool:first-child,.skill-card.is-active .skill-tool:first-child{transition-delay:80ms}.skill-card:hover .skill-tool:nth-child(2),.skill-card.is-active .skill-tool:nth-child(2){transition-delay:.14s}.skill-card:hover .skill-tool:nth-child(3),.skill-card.is-active .skill-tool:nth-child(3){transition-delay:.2s}.skill-card:hover .skill-tool:nth-child(4),.skill-card.is-active .skill-tool:nth-child(4){transition-delay:.26s}.skill-card:hover .skill-front,.skill-card:focus-visible .skill-front,.skill-card.is-active .skill-front{opacity:0;filter:blur(4px);transform:scale(.85)}.skill-card:hover .skill-desc,.skill-card:focus-visible .skill-desc,.skill-card.is-active .skill-desc{opacity:1;pointer-events:auto;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.skill-front,.skill-desc,.skill-tool{transition:opacity .2s;filter:none!important;transform:none!important}}@media (width<=560px){.skill-card{min-height:220px;padding:1.75rem .65rem}.skill-desc{gap:.4rem;padding:.85rem .65rem}.skill-desc p{font-size:.78rem;line-height:1.35}.skill-name{font-size:.95rem}}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:clamp(1.5rem,4vw,2.5rem);margin-top:clamp(1.5rem,4vw,2.75rem);display:grid}.project-card{background-color:var(--bg-color);border:1px solid var(--border-color);border-radius:18px;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s;position:relative;overflow:hidden}.project-card:hover{border-color:var(--accent-color);transform:translateY(-8px);box-shadow:0 20px 40px #0006}.project-card:active{transform:scale(.98)}[data-theme=light] .project-card:hover{box-shadow:0 20px 35px -10px #0f172a26}.project-card-link{height:100%;color:inherit;flex-direction:column;display:flex}.project-image{aspect-ratio:16/9;background:var(--bg-alt);width:100%;max-height:240px;position:relative;overflow:hidden}.project-image img{object-fit:cover;width:100%;height:100%;transition:transform .5s;display:block}.project-card:hover .project-image img{transform:scale(1.06)}.project-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;background-color:#0a0a0ab3;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;inset:0}.project-card:hover .project-overlay{opacity:1}.project-link{background-color:var(--accent-color);color:#fff;width:48px;height:48px;box-shadow:0 4px 15px var(--accent-glow);border-radius:50%;justify-content:center;align-items:center;transition:transform .3s,background-color .3s;display:flex}.project-link:hover{transform:scale(1.1)}.project-info{flex-direction:column;flex:1;padding:clamp(1.2rem,3.5vw,1.6rem);display:flex}.project-info h3{color:var(--text-primary);letter-spacing:-.01em;margin-bottom:.6rem;font-size:clamp(1.2rem,3.5vw,1.45rem);font-weight:700}.project-info p{color:var(--text-secondary);flex:1;margin-bottom:1.25rem;font-size:.92rem;line-height:1.55}.project-techs{flex-wrap:wrap;gap:.45rem;margin-bottom:1rem;display:flex}.tech-tag{background-color:var(--bg-alt);color:var(--accent-color);border:1px solid var(--border-color);border-radius:999px;padding:.25rem .65rem;font-size:.76rem;font-weight:600}.project-more{color:var(--accent-color);align-items:center;gap:6px;font-size:.92rem;font-weight:600;transition:gap .2s;display:inline-flex}.project-card:hover .project-more{gap:10px}@media (width<=640px){.projects-grid{grid-template-columns:1fr;gap:1.5rem}.project-card:hover{transform:none}.project-overlay{display:none}.project-image{max-height:200px}}.timeline{max-width:800px;margin:2.5rem 0 0;padding-left:2rem;position:relative}.timeline:before{content:"";background-color:var(--border-color);width:2px;position:absolute;top:6px;bottom:6px;left:0}.timeline-item{margin-bottom:2.5rem;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-dot{background-color:var(--bg-color);border:4px solid var(--accent-color);width:16px;height:16px;box-shadow:0 0 10px var(--accent-glow);border-radius:50%;position:absolute;top:6px;left:-2rem;transform:translate(-50%)}.timeline-content{background-color:var(--bg-alt);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem 1.75rem;transition:transform .3s,border-color .3s}.timeline-content:hover{border-color:var(--accent-color);transform:translate(6px)}.timeline-content h3{color:var(--text-primary);letter-spacing:-.01em;margin-bottom:.25rem;font-size:1.25rem;font-weight:700}.timeline-content h4{color:var(--accent-color);margin-bottom:.6rem;font-size:.95rem;font-weight:600}.timeline-period{color:var(--text-secondary);background-color:var(--badge-bg);border:1px solid var(--border-color);border-radius:999px;margin-bottom:.85rem;padding:.2rem .75rem;font-size:.8rem;font-weight:500;display:inline-block}.timeline-content p{color:var(--text-secondary);font-size:.95rem;line-height:1.6}@media (width<=768px){.timeline{margin-top:1.75rem;padding-left:1.5rem}.timeline-dot{border-width:3px;width:14px;height:14px;left:-1.5rem}.timeline-content{border-radius:14px;padding:1.25rem}.timeline-content:hover{transform:none}.timeline-content h3{font-size:1.1rem}.timeline-content p{font-size:.9rem}}.contact-container{justify-content:space-between;gap:clamp(2rem,5vw,4rem);margin-top:1.5rem;display:flex}.contact-info{flex:1;max-width:680px}.contact-info h3{color:var(--text-primary);letter-spacing:-.01em;margin-bottom:.75rem;font-size:clamp(1.35rem,4vw,1.8rem);font-weight:700}.contact-info p{color:var(--text-secondary);margin-bottom:2rem;font-size:clamp(.95rem,2.8vw,1.05rem);line-height:1.6}.contact-methods{flex-direction:column;gap:1.25rem;width:100%;display:flex}.contact-method{background-color:var(--bg-color);border:1px solid var(--border-color);border-radius:16px;align-items:center;gap:1.25rem;width:100%;padding:1.1rem 1.25rem;transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .25s,box-shadow .25s;display:flex;overflow:hidden}.contact-method:hover{border-color:var(--accent-color);transform:translate(8px);box-shadow:0 8px 25px #00000026}.contact-method:active{transform:scale(.98)}.method-icon{color:var(--accent-color);background:var(--bg-alt);border:1px solid var(--border-color);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.method-text{flex:1;min-width:0}.contact-method h4{color:var(--text-primary);margin-bottom:.2rem;font-size:.95rem;font-weight:600}.contact-method span{color:var(--text-secondary);word-break:break-all;overflow-wrap:anywhere;font-size:.88rem;display:block}.footer{text-align:center;padding:2rem var(--section-pad-x);padding-bottom:calc(2rem + var(--safe-area-bottom));border-top:1px solid var(--border-color);color:var(--text-secondary);margin-top:clamp(3rem,7vw,5rem);font-size:.88rem}@media (width<=768px){.contact-container{flex-direction:column}.contact-method{gap:1rem;padding:1rem}.contact-method:hover{transform:none}.method-icon{width:42px;height:42px}.footer{margin-top:2.5rem;font-size:.82rem}}.project-detail{padding:calc(var(--nav-height) + 1.5rem) var(--section-pad-x) var(--section-pad-y);width:100%;min-height:100dvh}.pd-container{width:100%;max-width:1100px;margin:0 auto}.pd-back{color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:1.5rem;padding:6px 0;font-size:.95rem;font-weight:500;transition:color .2s,transform .2s;display:inline-flex}.pd-back:hover{color:var(--accent-color);transform:translate(-4px)}.pd-header h1{letter-spacing:-.02em;color:var(--text-primary);margin:10px 0;font-size:clamp(1.75rem,5.5vw,3.25rem);font-weight:700;line-height:1.15}.pd-status{color:var(--accent-color);background:color-mix(in srgb, var(--accent-color) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent-color) 40%, transparent);border-radius:999px;padding:4px 14px;font-size:.8rem;font-weight:600;display:inline-block}.pd-subtitle{color:var(--text-secondary);margin-bottom:1.5rem;font-size:clamp(1rem,2.8vw,1.2rem);line-height:1.5}.pd-actions{flex-wrap:wrap;gap:12px;display:flex}.pd-actions .btn{justify-content:center;align-items:center;gap:8px;display:inline-flex}.pd-hero{border:1px solid var(--border-color);cursor:zoom-in;box-shadow:0 20px 50px -15px var(--accent-glow);background:var(--bg-alt);border-radius:18px;margin:2.25rem 0;overflow:hidden}.pd-hero img{aspect-ratio:16/9;object-fit:cover;width:100%;transition:transform .5s;display:block}.pd-hero:hover img{transform:scale(1.02)}.pd-grid{grid-template-columns:2fr 1fr;gap:clamp(2rem,4vw,3rem);display:grid}.pd-main h2,.pd-gallery-section h2{color:var(--text-primary);letter-spacing:-.01em;margin:0 0 14px;font-size:clamp(1.3rem,3.5vw,1.6rem);font-weight:700}.pd-main p{color:var(--text-secondary);margin-bottom:14px;font-size:1rem;line-height:1.65}.pd-main h2:not(:first-child){margin-top:2rem}.pd-features{gap:12px;margin-top:.5rem;list-style:none;display:grid}.pd-features li{color:var(--text-secondary);align-items:flex-start;gap:10px;font-size:.95rem;line-height:1.5;display:flex}.pd-features svg{color:var(--accent-color);flex-shrink:0;margin-top:3px}.pd-sidebar{background:var(--bg-alt);border:1px solid var(--border-color);height:fit-content;top:calc(var(--nav-height) + 1.5rem);border-radius:18px;gap:1.25rem;padding:1.75rem;display:grid;position:sticky}.pd-info span{text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);margin-bottom:4px;font-size:.78rem;font-weight:600;display:block}.pd-info strong{color:var(--text-primary);font-size:1rem}.pd-info .project-techs .tech-tag{text-transform:none;letter-spacing:0;color:var(--text-primary);font-size:.8rem;display:inline-block}.pd-gallery-section{margin-top:clamp(2.5rem,6vw,4.5rem)}.pd-gallery{grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:14px;display:grid}.pd-thumb{border:1px solid var(--border-color);cursor:zoom-in;background:var(--bg-alt);border-radius:14px;padding:0;transition:border-color .3s,transform .3s;overflow:hidden}.pd-thumb:hover{border-color:var(--accent-color);transform:translateY(-3px)}.pd-thumb img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.pd-lightbox{-webkit-backdrop-filter:blur(8px);z-index:20000;cursor:zoom-out;background:#000000eb;justify-content:center;align-items:center;padding:clamp(16px,4vw,32px);display:flex;position:fixed;inset:0}.pd-lightbox img{object-fit:contain;border-radius:14px;max-width:100%;max-height:85vh;box-shadow:0 10px 40px #000c}.pd-lightbox-close{top:max(16px, env(safe-area-inset-top));color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:background-color .2s,transform .2s;display:flex;position:absolute;right:16px}.pd-lightbox-close:hover,.pd-lightbox-close:active{background:#ffffff40;transform:scale(1.08)}@media (width<=860px){.pd-grid{grid-template-columns:1fr;gap:2rem}.pd-sidebar{border-radius:14px;padding:1.25rem;position:static}.pd-hero{border-radius:14px;margin:1.5rem 0}.pd-gallery-section{margin-top:2.5rem}}@media (width<=640px){.pd-actions{flex-direction:column;width:100%}.pd-actions .btn{width:100%}.pd-gallery{grid-template-columns:repeat(2,1fr);gap:10px}.pd-thumb{border-radius:10px}}@media (width<=360px){.pd-gallery{grid-template-columns:1fr}}
