.header{position:fixed;top:0;left:0;width:100%;height:80px;background:#fffc;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--border-light);z-index:100;transition:all var(--transition-base)}.header.scrolled{height:70px;box-shadow:var(--shadow-sm)}.header__inner{max-width:var(--content-max-width);padding:0 var(--page-horizontal-padding);margin:0 auto;height:100%;display:flex;align-items:center;justify-content:space-between}.header__logo{font-size:1.4rem;font-weight:800;background:linear-gradient(135deg,var(--primary) 0%,var(--accent-purple) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em;cursor:pointer;transition:all var(--transition-base)}.header__logo:hover{transform:scale(1.05)}.header__right{display:flex;align-items:center;gap:48px}.header__nav{display:flex;align-items:center;gap:40px;font-size:.95rem}.header__nav a{position:relative;color:var(--text-secondary);text-decoration:none;font-weight:600;letter-spacing:.01em;transition:all var(--transition-base);padding:8px 0}.header__nav a:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:linear-gradient(90deg,var(--primary),var(--accent-purple));transition:width var(--transition-base)}.header__nav a:hover{color:var(--primary)}.header__nav a:hover:after{width:100%}.header__download-btn{margin-left:32px;background-color:var(--primary-color, #e50914);color:#fff;padding:10px 20px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;transition:background-color .3s ease;font-size:.9rem;font-weight:600;border:none;cursor:pointer}.header__download-btn:hover{background-color:var(--primary-color-hover, #f40612);color:#fff}.header__download-btn--disabled{background-color:#94a3b866;color:var(--footer-text-color);cursor:default}.header__download-btn--disabled:hover{background-color:#94a3b866;color:var(--footer-text-color)}.theme-toggle-container{display:flex;align-items:center;margin-left:25px}.theme-toggle-label{margin-right:10px;font-size:.9rem;color:var(--text-color)}@media (max-width: 768px){.header__logo{font-size:1.2rem}.header__nav{display:none}.header__mobile-menu-btn{display:flex;flex-direction:column;background:none;border:none;cursor:pointer;gap:5px;margin-left:16px;padding:4px}.header__mobile-menu-btn span{width:24px;height:2.5px;background-color:var(--text-color, white);border-radius:2px;transition:all .3s ease}.header__mobile-nav{position:absolute;top:80px;right:0;left:0;background:linear-gradient(180deg,#141414f2,#0f172afa);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(148,163,184,.3);display:flex;flex-direction:column;padding:12px 0;z-index:99}.header__mobile-nav a{padding:12px 24px;color:#e2e8f0;text-decoration:none;font-size:.95rem;font-weight:500;transition:all .2s ease;border-left:3px solid transparent}.header__mobile-nav a:hover{background-color:#4f46e51a;border-left-color:var(--primary-color, #e50914);color:var(--primary-color, #e50914)}.header__download-btn{margin-left:0;padding:8px 16px;font-size:.85rem}.header__nav a{margin-left:10px;font-size:.9rem}.theme-toggle-container{margin-left:15px}.theme-toggle-label{display:none}}@media (min-width: 769px){.header__mobile-menu-btn,.header__mobile-nav{display:none}}.banner{position:relative;min-height:280px;padding:24px 0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(135deg,#f8fafc,#f1f5f9,#e0e7ff,#ede9fe,#f1f5f9,#f8fafc);border-radius:var(--radius-2xl);margin:0 40px}.banner-background{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:hidden}.banner__contents{position:relative;max-width:1200px;width:calc(100% - 80px);margin:0 40px;padding:32px 48px;border-radius:var(--radius-2xl);background:#ffffffd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 20px 60px #00000014,0 0 0 1px #fffc,inset 0 1px #ffffffe6;z-index:1;border:1px solid rgba(255,255,255,.3)}.banner__contents:before{content:"";position:absolute;inset:-2px;border-radius:var(--radius-2xl);padding:2px;background:linear-gradient(135deg,#2563eb4d,#7c3aed4d,#2563eb4d);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:-1}.banner__header{margin-bottom:24px}.banner__name{font-size:2.75rem;font-weight:900;letter-spacing:-.02em;margin:0 0 16px;line-height:1.1;color:var(--text-primary)}.banner__badges{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap}.banner__badge{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:var(--radius-full);font-size:.9rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;transition:all var(--transition-base)}.banner__badge--primary{background:linear-gradient(135deg,#2563eb26,#2563eb14);color:var(--primary);border:2px solid rgba(37,99,235,.3)}.banner__badge--award{background:linear-gradient(135deg,#f59e0b26,#f59e0b14);color:var(--accent-amber);border:2px solid rgba(245,158,11,.3)}.banner__badge:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.banner__intro{font-size:1.1rem;font-weight:600;color:var(--text-secondary);margin:0 0 14px;line-height:1.6}.banner__details{font-size:1rem;font-weight:500;color:var(--text-tertiary);margin:0 0 14px;line-height:1.7}.banner__details strong{color:var(--primary);font-weight:700}.banner__learning{font-size:.95rem;font-weight:500;color:var(--text-tertiary);margin:0;line-height:1.6}.banner__tech{display:inline-block;padding:4px 12px;margin:0 4px;background:linear-gradient(135deg,#2563eb1a,#7c3aed1a);color:var(--accent-purple);border-radius:var(--radius-sm);font-family:SF Mono,Monaco,Courier New,monospace;font-weight:700;font-size:.9em;transition:all var(--transition-base)}.banner__tech:hover{transform:scale(1.05);background:linear-gradient(135deg,var(--primary),var(--accent-purple));color:#fff}.banner__buttons{display:flex;gap:16px;margin-top:32px;flex-wrap:wrap;justify-content:flex-end}@media (max-width: 1024px){.banner__contents{padding:60px 70px}.banner__name{font-size:3rem}.banner__intro{font-size:1.2rem}}@media (max-width: 768px){.banner{min-height:auto;padding:20px 0;margin:0 20px;border-radius:var(--radius-xl)}.banner__contents{padding:28px 24px;width:calc(100% - 40px);margin:0 20px;border-radius:var(--radius-xl)}.banner__header{margin-bottom:24px}.banner__name{font-size:1.75rem;margin-bottom:20px}.banner__intro{font-size:1.05rem;margin-bottom:16px}.banner__details{font-size:.95rem;margin-bottom:16px}.banner__learning{font-size:.9rem;margin-bottom:24px}.banner__badges{gap:10px;margin-bottom:20px}.banner__badge{font-size:.75rem;padding:8px 16px}.banner__tech{padding:3px 10px;font-size:.85em}.banner__buttons{gap:12px;margin-top:32px}.banner__buttons .btn-primary,.banner__buttons .btn-secondary{padding:12px 24px;font-size:.875rem}}.row{color:var(--text-primary);margin-bottom:80px}.row--stacks{margin-bottom:0!important;padding:0!important}.row__title{font-size:2rem;font-weight:800;background:linear-gradient(135deg,var(--text-primary) 0%,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.03em;margin-bottom:32px;position:relative;display:inline-block;padding-bottom:16px}.row__title:after{content:"";position:absolute;bottom:0;left:0;width:60px;height:4px;background:linear-gradient(90deg,var(--primary) 0%,var(--accent-purple) 100%);border-radius:var(--radius-full);animation:expandWidth .6s ease-out forwards}.row--stacks .row__title{font-size:.75rem!important;font-weight:600!important;background:none!important;-webkit-background-clip:unset!important;-webkit-text-fill-color:unset!important;background-clip:unset!important;color:var(--text-tertiary)!important;margin-bottom:8px!important;padding-bottom:0!important;letter-spacing:.08em!important;text-transform:uppercase!important}.row--stacks .row__title:after{display:none!important}.row__posters{display:flex;overflow-y:visible;overflow-x:scroll;padding:20px 20px 60px}.row--stacks .row__posters{padding:20px 20px 50px!important}.row__posters::-webkit-scrollbar{display:none}.row__posters{-ms-overflow-style:none;scrollbar-width:none}.row__poster{position:relative;flex-shrink:0;width:380px;height:240px;margin-right:16px;background:var(--bg-primary);border-radius:var(--radius-lg);display:flex;justify-content:center;align-items:center;transition:all var(--transition-base);overflow:hidden;cursor:default;box-shadow:var(--shadow-md);border:1px solid var(--border-light)}.row--stacks{padding:8px 0;margin-bottom:64px}.row--stacks .row__title{font-size:2rem;margin-bottom:32px}.row--stacks .row__poster{width:96px;height:96px;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:2px solid var(--border-light);transition:all var(--transition-base);background:transparent;position:relative;overflow:visible}.row--stacks .row__poster.proficiency-high{border-color:#2563eb;border-width:3px;background:transparent;transform:scale(1.06)}.row--stacks .row__poster.proficiency-high:after{content:"EXPERT";position:absolute;top:-8px;right:-8px;background:#2563eb;color:#fff;font-size:.625rem;font-weight:800;padding:3px 8px;border-radius:var(--radius-full);letter-spacing:.5px;z-index:10;transition:all var(--transition-base)}.row--stacks .row__poster.proficiency-medium{border-color:#60a5fa;border-width:2.5px;background:transparent;transform:scale(1.02)}.row--stacks .row__poster.proficiency-medium:after{content:"ADVANCED";position:absolute;top:-8px;right:-8px;background:#60a5fa;color:#fff;font-size:.625rem;font-weight:800;padding:3px 8px;border-radius:var(--radius-full);letter-spacing:.5px;z-index:10;transition:all var(--transition-base)}.row--stacks .row__poster.proficiency-low{border-color:#94a3b880;border-width:2px;background:transparent;opacity:.9}.row--stacks .row__poster.proficiency-low:after{content:"BASIC";position:absolute;top:-8px;right:-8px;background:#94a3b8;color:#fff;font-size:.625rem;font-weight:800;padding:3px 8px;border-radius:var(--radius-full);letter-spacing:.5px;z-index:10;transition:all var(--transition-base)}.row--stacks .row__poster--clickable.proficiency-high:hover{border-color:#2563eb;transform:translateY(-8px) scale(1.08)}.row--stacks .row__poster--clickable.proficiency-high:hover:after{transform:translateY(-2px) scale(1.05)}.row--stacks .row__poster--clickable.proficiency-medium:hover{border-color:#60a5fa;transform:translateY(-6px) scale(1.06)}.row--stacks .row__poster--clickable.proficiency-medium:hover:after{transform:translateY(-2px) scale(1.05)}.row--stacks .row__poster--clickable.proficiency-low:hover{transform:translateY(-4px) scale(1.04);border-color:#94a3b8b3;opacity:1}.row--stacks .row__poster--clickable.proficiency-low:hover:after{transform:translateY(-2px) scale(1.05)}.row__poster--clickable{cursor:pointer}.row__poster--clickable:hover{transform:translateY(-8px) scale(1.02);border-color:#2563eb4d}.row--stacks .row__poster--clickable:hover .row__poster-info{opacity:1;bottom:-48px}.row--stacks .row__poster-info h3{margin:0;font-size:.875rem;font-weight:600;letter-spacing:-.01em;color:var(--text-primary)}.row__poster img{display:block;border-radius:calc(var(--radius-md) - 4px)}.row__poster img:hover{font-size:.65rem}.row--stacks .row__poster img{max-width:48px;max-height:48px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));transition:all var(--transition-base)}.row--stacks .row__poster--clickable:hover img{transform:scale(1.1);filter:drop-shadow(0 4px 8px rgba(0,0,0,.15))}} .row--projects .row__poster img,.row--projects .row__poster video{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-lg);transition:transform var(--transition-slow) cubic-bezier(.34,1.56,.64,1)}.row--projects .row__poster{position:relative;overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--border-light)}.row--projects .row__poster:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(37,99,235,.08) 0%,rgba(124,58,237,.05) 50%,transparent 100%);pointer-events:none;z-index:1;opacity:0;transition:opacity var(--transition-base)}.row--projects .row__poster--clickable:hover:after{opacity:1}.row--projects .row__poster-info{position:absolute;bottom:0;left:0;right:0;opacity:0;background:linear-gradient(to top,rgba(15,23,42,.95) 0%,rgba(15,23,42,.7) 60%,transparent 100%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);text-align:left;transition:all var(--transition-base);padding:24px;z-index:2;transform:translateY(12px)}.row--projects .row__poster--clickable:hover img,.row--projects .row__poster--clickable:hover video{transform:scale(1.1)}.row--projects .row__poster--clickable:hover .row__poster-info{opacity:1;transform:translateY(0)}.row--projects .row__poster-info h3{font-size:1.125rem;font-weight:700;line-height:1.3;color:#fff;margin:0;text-shadow:0 2px 12px rgba(0,0,0,.4);letter-spacing:-.02em}.row--projects .row__poster iframe{width:100%;height:100%;border-radius:3px}.certifications-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;padding:16px 0}.certification-item{display:flex;flex-direction:column;gap:14px;padding:24px;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);border:1px solid rgba(37,99,235,.3);box-shadow:var(--shadow-sm);transition:all var(--transition-base);cursor:default;position:relative;overflow:hidden}.certification-item:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary) 0%,var(--accent-purple) 100%);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-base)}.certification-item--clickable{cursor:pointer;border-color:#2563eb4d}.certification-item--clickable:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:#2563eb4d;background:linear-gradient(135deg,var(--bg-primary) 0%,rgba(37,99,235,.04) 100%)}.certification-item--clickable:hover:before{transform:scaleX(1)}.certification-item--clickable:hover .certification-link-icon{opacity:1;transform:translate(4px,-4px)}.certification-item--clickable .certification-name{color:var(--text-primary);transition:color var(--transition-fast)}.certification-item--clickable:hover .certification-name{background:linear-gradient(135deg,var(--primary) 0%,var(--accent-purple) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.certification-meta{display:flex;flex-direction:column;gap:6px}.certification-name{font-size:1.0625rem;font-weight:700;display:flex;align-items:flex-start;gap:10px;line-height:1.3;letter-spacing:-.01em}.certification-link-icon{color:var(--primary);opacity:.5;transition:all var(--transition-fast);flex-shrink:0;margin-top:2px}.certification-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.certification-tag{font-size:.8125rem;padding:6px 12px;border-radius:var(--radius-full);background:linear-gradient(135deg,#2563eb1a,#7c3aed0d);color:var(--primary);font-weight:600;border:1px solid rgba(37,99,235,.15);transition:all var(--transition-fast)}.certification-tag:hover{background:linear-gradient(135deg,#2563eb26,#7c3aed14);border-color:#2563eb4d;transform:translateY(-1px)}.certification-date{color:var(--text-tertiary);font-size:.875rem;font-weight:500;display:flex;align-items:center;gap:6px}.certification-project{font-size:.875rem;color:var(--primary);margin-top:8px;font-weight:600;display:inline-block;padding:8px 16px;border-radius:var(--radius-md);background:linear-gradient(135deg,#2563eb1a,#7c3aed0d);border:1px solid rgba(37,99,235,.2);transition:all var(--transition-fast)}.certification-project:hover{background:linear-gradient(135deg,#2563eb26,#7c3aed14);transform:translate(2px)}.certification-description{font-size:.875rem;color:var(--text-secondary);line-height:1.65;margin-top:8px;padding-top:12px;border-top:1px solid var(--border-light)}.row--stacks .row__poster-info{position:absolute;bottom:-44px;left:50%;transform:translate(-50%);background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:8px 16px;border-radius:var(--radius-full);opacity:0;transition:all .3s cubic-bezier(.34,1.56,.64,1);color:var(--text-primary);text-align:center;white-space:nowrap;pointer-events:none;z-index:100}.row__poster-placeholder{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center;padding:20px;box-sizing:border-box;background-image:linear-gradient(45deg,var(--card-bg-color) 25%,var(--card-bg-hover) 25%,var(--card-bg-hover) 50%,var(--card-bg-color) 50%,var(--card-bg-color) 75%,var(--card-bg-hover) 75%,var(--card-bg-hover) 100%);background-size:56.57px 56.57px;border-radius:var(--radius-md)}.row__poster-placeholder h4{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-color);text-shadow:1px 1px 3px rgba(0,0,0,.5)}@media (max-width: 1024px){.row{padding:0 20px;margin-bottom:64px}.row__title{font-size:1.75rem;margin-bottom:24px}.row__posters{display:flex;overflow-y:hidden;overflow-x:scroll;padding:20px}.row__poster{width:300px;height:190px;margin-right:12px}.row--stacks .row__poster{width:76px;height:76px}.row--stacks .row__poster img{max-width:40px;max-height:40px}}@media (max-width: 768px){.row{margin-bottom:48px}.row__title{font-size:1.5rem;margin-bottom:20px;padding-bottom:12px}.row__title:after{width:40px;height:3px}.row__posters{overflow-y:visible;padding:20px 20px 60px}.row__scroll-button{width:40px;height:40px;font-size:1.5rem}.certifications-list{grid-template-columns:1fr;gap:16px}.certification-item{padding:20px}}.row__scroll-container{position:relative}.row__scroll-button{position:absolute;top:50%;transform:translateY(-50%);background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary);border:1px solid var(--border-light);border-radius:50%;width:48px;height:48px;font-size:1.75rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;opacity:0;transition:all var(--transition-base);box-shadow:var(--shadow-md)}.row__scroll-container:hover .row__scroll-button{opacity:1}.row__scroll-button:hover{background:var(--bg-primary);transform:translateY(-50%) scale(1.1);box-shadow:var(--shadow-lg);border-color:var(--primary);color:var(--primary)}.row__scroll-button.left{left:12px}.row__scroll-button.right{right:12px}@media (max-width: 768px){.row__scroll-button{width:30px;height:30px;font-size:1.5rem;line-height:30px}}.footer{margin-top:160px;padding:0;background:transparent}.footer__inner{max-width:var(--content-max-width);margin:0 auto;padding:0 var(--page-horizontal-padding)}.footer__divider{width:100%;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(148,163,184,.2) 20%,rgba(148,163,184,.2) 80%,transparent 100%);margin-bottom:48px}.footer__content{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:48px;gap:48px}.footer__brand{flex:1}.footer__logo{font-size:1.5rem;font-weight:900;background:linear-gradient(135deg,#2563eb,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 8px;letter-spacing:-.02em}.footer__tagline{font-size:.95rem;color:#94a3b8;font-weight:500;margin:0}.footer__meta{flex:1;text-align:right}.footer__copyright{font-size:.9rem;color:#475569;font-weight:600;margin:0 0 6px}.footer__tech{font-size:.875rem;color:#94a3b8;margin:0;font-weight:500}@media (max-width: 768px){.footer{margin-top:80px}.footer__inner{padding:0 20px}.footer__divider{margin-bottom:32px}.footer__content{flex-direction:column;gap:24px;padding-bottom:40px;text-align:center;align-items:center}.footer__brand,.footer__meta{text-align:center!important;flex:none;width:100%}.footer__logo{font-size:1.25rem;margin-bottom:6px}.footer__tagline{font-size:.875rem;margin-bottom:0}.footer__copyright{font-size:.875rem;margin-bottom:4px}.footer__tech{font-size:.8125rem}}.modal-overlay{position:fixed;inset:0;background:#000000a6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:flex;justify-content:center;align-items:center;z-index:2000;padding:40px 20px;animation:fadeInOverlay .25s ease-out}.modal-content{background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);color:var(--text-primary);border-radius:var(--radius-2xl);width:100%;max-width:960px;max-height:calc(100vh - 80px);overflow:hidden;display:flex;flex-direction:column;position:relative;animation:slideUpModal .35s cubic-bezier(.34,1.56,.64,1);box-shadow:var(--shadow-2xl);border:1px solid var(--border-light)}.modal-close-button{position:absolute;top:20px;right:20px;background:#fffffff2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--text-primary);border:1px solid var(--border-light);border-radius:50%;width:48px;height:48px;cursor:pointer;z-index:100;display:flex;justify-content:center;align-items:center;transition:all var(--transition-base);box-shadow:var(--shadow-md)}.modal-close-button:hover{background:var(--bg-primary);border-color:var(--primary);color:var(--primary);transform:rotate(90deg) scale(1.1);box-shadow:var(--shadow-lg)}.modal-close-button .icon{width:22px;height:22px;transition:transform var(--transition-fast)}.modal-image-gallery{position:relative;width:100%;height:480px;background:linear-gradient(135deg,#0a0a0a,#1a1a1a);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;border-bottom:1px solid var(--border-light)}.modal-media{max-width:100%;max-height:100%;object-fit:contain}.modal-image-gallery iframe{width:100%;height:100%}.gallery-nav-button{position:absolute;top:50%;transform:translateY(-50%);background:#fffffff2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--text-primary);border:1px solid var(--border-light);border-radius:50%;width:52px;height:52px;font-size:1.5rem;cursor:pointer;transition:all var(--transition-base);z-index:10;display:flex;justify-content:center;align-items:center;padding:0;box-shadow:var(--shadow-lg);opacity:0}.modal-image-gallery:hover .gallery-nav-button{opacity:1}.gallery-nav-button:hover{background:var(--bg-primary);color:var(--primary);border-color:var(--primary);transform:translateY(-50%) scale(1.12);box-shadow:var(--shadow-xl)}.gallery-nav-button.prev{left:20px}.gallery-nav-button.next{right:20px}.modal-play-button{position:absolute;bottom:24px;left:24px;opacity:0;transition:all var(--transition-base);z-index:10;background:#fffffff2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 16px #00000026,0 0 0 1px #0000000d;border:none;border-radius:var(--radius-full);padding:12px 24px;font-weight:600;font-size:.875rem;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;gap:8px;transform:translateY(12px)}.modal-image-gallery:hover .modal-play-button{opacity:1;transform:translateY(0)}.modal-play-button:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 20px #0003,0 0 0 1px #2563eb4d;background:var(--primary);color:#fff}.modal-play-button .icon{width:18px;height:18px}.modal-body{padding:48px;overflow-y:auto;flex:1}.modal-header{margin-bottom:36px;padding-bottom:32px;border-bottom:1px solid var(--border-light)}.modal-title{font-size:2.25rem;font-weight:800;margin:0 0 16px;background:linear-gradient(135deg,var(--text-primary) 0%,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.03em;line-height:1.2}.modal-period{font-size:.9375rem;color:var(--text-tertiary);margin:0;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.modal-overview{font-size:1.125rem;line-height:1.75;margin-bottom:40px;color:var(--text-secondary);padding:28px;background:linear-gradient(135deg,#2563eb0a,#7c3aed05);border-radius:var(--radius-lg);border-left:4px solid var(--primary);box-shadow:var(--shadow-xs)}.modal-section{margin-bottom:36px}.modal-section:last-child{margin-bottom:0}.modal-section h3{font-size:1.375rem;font-weight:700;margin:0 0 20px;color:var(--text-primary);letter-spacing:-.02em;display:flex;align-items:center;gap:12px}.modal-section h3:before{content:"";width:4px;height:24px;background:linear-gradient(135deg,var(--primary) 0%,var(--accent-purple) 100%);border-radius:var(--radius-full);flex-shrink:0}.modal-section ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.modal-section li{padding-left:28px;line-height:1.7;position:relative;color:var(--text-secondary);font-size:1rem}.modal-section li:before{content:"→";position:absolute;left:0;color:var(--primary);font-weight:700;font-size:1.125rem}.modal-tech-list{display:flex;flex-wrap:wrap;gap:10px}.modal-content .tech-tag{background:var(--bg-secondary);color:var(--text-secondary);padding:8px 16px;border-radius:var(--radius-full);font-size:.875rem;font-weight:600;border:1px solid var(--border-light);transition:all var(--transition-fast);text-transform:none;letter-spacing:normal}.modal-content .tech-tag:hover{background:#2563eb14;color:#2563eb;border-color:#2563eb4d;transform:translateY(-2px)}.modal-content .tech-tag--core{background:linear-gradient(135deg,#2563eb1a,#7c3aed14);color:#2563eb;border-color:#2563eb33}.modal-content .tech-tag--core:hover{background:linear-gradient(135deg,#2563eb26,#7c3aed1f);color:#2563eb;border-color:#2563eb66}.tech-category-label{font-size:.8125rem;font-weight:700;color:var(--text-tertiary);margin:24px 0 12px;text-transform:uppercase;letter-spacing:.1em}.tech-category-label:first-of-type{margin-top:0}.modal-tech-list--core{margin-bottom:20px}.modal-section--github{background:linear-gradient(135deg,#2563eb0d,#7c3aed08);padding:28px;border-radius:var(--radius-lg);border:1px solid rgba(37,99,235,.15);margin-top:32px}.modal-section--github h3{color:var(--primary)}.modal-section--github h3:before{background:linear-gradient(135deg,var(--primary) 0%,var(--accent-purple) 100%)}.modal-repo-list{display:flex;flex-direction:column;gap:12px}.modal-section--github .repo-link{display:flex;align-items:center;justify-content:space-between;background:var(--bg-primary);padding:16px 24px;border-radius:var(--radius-md);text-decoration:none;color:var(--text-primary);font-weight:600;font-size:.9375rem;transition:all var(--transition-base);border:1px solid var(--border-light);box-shadow:var(--shadow-xs);text-transform:none;letter-spacing:normal}.modal-section--github .repo-link:hover{background:#2563eb0d;color:#2563eb;border-color:#2563eb;transform:translate(6px);box-shadow:var(--shadow-md)}.modal-section--github .repo-link:after{content:"→";font-size:1.25rem;transition:transform var(--transition-fast);color:var(--text-tertiary)}.modal-section--github .repo-link:hover:after{transform:translate(4px);color:#2563eb}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){.modal-overlay{padding:0}.modal-content{max-height:100vh;border-radius:0}.modal-close-button{top:16px;right:16px;width:44px;height:44px}.modal-image-gallery{height:320px}.modal-body{padding:32px 24px}.modal-title{font-size:1.75rem}.modal-period{font-size:.875rem}.modal-overview{font-size:1rem;padding:20px}.modal-section h3{font-size:1.125rem}.modal-section h3:before{width:3px;height:20px}.gallery-nav-button{width:44px;height:44px;font-size:1.25rem}.modal-play-button{padding:12px 20px;font-size:.875rem;bottom:20px;left:20px}.modal-section--github{padding:20px}.repo-link{padding:14px 18px;font-size:.875rem}}.stack-modal-overlay{position:fixed!important;inset:0!important;background:#000000a6!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;display:flex!important;justify-content:center!important;align-items:center!important;z-index:2000!important;padding:40px 20px!important;animation:fadeInOverlay .25s ease-out!important}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.stack-modal-content{background:linear-gradient(135deg,#fff,#f8fafc)!important;color:#0f172a!important;border-radius:24px!important;width:100%!important;max-width:960px!important;max-height:calc(100vh - 80px)!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;position:relative!important;animation:slideUpModal .35s cubic-bezier(.34,1.56,.64,1)!important;box-shadow:0 25px 50px #0f172a40!important;border:1px solid rgba(148,163,184,.2)!important}@keyframes slideUpModal{0%{opacity:0;transform:translateY(32px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}transform: translateY(0); } } .stack-modal-title{padding:40px 48px 32px!important;font-size:1.75rem!important;font-weight:700!important;color:#0f172a!important;border-bottom:1px solid rgba(148,163,184,.15)!important;letter-spacing:-.025em!important;line-height:1.3!important}.stack-modal-body{flex:1!important;overflow-y:auto!important;padding:0!important}.stack-modal-projects-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))!important;gap:24px!important;padding:36px 48px 48px!important}.stack-modal-project-item{background:linear-gradient(135deg,#fff,#f9fafb)!important;border:1.5px solid rgba(148,163,184,.15)!important;border-radius:12px!important;overflow:hidden!important;cursor:pointer!important;transition:all .35s cubic-bezier(.34,1.56,.64,1)!important;box-shadow:0 4px 12px #0f172a0d!important}.stack-modal-project-item:hover{transform:translateY(-8px)!important;box-shadow:0 16px 40px #0f172a26!important;border-color:#4f46e54d!important;background:linear-gradient(135deg,#fff,#f3f4f6)!important}.stack-modal-project-item img,.stack-modal-project-item video{width:100%!important;height:160px!important;object-fit:cover!important;transition:transform .4s ease!important}.stack-modal-project-item:hover img,.stack-modal-project-item:hover video{transform:scale(1.08)!important}.stack-modal-project-item h3{margin:0!important;padding:16px 14px!important;font-size:.95rem!important;font-weight:700!important;text-align:center!important;color:#0f172a!important;line-height:1.4!important;letter-spacing:-.005em!important;border-top:1px solid rgba(148,163,184,.1)!important;transition:color .2s ease!important}.stack-modal-project-item:hover h3{color:#2563eb!important}.stack-modal-project-placeholder{width:100%!important;height:160px!important;display:flex!important;justify-content:center!important;align-items:center!important;text-align:center!important;padding:24px!important;box-sizing:border-box!important;background:linear-gradient(135deg,#4f46e50d,#4f46e505)!important;border:1.5px dashed rgba(148,163,184,.2)!important;border-radius:8px!important}.stack-modal-project-placeholder h4{margin:0!important;font-size:1rem!important;font-weight:700!important;color:#0f172a!important;line-height:1.4!important;letter-spacing:-.005em!important}.stack-modal-project-placeholder p{color:#64748b!important;font-size:.85rem!important;margin:0!important;font-weight:500!important;letter-spacing:.01em!important}.stack-modal-close{position:absolute!important;top:24px!important;right:28px!important;width:40px!important;height:40px!important;background:#ffffffe6!important;border:none!important;border-radius:20px!important;display:flex!important;justify-content:center!important;align-items:center!important;font-size:20px!important;color:#64748b!important;cursor:pointer!important;transition:all .2s ease!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;box-shadow:0 4px 12px #0f172a14!important;z-index:1000!important}.stack-modal-close:hover{background:#f8fafcf2!important;color:#ef4444!important;transform:scale(1.1)!important;box-shadow:0 8px 20px #0f172a1f!important}@media (max-width: 768px){.stack-modal-overlay{padding:20px 16px!important}.stack-modal-content{border-radius:16px!important}.stack-modal-title{font-size:1.5rem!important;padding:32px 32px 24px!important}.stack-modal-projects-grid{grid-template-columns:1fr!important;padding:28px 32px 40px!important;gap:16px!important}.stack-modal-project-item img,.stack-modal-project-item video{height:140px!important}.stack-modal-project-placeholder{height:140px!important}.stack-modal-close{top:16px!important;right:20px!important;width:36px!important;height:36px!important}}@keyframes slideUp{0%{opacity:0;transform:translateY(60px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeInOverlay{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}}@keyframes fadeInOverlay{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}}@keyframes slideUpModal{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.contact-modal-overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;justify-content:center;align-items:center;z-index:2000;padding:32px;animation:fadeIn .25s cubic-bezier(.4,0,.2,1)}.contact-modal-content{background:#fff;border-radius:24px;width:100%;max-width:480px;position:relative;box-shadow:0 25px 50px -12px #00000040;border:1px solid rgba(148,163,184,.1);animation:slideUp .35s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.contact-modal-close{position:absolute;top:20px;right:20px;width:44px;height:44px;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(148,163,184,.15);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:10;box-shadow:0 4px 6px -1px #0000001a}.contact-modal-close:hover{background:#fff;transform:scale(1.08);box-shadow:0 10px 15px -3px #0000001a}.contact-modal-close .icon{width:20px;height:20px;color:#0f172a}.contact-modal-header{padding:48px 48px 32px;background:linear-gradient(135deg,#2563eb14,#7c3aed0d);border-bottom:1px solid rgba(148,163,184,.1)}.contact-modal-title{margin:0 0 8px;font-size:2rem;font-weight:900;background:linear-gradient(135deg,#2563eb,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.contact-modal-subtitle{margin:0;font-size:.95rem;color:#64748b;font-weight:500}.contact-info{padding:40px 48px 48px}.contact-info-label{font-size:.8125rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px}.contact-info-content{display:flex;align-items:center;gap:16px;padding:20px 24px;background:linear-gradient(135deg,#2563eb0d,#7c3aed08);border-radius:16px;border:2px solid rgba(37,99,235,.15);margin-bottom:24px}.icon-email{width:24px;height:24px;flex-shrink:0;color:#2563eb}.email-text{margin:0;font-size:1.125rem;font-weight:700;color:#0f172a;letter-spacing:-.01em;flex:1;word-break:break-all}.copy-button{width:100%;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;border:none;padding:16px 32px;border-radius:12px;cursor:pointer;font-weight:700;font-size:1rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #2563eb4d;display:inline-flex;align-items:center;justify-content:center;gap:10px}.copy-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #2563eb66}.copy-button:active{transform:translateY(0)}.copy-button .icon{width:18px;height:18px}@media (max-width: 768px){.contact-modal-overlay{padding:20px}.contact-modal-content{max-width:100%;border-radius:20px}.contact-modal-header{padding:40px 28px 24px}.contact-modal-title{font-size:1.5rem}.contact-modal-subtitle{font-size:.875rem}.contact-info{padding:32px 28px}.contact-info-content{padding:16px 20px;gap:12px}.email-text{font-size:1rem}.copy-button{padding:14px 28px;font-size:.9375rem}.contact-modal-close{width:40px;height:40px;top:16px;right:16px}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.lanyard-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000c;display:flex;justify-content:center;align-items:center;z-index:2000;cursor:pointer}.lanyard-wrapper{width:100%;height:100%;cursor:default}.lanyard-close-btn{position:absolute;top:20px;right:30px;background:none;border:none;font-size:3rem;color:#fff;cursor:pointer;z-index:2001;transition:transform .2s}.lanyard-close-btn:hover{transform:scale(1.2)}.project-detail-page{max-width:1100px;margin:60px auto;padding:0 var(--page-horizontal-padding);background-color:transparent;border-radius:0;animation:fadeIn .5s cubic-bezier(.4,0,.2,1);box-shadow:none;border:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.back-button{background:linear-gradient(135deg,#4299e11a,#48bb780d);color:var(--primary-accent);border:1.5px solid rgba(66,153,225,.3);padding:12px 24px;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);margin-bottom:48px;border-radius:var(--radius-md);box-shadow:0 4px 12px #4299e11a;letter-spacing:.3px}.back-button:hover{background:linear-gradient(135deg,#4299e126,#48bb781a);color:var(--primary-accent);border-color:#4299e166;transform:translate(-4px);box-shadow:0 6px 16px #4299e126}.project-detail-header{text-align:left;margin-bottom:56px;padding:40px;background:linear-gradient(135deg,#4299e10f,#48bb7808);border-radius:var(--radius-lg);border:1.5px solid rgba(66,153,225,.15);animation:fadeIn .6s cubic-bezier(.4,0,.2,1) both}.project-detail-header h1{font-size:2.8rem;font-weight:900;margin-bottom:16px;color:var(--primary-color);letter-spacing:-.7px;line-height:1.2}.project-period{font-size:1.1rem;color:var(--primary-accent);font-weight:700;letter-spacing:.5px;text-transform:uppercase}.project-detail-gallery{margin-bottom:56px;animation:fadeIn .6s cubic-bezier(.4,0,.2,1) .1s both}.gallery-main-image{position:relative;margin-bottom:24px;background:linear-gradient(135deg,#fff,#f9fafb);border-radius:var(--radius-lg);overflow:hidden;padding:16px;border:1px solid var(--card-border);box-shadow:0 10px 32px #00000014;transition:all .3s cubic-bezier(.4,0,.2,1)}.gallery-main-image:hover{box-shadow:0 20px 48px #0000001f}.main-media{width:100%;height:auto;max-height:650px;object-fit:contain;border-radius:calc(var(--radius-lg) - 4px);display:block;background:linear-gradient(135deg,#f7fafc,#e9ecef)}.fullscreen-button{position:absolute;bottom:28px;right:28px;background:linear-gradient(135deg,var(--primary-accent) 0%,#3182ce 100%);color:#fff;border:none;border-radius:var(--radius-md);width:52px;height:52px;cursor:pointer;display:flex;justify-content:center;align-items:center;opacity:0;transition:all .3s cubic-bezier(.34,1.56,.64,1);z-index:1;box-shadow:0 6px 20px #4299e159}.gallery-main-image:hover .fullscreen-button{opacity:1;transform:scale(1.1) translateY(-4px)}.gallery-thumbnails{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:64px;padding:28px;background:linear-gradient(135deg,#fff,#f9fafb);border-radius:var(--radius-lg);border:1px solid var(--card-border);box-shadow:0 4px 16px #0000000f}.thumbnail-item{width:120px;height:90px;cursor:pointer;border-radius:var(--radius-md);overflow:hidden;border:2.5px solid var(--card-border);transition:all .3s cubic-bezier(.34,1.56,.64,1);background-color:#f0f4f8;flex-shrink:0}.thumbnail-item:hover{transform:scale(1.12) translateY(-6px);box-shadow:0 12px 28px #00000026;border-color:#4299e180}.thumbnail-item.active{border-color:var(--primary-accent);box-shadow:0 8px 24px #4299e14d;transform:scale(1.05)}.thumbnail-media{width:100%;height:100%;object-fit:cover}.project-detail-body{background:linear-gradient(135deg,#fff,#f9fafb);border-radius:var(--radius-lg);padding:56px;border:1px solid var(--card-border);box-shadow:0 10px 32px #00000014;animation:fadeIn .6s cubic-bezier(.4,0,.2,1) .2s both}.project-detail-section{margin-bottom:56px}.project-detail-section:last-child{margin-bottom:0}.project-detail-section h2{font-size:1.5rem;font-weight:900;margin-bottom:28px;padding-bottom:0;border-left:5px solid var(--primary-accent);padding-left:20px;color:var(--primary-color);letter-spacing:-.4px;display:block;text-transform:uppercase;font-size:1.2rem;letter-spacing:.8px}.project-detail-section p{font-size:1.1rem;line-height:1.9;color:var(--text-color);margin:0 0 12px}.project-detail-section ul{list-style:none;padding-left:0;margin:0}.project-detail-section li{margin-bottom:20px;padding-left:32px;position:relative;font-weight:500;font-size:1.05rem;line-height:1.8;color:var(--text-color)}.project-detail-section li:before{content:"✓";position:absolute;left:0;color:var(--accent-color);font-size:1.3rem;font-weight:900}.tech-list{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;margin-bottom:24px}.tech-tag{background:var(--bg-secondary);color:var(--text-secondary);padding:8px 16px;border-radius:var(--radius-full);font-size:.875rem;font-weight:600;border:1px solid var(--border-light);transition:all var(--transition-fast)}.tech-tag:hover{background:#2563eb14;color:#2563eb;border-color:#2563eb4d;transform:translateY(-2px)}.repo-list{display:flex;flex-direction:column;gap:12px;margin-top:16px}.repo-link{display:flex;align-items:center;justify-content:space-between;background:var(--bg-primary);padding:16px 24px;border-radius:var(--radius-md);text-decoration:none;color:var(--text-primary);font-weight:600;font-size:.9375rem;transition:all var(--transition-base);border:1px solid var(--border-light);box-shadow:var(--shadow-xs)}.repo-link:after{content:"→";font-size:1.25rem;transition:transform var(--transition-fast);color:var(--text-tertiary)}.repo-link:hover{background:#2563eb0d;color:#2563eb;border-color:#2563eb;transform:translate(6px);box-shadow:var(--shadow-md)}.repo-link:hover:after{transform:translate(4px);color:#2563eb}@media (max-width: 768px){.project-detail-page{margin:40px auto;padding:16px}.back-button{margin-bottom:32px;padding:10px 16px;font-size:.85rem}.project-detail-header{padding:28px;margin-bottom:40px}.project-detail-header h1{font-size:2rem}.project-detail-body{padding:32px}.project-detail-section{margin-bottom:40px}.project-detail-section h2{font-size:1.1rem;margin-bottom:20px}.project-detail-section li{font-size:1rem;margin-bottom:16px}.main-media{max-height:400px}.gallery-main-image{padding:8px}.fullscreen-button{width:44px;height:44px;bottom:16px;right:16px}.gallery-thumbnails{padding:16px;gap:12px;margin-bottom:40px}.thumbnail-item{width:100px;height:75px}.tech-tag{font-size:.8rem;padding:8px 14px}.repo-link{font-size:.85rem;padding:14px 16px}}.lightbox-overlay{position:fixed;inset:0;background-color:#0f172abf;display:flex;justify-content:center;align-items:center;z-index:2000;animation:fadeIn .3s ease-out}.lightbox-content{position:relative;max-width:80vw;max-height:80vh}.lightbox-content img,.lightbox-content video{max-width:100%;max-height:100%;display:block;border-radius:8px}.lightbox-close-button{position:absolute;top:-40px;right:0;background:transparent;color:#fff;border:none;font-size:3rem;cursor:pointer;line-height:1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}:root{--primary: #2563eb;--primary-light: #3b82f6;--primary-dark: #1e40af;--accent-purple: #7c3aed;--accent-green: #10b981;--accent-amber: #f59e0b;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #94a3b8;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-elevated: #ffffff;--border-light: rgba(148, 163, 184, .1);--border-medium: rgba(148, 163, 184, .2);--background-color: #f8fafc;--text-color: #0f172a;--text-color-hover: #475569;--primary-color: #2563eb;--header-bg-color: rgba(255, 255, 255, .8);--card-bg-color: #ffffff;--card-bg-hover: #f1f5f9;--footer-text-color: #64748b;--footer-border-color: rgba(148, 163, 184, .2);--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-soft: 0 18px 40px rgba(15, 23, 42, .08);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--content-max-width: 1400px;--page-horizontal-padding: 80px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .6s cubic-bezier(.34, 1.56, .64, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-padding-top:100px;scroll-behavior:smooth;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Inter,SF Pro Display,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#f8fafc,#f1f5f9);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img,video{max-width:100%;height:auto;display:block}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--primary),var(--accent-purple));border-radius:var(--radius-full);border:2px solid var(--bg-secondary)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--primary-light),var(--accent-purple))}::selection{background:var(--primary);color:#fff}.btn-primary{position:relative;background:linear-gradient(135deg,var(--primary) 0%,var(--accent-purple) 100%);color:#fff;border:none;border-radius:var(--radius-full);padding:14px 32px;font-size:.95rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:all var(--transition-base);box-shadow:0 4px 12px #2563eb4d;overflow:hidden}.btn-primary:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent);opacity:0;transition:opacity var(--transition-base)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #2563eb66}.btn-primary:hover:before{opacity:1}.btn-primary .icon{width:20px;height:20px;fill:#fff}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:2px solid var(--border-medium);border-radius:var(--radius-full);padding:12px 30px;font-size:.95rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:all var(--transition-base)}.btn-secondary:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-secondary .icon{width:20px;height:20px;fill:currentColor}.App{min-height:100vh;padding-top:64px;display:flex;flex-direction:column}.app-main{flex:1;width:100%;max-width:var(--content-max-width);margin:0 auto;padding:0 var(--page-horizontal-padding)}.section{margin-top:64px;animation:fadeInUp .8s var(--transition-base)}.section:first-of-type{margin-top:40px}.section--skills{padding-top:0;padding-left:0;padding-right:0;color:var(--text-primary);margin-bottom:80px}.section-title{font-size:2rem;font-weight:800;background:linear-gradient(135deg,var(--text-primary) 0%,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.03em;margin-bottom:32px;position:relative;display:inline-block;padding-bottom:16px}.section-title:after{content:"";position:absolute;bottom:0;left:0;width:60px;height:4px;background:linear-gradient(90deg,var(--primary) 0%,var(--accent-purple) 100%);border-radius:var(--radius-full);animation:expandWidth .6s ease-out forwards}.skills-categories{display:flex;flex-direction:column;gap:0}@keyframes expandWidth{0%{width:0;opacity:0}to{width:60px;opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.header,.header__nav a,.theme-toggle-label,.row,.modal-content,.modal-period,.tech-tag,.footer{transition:background-color .3s ease,color .3s ease,border-color .3s ease}@media (max-width: 1024px){:root{--page-horizontal-padding: 40px}}@media (max-width: 768px){:root{--page-horizontal-padding: 20px}.App{padding-top:64px}.app-main{padding:0 var(--page-horizontal-padding)}.section{margin-top:80px}.section:first-of-type{margin-top:40px}.section-title{font-size:1.5rem;margin-bottom:20px;padding-bottom:12px;margin-left:0}.section-title:after{width:40px;height:3px}.section--skills{margin-bottom:48px;padding:0 20px}}@media (min-width: 769px){.banner__buttons .btn-primary,.banner__buttons .btn-secondary{padding:14px 32px;font-size:1rem}.banner__buttons .btn-primary .icon,.banner__buttons .btn-secondary .icon{width:22px;height:22px}}
