/* v3 additions ONLY — the two kept features (mini player, quick-log) and
   port plumbing. Everything else lives untouched in v2.css. */

/* mount plumbing: #app wraps the v2 .phone shell */
#app{height:100%;display:flex;flex-direction:column;}

/* ---- quick-log floating button ---- */
.fab{
  position:absolute;right:16px;bottom:calc(86px + env(safe-area-inset-bottom));z-index:45;
  width:52px;height:52px;border-radius:999px;background:var(--ink);color:var(--yellow);
  border:1.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);
  display:flex;align-items:center;justify-content:center;
  font-size:26px;font-weight:300;line-height:1;cursor:pointer;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1);
}
.fab.open{transform:rotate(45deg);}
.fab:active{transform:scale(.92);}

.ql-scrim{position:absolute;inset:0;background:rgba(26,26,26,.45);z-index:50;animation:qlfade .2s;}
@keyframes qlfade{from{opacity:0;}to{opacity:1;}}
.ql-sheet{
  position:absolute;left:0;right:0;bottom:0;z-index:51;background:var(--cream);
  border-top:1.5px solid var(--ink);border-radius:22px 22px 0 0;
  padding:10px 22px calc(20px + env(safe-area-inset-bottom));
  animation:qlup .3s cubic-bezier(.22,1,.36,1);max-height:78%;overflow-y:auto;
}
@keyframes qlup{from{transform:translateY(100%);}to{transform:none;}}
.ql-grab{width:44px;height:5px;border-radius:99px;background:rgba(26,26,26,.16);margin:2px auto 12px;}
.ql-title{font-family:'Fraunces',serif;font-weight:800;font-size:22px;text-transform:lowercase;letter-spacing:-.018em;color:var(--ink);font-variation-settings:"opsz" 144;}
.ql-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;}
.ql-act{
  background:#fff;border:1.5px solid var(--ink);border-radius:14px;padding:14px;
  box-shadow:3px 3px 0 var(--ink);cursor:pointer;transition:transform .15s;
}
.ql-act:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--ink);}
.ql-act .e{font-size:22px;}
.ql-act .t{font-family:'Fraunces',serif;font-weight:700;font-size:14px;margin-top:8px;text-transform:lowercase;color:var(--ink);}
.ql-act .m{font-family:'Work Sans',sans-serif;font-size:10.5px;color:var(--ink-2);margin-top:2px;}
.ql-habits{margin-top:6px;}

/* ---- mini audio player ---- */
.mini{
  position:absolute;left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom));z-index:44;
  background:var(--ink);color:var(--cream);border:1.5px solid var(--ink);border-radius:14px;
  padding:10px 12px 13px;display:flex;align-items:center;gap:11px;box-shadow:3px 3px 0 var(--ink);
  animation:qlup .3s cubic-bezier(.22,1,.36,1);cursor:pointer;
}
.mini .mp-btn{
  width:36px;height:36px;border-radius:999px;background:var(--yellow);color:var(--ink);
  border:1.5px solid var(--cream);display:flex;align-items:center;justify-content:center;
  font-size:14px;flex:0 0 auto;cursor:pointer;
}
.mini .mp-body{min-width:0;flex:1;}
.mini .mp-t{font-family:'Fraunces',serif;font-weight:700;font-size:13px;text-transform:lowercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mini .mp-m{font-family:'DM Mono',monospace;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--yellow);margin-top:2px;}
.mini .mp-x{flex:0 0 auto;color:var(--cream);opacity:.7;font-size:17px;padding:4px;cursor:pointer;}
.mini .mp-bar{position:absolute;left:12px;right:12px;bottom:5px;height:2.5px;background:rgba(253,248,228,.25);border-radius:99px;}
.mini .mp-bar i{display:block;height:100%;background:var(--yellow);border-radius:99px;}

/* ---- go-cards: Move + Build your team on home (design refresh, approved) ---- */
.go-card{
  border:1.5px solid var(--ink);border-radius:16px;padding:15px 16px 16px;
  box-shadow:4px 4px 0 var(--ink);cursor:pointer;position:relative;overflow:hidden;
  transition:transform .15s ease;
}
.go-card:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink);}
.go-card.move{background:var(--yellow-pale);}
.go-card.team{background:var(--sage);}
.go-card .gc-head{display:flex;justify-content:space-between;align-items:center;}
.go-card .gc-label{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2);}
.go-card .gc-go{
  width:32px;height:32px;border-radius:999px;background:var(--ink);color:var(--yellow);
  display:flex;align-items:center;justify-content:center;font-size:15px;flex:0 0 auto;
  border:1.25px solid var(--ink);
}
.go-card .gc-title{
  font-family:'Fraunces',serif;font-weight:800;font-size:19px;color:var(--ink);
  letter-spacing:-0.016em;line-height:1.08;margin-top:9px;text-transform:lowercase;
  font-variation-settings:"opsz" 144;
}
.go-card .gc-sub{font-family:'Work Sans',sans-serif;font-size:12.5px;color:var(--ink-2);margin-top:5px;line-height:1.45;max-width:290px;}
.gc-chips{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap;}
.gc-chip{
  font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;
  background:#fff;border:1.25px solid var(--ink);border-radius:999px;padding:6px 11px;color:var(--ink);
}
.go-card .gc-avs{display:flex;margin-top:12px;align-items:center;}
.go-card .gc-av{
  width:30px;height:30px;border-radius:999px;border:1.25px solid var(--ink);
  display:flex;align-items:center;justify-content:center;
  font-family:'DM Mono',monospace;font-size:10px;color:var(--ink);margin-right:-7px;
}
.go-card .gc-av.b{background:var(--yellow);} .go-card .gc-av.e1{background:#fff;} .go-card .gc-av.e2{background:var(--blush,#F7DFD3);}
.go-card .gc-avs .gc-avlab{margin-left:15px;font-family:'Work Sans',sans-serif;font-size:11.5px;color:var(--ink-2);}

/* ---- britt notepad: "a note from britt" as an actual note (design refresh) ---- */
.bnote{
  margin-top:18px;position:relative;background:#FFFDF6;
  border:1.5px solid var(--ink);border-radius:7px;
  box-shadow:4px 4px 0 var(--ink);padding:20px 18px 12px;
  transform:rotate(-0.7deg);
}
.bnote .tape{
  position:absolute;top:-11px;left:50%;width:86px;height:24px;
  transform:translateX(-50%) rotate(-2.5deg);
  background:rgba(244,216,94,.88);border:1.25px solid rgba(26,26,26,.55);
  border-radius:2px;
  box-shadow:1px 2px 0 rgba(26,26,26,.18);
}
.bnote .tape::before{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(90deg, transparent 0 6px, rgba(255,255,255,.35) 6px 8px);
}
.bnote .bn-from{
  font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--ink-2);margin-bottom:8px;
  display:flex;align-items:center;gap:8px;
}
.bnote .bn-from::after{content:"";flex:1;height:1px;background:var(--ink);opacity:.15;}
.bnote .bn-body{
  font-family:'Caveat',cursive;font-weight:600;font-size:20px;line-height:27px;color:var(--ink);
  background:repeating-linear-gradient(to bottom, transparent 0 26px, rgba(26,26,26,.10) 26px 27px);
  padding-bottom:3px;
}
.bnote .bn-body b{font-weight:700;background:linear-gradient(180deg,transparent 55%,var(--yellow) 55%,var(--yellow) 92%,transparent 92%);padding:0 2px;}
.bnote .bn-sig{
  font-family:'Caveat',cursive;font-weight:700;font-size:22px;color:var(--ink);
  text-align:right;margin-top:2px;transform:rotate(-1.5deg);
}

