        :root{--bg:#0B0D13;--bg2:#101320;--card:#161929;--card2:#1C2035;--text:#EAEAF0;--sub:#7E829A;--accent:#00E8C6;--accent2:#845EF7;--accent3:#3B82F6;--border:#252840;--glow:rgba(0,232,198,0.06)}
        *{margin:0;padding:0;box-sizing:border-box}
        body{font-family:'Pretendard Variable',sans-serif;background:var(--bg);color:var(--text);line-height:1.7;overflow-x:hidden}
        a{color:var(--accent);text-decoration:none}
        .container{max-width:1100px;margin:0 auto;padding:0 2rem}
        .page{display:none;animation:fadeIn .35s ease}.page.active{display:block}
        @keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

        /* ═══ HERO ═══ */
        .hero{position:relative;padding:4rem 0 0;overflow:hidden;background:linear-gradient(180deg,rgba(11,13,19,.74) 0%,rgba(11,13,19,.84) 55%,var(--bg) 100%),url("screenshots/hero_bg.jpg") center top/cover no-repeat}
        .hero::before{content:'';position:absolute;top:-200px;right:-100px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,var(--glow),transparent 70%);pointer-events:none}
        .hero::after{content:'';position:absolute;bottom:-150px;left:-80px;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(132,94,247,0.04),transparent 70%);pointer-events:none}

        .hero-top{display:flex;justify-content:space-between;align-items:stretch;gap:2rem;margin-bottom:2rem}
        .hero-left{flex:1;display:flex;flex-direction:column}
        .hero-right{flex:0 0 340px}
        .hero-meta{margin-top:1.2rem;font-size:.78rem;color:var(--sub);line-height:2;font-family:'JetBrains Mono',monospace;letter-spacing:.02em;max-width:340px}
        .hero-meta-row{display:flex;justify-content:space-between}
        .hero-meta-val{color:var(--text);text-align:right}
        .hero-timeline{margin-top:1rem;font-size:.78rem;line-height:2;max-width:340px}
        .hero-timeline span{color:var(--accent);font-family:'JetBrains Mono',monospace}
        .hero-tag{display:inline-block;padding:.3rem 1rem;border:1px solid var(--accent);border-radius:20px;font-size:.85rem;color:var(--accent);font-weight:600;letter-spacing:.05em;margin-bottom:1rem;align-self:flex-start}
        .hero h1{font-size:3rem;font-weight:900;line-height:1.25;letter-spacing:-.02em}
        .hero h1 .hl{background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
        .hero-desc{color:var(--sub);font-size:1.05rem;margin-top:.8rem;max-width:550px;line-height:1.8}
        .hero-btns{display:flex;gap:.8rem;margin-top:auto;padding-top:1rem;flex-wrap:wrap}
        .hero-btns a,.hero-btns button{padding:.6rem 1.5rem;border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;font-family:inherit;transition:all .3s}
        .bf{background:var(--accent);color:var(--bg);border:none}.bf:hover{box-shadow:0 4px 24px rgba(0,232,198,.25);transform:translateY(-2px)}
        .bo{background:none;border:1px solid var(--border);color:var(--text)}.bo:hover{border-color:var(--accent);color:var(--accent)}

        /* ═══ SUMMARY STRIP ═══ */
        .summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:3rem}
        .sum-card{background:var(--card);border-radius:14px;padding:1.2rem;text-align:center;border:1px solid var(--border);transition:border-color .3s}
        .sum-card:hover{border-color:var(--accent)}
        .sum-num{font-size:2.2rem;font-weight:900;background:linear-gradient(135deg,var(--accent),var(--accent3));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
        .sum-label{font-size:.85rem;color:var(--sub);margin-top:.2rem;text-transform:uppercase;letter-spacing:.08em}

        /* ═══ QUICK PROFILE ═══ */
        .qp{background:var(--card);border-radius:16px;padding:1.8rem 2rem;margin-top:-2.5rem;margin-bottom:3rem;display:flex;gap:2rem;align-items:center;border:1px solid var(--border);position:relative;overflow:hidden;z-index:1}
        .qp::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--accent),var(--accent2))}
        .qp-info{flex:1}
        .qp-name{font-size:1.5rem;font-weight:800}
        .qp-role{font-size:1rem;color:var(--accent);font-weight:600;margin-bottom:.6rem}
        .qp-exp{font-size:.95rem;color:var(--sub);line-height:1.8}
        .qp-exp strong{color:var(--text)}
        .qp-skills{flex:1;display:flex;flex-direction:column;gap:.6rem;padding-left:2rem}
        .sk-cat{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
        .sk-cat-label{font-size:.75rem;color:var(--sub);font-weight:700;min-width:3.2rem;flex-shrink:0;text-transform:uppercase;letter-spacing:.04em}
        .sk{padding:.25rem .65rem;border-radius:5px;font-size:.78rem;background:rgba(0,232,198,.08);color:var(--accent);font-weight:600;border:1px solid rgba(0,232,198,.15)}
        .qp-more{margin-top:.8rem}
        .more-link{font-size:.78rem;color:var(--accent);cursor:pointer;font-weight:600;border:none;background:none;font-family:inherit;padding:.3rem .8rem;border-radius:6px;border:1px solid var(--accent);transition:all .2s}
        .more-link:hover{background:var(--accent);color:var(--bg)}

        /* ═══ PROJECTS SECTION ═══ */
        .sec-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;color:var(--accent);font-weight:700;margin-bottom:.5rem}
        .sec-title{font-size:1.6rem;font-weight:800;margin-bottom:1.5rem}
        .cg{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:4rem}
        .cg-4{grid-template-columns:repeat(4,1fr)}
        .cd{background:var(--card);border-radius:16px;overflow:hidden;cursor:pointer;transition:all .3s;border:1px solid var(--border);position:relative}
        .cd:hover{transform:translateY(-8px);border-color:var(--accent);box-shadow:0 16px 48px rgba(0,232,198,.14)}
        .cd-live{position:absolute;top:12px;right:12px;z-index:2;display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .6rem;background:var(--accent);color:var(--bg);border-radius:6px;font-size:.62rem;font-weight:800;letter-spacing:.05em;box-shadow:0 2px 12px rgba(0,232,198,.55),0 0 0 1px rgba(0,0,0,.12)}
        .live-dot{width:6px;height:6px;border-radius:50%;background:#fff;flex:0 0 auto;animation:livePulse 1.6s ease-out infinite}
        @keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.7)}70%{box-shadow:0 0 0 7px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
        .ci{width:100%;height:180px;overflow:hidden;background:var(--bg2)}.ci img{width:100%;height:100%;object-fit:cover;object-position:top;opacity:.8;transition:all .4s}.cd:hover .ci img{opacity:1;transform:scale(1.03)}
        .cb{padding:1.2rem 1.5rem}
        .cn{font-size:.78rem;color:var(--accent);font-weight:700;letter-spacing:.12em}
        .ct{font-size:1.15rem;font-weight:800;margin:.3rem 0}
        .cdesc{font-size:.88rem;color:var(--sub);line-height:1.6}
        .ctags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.8rem}
        .ctag{padding:.12rem .45rem;border-radius:4px;font-size:.62rem;background:rgba(0,232,198,.08);color:var(--accent);border:1px solid transparent;transition:background .3s,border-color .3s}

        /* ═══ ABOUT DETAIL PAGE ═══ */
        .back{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem 1rem;border:1px solid var(--border);border-radius:8px;color:var(--sub);font-size:.82rem;cursor:pointer;background:var(--card);font-family:inherit;margin-bottom:2rem;transition:border-color .2s,color .2s;position:sticky;top:12px;z-index:50;box-shadow:0 6px 20px rgba(0,0,0,.35)}
        .back:hover{border-color:var(--accent);color:var(--accent)}
        .agrid{display:grid;grid-template-columns:1fr 2fr;gap:2.5rem}
        .ainfo{background:var(--card);border-radius:16px;padding:1.5rem 1.6rem;border:1px solid var(--border)}
        .aname{font-size:1.4rem;font-weight:800}.arole{color:var(--accent);font-weight:600;margin-bottom:1rem;font-size:.9rem}
        .aleft{display:flex;flex-direction:column;margin-top:3.2rem}
        @media(max-width:768px){.aleft{margin-top:0}}
        .aphoto{width:100%;max-width:240px;height:auto;border-radius:14px;border:1px solid var(--border);display:block;margin:0 auto 1.1rem}
        .ai{margin-bottom:.65rem}.al{font-size:.68rem;color:var(--sub);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.2rem}.av{font-size:.85rem}
        .ec{background:var(--card);border-radius:14px;padding:1.5rem;margin-bottom:1.72rem;border:1px solid var(--border);border-left:3px solid var(--accent)}
        .ec2{border-left-color:var(--accent2)}
        .et2{font-size:1.05rem;font-weight:700}.es2{font-size:.76rem;color:var(--sub);margin:.2rem 0 .6rem}
        .el2{list-style:none}.el2 li{font-size:.8rem;color:var(--sub);padding:.1rem 0}.el2 li::before{content:'→ ';color:var(--accent)}
        .el2 li strong{color:var(--text)}

        /* ═══ PROJECT DETAIL ═══ */
        .ph{margin-bottom:1.5rem}.pn{font-size:4rem;font-weight:900;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;opacity:.3;line-height:1}
        .pt{font-size:2rem;font-weight:800;margin-top:-.5rem}.ps{font-size:.92rem;color:var(--sub);margin-top:.3rem}
        .story{margin:2rem 0}.story-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--accent);font-weight:700;margin-bottom:.4rem}
        .story-title{font-size:1.35rem;font-weight:800;margin-bottom:.8rem}
        .story-text{font-size:.95rem;color:var(--sub);line-height:1.8;margin-bottom:1rem}
        .sh{background:var(--card);border-radius:12px;padding:1.1rem 1.4rem;margin:.8rem 0;border:1px solid var(--border);border-left:3px solid var(--accent)}
        .sh.warn{border-left-color:#FF6B6B}
        .sh p{font-size:.92rem;line-height:1.7}
        .dlist{list-style:none;margin:0}
        .dlist li{font-size:.92rem;line-height:1.7;padding:.55rem 0 .55rem 1.25rem;position:relative}
        .dlist li::before{content:'•';position:absolute;left:.15rem;color:var(--accent);font-weight:700}
        .dlist li:not(:last-child){border-bottom:1px solid var(--border)}
        .gallery{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}        .gi{border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--card);display:flex;flex-direction:column}
        .gi img{width:100%;display:block;aspect-ratio:16/10;object-fit:contain;background:#0e1117}
        .gi-cap{padding:.6rem 1rem;font-size:.74rem;color:var(--sub);text-align:center;background:var(--card2);flex:1;display:flex;align-items:center;justify-content:center;min-height:2.8em;line-height:1.45}

        /* ═══ CAROUSEL ═══ */
        .carousel{position:relative;margin:1.5rem 0;overflow:hidden;border-radius:12px;border:1px solid var(--border);background:var(--card)}
        .carousel-track{display:flex;transition:transform .4s ease}
        .carousel-slide{min-width:100%;flex-shrink:0;display:flex;flex-direction:column}
        .carousel-slide-frame{background:#fff;width:100%;aspect-ratio:800/560;display:flex;align-items:center;justify-content:center;overflow:hidden;line-height:0;flex-shrink:0}
        .carousel-slide-frame img{width:100%;height:100%;object-fit:contain;display:block;vertical-align:middle}
        .carousel-slide .gi-cap{padding:.7rem 1rem .95rem;font-size:.84rem;color:var(--text);text-align:center;background:var(--card2);line-height:1.55;border-top:1px solid var(--border)}
        .carousel-btn{position:absolute;top:50%;transform:translateY(-60%);width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:rgba(11,13,19,.85);color:var(--text);font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:2}
        .carousel-btn:hover{border-color:var(--accent);color:var(--accent);background:rgba(11,13,19,.95)}
        .carousel-prev{left:.8rem}
        .carousel-next{right:.8rem}
        .carousel-thumbs{display:flex;justify-content:center;gap:.5rem;padding:.8rem .5rem;background:var(--card2);overflow-x:auto}
        .carousel-thumb{width:80px;height:56px;border-radius:6px;overflow:hidden;cursor:pointer;border:2px solid transparent;opacity:.5;transition:all .2s;flex-shrink:0}
        .carousel-thumb.active{border-color:var(--accent);opacity:1}
        .carousel-thumb:hover{opacity:.8}
        .carousel-thumb:focus-visible{outline:2px solid var(--accent);outline-offset:2px;opacity:1}
        .carousel-thumb img{width:100%;height:100%;object-fit:cover}
        .fcards{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin:1.2rem 0}
        .fc{background:var(--card);border-radius:12px;padding:1.3rem;border:1px solid var(--border)}.fc.c1{border-top:3px solid var(--accent)}.fc.c2{border-top:3px solid var(--accent2)}
        .fct{font-size:.95rem;font-weight:700;margin-bottom:.5rem}
        .fc ul{list-style:none}.fc li{font-size:.88rem;color:var(--sub);padding:.15rem 0;line-height:1.6}.fc li::before{content:'• ';color:var(--accent)}
        .tb{background:var(--card);border-radius:10px;padding:.8rem 1.3rem;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:1rem 0;border:1px solid var(--border)}
        .tl{font-size:.68rem;color:var(--sub);font-weight:700;text-transform:uppercase}
        .future{background:var(--card2);border-radius:14px;padding:1.3rem;margin:1.5rem 0;border:1px solid var(--border)}
        .future-title{font-size:.88rem;font-weight:700;color:var(--accent2);margin-bottom:.5rem}
        .future ul{list-style:none}.future li{font-size:.8rem;color:var(--sub);padding:.12rem 0}.future li::before{content:'◇ ';color:var(--accent2)}

        /* Skills Visual */
        .skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}
        .skill-group{background:var(--card);border-radius:14px;padding:1.2rem;border:1px solid var(--border)}
        .sg-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--sub);font-weight:700;margin-bottom:.8rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}
        .skill-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}
        .sk-icon{width:22px;height:22px;flex-shrink:0;border-radius:4px}
        .sk-emoji{font-size:1.1rem;width:22px;text-align:center;flex-shrink:0}
        .sk-name{font-size:.78rem;font-weight:600;width:95px;flex-shrink:0}
        .sk-bar{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden}
        .sk-fill{height:100%;border-radius:3px;width:0;transition:width 1.1s cubic-bezier(.22,1,.36,1)}
        .skill-group.in .sk-fill{width:var(--skw)}
        html:not(.js) .sk-fill{width:var(--skw)}

        footer{border-top:1px solid var(--border);padding:2rem 0;text-align:center;color:var(--sub);font-size:.78rem}
        @media(max-width:768px){.hero h1{font-size:1.7rem}.hero-top{flex-direction:column}.hero-right{flex:none;width:100%}.summary{grid-template-columns:1fr 1fr}.qp{flex-direction:column}.cg{grid-template-columns:1fr}.cg-4{grid-template-columns:1fr 1fr}.agrid{grid-template-columns:1fr}.fcards{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.skills-grid{grid-template-columns:1fr 1fr}}

        /* ═══ P1 UX ═══ */
        .hero-role{font-family:'JetBrains Mono',monospace;font-size:1rem;font-weight:600;color:var(--accent);margin-top:.7rem;min-height:1.6em;letter-spacing:.02em}
        .type-cursor{display:inline-block;width:2px;height:1.05em;background:var(--accent);margin-left:2px;vertical-align:text-bottom;animation:caret 1s step-end infinite}
        @keyframes caret{0%,100%{opacity:1}50%{opacity:0}}
        .reveal{opacity:0;transform:translateY(40px);transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1)}
        .reveal.in{opacity:1;transform:none}
        html:not(.js) .reveal{opacity:1;transform:none}
        html:not(.js) .type-cursor{display:none}
        .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
        .cd:hover .ctag,.wc:hover .ctag{background:rgba(0,232,198,.16);border-color:rgba(0,232,198,.32)}
        html{scroll-behavior:smooth}
        /* ═══ P1.5 UX ═══ */
        #progress-bar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2));z-index:60;opacity:0;transition:width .12s ease-out,opacity .3s;pointer-events:none}
        #progress-bar.on{opacity:1}
        .stat{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums}
        [data-count]{font-variant-numeric:tabular-nums}
        .wc{background:var(--card);border-radius:16px;padding:1.4rem 1.5rem;border:1px solid var(--border);border-top:3px solid var(--accent);cursor:pointer;transition:transform .3s,border-color .3s,box-shadow .3s}
        .wc:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 16px 48px rgba(0,232,198,.1)}
        .wc .cdesc{min-height:3.6em}
        .wc-metrics{display:flex;flex-wrap:wrap;gap:.5rem;margin:.9rem 0 .8rem}
        .wc-m{font-size:.72rem;color:var(--sub);background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:.25rem .55rem}
        .wc-m b{color:var(--accent);font-weight:800}        @media(prefers-reduced-motion:reduce){
            html{scroll-behavior:auto}
            .reveal{opacity:1;transform:none;transition:none}
            .sk-fill{width:var(--skw);transition:none}
            .type-cursor{animation:none}
            .cd:hover{transform:none}
            .wc:hover{transform:none}
            .page{animation:none}
            .live-dot{animation:none}
            #progress-bar{transition:none}
        }

        /* ═══ LOTTIE MOTION GRAPHICS ═══ */
        .hero-art{position:relative;width:100%;aspect-ratio:560/720;border-radius:12px;border:1px solid var(--border);background:var(--bg2);overflow:hidden}
        .hero-lottie{position:absolute;inset:0;width:100%;height:100%}
        .hero-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}
        html:not(.js) .hero-lottie{display:none}
        html:not(.js) .hero-poster{display:block}
        #contact-success-wrap{display:none;justify-content:center;margin:.2rem 0}
        #lottie-contact{width:92px;height:92px}

        /* ═══ 이미지 라이트박스 ═══ */
        .gi img{cursor:zoom-in}
        #img-lightbox{position:fixed;inset:0;z-index:10001;display:none;align-items:center;justify-content:center;background:rgba(5,7,12,.9);cursor:zoom-out;padding:3vh 3vw}
        #img-lightbox.on{display:flex}
        #img-lightbox img{max-width:96vw;max-height:94vh;border-radius:10px;box-shadow:0 24px 70px rgba(0,0,0,.6);border:1px solid var(--border)}
        #img-lightbox .lb-close{position:absolute;top:18px;right:26px;font-size:1.7rem;color:#fff;opacity:.75;cursor:pointer;line-height:1}
