/* ============================================
   SkinPal — Premium Skincare Ritual App
   ============================================ */

:root {
  --cream:#f5f0e8; --sand:#e8ddd0; --mocha:#8b6f5e; --dark:#1a1510;
  --accent:#c4956a; --na:#7b6fa8; --glyc:#6a9eb5;
  --tret:#b56a7a; --rest:#6ab580; --buy:#e8a020; --xp:#f9a826; --water:#5bb8f5;
  --bg-color: var(--cream); --text-color: var(--dark);
  --card-bg: white; --panel-bg: #faf8f5; --border-c: var(--sand);
  --glass: rgba(255,255,255,0.6); --glass-border: rgba(255,255,255,0.3);
}

body.dark-mode {
  --cream:#1a1a1c; --sand:#2d2d30; --mocha:#a5a5ab; --dark:#f5f0e8;
  --bg-color: var(--cream); --text-color: var(--dark);
  --card-bg: #222225; --panel-bg: #1c1c1f; --border-c: #333338;
  --glass: rgba(30,30,34,0.7); --glass-border: rgba(60,60,66,0.4);
}

*{margin:0;padding:0;box-sizing:border-box;}
body{background:var(--bg-color);font-family:'DM Mono',monospace;color:var(--text-color);min-height:100vh;padding:0 0 5rem;overflow-x:hidden;transition:background .3s,color .3s;}

/* ---- FLOATING MASCOT ---- */
.mascot-float{position:fixed;bottom:5rem;right:1.5rem;z-index:90;cursor:pointer;animation:mascotBob 3s ease-in-out infinite;filter:drop-shadow(0 4px 12px rgba(196,149,106,.3));transition:transform .3s;}
.mascot-float:hover{transform:scale(1.15) rotate(-5deg);}
@keyframes mascotBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.mascot-speech{position:fixed;bottom:11rem;right:1rem;z-index:91;background:var(--card-bg);color:var(--text-color);padding:.7rem 1rem;border-radius:14px 14px 2px 14px;font-size:.6rem;max-width:210px;box-shadow:0 4px 24px rgba(0,0,0,.12);border:1px solid var(--border-c);opacity:0;transform:translateY(10px) scale(.9);transition:all .3s ease;pointer-events:none;}
.mascot-speech.show{opacity:1;transform:translateY(0) scale(1);}

/* ---- DASHBOARD ---- */
.game-dash{background:var(--card-bg);padding:.8rem 1rem;border-bottom:1px solid var(--border-c);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:50;box-shadow:0 2px 10px rgba(0,0,0,.03);flex-wrap:wrap;gap:.5rem;transition:background .3s;backdrop-filter:blur(12px);}
.level-info{display:flex;align-items:center;gap:.8rem;}
.level-badge{background:var(--dark);color:var(--cream);font-family:'Cormorant Garamond',serif;width:45px;height:45px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:600;border:2px solid var(--accent);box-shadow:0 0 10px rgba(196,149,106,.3);transition:transform .3s;}
.level-badge:hover{transform:scale(1.1);}
.level-title{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;font-weight:500;display:flex;align-items:center;gap:.4rem;}
.xp-wrapper{margin-top:.2rem;}
.xp-bar-container{background:var(--border-c);height:6px;width:120px;border-radius:3px;overflow:hidden;margin-bottom:.2rem;}
.xp-bar{background:linear-gradient(90deg,var(--xp),var(--accent));height:100%;width:0%;transition:width .5s ease;border-radius:3px;}
.xp-text{font-size:.45rem;color:var(--mocha);}
.dash-actions{display:flex;align-items:center;gap:1rem;}
.score-info{text-align:right;}
.score-val{font-family:'Cormorant Garamond',serif;font-size:1.8rem;color:var(--accent);line-height:1;}
.score-lbl{font-size:.45rem;text-transform:uppercase;letter-spacing:.1em;color:var(--mocha);}
.audio-toggle{background:var(--border-c);color:var(--text-color);border:none;padding:.4rem .8rem;border-radius:20px;font-family:inherit;font-size:.5rem;cursor:pointer;transition:all .2s;}
.audio-toggle:hover{opacity:.8;}
.audio-toggle.on{background:var(--rest);color:white;}