/* ---- training re-conception ---- */
.tr-prog{
  margin-top:10px;background:#fff;border:1.5px solid var(--ink);border-radius:16px;
  padding:14px 16px;box-shadow:3px 3px 0 var(--ink);cursor:pointer;transition:transform .15s;
}
.tr-prog:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--ink);}
.tr-prog-top{display:flex;justify-content:space-between;align-items:center;}
.tr-badge{font-family:'DM Mono',monospace;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;background:var(--yellow);border:1.25px solid var(--ink);border-radius:99px;padding:4px 9px;}
.tr-open{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);opacity:.7;}
.tr-prog-n{font-family:'Fraunces',serif;font-weight:800;font-size:18px;letter-spacing:-.014em;margin-top:9px;text-transform:lowercase;color:var(--ink);font-variation-settings:"opsz" 144;}
.tr-prog-m{font-family:'Work Sans',sans-serif;font-size:12px;color:var(--ink-2);margin-top:3px;}

.tr-door{
  margin-top:10px;background:#fff;border:1.5px solid var(--ink);border-radius:16px;
  padding:15px 16px;box-shadow:3px 3px 0 var(--ink);cursor:pointer;transition:transform .15s;
}
.tr-door:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--ink);}
.tr-door.hero{background:var(--yellow-pale);box-shadow:4px 4px 0 var(--ink);}
.tr-door-top{display:flex;justify-content:space-between;align-items:center;}
.tr-door-eye{font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);}
.tr-door-t{font-family:'Fraunces',serif;font-weight:800;font-size:19px;letter-spacing:-.016em;margin-top:8px;text-transform:lowercase;color:var(--ink);font-variation-settings:"opsz" 144;}
.tr-door-t.sm{font-size:15px;margin-top:8px;}
.tr-door-m{font-family:'Work Sans',sans-serif;font-size:12.5px;color:var(--ink-2);margin-top:4px;line-height:1.45;}
.tr-doors-row{display:flex;gap:10px;margin-top:10px;}
.tr-door.half{flex:1;margin-top:0;}
.tr-door-e{font-size:22px;}

.tr-sess{
  margin-top:10px;background:#fff;border:1.5px solid var(--ink);border-radius:14px;
  padding:13px 15px;box-shadow:2px 2px 0 var(--ink);cursor:pointer;position:relative;
}
.tr-sess .chev{position:absolute;right:14px;top:50%;transform:translateY(-50%);opacity:.4;}
.tr-sess-n{font-family:'Fraunces',serif;font-weight:700;font-size:15.5px;text-transform:lowercase;color:var(--ink);}
.tr-sess-m{font-family:'Work Sans',sans-serif;font-size:11.5px;color:var(--ink-2);margin-top:2px;}

.tr-ex{margin-top:12px;background:#fff;border:1.5px solid var(--ink);border-radius:14px;padding:13px 14px;box-shadow:2px 2px 0 var(--ink);}
.tr-ex-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.tr-ex-n{font-family:'Fraunces',serif;font-weight:700;font-size:15px;text-transform:lowercase;color:var(--ink);}
.tr-ex-m{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.08em;color:var(--ink-2);white-space:nowrap;}
.tr-ex-cue{font-family:'Work Sans',sans-serif;font-size:11.5px;color:var(--ink-2);margin-top:6px;line-height:1.45;}
.tr-set{display:flex;align-items:center;gap:8px;margin-top:8px;}
.tr-set-n{width:22px;height:22px;border-radius:7px;border:1.25px solid var(--ink);background:var(--cream-deep);display:flex;align-items:center;justify-content:center;font-family:'DM Mono',monospace;font-size:10px;flex:0 0 auto;}
.tr-in{width:74px;background:var(--cream);border:1.25px solid var(--ink);border-radius:9px;padding:8px 10px;font-size:14px;outline:none;}
.tr-x{color:var(--ink-2);font-size:12px;}
.tr-last{margin-left:auto;font-family:'DM Mono',monospace;font-size:8.5px;letter-spacing:.06em;color:var(--ink-2);background:var(--cream-deep);border:1.25px dashed var(--ink);border-radius:99px;padding:5px 9px;cursor:pointer;white-space:nowrap;}
.tr-feel{display:flex;align-items:center;gap:6px;margin-top:11px;}
.tr-feel-q{font-family:'DM Mono',monospace;font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-right:2px;}
.tr-fo{width:30px;height:30px;border-radius:999px;border:1.25px solid var(--ink);background:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;opacity:.6;}
.tr-fo.sel{opacity:1;background:var(--yellow);box-shadow:1px 1px 0 var(--ink);}
.tr-fo.edge.sel{background:var(--yellow-deep);}
.tr-block{margin-top:8px;}
.tr-block-m{font-family:'Work Sans',sans-serif;font-size:12.5px;color:var(--ink);margin-top:3px;}

.mv-cta{
  margin-top:18px;text-align:center;font-family:'DM Mono',monospace;font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;background:var(--ink);color:var(--yellow);
  border:1.5px solid var(--ink);border-radius:99px;padding:15px;box-shadow:3px 3px 0 var(--ink);
  cursor:pointer;transition:transform .15s;font-weight:500;
}
.mv-cta:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink);}

