*{margin:0;padding:0;box-sizing:border-box}:root{--bg-dark: #0d0a1a;--bg-card: #1a1530;--gold: #d4a843;--gold-light: #f0d078;--purple: #7c3aed;--purple-glow: rgba(124, 58, 237, .4);--text: #e8e0f0;--text-dim: #9990a8}body{font-family:"Noto Serif KR",serif;background:var(--bg-dark);color:var(--text);min-height:100dvh;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(1px 1px at 20% 30%,rgba(255,255,255,.3),transparent),radial-gradient(1px 1px at 40% 70%,rgba(255,255,255,.2),transparent),radial-gradient(1px 1px at 60% 20%,rgba(255,255,255,.3),transparent),radial-gradient(1px 1px at 80% 50%,rgba(255,255,255,.15),transparent),radial-gradient(1.5px 1.5px at 10% 80%,rgba(255,255,255,.25),transparent),radial-gradient(1px 1px at 70% 90%,rgba(255,255,255,.2),transparent),radial-gradient(1.5px 1.5px at 90% 10%,rgba(255,255,255,.3),transparent),radial-gradient(1px 1px at 50% 50%,rgba(255,255,255,.15),transparent),radial-gradient(circle at 50% 0%,var(--purple-glow),transparent 60%);pointer-events:none;z-index:0}.container{position:relative;z-index:1;max-width:480px;margin:0 auto;padding:2rem 1.25rem 3rem;min-height:100dvh;display:flex;flex-direction:column;align-items:center}.header{text-align:center;margin-bottom:2rem}.header h1{font-size:2.2rem;font-weight:900;background:linear-gradient(135deg,var(--gold-light),var(--gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.4rem}.header p{color:var(--text-dim);font-size:.95rem}.capture-area{width:100%;aspect-ratio:3/4;border-radius:1.25rem;border:2px dashed var(--purple);background:var(--bg-card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;position:relative;overflow:hidden;margin-bottom:1.5rem}.capture-area.has-image{border-style:solid;border-color:var(--gold)}.capture-area.camera-active{border-style:solid;border-color:var(--purple);box-shadow:0 0 30px var(--purple-glow)}.capture-area video,.capture-area img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:1.1rem}.capture-area video.hidden,.capture-area .overlay-canvas.hidden{visibility:hidden;pointer-events:none}.capture-area video.visible,.capture-area .overlay-canvas.visible{visibility:visible}.overlay-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:1.1rem;z-index:1;pointer-events:none}.capture-hint{color:var(--text-dim);font-size:.9rem;text-align:center;padding:0 1rem;line-height:1.6}.hand-icon{font-size:4rem;opacity:.5}.buttons{display:flex;gap:.75rem;width:100%;margin-bottom:1.5rem}.btn{flex:1;padding:.9rem 1rem;border:none;border-radius:.75rem;font-family:"Noto Serif KR",serif;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--purple),#9333ea);color:#fff;box-shadow:0 4px 20px var(--purple-glow)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 28px var(--purple-glow)}.btn-secondary{background:var(--bg-card);color:var(--text);border:1px solid rgba(124,58,237,.3)}.btn-secondary:hover:not(:disabled){border-color:var(--purple)}.btn-gold{background:linear-gradient(135deg,var(--gold),#b8860b);color:#1a1530;box-shadow:0 4px 20px #d4a8434d}.btn-gold:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 28px #d4a84366}.btn-full{width:100%}.loading{text-align:center;padding:2rem 0;width:100%}.crystal-ball{font-size:3.5rem;animation:float 2s ease-in-out infinite;margin-bottom:1rem}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.loading p{color:var(--gold);font-size:1.05rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.result{width:100%;background:var(--bg-card);border:1px solid rgba(212,168,67,.3);border-radius:1.25rem;padding:1.75rem 1.5rem;margin-bottom:1.5rem;box-shadow:0 0 40px #d4a84314}.result h2{text-align:center;font-size:1.3rem;color:var(--gold);margin-bottom:1.25rem}.result-text{line-height:1.85;font-size:.95rem;white-space:pre-wrap;color:var(--text)}.result-text strong{color:var(--gold-light)}.file-input{display:none}.error{color:#f87171;text-align:center;padding:1rem;font-size:.9rem}.status-text{color:var(--gold);font-size:.95rem;text-align:center;margin-bottom:1rem;animation:pulse 1.5s ease-in-out infinite}.countdown-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:2;pointer-events:none}.countdown-number{font-size:8rem;font-weight:900;color:#fff;text-shadow:0 0 40px var(--purple),0 0 80px var(--purple),0 0 120px rgba(124,58,237,.5);animation:countPop 1s ease-out infinite}@keyframes countPop{0%{transform:scale(1.5);opacity:0}20%{transform:scale(1);opacity:1}80%{opacity:1}to{opacity:.3}}.analyzing-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0d0a1abf;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:1.1rem;z-index:2}.analyzing-overlay .crystal-ball{font-size:3.5rem;animation:float 2s ease-in-out infinite;margin-bottom:1rem}.analyzing-overlay p{color:var(--gold);font-size:1.05rem;animation:pulse 1.5s ease-in-out infinite}
