/* ============================================
   FIGHT STYLE — dark_gothic 테마
   날카로운 엣지, 강렬한 레드 액센트, 전투적 분위기
   ============================================ */
:root{--primary:#e53e3e;--secondary:#9b2c2c;--bg:#0c0c0c;--text:#e8e8e8;--card-bg:rgba(255,255,255,0.04);--card-border:rgba(229,62,62,0.25);--card-shadow:0 4px 20px rgba(229,62,62,0.1);--radius:2px;--font:'Nanum Square Round','Apple SD Gothic Neo',sans-serif;--primary-rgb:229,62,62}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:0;overflow-x:hidden;position:relative}
#bg-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}
#app{position:relative;z-index:1;width:100%;max-width:480px;padding:32px 20px}

/* 프로그레스 — 좌측 세로 바 스타일 */
.progress-wrap{position:fixed;left:0;top:0;width:4px;height:100vh;background:rgba(255,255,255,0.05);border-radius:0;margin:0;display:none;z-index:10}
.progress-bar{width:100%;height:0%;background:linear-gradient(180deg,var(--primary),var(--secondary));border-radius:0;transition:height .4s ease}

.screen{display:none;animation:slashIn .4s ease}
.screen.active{display:block}
@keyframes slashIn{from{opacity:0;transform:translateX(-30px) skewX(-2deg)}to{opacity:1;transform:translateX(0) skewX(0)}}

/* 이미지 — 전체 폭, 하단 그라데이션 오버레이 */
.hero-img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:0;margin-bottom:0;display:none;filter:grayscale(30%) contrast(1.1)}

/* 타이포 — 좌측 정렬, 강렬한 대문자 */
h1{font-size:1.8em;text-align:left;line-height:1.3;margin-bottom:16px;letter-spacing:-0.5px;border-left:4px solid var(--primary);padding-left:16px}
h2{font-size:1.15em;text-align:left;line-height:1.4;margin-bottom:20px;font-weight:400;padding-left:4px}
p{text-align:left;line-height:1.7;margin-bottom:12px;opacity:.8}
.q-emoji{display:block;text-align:left;font-size:2em;margin-bottom:8px}
.q-sub{font-size:.85em;opacity:.5;text-align:left}

/* 버튼 — 날카롭고 각진, 좌측 레드 보더 */
.btn{display:block;width:100%;padding:16px 20px;font-size:1em;font-weight:700;cursor:pointer;border:none;border-radius:0;margin:24px 0;transition:all .15s ease;font-family:var(--font);text-transform:uppercase;letter-spacing:1px}
.btn-primary{background:var(--primary);color:#fff;clip-path:polygon(0 0,100% 0,96% 100%,0 100%)}
.btn-primary:hover{background:var(--secondary);transform:translateX(4px)}
.btn-outline{background:transparent;border:2px solid var(--primary);color:var(--primary);clip-path:polygon(0 0,100% 0,96% 100%,0 100%)}
.btn-outline:hover{background:var(--primary);color:#fff}
.btn-link{background:rgba(255,255,255,0.05);color:var(--text);border-left:3px solid var(--primary)}

/* 선택지 — 풀 와이드 카드, 좌측 악센트 바 */
.choice-btn{display:flex;align-items:center;gap:14px;width:100%;padding:18px 20px;font-size:.95em;font-weight:600;cursor:pointer;border:none;border-left:4px solid transparent;background:var(--card-bg);color:var(--text);border-radius:0;margin:6px 0;transition:all .2s ease;text-align:left;font-family:var(--font)}
.choice-btn:hover{border-left-color:var(--primary);background:rgba(229,62,62,0.08);transform:translateX(8px)}
.choice-btn .choice-icon{font-size:1.3em;flex-shrink:0}
.choice-btn.selected{border-left-color:var(--primary);background:rgba(229,62,62,0.15)}

/* 타이머 — 상단 가로줄 */
.timer-wrap{display:none;margin-bottom:16px;height:3px;background:rgba(255,255,255,.06);overflow:hidden}
.timer-bar{height:100%;background:var(--primary);transition:width .1s linear}
.timer-wrap span{position:absolute;right:0;top:6px;font-size:.7em;font-weight:700;color:var(--primary)}

/* 결과 */
.result-label{font-size:.7em;text-transform:uppercase;letter-spacing:4px;opacity:.4;text-align:left;margin-bottom:8px;color:var(--primary)}
.result-title{font-size:1.6em;text-align:left;border-left:4px solid var(--primary);padding-left:16px;background:none;-webkit-text-fill-color:var(--text);line-height:1.3}
.result-subtitle{font-size:.9em;opacity:.6;text-align:left;padding-left:20px}
.result-desc{font-size:.95em;text-align:left;line-height:1.8}
.tags-wrap{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0;justify-content:flex-start}
.tag{padding:4px 10px;font-size:.72em;font-weight:700;background:rgba(229,62,62,0.12);color:var(--primary);border:1px solid rgba(229,62,62,0.3);border-radius:0}
details{margin:16px 0;text-align:left;border-left:2px solid rgba(229,62,62,0.3);padding-left:12px}
details summary{cursor:pointer;font-weight:700;padding:8px 0;opacity:.7;font-size:.9em}
details p{padding:4px 0;font-size:.88em;line-height:1.7}
#radar-chart{display:block;margin:20px auto}
.compat-box{padding:14px;background:rgba(229,62,62,0.06);border-left:3px solid var(--primary);margin:16px 0;font-size:.85em;text-align:left}
.loader{width:40px;height:40px;border:3px solid rgba(255,255,255,.08);border-top-color:var(--primary);border-radius:50%;animation:spin .6s linear infinite;margin:60px auto 20px}
@keyframes spin{to{transform:rotate(360deg)}}
#screen-loading h2{text-align:left;margin-top:20px}
#recovery-banner{display:none;background:rgba(229,62,62,0.1);color:var(--primary);padding:12px;text-align:left;font-size:.82em;font-weight:700;cursor:pointer;margin-bottom:20px;border-left:4px solid var(--primary)}
.pulse{animation:none}

/* 반응 애니메이션 */
@keyframes shake{0%,100%{transform:translateX(8px)}50%{transform:translateX(-8px)}}
@keyframes glow{0%{box-shadow:inset 0 0 0 rgba(229,62,62,0)}50%{box-shadow:inset 0 0 20px rgba(229,62,62,.3)}100%{box-shadow:inset 0 0 0 rgba(229,62,62,0)}}
@keyframes confettiBurst{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1)}}
@keyframes flash{0%{filter:brightness(1)}50%{filter:brightness(1.8)}100%{filter:brightness(1)}}
.react-shake{animation:shake .4s ease}.react-glow{animation:glow .5s ease}.react-confetti{animation:confettiBurst .3s ease}.react-flash{animation:flash .25s ease}
.mood-tense #app{filter:contrast(1.08)}.mood-dramatic #app{filter:saturate(1.15)}.mood-mysterious{}.mood-playful #app{}