/* ---- AI import flow ---- */
.ai-prompt-card{
  margin-top:16px;background:var(--sage);border:1.5px solid var(--ink);border-radius:16px;
  padding:14px 15px;box-shadow:3px 3px 0 var(--ink);
}
.apc-t{font-family:'Fraunces',serif;font-weight:800;font-size:16px;text-transform:lowercase;letter-spacing:-.012em;color:var(--ink);font-variation-settings:"opsz" 144;}
.apc-m{font-family:'Work Sans',sans-serif;font-size:12px;color:var(--ink-2);margin-top:4px;line-height:1.45;}
.apc-btn{
  display:inline-block;margin-top:11px;font-family:'DM Mono',monospace;font-size:9.5px;
  letter-spacing:.14em;text-transform:uppercase;background:var(--ink);color:var(--yellow);
  border-radius:99px;padding:10px 16px;cursor:pointer;border:1.5px solid var(--ink);
  box-shadow:2px 2px 0 rgba(26,26,26,.35);transition:transform .15s;
}
.apc-btn:active{transform:translate(2px,2px);box-shadow:none;}
.apc-peek{
  display:inline-block;margin:11px 0 0 10px;font-family:'DM Mono',monospace;font-size:9px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);cursor:pointer;text-decoration:underline;
}
.apc-pre{
  margin-top:11px;background:#fff;border:1.25px solid var(--ink);border-radius:11px;
  padding:12px;font-family:'DM Mono',monospace;font-size:10.5px;line-height:1.55;color:var(--ink);
  white-space:pre-wrap;user-select:all;-webkit-user-select:all;
}
.ai-tabs{display:flex;gap:8px;margin-top:16px;}
.ai-tab{flex:1;text-align:center;font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;border:1.5px solid var(--ink);border-radius:99px;padding:11px;background:#fff;cursor:pointer;color:var(--ink-2);}
.ai-tab.on{background:var(--ink);color:var(--yellow);box-shadow:2px 2px 0 var(--ink);}
.ai-paste{
  width:100%;margin-top:12px;min-height:190px;background:#fff;border:1.5px solid var(--ink);
  border-radius:14px;padding:14px;font-family:'DM Mono',monospace;font-size:12.5px;line-height:1.6;
  outline:none;box-shadow:2px 2px 0 var(--ink);resize:none;color:var(--ink);
}
.ai-drop{
  display:block;margin-top:12px;background:#fff;border:1.5px dashed var(--ink);border-radius:14px;
  padding:26px 18px;text-align:center;cursor:pointer;
}
.ai-drop-e{font-size:30px;}
.ai-drop-t{font-family:'Fraunces',serif;font-weight:700;font-size:15px;margin-top:8px;color:var(--ink);}
.ai-drop-m{font-family:'Work Sans',sans-serif;font-size:11.5px;color:var(--ink-2);margin-top:4px;}
.ai-thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;}
.ai-thumb{width:64px;height:64px;object-fit:cover;border:1.5px solid var(--ink);border-radius:10px;flex:0 0 auto;}
.ai-privacy{font-family:'Work Sans',sans-serif;font-size:11px;color:var(--ink-2);text-align:center;margin-top:12px;line-height:1.5;}
.ai-reading{text-align:center;padding:110px 30px 40px;}
.ai-orb{
  width:64px;height:64px;border-radius:999px;margin:0 auto;
  background:var(--yellow);border:1.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);
  animation:breathe-in 1.6s ease-in-out infinite;
}
@keyframes breathe-in{0%,100%{transform:scale(1);}50%{transform:scale(1.18);}}
.ai-reading-t{font-family:'Fraunces',serif;font-weight:800;font-size:24px;text-transform:lowercase;letter-spacing:-.02em;margin-top:22px;color:var(--ink);}
.ai-reading-m{font-family:'Work Sans',sans-serif;font-size:13px;color:var(--ink-2);margin-top:8px;line-height:1.5;}
.ai-demo-note{
  margin-top:12px;background:var(--cream-deep);border:1.5px dashed var(--ink);border-radius:12px;
  padding:11px 14px;font-family:'Work Sans',sans-serif;font-size:11.5px;color:var(--ink-2);line-height:1.5;
}
.ai-sess{margin-top:12px;background:#fff;border:1.5px solid var(--ink);border-radius:14px;padding:13px 15px;box-shadow:2px 2px 0 var(--ink);}
.ai-sess-h{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1.25px solid rgba(26,26,26,.12);padding-bottom:9px;}
.ai-sess-n{font-family:'Fraunces',serif;font-weight:800;font-size:15.5px;text-transform:lowercase;color:var(--ink);}
.ai-sess-m{font-family:'DM Mono',monospace;font-size:8.5px;letter-spacing:.08em;color:var(--ink-2);}
.ai-ex{display:flex;justify-content:space-between;padding:8px 0 0;}
.ai-ex-n{font-family:'Work Sans',sans-serif;font-size:13.5px;color:var(--ink);}
.ai-ex-s{font-family:'DM Mono',monospace;font-size:11px;color:var(--ink-2);}
.ai-done{text-align:center;padding-top:36px;}
.ai-done-e{font-size:40px;}
.ai-review-up{
  margin-top:18px;background:var(--sage);border:1.5px solid var(--ink);border-radius:16px;
  padding:16px;box-shadow:3px 3px 0 var(--ink);
}
.ai-review-up.slim{margin-top:14px;}
.aru-eye{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);}
.aru-t{font-family:'Fraunces',serif;font-weight:800;font-size:18px;text-transform:lowercase;letter-spacing:-.014em;margin-top:6px;color:var(--ink);font-variation-settings:"opsz" 144;}
.aru-m{font-family:'Work Sans',sans-serif;font-size:12.5px;color:var(--ink-2);margin-top:4px;line-height:1.45;}
.aru-cta{
  display:inline-block;margin-top:11px;font-family:'DM Mono',monospace;font-size:9.5px;
  letter-spacing:.14em;text-transform:uppercase;background:var(--ink);color:var(--cream);
  border-radius:99px;padding:9px 15px;cursor:pointer;
}

/* stub screens for not-yet-ported views */
.stub-note{
  margin-top:18px;background:var(--cream-deep);border:1.5px dashed var(--ink);
  border-radius:14px;padding:16px;font-family:'Work Sans',sans-serif;font-size:13px;
  color:var(--ink-2);line-height:1.5;
}

