.stat-label{display:flex;gap:6px;align-items:center;font-size:11px;letter-spacing:.025em}.stat-label b{margin-left:auto;font-size:11px;font-weight:400;font-variant-numeric:tabular-nums}.stat-label small{font-size:9px;color:#ada69e}.stat-legend{font-size:11px!important;line-height:1.6!important;color:#a99e96!important;margin:20px 0!important}.scent-favorite{border:1px solid #76645355;background:#ffffff03;color:#ded5c9;min-height:40px;border-radius:4px;padding:9px 13px;font-size:12px;cursor:pointer}.scent-favorite[aria-pressed=true]{color:#ff8296;border-color:#bc294780}.tube-card>.scent-favorite{margin:0 20px 18px}.pairing-section{border-top:1px solid #76645366;margin-top:24px;padding-top:10px}.pairing-section h3{font-size:20px;font-weight:400}.pairing-section>p{font-size:12px;color:#b5aaa1}.pairing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pairing-card{display:block;text-align:left;text-decoration:none;background:#ffffff04;color:#eee2d7;border:1px solid #76645355;border-radius:3px;padding:0;overflow:hidden;cursor:pointer}.pairing-card .sp-picture{aspect-ratio:1;min-height:0;width:100%;object-fit:cover}.pairing-card strong,.pairing-card p{display:block;margin:10px;font-size:12px;line-height:1.5}.pairing-card p{color:#b5aaa1;font-size:11px}.pairing-card:hover{border-color:#b6bf6e}.scent-sort{background:#1a1513;color:#e5ddd4;padding:12px;border:1px solid #76645380;min-width:0}.scent-status{font-size:11px;color:#b5aaa1}.repo-stat-preview{margin:18px 0}.scent-stat-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.scent-stat-inputs input{width:100%;box-sizing:border-box}.sp-note .scent-ratings{margin-bottom:12px}.sp-detail-link{color:#ddd1c3;font-size:12px}.scent-open .tube-card-copy{padding-bottom:12px}.detail-layout{align-items:start}#scent-detail{max-height:90dvh;overflow:auto;width:min(900px,calc(100vw - 24px))}.tube-controls{flex-wrap:wrap}.tube-controls select{max-width:100%}.tube-controls .scent-sort{flex:1 1 200px}@media(max-width:520px){.pairing-grid{gap:7px}.pairing-card strong,.pairing-card p{margin:7px;font-size:11px}.pairing-card p{font-size:10px}.scent-stat-inputs{grid-template-columns:1fr}.stat-label{font-size:11px}}.scent-favorite:focus-visible,.pairing-card:focus-visible,.scent-sort:focus-visible{outline:2px solid #beff57;outline-offset:3px}

/* A compact three-stat strip; the original bean holds a measured liquid fill. */
.scent-ratings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:10px 0;padding:6px 3px;box-sizing:border-box;border:1px solid #bba98d24;border-radius:5px;background:linear-gradient(115deg,#f3dfbd05,#ffffff02);color:#e9e2d9;align-items:stretch;container-type:inline-size;--bean-icon-size:24px;--bean-effects-scale:.43}
.scent-ratings .scent-stat{min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 4px;box-sizing:border-box;--bean-color:#bcb8b1;--bean-brightness:.9;--bean-glow:.4px;--bean-halo:.3px;--effect-opacity:.12;--effect-width:.8;--polish:.03}
.scent-ratings .scent-stat+.scent-stat{border-left:1px solid #bba98d24}
.scent-ratings .stat-label{display:block;margin:0 0 3px;font:clamp(8px,4.5cqi,10px)/1.2 Arial,sans-serif;letter-spacing:.01em;color:#c8c0b5;white-space:nowrap}
.scent-ratings .stat-reading{display:flex;align-items:center;justify-content:center;gap:3px;min-width:0}
.scent-ratings .stat-value{font:12px/1.2 Arial,sans-serif;font-variant-numeric:tabular-nums;color:#f0e9dd;white-space:nowrap}
.scent-ratings .stat-out-of{font-size:8px;color:#9e9487}
.scent-ratings .stat-character{font:8px/1.3 Arial,sans-serif;color:#bdb2a5;margin-top:2px;letter-spacing:0;max-width:100%;overflow-wrap:anywhere;min-height:1.3em}
.scent-ratings .rating-scene{position:relative;display:block;flex:0 0 var(--bean-icon-size);width:var(--bean-icon-size);height:var(--bean-icon-size);isolation:isolate;pointer-events:none}
.scent-ratings .rating-bean{position:absolute;inset:8%;display:block;isolation:isolate;filter:drop-shadow(0 0 calc(var(--bean-glow) * var(--bean-effects-scale)) color-mix(in srgb,var(--bean-color) 58%,transparent)) drop-shadow(0 0 calc(var(--bean-halo) * var(--bean-effects-scale)) color-mix(in srgb,var(--bean-color) 26%,transparent))}
.scent-ratings .rating-bean-art,.scent-ratings .rating-bean:after{position:absolute;inset:0;display:block;background:url('./assets/jellybean-badges.png') no-repeat 0 100% / 200% 200%}
.scent-ratings .rating-bean-art{filter:grayscale(1) brightness(.82);opacity:.38}
.scent-ratings .rating-bean:after{content:'';filter:grayscale(1) contrast(1.15);mix-blend-mode:soft-light;opacity:.48;pointer-events:none}
.scent-ratings .bean-liquid-mask{position:absolute;inset:0;display:block;-webkit-mask:url('./assets/jellybean-badges.png') no-repeat 0 100% / 200% 200%;mask:url('./assets/jellybean-badges.png') no-repeat 0 100% / 200% 200%;mask-mode:alpha}
/* The amber bean's solid body spans y=63..515 in its 627px sprite tile.
   Map 10–100% to that body, avoiding the transparent padding below it. */
.scent-ratings .bean-liquid{position:absolute;left:0;right:0;bottom:17.86%;height:calc(var(--bean-fill,10%) * .721);display:block;background:radial-gradient(ellipse at 24% 22%,#fff8 0,transparent 35%),linear-gradient(135deg,color-mix(in srgb,var(--bean-color) 78%,white),var(--bean-color) 38%,color-mix(in srgb,var(--bean-color) 72%,#28180f) 78%,var(--bean-color));filter:saturate(1.23) brightness(var(--bean-brightness))}
.scent-ratings .bean-liquid:before{content:'';position:absolute;top:0;left:0;right:0;height:1px;border-radius:50%;background:color-mix(in srgb,var(--bean-color) 50%,white);box-shadow:0 1px 2px color-mix(in srgb,var(--bean-color) 70%,transparent)}
.scent-ratings .bean-liquid:after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 33% 60%,#fff6 0 .45px,transparent .7px),radial-gradient(circle at 62% 32%,#fff4 0 .35px,transparent .6px);opacity:.65}
.scent-ratings .bean-effects{position:absolute;inset:0;width:100%;height:100%;overflow:visible;color:var(--bean-color);opacity:var(--effect-opacity);stroke-width:var(--effect-width);filter:none;pointer-events:none;z-index:1}
.scent-ratings .bean-polish{display:none;position:absolute;width:24%;height:8%;top:21%;left:58%;border-radius:50%;transform:rotate(-34deg);background:linear-gradient(100deg,transparent,#f4eee1 40%,#dfd1b1 60%,transparent);box-shadow:0 0 calc(4px * var(--bean-effects-scale)) #e2d4b62e;opacity:var(--polish);z-index:2}
@container(max-width:190px){.scent-ratings .stat-reading{flex-direction:column;gap:0}.scent-ratings .scent-stat{padding-inline:2px}.scent-ratings .stat-value{font-size:11px}.scent-ratings .stat-label{font-size:8px}}
/* Restrained champagne finishes: gold rarity, green/red aroma, silver to rose-gold intensity. */
.scent-ratings .stat-rarity{--bean-color:#c7b389;}
.scent-ratings .stat-rarity .bean-polish{display:block}
.scent-ratings .pungency-pleasant{--bean-color:#c3cfab;}
.scent-ratings .pungency-bad{--bean-color:#c99a8e;}
.scent-ratings .stat-intensity{--bean-color:#bfc3c5;}

.scent-ratings .rating-level-1{--bean-brightness:0.9;--bean-glow:0.4px;--bean-halo:0.3px;--effect-opacity:0.12;--effect-width:0.8;--polish:0.03}
.scent-ratings .rating-level-2{--bean-brightness:0.912;--bean-glow:0.507px;--bean-halo:0.42px;--effect-opacity:0.156;--effect-width:0.889;--polish:0.07}
.scent-ratings .rating-level-3{--bean-brightness:0.938;--bean-glow:0.774px;--bean-halo:0.779px;--effect-opacity:0.191;--effect-width:0.978;--polish:0.11}
.scent-ratings .rating-level-4{--bean-brightness:0.972;--bean-glow:1.175px;--bean-halo:1.378px;--effect-opacity:0.24;--effect-width:1.1;--polish:0.163}
.scent-ratings .rating-level-5{--bean-brightness:1.015;--bean-glow:1.701px;--bean-halo:2.216px;--effect-opacity:0.293;--effect-width:1.233;--polish:0.221}
.scent-ratings .rating-level-6{--bean-brightness:1.064;--bean-glow:2.344px;--bean-halo:3.294px;--effect-opacity:0.349;--effect-width:1.367;--polish:0.283}
.scent-ratings .rating-level-7{--bean-brightness:1.12;--bean-glow:3.099px;--bean-halo:4.611px;--effect-opacity:0.407;--effect-width:1.5;--polish:0.35}
.scent-ratings .rating-level-8{--bean-brightness:1.181;--bean-glow:3.962px;--bean-halo:6.168px;--effect-opacity:0.467;--effect-width:1.644;--polish:0.417}
.scent-ratings .rating-level-9{--bean-brightness:1.248;--bean-glow:4.93px;--bean-halo:7.964px;--effect-opacity:0.533;--effect-width:1.822;--polish:0.483}
.scent-ratings .rating-level-10{--bean-brightness:1.32;--bean-glow:6.0px;--bean-halo:10.0px;--effect-opacity:0.6;--effect-width:2;--polish:0.55}
.scent-ratings .stat-rarity.rating-level-1{--bean-color:#927d65}
.scent-ratings .stat-intensity.rating-level-1{--bean-color:#858284;}
.scent-ratings .stat-rarity.rating-level-2{--bean-color:#9f8a6f}
.scent-ratings .stat-intensity.rating-level-2{--bean-color:#9b9590;}
.scent-ratings .stat-rarity.rating-level-3{--bean-color:#ad9879}
.scent-ratings .stat-intensity.rating-level-3{--bean-color:#b1a79b;}
.scent-ratings .stat-rarity.rating-level-4{--bean-color:#b6a180}
.scent-ratings .stat-intensity.rating-level-4{--bean-color:#bcae9f;}
.scent-ratings .stat-rarity.rating-level-5{--bean-color:#bdaa86}
.scent-ratings .stat-intensity.rating-level-5{--bean-color:#c3b09f;}
.scent-ratings .stat-rarity.rating-level-6{--bean-color:#c3b08a}
.scent-ratings .stat-intensity.rating-level-6{--bean-color:#cab3a0;}
.scent-ratings .stat-rarity.rating-level-7{--bean-color:#c8b58c}
.scent-ratings .stat-intensity.rating-level-7{--bean-color:#d0b49f;}
.scent-ratings .stat-rarity.rating-level-8{--bean-color:#ccba8e}
.scent-ratings .stat-intensity.rating-level-8{--bean-color:#d5b69f;}
.scent-ratings .stat-rarity.rating-level-9{--bean-color:#d1bf93}
.scent-ratings .stat-intensity.rating-level-9{--bean-color:#dab79e;}
.scent-ratings .stat-rarity.rating-level-10{--bean-color:#d5c397}
.scent-ratings .stat-intensity.rating-level-10{--bean-color:#dfb99f;}

.scent-ratings .pungency-bad .stat-character{color:#d2a599}
.scent-ratings .pungency-pleasant .stat-character{color:#cbd6b7}
.scent-ratings :is(.rating-level-1,.rating-level-2,.rating-level-3,.rating-level-4) :is(.glint-extra,.aroma-extra){display:none}
.scent-ratings :is(.rating-level-1,.rating-level-2,.rating-level-3,.rating-level-4,.rating-level-5,.rating-level-6,.rating-level-7) .glint-rare{display:none}
.scent-ratings .scent-stat:not(.rating-level-10) .glint-mythic{display:none}
.scent-ratings :is(.rating-level-1,.rating-level-2,.rating-level-3) .bolt-two{display:none}
.scent-ratings :is(.rating-level-1,.rating-level-2,.rating-level-3,.rating-level-4,.rating-level-5,.rating-level-6) .bolt-three{display:none}
.scent-ratings :is(.rating-level-1,.rating-level-2,.rating-level-3,.rating-level-4,.rating-level-5,.rating-level-6,.rating-level-7,.rating-level-8) .bolt-four{display:none}
.scent-ratings .bean-lightning{filter:drop-shadow(0 0 .55px currentColor)}
.scent-ratings .bean-glints{transform-origin:center}
.scent-ratings .stat-rarity.rating-level-8{--effect-opacity:.68;--polish:.57}
.scent-ratings .stat-rarity.rating-level-9{--effect-opacity:.77;--polish:.65}
.scent-ratings .stat-rarity.rating-level-10{--effect-opacity:.86;--polish:.72}
.scent-ratings :is(.rating-level-8,.rating-level-9,.rating-level-10) .bean-glints{filter:drop-shadow(0 0 .45px currentColor)}
@media(prefers-reduced-motion:no-preference){
 .scent-ratings :is(.rating-level-8,.rating-level-9,.rating-level-10) .bean-glints>*{animation:bean-glint 4.4s ease-in-out infinite}
 .scent-ratings :is(.rating-level-8,.rating-level-9,.rating-level-10) .bean-glints>:nth-child(2n){animation-delay:-1.7s}
 .scent-ratings :is(.rating-level-8,.rating-level-9,.rating-level-10) .bean-glints>:nth-child(3n){animation-delay:-3s}
}
@media(prefers-reduced-motion:no-preference) and (hover:hover){
 .scent-ratings:hover :is(.rating-level-5,.rating-level-6,.rating-level-7) .bean-glints,.scent-open:focus-visible :is(.rating-level-5,.rating-level-6,.rating-level-7) .bean-glints{animation:bean-glint 3.4s ease-in-out infinite}
 .scent-ratings:hover :is(.rating-level-6,.rating-level-7,.rating-level-8,.rating-level-9,.rating-level-10) .bean-aroma,.scent-open:focus-visible :is(.rating-level-6,.rating-level-7,.rating-level-8,.rating-level-9,.rating-level-10) .bean-aroma{animation:bean-waft 2.8s ease-in-out infinite}
 .scent-ratings:hover .bean-lightning,.scent-open:focus-visible .bean-lightning{animation:bean-charge 3s ease-in-out infinite}
}
@keyframes bean-glint{0%,100%{opacity:.4}50%{opacity:1}}
@keyframes bean-waft{0%,100%{transform:translateY(calc(1px * var(--bean-effects-scale)));opacity:.65}50%{transform:translateY(calc(-3px * var(--bean-effects-scale)));opacity:1}}
@keyframes bean-charge{0%,100%{opacity:.6}50%{opacity:1}}
@media(forced-colors:active){.scent-ratings{border-color:CanvasText}.scent-ratings .scent-stat+.scent-stat{border-color:CanvasText}.scent-ratings .rating-bean{filter:none}.scent-ratings .bean-liquid{background:Highlight;filter:none;forced-color-adjust:none}.scent-ratings .bean-effects{filter:none;color:CanvasText}.scent-ratings .bean-lightning,.scent-ratings .bean-glints{filter:none!important}.scent-ratings .stat-label,.scent-ratings .stat-value,.scent-ratings .stat-out-of,.scent-ratings .stat-character{color:CanvasText}}
.detail-layout .scent-ratings{--bean-icon-size:28px;--bean-effects-scale:.5}
