pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#c678dd}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#98c379}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#d19a66}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}:root{--bg:#21252b;--bg2:#282c34;--card:#2c313c;--border:#abb2bf14;--border2:#abb2bf26;--text:#abb2bf;--text2:#818896;--text3:#5c6370;--red:#e06c75;--red-glow:#e06c7526;--red-dim:#e06c7514;--f-d:"Rajdhani", sans-serif;--f-b:"Noto Sans SC", system-ui, -apple-system, sans-serif;--f-m:"JetBrains Mono", "SF Mono", "Fira Code", monospace;--sp-xs:4px;--sp-sm:8px;--sp-md:16px;--sp-lg:28px;--sp-xl:48px;--sp-2xl:80px;--sp-3xl:120px;--sp-4xl:160px;--line-loud:4px;--line-speak:1px;--line-whisper:.5px;--ease-expo:cubic-bezier(.19, 1, .22, 1);--ease-smooth:cubic-bezier(0, 0, .2, 1);--ease-power3:cubic-bezier(.16, .64, .31, 1);--ease-power4:cubic-bezier(.12, .68, .29, 1);--ease-back:cubic-bezier(.34, 1.56, .64, 1);--ease-spring:cubic-bezier(.68, -.55, .27, 1.55);--r-sm:2px;--r-md:4px;--ts-hero:clamp(42px, 6.5vw, 100px);--ts-h1:clamp(32px, 4.5vw, 54px);--ts-h2:clamp(28px, 4vw, 44px);--ts-h3:clamp(20px, 2.5vw, 28px);--ts-body-lg:clamp(15px, 2vw, 18px);--ts-body:14px;--ts-caption:11px;--ts-label:10px;--ts-tag:9px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--f-b);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.8;overflow-x:hidden}a{color:inherit;text-decoration:none}img,video{max-width:100%;display:block}#root{z-index:1;min-height:100vh;position:relative}.f-d{font-family:var(--f-d)}.f-b{font-family:var(--f-b)}.f-m{font-family:var(--f-m)}.c-red{color:var(--red)}.c2{color:var(--text2)}.c3{color:var(--text3)}body:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:48px 48px;position:fixed;inset:0}body:after{content:"";pointer-events:none;z-index:9999;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' 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-size:150px;position:fixed;inset:0}.bg-glow:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(at 20% 10%,#c41e1e0d 0,#0000 50%),radial-gradient(at 80% 90%,#ffffff05 0,#0000 50%);position:fixed;inset:0}@keyframes charUp{0%{opacity:0;filter:blur(4px);transform:translateY(.6em)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes lineGrow{0%{width:0}to{width:100%}}@keyframes blurIn{0%{opacity:0;filter:blur(12px);transform:translateY(16px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes glitchShift{0%,to{transform:translate(0)}20%{transform:translate(-1px,.5px)}40%{transform:translate(1px,-.5px)}60%{transform:translate(-.5px,1px)}80%{transform:translate(.5px)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 20px var(--red-glow),0 0 60px #c41e1e0a}50%{box-shadow:0 0 35px var(--red-glow),0 0 90px #c41e1e14}}@keyframes scanlineScroll{0%{background-position:0 0}to{background-position:0 4px}}.char-reveal{opacity:0;animation:charUp .55s var(--ease-back) forwards;display:inline-block}.blur-reveal{opacity:0;filter:blur(12px);transition:opacity .8s var(--ease-expo),filter .8s var(--ease-expo),transform .8s var(--ease-expo);transform:translateY(16px)}.blur-reveal.visible{opacity:1;filter:blur();transform:translateY(0)}.line-extend{transition:width .7s var(--ease-expo);width:0!important}.line-extend.visible{width:100%!important}.glitch-hover{transition:transform .2s var(--ease-smooth),box-shadow .2s var(--ease-smooth),border-color .2s}.glitch-hover:hover{box-shadow:0 2px 12px var(--red-glow);transform:translateY(-1px)}.scanline-overlay:after{content:"";pointer-events:none;z-index:2;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#ffffff03 2px 3px);animation:.15s linear infinite scanlineScroll;position:absolute;inset:0}.card-glow:hover{box-shadow:0 0 40px var(--red-glow),0 20px 60px #0006!important;border-color:#c41e1e40!important}.mouse-glow-area{position:relative;overflow:hidden}.mouse-glow-el{pointer-events:none;z-index:0;opacity:0;background:radial-gradient(circle,#c41e1e12 0,#0000 60%);border-radius:50%;width:450px;height:450px;transition:opacity .4s;position:absolute;transform:translate(-50%,-50%)}.hero-sequence>*{opacity:0;animation:blurIn .7s var(--ease-expo) forwards}.hero-sequence>:first-child{animation-delay:50ms}.hero-sequence>:nth-child(2){animation-delay:.12s}.hero-sequence>:nth-child(3){animation-delay:.24s}.hero-sequence>:nth-child(4){animation-delay:.4s}.hero-sequence>:nth-child(5){animation-delay:.55s}.hero-sequence>:nth-child(6){animation-delay:.7s}.hero-sequence>:nth-child(7){animation-delay:.85s}.container{max-width:1400px;padding:0 var(--sp-xl);margin:0 auto}.section{padding-bottom:var(--sp-4xl)}.section-sm{padding-bottom:var(--sp-2xl)}.nav{z-index:50;height:52px;padding:0 var(--sp-xl);-webkit-backdrop-filter:blur(20px)saturate(180%);border-bottom:var(--line-whisper) solid var(--border);transition:transform .4s var(--ease-expo);background:#21252be0;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.nav-hidden{transform:translateY(-100%)}.nav-logo{font-family:var(--f-d);letter-spacing:-.01em;font-size:16px;font-weight:700}.nav-links{gap:40px;display:flex}.nav-link{font-family:var(--f-m);font-size:var(--ts-label);letter-spacing:.08em;color:var(--text3);transition:color .25s var(--ease-smooth)}.nav-link:hover{color:var(--red)}.sec-header{margin-bottom:var(--sp-2xl)}.sec-label{font-family:var(--f-m);font-size:var(--ts-label);letter-spacing:.15em;color:var(--red);margin-bottom:var(--sp-sm)}.sec-title{font-family:var(--f-d);font-size:var(--ts-h1);letter-spacing:-.04em;margin:0 0 var(--sp-sm);font-weight:900;line-height:1}.sec-line{background:var(--red);width:60px;height:3px;margin-top:var(--sp-sm)}.sec-line-2{height:var(--line-whisper);background:var(--border);width:100%;margin-top:6px}.line-group{align-items:center;gap:12px;display:flex}.line-group .lg-loud{background:var(--red);width:120px;height:5px}.line-group .lg-speak{width:60px;height:var(--line-speak);background:var(--border2)}.line-group .lg-whisper{width:30px;height:var(--line-whisper);background:var(--border)}.line-group.lg-sm .lg-loud{width:80px;height:5px}.line-group.lg-sm .lg-speak{width:50px}.line-group.lg-sm .lg-whisper{width:30px}.line-group.lg-xs .lg-loud{width:100px;height:4px}.line-group.lg-xs .lg-speak{width:60px}.line-group.lg-xs .lg-whisper{width:30px}.l-corner{position:relative}.l-corner:before{content:"";border-top:2px solid var(--red);border-left:2px solid var(--red);opacity:0;width:18px;height:18px;transition:opacity .45s var(--ease-expo);z-index:2;pointer-events:none;position:absolute;top:10px;left:10px}.l-corner:after{content:"";border-bottom:2px solid var(--red);border-right:2px solid var(--red);opacity:0;width:18px;height:18px;transition:opacity .45s var(--ease-expo);z-index:2;pointer-events:none;position:absolute;bottom:10px;right:10px}.l-corner:hover:before,.l-corner:hover:after{opacity:.6}.card{background:var(--card);border:var(--line-whisper) solid var(--border);transition:transform .45s var(--ease-expo),box-shadow .45s var(--ease-expo),border-color .45s;display:block;overflow:hidden}.card:hover{transform:translateY(-8px)}.card-media{aspect-ratio:16/9;background:linear-gradient(135deg,#ffffff05,var(--red-dim));justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.card-video{object-fit:cover;opacity:.85;width:100%;height:100%;transition:opacity .4s;position:absolute;inset:0}.card:hover .card-video{opacity:1}.card-media-label{font-family:var(--f-m);font-size:var(--ts-caption);letter-spacing:.1em;color:var(--red)}.card-body{padding:28px 32px 32px}.card-tags{gap:var(--sp-sm);margin-bottom:var(--sp-md);flex-wrap:wrap;display:flex}.card-title{margin:0 0 var(--sp-sm);letter-spacing:-.01em;font-size:19px;font-weight:700;line-height:1.4}.card-desc{font-size:var(--ts-body);color:var(--text2);margin:0;line-height:1.9}.card-cta{align-items:center;gap:var(--sp-sm);color:var(--red);font-size:var(--ts-label);font-family:var(--f-m);letter-spacing:.06em;opacity:0;transition:opacity .35s var(--ease-smooth);margin-top:20px;display:flex}.card:hover .card-cta{opacity:1}.tag{font-family:var(--f-m);font-size:var(--ts-tag);letter-spacing:.06em;transition:transform .2s var(--ease-smooth),box-shadow .2s,opacity .2s;padding:4px 12px}.tag-red{color:var(--red);border:var(--line-whisper) solid var(--red);opacity:.7}.tag-red:hover{opacity:1;box-shadow:0 0 10px var(--red-glow)}.tag-outline{border:var(--line-whisper) solid var(--border2);color:var(--text3)}.tag-outline:hover{color:var(--red);border-color:var(--red)}.tag-ghost{border:var(--line-whisper) solid var(--text3);color:var(--text3);opacity:.4}.tag-ghost:hover{opacity:.7;border-color:var(--text2)}.tag-badge{color:var(--red);border:var(--line-whisper) solid var(--red);opacity:.6;font-size:var(--ts-label);padding:6px 14px}.tag-badge:hover{opacity:.9;box-shadow:0 0 12px var(--red-glow)}.footer{border-top:var(--line-whisper) solid var(--border);padding:40px var(--sp-xl)}.footer-inner{align-items:center;gap:24px;display:flex}.footer-divider{height:var(--line-whisper);background:var(--border);flex:1}.footer-links{font-family:var(--f-m);gap:24px;display:flex}.footer-link{font-size:var(--ts-label);color:var(--text3);letter-spacing:.06em;transition:color .2s}.footer-link:hover{color:var(--red)}.footer-copy{font-family:var(--f-m);font-size:var(--ts-tag);letter-spacing:.06em;color:var(--text3);margin-top:12px}.skills-grid{margin-top:var(--sp-2xl);flex-wrap:wrap;gap:6px;display:flex}.skill-tag{font-family:var(--f-m);font-size:var(--ts-label);letter-spacing:.06em;border:var(--line-whisper) solid var(--border);color:var(--text3);cursor:default;white-space:nowrap;transition:color .25s,border-color .25s,background .25s,transform .2s var(--ease-smooth),box-shadow .2s;padding:7px 14px}.skill-tag:hover{color:var(--red);border-color:var(--red);background:var(--red-dim);box-shadow:0 4px 16px var(--red-glow);transform:translateY(-2px)}.hero-section{align-items:center;min-height:calc(100vh - 52px);display:flex;overflow:hidden}.hero-inner{gap:var(--sp-3xl);max-width:1400px;padding:var(--sp-xl);grid-template-columns:1.2fr .8fr;align-items:center;width:100%;margin:0 auto;display:grid}.hero-text{z-index:1;position:relative}.hero-label{font-family:var(--f-m);font-size:var(--ts-label);letter-spacing:.15em;color:var(--red);margin-bottom:var(--sp-md)}.hero-headline{font-family:var(--f-d);font-size:var(--ts-hero);letter-spacing:-.05em;font-weight:900;line-height:.82}.hero-headline .char-reveal{animation-duration:.6s}.hero-sub{font-size:var(--ts-body-lg);color:var(--text2);margin-top:20px;margin-left:4px;font-weight:400;line-height:1.2}.hero-sub .en{font-family:var(--f-d);font-weight:700}.hero-sub .sep{color:var(--text3);margin:0 12px}.hero-desc{font-size:var(--ts-body-lg);color:var(--text2);max-width:520px;margin-top:56px;line-height:2.4}.hero-desc .dim{color:var(--text3)}.hero-stats{align-items:center;gap:var(--sp-md);margin-top:var(--sp-xl);display:flex}.hero-stats-text{font-family:var(--f-m);font-size:var(--ts-label);letter-spacing:.1em;color:var(--text3);white-space:nowrap}.hero-visual{justify-content:center;align-items:center;height:100%;min-height:420px;display:flex;position:relative}.hero-visual-ring{border:1px solid var(--border2);animation:blurIn 1s var(--ease-expo) forwards;opacity:0;border-radius:50%;animation-delay:1.4s;position:absolute}.hero-visual-ring.r1{width:340px;height:340px}.hero-visual-ring.r2{width:260px;height:260px;animation-delay:1.55s}.hero-visual-ring.r3{border-color:var(--red);opacity:.3;width:180px;height:180px;animation-delay:1.7s}.hero-visual-dot{background:var(--red);width:8px;height:8px;animation:blurIn .7s var(--ease-expo) forwards;opacity:0;border-radius:50%;animation-delay:1.9s;position:absolute}.hero-visual-line{background:var(--border);animation:blurIn .7s var(--ease-expo) forwards;position:absolute}.hero-visual-line.h{opacity:0;width:100px;height:.5px;animation-delay:2s}.hero-visual-line.v{opacity:0;width:.5px;height:100px;animation-delay:2.1s}.hero-visual-bracket{border-color:var(--border2);width:40px;height:40px;animation:blurIn .7s var(--ease-expo) forwards;opacity:0;border-style:solid;position:absolute}.hero-visual-bracket.tl{border-width:1px 0 0 1px;animation-delay:2.2s;top:20px;left:20px}.hero-visual-bracket.br{border-width:0 1px 1px 0;animation-delay:2.3s;bottom:20px;right:20px}.about-lead{font-family:var(--f-d);font-size:var(--ts-h3);letter-spacing:-.02em;color:var(--text);margin:0 0 var(--sp-md);font-weight:700}.about-highlights{margin-top:var(--sp-lg);font-family:var(--f-m);font-size:var(--ts-caption);color:var(--text3);letter-spacing:.04em;flex-direction:column;gap:6px;line-height:1.8;display:flex}.about-grid{gap:var(--sp-3xl);grid-template-columns:1fr .55fr;display:grid}.about-text{color:var(--text2);max-width:520px;margin:0 0 var(--sp-sm);font-size:clamp(15px,1.8vw,18px);line-height:2.4}.about-stats-col{flex-direction:column;gap:0;padding-top:0;display:flex}.stat-item{align-items:center;gap:var(--sp-lg);padding:var(--sp-lg) 0;border-bottom:var(--line-whisper) solid var(--border);display:flex}.stat-item:last-child{border-bottom:none}.stat-number{font-family:var(--f-d);min-width:80px;font-size:clamp(48px,6vw,72px);font-weight:900;line-height:.85}.stat-label{font-family:var(--f-m);font-size:var(--ts-label);letter-spacing:.06em;color:var(--text3);line-height:1.6}.work-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.challenge-grid{gap:var(--sp-2xl);grid-template-columns:1fr 1fr;align-items:start;margin-bottom:100px;display:grid}.challenge-text{padding:var(--sp-sm) 0 var(--sp-sm) 36px}.challenge-text.left{border-left:5px solid var(--red)}.challenge-text.right{border-right:5px solid var(--red);padding:var(--sp-sm) 36px var(--sp-sm) 0;text-align:right}.challenge-num{font-family:var(--f-d);color:var(--red);opacity:.2;margin-bottom:20px;font-size:clamp(48px,5vw,72px);font-weight:900;line-height:.8}.challenge-label{font-family:var(--f-m);font-size:var(--ts-label);letter-spacing:.1em;color:var(--red);margin-bottom:var(--sp-md)}.challenge-title{font-size:var(--ts-h3);letter-spacing:-.02em;margin:0 0 20px;font-weight:700;line-height:1.3}.challenge-desc{color:var(--text2);margin:0 0 28px;font-size:15px;line-height:2.3}.challenge-desc.right{max-width:480px;margin-left:auto}.challenge-deco{flex-direction:column;padding-top:12px;display:flex}.challenge-deco.right{align-items:flex-end}.challenge-deco .cd-loud{background:var(--red);width:80px;height:6px;margin-bottom:12px}.challenge-deco .cd-speak{width:120px;height:var(--line-speak);background:var(--border2);margin-bottom:10px}.challenge-deco .cd-whisper{width:60px;height:var(--line-whisper);background:var(--border)}.code-panel{border:var(--line-whisper) solid var(--border);background:var(--card);border-top:0;position:relative;overflow:hidden}.code-header{border-bottom:var(--line-whisper) solid var(--border);background:var(--bg2);font-family:var(--f-m);font-size:var(--ts-tag);color:var(--text3);justify-content:space-between;padding:10px 16px;display:flex}.code-body{font-family:var(--f-m);color:var(--text);z-index:1;margin:0;padding:24px;font-size:11px;line-height:1.9;position:relative;overflow-x:auto}.code-body code{font-family:inherit}.tab-bar{border-bottom:var(--line-whisper) solid var(--border);gap:0;display:flex}.tab-btn{font-family:var(--f-m);font-size:var(--ts-label);letter-spacing:.06em;cursor:pointer;color:var(--text3);background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 18px;transition:color .2s,border-color .2s}.tab-btn.active{color:var(--red);border-bottom-color:var(--red)}.tab-btn:hover{color:var(--text)}.preview-box{aspect-ratio:16/9;border:var(--line-whisper) solid var(--border);background:var(--card);justify-content:center;align-items:center;display:flex}.preview-box-label{font-family:var(--f-m);font-size:var(--ts-label);letter-spacing:.08em;color:var(--red)}.info-card{border:var(--line-whisper) solid var(--border);background:var(--card);padding:24px}.info-card-label{font-family:var(--f-m);font-size:var(--ts-label);letter-spacing:.08em;color:var(--red);margin-bottom:12px}.info-card-text{color:var(--text2);margin:0;font-size:13px;line-height:2.2}.detail-hero{margin-top:52px;padding:100px 0 80px}.detail-tags{gap:var(--sp-sm);flex-wrap:wrap;margin-bottom:20px;display:flex}.detail-title{font-size:var(--ts-h1);letter-spacing:-.04em;margin:0 0 20px;font-weight:900;line-height:1.02}.detail-sub{font-size:var(--ts-body-lg);color:var(--text2);max-width:640px;margin:0;line-height:2.3}.detail-meta{gap:var(--sp-md);margin-top:var(--sp-lg);font-family:var(--f-m);font-size:var(--ts-label);letter-spacing:.06em;color:var(--text3);align-items:center;display:flex}.detail-video{aspect-ratio:16/9;margin-top:var(--sp-xl);border:var(--line-whisper) solid var(--border);background:linear-gradient(135deg,#ffffff05,var(--red-dim));justify-content:center;align-items:center;display:flex}.detail-video-el{object-fit:cover;width:100%;height:100%;display:block}.detail-video-label{font-family:var(--f-m);letter-spacing:.1em;color:var(--red);margin-bottom:var(--sp-sm);font-size:14px}.detail-video-sub{color:var(--text3);font-size:13px}.reveal{opacity:0;transition:opacity .8s var(--ease-expo),transform .8s var(--ease-expo);transform:translateY(32px)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-stagger>*{opacity:0;transition:opacity .6s var(--ease-expo),transform .6s var(--ease-expo);transform:translateY(24px)}.reveal-stagger.visible>:first-child{opacity:1;transition-delay:0s;transform:translateY(0)}.reveal-stagger.visible>:nth-child(2){opacity:1;transition-delay:60ms;transform:translateY(0)}.reveal-stagger.visible>:nth-child(3){opacity:1;transition-delay:.12s;transform:translateY(0)}.reveal-stagger.visible>:nth-child(4){opacity:1;transition-delay:.18s;transform:translateY(0)}.reveal-stagger.visible>:nth-child(5){opacity:1;transition-delay:.24s;transform:translateY(0)}.reveal-stagger.visible>:nth-child(6){opacity:1;transition-delay:.3s;transform:translateY(0)}.reveal-stagger.visible>:nth-child(7){opacity:1;transition-delay:.36s;transform:translateY(0)}.reveal-stagger.visible>:nth-child(8){opacity:1;transition-delay:.42s;transform:translateY(0)}.reveal-stagger.visible>:nth-child(9){opacity:1;transition-delay:.48s;transform:translateY(0)}@media (width<=900px){:root{--ts-hero:clamp(32px,9vw,60px);--ts-h1:clamp(24px,6vw,36px);--sp-xl:24px;--sp-3xl:64px;--sp-4xl:80px}.nav{padding:0 24px}.nav-links{gap:24px}.container{padding:0 24px}.hero-inner{padding:80px 24px 64px}.work-grid{grid-template-columns:1fr;gap:16px}.about-grid{grid-template-columns:1fr;gap:40px}.about-text{max-width:100%}.challenge-grid{grid-template-columns:1fr;gap:32px;margin-bottom:60px}.challenge-text.right{border-right:none;border-left:5px solid var(--red);padding:var(--sp-sm) 0 var(--sp-sm) 24px;text-align:left}.challenge-deco{display:none}.challenge-desc.right{max-width:none;margin-left:0}.hero-inner{grid-template-columns:1fr;gap:0}.hero-visual{display:none}.card-body{padding:20px 24px 24px}.footer-inner{flex-wrap:wrap;gap:12px}.mouse-glow-el{display:none}}@media (width<=540px){:root{--sp-xl:16px;--sp-3xl:48px;--sp-4xl:60px}.nav-links{gap:16px}.hero-inner{padding:60px 16px 48px}.container{padding:0 16px}.sec-header{margin-bottom:40px}.challenge-num{font-size:36px}.stat-number{font-size:56px}.card-body{padding:16px 20px 20px}.card-title{font-size:17px}.footer{padding:32px 16px}.detail-hero{padding:60px 0 48px}}
