/* ============================================
   개발 아이디어 생성기 — Style System
   ============================================ */
:root {
  --bg-primary: #0a0a1a;
  --bg-secondary: #12122a;
  --bg-card: rgba(255,255,255,0.04);
  --bg-card-hover: rgba(255,255,255,0.08);
  --bg-glass: rgba(255,255,255,0.06);
  --border-glass: rgba(255,255,255,0.1);
  --text-primary: #e8e8f0;
  --text-secondary: #9090b0;
  --text-muted: #606080;
  --accent-1: #6c5ce7;
  --accent-2: #00cec9;
  --accent-3: #fdcb6e;
  --accent-fun: #e84393;
  --gradient-main: linear-gradient(135deg,#6c5ce7,#a29bfe);
  --gradient-fun: linear-gradient(135deg,#e84393,#fd79a8);
  --gradient-practice: linear-gradient(135deg,#00cec9,#81ecec);
  --gradient-money: linear-gradient(135deg,#fdcb6e,#ffeaa7);
  --shadow-glow-purple: 0 0 40px rgba(108,92,231,0.3);
  --shadow-glow-pink: 0 0 40px rgba(232,67,147,0.3);
  --shadow-glow-mint: 0 0 40px rgba(0,206,201,0.3);
  --shadow-glow-gold: 0 0 40px rgba(253,203,110,0.3);
  --shadow-md: 0 8px 32px rgba(0,0,0,0.4);
  --shadow-lg: 0 16px 64px rgba(0,0,0,0.5);
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-xl: 32px;
  --font: 'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --transition: 0.3s cubic-bezier(0.4,0,0.2,1);
}
[data-theme="light"] {
  --bg-primary: #f0f0f8;
  --bg-secondary: #ffffff;
  --bg-card: rgba(0,0,0,0.03);
  --bg-card-hover: rgba(0,0,0,0.06);
  --bg-glass: rgba(255,255,255,0.7);
  --border-glass: rgba(0,0,0,0.08);
  --text-primary: #1a1a2e;
  --text-secondary: #5a5a7a;
  --text-muted: #9a9ab0;
  --shadow-md: 0 8px 32px rgba(0,0,0,0.1);
  --shadow-lg: 0 16px 64px rgba(0,0,0,0.15);
  --shadow-glow-purple: 0 0 40px rgba(108,92,231,0.15);
  --shadow-glow-pink: 0 0 40px rgba(232,67,147,0.15);
  --shadow-glow-mint: 0 0 40px rgba(0,206,201,0.15);
  --shadow-glow-gold: 0 0 40px rgba(253,203,110,0.15);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden;transition:background var(--transition),color var(--transition)}
#bgCanvas{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.5}
.header{position:relative;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:24px 40px;backdrop-filter:blur(20px);background:var(--bg-glass);border-bottom:1px solid var(--border-glass)}
.header-left{display:flex;flex-direction:column;gap:4px}
.logo{display:flex;align-items:center;gap:12px;font-size:1.6rem;font-weight:800;letter-spacing:-.5px}
.logo-icon{font-size:2rem;animation:spin 3s ease-in-out infinite}
@keyframes spin{0%,100%{transform:rotate(0)}25%{transform:rotate(15deg)}75%{transform:rotate(-15deg)}}
.logo-accent{background:var(--gradient-main);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.tagline{font-size:.85rem;color:var(--text-muted);font-weight:500}
.header-right{display:flex;align-items:center;gap:16px}
.date-badge{padding:8px 16px;background:var(--bg-card);border:1px solid var(--border-glass);border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;color:var(--text-secondary)}
.theme-toggle{width:44px;height:44px;border:1px solid var(--border-glass);border-radius:50%;background:var(--bg-card);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);font-size:1.2rem}
.theme-toggle:hover{background:var(--bg-card-hover);transform:scale(1.1)}
.main{position:relative;z-index:5;max-width:1200px;margin:0 auto;padding:40px 24px 80px}
.generator-section{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:48px}
.generate-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 64px;background:var(--gradient-main);border:none;border-radius:var(--radius-xl);color:#fff;cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-glow-purple);overflow:hidden}
.generate-btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .6s}
.generate-btn:hover::before{left:100%}
.generate-btn:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 0 60px rgba(108,92,231,.5)}
.generate-btn:active{transform:translateY(0) scale(.98)}
.btn-icon{font-size:2.5rem;animation:bounce 2s ease-in-out infinite}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.btn-text{font-size:1.3rem;font-weight:800;letter-spacing:-.3px}
.btn-sub{font-size:.75rem;opacity:.8;font-weight:500}
.generate-hint{font-size:.85rem;color:var(--text-muted);animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.5}50%{opacity:1}}
.generate-hint.hidden{display:none}
.cards-section{margin-bottom:40px}
.cards-container{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.idea-card{position:relative;background:var(--bg-glass);backdrop-filter:blur(20px);border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:28px;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);opacity:0;transform:translateY(40px) scale(.9);overflow:hidden}
.idea-card.visible{opacity:1;transform:translateY(0) scale(1)}
.idea-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.idea-card.fun::before{background:var(--gradient-fun)}
.idea-card.practice::before{background:var(--gradient-practice)}
.idea-card.money::before{background:var(--gradient-money)}
.idea-card:hover{transform:translateY(-8px) scale(1.02);border-color:transparent}
.idea-card.fun:hover{box-shadow:var(--shadow-glow-pink);border-color:rgba(232,67,147,.3)}
.idea-card.practice:hover{box-shadow:var(--shadow-glow-mint);border-color:rgba(0,206,201,.3)}
.idea-card.money:hover{box-shadow:var(--shadow-glow-gold);border-color:rgba(253,203,110,.3)}
.card-category{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:100px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px}
.fun .card-category{background:rgba(232,67,147,.15);color:#e84393}
.practice .card-category{background:rgba(0,206,201,.15);color:#00cec9}
.money .card-category{background:rgba(253,203,110,.15);color:#fdcb6e}
.card-title{font-size:1.3rem;font-weight:800;margin-bottom:12px;line-height:1.4;letter-spacing:-.3px}
.card-reason{font-size:.82rem;color:var(--text-secondary);line-height:1.6;margin-bottom:16px}
.card-logic{padding:14px;background:var(--bg-card);border-radius:var(--radius-sm);margin-bottom:16px}
.card-logic-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px}
.card-logic-text{font-size:.8rem;color:var(--text-secondary);line-height:1.6}
.card-stack{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}
.stack-tag{padding:4px 10px;background:var(--bg-card);border:1px solid var(--border-glass);border-radius:100px;font-size:.7rem;font-weight:600;color:var(--text-secondary)}
.card-select-btn{width:100%;padding:14px;border:2px dashed var(--border-glass);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-family:var(--font);font-size:.9rem;font-weight:700;cursor:pointer;transition:all var(--transition)}
.card-select-btn:hover{border-style:solid;background:var(--bg-card-hover);color:var(--text-primary)}
.fun .card-select-btn:hover{border-color:#e84393;color:#e84393}
.practice .card-select-btn:hover{border-color:#00cec9;color:#00cec9}
.money .card-select-btn:hover{border-color:#fdcb6e;color:#fdcb6e}
.card-steps{list-style:none;margin-bottom:20px}
.card-steps li{position:relative;padding:6px 0 6px 24px;font-size:.78rem;color:var(--text-secondary);line-height:1.5}
.card-steps li::before{content:attr(data-step);position:absolute;left:0;font-weight:800;font-size:.7rem;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg-card);color:var(--text-muted)}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(8px);z-index:100;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}
.modal-overlay.active{opacity:1;pointer-events:auto}
.modal{position:relative;width:90%;max-width:800px;max-height:85vh;background:var(--bg-secondary);border:1px solid var(--border-glass);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;transform:translateY(20px) scale(.95);transition:transform .3s}
.modal-overlay.active .modal{transform:translateY(0) scale(1)}
.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;border-bottom:1px solid var(--border-glass)}
.modal-title{display:flex;align-items:center;gap:10px;font-size:1.2rem;font-weight:800}
.modal-close{width:36px;height:36px;border:1px solid var(--border-glass);border-radius:50%;background:transparent;color:var(--text-secondary);font-size:1rem;cursor:pointer;transition:all var(--transition);display:flex;align-items:center;justify-content:center}
.modal-close:hover{background:var(--bg-card-hover);color:var(--text-primary)}
.modal-body{flex:1;overflow-y:auto;padding:24px 28px}
.readme-preview{font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;font-size:.8rem;line-height:1.7;color:var(--text-secondary);white-space:pre-wrap;word-wrap:break-word}
.modal-actions{display:flex;gap:12px;padding:20px 28px;border-top:1px solid var(--border-glass)}
.action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border:1px solid var(--border-glass);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text-primary);font-family:var(--font);font-size:.85rem;font-weight:700;cursor:pointer;transition:all var(--transition)}
.action-btn:hover{background:var(--bg-card-hover);transform:translateY(-2px)}
.copy-btn:hover{border-color:var(--accent-1);color:var(--accent-1)}
.download-btn:hover{border-color:var(--accent-2);color:var(--accent-2)}
.retry-btn:hover{border-color:var(--accent-fun);color:var(--accent-fun)}
.copy-toast{position:absolute;bottom:80px;left:50%;transform:translateX(-50%) translateY(10px);background:#00b894;color:#fff;padding:10px 24px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:700;opacity:0;pointer-events:none;transition:all .3s}
.copy-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.footer{position:relative;z-index:5;text-align:center;padding:24px;font-size:.75rem;color:var(--text-muted);border-top:1px solid var(--border-glass)}
@media(max-width:900px){
  .cards-container{grid-template-columns:1fr;gap:20px}
  .header{padding:16px 20px;flex-direction:column;gap:12px}
  .generate-btn{padding:24px 48px}
  .modal{width:96%;max-height:90vh}
  .modal-actions{flex-direction:column}
}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border-glass);border-radius:3px}
::selection{background:rgba(108,92,231,.3)}
