/* ============================================
   JOE GIANT — joegiant.com v4 FINAL
   Dark mountain night · Orange fire · Honest brand
   All 20 fixes applied
============================================ */
:root {
  --orange:      #ff6b00;
  --orange-lt:   #ff9a3c;
  --orange-glow: rgba(255,107,0,.22);
  --orange-deep: #bb3d00;
  --dark:        #050c14;
  --dark2:       #091520;
  --dark3:       #0d1c2a;
  --mid:         #152235;
  --mid2:        #1c2f44;
  --text:        #ddeeff;
  --text-dim:    #7898b8;
  --text-mute:   #6a8eaa;
  --gold:        #ffd166;
  --blue:        #3a8ee0;
  --green:       #22994a;
  --purple:      #8844cc;
  --radius:      18px;
  --radius-s:    10px;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Nunito',sans-serif;background:var(--dark);color:var(--text);overflow-x:hidden;cursor:none}
#cursor-cross{position:fixed;pointer-events:none;z-index:99998;transform:translate(-50%,-50%)}
a{text-decoration:none;color:inherit}

/* ===== CANVASES ===== */
#dog-canvas,#particle-canvas{position:fixed;inset:0;pointer-events:none;z-index:9999}
#particle-canvas{z-index:1}

/* ===== FIX #1: JOE GIANT — sky-blue chrome gradient, no glow pulse ===== */
.jg-glow {
  font-family: 'Bangers', cursive;
  letter-spacing: 3px;
  background: linear-gradient(
    180deg,
    #e8f8ff 0%,
    #a8dcff 28%,
    #5ab8ff 52%,
    #c8eeff 75%,
    #ffffff 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent !important;
  filter: drop-shadow(0 1px 3px rgba(90,184,255,0.4));
}

/* ===== FIX #2: Hat SVG inline styling ===== */
.hat-svg { display:inline-block; vertical-align:middle; }
.nav-hat-svg { flex-shrink:0; }
.loader-hat { display:flex; align-items:center; justify-content:center; margin-bottom:8px; animation:lbounce .9s ease-in-out infinite alternate; }

/* ===== LOADER ===== */
#loader{position:fixed;inset:0;z-index:99999;background:var(--dark);display:flex;align-items:center;justify-content:center;transition:opacity .5s,visibility .5s}
#loader.gone{opacity:0;visibility:hidden}
.loader-inner{text-align:center}
@keyframes lbounce{from{transform:translateY(0)}to{transform:translateY(-14px)}}
.loader-bar{width:200px;height:4px;background:rgba(255,255,255,.07);border-radius:999px;margin:14px auto 10px;overflow:hidden}
.loader-fill{height:100%;background:linear-gradient(90deg,var(--orange),var(--gold));border-radius:999px;animation:lfill 1.7s ease forwards}
@keyframes lfill{from{width:0}to{width:100%}}
.loader-text{font-size:.78rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}

/* ===== NAV ===== */
#nav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:16px 48px;background:rgba(5,12,20,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,107,0,.13);transition:padding .3s,background .3s}
#nav.scrolled{padding:10px 48px;background:rgba(5,12,20,.97)}
.nav-brand{display:flex;align-items:center;gap:10px;cursor:pointer;transition:transform .2s;text-decoration:none}
.nav-brand:hover{transform:scale(1.03)}
.nav-name{font-size:1.55rem !important; letter-spacing:3px !important;}
.nav-links{display:flex;gap:28px;list-style:none}
.nav-links a{font-size:.86rem;font-weight:800;letter-spacing:.5px;color:var(--text-dim);cursor:pointer;transition:color .2s;position:relative}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:2px;background:var(--orange);transform:scaleX(0);transition:transform .2s;transform-origin:left}
.nav-links a:hover{color:var(--text)}
.nav-links a:hover::after{transform:scaleX(1)}
.nav-cta{background:var(--orange)!important;color:white!important;padding:8px 18px;border-radius:999px;box-shadow:0 4px 18px rgba(255,107,0,.3);overflow:hidden;max-width:120px;transition:max-width .35s cubic-bezier(.34,1.56,.64,1),box-shadow .2s,transform .2s}
.nav-cta::after{display:none!important}
.nav-cta:hover{transform:translateY(-2px)!important;box-shadow:0 8px 28px rgba(255,107,0,.5)!important;max-width:260px}
.nav-cta-short{display:inline;white-space:nowrap}
.nav-cta-long{display:none;white-space:nowrap;margin-left:0}
.nav-cta:hover .nav-cta-short{display:none}
.nav-cta:hover .nav-cta-long{display:inline}
.nav-burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}
.nav-burger span{display:block;width:22px;height:2px;background:var(--orange);border-radius:2px;transition:all .3s}
.nav-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger.open span:nth-child(2){opacity:0}
.nav-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-nav{display:none;flex-direction:column;position:fixed;top:62px;left:0;right:0;background:rgba(5,12,20,.98);border-bottom:2px solid var(--orange);padding:14px 22px 22px;gap:4px;z-index:999}
.mobile-nav.open{display:flex}
.mobile-nav a{padding:13px 14px;font-weight:800;font-size:.97rem;color:var(--text-dim);border-radius:var(--radius-s);transition:all .2s;cursor:pointer}
.mobile-nav a:hover{background:rgba(255,107,0,.1);color:var(--text)}
.mn-cta{background:var(--orange)!important;color:white!important;text-align:center;margin-top:8px}

/* ===== PLACEHOLDERS ===== */
.img-ph{background:linear-gradient(135deg,var(--dark3),var(--mid));border:2px dashed rgba(255,107,0,.3);border-radius:var(--radius);display:flex;align-items:center;justify-content:center}
.ph-in{padding:22px;text-align:center}
.ph-in.small{padding:13px}
.ph-ico{display:block;font-size:2.5rem;margin-bottom:8px}
.ph-in strong{display:block;font-size:.75rem;color:var(--orange-lt);margin-bottom:5px;letter-spacing:.5px}
.ph-in p{font-size:.72rem;color:var(--text-dim);line-height:1.5}

/* ===== HERO ===== */
#hero{min-height:100vh;position:relative;display:flex;align-items:center;padding:120px 80px 80px;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 18% 60%,rgba(255,107,0,.06),transparent 55%),radial-gradient(ellipse at 80% 25%,rgba(58,142,224,.04),transparent 50%),var(--dark2);overflow:hidden}
.hero-stars{position:absolute;inset:0}
.mountain{position:absolute;bottom:0;clip-path:polygon(0% 100%,50% 0%,100% 100%)}
.m1{width:55%;left:-8%;background:rgba(255,107,0,.035);height:60%}
.m2{width:48%;left:28%;background:rgba(255,107,0,.025);height:50%}
.m3{width:65%;left:38%;background:rgba(255,107,0,.02);height:55%}
.mountain-glow{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(transparent,rgba(255,107,0,.04))}

