/* ============================================
   IDEAL TYPE — magazine_chic 테마
   미니멀 에디토리얼, 세리프 폰트, 중앙 정렬, 얇은 라인
   ============================================ */
:root{--primary:#1a1a1a;--secondary:#555;--bg:#fafaf8;--text:#1a1a1a;--card-bg:rgba(0,0,0,0.02);--card-border:rgba(0,0,0,0.08);--card-shadow:none;--radius:0;--font:'Gmarket Sans','Apple SD Gothic Neo',sans-serif;--primary-rgb:26,26,26}
*,*::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}
#bg-canvas{display:none}
#app{position:relative;z-index:1;width:100%;max-width:480px;padding:48px 24px}

/* 프로그레스 — 상단 얇은 라인 */
.progress-wrap{position:fixed;top:0;left:0;width:100%;height:2px;background:rgba(0,0,0,0.06);border-radius:0;margin:0;display:none;z-index:10}
.progress-bar{height:100%;width:0%;background:var(--primary);border-radius:0;transition:width .5s ease}

.screen{display:none;animation:magazineIn .6s ease}
.screen.active{display:block}
@keyframes magazineIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}

.hero-img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:0;margin-bottom:24px;display:none;border:1px solid rgba(0,0,0,0.08)}

/* 타이포 — 세리프 감성, 중앙 정렬 */
h1{font-size:1.5em;text-align:center;line-height:1.5;margin-bottom:8px;font-weight:300;letter-spacing:1px}
h2{font-size:1.05em;text-align:center;line-height:1.5;margin-bottom:24px;font-weight:300;color:#555}
p{text-align:center;line-height:1.8;margin-bottom:16px;opacity:.7;font-weight:300;font-size:.92em}
.q-emoji{display:block;text-align:center;font-size:1.8em;margin-bottom:12px}
.q-sub{font-size:.8em;opacity:.4;text-align:center;font-style:italic}

/* 구분선 장식 */
#screen-intro h1::after{content:'';display:block;width:40px;height:1px;background:var(--primary);margin:16px auto 0}

/* 버튼 — 얇은 보더, 넓은 여백, 고급 미니멀 */
.btn{display:block;width:100%;padding:14px;font-size:.88em;font-weight:500;cursor:pointer;border:none;border-radius:0;margin:24px 0;transition:all .3s ease;font-family:var(--font);letter-spacing:2px;text-transform:uppercase}
.btn-primary{background:var(--primary);color:var(--bg)}
.btn-primary:hover{background:#333;letter-spacing:3px}
.btn-outline{background:transparent;border:1px solid var(--primary);color:var(--primary)}
.btn-outline:hover{background:var(--primary);color:var(--bg)}
.btn-link{background:transparent;border:1px solid rgba(0,0,0,0.1);color:var(--text)}

/* 선택지 — 얇은 하단 보더, 넓은 패딩, 미니멀 */
.choice-btn{display:flex;align-items:center;gap:16px;width:100%;padding:20px 16px;font-size:.9em;font-weight:400;cursor:pointer;border:none;border-bottom:1px solid rgba(0,0,0,0.08);background:transparent;color:var(--text);border-radius:0;margin:0;transition:all .3s ease;text-align:left;font-family:var(--font)}
.choice-btn:hover{padding-left:24px;background:rgba(0,0,0,0.02)}
.choice-btn:last-child{border-bottom:none}
.choice-btn .choice-icon{font-size:1.2em;flex-shrink:0;opacity:.6}
.choice-btn.selected{background:rgba(0,0,0,0.05);font-weight:700}

.timer-wrap{display:none;margin-bottom:20px;height:1px;background:rgba(0,0,0,.08);overflow:hidden;position:relative}
.timer-bar{height:100%;background:var(--primary);transition:width .1s linear}
.timer-wrap span{position:absolute;right:0;top:4px;font-size:.7em;font-weight:300;color:#999}

.result-label{font-size:.65em;text-transform:uppercase;letter-spacing:6px;opacity:.35;text-align:center;margin-bottom:4px}
.result-title{font-size:1.4em;text-align:center;font-weight:300;background:none;-webkit-text-fill-color:var(--text);letter-spacing:1px;line-height:1.5}
.result-title::after{content:'';display:block;width:40px;height:1px;background:var(--primary);margin:12px auto 0}
.result-subtitle{font-size:.85em;opacity:.5;text-align:center;font-style:italic;font-weight:300}
.result-desc{font-size:.9em;text-align:center;line-height:1.9;font-weight:300}
.tags-wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:20px 0}
.tag{padding:4px 14px;font-size:.7em;font-weight:500;background:transparent;color:var(--primary);border:1px solid rgba(0,0,0,0.15);border-radius:0;letter-spacing:1px}
details{margin:20px 0;text-align:center;border-top:1px solid rgba(0,0,0,0.06);border-bottom:1px solid rgba(0,0,0,0.06)}
details summary{cursor:pointer;font-weight:300;padding:12px;opacity:.5;font-size:.82em;letter-spacing:2px;text-transform:uppercase}
details p{padding:8px;font-size:.85em;line-height:1.8;text-align:center;font-weight:300}
#radar-chart{display:block;margin:24px auto}
.compat-box{padding:16px;background:transparent;border-top:1px solid rgba(0,0,0,0.06);border-bottom:1px solid rgba(0,0,0,0.06);margin:20px 0;font-size:.82em;text-align:center;font-weight:300}
.loader{width:32px;height:32px;border:1px solid rgba(0,0,0,.06);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin:60px auto 20px}
@keyframes spin{to{transform:rotate(360deg)}}
#screen-loading h2{text-align:center;font-weight:300;margin-top:20px}
#recovery-banner{display:none;background:transparent;color:#999;padding:12px;text-align:center;font-size:.78em;font-weight:300;cursor:pointer;margin-bottom:24px;border:1px solid rgba(0,0,0,0.08);letter-spacing:1px}
.pulse{animation:none}
@keyframes shake{0%,100%{transform:translateX(0)}50%{transform:translateX(-3px)}}
@keyframes glow{0%{background:transparent}50%{background:rgba(0,0,0,0.04)}100%{background:transparent}}
@keyframes confettiBurst{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}
@keyframes flash{0%{opacity:1}50%{opacity:.5}100%{opacity:1}}
.react-shake{animation:shake .3s ease}.react-glow{animation:glow .5s ease}.react-confetti{animation:confettiBurst .3s ease}.react-flash{animation:flash .3s ease}
.mood-tense #app{}.mood-dramatic #app{}.mood-mysterious{}.mood-playful #app{}