/* ---- request intake + builder (verbatim from v2 move.html) ---- */
.about{background:var(--cream-deep);border:1.5px solid var(--ink);border-radius:14px;padding:13px 14px;font-size:13px;line-height:1.5;color:var(--ink-2);box-shadow:3px 3px 0 var(--ink);font-family:'Work Sans',sans-serif;}
.setrow{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.fld{flex:1;}
.inp{width:100%;border:1.5px solid var(--ink);border-radius:9px;padding:8px;font-family:'Work Sans',sans-serif;font-size:15px;text-align:center;background:#fff;}
.inp:focus{outline:none;box-shadow:2px 2px 0 var(--yellow-deep);}
.pk{display:flex;align-items:center;gap:11px;background:#fff;border:1.5px solid var(--ink);border-radius:12px;padding:12px 13px;margin-bottom:9px;box-shadow:2px 2px 0 var(--ink);cursor:pointer;}
.pk .pkn{font-family:'Fraunces',serif;font-weight:700;font-size:14.5px;color:var(--ink);}
.pk .pkm{font-size:11px;color:var(--ink-2);font-family:'DM Mono',monospace;}
.pk .add{margin-left:auto;font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;background:var(--yellow);border:1.25px solid var(--ink);border-radius:999px;padding:6px 11px;}
.mv-wrap{padding:4px 0 24px;}
.mv-prog{height:6px;border-radius:999px;background:var(--cream-deep);border:1.25px solid var(--ink);overflow:hidden;margin:8px 0 16px;}
.mv-prog .pf{height:100%;background:var(--yellow);border-right:1.25px solid var(--ink);transition:width .3s;}
.mv-step-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);margin-bottom:10px;}
.mv-q{font-family:'Fraunces',serif;font-weight:800;font-size:27px;line-height:1.04;letter-spacing:-0.02em;text-transform:lowercase;color:var(--ink);margin-bottom:6px;}
.mv-sub{font-family:'Work Sans',sans-serif;font-size:13px;color:var(--ink-2);margin-bottom:16px;line-height:1.45;}
.mv-opts{display:flex;flex-wrap:wrap;gap:9px;}
.mv-opt{background:#fff;border:1.5px solid var(--ink);border-radius:12px;padding:12px 14px;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;box-shadow:2px 2px 0 var(--ink);}
.mv-opt.sel{background:var(--ink);color:var(--yellow);}
.mv-opt.wide{width:100%;}
.mv-loc{display:flex;gap:9px;}
.mv-loc .mv-opt{flex:1;text-align:center;}
.mv-ta{width:100%;min-height:90px;font-family:'Work Sans',sans-serif;font-size:14px;color:var(--ink);border:1.5px solid var(--ink);border-radius:12px;padding:12px 14px;background:#fff;box-shadow:2px 2px 0 var(--ink);-webkit-appearance:none;resize:vertical;outline:none;line-height:1.45;}
.mv-ta:focus{box-shadow:2px 2px 0 var(--yellow-deep);}
.mv-nav{display:flex;gap:10px;margin-top:22px;}
.mv-back2{font-family:'Work Sans',sans-serif;font-weight:600;font-size:14px;color:var(--ink);background:#fff;border:1.5px solid var(--ink);border-radius:999px;padding:13px 20px;cursor:pointer;box-shadow:2px 2px 0 var(--ink);display:inline-block;}
.mv-next{flex:1;font-family:'Work Sans',sans-serif;font-weight:600;font-size:14px;color:var(--yellow);background:var(--ink);border-radius:999px;padding:13px;text-align:center;cursor:pointer;box-shadow:3px 3px 0 var(--yellow-deep);}
.mv-hero{background:var(--yellow-pale);border:1.5px solid var(--ink);border-radius:18px;padding:24px 18px;box-shadow:5px 5px 0 var(--ink);text-align:center;margin-top:10px;}
.mv-hero .t{font-family:'Fraunces',serif;font-weight:800;font-size:30px;line-height:1.02;letter-spacing:-0.02em;text-transform:lowercase;color:var(--ink);}
.mv-hero .d{font-family:'Work Sans',sans-serif;font-size:14px;color:var(--ink-2);margin-top:11px;line-height:1.5;}
.mv-hero .b{margin-top:18px;display:inline-flex;background:var(--ink);color:var(--yellow);border-radius:999px;padding:14px 28px;font-family:'Work Sans',sans-serif;font-weight:600;font-size:15px;cursor:pointer;box-shadow:3px 3px 0 var(--yellow-deep);}
.mv-sumrow{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1.25px solid rgba(26,26,26,.12);}
.mv-sumrow .k{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);flex:0 0 34%;padding-top:2px;}
.mv-sumrow .v{font-family:'Work Sans',sans-serif;font-size:13px;color:var(--ink);text-align:right;flex:1;}
.mv-pay{margin-top:18px;background:var(--ink);color:var(--cream);border-radius:16px;padding:18px;text-align:center;}
.mv-pay .price{font-family:'Fraunces',serif;font-weight:800;font-size:32px;line-height:1;}
.mv-pay .plabel{font-family:'Work Sans',sans-serif;font-size:13px;color:#ccc2bb;margin-top:3px;}
.mv-pay .pb{margin-top:14px;background:var(--yellow);color:var(--ink);border-radius:999px;padding:14px;font-family:'Work Sans',sans-serif;font-weight:600;font-size:15px;cursor:pointer;}
.mv-done{text-align:center;padding:26px 8px;}
.mv-done .ic{font-size:46px;}
.mv-done .t{font-family:'Fraunces',serif;font-weight:800;font-size:30px;text-transform:lowercase;letter-spacing:-0.02em;color:var(--ink);margin-top:10px;}
.mv-done .d{font-family:'Work Sans',sans-serif;font-size:14px;color:var(--ink-2);margin-top:10px;line-height:1.5;}
.tr-pending{margin-top:10px;background:#fff;border:1.5px dashed var(--ink);border-radius:14px;padding:13px 15px;display:flex;align-items:center;gap:11px;}
.tr-pending .ic{font-size:19px;}
.tr-pending .t{font-family:'Fraunces',serif;font-weight:700;font-size:14.5px;color:var(--ink);}
.tr-pending .m{font-family:'Work Sans',sans-serif;font-size:11.5px;color:var(--ink-2);margin-top:2px;}

/* ---- practice hub: soundscape tiles (one-page redesign, approved) ---- */
.ss-row{display:flex;gap:10px;}
.ss-tile{
  flex:1;border:1.5px solid var(--ink);border-radius:16px;padding:14px 12px 12px;
  box-shadow:3px 3px 0 var(--ink);cursor:pointer;color:var(--cream);min-height:118px;
  display:flex;flex-direction:column;transition:transform .15s;
}
.ss-tile:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--ink);}
.ss-tile.forest{background:linear-gradient(165deg,#3E5244,#26332A);}
.ss-tile.ocean{background:linear-gradient(165deg,#2E4A5C,#1D2B36);}
.ss-tile.fire{background:linear-gradient(165deg,#6B3F44,#2E2231);}
.ss-e{font-size:22px;}
.ss-n{font-family:'Fraunces',serif;font-weight:700;font-size:13.5px;letter-spacing:-.008em;margin-top:auto;text-transform:lowercase;}
.ss-m{font-family:'Work Sans',sans-serif;font-size:9.5px;opacity:.75;margin-top:3px;line-height:1.35;}

/* ---- challenges re-conception ---- */
.ch-hero-empty{margin-top:14px;background:var(--yellow-pale);border:1.5px solid var(--ink);border-radius:18px;padding:22px 18px;box-shadow:4px 4px 0 var(--ink);text-align:center;}
.ch-hero-e{font-size:32px;}
.ch-hero-t{font-family:'Fraunces',serif;font-weight:800;font-size:21px;text-transform:lowercase;letter-spacing:-.018em;color:var(--ink);margin-top:8px;font-variation-settings:"opsz" 144;}
.ch-hero-m{font-family:'Work Sans',sans-serif;font-size:12.5px;color:var(--ink-2);margin-top:7px;line-height:1.5;}
.ch-card{margin-top:14px;background:#fff;border:1.5px solid var(--ink);border-radius:16px;padding:15px;box-shadow:3px 3px 0 var(--ink);}
.ch-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.ch-card-n{font-family:'Fraunces',serif;font-weight:800;font-size:17px;text-transform:lowercase;letter-spacing:-.014em;color:var(--ink);font-variation-settings:"opsz" 144;}
.ch-card-m{font-family:'Work Sans',sans-serif;font-size:11.5px;color:var(--ink-2);margin-top:3px;}
.ch-share{flex:0 0 auto;font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;background:var(--yellow);border:1.25px solid var(--ink);border-radius:999px;padding:7px 12px;cursor:pointer;box-shadow:1px 1px 0 var(--ink);}
.ch-streak{margin-top:10px;font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.08em;color:var(--ink);background:var(--cream-deep);border:1.25px dashed var(--ink);border-radius:99px;padding:7px 12px;display:inline-block;}
.cg-grid{margin-top:12px;}
.cg-row{display:flex;align-items:center;gap:5px;margin-top:5px;}
.cg-name{flex:0 0 84px;font-family:'Work Sans',sans-serif;font-size:11px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cg-cell{flex:1;aspect-ratio:1;max-width:32px;border:1.25px solid var(--ink);border-radius:8px;background:var(--cream-deep);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--ink);}
.cg-cell.hit{background:var(--yellow);}
.cg-cell.today{box-shadow:1.5px 1.5px 0 var(--ink);}
.cg-cell-h{flex:1;max-width:32px;text-align:center;font-family:'DM Mono',monospace;font-size:8px;color:var(--ink-2);text-transform:uppercase;}
.cg-head .cg-name{flex:0 0 84px;}
.ch-tick{margin-top:12px;text-align:center;font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;background:var(--ink);color:var(--yellow);border-radius:99px;padding:12px;cursor:pointer;box-shadow:2px 2px 0 var(--yellow-deep);}
.ch-tick.done{background:var(--sage);color:var(--ink);border:1.25px solid var(--ink);box-shadow:none;}
.ch-solo{margin-top:10px;font-family:'Work Sans',sans-serif;font-size:11.5px;color:var(--ink-2);background:var(--cream-deep);border:1.25px dashed var(--ink);border-radius:11px;padding:10px 12px;line-height:1.45;}
.ch-tpls{display:flex;flex-direction:column;gap:8px;margin-top:6px;}
.ch-tpl{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--ink);border-radius:12px;padding:11px 13px;cursor:pointer;box-shadow:2px 2px 0 var(--ink);}
.ch-tpl.sel{background:var(--yellow);}
.ch-tpl-e{font-size:17px;}
.ch-tpl-n{font-family:'Fraunces',serif;font-weight:700;font-size:14px;color:var(--ink);text-transform:lowercase;}
.ch-tpl-d{margin-left:auto;font-family:'DM Mono',monospace;font-size:9.5px;color:var(--ink-2);}
.ch-created{text-align:center;padding:26px 8px;}
.ch-created-e{font-size:40px;}
.ch-created-t{font-family:'Fraunces',serif;font-weight:800;font-size:26px;text-transform:lowercase;letter-spacing:-.02em;color:var(--ink);margin-top:10px;}
.ch-created-m{font-family:'Work Sans',sans-serif;font-size:13px;color:var(--ink-2);margin-top:9px;line-height:1.5;}
.ch-skip{margin-top:14px;text-align:center;font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);text-decoration:underline;cursor:pointer;}
.ch-invite{margin-top:14px;background:var(--sage);border:1.5px solid var(--ink);border-radius:16px;padding:16px;box-shadow:4px 4px 0 var(--ink);}
.ch-invite-t{font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);margin-bottom:7px;}

/* multi-criteria challenges */
.cg-cell.part{background:var(--yellow-pale);font-family:'DM Mono',monospace;font-size:7.5px;}
.ch-today{margin-top:12px;}
.ch-habit-tick{display:flex;align-items:center;gap:10px;background:var(--cream-deep);border:1.25px solid var(--ink);border-radius:11px;padding:10px 12px;margin-top:7px;cursor:pointer;}
.ch-habit-tick.done{background:var(--sage);}
.cht-box{width:24px;height:24px;border-radius:7px;border:1.25px solid var(--ink);background:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;flex:0 0 auto;}
.ch-habit-tick.done .cht-box{background:var(--ink);color:var(--yellow);}
.cht-n{font-family:'Work Sans',sans-serif;font-size:13px;font-weight:500;color:var(--ink);}
.ch-habit-tick.done .cht-n{opacity:.6;}
.ch-all-done{margin-top:9px;text-align:center;font-family:'Caveat',cursive;font-weight:700;font-size:17px;color:var(--ink);}
.ch-tpl-top{display:flex;align-items:center;gap:10px;}
.ch-tpl-b{font-family:'Work Sans',sans-serif;font-size:11px;color:var(--ink-2);margin-top:5px;line-height:1.4;}
.ch-tpl-hs{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}
.ch-tpl-h{font-family:'DM Mono',monospace;font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;background:#fff;border:1.25px solid var(--ink);border-radius:99px;padding:4px 9px;color:var(--ink);}
.ch-tpl.sel .ch-tpl-h{background:var(--cream);}
.ch-hab-rm{flex:0 0 auto;width:38px;display:flex;align-items:center;justify-content:center;border:1.25px solid var(--ink);border-radius:10px;background:#fff;cursor:pointer;color:var(--ink-2);}
.ch-hab-add{display:inline-block;font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);border:1.25px dashed var(--ink);border-radius:99px;padding:7px 13px;cursor:pointer;}

/* live club challenges list */
.ch-live{margin-top:10px;background:#fff;border:1.5px solid var(--ink);border-radius:14px;padding:13px 14px;display:flex;align-items:center;gap:12px;box-shadow:2px 2px 0 var(--ink);}
.ch-live-b{flex:1;min-width:0;}
.ch-join{flex:0 0 auto;font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;background:var(--yellow);border:1.25px solid var(--ink);border-radius:999px;padding:9px 15px;cursor:pointer;box-shadow:1px 1px 0 var(--ink);}

/* time-habit commit step in the picker */
.pick-commit{margin-top:11px;background:var(--yellow-pale);border:1.25px dashed var(--ink);border-radius:11px;padding:11px 12px;}
.pick-commit-lab{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px;}
.pick-commit-btn{flex:0 0 auto;font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;background:var(--ink);color:var(--yellow);border-radius:999px;padding:11px 16px;cursor:pointer;}

/* ===== onboarding v3 (merged from js/views/onboarding.css.txt) ===== */
/* goal step: matched member testimonial, appears on select */
.ob3-tq{margin-top:14px;background:var(--yellow-pale);border:1.5px solid var(--ink);border-radius:14px;padding:13px 15px;}
.ob3-tq .q{font-family:'Fraunces',serif;font-weight:600;font-size:13.5px;line-height:1.35;color:var(--ink);font-variation-settings:"opsz" 144;}
.ob3-tq .a{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-top:7px;}

/* pattern step: sage reframe card, appears on select */
.ob3-ic{margin-top:14px;background:var(--sage);border:1.5px dashed var(--ink);border-radius:14px;padding:13px 15px;transform:rotate(-.5deg);}
.ob3-ic .t{font-family:'Fraunces',serif;font-weight:600;font-size:14px;line-height:1.35;color:var(--ink);font-variation-settings:"opsz" 144;}

/* building step: checklist rows tick in one by one (JS toggles .on) */
.ob3-chk{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:14px;color:var(--ink);opacity:0;transition:opacity .3s;}
.ob3-chk.on{opacity:1;}
.ob3-chk .bx{width:24px;height:24px;border:1.5px solid var(--ink);border-radius:7px;background:var(--yellow);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-weight:800;font-size:13px;flex:0 0 auto;}

/* result step: protein-only hero card. .pale variant reused on the done step. */
.ob3-rescard{background:#fff;border:1.5px solid var(--ink);border-radius:16px;padding:16px;box-shadow:4px 4px 0 var(--ink);margin-top:14px;}
.ob3-rescard.pale{background:var(--yellow-pale);}
.ob3-card-eye{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);}
.ob3-resrow{display:flex;align-items:baseline;gap:8px;margin-top:6px;}
.ob3-bignum{font-family:'Fraunces',serif;font-weight:800;font-size:40px;letter-spacing:-.016em;line-height:1;color:var(--ink);font-variation-settings:"opsz" 144;}
.ob3-resunit{font-size:13.5px;font-weight:600;color:var(--ink);}
.ob3-reslead{font-size:12.5px;color:var(--ink-2);line-height:1.5;margin-top:8px;}

/* offer step: module cards */
.ob3-mcard{margin-top:12px;background:#fff;border:1.5px solid var(--ink);border-radius:14px;padding:13px 15px;box-shadow:3px 3px 0 var(--ink);display:flex;gap:12px;align-items:flex-start;}
.ob3-mcard .em{font-size:19px;line-height:1.15;flex:0 0 auto;}
.ob3-mcard .b{flex:1;}
.ob3-mcard .mt{font-family:'Fraunces',serif;font-weight:700;font-size:15px;line-height:1.2;text-transform:lowercase;color:var(--ink);font-variation-settings:"opsz" 144;}
.ob3-mcard .ms{font-size:12.5px;color:var(--ink-2);line-height:1.4;margin-top:3px;}

/* offer step: 3-tier pricing card (trial, the reset, stay forever) */
.ob3-pay{margin-top:18px;border:1.5px solid var(--ink);border-radius:16px;overflow:hidden;box-shadow:5px 5px 0 var(--ink);}
.ob3-pay-tier{padding:14px 16px;background:#fff;}
.ob3-pay-tier + .ob3-pay-tier{border-top:1.5px solid var(--ink);}
.ob3-pay-tier.t1{background:var(--sage);}
.ob3-pay-tier.t2{background:#fff;}
.ob3-pay-tier.t3{background:var(--yellow-pale);}
.ob3-found{display:inline-block;font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--ink);background:var(--yellow);border:1.5px solid var(--ink);border-radius:999px;padding:3px 10px;margin-bottom:8px;}
.ob3-pay-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.ob3-pay-lab{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--ink);}
.ob3-pay-amt{font-family:'Fraunces',serif;font-weight:800;font-size:30px;line-height:1;white-space:nowrap;color:var(--ink);font-variation-settings:"opsz" 144;}
.ob3-pay-amt span{font-family:'Work Sans',sans-serif;font-weight:600;font-size:13px;color:var(--ink-2);}
.ob3-pay-pts{font-size:12.5px;color:var(--ink-2);line-height:1.45;margin-top:7px;}

/* offer step: note from britt (sage card, Caveat sign-off; roman, never italic) */
.ob3-note{background:var(--sage);border:1.5px solid var(--ink);border-radius:14px;padding:15px;box-shadow:3px 3px 0 var(--ink);margin-top:16px;}
.ob3-note .t{font-family:'Fraunces',serif;font-weight:700;font-size:15px;margin-bottom:6px;text-transform:lowercase;color:var(--ink);font-variation-settings:"opsz" 144;}
.ob3-note .b{font-size:13.5px;line-height:1.5;color:var(--ink);}
.ob3-cav{font-family:'Caveat',cursive;font-weight:600;font-size:22px;line-height:1.3;font-style:normal;color:var(--ink);margin-top:8px;}

/* ---- billing gate: past-due banner + unpaid/inactive lock screen ---- */
.bill-banner{display:flex;align-items:center;gap:9px;background:var(--yellow-pale);border-bottom:1.5px solid var(--ink);padding:10px 16px;cursor:pointer;flex:0 0 auto;}
.bill-banner .bb-dot{width:8px;height:8px;border-radius:99px;background:var(--yellow);border:1.5px solid var(--ink);flex:0 0 auto;}
.bill-banner .bb-t{font-family:'Work Sans',sans-serif;font-size:12px;color:var(--ink);flex:1;line-height:1.35;}
.bill-banner .bb-go{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);border:1.5px solid var(--ink);border-radius:999px;padding:5px 12px;background:#fff;flex:0 0 auto;}
.bill-lock{display:flex;flex-direction:column;justify-content:center;flex:1;padding:0 24px 48px;}
.bill-lock .bl-emoji{font-size:38px;}
.bill-lock .sub{margin-top:10px;}
.bill-lock .bl-actions{margin-top:24px;display:flex;flex-direction:column;gap:8px;}
.bill-lock .bl-secondary{text-align:center;font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);padding:10px;cursor:pointer;}

/* signup CTA: let taps through even when "disabled" so obSignup can say which
   field needs attention (v2's pointer-events:none swallowed the tap silently) */
.ob-step[data-step="signup"] .ob-cta.disabled{pointer-events:auto;}

/* ---- let it burn (release ritual, 2026-07-06) ---- */
/* Nothing here persists; the burn is clip-path + char band + flames + particles, no images. */
.bi-contract{background:var(--sage);border:1.5px solid var(--ink);border-radius:14px;padding:15px;box-shadow:3px 3px 0 var(--ink);margin-top:16px;}
.bi-contract .bc-t{font-family:'Fraunces',serif;font-weight:700;font-size:15px;margin-bottom:6px;text-transform:lowercase;color:var(--ink);font-variation-settings:"opsz" 144;}
.bi-contract .bc-b{font-family:'Work Sans',sans-serif;font-size:13.5px;line-height:1.5;color:var(--ink);}
.bi-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px;}
.bi-chip{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.06em;text-transform:lowercase;color:var(--ink);background:#fff;border:1.5px solid var(--ink);border-radius:999px;padding:7px 12px;cursor:pointer;}
.bi-chip.sel{background:var(--yellow);box-shadow:2px 2px 0 var(--ink);}
.bi-paper,.bi-paper-read{
  width:100%;min-height:230px;margin-top:14px;padding:16px 18px;
  background:#fff;
  background-image:repeating-linear-gradient(180deg,transparent,transparent 32px,rgba(26,26,26,.09) 32px,rgba(26,26,26,.09) 33.5px);
  background-position:0 14px;
  border:1.5px solid var(--ink);border-radius:4px;box-shadow:4px 4px 0 var(--ink);
  font-family:'Caveat',cursive;font-weight:600;font-style:normal;font-size:22px;line-height:33px;color:var(--ink);
  transform:rotate(-0.4deg);
}
.bi-paper{resize:none;outline:none;display:block;}
.bi-paper::placeholder{color:rgba(26,26,26,.38);}
.bi-paper-read{white-space:pre-wrap;word-break:break-word;}
.bi-note{font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);text-align:center;margin-top:10px;}
.bi-stage{position:relative;}
.bi-stage .bi-paper-read{position:relative;overflow:hidden;}
.bi-stage.burning .bi-paper-read{animation:biBurn 7.5s linear both;box-shadow:none;}
/* char band lives INSIDE the clipped paper, riding just above the burn line:
   clean paper -> browning scorch -> black char -> glowing rim at the torn edge */
.bi-char{
  position:absolute;left:-6px;right:-6px;height:64px;bottom:-70px;pointer-events:none;
  background:linear-gradient(180deg,
    transparent 0%,
    rgba(150,98,44,.14) 22%,
    rgba(112,66,28,.38) 42%,
    rgba(56,32,16,.72) 60%,
    rgba(24,13,7,.92) 72%,
    #7A2E10 80%,
    #E5601F 87%,
    #F4A83C 93%,
    #FFE9A3 100%);
  filter:blur(1.6px);
  animation:biFront 7.5s linear both;
}
/* flame tongues ride the same front, licking up over the unburned paper */
.bi-front{position:absolute;left:0;right:0;bottom:-8%;height:2px;pointer-events:none;animation:biFront 7.5s linear both;}
.bi-flame{
  position:absolute;bottom:-4px;transform-origin:50% 100%;
  border-radius:50% 50% 42% 42% / 72% 72% 28% 28%;
  background:radial-gradient(ellipse at 50% 82%, #FFF6CC 0%, #FFD34D 32%, #F4952F 60%, rgba(200,80,20,.35) 84%, transparent 100%);
  filter:blur(1.8px);opacity:.9;
}
.bi-smoke{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(92,86,80,.42) 0%,rgba(92,86,80,0) 70%);filter:blur(4px);pointer-events:none;}
.bi-ember{position:absolute;border-radius:999px;background:radial-gradient(circle,#FFE9A3 0%,#F4A83C 45%,#E5601F 75%,transparent 100%);pointer-events:none;}
.bi-ash{position:absolute;border-radius:40% 60% 55% 45%;background:#4A443E;pointer-events:none;}
/* the burn line: lit at bottom centre, spreads sideways, then climbs unevenly */
@keyframes biBurn{
  0%{clip-path:polygon(0 0,100% 0,100% 100%,91.7% 100%,83.3% 100%,75% 100%,66.7% 100%,58.3% 100%,50% 100%,41.7% 100%,33.3% 100%,25% 100%,16.7% 100%,8.3% 100%,0 100%);}
  8%{clip-path:polygon(0 0,100% 0,100% 100%,91.7% 100%,83.3% 100%,75% 100%,66.7% 98%,58.3% 95%,50% 92%,41.7% 96%,33.3% 99%,25% 100%,16.7% 100%,8.3% 100%,0 100%);}
  20%{clip-path:polygon(0 0,100% 0,100% 92%,91.7% 91%,83.3% 89%,75% 87%,66.7% 84%,58.3% 81%,50% 78%,41.7% 80%,33.3% 83%,25% 86%,16.7% 89%,8.3% 91%,0 93%);}
  38%{clip-path:polygon(0 0,100% 0,100% 67%,91.7% 66%,83.3% 64%,75% 63%,66.7% 59%,58.3% 57%,50% 55%,41.7% 56%,33.3% 58%,25% 60%,16.7% 63%,8.3% 66%,0 68%);}
  56%{clip-path:polygon(0 0,100% 0,100% 43%,91.7% 42%,83.3% 39%,75% 38%,66.7% 35%,58.3% 33%,50% 31%,41.7% 32%,33.3% 34%,25% 36%,16.7% 40%,8.3% 41%,0 44%);}
  74%{clip-path:polygon(0 0,100% 0,100% 19%,91.7% 18%,83.3% 16%,75% 14%,66.7% 12%,58.3% 11%,50% 9%,41.7% 10%,33.3% 11%,25% 13%,16.7% 15%,8.3% 18%,0 20%);}
  88%{clip-path:polygon(0 0,100% 0,100% 2%,91.7% 1%,83.3% 0%,75% -2%,66.7% -3%,58.3% -4%,50% -5%,41.7% -4%,33.3% -4%,25% -3%,16.7% -2%,8.3% 0%,0 2%);}
  100%{clip-path:polygon(0 0,100% 0,100% -13%,91.7% -15%,83.3% -12%,75% -16%,66.7% -13%,58.3% -17%,50% -15%,41.7% -18%,33.3% -14%,25% -17%,16.7% -13%,8.3% -16%,0 -12%);}
}
/* the front (char band + flames) climbs in step with biBurn's average line */
@keyframes biFront{
  0%{bottom:-8%;opacity:0;}
  4%{opacity:1;}
  8%{bottom:-3%;}
  20%{bottom:11%;}
  38%{bottom:36%;}
  56%{bottom:61%;}
  74%{bottom:84%;}
  88%{bottom:99%;}
  96%{opacity:1;}
  100%{bottom:110%;opacity:0;}
}
@keyframes biFlick{
  0%,100%{transform:scale(1,1) skewX(0);opacity:.9;}
  25%{transform:scale(.93,1.2) skewX(-3deg);opacity:1;}
  50%{transform:scale(1.06,.84) skewX(2.5deg);opacity:.8;}
  75%{transform:scale(.96,1.12) skewX(-2deg);opacity:.95;}
}
@keyframes biEmber{
  0%{transform:translate(0,0) scale(1);opacity:1;}
  100%{transform:translate(var(--dx),-130px) scale(.4);opacity:0;}
}
@keyframes biSmoke{
  0%{transform:translate(0,0) scale(.7);opacity:0;}
  14%{opacity:.5;}
  100%{transform:translate(var(--sx),-120px) scale(2.4);opacity:0;}
}
@keyframes biAsh{
  0%{transform:translate(0,0) rotate(0deg);opacity:.8;}
  100%{transform:translate(var(--dx),95px) rotate(220deg);opacity:0;}
}
.bi-watch{font-family:'Caveat',cursive;font-weight:600;font-style:normal;font-size:24px;color:var(--ink-2);text-align:center;margin-top:18px;animation:biWatch 1.4s ease .8s both;}
@keyframes biWatch{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.bi-hold{
  position:relative;overflow:hidden;margin-top:14px;text-align:center;padding:15px;
  background:#fff;border:1.5px solid var(--ink);border-radius:14px;box-shadow:4px 4px 0 var(--yellow-deep);
  cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none;
}
.bi-hold .bi-hold-fill{position:absolute;inset:0;width:0;background:var(--yellow);transition:width .25s ease;}
.bi-hold.held .bi-hold-fill{width:100%;transition:width 1.4s linear;}
.bi-hold .bi-hold-t{position:relative;font-family:'Fraunces',serif;font-weight:700;font-size:16px;color:var(--ink);}
@media (prefers-reduced-motion:reduce){
  .bi-stage.burning .bi-paper-read{animation-duration:.1s;animation-delay:6.9s;opacity:0;transition:opacity 6.9s ease;}
  .bi-front,.bi-char,.bi-smoke,.bi-ember,.bi-ash{display:none;}
}

/* ---- the weather report (daily emotional check-in) ---- */
.wx-scene{position:relative;height:150px;border-radius:18px;border:1.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);overflow:hidden;margin-top:16px;}
.wx-scene.mini{height:84px;}
.wx-clear{background:linear-gradient(180deg,#8EC9E8 0%,#C8E4F2 55%,#FBE99B 100%);}
.wx-partly{background:linear-gradient(180deg,#9BC4DC 0%,#C9DDE8 60%,#E9EFE3 100%);}
.wx-fog{background:linear-gradient(180deg,#C9CFCC 0%,#DDE1DC 50%,#E8E9E2 100%);}
.wx-drizzle{background:linear-gradient(180deg,#93A6B3 0%,#B4C3CC 60%,#CDD6D8 100%);}
.wx-storm{background:linear-gradient(180deg,#3E4A56 0%,#5A6873 60%,#78848B 100%);}
.wx-wind{background:linear-gradient(180deg,#A3C4C0 0%,#C4D8D2 60%,#E0E8DD 100%);}
.wx-night{background:linear-gradient(180deg,#1E2A44 0%,#33415E 60%,#4A5878 100%);}
.wx-sun{position:absolute;right:18%;top:18%;width:44px;height:44px;border-radius:999px;background:#F4D85E;box-shadow:0 0 34px 14px rgba(244,216,94,.55);animation:wxSun 4s ease-in-out infinite;}
.wx-sun.small{width:30px;height:30px;right:12%;top:14%;box-shadow:0 0 22px 9px rgba(244,216,94,.45);}
.wx-cloud{position:absolute;background:rgba(255,255,255,.92);border-radius:999px;animation:wxDrift 7s ease-in-out infinite alternate;}
.wx-cloud::before{content:"";position:absolute;left:18%;top:-46%;width:55%;height:110%;background:inherit;border-radius:999px;}
.wx-cloud.grey{background:rgba(226,230,229,.95);}
.wx-cloud.dark{background:rgba(94,104,112,.92);}
.wx-drop{position:absolute;top:-12px;width:1.5px;height:11px;background:rgba(255,255,255,.75);border-radius:2px;}
.wx-drop.heavy{height:15px;background:rgba(224,232,238,.8);}
.wx-fogband{position:absolute;height:16px;border-radius:999px;background:rgba(255,255,255,.55);filter:blur(4px);animation:wxFog 6s ease-in-out infinite alternate;}
.wx-gust{position:absolute;height:2px;border-radius:999px;background:rgba(255,255,255,.75);animation:wxGust 2.6s ease-in-out infinite;}
.wx-star{position:absolute;width:3px;height:3px;border-radius:999px;background:#FBE99B;animation:wxTwinkle 2.4s ease-in-out infinite;}
.wx-moon{position:absolute;right:16%;top:16%;width:34px;height:34px;border-radius:999px;background:#FBE99B;box-shadow:0 0 24px 8px rgba(251,233,155,.35), inset -9px -6px 0 2px #E5C73C;}
.wx-flash{position:absolute;inset:0;background:rgba(255,255,240,.0);animation:wxFlash 6s ease-in-out infinite;}
@keyframes wxSun{0%,100%{transform:scale(1);}50%{transform:scale(1.06);}}
@keyframes wxDrift{from{transform:translateX(-8px);}to{transform:translateX(14px);}}
@keyframes wxRain{from{transform:translateY(-14px);opacity:0;}12%{opacity:1;}to{transform:translateY(170px);opacity:.25;}}
@keyframes wxFog{from{transform:translateX(-12px);opacity:.45;}to{transform:translateX(16px);opacity:.75;}}
@keyframes wxGust{0%{transform:translateX(-16px);opacity:0;}30%{opacity:.9;}100%{transform:translateX(46px);opacity:0;}}
@keyframes wxTwinkle{0%,100%{opacity:.35;}50%{opacity:1;}}
@keyframes wxFlash{0%,91%,95%,100%{background:rgba(255,255,240,0);}92.5%{background:rgba(255,255,240,.28);}93.5%{background:rgba(255,255,240,.06);}94%{background:rgba(255,255,240,.2);}}
.wx-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;}
.wx-tile{position:relative;border:1.5px solid var(--ink);border-radius:16px;padding:14px 12px 12px;cursor:pointer;box-shadow:2.5px 2.5px 0 var(--ink);overflow:hidden;}
.wx-tile:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink);}
.wx-tile .wx-te{font-size:24px;}
.wx-tile .wx-tn{font-family:'Fraunces',serif;font-weight:800;font-size:16.5px;letter-spacing:-0.01em;text-transform:lowercase;color:var(--ink);margin-top:6px;}
.wx-tile .wx-tm{font-family:'Work Sans';font-size:11.5px;line-height:1.35;color:var(--ink-2);margin-top:3px;}
.wx-storm .wx-tn,.wx-storm .wx-tm,.wx-night .wx-tn,.wx-night .wx-tm{color:#FDF8E4;}
.wx-storm .wx-tm,.wx-night .wx-tm{opacity:.85;}
.wx-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.wx-chips.inner{margin-top:10px;padding:12px;background:rgba(255,255,255,.7);border:1.25px dashed rgba(26,26,26,.3);border-radius:14px;}
.wx-chip{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.04em;text-transform:lowercase;color:var(--ink);background:#fff;border:1.5px solid var(--ink);border-radius:999px;padding:8px 13px;cursor:pointer;}
.wx-chip.sel{background:var(--yellow);box-shadow:2px 2px 0 var(--ink);}
.wx-chip.core{background:var(--sage);}
.wx-chip.core.sel{background:var(--yellow);}
.wx-sofar{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:lowercase;color:var(--ink-2);margin-top:10px;}
.wx-note{width:100%;margin-top:14px;font-family:'Work Sans';font-size:14px;color:var(--ink);background:#fff;border:1.5px solid var(--ink);border-radius:12px;padding:12px 14px;outline:none;}
.wx-today{margin-top:14px;background:#fff;border:1.5px solid var(--ink);border-radius:16px;box-shadow:3px 3px 0 var(--sage-deep);padding:14px 16px;}
.wx-today .wx-tt{font-family:'Fraunces',serif;font-weight:800;font-size:19px;text-transform:lowercase;color:var(--ink);}
.wx-today .wx-tw{font-family:'Work Sans';font-size:13px;line-height:1.5;color:var(--ink-2);margin-top:5px;}
.wx-today .wx-tw strong{color:var(--ink);font-weight:600;}
.wx-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:4px;}
.wx-cell{aspect-ratio:1;border-radius:9px;background:rgba(255,255,255,.6);border:1.25px solid rgba(26,26,26,.14);display:flex;align-items:center;justify-content:center;}
.wx-cell.blank{background:transparent;border:none;}
.wx-cell.logged{background:#fff;border-color:var(--ink);}
.wx-cell.today{box-shadow:2px 2px 0 var(--yellow-deep);border-color:var(--ink);}
.wx-cell .wx-ce{font-size:15px;}
.wx-cell .wx-cd{font-family:'DM Mono',monospace;font-size:9.5px;color:rgba(26,26,26,.4);}
.wx-count{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.06em;color:var(--ink-2);margin-top:10px;}

/* ---- weather report redesign (2026-07-10): one-form + sky scrubber ---- */
.wx-neutral{background:linear-gradient(180deg,#E9E6D6 0%,#F3EFDD 60%,#FAF3DC 100%);display:flex;align-items:center;justify-content:center;}
.wx-ask{font-family:'Fraunces',serif;font-weight:700;font-size:17px;letter-spacing:-0.01em;text-transform:lowercase;color:var(--ink-2);opacity:.75;}
.wx-dots{display:flex;gap:9px;justify-content:space-between;margin-top:12px;}
.wx-dot{flex:1;aspect-ratio:1;max-width:52px;border-radius:999px;border:1.5px solid rgba(26,26,26,.35);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;transition:transform .12s ease;}
.wx-dot .wxd-e{font-size:19px;position:relative;z-index:1;}
.wx-dot.sel{border-color:var(--ink);box-shadow:2.5px 2.5px 0 var(--ink);transform:translateY(-2px);}
.wxd-clear{background:linear-gradient(180deg,#8EC9E8,#FBE99B);}
.wxd-partly{background:linear-gradient(180deg,#9BC4DC,#E9EFE3);}
.wxd-fog{background:linear-gradient(180deg,#C9CFCC,#E8E9E2);}
.wxd-drizzle{background:linear-gradient(180deg,#93A6B3,#CDD6D8);}
.wxd-storm{background:linear-gradient(180deg,#3E4A56,#78848B);}
.wxd-wind{background:linear-gradient(180deg,#A3C4C0,#E0E8DD);}
.wxd-night{background:linear-gradient(180deg,#1E2A44,#4A5878);}
.wx-caption{font-family:'Work Sans';font-size:13px;color:var(--ink-2);margin-top:10px;}
.wx-caption strong{font-family:'Fraunces',serif;font-weight:800;font-size:15px;color:var(--ink);text-transform:lowercase;}
.wx-caption.dim{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.12em;text-transform:lowercase;color:rgba(26,26,26,.45);}
.wx-hint{font-family:'Work Sans';font-size:12.5px;line-height:1.45;color:var(--ink-2);margin-top:2px;}
.wx-hint strong{color:var(--ink);font-weight:600;}
.wx-note-line{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.08em;text-transform:lowercase;color:var(--ink-2);margin-top:16px;text-align:center;}

/* ---- delete own community post (two-tap confirm) ---- */
.post-del{margin-left:auto;}
.post-del.arm{color:#B23B2E;font-weight:600;}

/* ---- request-a-recipe card under the books grid (moved from settings) ---- */
.req-recipe{display:flex;align-items:center;gap:12px;margin-top:14px;background:#fff;border:1.5px solid var(--ink);border-radius:16px;box-shadow:3px 3px 0 var(--yellow-deep);padding:13px 15px;cursor:pointer;}
.req-recipe:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--yellow-deep);}
.req-recipe .rq-ic{font-size:22px;}
.req-recipe .rq-n{font-family:'Fraunces',serif;font-weight:800;font-size:15.5px;color:var(--ink);}
.req-recipe .rq-m{font-family:'Work Sans';font-size:12px;line-height:1.4;color:var(--ink-2);margin-top:2px;}
.req-recipe .chev{margin-left:auto;font-size:18px;color:var(--ink-2);}
