:root{
  --bigc-green:#95c11f;
  --bigc-red:#e31b23;
  --bigc-yellow:#ffc72c;
  --ink:#153022;
  --muted:#768278;
  --cream:#f5f7ef;
  --paper:#fffef9;
  --line:#e4e9dc;
  --forest:#123722;
  --forest-2:#0d291a;
  --stage-accent:#95c11f;
  --stage-soft:#eef7d8;
  font-family:Inter,"Noto Sans Thai",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:var(--cream);
}
*{box-sizing:border-box}
html{background:var(--cream);scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  min-height:100dvh;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 100% 0%,rgba(203,235,113,.25),transparent 31%),
    linear-gradient(180deg,#fbfcf7 0%,#f3f6ec 58%,#eef2e6 100%);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
button,select,input{font:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
.ambient{position:fixed;border-radius:999px;filter:blur(64px);pointer-events:none;opacity:.35;z-index:0}
.ambient-one{width:250px;height:250px;background:#d8ee91;top:-150px;right:-120px}
.ambient-two{width:240px;height:240px;background:#ffe5bc;bottom:8%;left:-180px}
.app-shell{position:relative;z-index:1;width:min(100%,560px);min-height:100vh;margin:0 auto;padding:0 12px calc(20px + env(safe-area-inset-bottom))}

/* Compact navigation */
.topbar{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  height:56px;margin:0 -12px;padding:7px 12px;
  background:rgba(247,249,242,.9);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(21,48,34,.055)
}
.brand{display:flex;align-items:center;gap:9px;color:inherit;text-decoration:none;min-width:0}
.brand-badge{
  position:relative;flex:0 0 auto;width:40px;height:40px;border-radius:12px;
  background:var(--bigc-green);display:grid;place-content:center;overflow:hidden;
  box-shadow:0 7px 17px rgba(78,117,20,.16);animation:brandFloat 4s ease-in-out infinite
}
@keyframes brandFloat{50%{transform:translateY(-1px)}}
.brand-badge b{font-size:8px;position:absolute;top:7px;left:7px;color:#13220e;letter-spacing:-.02em}
.brand-badge i{font-style:normal;font-size:28px;line-height:1;font-weight:950;color:var(--bigc-red);transform:translateY(4px)}
.brand-copy{display:flex;flex-direction:column;min-width:0;line-height:1}
.brand-copy strong{font-size:13px;font-weight:950;letter-spacing:.035em;white-space:nowrap}
.brand-copy small{font-size:7.5px;color:#728071;margin-top:5px;letter-spacing:.025em;white-space:nowrap}
.mode-pill{font-size:7.5px;font-weight:950;letter-spacing:.065em;padding:6px 8px;border-radius:99px;background:#e8ecdf;color:#647161;white-space:nowrap}
.mode-pill.live{background:#e6f6c7;color:#426b13}.mode-pill.demo{background:#fff0c8;color:#765e10}

/* The entire scanner, including the camera button, fits inside one visible viewport. */
.scan-view{padding:0}
.scanner-screen{
  height:calc(100vh - 56px);
  height:calc(100dvh - 56px);
  min-height:500px;
  max-height:790px;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr);
  gap:8px;
  padding:8px 0 10px
}
.intro-compact{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px;min-height:57px}
.intro-copy{min-width:0}
.kicker{font-size:7.5px;line-height:1;letter-spacing:.18em;font-weight:950;color:#788675;margin:0 0 5px}
.intro-compact h1{font-size:23px;line-height:1.02;letter-spacing:-.035em;margin:0;font-weight:930;white-space:nowrap}
.intro-sub{font-size:9px;line-height:1.25;color:#788577;margin:5px 0 0}
.intro-ai{position:relative;flex:0 0 auto;width:42px;height:42px;border-radius:50%;display:grid;place-content:center;background:linear-gradient(145deg,#c7e95e,#8fc718);box-shadow:0 8px 18px rgba(105,151,31,.18);color:#23410f}
.intro-ai span{font-size:12px;font-weight:950}.intro-ai i{position:absolute;right:-1px;top:-2px;font-style:normal;color:#fff;font-size:13px;animation:sparkle 2.3s ease-in-out infinite}
@keyframes sparkle{50%{transform:scale(1.35) rotate(14deg);opacity:.72}}
.glass-panel{background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.94);box-shadow:0 10px 24px rgba(31,57,23,.06);backdrop-filter:blur(12px)}
.product-switcher{display:flex;align-items:center;justify-content:space-between;min-height:52px;border-radius:17px;padding:8px 9px 8px 12px}
.product-switcher-copy{display:flex;flex-direction:column;min-width:0}
.tiny-label{font-size:7.5px;color:#859182;font-weight:800;margin-bottom:2px}
.product-switcher-copy strong{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:195px}
.product-switcher-copy small{font-size:7.5px;color:#98a293;margin-top:2px}
.select-wrap{position:relative;display:flex;align-items:center;gap:4px;background:#f1f5e8;border:1px solid #e1e7d8;border-radius:13px;padding:6px 8px;min-width:78px;height:36px}
.select-wrap span:first-child{font-size:19px}.select-wrap select{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.chevron{font-size:15px;color:#6d7b68}

/* Camera experience */
.camera-card{min-height:0;height:100%;background:#fff;border-radius:24px;padding:6px;border:1px solid rgba(35,67,28,.055);box-shadow:0 16px 38px rgba(27,52,21,.09)}
.camera-frame{position:relative;height:100%;min-height:0;border-radius:19px;overflow:hidden;background:radial-gradient(circle at 50% 39%,#3a6248 0,#173c27 50%,#0d281a 100%)}
.camera-frame video,.camera-frame>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.camera-gradient{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(5,19,11,.28),transparent 22%,transparent 55%,rgba(5,19,11,.75) 100%);pointer-events:none}
.camera-topline{position:absolute;top:10px;left:10px;right:10px;z-index:8;display:flex;justify-content:space-between;align-items:center}
.camera-chip,.camera-hint{font-size:7.5px;font-weight:850;letter-spacing:.045em;color:#fff;padding:6px 8px;border-radius:99px;background:rgba(7,25,14,.43);backdrop-filter:blur(8px)}
.camera-chip i{display:inline-block;width:6px;height:6px;background:#b9e54c;border-radius:50%;margin-right:5px;box-shadow:0 0 0 4px rgba(185,229,76,.13)}
.camera-hint{letter-spacing:0;font-weight:650}
.focus-ring{position:absolute;inset:17% 12% 28%;z-index:5;pointer-events:none}
.corner{position:absolute;width:34px;height:34px;border-color:#d1ff57;border-style:solid;filter:drop-shadow(0 2px 5px rgba(0,0,0,.2))}
.corner.tl{top:0;left:0;border-width:3px 0 0 3px;border-radius:13px 0 0 0}.corner.tr{top:0;right:0;border-width:3px 3px 0 0;border-radius:0 13px 0 0}.corner.bl{bottom:0;left:0;border-width:0 0 3px 3px;border-radius:0 0 0 13px}.corner.br{bottom:0;right:0;border-width:0 3px 3px 0;border-radius:0 0 13px 0}
.scan-beam{position:absolute;left:12%;right:12%;height:2px;top:22%;z-index:11;background:linear-gradient(90deg,transparent,#d7ff60 20%,#fff 50%,#d7ff60 80%,transparent);box-shadow:0 0 13px #bce746;animation:scanBeam 2.25s ease-in-out infinite}
@keyframes scanBeam{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(180px);opacity:1}}
.camera-empty{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#f4f8f0;padding:42px 20px 116px}
.produce-avatar{position:relative;width:90px;height:90px;border-radius:50%;display:grid;place-content:center;font-size:56px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.22),rgba(255,255,255,.035) 64%);border:1px solid rgba(255,255,255,.15);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 14px 26px rgba(0,0,0,.16);animation:fruitFloat 3s ease-in-out infinite}
.produce-avatar svg{width:74px;height:74px;overflow:visible}
@keyframes fruitFloat{50%{transform:translateY(-6px) rotate(-1.5deg)}}
.produce-avatar::after{content:"✦";position:absolute;right:4px;top:8px;font-size:15px;color:#fff4a5;animation:sparkle 2.5s ease-in-out infinite}
.camera-empty p{font-size:14px;font-weight:900;margin:13px 0 3px}.camera-empty small{font-size:9px;line-height:1.35;color:#c9d7ca;max-width:215px}

/* Controls are overlaid inside camera to guarantee no scroll is needed. */
.capture-dock{position:absolute;left:10px;right:10px;bottom:10px;z-index:12;display:grid;grid-template-columns:46px 1fr 46px;align-items:end;gap:10px;padding:8px 10px;border-radius:20px;background:rgba(7,23,13,.72);border:1px solid rgba(255,255,255,.09);box-shadow:0 10px 25px rgba(0,0,0,.18);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}
.dock-side{align-self:center;justify-self:center}.dock-spacer{display:block;width:42px;height:42px}#retake:not([hidden])~.dock-spacer{display:none}
.gallery-button{width:42px;height:42px;border:1px solid rgba(255,255,255,.11);border-radius:14px;background:rgba(255,255,255,.11);display:grid;place-content:center;color:#fff;font-size:18px}.gallery-button input{display:none}.retake-button{border:1px solid rgba(255,255,255,.11)}
.shutter-stack{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.shutter{width:62px;height:62px;border-radius:50%;border:2px solid rgba(255,255,255,.82);background:rgba(255,255,255,.16);padding:5px;display:grid;place-content:center;box-shadow:0 7px 17px rgba(0,0,0,.2)}
.shutter-core{display:block;width:48px;height:48px;border-radius:50%;background:linear-gradient(145deg,#bce83d,#8ec413);box-shadow:inset 0 2px 3px rgba(255,255,255,.48)}
.camera-symbol{display:grid;place-content:center;color:#173818;font-size:25px}.shutter-stack strong{font-size:8px;color:#fff;font-weight:800;white-space:nowrap}
.loading-overlay{position:absolute;inset:0;z-index:20;background:rgba(10,31,18,.88);backdrop-filter:blur(12px);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center}
.loading-overlay strong{font-size:14px;margin-top:15px}.loading-overlay small{font-size:9px;color:#c7d5c8;margin-top:4px}
.ai-pulse{position:relative;width:124px;height:124px;display:grid;place-content:center}.ai-pulse span{position:absolute;inset:0;border:1px solid rgba(198,235,93,.44);border-radius:50%;animation:pulse 2s ease-out infinite}.ai-pulse span:nth-child(2){animation-delay:.55s}.ai-pulse span:nth-child(3){animation-delay:1.1s}@keyframes pulse{0%{transform:scale(.48);opacity:0}35%{opacity:1}100%{transform:scale(1.06);opacity:0}}.ai-pulse b{font-size:60px;animation:fruitFloat 2s ease-in-out infinite}

/* Readable ripeness journey */
.ripeness-section{padding-top:27px;scroll-margin-top:68px}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:0 2px 12px}.section-heading h2{font-size:20px;line-height:1.08;letter-spacing:-.025em;margin:0}.section-subtitle{font-size:10px;line-height:1.4;color:#778576;margin:6px 0 0;max-width:300px}.stage-count{flex:0 0 auto;font-size:7px;font-weight:950;color:#687666;border:1px solid #dce4d6;padding:6px 8px;border-radius:99px;background:rgba(255,255,255,.55)}
.stage-guide{display:flex;flex-direction:column;gap:9px;overflow:visible;padding:0}
.journey-item{--card-accent:#9aa39b;position:relative;display:grid;grid-template-columns:34px 62px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:86px;padding:10px 11px 10px 8px;border-radius:20px;background:rgba(255,255,255,.92);border:1px solid #e3e8dc;box-shadow:0 8px 21px rgba(32,58,24,.045);overflow:hidden;transition:.25s ease}
.journey-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--card-accent)}
.journey-item.active{border-color:color-mix(in srgb,var(--card-accent) 70%,#fff);background:linear-gradient(100deg,color-mix(in srgb,var(--card-accent) 11%,#fff),#fff 55%);box-shadow:0 12px 28px color-mix(in srgb,var(--card-accent) 13%,transparent);transform:translateY(-1px)}
.journey-number{position:relative;display:grid;place-content:center;width:28px;height:28px;border-radius:50%;background:color-mix(in srgb,var(--card-accent) 16%,#fff);color:var(--card-accent);font-size:11px;font-weight:950}.journey-number::after{content:"";position:absolute;left:50%;top:31px;width:1px;height:63px;background:#e0e6da}.journey-item:last-child .journey-number::after{display:none}
.journey-mascot{position:relative;width:58px;height:58px;border-radius:18px;display:grid;place-content:center;background:color-mix(in srgb,var(--card-accent) 10%,#f8faf4);overflow:hidden}.journey-mascot .product-emoji{font-size:39px;filter:saturate(.98)}.journey-mascot svg{width:54px;height:54px;overflow:visible}.journey-item.active .journey-mascot{animation:activeMascot 2.1s ease-in-out infinite}@keyframes activeMascot{50%{transform:translateY(-3px) rotate(1.5deg)}}
.journey-copy{min-width:0}.journey-copy small{display:block;font-size:7px;font-weight:950;letter-spacing:.11em;color:#8a9588;margin-bottom:3px}.journey-copy strong{display:block;font-size:14px;line-height:1.15;color:#273d2b}.journey-copy p{font-size:10px;line-height:1.35;color:#788477;margin:4px 0 0}.journey-item.active .journey-copy strong{color:var(--card-accent)}
.journey-status{align-self:start;font-size:7px;font-weight:900;color:var(--card-accent);background:color-mix(in srgb,var(--card-accent) 12%,#fff);padding:5px 7px;border-radius:99px;white-space:nowrap}.journey-item:not(.active) .journey-status{display:none}
.trust-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}.trust-row div{background:rgba(255,255,255,.68);border:1px solid #e5eadf;border-radius:15px;padding:10px 6px;text-align:center}.trust-row span{display:block;font-size:15px;color:#6c9925;margin-bottom:4px}.trust-row strong{display:block;font-size:8px}.trust-row small{display:block;font-size:7px;color:#879485;margin-top:2px}

/* Error */
.error-sheet{margin:11px 0;border:1px solid #f1c7ca;background:#fff8f8;border-radius:18px;padding:12px;display:grid;grid-template-columns:32px 1fr auto;gap:9px;align-items:center}.error-icon{width:30px;height:30px;border-radius:50%;display:grid;place-content:center;background:#ffe4e5;color:#ad1e27;font-weight:900}.error-sheet strong{font-size:11px}.error-sheet p{font-size:8px;line-height:1.4;color:#8b5b5e;margin:3px 0 0}.mini-action{border:0;background:#a91f27;color:#fff;border-radius:10px;padding:8px;font-size:8px;font-weight:850}

/* Results */
.result-view{padding-top:6px}.result-hero{position:relative;border-radius:27px;padding:14px 16px 21px;background:radial-gradient(circle at 50% 48%,color-mix(in srgb,var(--stage-accent) 32%,transparent),transparent 40%),linear-gradient(155deg,#1b4029 0%,#112f1f 67%,#0d2518 100%);color:#fff;overflow:hidden;box-shadow:0 21px 48px rgba(20,51,30,.17)}
.result-hero::after{content:"";position:absolute;width:170px;height:170px;border:1px solid rgba(255,255,255,.08);border-radius:50%;top:-90px;right:-70px}.result-topline{position:relative;z-index:2;display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;font-size:9px;font-weight:800}.ghost-round{width:32px;height:32px;border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.08);color:#fff;border-radius:50%}.result-stage-counter{font-size:7px;padding:6px 8px;border-radius:99px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.09)}.result-kicker{text-align:center;font-size:8px;font-weight:900;letter-spacing:.17em;color:#c1d0c2;margin:17px 0 5px}.result-hero>h2{text-align:center;font-size:42px;line-height:.9;letter-spacing:-.045em;color:var(--stage-accent);margin:0;text-shadow:0 7px 25px rgba(0,0,0,.22)}.stage-subtitle{text-align:center;font-size:9px;color:#c9d6c9;margin:8px 0 0}
.score-ring{--score:50;position:relative;width:198px;height:198px;margin:8px auto 4px;border-radius:50%;display:grid;place-content:center;background:conic-gradient(var(--stage-accent) calc(var(--score)*1%),rgba(255,255,255,.1) 0);box-shadow:0 20px 46px rgba(0,0,0,.16);animation:ringEnter .45s ease}@keyframes ringEnter{from{transform:scale(.92);opacity:.2}to{transform:scale(1);opacity:1}}.score-ring::before{content:"";position:absolute;inset:7px;border-radius:50%;background:#153724}.score-ring-inner{position:relative;z-index:2;width:172px;height:172px;border-radius:50%;display:grid;place-content:center;background:radial-gradient(circle at 38% 28%,rgba(255,255,255,.15),rgba(255,255,255,.015) 54%);border:1px solid rgba(255,255,255,.11)}.result-produce{font-size:95px;filter:drop-shadow(0 16px 14px rgba(0,0,0,.21));animation:fruitFloat 2.8s ease-in-out infinite}.result-produce svg{width:132px;height:132px;overflow:visible}.score-pin{position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;right:24px;top:33px;box-shadow:0 0 0 5px color-mix(in srgb,var(--stage-accent) 30%,transparent)}
.sweet-spot{width:max-content;max-width:90%;margin:0 auto 8px;border-radius:99px;padding:6px 10px;font-size:7px;font-weight:950;letter-spacing:.08em;background:var(--stage-accent);color:#173322}.hero-recommendation{max-width:320px;margin:0 auto;text-align:center;font-size:11px;line-height:1.45;color:#e6efe6}.result-stage-dots{display:flex;justify-content:center;gap:6px;margin-top:14px}.result-stage-dots span{width:24px;height:4px;border-radius:99px;background:rgba(255,255,255,.14)}.result-stage-dots span.active{background:var(--stage-accent)}
.result-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:9px 0}.result-metrics article{background:#fff;border:1px solid #e5eadf;border-radius:19px;padding:13px;min-height:104px;box-shadow:0 8px 22px rgba(28,54,22,.045)}.result-metrics article:first-child{grid-row:span 2;min-height:216px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#fff,#f5f9ea)}.result-metrics article>span{font-size:7px;font-weight:900;letter-spacing:.08em;color:#82907f}.result-metrics article>div{margin-top:8px}.result-metrics article>div strong{font-size:49px;line-height:1;letter-spacing:-.06em;color:#4f7d24}.result-metrics article>div small{font-size:10px;color:#8b9888;margin-left:2px}.result-metrics article>strong{display:block;font-size:18px;line-height:1.1;margin-top:8px;color:#314932}.result-metrics article>em{font-style:normal;font-size:7px;color:#92a08e;margin-top:5px}
.result-guide-card,.findings-card{background:#fff;border:1px solid #e5eadf;border-radius:22px;padding:15px 13px;margin-top:9px;box-shadow:0 8px 23px rgba(28,54,22,.045)}.section-heading.compact{padding:0 1px 10px}.section-heading.compact h2{font-size:16px}.result-stage-guide .journey-item{min-height:80px}.findings-card{padding-bottom:14px}.findings-head{display:flex;gap:9px;align-items:center}.spark-icon{width:34px;height:34px;border-radius:12px;background:#edf6d8;display:grid;place-content:center;color:#6a9824}.findings-head small{display:block;font-size:7px;letter-spacing:.13em;color:#829080;font-weight:900}.findings-head strong{font-size:12px}.findings-card ul{list-style:none;padding:0;margin:11px 0 0;display:flex;flex-direction:column;gap:7px}.findings-card li{font-size:9px;line-height:1.4;color:#5a6b58;background:#f5f7f1;border-radius:11px;padding:9px 10px}.findings-card li::before{content:"✓";color:#6f9e23;font-weight:900;margin-right:7px}.safety-note{font-size:8px;line-height:1.45;color:#776232;background:#fff5d7;border:1px solid #f2e0a9;border-radius:14px;padding:10px 11px;margin-top:9px}.scan-again{width:100%;border:0;border-radius:19px;background:linear-gradient(110deg,#a8d51e,#90c20e);color:#1a3117;display:grid;grid-template-columns:40px 1fr 28px;align-items:center;text-align:left;padding:12px 13px;margin-top:10px;box-shadow:0 10px 25px rgba(106,148,23,.18)}.scan-again-icon{width:36px;height:36px;border-radius:12px;background:rgba(255,255,255,.47);display:grid;place-content:center;font-size:19px}.scan-again strong{display:block;font-size:12px}.scan-again small{display:block;font-size:7px;margin-top:2px;color:#4f671e}.scan-again b{text-align:right;font-size:19px}
footer{text-align:center;padding:21px 8px 5px;color:#889586}footer strong{font-size:7px;letter-spacing:.1em}footer p{font-size:7px;line-height:1.45;margin:5px auto 0;max-width:340px}

/* Animated avocado character */
.avocado-character{overflow:visible}.avocado-character .body{transform-origin:50% 70%}.avocado-character .arm{stroke-linecap:round;stroke-width:4;fill:none}.avocado-character .eye{fill:#20311f}.avocado-character .mouth{fill:none;stroke:#20311f;stroke-width:2.3;stroke-linecap:round}.avocado-character.stage-1{animation:tiredSway 3.1s ease-in-out infinite}.avocado-character.stage-2{animation:firmBounce 2.2s ease-in-out infinite}.avocado-character.stage-3{animation:happyBounce 1.65s ease-in-out infinite}.avocado-character.stage-4{animation:softSway 2.8s ease-in-out infinite}.avocado-character.stage-5{animation:tiredSway 3.4s ease-in-out infinite}@keyframes firmBounce{50%{transform:translateY(-2px) scale(1.015)}}@keyframes happyBounce{45%{transform:translateY(-5px) rotate(1deg)}65%{transform:translateY(-1px) rotate(-1deg)}}@keyframes softSway{50%{transform:rotate(2.5deg) translateY(-1px)}}@keyframes tiredSway{50%{transform:rotate(-2deg) translateY(2px)}}

@media(max-width:420px){
  .app-shell{padding-left:10px;padding-right:10px}.topbar{margin:0 -10px;padding-left:10px;padding-right:10px}
  .scanner-screen{gap:7px;padding-top:7px;padding-bottom:8px}
  .intro-compact{min-height:53px}.intro-compact h1{font-size:21px}.intro-sub{font-size:8px}.intro-ai{width:38px;height:38px}
  .product-switcher{min-height:49px}.product-switcher-copy strong{max-width:165px}
  .capture-dock{left:8px;right:8px;bottom:8px;padding:7px 8px}.shutter{width:58px;height:58px}.shutter-core{width:44px;height:44px}
}
@media(max-width:360px){
  .brand-copy small{display:none}.mode-pill{font-size:7px;padding:5px 7px}.intro-compact h1{font-size:19px}.intro-sub{font-size:7.5px}
  .product-switcher-copy strong{max-width:145px}.camera-empty{padding-left:12px;padding-right:12px}.produce-avatar{width:78px;height:78px;font-size:49px}
  .journey-item{grid-template-columns:30px 54px minmax(0,1fr);gap:8px}.journey-status{display:none!important}.journey-mascot{width:52px;height:52px}.journey-copy strong{font-size:13px}.journey-copy p{font-size:9px}
}
@media(min-width:700px){
  .scanner-screen{max-height:820px}.intro-compact h1{font-size:25px}.camera-frame{border-radius:21px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}

/* Character illustration details generated in app.js */
.avocado-character{display:block;overflow:visible;transform-origin:50% 85%}
.avocado-character .character-shadow{fill:rgba(13,31,18,.15)}
.avocado-character .avocado-body,.avocado-character .pit{transform-origin:center;transform-box:fill-box}
.avocado-character .face-line,.avocado-character .smile,.avocado-character .brow,.avocado-character .feet,.avocado-character .limb,.avocado-character .relax-mark{fill:none;stroke:#26351f;stroke-linecap:round;stroke-linejoin:round}
.avocado-character .face-line{stroke-width:2.2}.avocado-character .smile{stroke-width:2.4}.avocado-character .brow{stroke-width:2}.avocado-character .feet{stroke-width:3}.avocado-character .spark{fill:#e7f779;stroke:none}.avocado-character .relax-mark{stroke-width:1.7}.avocado-character .weights rect{stroke:none}
.avocado-character.stage-1{animation:tiredSway 3.1s ease-in-out infinite}.avocado-character.stage-2{animation:firmBounce 2.2s ease-in-out infinite}.avocado-character.stage-3{animation:happyBounce 1.65s ease-in-out infinite}.avocado-character.stage-4{animation:softSway 2.8s ease-in-out infinite}.avocado-character.stage-5{animation:tiredSway 3.4s ease-in-out infinite}
.generic-character{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.generic-character span{font-size:38px}.generic-character i{display:none}.generic-character.large span{font-size:88px}


/* ==========================================================
   v0.2.3 FINAL — COMPACT FIRST SCREEN + LEGIBLE JOURNEY
   ========================================================== */

/* Reduce the upper content further so the camera CTA is always above the fold. */
.topbar{min-height:50px!important;padding-block:6px!important}
.brand-badge{width:34px!important;height:34px!important;border-radius:11px!important}
.brand-badge b{font-size:7px!important;top:5px!important;left:6px!important}
.brand-badge i{font-size:24px!important}
.brand-copy strong{font-size:12px!important}
.brand-copy small{font-size:6.8px!important;margin-top:3px!important}
.mode-pill{font-size:7px!important;padding:5px 7px!important}

.scan-view{padding-top:3px!important}
.intro-row{min-height:48px!important;padding:5px 2px 7px!important;gap:8px!important}
.intro-eyebrow{font-size:6.5px!important;margin-bottom:2px!important;letter-spacing:.14em!important}
.intro-eyebrow span{width:6px!important;height:6px!important}
.intro-row h1{
  font-size:clamp(19px,5.6vw,23px)!important;
  line-height:1!important;
  letter-spacing:-.032em!important;
  white-space:nowrap!important;
}
.intro-copy>p{font-size:8px!important;margin-top:3px!important;line-height:1.15!important}
.fresh-orb{width:31px!important;height:31px!important;font-size:14px!important;flex:0 0 31px!important}

.product-switcher{min-height:49px!important;padding:7px 8px 7px 10px!important;margin-bottom:7px!important;border-radius:15px!important}
.tiny-label{font-size:7px!important}
.product-switcher-copy strong{font-size:11.5px!important;max-width:175px!important}
.product-switcher-copy small{font-size:7px!important}
.select-wrap{min-width:72px!important;padding:5px 7px!important}
.select-wrap span:first-child{font-size:18px!important}

.camera-card{padding:5px!important;border-radius:21px!important}
.camera-frame{
  height:clamp(300px,calc(100dvh - 190px - env(safe-area-inset-bottom)),390px)!important;
  min-height:300px!important;
  max-height:390px!important;
  border-radius:17px!important;
}
.camera-topline{top:8px!important;left:8px!important;right:8px!important}
.camera-chip,.camera-hint{font-size:7px!important;padding:5px 7px!important}
.focus-ring{inset:17% 12% 27%!important}
.camera-empty{padding:0 12px 66px!important}
.produce-avatar{width:72px!important;height:72px!important;font-size:46px!important}
.camera-empty p{font-size:12px!important;margin:9px 0 3px!important}
.camera-empty small{font-size:8.5px!important}

.capture-dock{
  left:7px!important;right:7px!important;bottom:7px!important;
  min-height:62px!important;
  padding:6px!important;
  border-radius:18px!important;
  gap:7px!important;
}
.start-camera-cta{height:48px!important;min-width:160px!important;max-width:225px!important;border-radius:14px!important;padding:6px 11px!important;gap:8px!important}
.camera-cta-icon{width:31px!important;height:31px!important;border-radius:10px!important;font-size:19px!important}
.camera-cta-copy strong{font-size:11px!important}
.camera-cta-copy small{font-size:7px!important;margin-top:3px!important}
.gallery-button{width:40px!important;height:40px!important;flex-basis:40px!important;border-radius:13px!important;font-size:17px!important}
.shutter{width:56px!important;height:56px!important}
.shutter-core{width:44px!important;height:44px!important}
.dock-copy{bottom:61px!important;padding:4px 8px!important}
.dock-copy strong{font-size:7px!important}

/* The journey is now a vertical, scan-friendly reading sequence—not a tiny carousel. */
.ripeness-section{
  margin-top:16px!important;
  padding:15px 12px 13px!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.78)!important;
  border:1px solid rgba(255,255,255,.94)!important;
  box-shadow:0 10px 25px rgba(28,55,22,.055)!important;
}
.journey-heading{align-items:flex-start!important;padding:0 1px 12px!important}
.journey-heading h2{font-size:16px!important;line-height:1.15!important}
.journey-intro{font-size:9.5px!important;line-height:1.35!important;margin-top:4px!important}
.swipe-hint{font-size:7.5px!important;padding:6px 8px!important;margin-top:1px!important}

.stage-guide{
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  overflow:visible!important;
  padding:0!important;
  scroll-snap-type:none!important;
  touch-action:auto!important;
}
.stage-guide::after{content:none!important}
.stage-card{
  flex:none!important;
  width:100%!important;
  min-width:0!important;
  min-height:88px!important;
  display:grid!important;
  grid-template-columns:76px minmax(0,1fr) auto!important;
  grid-template-rows:auto auto auto!important;
  column-gap:10px!important;
  row-gap:2px!important;
  align-items:center!important;
  padding:9px 11px!important;
  border-radius:17px!important;
  text-align:left!important;
  scroll-snap-align:none!important;
  overflow:visible!important;
  box-shadow:0 5px 15px rgba(28,55,22,.045)!important;
}
.stage-card::before{
  inset:10px auto 10px 0!important;
  width:3px!important;
  height:auto!important;
  border-radius:0 99px 99px 0!important;
  background:var(--card-accent)!important;
}
.stage-card:not(:last-child)::after{
  content:"";
  position:absolute;
  left:46px;
  bottom:-9px;
  width:2px;
  height:9px;
  background:linear-gradient(var(--card-accent),#dfe6da);
  opacity:.55;
}
.stage-card-head{
  grid-column:2 / 4!important;
  grid-row:1!important;
  display:flex!important;
  justify-content:flex-start!important;
  gap:7px!important;
  min-width:0!important;
}
.stage-index{
  font-size:9px!important;
  font-weight:950!important;
  color:var(--card-accent)!important;
  letter-spacing:.08em!important;
}
.stage-tag{
  font-size:9px!important;
  padding:3px 7px!important;
  color:#354a38!important;
  background:color-mix(in srgb,var(--card-accent) 12%,#fff)!important;
}
.stage-character{
  grid-column:1!important;
  grid-row:1 / 4!important;
  width:72px!important;
  height:72px!important;
  margin:0!important;
  display:grid!important;
  place-content:center!important;
}
.avocado-character{width:70px!important;height:70px!important;filter:drop-shadow(0 6px 6px rgba(29,51,24,.13))!important}
.generic-character{width:66px!important;height:66px!important;font-size:40px!important}
.generic-character i{font-size:6px!important}
.stage-name{
  grid-column:2 / 4!important;
  grid-row:2!important;
  font-size:12px!important;
  line-height:1.05!important;
  margin:2px 0 0!important;
  min-height:0!important;
  color:#203826!important;
}
.stage-desc{
  grid-column:2 / 4!important;
  grid-row:3!important;
  font-size:10px!important;
  line-height:1.35!important;
  margin:3px 0 0!important;
  min-height:0!important;
  color:#69786a!important;
}
.stage-card.active{transform:none!important;box-shadow:0 10px 25px color-mix(in srgb,var(--card-accent) 16%,transparent)!important}
.result-stage-guide .stage-card{min-height:88px!important}
.result-guide-card .stage-guide{overflow:visible!important}

@media (max-width:390px){
  .intro-row h1{font-size:20px!important}
  .intro-copy>p{font-size:7.6px!important}
  .product-switcher-copy strong{max-width:145px!important}
  .camera-frame{height:clamp(292px,calc(100dvh - 184px - env(safe-area-inset-bottom)),370px)!important;min-height:292px!important;max-height:370px!important}
  .start-camera-cta{min-width:150px!important;padding-inline:9px!important}
  .stage-card{grid-template-columns:68px minmax(0,1fr) auto!important;padding-inline:9px!important}
  .stage-character{width:64px!important;height:64px!important}
  .avocado-character{width:63px!important;height:63px!important}
  .generic-character{width:60px!important;height:60px!important;font-size:37px!important}
  .stage-card:not(:last-child)::after{left:40px!important}
}

@media (max-height:650px){
  .intro-copy>p{display:none!important}
  .intro-row{min-height:39px!important;padding-block:3px 5px!important}
  .product-switcher{min-height:44px!important;padding-block:5px!important}
  .camera-frame{height:calc(100dvh - 166px - env(safe-area-inset-bottom))!important;min-height:275px!important;max-height:350px!important}
}

@supports not (height:1dvh){
  .camera-frame{height:clamp(300px,44vh,390px)!important}
}