/* ---- HERO ---- */
.hero{padding:3.5rem 1rem 3rem;text-align:center;position:relative;overflow:hidden;transition:background .6s;}
.hero.day-mode{background:linear-gradient(135deg,#1a1510,#2d1f18 50%,#1a1a2e);}
.hero.night-mode{background:linear-gradient(135deg,#08060f,#130f1e 50%,#0b0d1a);}
.hero::before{content:'';position:absolute;inset:0;pointer-events:none;}
.hero.day-mode::before{background:radial-gradient(ellipse at 30% 50%,rgba(196,149,106,.15),transparent 60%),radial-gradient(ellipse at 70% 50%,rgba(123,111,168,.1),transparent 60%);}
.hero.night-mode::before{background:radial-gradient(ellipse at 30% 50%,rgba(123,111,168,.25),transparent 60%),radial-gradient(ellipse at 70% 50%,rgba(74,60,160,.2),transparent 60%);}
.hero-motd{font-size:.55rem;color:rgba(255,255,255,.7);font-style:italic;font-family:'Cormorant Garamond',serif;max-width:400px;margin:0 auto 1.5rem;}
.time-badge{display:inline-block;font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;padding:.25rem .75rem;border-radius:20px;margin-bottom:.5rem;}
.time-badge.day-b{background:rgba(212,169,106,.15);color:#d4a96a;}
.time-badge.night-b{background:rgba(123,111,168,.2);color:#a99fd8;}
.hero h1{font-family:'Cormorant Garamond',serif;font-size:3.5rem;font-weight:300;color:#f5f0e8;letter-spacing:.04em;line-height:1.1;}
.hero h1 em{font-style:italic;color:var(--accent);}
.hero-mascot{margin:1rem auto 0;opacity:.5;}
.streak-freeze-indicator{display:inline-block;background:rgba(91,184,245,.15);color:#5bb8f5;padding:.2rem .6rem;border-radius:12px;font-size:.4rem;letter-spacing:.05em;margin-top:.5rem;}

/* ---- START BUTTON ---- */
.pulse-btn{background:var(--accent);color:white;border:none;padding:1.2rem 3rem;border-radius:40px;font-family:'DM Mono',monospace;font-size:.9rem;text-transform:uppercase;letter-spacing:.15em;margin:2rem auto;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;box-shadow:0 0 0 0 rgba(196,149,106,.7);animation:pulse 2s infinite;position:relative;z-index:10;transition:transform .2s,background .2s;}
.pulse-btn:hover{transform:scale(1.05);background:#b87c4a;}
.pulse-btn.completed{background:var(--rest);animation:none;box-shadow:none;pointer-events:none;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(196,149,106,.7)}70%{box-shadow:0 0 0 15px rgba(196,149,106,0)}100%{box-shadow:0 0 0 0 rgba(196,149,106,0)}}

/* ---- STATS ---- */
.stats-row{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;position:relative;margin-top:2rem;}
.stat{text-align:center;}
.stat-num{font-family:'Cormorant Garamond',serif;font-size:1.85rem;color:#f5f0e8;line-height:1;}
.stat-label{font-size:.42rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(245,240,232,.4);margin-top:.15rem;}

/* ---- TIPS CAROUSEL ---- */
.tips-carousel{position:relative;background:linear-gradient(135deg,var(--card-bg),var(--panel-bg));border:1px solid var(--border-c);border-radius:16px;padding:1.5rem;margin-bottom:2rem;overflow:hidden;min-height:130px;}
.tip-slide{display:none;gap:1rem;align-items:center;animation:tipFadeIn .5s ease;}
.tip-slide.active{display:flex;}
@keyframes tipFadeIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
.tip-icon-box{flex-shrink:0;width:55px;height:55px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--na));display:flex;align-items:center;justify-content:center;font-size:1.6rem;}
.tip-text{font-size:.7rem;line-height:1.6;color:var(--text-color);}
.tip-label{font-size:.45rem;color:var(--accent);text-transform:uppercase;letter-spacing:.15em;margin-bottom:.3rem;}
.tip-nav{display:flex;justify-content:center;gap:.4rem;margin-top:1rem;}
.tip-dot{width:7px;height:7px;border-radius:50%;background:var(--border-c);border:none;cursor:pointer;transition:all .2s;}
.tip-dot.active{background:var(--accent);transform:scale(1.4);}
.tip-arrows{position:absolute;top:50%;right:.8rem;transform:translateY(-50%);display:flex;flex-direction:column;gap:.3rem;}
.tip-arrow{background:var(--border-c);border:none;width:26px;height:26px;border-radius:50%;cursor:pointer;font-size:.6rem;display:flex;align-items:center;justify-content:center;color:var(--text-color);transition:all .2s;}
.tip-arrow:hover{background:var(--accent);color:white;}

/* ---- REMINDERS ---- */
.reminder-panel{background:var(--card-bg);border:1px solid var(--border-c);border-radius:16px;padding:1.2rem 1.5rem;margin-bottom:2rem;}
.reminder-row{display:flex;align-items:center;gap:1rem;margin-bottom:.6rem;flex-wrap:wrap;}
.reminder-row input[type=time]{font-family:inherit;padding:.4rem .6rem;border:1px solid var(--border-c);border-radius:8px;background:var(--panel-bg);color:var(--text-color);font-size:.6rem;}
.reminder-toggle{width:44px;height:24px;border-radius:12px;background:var(--border-c);border:none;position:relative;cursor:pointer;transition:background .3s;}
.reminder-toggle.on{background:var(--rest);}
.reminder-toggle::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:white;transition:transform .3s;box-shadow:0 1px 3px rgba(0,0,0,.2);}
.reminder-toggle.on::after{transform:translateX(20px);}

/* ---- GUIDED OVERLAY ---- */
.guide-overlay{position:fixed;inset:0;background:var(--bg-color);z-index:1000;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .5s cubic-bezier(.4,0,.2,1);}
.guide-overlay.open{transform:translateY(0);}
.guide-header{padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-c);background:var(--card-bg);}
.guide-title{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--text-color);}
.guide-close{background:none;border:none;font-size:1rem;cursor:pointer;color:var(--mocha);padding:.5rem;font-family:inherit;transition:color .2s;}
.guide-close:hover{color:var(--tret);}
.guide-progress{height:4px;background:var(--border-c);width:100%;}
.guide-progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--xp));width:0%;transition:width .3s ease;}
.guide-step-container{flex:1;display:flex;position:relative;overflow-y:auto;overflow-x:hidden;}
.guide-step{position:absolute;inset:0;display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .4s,transform .4s;transform:translateX(50px);background:var(--card-bg);width:100%;}
.guide-step.active{opacity:1;pointer-events:all;transform:translateX(0);position:relative;min-height:100%;}
.step-image{width:100%;height:40vh;object-fit:cover;object-position:center;border-bottom:2px solid var(--border-c);background:var(--border-c);}
.step-content{padding:2rem 1.5rem;max-width:650px;margin:0 auto;width:100%;}
.step-eyebrow{font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem;}
.step-title{font-family:'Cormorant Garamond',serif;font-size:2.5rem;color:var(--text-color);margin-bottom:1rem;line-height:1.1;}
.step-desc{font-size:.75rem;color:var(--mocha);margin-bottom:1.5rem;line-height:1.6;}
.step-timer-wrapper{text-align:center;margin:2rem 0;padding:2rem;background:var(--panel-bg);border-radius:16px;border:1px solid var(--border-c);}
.step-timer-display{font-family:'Cormorant Garamond',serif;font-size:4.5rem;line-height:1;color:var(--accent);margin-bottom:1rem;}
.guide-footer{background:var(--card-bg);padding:1.5rem;border-top:1px solid var(--border-c);display:flex;justify-content:space-between;align-items:center;position:sticky;bottom:0;}
.back-btn{background:none;border:none;font-family:inherit;font-size:.6rem;letter-spacing:.1em;color:var(--mocha);cursor:pointer;text-transform:uppercase;transition:color .2s;}
.back-btn:hover{color:var(--text-color);}
.next-btn{background:var(--dark);color:var(--cream);border:none;padding:.8rem 2rem;border-radius:30px;font-family:inherit;font-size:.7rem;letter-spacing:.1em;cursor:pointer;text-transform:uppercase;transition:all .2s;}
.next-btn:hover{transform:scale(1.05);}

/* ---- HUB & TABS ---- */
.sw{padding:2rem 1.5rem 0;max-width:1100px;margin:0 auto;}
.hub-title{font-family:'Cormorant Garamond',serif;font-size:2rem;border-bottom:1px solid var(--border-c);padding-bottom:1rem;margin-bottom:1rem;color:var(--text-color);display:flex;justify-content:space-between;align-items:center;}
.tabs{display:flex;gap:.35rem;padding:.5rem 0 1.5rem;overflow-x:auto;white-space:nowrap;scrollbar-width:none;}
.tabs::-webkit-scrollbar{display:none;}
.tab{font-family:'DM Mono',monospace;font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;padding:.4rem .9rem;border-radius:20px;border:1px solid var(--border-c);background:var(--card-bg);color:var(--mocha);cursor:pointer;transition:all .2s;flex-shrink:0;}
.tab:hover{border-color:var(--accent);}
.tab.active{background:var(--dark);color:var(--cream);border-color:var(--dark);}
.tab-panel{display:none;padding-bottom:2rem;}
.tab-panel.active{display:block;}

/* ---- TRIVIA ---- */
.trivia-card{background:linear-gradient(135deg,var(--card-bg),var(--panel-bg));border:1px solid var(--na);padding:1.2rem;border-radius:12px;margin-bottom:2rem;}
.trivia-q{margin-top:.3rem;margin-bottom:.8rem;font-family:'Cormorant Garamond',serif;font-size:1.3rem;}
.trivia-opt{display:block;width:100%;text-align:left;padding:.8rem;margin-bottom:.4rem;border:1px solid var(--border-c);background:var(--card-bg);color:var(--text-color);border-radius:8px;cursor:pointer;font-family:inherit;transition:all .2s;}
.trivia-opt:hover{border-color:var(--accent);background:var(--panel-bg);}
.trivia-opt.right{background:var(--rest);color:white;border-color:var(--rest);}
.trivia-opt.wrong{background:var(--tret);color:white;border-color:var(--tret);}

/* ---- CHALLENGE & HEATMAP ---- */
.challenge-card{background:linear-gradient(135deg,var(--panel-bg),var(--card-bg));border:1px solid var(--buy);padding:1.2rem;border-radius:12px;display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;}
.heatmap-card{background:var(--card-bg);padding:1.5rem;border-radius:16px;box-shadow:0 2px 10px rgba(0,0,0,.04);margin-bottom:2rem;overflow-x:auto;}
.heatmap-grid{display:grid;grid-template-columns:repeat(14,1fr);gap:4px;min-width:400px;}
.hm-cell{aspect-ratio:1;border-radius:4px;background:var(--border-c);position:relative;transition:background .3s;}
.hm-cell.lvl-1{background:#d4e8dd;}
.hm-cell.lvl-2{background:var(--rest);}
.hm-label{font-size:.4rem;color:var(--mocha);position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);}

/* ---- EDITOR / FORMS ---- */
.editor-group{background:var(--card-bg);padding:1.5rem;border-radius:16px;margin-bottom:1rem;border:1px solid var(--border-c);transition:box-shadow .3s;}
.editor-group:hover{box-shadow:0 4px 20px rgba(0,0,0,.06);}
.editor-title{font-size:1.2rem;font-family:'Cormorant Garamond',serif;margin-bottom:.5rem;color:var(--text-color);}
.editor-input{width:100%;font-family:inherit;font-size:.7rem;padding:.8rem;border:1px solid var(--border-c);border-radius:8px;margin-bottom:1rem;background:var(--panel-bg);color:var(--text-color);transition:border-color .2s;}
.editor-input:focus{outline:none;border-color:var(--accent);}
.save-rtn-btn{background:var(--accent);color:white;border:none;padding:.8rem 1.5rem;border-radius:20px;font-family:inherit;cursor:pointer;transition:all .2s;}
.save-rtn-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px rgba(196,149,106,.3);}

