:root{
  --bg:#101830;
  --bg2:#141E38;
  --bg3:#202C4A;
  --card-bg:#1A2440;
  --t1:#F0F2F8;
  --t2:#C8CDDA;
  --t3:#8C91A5;
  --cyan:#7DF9FF;
  --purple:#C792EA;
  --saffron:#E8AF38;
  --gold:#FFD54F;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:#141E38;background:radial-gradient(ellipse at 50% 45%,#182848 0%,#101830 70%);color:var(--t1);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.sf{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}
.st{position:absolute;border-radius:50%;background:#fff;animation:tw var(--d) ease-in-out infinite alternate}
@keyframes tw{0%{opacity:var(--a);transform:scale(.8)}100%{opacity:var(--b);transform:scale(1.2)}}

/* ═══ WELCOME PAGE ═══ */
.welcome{position:fixed;top:0;left:0;width:100%;height:100%;background:#141E38;background:radial-gradient(ellipse at 50% 45%,#182848 0%,#101830 70%);z-index:1100;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:0 24px;transition:opacity .6s;overflow-y:auto}
.welcome.done{opacity:0;pointer-events:none}
.w-hero{text-align:center;max-width:420px;width:100%;margin:auto;padding:32px 0}
.w-title{font-family:'Outfit',system-ui,sans-serif;font-size:2.2rem;font-weight:700;background:linear-gradient(135deg,var(--cyan),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:10px}
.w-tagline{font-family:'Quicksand',sans-serif;font-size:.88rem;color:var(--t1);line-height:1.55;font-weight:500;margin-bottom:28px;max-width:360px;margin-left:auto;margin-right:auto}
.w-tagline strong{color:var(--cyan)}
.w-form{display:flex;flex-direction:column;gap:14px;width:100%;max-width:320px;margin:0 auto}
.w-field{text-align:left}
.w-field label{font-family:'Quicksand',sans-serif;font-size:.7rem;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.08em;display:block;margin-bottom:5px}
.w-field input{width:100%;padding:12px 16px;border-radius:12px;border:1.5px solid rgba(125,249,255,.15);background:rgba(255,255,255,.05);color:var(--t1);font-family:'Outfit',system-ui,sans-serif;font-size:1rem;font-weight:500;outline:none;transition:border-color .2s}
.w-field input:focus{border-color:var(--cyan)}
.w-field input::placeholder{color:rgba(168,164,184,.4)}
.w-hint{font-family:'Quicksand',sans-serif;font-size:.62rem;color:var(--t2);opacity:.6;margin-top:4px}
.w-start{padding:14px 32px;border-radius:14px;border:none;font-family:'Outfit',system-ui,sans-serif;font-size:1.05rem;font-weight:700;cursor:pointer;background:linear-gradient(135deg,var(--cyan),var(--purple));color:var(--bg);margin-top:10px;transition:transform .15s;width:100%}
.w-start:active{transform:scale(.96)}
.w-start:disabled{opacity:.3;cursor:default}
.w-parent{margin:24px auto 0;padding:14px 16px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);max-width:320px;text-align:left}
.w-parent p{font-family:'Quicksand',sans-serif;font-size:.68rem;color:var(--t2);line-height:1.5;font-weight:500}
.w-parent strong{color:var(--t1);font-weight:700}
.w-divider{text-align:center;margin:4px 0;position:relative}
.w-divider::before{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(255,255,255,.08)}
.w-divider span{font-family:'Quicksand',sans-serif;font-size:.58rem;color:var(--t2);opacity:.5;background:var(--bg);padding:0 10px;position:relative}

/* WELCOME BEAT */
.welcome-beat{position:fixed;top:0;left:0;width:100%;height:100%;background:#141E38;background:radial-gradient(ellipse at 50% 45%,#182848 0%,#101830 70%);z-index:1050;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}
.wb-name{font-family:'Outfit',system-ui,sans-serif;font-size:2rem;font-weight:700;background:linear-gradient(135deg,var(--cyan),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center;margin-bottom:8px}
.wb-sub{font-family:'Quicksand',sans-serif;font-size:.9rem;color:var(--t2);font-weight:500;text-align:center;margin-bottom:24px}
.wb-btn{padding:14px 32px;border-radius:14px;border:none;font-family:'Outfit',system-ui,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,var(--cyan),var(--purple));color:var(--bg);transition:transform .15s}
.wb-btn:active{transform:scale(.95)}

/* SHARE CARD */
.share-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(11,14,26,.92);z-index:850;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .3s}
.share-overlay.active{opacity:1;pointer-events:auto}
.share-card{width:100%;max-width:340px;border-radius:20px;background:linear-gradient(135deg,rgba(125,249,255,.06),rgba(199,146,234,.06));border:1.5px solid rgba(125,249,255,.15);padding:28px 24px;text-align:center}
.sc-dragon{width:100px;height:78px;margin:0 auto 10px;filter:drop-shadow(0 0 12px rgba(125,249,255,.3))}
.sc-name{font-family:'Outfit',system-ui,sans-serif;font-size:1.6rem;font-weight:700;color:var(--t1);margin-bottom:4px}
.sc-title{font-family:'Outfit',system-ui,sans-serif;font-size:.85rem;font-weight:700;color:#FFD54F;margin-bottom:12px}
.sc-stat{font-family:'Quicksand',sans-serif;font-size:2.2rem;font-weight:700;color:var(--cyan);line-height:1}
.sc-stat-label{font-family:'Quicksand',sans-serif;font-size:.7rem;color:var(--t2);font-weight:600;margin-bottom:14px}
.sc-bar{height:6px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden;margin-bottom:14px}
.sc-bar-fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--purple));border-radius:3px}
.sc-brand{font-family:'Outfit',system-ui,sans-serif;font-size:.65rem;color:var(--t2);opacity:.4;letter-spacing:.08em}
.share-close{margin-top:16px;padding:12px 28px;border-radius:12px;border:none;background:rgba(255,255,255,.08);color:var(--t1);font-family:'Outfit',system-ui,sans-serif;font-size:.85rem;font-weight:600;cursor:pointer}

/* PROFILE TAB */
.profile{position:relative;z-index:10;padding:16px;display:flex;flex-direction:column;align-items:center;gap:14px;padding-bottom:90px;max-width:400px;margin:0 auto}
.prof-card{width:100%;border-radius:18px;background:var(--bg3);border:1.5px solid rgba(125,249,255,.1);padding:20px;text-align:center}
.prof-name{font-family:'Outfit',system-ui,sans-serif;font-size:1.4rem;font-weight:700;color:var(--t1)}
.prof-title{font-family:'Outfit',system-ui,sans-serif;font-size:.8rem;font-weight:700;color:#FFD54F;margin-top:2px}
.prof-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.prof-stat{padding:10px;border-radius:10px;background:rgba(255,255,255,.04);text-align:center}
.prof-stat-val{font-family:'Outfit',system-ui,sans-serif;font-size:1.3rem;font-weight:700;color:var(--cyan)}
.prof-stat-lbl{font-family:'Quicksand',sans-serif;font-size:.6rem;color:var(--t2);font-weight:600;margin-top:2px}
.prof-anchors{width:100%;text-align:left}
.prof-anchors h3{font-family:'Outfit',system-ui,sans-serif;font-size:.75rem;font-weight:600;color:var(--t2);margin-bottom:8px}
.prof-anchor{font-family:'Quicksand',sans-serif;font-size:.72rem;color:var(--t1);line-height:1.6;font-weight:500}
.prof-anchor span{color:var(--cyan);font-weight:700}
.prof-timeline{width:100%;text-align:left}
.prof-timeline h3{font-family:'Outfit',system-ui,sans-serif;font-size:.75rem;font-weight:600;color:var(--t2);margin-bottom:8px}
.tl-item{font-family:'Quicksand',sans-serif;font-size:.7rem;color:var(--t2);line-height:1.8;font-weight:500;padding-left:14px;position:relative}
.tl-item::before{content:'';position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--cyan)}
.prof-share{padding:12px 24px;border-radius:12px;border:1.5px solid rgba(125,249,255,.15);background:rgba(255,255,255,.04);color:var(--cyan);font-family:'Outfit',system-ui,sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;width:100%}

/* ═══ INTRO ═══ */
.intro-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#141E38;background:radial-gradient(ellipse at 50% 45%,#182848 0%,#101830 70%);z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 20px;transition:opacity .6s;overflow-y:auto}
.intro-overlay.done{opacity:0;pointer-events:none}
.intro-dragon{width:120px;height:94px;margin-bottom:6px;animation:dragonFloat 3s ease-in-out infinite;flex-shrink:0}
@keyframes dragonFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.intro-text{text-align:center;max-width:340px;width:100%}
.intro-title{font-size:1.3rem;font-weight:700;background:linear-gradient(135deg,var(--cyan),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:6px}
.intro-speech{font-family:'Quicksand',sans-serif;font-size:.86rem;color:var(--t1);line-height:1.45;font-weight:500;min-height:40px;margin-bottom:12px}
.intro-card{width:130px;aspect-ratio:3/4;border-radius:16px;margin:0 auto 12px;display:none;flex-direction:column;align-items:center;justify-content:center;gap:3px;opacity:0;transform:scale(.8);transition:all .5s cubic-bezier(.34,1.56,.64,1)}
.intro-card.show{display:flex;opacity:1;transform:scale(1)}
.intro-card .ic-emoji{font-size:1.6rem}.intro-card .ic-sym{font-size:2.2rem;font-weight:700;line-height:1}.intro-card .ic-name{font-size:.82rem;font-weight:600}
.intro-btn{padding:11px 28px;border-radius:14px;border:none;font-family:'Outfit',system-ui,sans-serif;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;min-width:140px}
.intro-btn.primary{background:linear-gradient(135deg,var(--cyan),var(--purple));color:var(--bg)}
.intro-btn.primary:active{transform:scale(.95)}
/* Short-viewport intro — shrink everything to keep button visible */
@media(max-height:700px){
  .intro-overlay{justify-content:flex-start;padding-top:max(12px,env(safe-area-inset-top))}
  .intro-dragon{width:80px;height:62px;margin-bottom:4px}
  .intro-title{font-size:1.05rem;margin-bottom:4px}
  .intro-speech{font-size:.8rem;min-height:32px;margin-bottom:8px;line-height:1.4}
  .intro-card{width:96px;margin-bottom:8px}
  .intro-card .ic-emoji{font-size:1.3rem}.intro-card .ic-sym{font-size:1.8rem}.intro-card .ic-name{font-size:.72rem}
  .intro-btn{padding:9px 24px;font-size:.88rem}
}

/* ═══ HEADER ═══ */
.hdr{position:relative;z-index:10;text-align:center;padding:12px 20px 0}
.hdr h1{font-family:'Outfit',system-ui,sans-serif;font-weight:700;font-size:.85rem;letter-spacing:.08em;background:linear-gradient(135deg,var(--cyan),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hdr-row{display:flex;align-items:center;justify-content:center;gap:8px}
.reset-btn{background:none;border:none;color:var(--t2);opacity:.25;font-size:.6rem;font-family:'Quicksand',sans-serif;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:6px}
.reset-confirm{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(11,14,26,.92);z-index:950;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;gap:16px}
.reset-confirm p{font-family:'Quicksand',sans-serif;font-size:.95rem;color:var(--t1);text-align:center;line-height:1.5;max-width:300px}
.reset-confirm .warn{color:#EF5350;font-weight:700;font-size:.85rem}
.reset-btns{display:flex;gap:12px}
.reset-btns button{padding:12px 24px;border-radius:12px;border:none;font-family:'Outfit',system-ui,sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;min-width:100px}
.rbtn-cancel{background:rgba(255,255,255,.1);color:var(--t1)}.rbtn-reset{background:#EF5350;color:#fff}

/* ═══ MASCOT HERO ═══ */
.mbar{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;margin:0 16px 6px;padding:6px 14px 12px;background:linear-gradient(135deg,rgba(125,249,255,.04),rgba(199,146,234,.04));border:1px solid rgba(125,249,255,.08);border-radius:16px;transition:all .4s}
.mbar svg.dragon-hero{width:140px;height:110px;flex-shrink:0;transition:all .5s cubic-bezier(.34,1.56,.64,1);filter:drop-shadow(0 0 12px rgba(125,249,255,.15))}
.msp{font-family:'Quicksand',sans-serif;font-size:.82rem;color:var(--t1);line-height:1.4;font-weight:500;text-align:center;max-width:340px;margin-top:2px}
.msp strong{color:var(--cyan);font-weight:700}
.pwr-row{display:flex;align-items:center;gap:8px;margin-top:6px;width:100%;max-width:280px}
.pwr{font-family:'Space Mono','Courier New',monospace;font-size:.52rem;color:var(--cyan);font-weight:400;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
.pwr-bar{flex:1;height:4px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden}
.pwr-fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--purple));border-radius:2px;transition:width .6s cubic-bezier(.34,1.56,.64,1)}
.mbar.excited svg.dragon-hero{transform:scale(1.08);filter:drop-shadow(0 0 24px rgba(125,249,255,.4)) drop-shadow(0 0 48px rgba(199,146,234,.2))}
.mbar.excited{border-color:rgba(125,249,255,.25);background:linear-gradient(135deg,rgba(125,249,255,.08),rgba(199,146,234,.08))}
@keyframes dragonPulse{0%{filter:drop-shadow(0 0 12px rgba(125,249,255,.15))}50%{filter:drop-shadow(0 0 30px rgba(125,249,255,.5)) drop-shadow(0 0 60px rgba(199,146,234,.3))}100%{filter:drop-shadow(0 0 12px rgba(125,249,255,.15))}}
.mbar.pulse svg.dragon-hero{animation:dragonPulse .6s ease-out}
.mbar[data-tier="1"] svg.dragon-hero{opacity:.8}
.mbar[data-tier="2"] svg.dragon-hero{opacity:.85}
.mbar[data-tier="3"] svg.dragon-hero{opacity:1}
.mbar[data-tier="4"] svg.dragon-hero{opacity:1;filter:drop-shadow(0 0 16px rgba(125,249,255,.3))}
.mbar[data-tier="5"] svg.dragon-hero{opacity:1;filter:drop-shadow(0 0 24px rgba(125,249,255,.4)) drop-shadow(0 0 48px rgba(199,146,234,.25))}
.ach-row{text-align:center;margin-top:4px}
.ach-title{font-family:'Space Mono','Courier New',monospace;font-size:.58rem;font-weight:400;color:var(--gold);letter-spacing:.1em;text-transform:uppercase}

/* ═══ TABS ═══ */
.ltabs{position:relative;z-index:10;display:flex;justify-content:center;gap:0;margin:8px 16px 0;border-radius:12px;overflow:hidden;border:1.5px solid rgba(125,249,255,.15);background:rgba(255,255,255,.03);margin-bottom:4px}
.ltab{flex:1;padding:9px 6px;font-family:'Outfit',system-ui,sans-serif;font-size:.72rem;font-weight:600;color:var(--t2);background:transparent;border:none;cursor:pointer;transition:all .3s;text-align:center}
.ltab.active{color:var(--bg);background:linear-gradient(135deg,var(--cyan),var(--purple))}
.ltab .lc{display:block;font-size:.55rem;font-weight:500;margin-top:1px;opacity:.7}
.ltab.locked{opacity:.35;cursor:not-allowed}.ltab.locked::after{content:'🔒';font-size:.5rem;margin-left:2px}
.ftabs{position:relative;z-index:10;display:flex;gap:6px;padding:0 16px 6px;overflow-x:auto;scrollbar-width:none;margin-top:10px}
.ftabs::-webkit-scrollbar{display:none}
.ftab{flex-shrink:0;padding:6px 12px;border-radius:18px;border:1.5px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:var(--t2);font-family:'Outfit',system-ui,sans-serif;font-size:.7rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.34,1.56,.64,1);white-space:nowrap}
.ftab.active{color:var(--bg);border-color:transparent;transform:scale(1.05)}
.fbio{position:relative;z-index:10;margin:0 16px 10px;padding:10px 14px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);display:none}
.fbio.show{display:block;animation:fadeIn .3s ease}
.fbio-text{font-family:'Quicksand',sans-serif;font-size:.76rem;color:var(--t2);line-height:1.45;font-weight:500}
@keyframes fadeIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.cnt{position:relative;z-index:10;text-align:center;font-family:'Space Mono','Courier New',monospace;font-size:.58rem;color:var(--t3);margin-bottom:10px;font-weight:400;text-transform:uppercase;letter-spacing:.1em}
.cnt span{color:var(--cyan)}

/* ═══ CARDS ═══ */
.grid{position:relative;z-index:10;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;padding:0 16px 90px}
.cw{cursor:pointer;animation:ci .4s cubic-bezier(.34,1.56,.64,1) backwards;position:relative}
@keyframes ci{from{opacity:0;transform:translateY(20px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}
.cin{position:relative;width:100%;aspect-ratio:3/4;border-radius:14px;background:var(--card-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 8px;gap:2px;overflow:hidden;transition:transform .15s}
.cin::before{content:'';position:absolute;inset:0;border-radius:14px;pointer-events:none;z-index:0}
.cw:not(.undiscovered) .cin::before{background:radial-gradient(ellipse at 50% 40%,var(--cg) 0%,transparent 65%);opacity:1}
.cw.undiscovered .cin::before{display:none}
.cw:not(.undiscovered) .cin{background:color-mix(in srgb,var(--cc) 8%,#1A2440);box-shadow:inset 0 0 28px 0 var(--cg)}
.cw:active .cin{transform:scale(.95)}
.c-emoji{font-size:1.6rem;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}
.c-sym{font-family:'Outfit',system-ui,sans-serif;font-size:2.6rem;font-weight:900;color:var(--cc);line-height:1;text-shadow:0 0 20px var(--cg),0 0 40px var(--cg)}
.c-name{font-family:'Outfit',system-ui,sans-serif;font-size:.8rem;font-weight:600;color:var(--t1);text-align:center}
.c-fam{position:absolute;top:6px;right:7px;font-family:'Space Mono','Courier New',monospace;font-size:.42rem;font-weight:400;color:var(--cc);opacity:.55;text-transform:uppercase;letter-spacing:.08em;text-align:right;max-width:52px;line-height:1.2}
.cw.undiscovered .cin{filter:brightness(.5) saturate(.1)}.cw.undiscovered .c-sym{text-shadow:none}.cw.undiscovered .c-emoji{opacity:0}.cw.undiscovered .c-name{opacity:.4}.cw.undiscovered .c-fam{opacity:0}
.cw.undiscovered::after{content:'?';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2rem;font-weight:700;color:rgba(255,255,255,.25);pointer-events:none}

/* ═══ DRAGON MAP ═══ */
.dmap{position:relative;z-index:10;padding:8px 8px 80px;overflow-x:auto}
.dmap-grid{display:grid;grid-template-columns:repeat(18,minmax(32px,1fr));grid-template-rows:repeat(10,32px);gap:2px;min-width:600px;margin:0 auto;max-width:800px}
.dm-cell{border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;position:relative;font-family:'Outfit',system-ui,sans-serif;min-height:32px}
.dm-cell:active{transform:scale(.9)}.dm-num{font-size:.38rem;font-weight:600;opacity:.6;line-height:1}.dm-sym{font-size:.65rem;font-weight:700;line-height:1.1}
.dm-cell.undiscovered{filter:brightness(.45) saturate(.1)}.dm-cell.undiscovered .dm-sym{opacity:.3}
.dm-label{font-family:'Quicksand',sans-serif;font-size:.5rem;font-weight:700;color:var(--t2);opacity:.5;display:flex;align-items:center;justify-content:center;pointer-events:none}
.dm-col-hint{position:relative;z-index:10;margin:0 8px 8px;padding:8px 12px;border-radius:10px;background:linear-gradient(135deg,rgba(125,249,255,.06),rgba(199,146,234,.06));border:1px solid rgba(125,249,255,.1);text-align:center;display:none}
.dm-col-hint.show{display:block;animation:fadeIn .3s ease}
.dm-col-hint p{font-family:'Quicksand',sans-serif;font-size:.75rem;color:var(--cyan);font-weight:600;line-height:1.4}

/* ═══ CONSTELLATION MAP ═══ */
#constellationSVG{pointer-events:none;overflow:visible}
.ct-node{transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .2s}
/* Journey marker dots on element cells */
.dm-jdots{position:absolute;top:2px;right:2px;display:flex;gap:1px;pointer-events:none;z-index:2}
.dm-jdot{width:5px;height:5px;border-radius:50%;opacity:.85}
/* Constellation title bar */
.dmc-title{font-family:'Quicksand',sans-serif;font-size:.82rem;font-weight:700;font-style:italic;text-align:center;padding:0 8px;max-height:0;overflow:hidden;opacity:0;transition:max-height .3s,opacity .3s,padding .3s;min-width:600px;max-width:800px;margin:0 auto}
.dmc-title.active{max-height:32px;opacity:1;padding:6px 8px 2px}
/* Constellation toggle button + dropdown */
.dmc-wrap{display:flex;justify-content:flex-end;align-items:flex-end;flex-direction:column;gap:4px;padding:6px 0 2px;min-width:600px;max-width:800px;margin:0 auto;position:relative}
.dmc-btn{width:36px;height:36px;border-radius:50%;border:1.5px solid rgba(125,249,255,.25);background:rgba(11,14,26,.7);color:rgba(125,249,255,.7);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;backdrop-filter:blur(4px)}
.dmc-btn:active,.dmc-btn.active{background:rgba(125,249,255,.15);color:#7DF9FF;border-color:rgba(125,249,255,.6);box-shadow:0 0 10px rgba(125,249,255,.3)}
.dmc-menu{position:absolute;bottom:44px;right:0;background:rgba(11,14,26,.94);border:1px solid rgba(125,249,255,.15);border-radius:12px;overflow:hidden;backdrop-filter:blur(10px);min-width:210px;z-index:20;box-shadow:0 4px 20px rgba(0,0,0,.5)}
.dmc-menu.hidden{display:none}
.dmc-item{padding:11px 14px;font-family:'Quicksand',sans-serif;font-size:.82rem;font-weight:600;color:var(--t1);cursor:pointer;transition:background .15s;white-space:nowrap}
.dmc-item:active{background:rgba(125,249,255,.1)}
.dmc-all{border-bottom:1px solid rgba(255,255,255,.06);color:var(--cyan)}
/* "View on Map" button on completed path cards */
.jpc-map-btn{display:inline-block;margin-top:5px;padding:4px 10px;border-radius:8px;border:1px solid rgba(125,249,255,.2);background:rgba(125,249,255,.07);color:var(--cyan);font-family:'Quicksand',sans-serif;font-size:.68rem;font-weight:700;cursor:pointer;transition:background .15s;letter-spacing:.02em}
.jpc-map-btn:active{background:rgba(125,249,255,.18)}
/* Constellation map link (bottom of journey screen) */
.jr-constellation-link{display:block;text-align:center;padding:13px 16px;font-family:'Quicksand',sans-serif;font-size:.82rem;font-weight:700;color:var(--cyan);cursor:pointer;border:1px solid rgba(125,249,255,.18);border-radius:12px;margin:12px 0 4px;background:rgba(125,249,255,.05);transition:background .15s,opacity .15s;letter-spacing:.02em}
.jr-constellation-link:active{opacity:.7;background:rgba(125,249,255,.1)}

/* ═══ ELEMENT OF THE DAY ═══ */
.eotd{position:relative;z-index:10;padding:16px;display:flex;flex-direction:column;align-items:center;gap:14px;padding-bottom:90px}
.eotd-card{width:100%;max-width:360px;border-radius:20px;background:var(--card-bg);overflow:hidden;text-align:center}
.eotd-hdr{padding:24px 20px 16px;position:relative}
.eotd-hdr::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 50% 30%,var(--cg) 0%,transparent 70%);opacity:.15}
.eotd-emoji{font-size:2.8rem;position:relative;z-index:1}
.eotd-sym{font-family:'Outfit',system-ui,sans-serif;font-size:3.5rem;font-weight:900;color:var(--cc);text-shadow:0 0 30px var(--cg);position:relative;z-index:1;line-height:1}
.eotd-name{font-family:'Outfit',system-ui,sans-serif;font-size:1.5rem;font-weight:700;color:var(--t1);position:relative;z-index:1}
.eotd-body{padding:18px 20px 24px;display:flex;flex-direction:column;gap:14px;text-align:left}
.eotd-teach{padding:12px 14px;border-radius:12px;background:linear-gradient(135deg,rgba(125,249,255,.06),rgba(199,146,234,.06));border:1px solid rgba(125,249,255,.1)}
.eotd-teach p{font-family:'Quicksand',sans-serif;font-size:.78rem;color:var(--cyan);font-weight:600;line-height:1.4;font-style:italic}
.eotd-nav{display:flex;gap:10px}
.eotd-nav button{flex:1;padding:11px;border-radius:12px;border:1.5px solid rgba(125,249,255,.15);background:rgba(255,255,255,.04);color:var(--t1);font-family:'Outfit',system-ui,sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;min-height:44px}

/* ═══ MATCH GAME ═══ */
.match-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(11,14,26,.92);z-index:800;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;gap:16px;opacity:0;pointer-events:none;transition:opacity .3s}
.match-overlay.active{opacity:1;pointer-events:auto}
.match-q{font-family:'Quicksand',sans-serif;font-size:1rem;color:var(--t1);text-align:center;font-weight:600;line-height:1.4}
.match-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:320px}
.match-opt{padding:16px 12px;border-radius:14px;border:1.5px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:all .2s;min-height:80px;justify-content:center}
.match-opt:active{transform:scale(.95)}
.match-opt .mo-emoji{font-size:1.8rem}.match-opt .mo-name{font-family:'Outfit',system-ui,sans-serif;font-size:.85rem;font-weight:600;color:var(--t1)}
.match-opt.correct{border-color:#66BB6A;background:rgba(102,187,106,.15)}
.match-opt.wrong{border-color:#EF5350;background:rgba(239,83,80,.1);opacity:.5}
.match-result{font-family:'Outfit',system-ui,sans-serif;font-size:1.1rem;font-weight:700;color:var(--cyan);min-height:30px;text-align:center}
.match-skip{background:none;border:none;color:var(--t2);font-family:'Quicksand',sans-serif;font-size:.7rem;font-weight:600;cursor:pointer;opacity:.5;padding:8px}

/* ═══ MODAL ═══ */
.mov{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(11,14,26,.88);backdrop-filter:blur(10px);z-index:500;display:flex;align-items:flex-start;justify-content:center;padding:64px 20px 36px;opacity:0;pointer-events:none;transition:opacity .3s}
.mov.active{opacity:1;pointer-events:auto}
.mcard{width:100%;max-width:340px;border-radius:20px;background:var(--bg3);overflow:hidden;transform:scale(.9) translateY(16px);transition:transform .4s cubic-bezier(.34,1.56,.64,1);max-height:calc(100vh - 100px);overflow-y:auto}
.mov.active .mcard{transform:scale(1) translateY(0)}
.mhdr{padding:16px 16px 12px;position:relative;display:flex;align-items:center;gap:12px;text-align:left}
.mhdr::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 30% 40%,var(--cg) 0%,transparent 70%);opacity:.15;pointer-events:none}
.mx{position:absolute;top:8px;right:10px;width:40px;height:40px;border-radius:50%;border:none;background:rgba(255,255,255,.1);color:var(--t2);font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2}
.m-emoji{font-size:2.4rem;position:relative;z-index:1;flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}
.m-info{position:relative;z-index:1;display:flex;flex-direction:column;gap:1px}
.m-sym{font-family:'Outfit',system-ui,sans-serif;font-size:1.8rem;font-weight:900;color:var(--cc);text-shadow:0 0 20px var(--cg);line-height:1}
.m-name{font-family:'Outfit',system-ui,sans-serif;font-size:1rem;font-weight:700;color:var(--t1)}
.m-meta{display:flex;gap:6px;margin-top:3px;position:relative;z-index:1;flex-wrap:wrap}
.m-meta span{font-family:'Space Mono','Courier New',monospace;font-size:.52rem;font-weight:400;padding:2px 8px;border-radius:6px;background:rgba(255,255,255,.08);color:var(--t3);text-transform:uppercase;letter-spacing:.06em}
.m-body{padding:14px 18px 20px;display:flex;flex-direction:column;gap:12px}
.m-lbl{font-family:'Space Mono','Courier New',monospace;font-size:.52rem;font-weight:400;text-transform:uppercase;letter-spacing:.14em;color:var(--cc);opacity:.7}
.m-fact{font-family:'Quicksand',sans-serif;font-size:.95rem;font-weight:600;color:var(--t1);line-height:1.45}
.m-story{font-family:'Quicksand',sans-serif;font-size:.82rem;font-weight:500;color:var(--t2);line-height:1.5}
.m-eternatus{padding:10px 12px;border-radius:10px;background:linear-gradient(135deg,rgba(125,249,255,.08),rgba(199,146,234,.08));border:1px solid rgba(125,249,255,.12);margin-top:14px}
.m-eternatus p{font-family:'Quicksand',sans-serif;font-size:.78rem;color:var(--cyan);font-weight:600;line-height:1.4;font-style:italic}
.m-speak{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px;border-radius:12px;border:1.5px solid var(--cb);background:var(--cbg);color:var(--cc);font-family:'Outfit',system-ui,sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;min-height:44px}
.m-combos{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.m-combo{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;background:rgba(255,255,255,.05);border:1px solid var(--cb)}
.m-combo-eq{font-family:'Quicksand',sans-serif;font-size:.72rem;font-weight:700;color:var(--cc)}.m-combo-arrow{font-size:.85rem;color:var(--cc);opacity:.7}
.m-combo-result{font-family:'Quicksand',sans-serif;font-size:.78rem;font-weight:600;color:var(--t1)}

/* ═══ CELEBRATIONS ═══ */
.celeb{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:600}
/* NEW ELEMENT TOAST */
.toast{position:fixed;top:6px;left:16px;right:16px;z-index:610;padding:7px 14px;background:var(--bg3);border:1px solid rgba(125,249,255,.12);border-left:3px solid var(--cyan);border-radius:10px;display:flex;align-items:center;gap:8px;transform:translateY(calc(-100% - 16px));transition:transform .35s cubic-bezier(.34,1.56,.64,1);pointer-events:auto;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.4)}
.toast.show{transform:translateY(0)}
.toast-emoji{font-size:1rem}
.toast-text{font-family:'Outfit',system-ui,sans-serif;font-size:.72rem;font-weight:600;color:var(--t1)}
.toast-fam{font-family:'Quicksand',sans-serif;font-size:.55rem;font-weight:600;color:var(--t2);margin-left:auto}
/* FAMILY COMPLETE OVERLAY */
.fam-celeb{position:fixed;top:0;left:0;width:100%;height:100%;z-index:700;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .5s}
.fam-celeb.active{opacity:1;pointer-events:auto}
.fam-celeb-bg{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(11,14,26,.92)}
.fam-celeb-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:400px;height:400px;border-radius:50%;opacity:.25;filter:blur(60px)}
.fam-celeb-content{position:relative;z-index:1;text-align:center;max-width:340px}
.fam-celeb-badge{font-family:'Outfit',system-ui,sans-serif;font-size:.7rem;font-weight:700;padding:6px 16px;border-radius:20px;display:inline-block;margin-bottom:12px;letter-spacing:.06em;text-transform:uppercase}
.fam-celeb-title{font-family:'Outfit',system-ui,sans-serif;font-size:1.8rem;font-weight:700;color:var(--t1);margin-bottom:8px;line-height:1.2}
.fam-celeb-quote{font-family:'Quicksand',sans-serif;font-size:.9rem;font-weight:600;color:var(--cyan);line-height:1.5;font-style:italic;margin-bottom:12px}
.fam-celeb-dragon{font-family:'Quicksand',sans-serif;font-size:.7rem;color:var(--t2);font-weight:500}
/* OLD CELEB TEXT (kept for achievements) */
.celeb-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'Outfit',system-ui,sans-serif;font-size:1.3rem;font-weight:700;color:var(--cyan);text-shadow:0 0 20px var(--cyan);opacity:0;animation:celebPop .8s cubic-bezier(.34,1.56,.64,1) forwards}
@keyframes celebPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}100%{opacity:0;transform:translate(-50%,-60%) scale(1)}}
.mega-celeb{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(11,14,26,.95);z-index:900;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .4s}
.mega-celeb.active{opacity:1;pointer-events:auto}
.mc-title{font-family:'Outfit',system-ui,sans-serif;font-size:1.6rem;font-weight:700;text-align:center;background:linear-gradient(135deg,var(--cyan),#FFD54F,var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px;animation:shm 2s ease-in-out infinite}
@keyframes shm{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.mc-sub{font-family:'Quicksand',sans-serif;font-size:.9rem;color:var(--t1);text-align:center;margin-bottom:20px;font-weight:500;line-height:1.5}
.mc-btn{padding:14px 36px;border-radius:14px;border:none;font-family:'Outfit',system-ui,sans-serif;font-size:1rem;font-weight:600;cursor:pointer;background:linear-gradient(135deg,var(--cyan),var(--purple));color:var(--bg)}

.particle{position:fixed;width:5px;height:5px;border-radius:50%;pointer-events:none;z-index:600;animation:pf .6s cubic-bezier(.25,.46,.45,.94) forwards}
@keyframes pf{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--tx),var(--ty)) scale(0)}}
.hidden{display:none!important}

