:root{--warm-deep:#2c1810;--warm-dark:#4a2c1a;--warm-primary:#e87a3d;--warm-accent:#f4a261;--warm-gold:#ffcb77;--warm-terracotta:#c0562a;--warm-coral:#d35400;--warm-cream:#fff8ee;--warm-ivory:#faf0e4;--warm-sand:#f5e6d3;--warm-warm-gray:#a68b72;--warm-light:#e87a3d14;--bg-body:#fffcf7;--bg-section-alt:var(--warm-cream);--bg-card:#fff;--text-primary:var(--warm-deep);--text-secondary:var(--warm-dark);--text-muted:var(--warm-warm-gray);--accent:var(--warm-primary);--accent-hover:var(--warm-terracotta);--accent-glow:#e87a3d26;--font-cn:"Sarasa Gothic SC", "PingFang SC", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif;--font-en:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "SF Mono", "Fira Code", monospace;--max-w:1300px;--page-pad-x:80px;--section-py:120px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-cn);color:var(--text-primary);background:var(--bg-body);line-height:1.65;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}img{max-width:100%;display:block}.portfolio-page{max-width:1700px;margin:0 auto;position:relative}.header{z-index:1000;height:72px;padding:0 var(--page-pad-x);justify-content:space-between;align-items:center;transition:all .4s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;left:0;right:0}.header:after{content:"";opacity:0;background:linear-gradient(90deg,#0000,#e87a3d26,#0000);height:1px;transition:opacity .4s;position:absolute;bottom:0;left:0;right:0}.header.scrolled{-webkit-backdrop-filter:blur(20px)saturate(180%);background:#fffcf7d1;box-shadow:0 1px 24px #2c18100f}.header.scrolled:after{opacity:1}.logo{z-index:2;align-items:center;gap:12px;display:flex}.logo-mark{color:#fff;background:linear-gradient(135deg, var(--warm-primary), var(--warm-terracotta));width:42px;height:42px;font-size:26px;font-weight:800;font-family:var(--font-en);letter-spacing:-.5px;border-radius:10px;justify-content:center;align-items:center;display:flex}.logo-text{font-family:var(--font-en);letter-spacing:3px;color:var(--text-secondary);text-transform:uppercase;font-size:13px;font-weight:600}.nav{align-items:center;gap:8px;display:flex}.nav-link{color:var(--text-secondary);letter-spacing:.02em;border-radius:8px;align-items:center;gap:6px;padding:8px 18px;font-size:14px;font-weight:500;transition:all .25s;display:flex;position:relative}.nav-link:hover{color:var(--warm-primary);background:var(--warm-light)}.nav-num{font-family:var(--font-en);color:var(--warm-warm-gray);opacity:.5;font-size:11px;font-weight:700;transition:opacity .25s}.nav-link:hover .nav-num{opacity:1;color:var(--warm-primary)}.nav-line{background:var(--warm-primary);border-radius:1px;width:16px;height:2px;transition:transform .3s cubic-bezier(.16,1,.3,1);position:absolute;bottom:2px;left:50%;transform:translate(-50%)scaleX(0)}.nav-link:hover .nav-line{transform:translate(-50%)scaleX(1)}.hero-section{align-items:center;min-height:100vh;margin-top:72px;display:flex;position:relative;overflow:hidden}.hero-carousel{z-index:0;position:absolute;inset:0}.hero-slide{opacity:0;transition:opacity 1s,transform 1.2s cubic-bezier(.65,0,.35,1);position:absolute;inset:0;transform:translate(80px)}.hero-slide.active{opacity:1;transform:translate(0)}.hero-slide img{object-fit:cover;object-position:center 20%;width:100%;height:100%}.hero-overlay{z-index:1;background:linear-gradient(135deg,#2c1810c7 0%,#4a2c1a8c 30%,#c0562a40 60%,#e87a3d2e 100%);position:absolute;inset:0}.hero-grain{z-index:2;opacity:.03;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:128px 128px;position:absolute;inset:0}.hero-bg-type{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-big-char{font-family:var(--font-en);color:#ffffff09;-webkit-user-select:none;user-select:none;white-space:nowrap;letter-spacing:-.02em;font-weight:900;line-height:.85;position:absolute}.hero-char-1{font-size:clamp(200px,22vw,420px);top:-4%;left:-2%}.hero-char-2{font-size:clamp(160px,18vw,360px);top:28%;right:-6%}.hero-char-3{font-size:clamp(140px,16vw,320px);bottom:-6%;left:10%}.hero-char-4{color:#ffcb770a;font-size:clamp(120px,14vw,280px);top:45%;left:38%}.geo-line{z-index:2;background:linear-gradient(#ffcb7733,#0000);position:absolute}.geo-line-1{width:1px;height:140px;top:18%;right:12%;transform:rotate(15deg)}.geo-line-2{width:80px;height:1px;bottom:22%;left:8%}.geo-dot{z-index:2;background:#e87a3d4d;border-radius:50%;position:absolute}.geo-dot-1{width:6px;height:6px;top:32%;right:22%}.geo-dot-2{background:#ffcb7766;width:4px;height:4px;bottom:36%;left:18%}.hero-container{z-index:10;width:100%;max-width:var(--max-w);padding:0 var(--page-pad-x) 80px;justify-content:space-between;align-items:flex-end;gap:48px;margin:0 auto;display:flex;position:relative}.hero-left{flex-direction:column;flex:1;gap:28px;max-width:720px;display:flex}.hero-label{font-family:var(--font-en);letter-spacing:3px;text-transform:uppercase;color:var(--warm-gold);align-items:center;gap:14px;font-size:12px;font-weight:600;display:flex}.label-line{background:var(--warm-gold);border-radius:1px;width:40px;height:2px}.hero-name{flex-direction:column;gap:4px;display:flex}.name-line-1{color:#fff;letter-spacing:-.01em;text-shadow:0 4px 40px #0003;font-size:clamp(52px,7vw,88px);font-weight:900;line-height:1.05}.name-line-2{font-family:var(--font-en);color:#ffcb77bf;letter-spacing:8px;text-transform:uppercase;margin-left:3px;font-size:clamp(16px,2vw,24px);font-weight:400}.hero-desc{color:#ffffffb8;max-width:520px;font-size:16px;font-weight:400;line-height:1.85}.hero-actions{align-items:center;gap:16px;margin-top:8px;display:flex}.btn-primary{background:linear-gradient(135deg, var(--warm-primary), var(--warm-terracotta));color:#fff;letter-spacing:.03em;border-radius:10px;align-items:center;gap:10px;padding:15px 34px;font-size:15px;font-weight:600;transition:all .35s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 8px 32px #c0562a59}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 44px #c0562a73}.btn-outline{color:#ffffffd9;letter-spacing:.03em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1.5px solid #ffffff40;border-radius:10px;padding:15px 30px;font-size:15px;font-weight:500;transition:all .3s}.btn-outline:hover{color:#fff;background:#ffffff1a;border-color:#ffffff73}.hero-right{flex-shrink:0}.info-card{-webkit-backdrop-filter:blur(24px);background:#ffffff12;border:1px solid #ffffff1a;border-radius:16px;width:260px;padding:28px 32px}.info-card-header{font-family:var(--font-en);letter-spacing:2px;text-transform:uppercase;color:#ffcb77b3;align-items:center;gap:8px;margin-bottom:20px;font-size:11px;font-weight:600;display:flex}.info-card-dot{background:var(--warm-gold);border-radius:50%;width:6px;height:6px}.info-stats{align-items:center;gap:0;margin-bottom:22px;display:flex}.stat-item{flex-direction:column;flex:1;gap:4px;padding:0 4px;display:flex}.stat-num{font-family:var(--font-en);color:#fff;letter-spacing:-.5px;font-size:22px;font-weight:800}.stat-label{color:#ffffff73;letter-spacing:.5px;text-transform:uppercase;font-size:11px}.stat-divider{background:#ffffff1f;width:1px;height:36px}.info-footer{color:#fff6;border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;padding-top:18px;font-size:11px;display:flex}.year-badge{font-family:var(--font-en);color:var(--warm-gold);background:#ffcb771f;border-radius:4px;padding:2px 8px;font-size:13px;font-weight:700}.scroll-indicator{bottom:36px;left:var(--page-pad-x);z-index:10;flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute}.scroll-line{background:linear-gradient(#fff6,#0000);width:1px;height:48px;animation:2s ease-in-out infinite scrollPulse}.scroll-indicator span{font-family:var(--font-en);letter-spacing:3px;color:#ffffff59;text-transform:uppercase;font-size:9px}@keyframes scrollPulse{0%,to{opacity:.4;transform:scaleY(1)}50%{opacity:1;transform-origin:top;transform:scaleY(1.2)}}.carousel-dots{bottom:36px;right:var(--page-pad-x);z-index:10;gap:10px;display:flex;position:absolute}.carousel-dot{background:#fff3;border-radius:2px;width:28px;height:4px;padding:0;transition:all .4s cubic-bezier(.16,1,.3,1);overflow:hidden}.dot-inner{background:var(--warm-gold);transform-origin:0;border-radius:2px;width:100%;height:100%;transition:transform .4s cubic-bezier(.16,1,.3,1);display:block;transform:scaleX(0)}.carousel-dot.active .dot-inner,.carousel-dot:hover .dot-inner{transform:scaleX(1)}.carousel-dot.active{width:36px}.section-header{align-items:center;gap:20px;margin-bottom:56px;display:flex}.section-number{font-family:var(--font-en);color:var(--warm-primary);opacity:.5;letter-spacing:1px;flex-shrink:0;font-size:13px;font-weight:800}.section-title{font-family:var(--font-cn);color:var(--text-primary);letter-spacing:.03em;align-items:baseline;gap:14px;font-size:36px;font-weight:800;line-height:1.2;display:flex}.title-en{font-family:var(--font-en);color:var(--warm-warm-gray);letter-spacing:2px;text-transform:uppercase;opacity:.6;font-size:14px;font-weight:500}.section-line{background:linear-gradient(90deg, var(--warm-light), transparent);flex:1;height:1px}.about-section{width:100%;padding:var(--section-py) var(--page-pad-x);background:var(--warm-cream);position:relative}.about-content{max-width:var(--max-w);align-items:flex-start;gap:64px;margin:0 auto;display:flex}.timeline-col{flex-direction:column;flex:1;display:flex}.timeline{padding-left:32px;position:relative}.timeline:before{content:"";background:linear-gradient(180deg, var(--warm-primary), var(--warm-sand) 40%, var(--warm-sand));border-radius:1px;width:2px;position:absolute;top:8px;bottom:8px;left:5px}.timeline-item{margin-bottom:36px;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-dot{background:var(--warm-primary);border:3px solid var(--bg-body);width:12px;height:12px;box-shadow:0 0 0 2px var(--warm-sand);z-index:1;border-radius:50%;position:absolute;top:6px;left:-32px}.timeline-date{font-family:var(--font-en);color:var(--warm-primary);letter-spacing:1px;margin-bottom:10px;font-size:13px;font-weight:700}.timeline-card{background:var(--bg-card);border:1px solid #e87a3d14;border-radius:14px;padding:24px 28px;transition:all .35s cubic-bezier(.16,1,.3,1);box-shadow:0 4px 24px #2c18100a}.timeline-card:hover{border-color:#e87a3d26;transform:translate(6px);box-shadow:0 8px 32px #c0562a14}.timeline-card-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.timeline-card-header h3{color:var(--text-primary);letter-spacing:-.01em;font-size:18px;font-weight:800}.timeline-degree{color:var(--warm-primary);background:var(--warm-light);letter-spacing:.5px;white-space:nowrap;border-radius:20px;padding:3px 14px;font-size:12px;font-weight:600}.timeline-major{color:var(--warm-warm-gray);margin-bottom:16px;font-size:14px;font-weight:500;display:block}.timeline-points{flex-direction:column;gap:10px;display:flex}.timeline-points p{color:var(--text-secondary);font-size:14px;line-height:1.75}.timeline-points strong{color:var(--warm-terracotta);font-weight:700}.skills-col{background:var(--bg-card);border:1px solid #e87a3d14;border-radius:16px;flex-shrink:0;width:380px;padding:36px;box-shadow:0 4px 24px #2c18100a}.skills-title{color:var(--text-primary);border-bottom:1px solid var(--warm-sand);align-items:baseline;gap:10px;margin-bottom:24px;padding-bottom:16px;font-size:17px;font-weight:700;display:flex}.skills-title-en{font-family:var(--font-en);color:var(--warm-warm-gray);letter-spacing:2px;text-transform:uppercase;font-size:11px;font-weight:500}.skill-tags{flex-direction:column;gap:14px;display:flex}.skill-tag{flex-direction:column;gap:6px;display:flex}.tag-name{color:var(--text-secondary);justify-content:space-between;font-size:14px;font-weight:500;display:flex}.tag-bar{background:var(--warm-sand);border-radius:2px;height:4px;overflow:hidden}.tag-fill{background:linear-gradient(90deg, var(--warm-primary), var(--warm-accent));border-radius:2px;height:100%;transition:width 1s cubic-bezier(.16,1,.3,1)}.video-section{width:100%;padding:var(--section-py) var(--page-pad-x);flex-direction:column;align-items:center;display:flex}.video-grid{max-width:var(--max-w);grid-template-columns:repeat(2,1fr);gap:32px;width:100%;display:grid}.video-card{background:var(--bg-card);border:1px solid #e87a3d0f;border-radius:20px;transition:all .45s cubic-bezier(.16,1,.3,1);overflow:hidden;box-shadow:0 2px 16px #2c18100a}.video-card:hover{border-color:#e87a3d26;transform:translateY(-6px);box-shadow:0 20px 56px #c0562a1f}.video-thumb{background:linear-gradient(135deg, var(--card-accent,var(--warm-terracotta)), var(--warm-accent));cursor:pointer;justify-content:center;align-items:center;height:240px;display:flex;position:relative;overflow:hidden}.video-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .6s;position:absolute;inset:0}.video-card:hover .video-thumb img{transform:scale(1.06)}.video-thumb:after{content:"";pointer-events:none;background:linear-gradient(#0000 50%,#00000040 100%);position:absolute;inset:0}.play-btn{z-index:2;background:#fffffff2;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;transition:transform .35s cubic-bezier(.16,1,.3,1);display:flex;position:relative;box-shadow:0 8px 32px #00000026}.video-card:hover .play-btn{transform:scale(1.1)}.video-info{flex-direction:column;gap:8px;padding:28px 32px;display:flex}.video-subtitle{font-family:var(--font-en);color:var(--card-accent,var(--warm-primary));letter-spacing:2px;text-transform:uppercase;font-size:11px;font-weight:600}.video-info h3{color:var(--text-primary);letter-spacing:-.01em;font-size:22px;font-weight:800}.video-info p{color:var(--text-muted);font-size:14px;line-height:1.6}.video-note{font-family:var(--font-en);color:var(--warm-warm-gray);letter-spacing:2px;opacity:.6;margin-top:48px;font-size:13px}.portfolio-section{width:100%;min-height:100vh;padding:var(--section-py) var(--page-pad-x);perspective:1600px;background:linear-gradient(170deg,#e87a3d 0%,#f4a261 35%,#ffcb77 70%,#fff8ee 100%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.port-bg-text{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.port-big-letter{font-family:var(--font-en);color:#ffffff24;-webkit-user-select:none;user-select:none;white-space:nowrap;letter-spacing:-.02em;font-weight:900;line-height:.82;position:absolute}.port-l-1{font-size:clamp(220px,26vw,500px);top:-6%;left:-3%}.port-l-2{color:#ffffff1a;font-size:clamp(180px,22vw,420px);top:22%;right:-8%}.port-l-3{color:#ffffff14;font-size:clamp(160px,19vw,380px);bottom:-4%;left:6%}.portfolio-stage{z-index:2;width:1400px;height:580px;transform-style:preserve-3d;justify-content:center;align-items:center;margin:40px auto 20px;display:flex;position:relative}.port-card-wrap{transform-style:preserve-3d;animation:6s ease-in-out infinite cardFloat;animation-delay:var(--p-delay,0s);cursor:default;will-change:transform;transition:transform .55s cubic-bezier(.16,1,.3,1),z-index 0s .25s;position:absolute}@keyframes cardFloat{0%,to{transform:translateZ(var(--p-z,0px)) rotateX(var(--p-rot-x,0deg)) rotateY(var(--p-rot-y,0deg)) translateY(0px)}50%{transform:translateZ(var(--p-z,0px)) rotateX(var(--p-rot-x,0deg)) rotateY(var(--p-rot-y,0deg)) translateY(-12px)}}.port-card-1{z-index:1;margin-top:-140px;animation-duration:7s;top:52%;left:1%}.port-card-2{z-index:3;animation-duration:8s;top:38%;left:27%}.port-card-3{z-index:2;margin-top:-20px;animation-duration:6.5s;top:44%;right:27%}.port-card-4{z-index:1;margin-top:-130px;animation-duration:7.5s;top:50%;right:1%}.port-card-wrap:hover{z-index:10!important;animation-play-state:paused!important;transform:translateZ(120px)rotateX(0)rotateY(0)!important}.port-card-wrap:hover .port-card-glow{opacity:1}.portfolio-stage.modal-open .port-card-wrap{animation-play-state:paused!important}.portfolio-stage.modal-open .port-card-shadow,.portfolio-stage.modal-open .port-card-glow{opacity:0!important}.port-card-shadow{filter:blur(12px);background:#2c181026;border-radius:50%;width:70%;height:24px;transition:all .4s;position:absolute;bottom:-30px;left:50%;transform:translate(-50%)}.port-card-wrap:hover .port-card-shadow{opacity:.6;filter:blur(18px);width:85%;bottom:-44px}.port-card-glow{background:radial-gradient(ellipse at center, var(--p-accent) 0%, transparent 70%);opacity:0;filter:blur(28px);z-index:-1;pointer-events:none;border-radius:24px;transition:opacity .45s;position:absolute;inset:-32px}.port-card{background:linear-gradient(165deg,#1a1410 0%,#0d0a08 100%);border-radius:6px;flex-direction:column;width:280px;height:400px;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 60px #00000059,0 8px 24px #00000038,inset 0 1px #ffffff0d}.card-portrait{flex-shrink:0;height:220px;position:relative;overflow:hidden}.card-thumb-grid{background:#0d0a08;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:2px;width:100%;height:100%;transition:transform .5s;display:grid}.port-card-wrap:hover .card-thumb-grid{transform:scale(1.06)}.thumb-cell{position:relative;overflow:hidden}.thumb-cell img{object-fit:cover;width:100%;height:100%}.port-card-wrap:hover .thumb-cell img{filter:brightness(1.1)}.card-portrait:after{content:"";pointer-events:none;z-index:1;background:linear-gradient(#0000,#0d0a08e6);height:50px;position:absolute;bottom:0;left:0;right:0}.card-content{z-index:1;flex-direction:column;flex:1;gap:6px;padding:20px 24px 24px;display:flex;position:relative}.card-name{font-family:var(--font-cn);color:#fff;letter-spacing:-.01em;font-size:20px;font-weight:800;line-height:1.3}.card-role{font-family:var(--font-en);letter-spacing:2.5px;text-transform:uppercase;color:var(--p-accent,var(--warm-primary));margin-top:2px;font-size:11px;font-weight:600}.card-desc{color:#ffffff6b;margin-top:4px;font-size:13px;line-height:1.65}.card-line{background:linear-gradient(90deg, var(--p-accent,var(--warm-primary)), transparent);opacity:.3;height:1px;position:absolute;bottom:0;left:24px;right:24px}.port-footer-label{z-index:2;align-items:center;gap:12px;margin-top:48px;display:flex;position:relative}.port-footer-label span{font-family:var(--font-en);letter-spacing:4px;text-transform:uppercase;color:#2c181059;font-size:13px;font-weight:600}.port-footer-dot{background:var(--warm-primary);opacity:.5;border-radius:50%;width:6px;height:6px}.port-card-wrap{cursor:pointer}.port-card-hint{font-family:var(--font-en);letter-spacing:1.5px;text-transform:uppercase;color:#2c181066;opacity:0;white-space:nowrap;pointer-events:none;align-items:center;gap:4px;font-size:11px;font-weight:600;transition:opacity .3s,bottom .3s;display:flex;position:absolute;bottom:-28px;left:50%;transform:translate(-50%)}.port-card-wrap:hover .port-card-hint{opacity:1;color:var(--p-accent,var(--warm-primary));bottom:-36px}.project-modal-overlay{z-index:1000;background:#0a0604eb;justify-content:center;align-items:center;padding:40px 20px;animation:.35s modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.project-modal{width:100%;max-width:960px;max-height:90vh;box-shadow:0 40px 100px #0009, 0 0 0 1px var(--modal-accent,#c0562a)10;scrollbar-width:thin;scrollbar-color:var(--modal-accent,#c0562a) transparent;background:linear-gradient(#1f1610 0%,#16100c 100%);border:1px solid #ffffff0f;border-radius:16px;animation:.4s cubic-bezier(.16,1,.3,1) modalSlideUp;position:relative;overflow-y:auto}.project-modal::-webkit-scrollbar{width:6px}.project-modal::-webkit-scrollbar-track{background:0 0}.project-modal::-webkit-scrollbar-thumb{background:var(--modal-accent,#c0562a);opacity:.5;border-radius:3px}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-close{z-index:10;color:#fff9;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:all .25s;display:flex;position:absolute;top:18px;right:18px}.modal-close:hover{background:var(--modal-accent,#c0562a);color:#fff;border-color:#0000;transform:rotate(90deg)}.modal-header{padding:40px 48px 24px}.modal-tag{font-family:var(--font-en);letter-spacing:3px;text-transform:uppercase;color:var(--modal-accent,#c0562a);margin-bottom:12px;font-size:11px;font-weight:700;display:inline-block}.modal-title{font-family:var(--font-cn);color:#fff;letter-spacing:-.01em;font-size:28px;font-weight:800;line-height:1.3}.modal-desc{color:#ffffff80;margin-top:12px;font-size:14.5px;line-height:1.75}.modal-gallery{grid-template-columns:repeat(3,1fr);gap:16px;padding:8px 48px 24px;display:grid}.gallery-item{aspect-ratio:4/3;cursor:pointer;background:#0d0a08;border:1px solid #ffffff0f;border-radius:10px;padding:0;transition:border-color .3s;position:relative;overflow:hidden}.gallery-item:hover{border-color:var(--modal-accent,#c0562a)}.gallery-item img{object-fit:cover;width:100%;height:100%}.gallery-overlay{opacity:0;color:#ffffffe6;pointer-events:none;background:linear-gradient(#0000 30%,#000000bf 100%);flex-direction:column;justify-content:flex-end;align-items:center;padding:18px 20px;transition:opacity .25s;display:flex;position:absolute;inset:0}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-caption{font-family:var(--font-cn);color:#fff;letter-spacing:.02em;text-shadow:0 2px 8px #00000080;font-size:15px;font-weight:600}.gallery-zoom-icon{opacity:.5;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gallery-play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.video-player-overlay{z-index:2000;background:#050302f5;justify-content:center;align-items:center;padding:40px;display:flex;position:fixed;inset:0}.video-player{aspect-ratio:16/9;background:#000;border-radius:12px;width:100%;max-width:1200px;position:relative;overflow:hidden;box-shadow:0 40px 80px #0009}.video-player-video{object-fit:contain;width:100%;height:100%}.video-player-close{color:#fff;cursor:pointer;z-index:10;background:#ffffff1a;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:background .2s;display:flex;position:absolute;top:16px;right:16px}.video-player-close:hover{background:#fff3}.modal-footer{color:#ffffff4d;justify-content:space-between;align-items:center;padding:0 48px 36px;font-size:13px;display:flex}.modal-footer-hint{font-family:var(--font-en);letter-spacing:1px}.lightbox-overlay{z-index:1100;background:#050302f5;justify-content:center;align-items:center;animation:.3s modalFadeIn;display:flex;position:fixed;inset:0}.lightbox-close{z-index:10;color:#fff9;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:all .25s;display:flex;position:absolute;top:24px;right:24px}.lightbox-close:hover{background:var(--modal-accent,#c0562a);color:#fff;transform:rotate(90deg)}.lightbox-nav{z-index:10;color:#ffffffb3;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:all .25s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{background:var(--modal-accent,#c0562a);color:#fff;border-color:#0000}.lightbox-prev{left:32px}.lightbox-next{right:32px}.lightbox-content{flex-direction:column;align-items:center;max-width:90vw;max-height:88vh;animation:.35s cubic-bezier(.16,1,.3,1) modalSlideUp;display:flex}.lightbox-content img{object-fit:contain;border-radius:8px;max-width:90vw;max-height:78vh;box-shadow:0 30px 80px #00000080}.lightbox-caption{color:#ffffff80;align-items:center;gap:20px;margin-top:16px;font-size:13px;display:flex}.lightbox-counter{font-family:var(--font-en);letter-spacing:1px;color:var(--modal-accent,#c0562a);font-weight:600}@media (width<=768px){.modal-header{padding:32px 24px 16px}.modal-title{font-size:22px}.modal-gallery{grid-template-columns:1fr;padding:8px 24px 20px}.modal-footer{padding:0 24px 28px}.lightbox-prev{left:12px}.lightbox-next{right:12px}}.contact-section{width:100%;padding:var(--section-py) var(--page-pad-x);background:linear-gradient(165deg, var(--warm-deep) 0%, #4a2c1a 40%, var(--warm-terracotta) 100%);position:relative;overflow:hidden}.contact-deco{pointer-events:none;position:absolute;inset:0;overflow:hidden}.deco-text{font-family:var(--font-en);color:#ffffff06;white-space:nowrap;-webkit-user-select:none;user-select:none;letter-spacing:8px;font-weight:900;line-height:1;position:absolute}.deco-t-1{font-size:clamp(80px,10vw,160px);top:8%;right:-4%;transform:rotate(-6deg)}.deco-t-2{font-size:clamp(60px,8vw,120px);bottom:12%;left:-4%;transform:rotate(4deg)}.deco-t-3{opacity:.5;font-size:clamp(40px,5vw,80px);top:40%;right:8%}.contact-content{z-index:2;max-width:var(--max-w);justify-content:space-between;align-items:flex-end;gap:64px;margin:0 auto;display:flex;position:relative}.contact-left{flex-direction:column;gap:20px;display:flex}.contact-title{color:#fff!important}.contact-desc{color:#fff9;max-width:420px;font-size:15.5px;line-height:1.8}.contact-cards{flex-direction:column;gap:16px;display:flex}.contact-card{-webkit-backdrop-filter:blur(16px);color:#fff;background:#ffffff12;border:1px solid #ffffff1a;border-radius:14px;align-items:center;gap:20px;min-width:340px;padding:22px 28px;transition:all .35s;display:flex}.contact-card:hover{background:#ffffff21;border-color:#ffffff2e;transform:translate(-6px)}.card-icon{width:44px;height:44px;color:var(--warm-accent);background:#e87a3d33;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.card-info{flex-direction:column;flex:1;gap:2px;display:flex}.card-label{font-family:var(--font-en);letter-spacing:2px;text-transform:uppercase;color:#ffcb7799;font-size:11px;font-weight:600}.card-value{font-family:var(--font-en);color:#fff;letter-spacing:.3px;font-size:15px;font-weight:600}.card-arrow{color:#ffffff4d;flex-shrink:0;transition:all .3s}.contact-card:hover .card-arrow{color:var(--warm-gold);transform:translate(4px)}.footer{width:100%;padding:0 var(--page-pad-x);background:var(--warm-deep);border-top:1px solid #ffffff0d}.footer-inner{max-width:var(--max-w);justify-content:space-between;align-items:center;height:68px;margin:0 auto;display:flex}.footer-brand{align-items:center;gap:10px;display:flex}.footer-logo{background:linear-gradient(135deg, var(--warm-primary), var(--warm-terracotta));color:#fff;width:28px;height:28px;font-size:14px;font-weight:800;font-family:var(--font-en);border-radius:7px;justify-content:center;align-items:center;display:flex}.footer-brand span:last-child,.footer-right span{font-family:var(--font-en);color:var(--warm-warm-gray);letter-spacing:1px;font-size:12px}.footer-center span{font-family:var(--font-cn);color:var(--warm-warm-gray);opacity:.5;font-size:12px}@media (width<=1440px){:root{--page-pad-x:60px}.hero-container{flex-direction:column;align-items:flex-start}.hero-right{display:none}.about-content{flex-direction:column}.skills-col{width:100%;max-width:520px}.contact-content{flex-direction:column;align-items:flex-start}.port-card-1{left:0;transform:scale(.8)}.port-card-2{left:25%;transform:scale(.8)}.port-card-3{right:25%;transform:scale(.8)}.port-card-4{right:0;transform:scale(.8)}.portfolio-stage{width:900px;height:500px}.port-big-letter{font-size:clamp(100px,14vw,200px)!important}}@media (width<=1024px){:root{--section-py:80px;--page-pad-x:40px}.video-grid{grid-template-columns:1fr}.hero-char-2,.hero-char-4{display:none}}@media (width<=768px){:root{--section-py:64px;--page-pad-x:24px}.name-line-1{font-size:42px}.hero-actions{flex-direction:column;align-items:stretch}.btn-outline{text-align:center}.portfolio-section{min-height:auto;padding-top:100px;padding-bottom:80px}.portfolio-stage{perspective:none;flex-direction:column;gap:24px;width:300px;height:auto;display:flex;position:relative}.port-card-wrap{width:280px;margin:0 auto!important;animation:none!important;position:relative!important;top:auto!important;left:auto!important;right:auto!important;transform:none!important}.port-card-wrap:hover{transform:scale(1.03)!important}.port-card-shadow,.port-card-glow{display:none}.port-bg-text{opacity:.4}.port-l-1{top:-2%;font-size:clamp(80px,20vw,140px)!important}.port-l-2{display:none}.port-l-3{bottom:0%;font-size:clamp(60px,16vw,120px)!important}.contact-card{min-width:unset;width:100%}.footer-inner{flex-direction:column;gap:12px;height:auto;padding:24px 0}.geo-line-1,.scroll-indicator{display:none}.carousel-dots{left:50%;right:auto;transform:translate(-50%)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.header{animation:.7s both fadeUp}.about-section{animation:.7s .1s both fadeUp}.video-section{animation:.7s .2s both fadeUp}.portfolio-section{animation:.7s .3s both fadeUp}.contact-section{animation:.7s .4s both fadeUp}.footer{animation:.7s .5s both fadeUp}@keyframes slideInLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}.hero-left{animation:.9s cubic-bezier(.16,1,.3,1) .15s both slideInLeft}@keyframes slideInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.hero-right{animation:.9s cubic-bezier(.16,1,.3,1) .35s both slideInRight}@keyframes charFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.hero-char-2{animation:8s ease-in-out infinite charFloat}.hero-char-4{animation:10s ease-in-out 2s infinite charFloat}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.hero-slide{transition:none}}