/* ---- JOURNAL ---- */
.rating-row{display:flex;gap:.5rem;margin-bottom:1rem;}
.rating-opt{width:45px;height:45px;border-radius:50%;border:2px solid var(--border-c);background:var(--card-bg);cursor:pointer;font-size:1.4rem;display:flex;align-items:center;justify-content:center;transition:all .2s;}
.rating-opt:hover{border-color:var(--accent);}
.rating-opt.selected{border-color:var(--accent);background:var(--panel-bg);transform:scale(1.15);}
.jt-textarea{width:100%;background:var(--panel-bg);color:var(--text-color);font-family:'DM Mono',monospace;font-size:.6rem;border:1px solid var(--border-c);border-radius:10px;padding:.8rem;resize:none;height:80px;margin-bottom:1rem;transition:border-color .2s;}
.jt-textarea:focus{outline:none;border-color:var(--accent);}
.sleep-slider-wrap{margin:1rem 0;}
.sleep-slider{-webkit-appearance:none;width:100%;height:6px;border-radius:3px;background:var(--border-c);outline:none;}
.sleep-slider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--na);cursor:pointer;border:2px solid white;box-shadow:0 2px 6px rgba(0,0,0,.2);}
.sleep-val{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--na);text-align:center;margin-top:.5rem;}