/* ARC BANNER */
.arc-banner{position:relative;z-index:10;margin:8px 16px 0;padding:12px 16px;border-radius:14px;background:linear-gradient(135deg,rgba(125,249,255,.06),rgba(199,146,234,.06));border:1.5px solid rgba(125,249,255,.12);text-align:center;animation:fadeIn .4s ease}
.arc-title{font-family:'Outfit',system-ui,sans-serif;font-size:.85rem;font-weight:700;color:var(--t1);margin-bottom:4px}
.arc-desc{font-family:'Quicksand',sans-serif;font-size:.72rem;color:var(--cyan);font-weight:600;line-height:1.4;font-style:italic}
.arc-progress{font-family:'Quicksand',sans-serif;font-size:.6rem;color:var(--t2);margin-top:6px;font-weight:600}
.arc-complete{animation:celebPop .8s cubic-bezier(.34,1.56,.64,1) forwards}

/* WELCOME BACK */
.wb-return{position:relative;z-index:10;margin:0 16px 4px;padding:10px 14px;border-radius:12px;background:linear-gradient(135deg,rgba(125,249,255,.05),rgba(199,146,234,.05));border:1px solid rgba(125,249,255,.08);text-align:center;animation:fadeIn .5s ease;cursor:pointer}
.wb-return p{font-family:'Quicksand',sans-serif;font-size:.78rem;color:var(--cyan);font-weight:600;line-height:1.4;font-style:italic}

