
/* ---------- A11Y CONTRAST — small meta text must clear WCAG AA ---------- */
:root{--smoke2:#727F90}
/* ============================================================
   CANDLEWORK — shared world layer (cw.css)
   One stylesheet for the systems every room shares.
   ============================================================ */

/* ---------- control dock (top right) ---------- */
.cw-dock{position:fixed;top:4.4rem;right:1.3rem;z-index:60;display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}
.cw-btn{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  padding:.5em .95em;border:1px solid rgba(255,255,255,.12);border-radius:20px;
  background:rgba(9,11,15,.78);color:var(--smoke,#8B97A3);cursor:pointer;transition:.25s;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);white-space:nowrap;line-height:1}
.cw-btn:hover{color:var(--white,#F2F6F4);border-color:rgba(255,255,255,.28);transform:translateY(-1px)}
.cw-btn.on{color:var(--accent,#17C687);border-color:rgba(var(--accent-rgb,23,198,135),.5)}
@media(max-width:820px){.cw-dock{top:auto;bottom:118px;right:.7rem}}

/* ---------- guided path (bottom right) ---------- */
.cw-path{position:fixed;right:1.3rem;bottom:44px;z-index:47;display:flex;align-items:center;gap:.85rem;
  padding:.7rem .9rem .7rem 1rem;border:1px solid rgba(255,255,255,.1);border-radius:14px;
  background:rgba(9,11,15,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 22px 44px -22px rgba(0,0,0,.9);text-decoration:none;
  transform:translateY(14px);opacity:0;transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1),border-color .3s}
.cw-path.in{opacity:1;transform:none}
.cw-path:hover{border-color:rgba(var(--accent-rgb,23,198,135),.45)}
.cw-path .cw-meta{display:flex;flex-direction:column;gap:.25rem}
.cw-path .cw-step{font-family:var(--mono,monospace);font-size:8.5px;letter-spacing:.2em;
  color:var(--smoke2,#586472);text-transform:uppercase}
.cw-path .cw-next{font-family:var(--disp,sans-serif);font-weight:700;font-size:.92rem;color:var(--white,#F2F6F4);letter-spacing:-.01em}
.cw-path .cw-arm{font-family:var(--mono,monospace);font-size:14px;color:var(--accent,#17C687);transition:transform .35s}
.cw-path:hover .cw-arm{transform:translateX(3px)}
.cw-path .cw-bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.06);border-radius:0 0 14px 14px;overflow:hidden}
.cw-path .cw-bar i{display:block;height:100%;background:var(--accent,#17C687);opacity:.75;transition:width .8s cubic-bezier(.2,.8,.2,1)}
.cw-path .cw-x{font-family:var(--mono,monospace);font-size:13px;color:var(--smoke2,#586472);padding:0 .1rem;cursor:pointer;background:none;border:none;transition:.2s}
.cw-path .cw-x:hover{color:var(--white,#F2F6F4)}
@media(max-width:820px){.cw-path{right:.7rem;bottom:38px;padding:.55rem .7rem}.cw-path .cw-next{font-size:.82rem;max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* ---------- fullscreen 4D sitemap ---------- */
.cw-map{position:fixed;inset:0;z-index:9990;background:radial-gradient(130% 100% at 50% 40%,#0a0e14,#030405 70%);
  opacity:0;visibility:hidden;transition:opacity .75s ease,visibility .75s}
.cw-map.open{opacity:1;visibility:visible}
.cw-map canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:default}
.cw-map .cw-mtop{position:absolute;top:0;left:0;right:0;padding:1.6rem clamp(1.1rem,5vw,3rem);
  display:flex;align-items:baseline;gap:1rem;pointer-events:none}
.cw-map .cw-mtitle{font-family:var(--disp,sans-serif);font-weight:700;font-size:clamp(1.1rem,2.4vw,1.5rem);
  letter-spacing:-.02em;color:var(--white,#F2F6F4)}
.cw-map .cw-msub{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.24em;
  color:var(--smoke2,#586472);text-transform:uppercase}
.cw-map .cw-mclose{position:absolute;top:1.3rem;right:clamp(1.1rem,5vw,3rem);z-index:2}
.cw-map .cw-mfoot{position:absolute;left:0;right:0;bottom:0;padding:1.4rem clamp(1.1rem,5vw,3rem);
  font-family:var(--mono,monospace);font-size:10.5px;letter-spacing:.14em;color:var(--smoke2,#586472);
  text-transform:uppercase;pointer-events:none;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.cw-map .cw-mfoot b{color:var(--accent,#17C687);font-weight:400}

/* ---------- shared mood FX layers (created if absent) ---------- */
.cw-fx-tint{position:fixed;inset:0;z-index:9;pointer-events:none;transition:backdrop-filter 1.4s ease,background 1.4s ease}
[data-mood="bull"] .cw-fx-tint{backdrop-filter:brightness(1.04) saturate(1.12);background:radial-gradient(60% 55% at 50% 32%,rgba(23,198,135,.05),transparent 72%)}
[data-mood="bear"] .cw-fx-tint{backdrop-filter:saturate(.87) brightness(.96);background:radial-gradient(85% 75% at 50% 14%,rgba(60,0,12,.1),transparent 70%)}
.cw-fx-dip{position:fixed;inset:0;z-index:9996;pointer-events:none;opacity:0}
.cw-fx-dip.bear{animation:cwdip 2.1s ease-out}
.cw-fx-dip.bull{animation:cwbloom 1.7s ease-out}
@keyframes cwdip{0%{opacity:0;background:radial-gradient(circle at 50% 25%,rgba(26,0,6,.95),rgba(0,0,0,.97))}9%{opacity:.92}55%{opacity:.38}100%{opacity:0}}
@keyframes cwbloom{0%{opacity:0;background:radial-gradient(circle at 50% 55%,rgba(23,198,135,.5),rgba(255,255,255,.18),transparent 75%)}14%{opacity:.55}100%{opacity:0}}
.cw-fx-particles{position:fixed;inset:0;z-index:9997;pointer-events:none}
.cw-fx-flash{position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:0}
.cw-fx-flash.bull{animation:cwfb 1.1s ease-out}
.cw-fx-flash.bear{animation:cwfr 1.3s ease-out}
@keyframes cwfb{0%{opacity:.5;background:radial-gradient(circle at 50% 60%,rgba(23,198,135,.6),transparent 70%)}100%{opacity:0}}
@keyframes cwfr{0%{opacity:.7;background:radial-gradient(circle at 50% 30%,rgba(240,68,62,.7),rgba(26,0,6,.55))}25%{opacity:.5}100%{opacity:0}}
.cw-fx-stamp{position:fixed;top:33%;left:0;right:0;text-align:center;z-index:9999;pointer-events:none;
  font-family:var(--disp,sans-serif);font-weight:700;font-size:clamp(2.6rem,13vw,10rem);letter-spacing:-.03em;opacity:0;line-height:1}
.cw-fx-stamp.bull{color:#17C687;text-shadow:0 0 60px rgba(23,198,135,.6);animation:cwsb 1.5s cubic-bezier(.2,.9,.2,1)}
.cw-fx-stamp.bear{color:#F0443E;text-shadow:0 0 60px rgba(240,68,62,.6);animation:cwsr 1.5s ease-out}
@keyframes cwsb{0%{opacity:0;transform:scale(.5) translateY(30px)}18%{opacity:.92;transform:scale(1.05) translateY(0)}42%{transform:scale(1)}100%{opacity:0;transform:scale(1.13) translateY(-24px)}}
@keyframes cwsr{0%{opacity:0;transform:scale(1.38)}10%{opacity:.92;transform:scale(1) translateX(-6px)}14%{transform:translateX(7px)}18%{transform:translateX(-5px)}22%{transform:translateX(3px)}100%{opacity:0;transform:scale(.9) translateY(26px)}}
main.cw-shake{animation:cwshake .62s cubic-bezier(.36,.07,.19,.97)}
@keyframes cwshake{10%{transform:translate(-7px,4px)}20%{transform:translate(8px,-5px)}30%{transform:translate(-9px,3px)}40%{transform:translate(7px,-4px)}50%{transform:translate(-6px,5px)}60%{transform:translate(6px,-3px)}70%{transform:translate(-4px,2px)}80%{transform:translate(3px,-2px)}100%{transform:none}}
main.cw-pump{animation:cwpump .85s cubic-bezier(.2,.9,.2,1)}
@keyframes cwpump{0%{transform:scale(1)}28%{transform:scale(1.012)}100%{transform:scale(1)}}

/* ---------- micro-life ---------- */
.cw-magnetic{transition:transform .3s cubic-bezier(.2,.8,.2,1)}

/* ---------- mobile / motion guards ---------- */
@media(max-width:760px){
  #bgfeed{display:none!important}
  .cw-fx-stamp{font-size:clamp(2rem,15vw,4rem)}
}
@media(prefers-reduced-motion:reduce){
  .cw-fx-dip,.cw-fx-stamp,.cw-fx-flash,main.cw-shake,main.cw-pump{animation:none!important;opacity:0!important}
  .cw-path{transition:none}
  .cw-magnetic{transition:none}
}

/* ---------- cookie consent ---------- */
.cw-consent{position:fixed;left:1.2rem;right:1.2rem;bottom:44px;z-index:9995;max-width:640px;margin:0 auto;
  padding:1.3rem 1.5rem;border:1px solid rgba(255,255,255,.12);border-radius:16px;
  background:rgba(9,11,15,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 30px 60px -28px rgba(0,0,0,.95);
  transform:translateY(16px);opacity:0;transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.cw-consent.in{opacity:1;transform:none}
.cw-consent p{font-family:var(--body,sans-serif);font-size:.9rem;color:var(--smoke,#8B97A3);line-height:1.6;margin:0 0 1rem}
.cw-consent p b{color:var(--white,#F2F6F4);font-weight:500}
.cw-consent a{color:var(--accent,#17C687)}
.cw-consent .cw-cbtns{display:flex;gap:.6rem;flex-wrap:wrap}
.cw-consent button{font-family:var(--mono,monospace);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  padding:.65em 1.2em;border-radius:20px;cursor:pointer;transition:.25s;border:1px solid rgba(255,255,255,.16);
  background:transparent;color:var(--smoke,#8B97A3)}
.cw-consent button:hover{color:var(--white,#F2F6F4);border-color:rgba(255,255,255,.32)}
.cw-consent button.yes{background:var(--accent,#17C687);border-color:var(--accent,#17C687);color:#04120C;font-weight:700}
@media(max-width:760px){.cw-consent{left:.6rem;right:.6rem;bottom:38px;padding:1.1rem}}