/* ---- CLASH & PAO ---- */
.clash-selectors{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap;}
.clash-select{padding:.6rem;font-family:inherit;border-radius:8px;border:1px solid var(--border-c);background:var(--panel-bg);color:var(--text-color);transition:border-color .2s;}
.clash-select:focus{border-color:var(--accent);}
.cr-box{padding:1.5rem;border-radius:12px;margin-top:1rem;background:var(--panel-bg);line-height:1.6;font-size:.75rem;}
.pao-item{display:flex;justify-content:space-between;padding:.8rem;border-bottom:1px solid var(--border-c);font-size:.7rem;transition:background .2s;}
.pao-item:hover{background:var(--panel-bg);}
.pao-item.danger{color:var(--tret);font-weight:600;}

/* ---- ACHIEVEMENTS ---- */
.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;}
.badge-card{background:var(--card-bg);border:1px solid var(--border-c);border-radius:16px;padding:1.2rem;text-align:center;transition:all .3s;position:relative;overflow:hidden;}
.badge-card.unlocked{border-color:var(--accent);box-shadow:0 0 20px rgba(196,149,106,.15);}
.badge-card.locked{filter:grayscale(.7);opacity:.5;}
.badge-card.locked::after{content:'🔒';position:absolute;top:.5rem;right:.5rem;font-size:.8rem;}
.badge-icon{font-size:2.5rem;margin-bottom:.5rem;display:block;}
.badge-card.unlocked .badge-icon{animation:badgeGlow 2s ease-in-out infinite;}
@keyframes badgeGlow{0%,100%{filter:drop-shadow(0 0 4px rgba(196,149,106,.3))}50%{filter:drop-shadow(0 0 14px rgba(196,149,106,.6))}}
.badge-name{font-family:'Cormorant Garamond',serif;font-size:.9rem;margin-bottom:.3rem;color:var(--text-color);}
.badge-desc{font-size:.45rem;color:var(--mocha);margin-bottom:.5rem;}
.badge-progress{height:4px;background:var(--border-c);border-radius:2px;overflow:hidden;}
.badge-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--xp));transition:width .5s;border-radius:2px;}

