/* ═══════════════════════════════════════════════
   @font-face — Quicksand (8 weights, OTF/TTF)
   Path relative to this HTML file
   ═══════════════════════════════════════════════ */
@font-face{font-family:'Quicksand';src:url('assets/fonts/Quicksand-Light.otf') format('opentype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Quicksand';src:url('assets/fonts/Quicksand-LightItalic.otf') format('opentype');font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:'Quicksand';src:url('assets/fonts/Quicksand-Regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Quicksand';src:url('assets/fonts/Quicksand-Italic.otf') format('opentype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Quicksand';src:url('assets/fonts/Quicksand-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Quicksand';src:url('assets/fonts/Quicksand-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Quicksand';src:url('assets/fonts/Quicksand-Bold.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Quicksand';src:url('assets/fonts/Quicksand-BoldItalic.otf') format('opentype');font-weight:700;font-style:italic;font-display:swap}

/* ═══════════════════════════════════════════════
   DESIGN TOKENS — Matched to reference Lactoclub
   ═══════════════════════════════════════════════ */
:root{
  --blue:#003da6;--blue-dark:#0038aa;--blue-bg:#004da9;
  --blue-light:#dbedff;--blue-pale:#e3f5ff;
  --gold1:#cbab64;--gold2:#ffed9c;--gold3:#f8e392;
  --gold4:#efd686;--gold5:#f0d894;--gold6:#bb9a56;--gold7:#f3d98c;
  --gold:linear-gradient(90deg,var(--gold1) 0%,var(--gold2) 31%,var(--gold3) 43%,var(--gold4) 57%,var(--gold5) 74%,var(--gold6) 87%,var(--gold7) 100%);
  --gold-stepper:linear-gradient(153deg,#fbf0b9 0%,#efc65b 32%,#fefacb 75%,#f9d371 99%);
  --white:#fffffc;--off-white:#fff;
  --accent:#10a6ed;--border-light:#aee3ff;
  --r-btn:42px;--r-card:24px;--r-pill:50rem;
  --shadow-btn:0px 4px 4px 0px rgba(7,29,76,.4);
  --shadow-card:0 .5rem 1rem rgba(0,0,0,.15);
  --shadow-lg:0 1rem 3rem rgba(0,0,0,.175);
  --font:Quicksand,sans-serif;
  --holo-cyan:#00e5ff;--holo-blue:#2979ff;--holo-gold:#f9d371;
  --mirror-bg:#050508;--holo-glow:0 0 20px rgba(0,229,255,.45),0 0 60px rgba(0,229,255,.12);
  --divider-w:6px;--display-w:calc(100vh * 9 / 16);
}

/* ═══════════════════════════════════════════════
   RESET & BASE
   ═══════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{width:100%;height:100%;overflow:hidden;background:#000;font-family:var(--font);font-size:16px;font-weight:400;line-height:1.5;color:#212529;-webkit-font-smoothing:antialiased}

#app{
  width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(180deg,var(--blue) 0%,var(--blue) 30%,rgba(0,61,166,0) 80%),url('assets/images/bg-pattern.png');
  background-size:cover;background-position:center;background-repeat:no-repeat;
  background-color:var(--blue-bg);
  position:relative;
}

/* ═══════════════════════════════════════════════
   TOPBAR (simplified navbar)
   ═══════════════════════════════════════════════ */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 32px;flex-shrink:0;position:relative;z-index:10;
  background:var(--blue);
}
.brand{display:flex;align-items:center;gap:8px}
.brand-logo{height:32px;width:auto}
.brand-tag{font-size:9px;font-weight:700;color:rgba(255,255,255,.6);letter-spacing:2px;text-transform:uppercase}

/* ═══════════════════════════════════════════════
   SCREEN SWITCHING
   ═══════════════════════════════════════════════ */
.screen{display:none;flex:1;position:relative;z-index:1;overflow:hidden}
.screen.active{display:flex;flex-direction:row;align-items:stretch}
.slide-left{animation:slideLeft .35s cubic-bezier(.4,0,.2,1)}
.slide-right{animation:slideRight .35s cubic-bezier(.4,0,.2,1)}
@keyframes slideLeft{from{opacity:0;transform:translateX(32px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideRight{from{opacity:0;transform:translateX(-32px)}to{opacity:1;transform:translateX(0)}}
@keyframes popBounce{0%{opacity:0;transform:scale(.3)}60%{opacity:1;transform:scale(1.08)}80%{transform:scale(.94)}100%{transform:scale(1)}}
.pop-in{animation:popBounce .5s cubic-bezier(.4,0,.2,1) both}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.breathe{animation:breathe 2.5s ease-in-out infinite}

/* split panels */
.panel-l{flex:1 1 44%;display:flex;align-items:center;justify-content:center;padding:clamp(16px,3vw,28px) clamp(12px,2vw,20px) clamp(16px,3vw,28px) clamp(20px,3vw,36px)}
.panel-r{flex:1 1 56%;display:flex;flex-direction:column;justify-content:flex-start;padding:clamp(16px,3vh,28px) clamp(24px,4vw,40px) clamp(16px,3vh,28px) clamp(24px,4vw,40px);overflow:hidden;min-height:0}
/* vertical centering for landing */
#s-land .panel-r{justify-content:center}

/* ═══════════════════════════════════════════════
   BACK LINK
   ═══════════════════════════════════════════════ */
.back-link{
  display:inline-flex;align-items:center;gap:6px;color:rgba(255,255,255,.85);
  font-size:clamp(14px,2vh,17px);font-weight:700;cursor:pointer;transition:color .2s;
  margin-bottom:8px;padding:10px 0;width:fit-content;text-decoration:none;
}
.back-link:hover{color:var(--white)}
.back-link svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}

/* ═══════════════════════════════════════════════
   STEPPER (3 steps, gold active)
   ═══════════════════════════════════════════════ */
.qhdr{width:100%;max-width:80%;margin:0 auto}
.stepper{display:flex;align-items:center;margin-bottom:clamp(8px,2.5vh,20px);width:100%}
.stepper-line-wrap{position:relative;flex:1;height:4px;background:rgba(255,255,255,.2);border-radius:2px}
.stepper-line-fill{position:absolute;left:0;top:0;height:100%;background:var(--gold-stepper);border-radius:2px;transition:width .4s}
.step-dot{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}
.step-num{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;transition:all .3s;color:rgba(255,255,255,.5);background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.25)}
.step-num.done{background:var(--gold-stepper);color:var(--blue);border-color:transparent}
.step-num.active{background:var(--gold-stepper);color:var(--blue);border-color:transparent;box-shadow:0 0 0 6px rgba(239,198,91,.25)}
.step-label{font-size:clamp(13px,1.8vh,15px);font-weight:700;color:rgba(255,255,255,.8);text-align:center;line-height:1.3;white-space:nowrap}
.step-label.active{color:#fff}

/* ═══════════════════════════════════════════════
   QUIZ HEADER (tag + title)
   ═══════════════════════════════════════════════ */
.qcenter{flex:1;display:flex;flex-direction:column;justify-content:center;min-height:0;width:100%;max-width:80%;margin:0 auto;gap:clamp(4px,1vh,8px)}
.qtag{display:flex;justify-content:center;align-items:center;gap:6px;margin-bottom:4px}
.qtag-pill{font-size:14px;font-weight:700;color:var(--white);background:rgba(255,255,255,.15);border-radius:var(--r-pill);padding:6px 18px;letter-spacing:.5px}
.qtitle{font-size:clamp(22px,3.6vh,30px);font-weight:700;color:var(--white);line-height:1.25;margin-bottom:2px;text-align:center}
.qsub{font-size:clamp(16px,2vh,18px);font-weight:500;color:rgba(255,255,255,.85);line-height:1.5;margin-bottom:clamp(8px,2vh,20px);max-width:480px;text-align:left}

/* ═══════════════════════════════════════════════
   OPTION CARDS (solid, reference style)
   ═══════════════════════════════════════════════ */
.opts{display:flex;flex-direction:column;gap:clamp(6px,1.2vh,12px);flex:1;justify-content:center;margin-top:4px;min-height:0}
/* horizontal row for Q3/Q4: 4 square cards */
.opts-row{flex-direction:row;flex-wrap:nowrap;align-items:stretch;justify-content:stretch;gap:10px;flex:1;max-height:60%}
.opts-row .opt{flex:1;flex-direction:column;gap:12px;text-align:center;padding:clamp(16px,2.5vh,24px) 14px;border-radius:20px;justify-content:center;min-height:0}
.opts-row .opt .opt-k{width:40px;height:40px;border-radius:50%;font-size:18px;margin:0 auto;flex-shrink:0;font-weight:800}
.opts-row .opt .opt-t{font-size:clamp(15px,2vh,18px);line-height:1.35;font-weight:600}
.opts-row .opt .opt-warn{font-size:22px;margin-top:6px}
/* Q5 safety: circle top, text center */
.opts-safety .opt{justify-content:flex-start}
.opts-safety .opt .opt-t{flex:1;display:flex;align-items:center;justify-content:center}
/* ═══════════════════════════════════════════════
   BRISTOL DOT SLIDER (reference: Swiper shape-dot)
   ═══════════════════════════════════════════════ */
.bristol-slider{display:flex;flex-direction:column;align-items:center;margin-top:clamp(12px,2vh,20px);margin-bottom:clamp(12px,2vh,20px);touch-action:pan-x;user-select:none;-webkit-user-select:none;cursor:pointer;width:100%}
.bristol-desc{font-size:clamp(18px,2.6vh,24px);font-weight:700;color:#fff;text-align:center;margin-bottom:clamp(16px,2.5vh,24px);min-height:1.6em;width:100%;display:block}
.bristol-track-wrap{position:relative;width:100%;padding:clamp(20px,3vh,32px) 0}
.bristol-track-line{position:absolute;left:0;right:0;top:50%;height:10px;background:#025ac1;border-radius:10px;transform:translateY(-50%);box-shadow:0 2px 8px 0 rgba(7,29,76,.4),0 0 10px rgba(64,176,240,.6);pointer-events:none}
.bristol-dots{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2;padding:0 4px;width:100%}
.bristol-dot{width:48px;height:48px;border-radius:50%;background:transparent;position:relative;z-index:3;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:none}
.bristol-dot::after{content:'';width:12px;height:12px;border-radius:50%;background:#fff;transition:all .3s cubic-bezier(.4,0,.2,1)}
.bristol-dot::before{content:'';position:absolute;inset:-14px}
.bristol-dot.active::after{width:32px;height:32px;background:linear-gradient(153deg,#fbf0b9 0%,#efc65b 32%,#fefacb 75%,#f9d371 99%);outline:8px solid rgba(64,176,240,.6);box-shadow:0 2px 8px 0 rgba(7,29,76,.6)}
.bristol-labels{display:flex;justify-content:space-between;width:100%;font-size:clamp(15px,2vh,18px);font-weight:700;color:rgba(255,255,255,.75);margin-top:8px}
.opt{
  display:flex;align-items:center;gap:12px;
  background:rgba(255,255,255,.08);border:2px solid rgba(219,237,255,.25);
  border-radius:16px;padding:clamp(10px,1.8vh,14px) 16px;cursor:pointer;
  transition:all .2s;font-family:var(--font);
}
.opt:hover{background:rgba(255,255,255,.14);border-color:rgba(219,237,255,.5)}
.opt:active{transform:scale(.99)}
.opt.sel{
  background:rgba(255,255,255,.94);border-color:transparent;
  background-image:linear-gradient(#fff,#fff),var(--gold);
  background-origin:border-box;background-clip:padding-box,border-box;
  box-shadow:var(--shadow-btn);
}
.opt-k{
  width:34px;height:34px;border-radius:10px;
  background:rgba(255,255,255,.85);color:var(--blue);
  font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:all .2s;
}
.opt.sel .opt-k{background:var(--gold);color:var(--blue)}
.opt-t{font-size:15px;font-weight:600;color:rgba(255,255,255,.9);line-height:1.4;transition:color .2s}
.opt.sel .opt-t{color:var(--blue-dark)}
.opt-warn{font-size:14px;color:#ff8a80;font-weight:700;margin-left:auto;flex-shrink:0;display:none}
.opt.sel .opt-warn[data-warn="1"]{display:block}

/* ═══════════════════════════════════════════════
   FOOTER NAV (back + next buttons)
   ═══════════════════════════════════════════════ */
.qfoot{display:flex;align-items:center;gap:10px;padding-top:clamp(10px,2vh,20px);flex-shrink:0;margin-top:auto;width:100%;max-width:80%;margin-left:auto;margin-right:auto}
.btn-back{
  width:44px;height:44px;border-radius:50%;border:2px solid rgba(255,255,255,.25);
  background:transparent;color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;
}
.btn-back:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.5)}
.btn-back svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}

.btn-next{
  flex:1;padding:16px 28px;border-radius:var(--r-btn);
  border:2px solid transparent;font-family:var(--font);font-weight:700;font-size:16px;
  cursor:pointer;transition:all .2s;
}
.btn-next.off{
  background:rgba(255,255,255,.1);color:rgba(255,255,255,.35);cursor:not-allowed;border-color:transparent;
}
.btn-next.on{
  background-image:linear-gradient(var(--blue),var(--blue)),var(--gold);
  background-origin:border-box;background-clip:padding-box,border-box;
  color:var(--white);box-shadow:var(--shadow-btn);
}
.btn-next.on:hover{opacity:.9;transform:translateY(-1px)}
.btn-next.on:active{transform:translateY(0)}

/* ═══════════════════════════════════════════════
   LANDING PAGE
   ═══════════════════════════════════════════════ */
.land-visual{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.land-visual img{max-width:90%;max-height:80%;object-fit:contain;filter:drop-shadow(0 8px 32px rgba(0,0,0,.3))}
.land-hero{display:flex;flex-direction:column;justify-content:center;gap:16px;max-width:440px}
.land-eyebrow{display:inline-flex;align-items:center;gap:6px;color:rgba(255,255,255,.7);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}
.land-eyebrow::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--gold-stepper)}
.land-logo{width:72%;height:auto;display:block;margin-left:-3%}
.land-h1{font-size:clamp(44px,7vh,56px);font-weight:700;color:var(--white);line-height:1.1;letter-spacing:-.5px}
.land-h1 em{font-style:normal;background:var(--gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.land-p{font-size:clamp(18px,2.4vh,22px);font-weight:500;color:rgba(255,255,255,.92);line-height:1.6;max-width:440px}
.land-note{font-size:clamp(14px,1.8vh,16px);font-weight:500;color:rgba(255,255,255,.72);line-height:1.5;border-left:2px solid rgba(255,255,255,.4);padding-left:12px}
.btn-cta{
  display:inline-flex;align-items:center;gap:10px;padding:16px 40px;
  border-radius:var(--r-btn);border:2px solid transparent;
  font-family:var(--font);font-weight:700;font-size:clamp(17px,2.2vh,20px);cursor:pointer;
  background-image:linear-gradient(var(--blue),var(--blue)),var(--gold);
  background-origin:border-box;background-clip:padding-box,border-box;
  color:var(--white);box-shadow:var(--shadow-btn);transition:all .2s;width:fit-content;
}
.btn-cta:hover{opacity:.9;transform:translateY(-2px)}
.btn-cta svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}

/* ═══════════════════════════════════════════════
   LEFT PANEL VISUALS
   ═══════════════════════════════════════════════ */
.viz-card{
  width:100%;max-width:380px;height:100%;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);
  border-radius:var(--r-card);padding:clamp(16px,2.5vh,28px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:16px;backdrop-filter:blur(8px);
}

/* Potty Visual (toilet bowl + poop sketch overlay) */
.potty-visual{position:relative;overflow:hidden;width:100%;max-width:300px;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;border-radius:20px;margin:0 auto}
.potty-visual .toilet-bowl-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;z-index:1}
.potty-visual .poop-sketch{position:relative;z-index:2;width:55%;height:auto;object-fit:contain;transition:opacity .3s}
.bris-meta{text-align:center}
.bris-type{font-size:18px;font-weight:700;background:var(--gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.bris-desc{font-size:15px;font-weight:600;color:var(--white);margin-top:2px}

/* Slider */
.slider-wrap{width:100%;max-width:280px}
.cslider{width:100%;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;outline:none;cursor:pointer;background:rgba(255,255,255,.15)}
.cslider::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;background:var(--gold-stepper);border:3px solid #fff;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.35);transition:transform .15s}
.cslider::-webkit-slider-thumb:hover{transform:scale(1.1)}
.cslider::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:var(--gold-stepper);border:3px solid #fff;cursor:pointer}
.slbl{display:flex;justify-content:space-between;font-size:14px;color:rgba(255,255,255,.7);font-weight:600;margin-top:6px}

/* Color grid 3×2, bigger circles, centered */
.color-grid-container{position:relative;margin-bottom:0}
.color-grid{display:flex;flex-direction:row;justify-content:center;gap:clamp(14px,3vw,24px);align-items:center;padding:clamp(16px,2.5vh,28px) 0;width:100%}
.color-pin{position:absolute;top:-26px;z-index:10;pointer-events:none;transition:left .35s cubic-bezier(.4,0,.2,1),top .35s cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}
.color-pin svg{width:26px;height:34px}
.sw-color{width:clamp(56px,12%,80px);aspect-ratio:1;border-radius:50%;cursor:pointer;border:4px solid rgba(255,255,255,.5);transition:all .25s;position:relative;box-shadow:0 3px 12px rgba(0,0,0,.3);flex-shrink:0}
.sw-color:hover{transform:scale(1.06);border-color:#fff}
.sw-color.active{border-color:#fff;transform:scale(1.1);box-shadow:0 0 0 12px rgba(255,255,255,.2),0 3px 12px rgba(0,0,0,.3)}
.color-name-label{font-size:22px;font-weight:700;color:var(--white);text-align:center;margin-bottom:0}
.color-flag{font-size:11px;color:#ff8a80;font-weight:700;text-align:center;min-height:16px}

/* Big number */
.bignum-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center}
.bignum-lbl{font-size:16px;font-weight:700;color:rgba(255,255,255,.85);text-transform:uppercase;letter-spacing:2px}
.bignum-val{font-size:120px;font-weight:700;line-height:1;letter-spacing:-3px;background:var(--gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.bignum-unit{font-size:36px;font-weight:700;color:var(--white);margin-top:-6px}
.bignum-placeholder{font-size:48px;font-weight:600;color:rgba(255,255,255,.85);text-align:center;line-height:1.3}

/* Reminder — inline, no card wrapper */
.rem-pill{
  display:flex;align-items:center;gap:12px;
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:14px;margin-top:14px;width:100%;max-width:280px;
}
.rem-pill-svg{flex-shrink:0;border-radius:8px;overflow:hidden;width:72px;height:52px;object-fit:contain}
.rem-pill-txt{display:flex;flex-direction:column;gap:4px}
.rem-pill-main{font-size:20px;font-weight:700;color:var(--white);line-height:1.3}
.rem-pill-sub{font-size:16px;font-weight:500;color:rgba(255,255,255,.82);line-height:1.4}

/* Safety zone */
.safety-zone{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}
.safety-icon{font-size:80px;filter:drop-shadow(0 4px 16px rgba(0,0,0,.35))}
.safety-ztitle{font-size:22px;font-weight:700;color:var(--white)}
.safety-zsub{font-size:clamp(18px,2.4vh,22px);font-weight:500;color:rgba(255,255,255,.88);line-height:1.6;max-width:360px}

/* ═══════════════════════════════════════════════
   RESULT PAGE — Booth redirect
   ═══════════════════════════════════════════════ */
#s-res{position:relative;overflow:hidden}
.res-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;z-index:0;
}
.res-overlay{
  position:relative;z-index:2;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:24px;width:100%;height:100%;
  background:rgba(0,0,0,.45);
  padding:clamp(20px,4vw,48px);
  text-align:center;
}
.res-msg{
  font-size:clamp(28px,5vh,40px);font-weight:700;color:var(--white);
  line-height:1.3;max-width:360px;
}
.btn-rst{
  padding:14px 40px;border-radius:var(--r-btn);
  border:2px solid transparent;
  font-family:var(--font);font-weight:700;font-size:16px;
  cursor:pointer;transition:all .2s;
  background-image:linear-gradient(var(--blue),var(--blue)),var(--gold);
  background-origin:border-box;background-clip:padding-box,border-box;
  color:var(--white);box-shadow:var(--shadow-btn);
}
.btn-rst:hover{opacity:.9;transform:translateY(-2px)}
.btn-rst:active{transform:translateY(0)}
.btn-rst.off{
  background:rgba(255,255,255,.1);color:rgba(255,255,255,.35);
  cursor:not-allowed;box-shadow:none;pointer-events:none;
}

.disc{font-size:11px;font-weight:500;color:rgba(255,255,255,.55);text-align:center;line-height:1.5;padding:4px 0;max-width:280px}

/* ═══════════════════════════════════════════════
   RESPONSIVE FINE-TUNING
   ═══════════════════════════════════════════════ */
@media(max-width:900px){
  .screen.active{flex-direction:column}
  .panel-l{flex:0 0 auto;padding:20px 20px 8px}
  .panel-r{flex:1;padding:12px 20px 20px}
  .land-h1{font-size:36px}
  .bignum-val{font-size:72px}
  .viz-card{max-width:100%}
}

/* ═══════════════════════════════════════════════
   SPLIT LAYOUT — Smart Mirror Display + Quiz
   ═══════════════════════════════════════════════ */
#sim-app{display:flex;flex-direction:row;width:100vw;height:100vh;background:#000}

/* ─── Main Display (left panel) ─── */
#main-display{width:var(--display-w);height:100vh;flex-shrink:0;position:relative;overflow:hidden;background:var(--mirror-bg)}
.smart-mirror-frame{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;z-index:1}
.mirror-border{position:absolute;inset:8px;border:1px solid rgba(255,255,255,.06);border-radius:4px;box-shadow:inset 0 0 30px rgba(0,0,0,.6),inset 0 0 8px rgba(255,255,255,.02);z-index:1;pointer-events:none}
.display-content{position:relative;z-index:2;width:100%;max-width:360px;aspect-ratio:9/16;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 28px}

/* display state toggles */
.md-state{display:none;width:100%;flex-direction:column;align-items:center;justify-content:center}
.md-state.active{display:flex}

/* ─── Hologram Intro ─── */
#md-intro,#md-questions{position:absolute;inset:0;z-index:5}
/* Question hologram overlay — narrower container */
.questions-overlay{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px 16px;max-width:300px;margin:0 auto}
.holo-q-visual{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%}
.holo-q-meta{text-align:center;width:100%}

/* Hologram potty visual (Q1, Q2) */
.holo-potty{position:relative;width:100%;max-width:240px;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;margin:0 auto}
.holo-potty .holo-toilet-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:1;filter:url(#neon-glow)}
.holo-potty .holo-poop-sketch{position:relative;z-index:1;width:50%;height:auto;object-fit:contain;filter:url(#neon-glow)}

/* Hologram Bristol type/desc (Q1) */
.holo-bris-type{font-size:18px;font-weight:700;color:var(--holo-gold);text-shadow:0 0 2px #fff,0 0 12px var(--blue)}
.holo-bris-desc{font-size:15px;font-weight:600;color:#fff;text-shadow:0 0 1px #fff,0 0 10px var(--blue);margin-top:2px}

/* Hologram color name (Q2) */
.holo-color-name{font-size:22px;font-weight:700;color:#fff;text-shadow:0 0 2px #fff,0 0 15px var(--blue)}
.holo-color-flag{font-size:11px;color:#ff8a80;font-weight:700;text-shadow:0 0 4px rgba(255,80,80,.5);margin-top:2px}

/* Hologram big number (Q3, Q4) */
.holo-bignum-wrap{text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}
.holo-bignum-lbl{font-size:14px;font-weight:700;color:rgba(255,255,255,.85);text-transform:uppercase;letter-spacing:2px;text-shadow:0 0 1px #fff,0 0 8px var(--blue)}
.holo-bignum-val{font-size:clamp(64px,8vw,100px);font-weight:800;line-height:1;color:#fff;text-shadow:0 0 2px #fff,0 0 25px var(--blue),0 0 50px var(--blue)}
.holo-bignum-unit{font-size:22px;font-weight:700;color:var(--holo-gold);text-shadow:0 0 1px #fff,0 0 10px var(--blue);margin-top:-4px}

/* Hologram placeholder (Q3, Q4 before selection) */
.holo-placeholder{font-size:32px;font-weight:600;color:rgba(255,255,255,.7);text-align:center;line-height:1.3;text-shadow:0 0 1px #fff,0 0 10px var(--blue)}

/* Hologram reminder pill (Q4) */
.holo-rem-pill{display:flex;align-items:center;gap:10px;border-top:1px solid rgba(255,255,255,.15);padding-top:10px;margin-top:10px;width:100%;max-width:240px}
.holo-rem-img{width:48px;height:36px;object-fit:contain;border-radius:6px;filter:drop-shadow(0 0 6px rgba(0,61,166,.5))}
.holo-rem-txt{display:flex;flex-direction:column;gap:1px}
.holo-rem-type{font-size:15px;font-weight:700;color:#fff;text-shadow:0 0 1px #fff,0 0 8px var(--blue)}
.holo-rem-desc{font-size:13px;font-weight:500;color:rgba(255,255,255,.7)}

/* Hologram safety (Q5) */
.holo-safety-icon{font-size:64px;filter:drop-shadow(0 0 10px rgba(0,61,166,.6)) drop-shadow(0 0 25px rgba(0,61,166,.3))}
.holo-safety-title{font-size:22px;font-weight:700;color:#fff;text-shadow:0 0 2px #fff,0 0 15px var(--blue);margin-top:4px}
.holo-safety-sub{font-size:15px;font-weight:500;color:rgba(255,255,255,.85);line-height:1.5;max-width:260px;text-align:center;text-shadow:0 0 1px rgba(255,255,255,.3),0 0 8px var(--blue);margin-top:4px}
.holo-safety-choice{font-size:clamp(20px,2.8vh,28px);font-weight:700;color:var(--holo-gold);text-align:center;text-shadow:0 0 2px #fff,0 0 15px var(--blue);margin-top:12px;line-height:1.3}

/* Hide tablet left panel during questions */
#s-q1 .panel-l,#s-q2 .panel-l,#s-q3 .panel-l,#s-q4 .panel-l,#s-q5 .panel-l{display:none}
#s-q1 .panel-r,#s-q2 .panel-r,#s-q3 .panel-r,#s-q4 .panel-r,#s-q5 .panel-r{flex:1 1 100%}
#md-intro.active,#md-questions.active{display:flex;align-items:center;justify-content:center}
.intro-video{height:100%;width:auto;aspect-ratio:9/16;object-fit:contain}
.holo-title{font-size:clamp(36px,5vw,56px);font-weight:700;color:var(--holo-cyan);text-shadow:var(--holo-glow);line-height:1.1;text-align:center;transition:text-shadow .1s}
.holo-title em{font-style:normal;background:var(--gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.holo-sub{font-size:16px;color:var(--holo-gold);text-align:center;margin-top:12px;font-weight:600}

/* ─── Result (full-screen bg video) ─── */
#md-result{position:absolute;inset:0;z-index:5}
#md-result.active{display:block}
.result-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.result-overlay{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 28px}
.holo-card-type{font-size:42px;font-weight:800;color:#fff;letter-spacing:4px;text-align:center;text-shadow:0 0 2px #fff,0 0 20px var(--blue)}
.holo-card-cat{font-size:20px;font-weight:700;color:var(--holo-gold);text-align:center;text-shadow:0 0 1px #fff,0 0 12px var(--blue)}
.holo-poop-img{max-width:55%;height:auto;margin:8px 0 0 0;filter:drop-shadow(0 0 8px rgba(255,255,255,.9)) drop-shadow(0 0 20px rgba(100,150,255,.8)) drop-shadow(0 0 50px rgba(0,61,166,.7)) drop-shadow(0 0 80px rgba(0,61,166,.4))}
.holo-desc{font-size:20px;color:#fff;text-align:center;font-weight:800;line-height:1.4;margin-top:0;max-width:280px;text-shadow:0 0 1px rgba(255,255,255,.5),0 0 10px var(--blue);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ─── Scanlines & Glass Overlay ─── */
.scanlines{position:absolute;inset:0;z-index:3;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px)}
.glass-reflection{position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.015) 0%,transparent 50%,rgba(255,255,255,.008) 100%)}

/* ─── Draggable Divider ─── */
#divider{width:var(--divider-w);height:100vh;background:rgba(255,255,255,.04);flex-shrink:0;z-index:20;position:relative}

/* ─── Quiz Panel (right) ─── */
#quiz-panel{flex:1;height:100vh;overflow:hidden;position:relative}

/* ─── Loading State (full-screen, outside display-content) ─── */
#md-loading{position:absolute;inset:0;z-index:6}
#md-loading.active{display:block}
.md-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.md-loading-overlay{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}
.holo-analyzing{font-size:22px;font-weight:800;color:#fff;text-align:center;letter-spacing:1px;text-shadow:0 0 10px var(--blue),0 0 20px var(--blue),0 0 40px var(--blue)}
.holo-dots::after{content:'';animation:holoDots 1.5s steps(4,end) infinite}
@keyframes holoDots{0%{content:''}25%{content:'.'}50%{content:'..'}75%{content:'...'}100%{content:''}}
.holo-progress-bar{width:70%;max-width:260px;height:4px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden}
.holo-progress-fill{height:100%;width:0%;background:var(--holo-cyan);border-radius:2px;box-shadow:0 0 12px rgba(0,229,255,.5);transition:width .1s linear}

/* ─── Flicker & Glitch ─── */
@keyframes holoFlicker{0%,100%{opacity:1}50%{opacity:.7}}
@keyframes holoGlitch{0%,100%{text-shadow:var(--holo-glow)}2%{text-shadow:-2px 0 red,2px 0 blue}}

/* ─── Preview Labels ─── */
.preview-label{position:absolute;bottom:12px;left:14px;z-index:100;font-family:var(--font);font-size:10px;font-weight:700;color:var(--blue);background:var(--white);padding:5px 14px;border-radius:20px;letter-spacing:1px;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.15)}

/* ─── Responsive Split ─── */
@media(max-width:1100px){
  #main-display{width:32%}
  .display-content{padding:24px 16px}
  .holo-title{font-size:clamp(28px,4vw,40px)}
  .holo-card-type{font-size:28px}
}