/* SESSION SUMMARY */
.sess-summary{width:100%;border-radius:14px;background:var(--bg3);border:1.5px solid rgba(125,249,255,.1);padding:16px;text-align:left}
.sess-summary h3{font-family:'Outfit',system-ui,sans-serif;font-size:.75rem;font-weight:600;color:var(--t2);margin-bottom:8px}
.sess-item{font-family:'Quicksand',sans-serif;font-size:.72rem;color:var(--t1);line-height:1.6;font-weight:500}

/* RADIANT ELEMENTS */
@keyframes rainbowShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes sparkleRotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
@keyframes textShimmer{0%{background-position:-200% center}100%{background-position:200% center}}
.mhdr.radiant{background:linear-gradient(135deg,#ff6b6b,#ffd93d,#6bcb77,#4d96ff,#9b59b6,#ff6b6b)!important;background-size:300% 300%;animation:rainbowShift 3s ease infinite}
.mhdr.radiant .m-sym{background:linear-gradient(90deg,#fff,#ffd93d,#fff);background-size:400% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:textShimmer 2s linear infinite}
.radiant-badge{font-family:'Outfit',system-ui,sans-serif;font-size:.55rem;font-weight:700;color:#FFD93D;background:rgba(255,217,61,.15);padding:3px 10px;border-radius:8px;display:inline-block;margin-bottom:4px;letter-spacing:.06em;position:relative;z-index:1}
.radiant-sparkle{position:absolute;top:50%;left:50%;width:80px;height:80px;pointer-events:none;z-index:0;animation:sparkleRotate 4s linear infinite}
.radiant-sparkle::before,.radiant-sparkle::after{content:'✨';position:absolute;font-size:.7rem}
.radiant-sparkle::before{top:0;left:50%;transform:translateX(-50%)}
.radiant-sparkle::after{bottom:0;right:0}
.card-radiant{position:absolute;top:4px;left:4px;font-size:.5rem;z-index:3;opacity:.8}

/* ═══ DRAGON ANIMATION ENGINE ═══ */

/* Z-particle float */
@keyframes dgZFloat{0%{opacity:0;transform:translateY(0) scale(.8) rotate(-5deg)}25%{opacity:.95}100%{opacity:0;transform:translateY(-44px) scale(1.15) rotate(18deg)}}

/* Spin reaction */
@keyframes dgSpin{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(200deg) scale(1.12)}100%{transform:rotate(360deg) scale(1)}}
.dg-spin{animation:dgSpin .42s cubic-bezier(.34,1.56,.64,1) forwards!important;transform-origin:50% 50%;transform-box:fill-box}

/* Wing flap (fast) — family unlock */
@keyframes dgWingFlap{0%,100%{transform:scaleX(1) scaleY(1)}25%{transform:scaleX(1.22) scaleY(.93)}75%{transform:scaleX(.85) scaleY(1.08)}}
.dg-wing-flap .dragon-hero{animation:dgWingFlap .22s ease-in-out 9!important}

/* Wing stretch — idle */
@keyframes dgStretch{0%,100%{transform:scale(1)}40%{transform:scaleX(1.28) translateY(-5px) scale(1.04)}80%{transform:scaleX(.96) scale(.99)}}
.dg-stretch .dragon-hero{animation:dgStretch .9s ease-in-out 1!important}

/* Sleeping — slow float */
.dg-sleeping .dragon-hero{animation:dragonFloat 7s ease-in-out infinite!important;opacity:.82}

/* Wing glow — tier 4+ */
@keyframes dgWingGlow{0%,100%{stroke:#C792EA;stroke-opacity:.7}50%{stroke:#7DF9FF;stroke-opacity:1;filter:drop-shadow(0 0 4px #7DF9FF)}}
.dg-wing-glow{animation:dgWingGlow 2.2s ease-in-out infinite}

/* Tier-based dragon visuals */
.dg-tier-1 .dragon-hero{opacity:.8;filter:drop-shadow(0 0 6px rgba(125,249,255,.1))}
.dg-tier-2 .dragon-hero{opacity:.85;filter:drop-shadow(0 0 8px rgba(125,249,255,.15))}
.dg-tier-3 .dragon-hero{opacity:1;filter:drop-shadow(0 0 12px rgba(125,249,255,.2))}
.dg-tier-4 .dragon-hero{opacity:1;filter:drop-shadow(0 0 18px rgba(125,249,255,.38)) drop-shadow(0 0 8px rgba(199,146,234,.22))}
.dg-tier-5 .dragon-hero{opacity:1;filter:drop-shadow(0 0 26px rgba(125,249,255,.55)) drop-shadow(0 0 16px rgba(199,146,234,.38)) drop-shadow(0 0 8px rgba(255,213,79,.25));animation:dragonFloat 3s ease-in-out infinite,dgTier5Pulse 4s ease-in-out infinite}
@keyframes dgTier5Pulse{0%,100%{filter:drop-shadow(0 0 26px rgba(125,249,255,.55)) drop-shadow(0 0 16px rgba(199,146,234,.38)) drop-shadow(0 0 8px rgba(255,213,79,.25))}50%{filter:drop-shadow(0 0 40px rgba(125,249,255,.75)) drop-shadow(0 0 24px rgba(199,146,234,.55)) drop-shadow(0 0 14px rgba(255,213,79,.4))}}

/* RADIANT METEOR SHOWER */
.meteor-shower{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:650;overflow:hidden}
.meteor{position:absolute;width:3px;height:3px;border-radius:50%;animation:meteorFall linear forwards}
.meteor::after{content:'';position:absolute;top:0;left:0;width:2px;height:40px;background:linear-gradient(to bottom,currentColor,transparent);transform:rotate(45deg);transform-origin:top left;border-radius:2px}
@keyframes meteorFall{0%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(var(--mx),var(--my))}}
.radiant-flash{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:640;opacity:0;animation:radFlash .6s ease-out forwards}
@keyframes radFlash{0%{opacity:0}15%{opacity:.3}100%{opacity:0}}
.radiant-ring{position:fixed;pointer-events:none;z-index:645;border-radius:50%;border:2px solid;opacity:0;animation:ringExpand .8s ease-out forwards}
@keyframes ringExpand{0%{opacity:.8;transform:translate(-50%,-50%) scale(0)}60%{opacity:.4}100%{opacity:0;transform:translate(-50%,-50%) scale(1)}}
@keyframes confettiBurst{0%{opacity:1;transform:translateY(0) translateX(0) rotate(0deg) scale(1)}40%{opacity:1}100%{opacity:0;transform:translateY(var(--cty)) translateX(var(--ctx)) rotate(var(--cr)) scale(0.3)}}

/* BUDDY BADGE */
.buddy-wrap{position:absolute;top:6px;right:10px;display:flex;flex-direction:column;align-items:center;gap:2px;z-index:2;cursor:pointer}
.buddy-badge{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;border:2px solid rgba(125,249,255,.2);background:rgba(255,255,255,.04);transition:all .3s;animation:buddyPulse 3s ease-in-out infinite}
.buddy-wrap:active .buddy-badge{transform:scale(.9)}
.buddy-badge.empty{font-size:.8rem;opacity:.3;animation:none}
.buddy-label{font-family:'Space Mono','Courier New',monospace;font-size:.42rem;font-weight:400;color:var(--t3);text-transform:uppercase;letter-spacing:.1em;opacity:.6}
.buddy-wrap.has-buddy .buddy-label{opacity:.8;color:var(--cyan)}
@keyframes buddyPulse{0%,100%{box-shadow:0 0 8px rgba(125,249,255,.1)}50%{box-shadow:0 0 16px rgba(125,249,255,.25)}}

/* WILD ELEMENT BANNER */
.wild-banner{position:relative;z-index:10;margin:6px 16px 0;padding:12px 16px;border-radius:14px;background:linear-gradient(135deg,rgba(255,213,79,.06),rgba(125,249,255,.06));border:1.5px solid rgba(255,213,79,.2);display:flex;align-items:center;gap:12px;animation:fadeIn .5s ease;cursor:pointer}
.wild-banner:active{transform:scale(.98)}
.wild-text{flex:1;font-family:'Quicksand',sans-serif;font-size:.78rem;color:#FFD54F;font-weight:600;line-height:1.4}
.wild-btn{font-family:'Outfit',system-ui,sans-serif;font-size:.75rem;font-weight:700;color:var(--bg);background:linear-gradient(135deg,#FFD54F,var(--cyan));padding:8px 16px;border-radius:10px;border:none;cursor:pointer;white-space:nowrap}
.wild-reveal{text-align:center;padding:20px 16px}
.wild-reveal .wr-emoji{font-size:2.4rem;animation:ci .4s cubic-bezier(.34,1.56,.64,1)}
.wild-reveal .wr-sym{font-family:'Outfit',system-ui,sans-serif;font-size:1.8rem;font-weight:900;line-height:1}
.wild-reveal .wr-name{font-family:'Outfit',system-ui,sans-serif;font-size:1rem;font-weight:600;color:var(--t1);margin-top:2px}
.wild-reveal .wr-speech{font-family:'Quicksand',sans-serif;font-size:.72rem;color:var(--cyan);font-weight:600;font-style:italic;margin-top:8px}

@media(max-width:500px){.hdr h1{font-size:.65rem}.mbar svg.dragon-hero{width:120px;height:94px}.grid{grid-template-columns:repeat(2,1fr);gap:8px;padding:0 12px 80px}.ftabs{padding:0 12px 6px}.mbar{margin:0 12px 6px;padding:4px 12px 10px}.ltabs{margin:6px 12px 0}.fbio{margin:0 12px 8px}.w-title{font-size:1.6rem}}
@media(min-width:768px){.mbar svg.dragon-hero{width:160px;height:125px}.grid{grid-template-columns:repeat(4,1fr);max-width:680px;margin:0 auto}.ftabs{justify-content:center;flex-wrap:wrap}.mbar{max-width:680px;margin:0 auto 8px}.ltabs{max-width:560px;margin:8px auto 0}.fbio{max-width:680px;margin:0 auto 10px}}

/* ═══ DRAGON ENGINE v3 — UPGRADE ADDITIONS ═══ */

/* Backflip reaction */
@keyframes dgBackflip {
  0%   { transform: rotateY(0deg)   scale(1)    translateY(0px) }
  40%  { transform: rotateY(180deg) scale(1.15) translateY(-12px) }
  70%  { transform: rotateY(330deg) scale(0.95) translateY(-4px) }
  100% { transform: rotateY(360deg) scale(1)    translateY(0px) }
}
.dg-backflip {
  animation: dgBackflip 600ms cubic-bezier(.34,1.56,.64,1) forwards !important;
  transform-origin: 50% 50%;
  transform-box: fill-box;
}

/* Tier ceremony pulse */
@keyframes dgCeremonyPulse {
  0%, 100% { border-color: rgba(125,249,255,.12) }
  50%      { border-color: rgba(125,249,255,.55); box-shadow: 0 0 24px rgba(125,249,255,.2) }
}
.dg-ceremony {
  animation: dgCeremonyPulse 0.8s ease-in-out 5 !important;
}

/* Wings extended — element 118 ceremony */
@keyframes dgWingsExtended {
  0%   { transform: scaleX(1)    }
  100% { transform: scaleX(1.35) }
}
.dg-wings-extended .dragon-hero {
  animation: dgWingsExtended 0.5s ease-out forwards !important;
}

/* Reduced motion overrides */
@media (prefers-reduced-motion: reduce) {
  .dg-spin, .dg-backflip, .dg-wing-flap .dragon-hero,
  .dg-stretch .dragon-hero, .dg-wings-extended .dragon-hero {
    animation: none !important;
    transition: opacity 0.3s ease !important;
  }
  .dragon-hero {
    animation: none !important;
  }
}

/* ═══ WIZKOO BLUEPRINT — THE LIGHT STANDARD v3 ═══ */

/* Focus ring — saffron on all dark surfaces (6:1+ contrast) */
*:focus-visible{outline:2px solid var(--saffron);outline-offset:2px}

/* Semantic state colors */
.error,.error-text{color:#E85A5A}
.success,.success-text{color:#4ACC8A}
.warning,.warning-text{color:#E8C44A}
.info,.info-text{color:#5A8AD0}

/* Profile stat labels → Space Mono structural */
.prof-stat-lbl{font-family:'Space Mono','Courier New',monospace;font-size:.52rem;font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);margin-top:2px}

/* Form field labels → Space Mono structural */
.w-field label{font-family:'Space Mono','Courier New',monospace;font-size:.62rem;font-weight:400;color:var(--t3);text-transform:uppercase;letter-spacing:.1em;display:block;margin-bottom:5px}

/* Section headers in profile → Space Mono */
.prof-anchors h3,.prof-timeline h3,.sess-summary h3{font-family:'Space Mono','Courier New',monospace;font-size:.62rem;font-weight:400;color:var(--t3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}

/* Dragon map structural labels → Space Mono */
.dm-label{font-family:'Space Mono','Courier New',monospace;font-size:.48rem;font-weight:400;color:var(--t3);opacity:.5;display:flex;align-items:center;justify-content:center;pointer-events:none}

/* Share card brand badge → Space Mono */
.sc-brand{font-family:'Space Mono','Courier New',monospace;font-size:.58rem;font-weight:400;color:var(--t3);opacity:.5;letter-spacing:.1em;text-transform:uppercase}

/* Undiscovered ? mark → use ghost text color, not rgba white */
.cw.undiscovered::after{content:'?';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2rem;font-weight:700;color:#2A3050;pointer-events:none}

/* Tab labels inherit Outfit from replace-all; tab sublabels need Inter */
.ltab .lc{font-family:'Inter',system-ui,sans-serif}

/* ── INTER — body/description/UI text overrides ───────────────────────
   These were Quicksand 400 (body text role) → now Inter 400.
   Dragon speech / narrative elements below are KEPT in Quicksand.     */
.w-tagline,.w-parent p,.w-hint,.w-divider span,
.reset-confirm p,
.fbio-text,.m-fact,.m-combo-eq,.m-combo-result,
.match-q,.match-skip,
.mc-sub,
.tl-item,.prof-anchor,
.wb-sub,.arc-progress,
.wild-text,.dm-col-hint p{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  font-weight:400;
  line-height:1.7;
}

/* ── QUICKSAND italic — dragon speech / narrative (locked) ────────────
   Quicksand 500 italic is the dragon's voice. Never change these.      */
.msp,.m-story,.m-eternatus p,.eotd-teach p,
.fam-celeb-quote,.fam-celeb-dragon,
.arc-desc,.wb-return p,.wild-reveal .wr-speech,
.intro-speech{
  font-family:'Quicksand',sans-serif;
  font-weight:500;
  font-style:italic;
  line-height:1.5;
}
/* Dragon speech that lives in the mbar strong tag keeps cyan */
.msp strong{color:var(--cyan);font-weight:700;font-style:normal}

/* ── INTER — filter tabs, form inputs ────────────────────────────────*/
.ftab,.ltab{font-family:'Inter',system-ui,sans-serif;font-weight:500}
.w-field input{font-family:'Inter',system-ui,sans-serif;font-size:.95rem;font-weight:400}

/* ── MOBILE: gradient safeguard ─────────────────────────────────────*/
@media screen and (max-width:768px){
  body,.welcome,.welcome-beat,.intro-overlay{
    background:#141E38;
    background:radial-gradient(ellipse at 50% 45%,#182848 0%,#101830 70%);
  }
}

/* ═══════════════════════════════════════
   JOURNEY SYSTEM V1 — Explorer Rank + Wonder Paths
   ═══════════════════════════════════════ */

/* ── Journey Screen (selection view) ── */
.journey-screen{position:relative;z-index:10;padding:12px 16px 90px;display:flex;flex-direction:column;gap:10px;max-width:520px;margin:0 auto;width:100%}

/* Rank badge */
.jr-rank{text-align:center;padding:14px 0 6px}
.jr-rank-label{font-family:'Space Mono','Courier New',monospace;font-size:1.05rem;font-weight:400;color:var(--cyan);text-transform:uppercase;letter-spacing:.14em}
.jr-rank-sub{font-family:'Space Mono','Courier New',monospace;font-size:.44rem;color:var(--t3);text-transform:uppercase;letter-spacing:.12em;margin-top:4px}

/* Section header */
.jr-section-header{font-family:'Space Mono','Courier New',monospace;font-size:.52rem;font-weight:400;color:var(--t3);text-transform:uppercase;letter-spacing:.14em;padding:4px 0 4px}

/* Wonder Path cards */
.jpath-card{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;background:var(--card-bg);border:1.5px solid rgba(255,255,255,.08);cursor:pointer;transition:transform .18s cubic-bezier(.34,1.56,.64,1),border-color .2s;position:relative;overflow:hidden}
.jpath-card::before{content:'';position:absolute;inset:0;border-radius:14px;background:radial-gradient(ellipse at 30% 50%,rgba(255,255,255,.04) 0%,transparent 70%);pointer-events:none}
.jpath-card:active{transform:scale(.97)}
.jpath-card.jpath-done{border-color:rgba(255,213,79,.28);background:linear-gradient(135deg,var(--card-bg),rgba(255,213,79,.04))}
.jpc-emoji{font-size:2rem;flex-shrink:0;width:46px;text-align:center;line-height:1}
.jpc-body{flex:1;min-width:0}
.jpc-title{font-family:'Outfit',system-ui,sans-serif;font-size:.88rem;font-weight:700;color:var(--t1);line-height:1.3;margin-bottom:5px}
.jpc-badge{font-family:'Quicksand',sans-serif;font-size:.72rem;font-weight:600;color:var(--gold)}
.jpc-prog-wrap{display:flex;align-items:center;gap:8px}
.jpc-prog-bar{flex:1;height:4px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden}
.jpc-prog-fill{height:100%;background:linear-gradient(90deg,var(--saffron),var(--cyan));border-radius:2px;transition:width .4s}
.jpc-prog-text{font-family:'Space Mono','Courier New',monospace;font-size:.42rem;color:var(--t3);white-space:nowrap;letter-spacing:.04em}
.jpc-arrow{font-family:'Outfit',system-ui,sans-serif;font-size:1.1rem;color:var(--t3);flex-shrink:0;font-weight:600;transition:color .2s}
.jpath-card.jpath-done .jpc-arrow{color:var(--gold)}

/* Locked tier cards */
.jr-locked-section{opacity:.35}
.jrl-card{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;background:var(--card-bg);border:1.5px dashed rgba(255,255,255,.1);cursor:not-allowed;user-select:none}
.jrl-emoji{font-size:1.6rem;flex-shrink:0;width:40px;text-align:center}
.jrl-body{flex:1;min-width:0}
.jrl-title{font-family:'Space Mono','Courier New',monospace;font-size:.56rem;font-weight:400;color:var(--t2);text-transform:uppercase;letter-spacing:.12em;margin-bottom:4px}
.jrl-cond{font-family:'Inter',system-ui,sans-serif;font-size:.68rem;color:var(--t3);line-height:1.45}
.jrl-lock{font-size:1.1rem;flex-shrink:0;opacity:.5}

/* Earned badges grid */
.jr-badges-section{margin-top:2px}
.jr-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.jr-badge-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 14px;border-radius:12px;background:rgba(255,213,79,.07);border:1.5px solid rgba(255,213,79,.22)}
.jr-badge-emoji{font-size:1.8rem;line-height:1}
.jr-badge-name{font-family:'Outfit',system-ui,sans-serif;font-size:.6rem;font-weight:700;color:var(--gold);text-align:center;letter-spacing:.02em}

/* ── Journey header (active path view) ── */
.journey-header{position:relative;z-index:10;margin:6px 16px 0;padding:10px 14px;border-radius:14px;background:linear-gradient(135deg,rgba(232,175,56,.07),rgba(125,249,255,.05));border:1.5px solid rgba(232,175,56,.22);animation:fadeIn .3s ease}
.jh-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}
.jh-back{background:none;border:none;color:var(--saffron);font-family:'Outfit',system-ui,sans-serif;font-size:.72rem;font-weight:700;cursor:pointer;padding:4px 0;letter-spacing:.02em}
.jh-back:active{opacity:.7}
.jh-prog{font-family:'Space Mono','Courier New',monospace;font-size:.46rem;color:var(--t3);text-transform:uppercase;letter-spacing:.08em}
.jh-title{font-family:'Outfit',system-ui,sans-serif;font-size:.9rem;font-weight:700;color:var(--t1);margin-bottom:3px}
.jh-question{font-family:'Quicksand',sans-serif;font-size:.76rem;font-weight:500;font-style:italic;color:var(--cyan);line-height:1.4}

/* ── Journey completion overlay ── */
.journey-complete{position:fixed;top:0;left:0;width:100%;height:100%;z-index:750;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(11,14,26,.94);backdrop-filter:blur(12px);opacity:0;pointer-events:none;transition:opacity .4s}
.journey-complete.active{opacity:1;pointer-events:auto}
.jc-content{text-align:center;max-width:340px;width:100%;display:flex;flex-direction:column;align-items:center}
.jc-emoji{font-size:3.8rem;animation:ci .5s cubic-bezier(.34,1.56,.64,1);line-height:1;margin-bottom:14px}
.jc-pat{font-family:'Outfit',system-ui,sans-serif;font-size:1.55rem;font-weight:700;color:var(--t1);letter-spacing:.04em;margin-bottom:10px}
.jc-revelation{font-family:'Quicksand',sans-serif;font-size:.9rem;font-weight:600;font-style:italic;color:var(--cyan);line-height:1.55;margin-bottom:18px;max-width:300px}
.jc-badge-wrap{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:20px;background:rgba(255,213,79,.1);border:1.5px solid rgba(255,213,79,.3);margin-bottom:22px}
.jcb-emoji{font-size:1.7rem;line-height:1}
.jcb-title{font-family:'Outfit',system-ui,sans-serif;font-size:.92rem;font-weight:700;color:var(--gold)}
.jc-btn{padding:14px 40px;border-radius:14px;border:none;font-family:'Outfit',system-ui,sans-serif;font-size:1rem;font-weight:700;cursor:pointer;background:var(--saffron);color:#0B0E1A;transition:transform .15s;letter-spacing:.02em}
.jc-btn:active{transform:scale(.95)}

/* ── Rank display in profile ── */
.prof-rank{color:var(--cyan);font-weight:700}
.prof-rank-sep{color:var(--t3);opacity:.55;font-weight:400}

/* ── Responsive journey adjustments ── */
@media(max-width:500px){
  .journey-screen{padding:10px 12px 90px;gap:8px}
  .jpath-card{padding:12px;gap:10px}
  .jpc-emoji{font-size:1.7rem;width:40px}
  .jpc-title{font-size:.82rem}
  .jr-rank-label{font-size:.9rem}
  .jc-pat{font-size:1.3rem}
  .jc-revelation{font-size:.83rem}
}
@media(min-width:768px){
  .journey-screen{max-width:560px}
}