/* ---- ANALYTICS ---- */
.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1rem;margin-bottom:1.5rem;}
.analytics-stat{background:var(--card-bg);border:1px solid var(--border-c);border-radius:16px;padding:1.5rem;text-align:center;transition:transform .2s;}
.analytics-stat:hover{transform:translateY(-2px);}
.a-num{font-family:'Cormorant Garamond',serif;font-size:2.5rem;color:var(--accent);line-height:1;}
.a-lbl{font-size:.5rem;text-transform:uppercase;letter-spacing:.12em;color:var(--mocha);margin-top:.3rem;}
.chart-container{background:var(--card-bg);border:1px solid var(--border-c);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem;}
.chart-label{font-size:.5rem;color:var(--mocha);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem;}
.records-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.record-card{background:linear-gradient(135deg,var(--panel-bg),var(--card-bg));border:1px solid var(--buy);border-radius:12px;padding:1.2rem;text-align:center;transition:transform .2s;}
.record-card:hover{transform:translateY(-2px);}
.r-val{font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--accent);}
.r-lbl{font-size:.5rem;color:var(--mocha);text-transform:uppercase;letter-spacing:.1em;}

/* ---- HYDRATION ---- */
.water-ring-wrap{text-align:center;margin:2rem 0;}
.water-ring-wrap svg{filter:drop-shadow(0 4px 15px rgba(91,184,245,.2));}
.water-btns{display:flex;justify-content:center;gap:.6rem;margin:1.5rem 0;flex-wrap:wrap;}
.water-btn{width:44px;height:44px;border-radius:50%;border:2px solid var(--water);background:var(--card-bg);cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:all .2s;}
.water-btn:hover{background:rgba(91,184,245,.15);transform:scale(1.1);}
.water-btn.filled{background:var(--water);border-color:var(--water);}
.water-msg{font-size:1rem;color:var(--mocha);text-align:center;font-style:italic;font-family:'Cormorant Garamond',serif;margin-top:1rem;}
.water-heatmap{display:flex;gap:6px;justify-content:center;margin-top:2rem;}
.wh-day{text-align:center;}
.wh-bar{width:30px;height:60px;background:var(--border-c);border-radius:4px;overflow:hidden;position:relative;}
.wh-fill{position:absolute;bottom:0;width:100%;background:linear-gradient(to top,var(--water),#a8d8f0);border-radius:0 0 4px 4px;transition:height .5s;}
.wh-lbl{font-size:.4rem;color:var(--mocha);margin-top:.3rem;}

/* ---- INGREDIENTS ---- */
.ingr-search-wrap{position:relative;margin-bottom:1.5rem;}
.ingr-search-wrap::before{content:'🔍';position:absolute;left:.8rem;top:50%;transform:translateY(-50%);font-size:.8rem;}
.ingr-search{width:100%;padding:.8rem 1rem .8rem 2.5rem;border:1px solid var(--border-c);border-radius:12px;background:var(--panel-bg);color:var(--text-color);font-family:inherit;font-size:.7rem;transition:border-color .2s;}
.ingr-search:focus{outline:none;border-color:var(--accent);}
.ingr-card{background:var(--card-bg);border:1px solid var(--border-c);border-radius:16px;margin-bottom:.8rem;overflow:hidden;transition:all .3s;}
.ingr-header{padding:1rem 1.2rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s;}
.ingr-header:hover{background:var(--panel-bg);}
.ingr-name{font-family:'Cormorant Garamond',serif;font-size:1.05rem;color:var(--text-color);}
.ingr-tag{font-size:.4rem;padding:.15rem .5rem;border-radius:10px;text-transform:uppercase;letter-spacing:.05em;}
.ingr-body{display:none;padding:0 1.2rem 1.2rem;border-top:1px solid var(--border-c);}
.ingr-body.open{display:block;animation:tipFadeIn .3s ease;}
.ingr-detail{font-size:.65rem;color:var(--mocha);line-height:1.7;margin-top:.8rem;}
.comed-bar{display:flex;gap:2px;margin-top:.5rem;}
.comed-pip{width:20px;height:8px;border-radius:2px;background:var(--border-c);transition:background .3s;}
.comed-pip.filled{background:var(--tret);}

/* ---- GOALS ---- */
.goal-presets{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem;}
.goal-preset-btn{font-size:.5rem;padding:.4rem .8rem;border-radius:20px;border:1px solid var(--border-c);background:var(--card-bg);color:var(--text-color);cursor:pointer;font-family:inherit;transition:all .2s;}
.goal-preset-btn:hover{border-color:var(--accent);background:var(--panel-bg);}
.goal-card{background:var(--card-bg);border:1px solid var(--border-c);border-radius:12px;padding:1rem 1.2rem;margin-bottom:.6rem;display:flex;align-items:center;gap:1rem;transition:all .2s;}
.goal-card.done{opacity:.5;}
.goal-check{width:28px;height:28px;border-radius:50%;border:2px solid var(--border-c);background:var(--card-bg);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;transition:all .2s;flex-shrink:0;}
.goal-check.checked{background:var(--rest);border-color:var(--rest);color:white;}
.goal-text{font-size:.7rem;color:var(--text-color);flex:1;}
.goal-text.crossed{text-decoration:line-through;color:var(--mocha);}
.goal-progress-display{text-align:center;margin:1rem 0;font-size:.6rem;color:var(--mocha);}

/* ---- QUIZ ---- */
.quiz-step{display:none;animation:tipFadeIn .4s ease;}
.quiz-step.active{display:block;}
.quiz-option{display:block;width:100%;text-align:left;padding:1rem 1.2rem;margin-bottom:.5rem;border:1px solid var(--border-c);background:var(--card-bg);color:var(--text-color);border-radius:12px;cursor:pointer;font-family:inherit;font-size:.75rem;transition:all .2s;}
.quiz-option:hover{border-color:var(--accent);background:var(--panel-bg);}
.quiz-option.selected{border-color:var(--accent);background:var(--accent);color:white;}
.quiz-progress-dots{display:flex;justify-content:center;gap:.5rem;margin-bottom:2rem;}
.quiz-dot{width:10px;height:10px;border-radius:50%;background:var(--border-c);transition:all .3s;}
.quiz-dot.active{background:var(--accent);transform:scale(1.3);}
.quiz-dot.done{background:var(--rest);}
.quiz-result{background:linear-gradient(135deg,var(--panel-bg),var(--card-bg));border:1px solid var(--accent);border-radius:16px;padding:2rem;text-align:center;}
.quiz-result h3{font-family:'Cormorant Garamond',serif;font-size:1.8rem;color:var(--text-color);margin-bottom:1rem;}
.reco-step{display:flex;align-items:center;gap:.8rem;padding:.8rem;border-bottom:1px solid var(--border-c);font-size:.7rem;text-align:left;}
.reco-num{width:30px;height:30px;border-radius:50%;background:var(--accent);color:white;display:flex;align-items:center;justify-content:center;font-size:.7rem;flex-shrink:0;}

/* ---- LOOT BOX ---- */
.loot-overlay{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.6);backdrop-filter:blur(8px);}
.loot-overlay.show{display:flex;}
.loot-box{background:var(--card-bg);border:2px solid var(--accent);border-radius:24px;padding:2.5rem;text-align:center;max-width:320px;width:90%;transform:scale(.5) rotate(-10deg);opacity:0;transition:all .6s cubic-bezier(.34,1.56,.64,1);}
.loot-overlay.show .loot-box{transform:scale(1) rotate(0);opacity:1;}
.loot-chest{font-size:4rem;margin-bottom:1rem;cursor:pointer;transition:transform .3s;display:inline-block;}
.loot-chest:hover{transform:scale(1.1) rotate(5deg);}
.loot-chest.opened{animation:lootOpen .6s ease forwards;}
@keyframes lootOpen{0%{transform:scale(1)}30%{transform:scale(1.3) rotate(10deg)}60%{transform:scale(.9) rotate(-5deg)}100%{transform:scale(1) rotate(0)}}
.loot-title{font-family:'Cormorant Garamond',serif;font-size:1.8rem;color:var(--text-color);margin-bottom:.5rem;}
.loot-reward{font-size:1.2rem;color:var(--accent);margin:1rem 0;min-height:2rem;font-family:'Cormorant Garamond',serif;font-size:1.5rem;}
.loot-btn{background:var(--accent);color:white;border:none;padding:.7rem 2rem;border-radius:20px;font-family:inherit;cursor:pointer;font-size:.7rem;transition:all .2s;display:none;}
.loot-btn:hover{transform:scale(1.05);}

/* ---- SECTION ILLUSTRATIONS ---- */
.section-illust{text-align:center;margin:1rem 0 1.5rem;}
.section-illust svg{max-width:180px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.08));}

/* ---- TOAST ---- */
.toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(20px);background:var(--dark);color:var(--cream);font-size:.56rem;padding:.6rem 1.4rem;border-radius:30px;opacity:0;transition:all .3s;z-index:9999;box-shadow:0 4px 20px rgba(0,0,0,.2);}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ---- RESPONSIVE ---- */
@media(max-width:600px){
  .hero h1{font-size:2.5rem;}
  .analytics-grid{grid-template-columns:1fr 1fr;}
  .badge-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));}
  .records-grid{grid-template-columns:1fr;}
  .game-dash{padding:.6rem .8rem;}
  .sw{padding:1.5rem 1rem 0;}
  .level-badge{width:38px;height:38px;font-size:1.1rem;}
}