.hero-content{position:relative;z-index:10;max-width:600px}

/* FIX #4: Lead-in above eyebrow */
.hero-leadup{opacity:0;animation:fadeUp .6s ease forwards var(--d);margin-bottom:10px}
.leadup-text{font-size:.82rem;font-weight:900;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,.55);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);padding:5px 14px;border-radius:999px;display:inline-block}

.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.76rem;font-weight:900;letter-spacing:3px;text-transform:uppercase;color:var(--orange-lt);margin-bottom:22px;opacity:0;animation:fadeUp .7s ease forwards var(--d)}
.edot{width:5px;height:5px;background:var(--orange);border-radius:50%;display:inline-block}
.hero-h1{margin-bottom:22px}
.hl{display:block;font-family:'Bangers',cursive;font-size:clamp(3.8rem,8vw,7.5rem);letter-spacing:5px;line-height:.9;opacity:0;animation:fadeLeft .85s ease forwards var(--d)}
.orange-hl{color:var(--orange);text-shadow:0 0 55px rgba(255,107,0,.38)}
@keyframes fadeLeft{from{opacity:0;transform:translateX(-36px)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

.hero-sub{font-size:1.05rem;color:var(--text-dim);line-height:1.85;margin-bottom:32px;opacity:0;animation:fadeUp .7s ease forwards var(--d)}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:28px;opacity:0;animation:fadeUp .7s ease forwards var(--d)}
.hero-promise{display:flex;align-items:center;gap:10px;flex-wrap:wrap;opacity:0;animation:fadeIn .7s ease forwards var(--d);padding:14px 18px;background:rgba(255,107,0,.06);border:1px solid rgba(255,107,0,.15);border-radius:var(--radius-s)}
.promise-item{font-size:.82rem;font-weight:800;color:var(--text-dim)}
.promise-sep{color:var(--orange);font-weight:900;font-size:1.1rem}

.hero-right{position:absolute;right:0;top:0;bottom:0;width:48%;z-index:5;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-image-wrap{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.hero-image{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.hero-glow{position:absolute;inset:0;background:linear-gradient(to right,var(--dark) 0%,transparent 30%,transparent 70%,var(--dark) 100%),linear-gradient(to top,var(--dark) 0%,transparent 25%);pointer-events:none;z-index:2}
.hero-book-float{position:absolute;bottom:72px;left:32px;animation:float 5s ease-in-out infinite;z-index:3}
.book-float-img{width:90px;height:120px;object-fit:cover;object-position:center;border-radius:4px;box-shadow:0 8px 32px rgba(0,0,0,.7);transform:rotate(-4deg)}
.ribbon-img{width:220px;height:140px;object-fit:cover;object-position:center;border-radius:var(--radius);opacity:.85}
.cover-img{width:100%;height:210px;object-fit:cover;object-position:center top;border-radius:0;border-bottom:1px solid rgba(255,255,255,.05);display:block}
.machine-img{width:100%;height:320px;object-fit:cover;object-position:center top;border-radius:var(--radius)}
.about-img{width:100%;height:420px;object-fit:cover;object-position:center top;border-radius:var(--radius)}
.join-img{width:100%;height:300px;object-fit:cover;object-position:center top;border-radius:var(--radius)}
.hero-ph{width:90%;height:72vh;max-height:640px;opacity:0;animation:fadeIn 1s ease forwards .7s}
.hero-book-float{position:absolute;bottom:72px;left:32px;animation:float 5s ease-in-out infinite}
.float-ph{width:110px;height:150px}
@keyframes float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-13px) rotate(3deg)}}

.scroll-hint{position:absolute;bottom:28px;left:80px;z-index:10;display:flex;align-items:center;gap:8px;opacity:0;animation:fadeIn 1s ease forwards 1.8s;color:var(--text-mute);font-size:.72rem;font-weight:700;letter-spacing:1px}
.scroll-chevron{width:18px;height:18px;border-right:2px solid var(--orange);border-bottom:2px solid var(--orange);transform:rotate(45deg);animation:scrollbounce 1.5s ease-in-out infinite}
@keyframes scrollbounce{0%,100%{transform:rotate(45deg)}50%{transform:rotate(45deg) translate(3px,3px)}}

/* ===== BUTTONS ===== */
.btn-orange{display:inline-block;background:var(--orange);color:white;padding:13px 28px;border-radius:999px;font-weight:900;font-size:.92rem;border:none;cursor:pointer;font-family:'Nunito',sans-serif;transition:transform .2s,box-shadow .2s;box-shadow:0 5px 22px rgba(255,107,0,.38)}
.btn-orange:hover{transform:translateY(-3px);box-shadow:0 10px 35px rgba(255,107,0,.55)}
.btn-orange.sm{padding:10px 20px;font-size:.85rem}
.btn-orange.full{width:100%;text-align:center;padding:16px;font-size:1rem}
.btn-ghost{display:inline-block;background:transparent;color:var(--orange);padding:12px 26px;border-radius:999px;font-weight:900;font-size:.92rem;border:2px solid rgba(255,107,0,.45);cursor:pointer;transition:all .2s}
.btn-ghost:hover{background:rgba(255,107,0,.1);border-color:var(--orange)}
.btn-outline{display:inline-block;background:transparent;color:var(--orange-lt);padding:9px 18px;border-radius:999px;font-weight:800;font-size:.83rem;border:1.5px solid rgba(255,107,0,.35);cursor:pointer;font-family:'Nunito',sans-serif;transition:all .2s}
.btn-outline:hover{border-color:var(--orange);color:var(--orange)}
.btn-outline.sm{padding:9px 16px}
.arrow-anim{display:inline-block;transition:transform .2s}
.btn-orange:hover .arrow-anim{transform:translateX(4px)}

/* ===== SERIES RIBBON ===== */
.series-ribbon{position:relative;z-index:10;background:linear-gradient(135deg,var(--orange-deep),var(--orange));padding:52px 80px}
.ribbon-in{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:40px}
.ribbon-label{font-size:.7rem;font-weight:900;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:8px;display:block}
.ribbon-text h2{font-family:'Bangers',cursive;font-size:2.5rem;letter-spacing:3px;color:white;margin-bottom:10px}
.ribbon-sub{color:rgba(255,255,255,.85);max-width:480px;line-height:1.7;font-size:.93rem}
.ribbon-ph{width:220px;height:140px;border:2px dashed rgba(255,255,255,.25);background:rgba(255,255,255,.08)}

/* ===== WRAP & SECTION HEADS ===== */
.wrap{max-width:1260px;margin:0 auto;padding:96px 60px}
.sec-head{text-align:center;margin-bottom:60px}
.sec-label{display:inline-block;font-size:.7rem;font-weight:900;letter-spacing:3px;text-transform:uppercase;color:var(--orange);margin-bottom:12px}
.sec-title{font-family:'Bangers',cursive;font-size:clamp(2rem,4.2vw,3.2rem);letter-spacing:3px;color:white;margin-bottom:13px;line-height:1.05}
.sec-sub{font-size:.97rem;color:var(--text-dim);max-width:560px;margin:0 auto;line-height:1.8}

/* ===== BOOKS ===== */
#books{background:var(--dark2)}
.books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:26px;margin-bottom:44px}
.bcard{background:var(--dark3);border:1px solid rgba(255,255,255,.065);border-radius:var(--radius);overflow:hidden;position:relative;transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s}
.bcard:hover{transform:translateY(-9px) scale(1.01);box-shadow:0 20px 60px rgba(0,0,0,.55),0 0 40px rgba(255,107,0,.12)}
.mystery-bcard{border-color:rgba(255,255,255,.04)}
.bcard-top{position:relative}
.cover-ph{width:100%;height:210px;border-radius:0;border:none;border-bottom:1px solid rgba(255,255,255,.05)}
.mystery-cover{filter:brightness(.25)}
.bcard-spine{position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(var(--orange),var(--orange-deep))}
.bcard-body{padding:20px}
.bcard-series{font-size:.68rem;font-weight:900;letter-spacing:1.2px;text-transform:uppercase;color:var(--orange);margin-bottom:5px}
.bcard-body h3{font-family:'Bangers',cursive;font-size:1.5rem;letter-spacing:1.5px;color:white;margin-bottom:9px}
.mystery-title{color:#7898b8;letter-spacing:6px}
.bcard-desc{font-size:.85rem;color:var(--text-dim);line-height:1.65;margin-bottom:11px}
.bcard-desc em{color:var(--orange-lt);font-style:italic}

/* FIX #19: first-review callout on each book card */
.first-review-callout{display:flex;align-items:flex-start;gap:8px;background:rgba(255,209,102,.07);border:1px solid rgba(255,209,102,.2);border-radius:var(--radius-s);padding:9px 11px;margin-bottom:12px}
.first-review-callout span{font-size:.9rem;flex-shrink:0;margin-top:1px}
.first-review-callout p{font-size:.75rem;font-weight:700;color:var(--gold);line-height:1.5}

.book-trio{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.trio{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:var(--radius-s);font-size:.77rem}
.trio span{font-size:.95rem;flex-shrink:0}
.trio div{display:flex;flex-direction:column;gap:1px}
.trio strong{font-weight:800;color:var(--text)}
.trio div span{font-size:.68rem;font-weight:700}
/* FIX #5: coming-soon style for book availability */
.trio.coming-soon{background:rgba(255,107,0,.07);border:1px solid rgba(255,107,0,.18)}
.trio.coming-soon div span{color:var(--orange-lt)}
.trio.free-unlock{background:rgba(255,209,102,.07);border:1px solid rgba(255,209,102,.18)}
.trio.free-unlock div span{color:var(--gold)}
.trio.coming{background:rgba(136,68,204,.08);border:1px solid rgba(136,68,204,.18)}
.trio.coming div span{color:#b580f0}
.bcard-btns{display:flex;gap:8px;flex-wrap:wrap}

/* Book 4 clue */
.clue-reveal{margin-bottom:13px}
.clue-btn{width:100%;padding:10px;background:rgba(136,68,204,.1);border:1px solid rgba(136,68,204,.25);border-radius:var(--radius-s);color:#b580f0;font-weight:800;font-size:.82rem;cursor:pointer;font-family:'Nunito',sans-serif;transition:all .2s}
.clue-btn:hover{background:rgba(136,68,204,.2)}
.clue-text{margin-top:10px;padding:12px;background:rgba(136,68,204,.08);border-radius:var(--radius-s);font-size:.8rem;color:var(--text-dim);line-height:1.6}
.clue-text strong{color:var(--orange-lt)}

/* Unlock strip — FIX #8 #9 */
.unlock-strip{display:flex;align-items:center;gap:24px;flex-wrap:wrap;justify-content:space-between;background:linear-gradient(135deg,rgba(255,107,0,.08),rgba(255,107,0,.03));border:1px solid rgba(255,107,0,.18);border-radius:var(--radius);padding:28px 36px}
.us-icon{font-size:2.8rem;flex-shrink:0}
.us-text{flex:1;min-width:0}
.us-text h3{font-family:'Bangers',cursive;font-size:1.45rem;letter-spacing:2px;margin-bottom:5px}
.us-text p{font-size:.86rem;color:var(--text-dim);line-height:1.65;max-width:380px}
.us-steps{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.us-step{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:800;color:var(--text-dim)}
.us-step span{width:24px;height:24px;border-radius:50%;background:var(--orange);color:white;font-size:.72rem;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.us-step.done{color:var(--orange-lt)}
.us-arrow{color:var(--text-mute);font-size:1.1rem}

/* ===== FIX #3: MERCH SECTION ===== */
#merch{background:var(--dark)}
.merch-container{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.merch-title{font-family:'Bangers',cursive;font-size:clamp(2rem,3.5vw,3rem);letter-spacing:2px;color:white;margin-bottom:16px;line-height:1.05}
.merch-desc{font-size:.95rem;color:var(--text-dim);line-height:1.8;margin-bottom:14px}
.merch-coming-soon-box{position:relative;background:var(--dark3);border:2px solid rgba(255,107,0,.25);border-radius:var(--radius);padding:40px 32px;text-align:center;overflow:hidden}
.mcb-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(255,107,0,.08),transparent 70%);pointer-events:none}
.mcb-inner{position:relative;z-index:1}
.mcb-hat{margin-bottom:16px;display:flex;justify-content:center;animation:float 4s ease-in-out infinite}
.mcb-label{font-family:'Bangers',cursive;font-size:2.2rem;letter-spacing:5px;color:var(--orange);margin-bottom:18px;text-shadow:0 0 30px rgba(255,107,0,.4)}
.mcb-items{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:20px}
.mcb-items span{background:rgba(255,107,0,.1);border:1px solid rgba(255,107,0,.22);padding:6px 14px;border-radius:999px;font-size:.82rem;font-weight:800;color:var(--orange-lt)}
.mcb-notify{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.78rem;font-weight:700;color:var(--text-dim)}
.mcb-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 8px rgba(34,153,74,.6);animation:blink-dot 2s ease-in-out infinite}
@keyframes blink-dot{0%,100%{opacity:1}50%{opacity:.3}}

/* ===== TRAIL MAP ===== */
#trail{background:var(--dark2)}
.trail-container{position:relative}
.trail-season-badge{position:absolute;top:14px;left:14px;z-index:10;background:rgba(5,12,20,.85);border:1px solid rgba(255,107,0,.35);color:var(--orange-lt);font-size:.7rem;font-weight:900;letter-spacing:2px;text-transform:uppercase;padding:5px 12px;border-radius:999px}
#trail-svg{width:100%;height:auto;display:block;border-radius:var(--radius);border:2px solid rgba(255,107,0,.22);box-shadow:0 0 70px rgba(255,107,0,.07);cursor:crosshair}
.tm{cursor:pointer}
.mp{animation:mpulse 2.6s ease-in-out infinite}
@keyframes mpulse{0%,100%{opacity:1}50%{opacity:.65}}
.camp-glow{animation:campfire 1.8s ease-in-out infinite}
@keyframes campfire{0%,100%{opacity:.6}50%{opacity:.9}}

/* FIX #10: Compass spin on hover */
#compass-group{cursor:pointer}
#compass-needle{transform-origin:945px 52px;transition:transform .1s linear}
#compass-needle.spinning{animation:compass-spin .6s linear forwards}
@keyframes compass-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* FIX #11: Moon label tooltip */
.moon-label{position:absolute;top:14px;right:90px;z-index:10;background:rgba(5,12,20,.85);border:1px solid rgba(255,232,160,.25);color:rgba(255,232,160,.8);font-size:.68rem;font-weight:700;letter-spacing:1px;padding:5px 12px;border-radius:999px;pointer-events:none}

.trail-popup{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.85);background:rgba(4,9,15,.97);border:2px solid var(--orange);border-radius:var(--radius);padding:28px 24px;width:290px;text-align:center;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;box-shadow:0 14px 55px rgba(255,107,0,.22);z-index:20}
.trail-popup.show{opacity:1;transform:translate(-50%,-50%) scale(1);pointer-events:auto}
.tp-x{position:absolute;top:9px;right:12px;background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:.95rem;transition:color .2s}
.tp-x:hover{color:var(--orange)}
.tp-icon{font-size:3rem;margin-bottom:9px}
.trail-popup h4{font-family:'Bangers',cursive;font-size:1.4rem;letter-spacing:2px;color:var(--orange);margin-bottom:7px}
.trail-popup p{font-size:.84rem;color:var(--text-dim);line-height:1.65;margin-bottom:12px}
.tp-clue{background:rgba(255,107,0,.08);border:1px solid rgba(255,107,0,.22);border-radius:var(--radius-s);padding:10px;font-size:.8rem;font-weight:700;color:var(--orange-lt);font-style:italic;line-height:1.5;margin-bottom:9px}
.tp-logged{font-size:.68rem;color:var(--green);font-weight:900;letter-spacing:.5px}

/* FIX #12/#13: Secret/password reveal area */
.trail-footer{margin-top:20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.tf-nodes{display:flex;align-items:center;gap:0;flex:1}
.tfs-node{display:flex;flex-direction:column;align-items:center;gap:4px;opacity:.28;transition:opacity .5s ease}
.tfs-node.found{opacity:1}
.tfs-dot{width:14px;height:14px;border-radius:50%;border:2px solid #ff6b00;background:transparent;display:block;transition:background .5s ease,box-shadow .5s ease}
.tfs-node.found .tfs-dot{background:#ff6b00;box-shadow:0 0 8px rgba(255,107,0,.7)}
.tfs-lbl{font-size:.6rem;font-weight:900;letter-spacing:.5px;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}
.tfs-line{flex:1;height:2px;border-top:2px dashed rgba(255,107,0,.2);transition:border-color .5s ease;min-width:12px}
.tfs-line.lit{border-color:rgba(255,107,0,.75)}
.tf-count{font-size:.8rem;font-weight:900;color:var(--orange);white-space:nowrap}
.tf-secret{font-family:'Permanent Marker',cursive;font-size:1.1rem;color:var(--gold);text-shadow:0 0 18px rgba(255,209,102,.45);min-height:32px;flex-basis:100%;text-align:center;transition:all .5s}
.tf-secret a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}

/* ===== STORY MACHINE ===== */
#machine{background:var(--dark)}
.machine-layout{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start}
.machine-shell{background:var(--dark3);border:2px solid rgba(58,142,224,.22);border-radius:18px;overflow:hidden;box-shadow:0 0 55px rgba(58,142,224,.07)}
.mshell-bar{background:rgba(58,142,224,.07);border-bottom:1px solid rgba(58,142,224,.13);padding:9px 15px;display:flex;align-items:center;gap:7px}
.dot{width:10px;height:10px;border-radius:50%}
.dot.rd{background:#ff5f57}.dot.yw{background:#febc2e}.dot.gn{background:#28c840}
.mshell-title{margin-left:7px;font-size:.68rem;font-weight:900;letter-spacing:2px;text-transform:uppercase;color:var(--blue)}
.mscreen{background:#020710;min-height:190px;padding:24px;position:relative;overflow:hidden}
.scanline{position:absolute;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,rgba(58,142,224,.55),transparent);animation:scan 4.5s linear infinite;z-index:5;pointer-events:none}
@keyframes scan{from{top:-3px}to{top:102%}}
.crt-overlay{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(58,142,224,.014) 0px,rgba(58,142,224,.014) 1px,transparent 1px,transparent 3px);z-index:2}
.story-out{font-family:'Permanent Marker',cursive;font-size:1.02rem;line-height:1.8;color:#7dc8ff;min-height:142px;position:relative;z-index:3;white-space:pre-wrap}
/* FIX #14: idle text reacts to scanline — starts dim, brightens when scan passes */
.story-idle{
  color:rgba(58,142,224,.45);
  font-family:'Nunito',sans-serif;
  font-style:italic;
  font-size:.92rem;
  text-align:center;
  margin-top:30px;
  transition:color .15s, text-shadow .15s;
}
.story-idle.scan-lit{
  color:rgba(130,200,255,.95);
  text-shadow:0 0 12px rgba(130,200,255,.6), 0 0 24px rgba(58,142,224,.4);
}
.cblink{color:var(--blue);animation:blink .8s step-end infinite;font-size:1.1rem;position:relative;z-index:3}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
.mdials{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid rgba(58,142,224,.1)}
.dial-col{padding:14px 12px;border-right:1px solid rgba(58,142,224,.09)}
.dial-col:last-child{border-right:none}
.dial-col label{display:block;font-size:.65rem;font-weight:900;letter-spacing:1.5px;text-transform:uppercase;color:var(--blue);margin-bottom:7px}
.dial-col select{width:100%;background:var(--dark);border:1.5px solid rgba(58,142,224,.18);color:var(--text);padding:7px 9px;border-radius:var(--radius-s);font-family:'Nunito',sans-serif;font-size:.8rem;font-weight:700;cursor:pointer;transition:border-color .2s}
.dial-col select:focus{outline:none;border-color:var(--blue)}
.gen-btn{width:100%;padding:17px;border:none;background:linear-gradient(135deg,var(--blue),#1a5aaa);color:white;font-family:'Bangers',cursive;font-size:1.3rem;letter-spacing:3px;cursor:pointer;transition:all .2s;box-shadow:0 4px 22px rgba(58,142,224,.28)}
.gen-btn:hover{background:linear-gradient(135deg,#5aaeff,var(--blue));letter-spacing:4px;box-shadow:0 8px 32px rgba(58,142,224,.48)}
.gen-btn:active{transform:scale(.98)}
.story-counter{
  display:flex;align-items:center;justify-content:center;gap:7px;
  padding:10px 16px;
  background:rgba(58,142,224,.06);
  border-top:1px solid rgba(58,142,224,.1);
  border-bottom:1px solid rgba(58,142,224,.1);
}
.sc-bolt{font-size:1rem;animation:scPulse 2s ease-in-out infinite}
@keyframes scPulse{0%,100%{transform:scale(1);opacity:.7}50%{transform:scale(1.3);opacity:1}}
.sc-num{
  font-family:'Bangers',cursive;font-size:1.55rem;letter-spacing:2px;
  color:#5aaeff;line-height:1;
  transition:transform .15s ease,color .15s ease;
}
.sc-num.bump{transform:scale(1.35);color:#ff9a3c}
.sc-label{font-size:.65rem;font-weight:900;letter-spacing:1.5px;text-transform:uppercase;color:rgba(140,190,230,.5);line-height:1.3;max-width:80px}
.gen-row{display:flex;gap:9px;justify-content:center;padding:13px;border-top:1px solid rgba(58,142,224,.1);flex-wrap:wrap}
.gr-btn{padding:8px 16px;border-radius:999px;border:1.5px solid rgba(58,142,224,.32);background:transparent;color:var(--blue);font-weight:800;font-size:.8rem;cursor:pointer;font-family:'Nunito',sans-serif;transition:all .2s}
.gr-btn:hover{background:rgba(58,142,224,.1);border-color:var(--blue)}
.gr-share{border-color:rgba(255,107,0,.35);color:var(--orange-lt)}
.gr-share:hover{background:rgba(255,107,0,.1);border-color:var(--orange)}
.machine-ph{width:100%;height:320px}
.machine-note{display:flex;gap:12px;align-items:flex-start;background:rgba(255,107,0,.06);border:1px solid rgba(255,107,0,.13);border-radius:var(--radius);padding:16px;margin-top:18px}
.machine-note span{font-size:1.3rem;flex-shrink:0}
.machine-note p{font-size:.98rem;color:#b8d8ee;line-height:1.7}
.machine-note strong{color:#ffb366;font-size:1.05rem}

/* ===== QUIZ ===== */
#quiz{background:var(--dark2)}
.quiz-container{max-width:660px;margin:0 auto}
.quiz-card{background:var(--dark3);border:2px solid rgba(136,68,204,.22);border-radius:var(--radius);padding:40px;box-shadow:0 0 38px rgba(136,68,204,.06)}
.qbar{background:rgba(255,255,255,.06);border-radius:999px;height:5px;margin-bottom:22px;overflow:hidden}
.qbar-fill{height:100%;background:linear-gradient(90deg,var(--purple),#d060ff);border-radius:999px;transition:width .45s ease}
.qnum{font-size:.68rem;font-weight:900;letter-spacing:2px;text-transform:uppercase;color:var(--purple);margin-bottom:13px}
.qtext{font-family:'Bangers',cursive;font-size:1.8rem;letter-spacing:1px;color:white;margin-bottom:26px;line-height:1.15}
.qopts{display:flex;flex-direction:column;gap:9px}
.qo{background:rgba(255,255,255,.03);border:1.5px solid rgba(255,255,255,.08);border-radius:11px;padding:15px 18px;color:var(--text);font-weight:800;font-size:.9rem;text-align:left;width:100%;cursor:pointer;font-family:'Nunito',sans-serif;transition:all .2s}
.qo:hover{background:rgba(136,68,204,.12);border-color:rgba(136,68,204,.45);transform:translateX(5px)}
.qo.picked{background:rgba(136,68,204,.2);border-color:var(--purple);color:white;transform:translateX(5px)}
.quiz-result{display:none;background:var(--dark3);border:2px solid var(--orange);border-radius:var(--radius);padding:44px 36px;text-align:center;box-shadow:0 0 55px rgba(255,107,0,.09);animation:fadeUp .5s ease}
.qr-icon{font-size:5rem;margin-bottom:11px;display:block;animation:badgepop .5s cubic-bezier(.36,.07,.19,.97)}
@keyframes badgepop{0%{transform:scale(0) rotate(-15deg)}70%{transform:scale(1.18) rotate(4deg)}100%{transform:scale(1) rotate(0)}}
.qr-type{font-family:'Bangers',cursive;font-size:2.3rem;letter-spacing:3px;color:var(--orange);margin-bottom:11px}
.qr-desc{color:var(--text-dim);line-height:1.8;margin-bottom:22px;font-size:.93rem}
/* FIX #18: "you'll enjoy" recommendation box */
.qr-rec{background:rgba(255,107,0,.08);border:1px solid rgba(255,107,0,.2);border-radius:var(--radius-s);padding:14px;margin-bottom:26px;font-weight:800;font-size:.86rem;color:var(--orange-lt);line-height:1.6}

/* ===== ABOUT ===== */
#about{background:var(--dark)}
.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:center;margin-bottom:64px}
.about-ph{width:100%;height:420px}
.joe-facts{display:flex;flex-direction:column;gap:7px;margin-top:18px}
.jf{background:rgba(255,107,0,.055);border:1px solid rgba(255,107,0,.13);border-radius:var(--radius-s);padding:10px 13px;font-size:.84rem;font-weight:700;color:var(--text-dim);line-height:1.4}
.about-right h2{font-family:'Bangers',cursive;font-size:2.3rem;letter-spacing:1.5px;color:white;margin-bottom:18px;line-height:1.1}
.about-right p{font-size:.93rem;color:var(--text-dim);line-height:1.85;margin-bottom:15px}
.about-right em{color:var(--orange-lt);font-style:italic}
.joe-quote{margin-top:24px;padding:22px 22px 22px 26px;border-left:4px solid var(--orange);background:rgba(255,107,0,.07);border-radius:0 var(--radius-s) var(--radius-s) 0;font-family:'Permanent Marker',cursive;font-size:1.02rem;color:#ffbb77;line-height:1.72}
.joe-quote cite{display:block;font-family:'Nunito',sans-serif;font-size:.8rem;color:#7898b8;font-style:normal;font-weight:900;margin-top:9px;letter-spacing:1px}

/* FIX #19: Readers grid — first reviewer CTA */
.readers-title{font-family:'Bangers',cursive;font-size:1.8rem;letter-spacing:2px;color:white;text-align:center;margin-bottom:24px}
.first-reader-banner{background:linear-gradient(135deg,rgba(255,209,102,.1),rgba(255,107,0,.06));border:2px solid rgba(255,209,102,.25);border-radius:var(--radius);padding:32px;margin-bottom:28px}
.frb-inner{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.frb-icon{font-size:3.5rem;flex-shrink:0}
.frb-text{flex:1;min-width:280px}
.frb-text h4{font-family:'Bangers',cursive;font-size:1.8rem;letter-spacing:2px;color:var(--gold);margin-bottom:8px}
.frb-text p{font-size:.9rem;color:var(--text-dim);line-height:1.7;margin-bottom:6px}
.frb-sub{font-size:.82rem !important;color:#6a8aa0 !important}
.reviews-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:18px}
.rev-card{background:var(--dark3);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);padding:22px;transition:transform .2s,border-color .2s}
.rev-card:hover{transform:translateY(-4px);border-color:rgba(255,107,0,.18)}
/* FIX #19: placeholder review cards styled differently */
.rev-placeholder{border-style:dashed;border-color:rgba(255,209,102,.15);background:rgba(255,209,102,.03)}
.rv-stars{color:var(--gold);font-size:.95rem;margin-bottom:9px;letter-spacing:2px}
.rv-stars-ph{color:#ffd166;font-size:1.05rem;margin-bottom:10px;letter-spacing:3px;text-shadow:0 0 10px rgba(255,209,102,.55)}
.rev-card p{font-size:.84rem;color:var(--text-dim);line-height:1.65;margin-bottom:11px;font-style:italic}
.rev-placeholder p{color:var(--text-mute)}
.rev-ph-text.bright{color:#8aabbf !important;font-style:normal}
.rev-card cite{font-size:.73rem;font-weight:900;color:var(--text-mute);font-style:normal;letter-spacing:.3px}
.rev-placeholder cite{color:rgba(255,209,102,.4)}
.cite-bright{color:#7898b8 !important}

/* ===== JOIN ===== */
#join{background:radial-gradient(ellipse at 30% 50%,rgba(255,107,0,.07),transparent 60%),var(--dark2);border-top:1px solid rgba(255,107,0,.1)}
.join-wrap{max-width:1150px;margin:0 auto;padding:96px 60px;display:grid;grid-template-columns:1fr 1.45fr;gap:68px;align-items:start}
.join-ph{width:100%;height:300px}
.join-badge{display:inline-block;background:rgba(255,107,0,.1);border:1px solid rgba(255,107,0,.28);color:var(--orange);padding:6px 14px;border-radius:999px;font-size:.68rem;font-weight:900;letter-spacing:2px;text-transform:uppercase;margin-bottom:15px}
.join-right h2{font-family:'Bangers',cursive;font-size:2.5rem;letter-spacing:2px;color:white;margin-bottom:12px;line-height:1.05}
.join-right>p{font-size:.91rem;color:var(--text-dim);line-height:1.8;margin-bottom:22px}
.join-perks{display:flex;flex-direction:column;gap:7px;margin-bottom:26px}
.jp{font-size:.88rem;font-weight:700;color:var(--text);display:flex;gap:9px}
.join-form{display:flex;flex-direction:column;gap:11px}
.jrow{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.join-form input,.join-form select{padding:13px 16px;border-radius:11px;border:1.5px solid rgba(255,255,255,.09);background:rgba(255,255,255,.04);color:var(--text);font-family:'Nunito',sans-serif;font-size:.9rem;font-weight:700;transition:border-color .2s}
.join-form input:focus,.join-form select:focus{outline:none;border-color:var(--orange)}
.join-form input::placeholder{color:var(--text-mute)}
.input-bright{border-color:rgba(255,255,255,.22) !important;background:rgba(255,255,255,.07) !important}
.input-bright::placeholder{color:#6a8aa0 !important}
.join-form select option{background:var(--dark2)}
.join-fine{font-size:.74rem;color:var(--text-mute);text-align:center;margin-top:5px}

/* ===== FOOTER — FIX #20: brighter link text ===== */
footer{background:var(--dark2);border-top:1px solid rgba(255,255,255,.04);padding:56px 0 0}
.footer-in{max-width:1200px;margin:0 auto;padding:0 60px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:44px;margin-bottom:44px}
.ft-logo{font-size:1.9rem;letter-spacing:3px;margin-bottom:9px}
.ft-brand p{font-size:.88rem;color:#9ab8cc;margin-bottom:2px}  /* FIX #20: was text-dim (~#7898b8), now brighter */
.ft-brand em{font-size:.8rem;color:#7898b8;font-style:italic}
.ft-col h4{font-size:.68rem;font-weight:900;letter-spacing:2px;text-transform:uppercase;color:#7898b8;margin-bottom:13px}  /* FIX #20 */
/* FIX #20: footer links were #3a5570 (too dark), now #8aabbf */
.ft-col a{display:block;font-size:.88rem;color:#8aabbf;margin-bottom:9px;cursor:pointer;transition:color .2s;padding-left:14px;position:relative}
.ft-col a::before{content:"•";position:absolute;left:0;color:#ff6b00;font-size:.9rem}
.ft-col a:hover{color:var(--orange)}

/* FIX #16: visitor counter */
.visitor-counter{text-align:center;padding:14px 0 10px;border-top:1px solid rgba(255,255,255,.04);display:flex;align-items:center;justify-content:center;gap:8px}
.vc-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px rgba(34,153,74,.5);flex-shrink:0;animation:blink-dot 2s ease-in-out infinite}
#vc-text{font-size:.68rem;color:#4a6a80;font-weight:700;letter-spacing:1px}
.ft-bottom{text-align:center;padding:14px 60px 28px}
.ft-bottom p{font-size:.76rem;color:#4a6a80}

/* ===== SCROLL REVEAL ===== */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
[data-reveal].vis{opacity:1;transform:translateY(0)}

/* ===== RESPONSIVE ===== */
@media(max-width:1100px){
  .hero-right{width:44%}
  .machine-layout{grid-template-columns:1fr}
  .about-grid{grid-template-columns:1fr}
  .join-wrap{grid-template-columns:1fr}
  .join-ph{height:200px}
  .footer-in{grid-template-columns:1fr 1fr}
  .merch-container{grid-template-columns:1fr}
}
@media(max-width:768px){
  body{cursor:auto}
  #dog-canvas{display:none}
  #nav{padding:13px 20px}
  .nav-links{display:none}
  .nav-burger{display:flex}
  #hero{padding:96px 22px 60px}
  .hero-right{display:none}
  .hl{font-size:3.4rem}
  .wrap{padding:68px 22px}
  .series-ribbon{padding:38px 22px}
  .ribbon-in{flex-direction:column}
  .ribbon-ph{display:none}
  .books-grid{grid-template-columns:1fr}
  .unlock-strip{flex-direction:column;align-items:flex-start;padding:22px}
  .sec-title{font-size:1.9rem}
  .trail-popup{width:250px}
  .trail-footer{flex-direction:column;align-items:flex-start}
  .tf-nodes{width:100%}
  .mdials{grid-template-columns:1fr}
  .dial-col{border-right:none;border-bottom:1px solid rgba(58,142,224,.09)}
  .dial-col:last-child{border-bottom:none}
  .quiz-card{padding:26px 18px}
  .join-wrap{padding:68px 22px;grid-template-columns:1fr}
  .jrow{grid-template-columns:1fr}
  .footer-in{padding:0 22px;grid-template-columns:1fr;gap:28px}
  .ft-bottom{padding-left:22px;padding-right:22px}
  .us-steps{flex-direction:column;align-items:flex-start}
  .frb-inner{flex-direction:column;align-items:flex-start}
  .merch-container{grid-template-columns:1fr}
  .moon-label{right:14px;top:50px}
  .trail-season-badge{font-size:.6rem}
}

/* ===== FIX #4/#9: Review details expandable ===== */
.frc-details-btn,.frb-details-btn{
  background:none;border:1px solid rgba(255,209,102,.3);color:#ffd166;
  font-size:.73rem;font-weight:900;letter-spacing:.5px;padding:4px 11px;
  border-radius:999px;cursor:pointer;font-family:'Nunito',sans-serif;
  margin-top:7px;transition:all .2s;display:inline-block;
}
.frc-details-btn:hover,.frb-details-btn:hover{background:rgba(255,209,102,.1);border-color:#ffd166}
.frc-details,.frb-details{
  margin-top:10px;padding:12px;background:rgba(0,0,0,.25);
  border-radius:var(--radius-s);border-left:3px solid rgba(255,209,102,.4);
}
.frc-details p,.frb-details p{
  font-size:.78rem;color:#8aabbf;line-height:1.7;margin-bottom:5px;
  font-style:normal !important;
}
.frc-details p strong,.frb-details p strong{color:#ffd166}
.frc-details p em,.frb-details p em{color:#ff9a3c;font-style:italic}

/* ===== Trail popup big close button ===== */
.tp-close-btn{
  display:block;width:100%;margin-top:14px;padding:11px;
  background:rgba(255,107,0,.12);border:1.5px solid rgba(255,107,0,.35);
  border-radius:999px;color:#ff9a3c;font-family:'Nunito',sans-serif;
  font-size:.9rem;font-weight:900;cursor:pointer;transition:all .2s;
}
.tp-close-btn:hover{background:rgba(255,107,0,.25);border-color:var(--orange);color:white}

/* ===== Inline trail password entry ===== */
.tf-pw-reveal{text-align:center;padding:8px 0}
.tf-pw-label{font-size:.78rem;font-weight:900;color:var(--gold);letter-spacing:1px;margin-bottom:8px}
.tf-pw-word{
  font-family:'Bangers',cursive;font-size:2rem;letter-spacing:6px;
  color:#ff9a3c;text-shadow:0 0 18px rgba(255,107,0,.5);
  background:rgba(255,107,0,.08);border:1px solid rgba(255,107,0,.3);
  display:inline-block;padding:4px 20px;border-radius:10px;margin-bottom:12px;
}
.tf-pw-entry{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:6px}
@keyframes pwGlow{0%,100%{box-shadow:0 0 8px rgba(255,107,0,.4),0 0 20px rgba(255,107,0,.2)}50%{box-shadow:0 0 18px rgba(255,107,0,.8),0 0 40px rgba(255,107,0,.4)}}
.tf-pw-inp{
  padding:12px 18px;border-radius:999px;
  border:2px solid rgba(255,107,0,.7);
  background:rgba(255,107,0,.08);
  color:white;font-family:'Bangers',cursive;
  font-size:1.15rem;letter-spacing:3px;text-transform:uppercase;
  width:230px;transition:border-color .2s;
  animation:pwGlow 2s ease-in-out infinite;
}
.tf-pw-inp:focus{outline:none;border-color:#ff6b00;background:rgba(255,107,0,.14);animation:none;box-shadow:0 0 25px rgba(255,107,0,.7)}
.tf-pw-inp::placeholder{color:rgba(255,200,150,.55);font-size:.8rem;letter-spacing:1px;font-family:'Nunito',sans-serif;text-transform:none;font-weight:700}
.tf-pw-submit{
  padding:10px 18px;border-radius:999px;border:none;
  background:var(--orange);color:white;font-family:'Nunito',sans-serif;
  font-size:.88rem;font-weight:900;cursor:pointer;
  box-shadow:0 4px 16px rgba(255,107,0,.35);transition:all .2s;white-space:nowrap;
}
.tf-pw-submit:hover{transform:translateY(-2px);box-shadow:0 7px 24px rgba(255,107,0,.5)}
.tf-pw-err{font-size:.75rem;color:#e05070;font-weight:900;min-height:16px}

/* ===== Series Launch Ad ===== */
.series-launch-ad{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#050c14 0%,#0a1828 40%,#0d1f10 70%,#050c14 100%);
  border:1px solid rgba(255,107,0,.25);border-radius:20px;
  padding:60px 48px;margin-bottom:24px;text-align:center;
}
.sla-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(255,107,0,.12),transparent 65%),radial-gradient(ellipse at 20% 100%,rgba(58,142,224,.08),transparent 55%);pointer-events:none}
.sla-eyebrow{font-size:.72rem;font-weight:900;letter-spacing:5px;text-transform:uppercase;color:#ff9a3c;margin-bottom:18px;opacity:.9}
.sla-logo{font-family:'Bangers',cursive;font-size:1.1rem;letter-spacing:8px;background:linear-gradient(180deg,#e8f8ff 0%,#a8dcff 40%,#5ab8ff 65%,#fff 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:10px}
.sla-title{font-family:'Bangers',cursive;font-size:clamp(2.4rem,5vw,4rem);letter-spacing:4px;color:white;line-height:1;margin-bottom:18px;text-shadow:0 2px 30px rgba(255,107,0,.3)}
.sla-tagline{font-size:1rem;color:#9ab8cc;line-height:1.7;margin-bottom:36px;max-width:520px;margin-left:auto;margin-right:auto}
.sla-books{display:flex;flex-direction:column;gap:10px;max-width:480px;margin:0 auto 36px;text-align:left}
.sla-book{display:flex;align-items:center;gap:14px;padding:12px 16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:10px;transition:border-color .2s}
.sla-book:hover{border-color:rgba(255,107,0,.3)}
.sla-num{font-family:'Bangers',cursive;font-size:1.2rem;color:#ff6b00;min-width:24px}
.sla-bname{font-weight:800;color:white;font-size:.95rem;flex:1}
.sla-bdate{font-size:.72rem;font-weight:900;letter-spacing:1px;color:#ff9a3c;white-space:nowrap}
.sla-mystery .sla-bname{color:#6a8eaa;letter-spacing:3px}
.sla-mystery .sla-bdate{color:#6a8eaa}
.sla-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:28px}
.sla-fine{font-size:.72rem;color:#4a6a80;letter-spacing:.5px}
.sla-orb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(60px)}
.sla-orb1{width:300px;height:300px;background:rgba(255,107,0,.08);top:-80px;right:-60px}
.sla-orb2{width:250px;height:250px;background:rgba(58,142,224,.06);bottom:-60px;left:-40px}
.sla-mountains{position:absolute;bottom:0;left:0;right:0;height:160px;opacity:.6;pointer-events:none}
.sla-mountains svg{width:100%;height:100%}
/* Giveaway strip */
.giveaway-strip{display:flex;align-items:center;gap:18px;background:rgba(255,107,0,.07);border:1px solid rgba(255,107,0,.2);border-radius:14px;padding:18px 24px;flex-wrap:wrap}
.gs-icon{font-size:2rem;flex-shrink:0}
.gs-text{flex:1;min-width:200px}
.gs-text strong{display:block;font-weight:900;color:white;margin-bottom:3px}
.gs-text span{font-size:.84rem;color:#9ab8cc}

/* Map clickable ambient elements */
.map-ambient{cursor:pointer}
.map-ambient:hover{filter:brightness(1.4)}

/* ===== Coloring Book Ad (below dog image in join section) ===== */
.coloring-ad{
  margin-top:18px;
  background:linear-gradient(135deg,#0d1a0d,#0a1520);
  border:2px solid rgba(255,107,0,.35);
  border-radius:var(--radius);
  padding:22px 20px;
  position:relative;
  overflow:hidden;
  display:flex;
  gap:18px;
  align-items:stretch;
}
.coloring-ad::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 80% 20%,rgba(255,107,0,.08),transparent 60%);
  pointer-events:none;
}
.ca-left{
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  min-width:0;
}
.ca-right{
  width:180px;
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:stretch;
  gap:10px;
  border-left:1px solid rgba(255,107,0,.18);
  padding-left:18px;
}
.ca-badge{
  font-size:.6rem;font-weight:900;letter-spacing:3px;text-transform:uppercase;
  color:#ff9a3c;margin-bottom:8px;
}
.ca-title{
  font-family:'Bangers',cursive;font-size:1.5rem;letter-spacing:2px;
  color:white;line-height:1.1;margin-bottom:10px;
}
.ca-body{
  font-size:.79rem;color:#9ab8cc;line-height:1.55;margin-bottom:8px;flex:1;
}
.ca-body strong{color:#ffd166}
.ca-palette{font-size:1.4rem;margin-top:auto;opacity:.55}
.ca-steps{display:flex;flex-direction:column;gap:8px}
.ca-step{display:flex;align-items:flex-start;gap:8px;font-size:.76rem;color:#8aabbf;line-height:1.45}
.ca-n{
  background:var(--orange);color:white;font-weight:900;font-size:.68rem;
  min-width:18px;height:18px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;flex-shrink:0;margin-top:1px;
}
.ca-cta{
  display:block;text-align:center;padding:10px 12px;
  background:rgba(255,107,0,.15);border:1.5px solid rgba(255,107,0,.5);
  border-radius:999px;color:#ff9a3c;font-weight:900;font-size:.8rem;
  text-decoration:none;transition:all .2s;white-space:nowrap;
}
.ca-cta:hover{background:var(--orange);color:white;border-color:var(--orange)}
.ca-fine{font-size:.65rem;color:rgba(122,152,184,.45);text-align:center;line-height:1.4;margin:0}
/* test */

/* ===== Ambient floating text box (mountains / trees / moon) ===== */
@keyframes abPop{from{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
.ambient-box{display:none;position:absolute;z-index:40;max-width:240px;min-width:160px;background:rgba(4,9,15,.97);border:1.5px solid rgba(255,107,0,.5);border-radius:12px;padding:13px 36px 13px 14px;box-shadow:0 10px 36px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.04);animation:abPop .18s ease both;pointer-events:auto}
.ambient-box.show{display:block}
.ab-row{display:flex;align-items:flex-start;gap:9px}
.ab-icon{font-size:1.3rem;flex-shrink:0;margin-top:1px;line-height:1}
.ab-text{font-size:.84rem;font-family:Nunito,sans-serif;font-weight:700;color:#c8dff0;line-height:1.55}
.ab-x{position:absolute;top:7px;right:8px;background:none;border:none;color:rgba(200,223,240,.3);font-size:.8rem;cursor:pointer;padding:2px 5px;line-height:1;transition:color .15s}
.ab-x:hover{color:#ff9a3c}
