:root{--bg-color: #0b0f19;--card-bg: rgba(20, 27, 45, .7);--border-color: rgba(255, 255, 255, .08);--primary-neon: hsl(200, 95%, 55%);--secondary-neon: hsl(150, 90%, 55%);--accent-neon: hsl(280, 90%, 65%);--alert-red: hsl(350, 85%, 60%);--text-primary: #f3f4f6;--text-secondary: #9ca3af;--font-display: "Jua", sans-serif;--font-body: "Outfit", "Noto Sans KR", sans-serif;--glow-shadow: 0 0 20px rgba(56, 189, 248, .2);--transition-smooth: all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);font-family:var(--font-body);overflow-x:hidden;line-height:1.6;background-image:radial-gradient(circle at 10% 20%,rgba(56,189,248,.05) 0%,transparent 40%),radial-gradient(circle at 90% 80%,rgba(139,92,246,.05) 0%,transparent 40%)}.app-container{max-width:1200px;margin:0 auto;padding:2rem 1.5rem;display:flex;flex-direction:column;min-height:100vh}.hero-section{text-align:center;padding:4rem 1rem 3rem;position:relative}.profile-badge{display:inline-block;padding:.5rem 1.2rem;background:#38bdf81a;border:1px solid rgba(56,189,248,.3);color:var(--primary-neon);border-radius:50px;font-family:var(--font-display);font-size:.95rem;letter-spacing:.5px;margin-bottom:1.5rem;box-shadow:var(--glow-shadow);animation:pulse 2s infinite alternate}.hero-title{font-family:var(--font-display);font-size:4rem;font-weight:800;line-height:1.2;margin-bottom:1rem;letter-spacing:-1px}.hero-title .highlight{background:linear-gradient(135deg,var(--primary-neon),var(--secondary-neon));-webkit-background-clip:text;-webkit-text-fill-color:transparent;position:relative}.hero-subtitle{font-size:1.25rem;color:var(--text-secondary);max-width:600px;margin:0 auto;font-weight:300}.main-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem;margin-top:2rem;flex-grow:1}.card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:24px;padding:2.2rem;position:relative;overflow:hidden;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:var(--transition-smooth)}.card:hover{transform:translateY(-5px);border-color:#ffffff26;box-shadow:0 12px 40px #00000080}.card-glow{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at top left,rgba(255,255,255,.03),transparent 70%);pointer-events:none}.card h2{font-family:var(--font-display);font-size:1.6rem;margin-bottom:.8rem;display:flex;align-items:center;gap:.5rem}.card-desc{color:var(--text-secondary);font-size:.95rem;margin-bottom:1.5rem}.profile-card{grid-column:span 5}.bike-card,.game-card{grid-column:span 7}.bully-card{grid-column:span 5}@media(max-width:968px){.profile-card,.bike-card,.game-card,.bully-card{grid-column:span 12}.hero-title{font-size:3rem}}.avatar-container{display:flex;justify-content:center;margin-bottom:2rem}.neon-avatar{width:130px;height:130px;border-radius:50%;background:linear-gradient(135deg,#141b2d,#0a0f19);display:flex;align-items:center;justify-content:center;font-size:4rem;border:3px solid transparent;background-image:linear-gradient(#141b2d,#0a0f19),linear-gradient(135deg,var(--primary-neon),var(--secondary-neon));background-origin:border-box;background-clip:content-box,border-box;box-shadow:0 0 30px #38bdf826;transition:var(--transition-smooth)}.card:hover .neon-avatar{transform:rotate(5deg) scale(1.05);box-shadow:0 0 40px #38bdf84d}.info-list{list-style:none}.info-list li{display:flex;justify-content:space-between;padding:.9rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.info-list li:last-child{border-bottom:none}.info-list .label{color:var(--text-secondary);font-weight:500}.info-list .val{font-weight:600;color:var(--text-primary);font-family:var(--font-display)}.bike-interactive{display:flex;flex-direction:column;gap:1rem}.bike-arena{height:180px;background:#0a0f19cc;border:1px solid rgba(255,255,255,.05);border-radius:16px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-around;padding:1rem 0}.bike-track-line{position:absolute;top:50%;left:50%;width:320px;height:130px;border:4px solid #e11d48;background:#fef08a1f;border-radius:12px;transform:translate(-50%,-50%);box-shadow:0 0 35px #e11d4859,inset 0 0 20px #e11d4833}.bike-rider{width:64px;height:116px;background:transparent;border:none;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s ease;display:flex;flex-direction:column;align-items:center;-webkit-user-select:none;user-select:none}.bike-rider.seongshin{--gi-bg: linear-gradient(135deg, #b91c1c, #991b1b);--gi-border: var(--alert-red);left:calc(50% - 110px);z-index:2}.bike-rider.opponent{--gi-bg: linear-gradient(135deg, #0284c7, #0369a1);--gi-border: var(--primary-neon);left:auto;right:calc(50% - 110px);z-index:1}.judoka-head{font-size:1.76rem;z-index:5;margin-bottom:-5px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.3))}.judoka-torso{width:32px;height:48px;background:var(--gi-bg);border:2px solid var(--gi-border);border-radius:10px 10px 5px 5px;position:relative;display:flex;align-items:center;justify-content:center;z-index:3;box-shadow:0 3px 10px #0006}.judoka-name{font-family:var(--font-display);font-size:.65rem;color:#fff;z-index:6}.judoka-torso:before{content:"";position:absolute;top:0;left:3px;width:5px;height:36px;background:#ffffff40;border-left:1px solid rgba(0,0,0,.15);transform:rotate(-26deg);transform-origin:top left;z-index:4}.judoka-torso:after{content:"";position:absolute;top:0;right:3px;width:5px;height:36px;background:#fff3;border-right:1px solid rgba(0,0,0,.15);transform:rotate(26deg);transform-origin:top right;z-index:4}.judoka-belt{position:absolute;bottom:10px;left:-2px;width:calc(100% + 4px);height:6px;background:#000;border-radius:2px;box-shadow:0 2px 4px #00000080;z-index:5}.judoka-belt:after{content:"";position:absolute;top:5px;left:36%;width:5px;height:14px;background:#000;border-radius:1px;transform:rotate(15deg);transform-origin:top left;clip-path:polygon(0 0,100% 0,75% 100%,25% 100%);box-shadow:1px 1px 3px #0000004d}.judoka-belt:before{content:"";position:absolute;top:5px;left:48%;width:5px;height:12px;background:#000;border-radius:1px;transform:rotate(-25deg);transform-origin:top right;clip-path:polygon(0 0,100% 0,75% 100%,25% 100%);box-shadow:-1px 1px 3px #0000004d}.judoka-arm{position:absolute;top:3px;width:10px;height:29px;background:var(--gi-bg);border:2px solid var(--gi-border);border-radius:5px;z-index:4}.judoka-arm.left{left:-4px;transform:rotate(18deg);transform-origin:top center}.judoka-arm.right{right:-4px;transform:rotate(-18deg);transform-origin:top center}.judoka-arm:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%);width:6px;height:5px;background:#ffdbac;border-radius:50%;border:1px solid rgba(0,0,0,.1)}.judoka-leg{position:absolute;top:72px;width:11px;height:38px;background:var(--gi-bg);border:2px solid var(--gi-border);border-radius:5px 5px 3px 3px;z-index:2;transform:none}.judoka-leg.left{left:20px}.judoka-leg.right{right:20px}.judoka-leg:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%);width:13px;height:6px;background:#ffdbac;border-radius:3px;border:1px solid rgba(0,0,0,.1);z-index:1}.victory-banner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.5);background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;font-family:var(--font-display);font-size:2.2rem;padding:.8rem 2.5rem;border-radius:12px;box-shadow:0 10px 30px #f59e0b80;z-index:10;opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.victory-banner.show{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-3deg)}.seongshin-dash{animation:judoCounterWinner 2.5s forwards ease-in-out}.opponent-slowed{animation:judoAttackerCountered 2.5s forwards ease-in-out}.bike-arena.active .judoka-arm.left{animation:punchFightLeft 1.2s cubic-bezier(.175,.885,.32,1.275) forwards}.bike-arena.active .judoka-arm.right{animation:punchFightRight 1.2s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes punchFightLeft{0%{transform:rotate(18deg) translateY(0)}15%{transform:rotate(85deg) translateY(-8px) translate(4px)}30%{transform:rotate(10deg) translateY(0)}45%{transform:rotate(90deg) translateY(-10px) translate(6px)}60%{transform:rotate(20deg) translateY(0)}75%{transform:rotate(95deg) translateY(-8px) translate(4px)}90%{transform:rotate(18deg) translateY(0)}to{transform:rotate(18deg) translateY(0)}}@keyframes punchFightRight{0%{transform:rotate(-18deg) translateY(0)}10%{transform:rotate(-85deg) translateY(-8px) translate(-4px)}25%{transform:rotate(-10deg) translateY(0)}40%{transform:rotate(-90deg) translateY(-10px) translate(-6px)}55%{transform:rotate(-20deg) translateY(0)}70%{transform:rotate(-95deg) translateY(-8px) translate(-4px)}90%{transform:rotate(-18deg) translateY(0)}to{transform:rotate(-18deg) translateY(0)}}.bike-arena.active .judoka-leg.left{animation:footworkLeft 1.2s ease-in-out forwards}.bike-arena.active .judoka-leg.right{animation:footworkRight 1.2s ease-in-out forwards}@keyframes footworkLeft{0%{transform:translateY(0) rotate(0)}15%{transform:translateY(-6px) rotate(15deg)}30%{transform:translateY(2px) rotate(-5deg)}45%{transform:translateY(-8px) rotate(22deg)}60%{transform:translateY(0) rotate(0)}75%{transform:translateY(-4px) rotate(10deg)}90%{transform:translateY(0) rotate(0)}to{transform:translateY(0) rotate(0)}}@keyframes footworkRight{0%{transform:translateY(0) rotate(0)}10%{transform:translateY(-4px) rotate(-10deg)}25%{transform:translateY(2px) rotate(5deg)}40%{transform:translateY(-8px) rotate(-22deg)}55%{transform:translateY(0) rotate(0)}70%{transform:translateY(-6px) rotate(-15deg)}90%{transform:translateY(0) rotate(0)}to{transform:translateY(0) rotate(0)}}@keyframes judoCounterWinner{0%{left:calc(50% - 110px);transform:translateY(-50%) rotate(0)}15%{left:calc(50% - 40px);transform:translateY(-50%) rotate(0)}25%{left:calc(50% - 37px);transform:translateY(-50%) rotate(12deg)}35%{left:calc(50% - 43px);transform:translateY(-50%) rotate(-12deg)}45%{left:calc(50% - 38px);transform:translateY(-50%) rotate(10deg)}50%{left:calc(50% - 40px);transform:translateY(-50%) rotate(0)}60%{left:calc(50% - 25px);transform:translateY(-35px) scale(1.05) rotate(15deg)}70%{left:calc(50% - 10px);transform:translateY(-20px) scale(1.1) rotate(-65deg)}85%{left:calc(50% - 40px);transform:translateY(-50%) scale(1.05) rotate(180deg)}92%{left:calc(50% - 40px);transform:translateY(-50%) scale(1.05) rotate(180deg)}to{left:calc(50% - 110px);transform:translateY(-50%) rotate(0)}}@keyframes judoAttackerCountered{0%{right:calc(50% - 110px);transform:translateY(-50%) rotate(0)}15%{right:calc(50% - 40px);transform:translateY(-50%) rotate(0)}25%{right:calc(50% - 43px);transform:translateY(-50%) rotate(-12deg)}35%{right:calc(50% - 37px);transform:translateY(-50%) rotate(12deg)}45%{right:calc(50% - 42px);transform:translateY(-50%) rotate(-10deg)}50%{right:calc(50% - 40px);transform:translateY(-50%) rotate(0)}60%{right:calc(50% - 20px);transform:translateY(-70px) scale(1.05) rotate(-35deg)}70%{right:calc(50% + 200px);transform:translateY(-160px) scale(.95) rotate(-180deg)}85%{right:calc(50% + 230px);transform:translateY(40px) scale(.9) rotate(-270deg)}92%{right:calc(50% + 230px);transform:translateY(40px) scale(.9) rotate(-270deg);opacity:.9}to{right:calc(50% - 110px);transform:translateY(-50%) rotate(0)}}.opponent-dash{animation:judoCounterWinnerOpponent 2.5s forwards ease-in-out}.seongshin-slowed{animation:judoAttackerCounteredBeomshin 2.5s forwards ease-in-out}@keyframes judoCounterWinnerOpponent{0%{right:calc(50% - 110px);transform:translateY(-50%) rotate(0)}15%{right:calc(50% - 40px);transform:translateY(-50%) rotate(0)}25%{right:calc(50% - 37px);transform:translateY(-50%) rotate(-12deg)}35%{right:calc(50% - 43px);transform:translateY(-50%) rotate(12deg)}45%{right:calc(50% - 38px);transform:translateY(-50%) rotate(-10deg)}50%{right:calc(50% - 40px);transform:translateY(-50%) rotate(0)}60%{right:calc(50% - 25px);transform:translateY(-35px) scale(1.05) rotate(-15deg)}70%{right:calc(50% - 10px);transform:translateY(-20px) scale(1.1) rotate(65deg)}85%{right:calc(50% - 40px);transform:translateY(-50%) scale(1.05) rotate(-180deg)}92%{right:calc(50% - 40px);transform:translateY(-50%) scale(1.05) rotate(-180deg)}to{right:calc(50% - 110px);transform:translateY(-50%) rotate(0)}}@keyframes judoAttackerCounteredBeomshin{0%{left:calc(50% - 110px);transform:translateY(-50%) rotate(0)}15%{left:calc(50% - 40px);transform:translateY(-50%) rotate(0)}25%{left:calc(50% - 43px);transform:translateY(-50%) rotate(12deg)}35%{left:calc(50% - 37px);transform:translateY(-50%) rotate(-12deg)}45%{left:calc(50% - 42px);transform:translateY(-50%) rotate(10deg)}50%{left:calc(50% - 40px);transform:translateY(-50%) rotate(0)}60%{left:calc(50% - 20px);transform:translateY(-70px) scale(1.05) rotate(35deg)}70%{left:calc(50% + 200px);transform:translateY(-160px) scale(.95) rotate(180deg)}85%{left:calc(50% + 230px);transform:translateY(40px) scale(.9) rotate(270deg)}92%{left:calc(50% + 230px);transform:translateY(40px) scale(.9) rotate(270deg);opacity:.9}to{left:calc(50% - 110px);transform:translateY(-50%) rotate(0)}}.action-btn{background:linear-gradient(135deg,#38bdf833,#8b5cf633);border:1px solid rgba(56,189,248,.4);color:var(--text-primary);font-family:var(--font-display);font-size:1.1rem;padding:.9rem;border-radius:14px;cursor:pointer;transition:var(--transition-smooth)}.action-btn:hover{background:linear-gradient(135deg,#38bdf866,#8b5cf666);border-color:var(--primary-neon);transform:translateY(-2px);box-shadow:var(--glow-shadow)}.action-btn:active{transform:translateY(0)}.seongshin-container{height:180px;background:#0a0f19cc;border:1px solid rgba(255,255,255,.05);border-radius:16px;display:flex;align-items:center;justify-content:center;position:relative;overflow:visible;margin-bottom:1rem}.seongshin-target{font-size:3.5rem;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;align-items:center;transition:transform .1s ease}.seongshin-target .name-tag{font-family:var(--font-display);font-size:.95rem;background:#ffffff1a;padding:.1rem .6rem;border-radius:10px;margin-top:.2rem;color:var(--text-secondary)}.seongshin-target .bubble{position:absolute;top:-45px;background:#fff;color:#000;font-family:var(--font-display);font-size:.9rem;padding:.3rem .8rem;border-radius:12px;box-shadow:0 4px 10px #0000004d;white-space:nowrap;animation:popIn .2s cubic-bezier(.175,.885,.32,1.275)}.seongshin-target .bubble:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);border-width:6px 6px 0;border-style:solid;border-color:white transparent;display:block;width:0}@keyframes popIn{0%{transform:scale(.5) translateY(10px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.bully-stats{display:flex;flex-direction:column;gap:.3rem;margin-bottom:1.2rem;font-size:.95rem}.bully-stats strong{color:var(--accent-neon);font-family:var(--font-display);font-size:1.2rem}.warning-text{color:var(--text-secondary);font-size:.8rem;font-style:italic}.bully-action-btn{background:linear-gradient(135deg,#8b5cf633,#ec489933);border-color:#8b5cf666}.bully-action-btn:hover{background:linear-gradient(135deg,#8b5cf666,#ec489966);border-color:var(--accent-neon);box-shadow:0 0 20px #8b5cf633}.shake{animation:shakeAnimation .15s ease-in-out alternate}@keyframes shakeAnimation{0%{transform:translate(0)}25%{transform:translate(-8px) rotate(-3deg)}75%{transform:translate(8px) rotate(3deg)}to{transform:translate(0)}}.footer{text-align:center;padding:3rem 1rem 1rem;color:var(--text-secondary);font-size:.9rem;border-top:1px solid var(--border-color);margin-top:4rem}@keyframes pulse{0%{transform:scale(1);opacity:.9}to{transform:scale(1.03);opacity:1}}@keyframes float{0%{transform:translateY(0)}to{transform:translateY(-10px)}}.hidden{display:none!important}.nav-bar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#0b0f19b3;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:16px;position:sticky;top:10px;z-index:1000;width:100%;margin-bottom:1rem}.nav-logo{font-family:var(--font-display);font-size:1.5rem;color:var(--primary-neon);font-weight:800}.nav-menu{display:flex;list-style:none;gap:1rem}.nav-item{font-family:var(--font-display);font-size:1.05rem;cursor:pointer;color:var(--text-secondary);transition:var(--transition-smooth);padding:.4rem 1rem;border-radius:10px;-webkit-user-select:none;user-select:none}.nav-item:hover,.nav-item.active{color:var(--primary-neon);background:#38bdf814;box-shadow:inset 0 0 10px #38bdf81a}.page-content{display:block;animation:fadeIn .4s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.blog-header{text-align:center;padding:3rem 1rem 2.5rem}.blog-badge{display:inline-block;padding:.5rem 1.2rem;background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:#10b981;border-radius:50px;font-family:var(--font-display);font-size:.95rem;margin-bottom:1.5rem;box-shadow:0 0 20px #10b98133}.blog-title{font-family:var(--font-display);font-size:3.5rem;font-weight:800;line-height:1.2;margin-bottom:1rem}.blog-subtitle{font-size:1.2rem;color:var(--text-secondary);max-width:600px;margin:0 auto;font-weight:300}.naver-blog-btn{display:inline-flex;align-items:center;padding:.9rem 2.2rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;text-decoration:none;font-family:var(--font-display);font-size:1.1rem;border-radius:14px;margin-top:1.8rem;transition:var(--transition-smooth);box-shadow:0 4px 15px #10b9814d}.naver-blog-btn:hover{transform:scale(1.05);box-shadow:0 6px 25px #10b98180}.blog-layout{display:grid;grid-template-columns:3.5fr 8.5fr;gap:1.5rem;margin-top:1.5rem}@media(max-width:968px){.blog-layout{grid-template-columns:1fr}}.blog-sidebar{display:flex;flex-direction:column;gap:1.5rem}.blog-profile-card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.8rem}.neon-avatar.small{width:90px;height:90px;font-size:2.8rem;margin-bottom:.5rem}.sidebar-bio{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.sidebar-stats{list-style:none;width:100%;border-top:1px solid rgba(255,255,255,.05);padding-top:1rem;display:flex;flex-direction:column;gap:.6rem}.sidebar-stats li{display:flex;justify-content:space-between;font-size:.9rem;color:var(--text-secondary)}.sidebar-stats li strong{color:var(--text-primary);font-family:var(--font-display)}.blog-posts{display:flex;flex-direction:column;gap:1.5rem}.blog-post-card{display:flex;flex-direction:column;gap:1.2rem}.post-header{display:flex;justify-content:space-between;font-size:.85rem}.post-category{color:var(--primary-neon);font-family:var(--font-display);font-weight:600;letter-spacing:.5px}.post-date{color:var(--text-secondary)}.post-title{font-family:var(--font-display);font-size:1.5rem;color:var(--text-primary);line-height:1.3}.post-excerpt{color:var(--text-secondary);font-size:.98rem;line-height:1.6}.post-footer{display:flex;gap:1.5rem;font-size:.9rem;border-top:1px solid rgba(255,255,255,.05);padding-top:1rem;color:var(--text-secondary)}.post-likes{color:var(--accent-neon);font-family:var(--font-display)}.post-comments{color:var(--secondary-neon);font-family:var(--font-display)}.mbti-header{text-align:center;padding:3rem 1rem 2.5rem}.mbti-badge{display:inline-block;padding:.5rem 1.2rem;background:#a78bfa1a;border:1px solid rgba(167,139,250,.3);color:var(--accent-neon);border-radius:50px;font-family:var(--font-display);font-size:.95rem;margin-bottom:1.5rem;box-shadow:0 0 20px #a78bfa33}.mbti-title{font-family:var(--font-display);font-size:3.5rem;font-weight:800;line-height:1.2;margin-bottom:1rem}.mbti-subtitle{font-size:1.2rem;color:var(--text-secondary);max-width:600px;margin:0 auto;font-weight:300}.mbti-layout{display:grid;grid-template-columns:4fr 8fr;gap:1.5rem;margin-top:1.5rem}@media(max-width:968px){.mbti-layout{grid-template-columns:1fr}}.mbti-profile-card{display:flex;flex-direction:column;align-items:center;gap:1.2rem;text-align:center}.mbti-avatar{background-image:linear-gradient(#141b2d,#0a0f19),linear-gradient(135deg,var(--accent-neon),var(--primary-neon))!important;box-shadow:0 0 30px #8b5cf633!important}.mbti-stats-container{width:100%;display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.mbti-stat-row{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;row-gap:.3rem;width:100%}.mbti-stat-row .stat-name{grid-column:1;grid-row:1;font-size:.85rem;color:var(--text-secondary)}.mbti-stat-row .stat-val{grid-column:2;grid-row:1;font-size:.95rem;font-family:var(--font-display);color:var(--accent-neon);margin-top:0}.stat-bar{width:100%;height:8px;background:#ffffff0d;border-radius:4px;overflow:hidden;position:relative}.stat-bar span{display:block;height:100%;border-radius:4px;box-shadow:0 0 10px #a78bfa80}.stat-progress-e{background:linear-gradient(90deg,#ec4899,#f43f5e)}.stat-progress-n{background:linear-gradient(90deg,#a78bfa,#8b5cf6)}.stat-progress-t{background:linear-gradient(90deg,#3b82f6,#06b6d4)}.stat-progress-p{background:linear-gradient(90deg,#10b981,#34d399)}.mbti-testosterone-meter{margin-top:1.5rem;padding:.8rem;background:#ef44441a;border:1px dashed rgba(239,68,68,.4);border-radius:12px;font-size:.9rem;width:100%;text-align:center}.mbti-testosterone-meter strong{color:var(--alert-red);font-family:var(--font-display);animation:pulse 1s infinite alternate}.mbti-details{display:flex;flex-direction:column;gap:1.5rem}.mbti-detail-card h3{font-family:var(--font-display);color:var(--accent-neon);font-size:1.3rem;margin-bottom:.6rem;display:flex;align-items:center;gap:.4rem}.mbti-detail-card p{color:var(--text-secondary);font-size:.95rem;line-height:1.6}.battle-simulator-card{border-color:#a78bfa33}.battle-simulator-card h3{color:var(--accent-neon)}.simulator-box{background:#0a0f1980;border:1px solid rgba(255,255,255,.05);border-radius:16px;padding:1.2rem;margin-top:1rem;display:flex;flex-direction:column;gap:1rem}.simulator-input-area{display:flex;gap:1rem}@media(max-width:600px){.simulator-input-area{flex-direction:column}}.sim-select{flex-grow:1;background:#141722;border:1px solid rgba(255,255,255,.1);color:var(--text-primary);border-radius:12px;padding:.8rem;font-family:var(--font-body);font-size:.9rem;outline:none;cursor:pointer;transition:var(--transition-smooth)}.sim-select:focus{border-color:var(--accent-neon);box-shadow:0 0 10px #a78bfa33}.sim-btn{background:linear-gradient(135deg,#a78bfa33,#8b5cf633);border-color:#a78bfa66;font-size:.95rem;white-space:nowrap}.sim-btn:hover{border-color:var(--accent-neon);box-shadow:0 0 20px #a78bfa33}.sim-result-box{background:#141b2de6;border-left:4px solid var(--accent-neon);border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.3rem;box-shadow:inset 0 0 10px #00000080}.sim-avatar{font-family:var(--font-display);color:var(--accent-neon);font-size:.95rem}.sim-text-content{color:var(--text-primary);font-size:.95rem;line-height:1.5;font-family:var(--font-body)}.real-fav-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media(max-width:600px){.real-fav-grid{grid-template-columns:1fr}}.real-fav-item{background:#0a0f1966;border:1px solid rgba(255,255,255,.03);border-radius:16px;padding:1.2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem;transition:var(--transition-smooth)}.real-fav-item:hover{transform:translateY(-3px);border-color:#38bdf826;box-shadow:0 5px 15px #38bdf80d}.fav-icon{font-size:2.2rem;filter:drop-shadow(0 0 10px rgba(56,189,248,.2))}.real-fav-item h4{font-family:var(--font-display);font-size:1.05rem;color:var(--primary-neon)}.real-fav-item p{font-size:.85rem;color:var(--text-secondary);line-height:1.4}@media(max-width:600px){.app-container{padding:1rem .75rem}.nav-bar{flex-direction:column;gap:.8rem;padding:1rem;top:5px}.nav-menu{width:100%;justify-content:center;gap:.5rem}.nav-item{font-size:.95rem;padding:.4rem .8rem}.hero-section{padding:2.5rem .5rem 1.5rem}.hero-title,.blog-title,.mbti-title{font-size:2.2rem}.hero-subtitle,.blog-subtitle,.mbti-subtitle{font-size:.95rem}.card{padding:1.2rem;border-radius:18px}.card h2{font-size:1.35rem}.card-desc{font-size:.88rem;margin-bottom:1rem}.neon-avatar{width:100px;height:100px;font-size:3rem}.info-list li{padding:.7rem 0;font-size:.9rem}.naver-blog-btn{padding:.7rem 1.2rem;font-size:.95rem;margin-top:1.2rem;width:100%;justify-content:center}.sidebar-stats{flex-direction:row;justify-content:space-around;gap:1rem}.sidebar-stats li{flex-direction:column;align-items:center;gap:.2rem;font-size:.85rem}.blog-profile-card{padding:1.2rem;gap:.5rem}.blog-post-card{padding:1.2rem;gap:.8rem}.post-title{font-size:1.25rem}.post-excerpt{font-size:.9rem}.post-footer{font-size:.8rem;gap:1rem}.post-excerpt img{max-height:220px;border-radius:8px}.mbti-profile-card{padding:1.2rem;gap:.8rem}.mbti-stat-row .stat-name{font-size:.8rem}.mbti-stat-row .stat-val{font-size:.9rem}.mbti-testosterone-meter{font-size:.85rem;padding:.6rem;margin-top:1rem}.simulator-box{padding:.8rem;gap:.8rem}.sim-select{padding:.7rem;font-size:.85rem;width:100%}.sim-result-box{padding:.8rem}.sim-text-content{font-size:.88rem}.real-fav-item{padding:1rem;gap:.4rem}.fav-icon{font-size:1.8rem}.real-fav-item h4{font-size:.95rem}.real-fav-item p{font-size:.8rem}.footer{padding:2rem 1rem 1rem;margin-top:2rem;font-size:.8rem}.bike-arena{height:150px}.bike-track-line{width:240px;height:100px;border-width:3px;box-shadow:0 0 20px #e11d4840,inset 0 0 10px #e11d4826}.bike-rider.seongshin{left:calc(50% - 80px)}.bike-rider.opponent{right:calc(50% - 80px)}.seongshin-dash{animation:judoCounterWinnerMobile 2.5s forwards ease-in-out}.opponent-slowed{animation:judoAttackerCounteredMobile 2.5s forwards ease-in-out}.opponent-dash{animation:judoCounterWinnerOpponentMobile 2.5s forwards ease-in-out}.seongshin-slowed{animation:judoAttackerCounteredBeomshinMobile 2.5s forwards ease-in-out}.seongshin-target .bubble{white-space:normal;width:max-content;max-width:180px;top:-55px;text-align:center;line-height:1.3;font-size:.8rem}}@media(max-width:400px){.card{padding:1rem;border-radius:14px}.hero-title,.blog-title,.mbti-title{font-size:1.8rem}.hero-subtitle,.blog-subtitle,.mbti-subtitle{font-size:.88rem}.nav-logo{font-size:1.3rem}.nav-item{font-size:.85rem;padding:.3rem .6rem}.action-btn{font-size:.95rem;padding:.7rem;border-radius:10px}.neon-avatar{width:80px;height:80px;font-size:2.4rem}.victory-banner{font-size:1.5rem;padding:.5rem 1.5rem;border-radius:8px}.seongshin-target{font-size:2.8rem}.seongshin-target .name-tag{font-size:.8rem}.seongshin-target .bubble{max-width:150px;top:-50px;font-size:.75rem}.sim-btn{font-size:.9rem;padding:.7rem}.bike-arena{height:130px}.bike-track-line{width:200px;height:90px}.bike-rider.seongshin{left:calc(50% - 65px)}.bike-rider.opponent{right:calc(50% - 65px)}.seongshin-dash{animation:judoCounterWinnerUltraMobile 2.5s forwards ease-in-out}.opponent-slowed{animation:judoAttackerCounteredUltraMobile 2.5s forwards ease-in-out}.opponent-dash{animation:judoCounterWinnerOpponentUltraMobile 2.5s forwards ease-in-out}.seongshin-slowed{animation:judoAttackerCounteredBeomshinUltraMobile 2.5s forwards ease-in-out}}@keyframes judoCounterWinnerMobile{0%{left:calc(50% - 80px);transform:translateY(-50%) scale(.8) rotate(0)}15%{left:calc(50% - 30px);transform:translateY(-50%) scale(.8) rotate(0)}25%{left:calc(50% - 27px);transform:translateY(-50%) scale(.8) rotate(12deg)}35%{left:calc(50% - 33px);transform:translateY(-50%) scale(.8) rotate(-12deg)}45%{left:calc(50% - 28px);transform:translateY(-50%) scale(.8) rotate(10deg)}50%{left:calc(50% - 30px);transform:translateY(-50%) scale(.8) rotate(0)}60%{left:calc(50% - 18px);transform:translateY(-28px) scale(.84) rotate(15deg)}70%{left:calc(50% - 7px);transform:translateY(-16px) scale(.88) rotate(-65deg)}85%{left:calc(50% - 30px);transform:translateY(-50%) scale(.84) rotate(180deg)}92%{left:calc(50% - 30px);transform:translateY(-50%) scale(.84) rotate(180deg)}to{left:calc(50% - 80px);transform:translateY(-50%) scale(.8) rotate(0)}}@keyframes judoAttackerCounteredMobile{0%{right:calc(50% - 80px);transform:translateY(-50%) scale(.8) rotate(0)}15%{right:calc(50% - 30px);transform:translateY(-50%) scale(.8) rotate(0)}25%{right:calc(50% - 33px);transform:translateY(-50%) scale(.8) rotate(-12deg)}35%{right:calc(50% - 27px);transform:translateY(-50%) scale(.8) rotate(12deg)}45%{right:calc(50% - 32px);transform:translateY(-50%) scale(.8) rotate(-10deg)}50%{right:calc(50% - 30px);transform:translateY(-50%) scale(.8) rotate(0)}60%{right:calc(50% - 15px);transform:translateY(-56px) scale(.84) rotate(-35deg)}70%{right:calc(50% + 130px);transform:translateY(-110px) scale(.76) rotate(-180deg)}85%{right:calc(50% + 150px);transform:translateY(30px) scale(.72) rotate(-270deg)}92%{right:calc(50% + 150px);transform:translateY(30px) scale(.72) rotate(-270deg);opacity:.9}to{right:calc(50% - 80px);transform:translateY(-50%) scale(.8) rotate(0)}}@keyframes judoCounterWinnerOpponentMobile{0%{right:calc(50% - 80px);transform:translateY(-50%) scale(.8) rotate(0)}15%{right:calc(50% - 30px);transform:translateY(-50%) scale(.8) rotate(0)}25%{right:calc(50% - 27px);transform:translateY(-50%) scale(.8) rotate(-12deg)}35%{right:calc(50% - 33px);transform:translateY(-50%) scale(.8) rotate(12deg)}45%{right:calc(50% - 28px);transform:translateY(-50%) scale(.8) rotate(-10deg)}50%{right:calc(50% - 30px);transform:translateY(-50%) scale(.8) rotate(0)}60%{right:calc(50% - 18px);transform:translateY(-28px) scale(.84) rotate(-15deg)}70%{right:calc(50% - 7px);transform:translateY(-16px) scale(.88) rotate(65deg)}85%{right:calc(50% - 30px);transform:translateY(-50%) scale(.84) rotate(-180deg)}92%{right:calc(50% - 30px);transform:translateY(-50%) scale(.84) rotate(-180deg)}to{right:calc(50% - 80px);transform:translateY(-50%) scale(.8) rotate(0)}}@keyframes judoAttackerCounteredBeomshinMobile{0%{left:calc(50% - 80px);transform:translateY(-50%) scale(.8) rotate(0)}15%{left:calc(50% - 30px);transform:translateY(-50%) scale(.8) rotate(0)}25%{left:calc(50% - 33px);transform:translateY(-50%) scale(.8) rotate(12deg)}35%{left:calc(50% - 27px);transform:translateY(-50%) scale(.8) rotate(-12deg)}45%{left:calc(50% - 32px);transform:translateY(-50%) scale(.8) rotate(10deg)}50%{left:calc(50% - 30px);transform:translateY(-50%) scale(.8) rotate(0)}60%{left:calc(50% - 15px);transform:translateY(-56px) scale(.84) rotate(35deg)}70%{left:calc(50% + 130px);transform:translateY(-110px) scale(.76) rotate(180deg)}85%{left:calc(50% + 150px);transform:translateY(30px) scale(.72) rotate(270deg)}92%{left:calc(50% + 150px);transform:translateY(30px) scale(.72) rotate(270deg);opacity:.9}to{left:calc(50% - 80px);transform:translateY(-50%) scale(.8) rotate(0)}}@keyframes judoCounterWinnerUltraMobile{0%{left:calc(50% - 65px);transform:translateY(-50%) scale(.65) rotate(0)}15%{left:calc(50% - 25px);transform:translateY(-50%) scale(.65) rotate(0)}25%{left:calc(50% - 23px);transform:translateY(-50%) scale(.65) rotate(12deg)}35%{left:calc(50% - 27px);transform:translateY(-50%) scale(.65) rotate(-12deg)}45%{left:calc(50% - 24px);transform:translateY(-50%) scale(.65) rotate(10deg)}50%{left:calc(50% - 25px);transform:translateY(-50%) scale(.65) rotate(0)}60%{left:calc(50% - 15px);transform:translateY(-24px) scale(.68) rotate(15deg)}70%{left:calc(50% - 5px);transform:translateY(-14px) scale(.72) rotate(-65deg)}85%{left:calc(50% - 25px);transform:translateY(-50%) scale(.68) rotate(180deg)}92%{left:calc(50% - 25px);transform:translateY(-50%) scale(.68) rotate(180deg)}to{left:calc(50% - 65px);transform:translateY(-50%) scale(.65) rotate(0)}}@keyframes judoAttackerCounteredUltraMobile{0%{right:calc(50% - 65px);transform:translateY(-50%) scale(.65) rotate(0)}15%{right:calc(50% - 25px);transform:translateY(-50%) scale(.65) rotate(0)}25%{right:calc(50% - 28px);transform:translateY(-50%) scale(.65) rotate(-12deg)}35%{right:calc(50% - 22px);transform:translateY(-50%) scale(.65) rotate(12deg)}45%{right:calc(50% - 26px);transform:translateY(-50%) scale(.65) rotate(-10deg)}50%{right:calc(50% - 25px);transform:translateY(-50%) scale(.65) rotate(0)}60%{right:calc(50% - 12px);transform:translateY(-46px) scale(.68) rotate(-35deg)}70%{right:calc(50% + 105px);transform:translateY(-90px) scale(.62) rotate(-180deg)}85%{right:calc(50% + 120px);transform:translateY(24px) scale(.58) rotate(-270deg)}92%{right:calc(50% + 120px);transform:translateY(24px) scale(.58) rotate(-270deg);opacity:.9}to{right:calc(50% - 65px);transform:translateY(-50%) scale(.65) rotate(0)}}@keyframes judoCounterWinnerOpponentUltraMobile{0%{right:calc(50% - 65px);transform:translateY(-50%) scale(.65) rotate(0)}15%{right:calc(50% - 25px);transform:translateY(-50%) scale(.65) rotate(0)}25%{right:calc(50% - 23px);transform:translateY(-50%) scale(.65) rotate(-12deg)}35%{right:calc(50% - 27px);transform:translateY(-50%) scale(.65) rotate(12deg)}45%{right:calc(50% - 24px);transform:translateY(-50%) scale(.65) rotate(-10deg)}50%{right:calc(50% - 25px);transform:translateY(-50%) scale(.65) rotate(0)}60%{right:calc(50% - 15px);transform:translateY(-24px) scale(.68) rotate(-15deg)}70%{right:calc(50% - 5px);transform:translateY(-14px) scale(.72) rotate(65deg)}85%{right:calc(50% - 25px);transform:translateY(-50%) scale(.68) rotate(-180deg)}92%{right:calc(50% - 25px);transform:translateY(-50%) scale(.68) rotate(-180deg)}to{right:calc(50% - 65px);transform:translateY(-50%) scale(.65) rotate(0)}}@keyframes judoAttackerCounteredBeomshinUltraMobile{0%{left:calc(50% - 65px);transform:translateY(-50%) scale(.65) rotate(0)}15%{left:calc(50% - 25px);transform:translateY(-50%) scale(.65) rotate(0)}25%{left:calc(50% - 28px);transform:translateY(-50%) scale(.65) rotate(12deg)}35%{left:calc(50% - 22px);transform:translateY(-50%) scale(.65) rotate(-12deg)}45%{left:calc(50% - 26px);transform:translateY(-50%) scale(.65) rotate(10deg)}50%{left:calc(50% - 25px);transform:translateY(-50%) scale(.65) rotate(0)}60%{left:calc(50% - 12px);transform:translateY(-46px) scale(.68) rotate(35deg)}70%{left:calc(50% + 105px);transform:translateY(-90px) scale(.62) rotate(180deg)}85%{left:calc(50% + 120px);transform:translateY(24px) scale(.58) rotate(270deg)}92%{left:calc(50% + 120px);transform:translateY(24px) scale(.58) rotate(270deg);opacity:.9}to{left:calc(50% - 65px);transform:translateY(-50%) scale(.65) rotate(0)}}
