/** Shopify CDN: Minification failed

Line 73:10 Unexpected "@media"
Line 198:10 Unexpected "@keyframes"
Line 199:10 Unexpected "@media"
Line 223:10 Unexpected "@keyframes"
Line 223:28 Unexpected "0%"
Line 223:61 Unexpected "50%"
Line 413:10 Unexpected "@keyframes"
Line 413:28 Unexpected "0%"
Line 413:52 Unexpected "55%"
Line 413:79 Unexpected "100%"
... and 5 more hidden warnings

**/
/* Skin Protocol 2.0 — Shopify section styles. Auto-scoped under .sp2-root.
   Source of truth: the 2.0 mobile design. Edit copy/content in the theme editor. */

.sp2-root{ --green-900:#0e342a; --green-800:#134034; --green-700:#1b5341; --green-600:#246b53;
  --green-500:#2f8163; --green-300:#cde0d4; --green-100:#e4ede7; --green-50:#eef4ef;
  --gold-700:#9c6f24; --gold-600:#b3842f; --gold-500:#c79a47; --gold-300:#e6d3a4; --gold-100:#f3ead2;
  --cream:#f6f3ea; --paper:#fffdf7; --paper-2:#fbf8f0;
  --ink:#1c231e; --ink-soft:#5c655d; --ink-faint:#8a9189;
  --line:#e8e3d6; --line-soft:#f0ece1;
  --primary:var(--green-700); --accent:var(--gold-600); --bg:#faf8f2; --danger:#b4452f;
  --shadow-sm:0 1px 2px rgba(20,40,30,.05),0 1px 3px rgba(20,40,30,.04);
  --shadow-md:0 6px 20px rgba(20,40,30,.07),0 2px 6px rgba(20,40,30,.04);
  --shadow-lg:0 24px 60px rgba(14,40,30,.16),0 8px 24px rgba(14,40,30,.10);
  --font-sans:"Hanken Grotesk",ui-sans-serif,system-ui,sans-serif;
  --font-serif:"Spectral",Georgia,"Times New Roman",serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --pr:22px;
  --gut:20px;            
  --colw:480px; }
.sp2-root *, .sp2-root *::before, .sp2-root *::after{ box-sizing:border-box; margin:0; padding:0; }
.sp2-root{ scroll-behavior:smooth; }
.sp2-root{ font-family:var(--font-sans); color:var(--ink);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  font-feature-settings:"ss01"; font-size:16px; line-height:1.55;
  
  background:
    radial-gradient(ellipse 70% 50% at 20% 12%, #efe7d6 0%, transparent 60%),
    radial-gradient(ellipse 60% 45% at 84% 92%, #e3ecdf 0%, transparent 62%),
    linear-gradient(160deg,#f1ebdd,#ece4d3);
  min-height:100vh; }
.sp2-root button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
.sp2-root img, .sp2-root svg{ display:block; }
.sp2-root a{ color:inherit; text-decoration:none; }
.sp2-root ::selection{ background:var(--green-100); color:var(--green-800); }
.sp2-root .app{ width:100%; max-width:var(--colw); margin:0 auto; background:var(--bg);
  min-height:100vh; position:relative;
  box-shadow:0 40px 90px -40px rgba(20,40,30,.45);
  padding-bottom:84px; }
.sp2-root .gx{ padding-left:var(--gut); padding-right:var(--gut); }
.sp2-root .btn-cta{ display:flex; align-items:center; justify-content:center; gap:9px; width:100%;
  background:linear-gradient(180deg,var(--green-600),var(--green-700)); color:#fdfcf5;
  border-radius:14px; padding:17px; font-size:15px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  box-shadow:0 12px 28px rgba(20,70,52,.26); transition:transform .12s,background .18s; }
.sp2-root .btn-cta:active{ transform:translateY(1px) scale(.995); }
.sp2-root .btn-cta svg{ width:19px; height:19px; stroke:currentColor; fill:none; stroke-width:1.9; }
.sp2-root .btn-cta[aria-busy="true"]{ opacity:.8; pointer-events:none; }
.sp2-root .eyebrow{ display:inline-flex; align-items:center; gap:7px; background:var(--green-50); border:1px solid var(--green-100); color:var(--green-700);
  font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; padding:7px 14px; border-radius:999px; }
.sp2-root .eyebrow svg{ width:13px; height:13px; color:var(--accent); stroke:currentColor; fill:none; stroke-width:2; }
.sp2-root .sec{ padding:46px 0; }
.sp2-root .sec.alt{ background:var(--cream); }
.sp2-root .sec-head{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:13px; margin-bottom:28px; }
.sp2-root .sec-title{ font-family:var(--font-serif); font-weight:600; font-size:30px; line-height:1.08; letter-spacing:-.3px; color:var(--green-900); text-wrap:balance; }
.sp2-root .sec-title em{ font-style:italic; color:var(--accent); }
.sp2-root .sec-sub{ font-size:15px; color:var(--ink-soft); line-height:1.55; max-width:36ch; text-wrap:pretty; }
.sp2-root .reveal{ opacity:0; transform:translateY(16px); transition:opacity .7s var(--ease),transform .7s var(--ease); }
.sp2-root .reveal.in{ opacity:1; transform:none; }
.sp2-root @media (prefers-reduced-motion:reduce){ .reveal{ transition:none; opacity:1; transform:none; } }
.sp2-root .announce{ background:var(--green-900); color:#eef4ef; height:40px; overflow:hidden; position:relative; }
.sp2-root .announce-msg{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; gap:8px;
  font-size:12px; font-weight:600; letter-spacing:.02em; white-space:nowrap;
  opacity:0; transform:translateY(8px); transition:opacity .5s var(--ease),transform .5s var(--ease); }
.sp2-root .announce-msg.on{ opacity:1; transform:none; }
.sp2-root .announce-msg b{ color:var(--gold-300); font-weight:800; }
.sp2-root .head{ position:sticky; top:0; z-index:60; background:color-mix(in srgb,var(--paper) 92%,transparent);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.sp2-root .head-in{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px var(--gut); }
.sp2-root .brand{ display:flex; align-items:center; gap:9px; }
.sp2-root .brand-leaf{ width:30px; height:30px; border-radius:8px; background:var(--green-700); display:flex; align-items:center; justify-content:center; color:#f3e6c4; }
.sp2-root .brand-leaf svg{ width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.8; }
.sp2-root .brand-name{ font-family:var(--font-serif); font-weight:600; font-size:18px; color:var(--green-800); }
.sp2-root .brand-name sup{ font-size:10px; }
.sp2-root .head-actions{ display:flex; align-items:center; gap:8px; }
.sp2-root .icon-btn{ width:40px; height:40px; border-radius:999px; display:grid; place-items:center; color:var(--green-800); position:relative; transition:background .15s; }
.sp2-root .icon-btn:hover{ background:var(--green-50); }
.sp2-root .icon-btn svg{ width:21px; height:21px; stroke:currentColor; fill:none; stroke-width:1.8; }
.sp2-root .icon-btn .ct{ position:absolute; top:2px; right:1px; background:var(--green-700); color:#f3e6c4; min-width:17px; height:17px; padding:0 4px; border-radius:999px; font-size:10.5px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; }
.sp2-root .head-cta{ background:var(--green-700); color:#fcfbf4; padding:10px 16px; border-radius:999px; font-weight:700; font-size:13px; }
.sp2-root .hero{ padding:18px var(--gut) 8px; }
.sp2-root .gal-main{ position:relative; aspect-ratio:1/1.02; border-radius:var(--pr); overflow:hidden;
  border:1px solid var(--line); box-shadow:var(--shadow-lg); touch-action:pan-y; cursor:grab; }
.sp2-root .gal-main:active{ cursor:grabbing; }
.sp2-root .gal-stage{ position:absolute; inset:0; transition:background .35s var(--ease);
  background:
    repeating-linear-gradient(135deg, rgba(154,116,42,.07) 0 2px, transparent 2px 13px),
    radial-gradient(ellipse 80% 70% at 32% 26%, #fbf6ea 0%, transparent 60%),
    linear-gradient(155deg,#f2ecdc,#ece3cf); }
.sp2-root .gal-stage.pic-green{ background:
  repeating-linear-gradient(135deg, rgba(20,60,45,.08) 0 2px, transparent 2px 13px),
  radial-gradient(ellipse 80% 70% at 32% 26%, #eef5ee 0%, transparent 60%),
  linear-gradient(155deg,#dfe9df,#cdddd0); }
.sp2-root .gal-stage.pic-terra{ background:
  repeating-linear-gradient(135deg, rgba(120,60,30,.08) 0 2px, transparent 2px 13px),
  radial-gradient(ellipse 80% 70% at 32% 26%, #fbf0e2 0%, transparent 60%),
  linear-gradient(155deg,#f0e2d2,#e6d2bb); }
.sp2-root .gal-stage.pic-pink{ background:
  repeating-linear-gradient(135deg, rgba(120,40,70,.07) 0 2px, transparent 2px 13px),
  radial-gradient(ellipse 80% 70% at 32% 26%, #fbeef2 0%, transparent 60%),
  linear-gradient(155deg,#f3e2e8,#e9cdd6); }
.sp2-root .gal-stage::after{ content:attr(data-label); position:absolute; left:16px; bottom:13px; font-family:var(--font-sans);
  font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:rgba(112,92,52,.5); font-weight:700; }
.sp2-root .gal-badges{ position:absolute; top:14px; left:14px; z-index:5; display:flex; flex-direction:column; gap:7px; }
.sp2-root .gal-badge{ display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; padding:7px 12px; border-radius:999px; box-shadow:var(--shadow-md); width:fit-content; }
.sp2-root .gal-badge.green{ background:var(--green-700); color:#f3e6c4; }
.sp2-root .gal-badge.paper{ background:var(--paper); color:var(--green-800); border:1px solid var(--line); }
.sp2-root .gal-vid{ position:absolute; top:30%; left:50%; transform:translate(-50%,-50%); z-index:5; display:flex; align-items:center; gap:8px;
  background:rgba(255,253,247,.88); backdrop-filter:blur(6px); border:1px solid var(--line); border-radius:999px;
  padding:7px 15px 7px 7px; font-size:12px; font-weight:700; color:var(--green-900); box-shadow:var(--shadow-md); }
.sp2-root .gal-vid .pi{ width:24px; height:24px; border-radius:999px; background:var(--green-700); display:grid; place-items:center; }
.sp2-root .gal-vid .pi svg{ width:11px; height:11px; fill:#f3e6c4; margin-left:1px; }
.sp2-root .gal-over{ position:absolute; left:0; right:0; bottom:0; z-index:4; padding:26px 22px 52px; display:flex; flex-direction:column; align-items:center; text-align:center;
  background:linear-gradient(transparent, rgba(236,227,207,.72) 38%, rgba(232,222,200,.97)); transition:opacity .3s var(--ease); }
.sp2-root .gal-main.not-hero .gal-over{ opacity:0; visibility:hidden; }
.sp2-root .gal-eyebrow{ font-family:var(--font-serif); font-size:12px; letter-spacing:.04em; color:var(--green-700);
  border:1px solid var(--green-300); background:rgba(255,253,247,.7); padding:5px 13px; border-radius:999px; }
.sp2-root .gal-head{ font-family:var(--font-serif); font-size:28px; font-weight:600; line-height:1.06; letter-spacing:-.4px; margin-top:13px; color:var(--green-900); max-width:11ch; text-wrap:balance; }
.sp2-root .gal-head em{ font-style:italic; color:var(--accent); }
.sp2-root .gal-dots{ display:flex; position:absolute; left:0; right:0; bottom:16px; justify-content:center; gap:6px; z-index:6; }
.sp2-root .gal-dots button{ width:6px; height:6px; border-radius:999px; background:rgba(90,70,40,.3); transition:all .2s var(--ease); }
.sp2-root .gal-dots button.on{ background:var(--green-700); width:18px; }
.sp2-root .buy{ padding:24px var(--gut) 8px; text-align:center; }
.sp2-root .buy-rating{ display:flex; align-items:center; justify-content:center; gap:8px; flex-wrap:wrap; }
.sp2-root .buy-stars{ color:var(--gold-500); font-size:14px; letter-spacing:1px; }
.sp2-root .buy-rating .num{ font-weight:700; font-size:14px; color:var(--ink); }
.sp2-root .buy-rating .rev{ font-size:13px; color:var(--ink-soft); text-decoration:underline; text-underline-offset:2px; }
.sp2-root .buy-bestseller{ display:inline-flex; align-items:center; gap:5px; background:var(--green-700); color:#f3e6c4;
  font-size:10.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; padding:4px 10px; border-radius:999px; }
.sp2-root .buy-title{ font-family:var(--font-serif); font-weight:600; font-size:34px; line-height:1.03; letter-spacing:-.4px; color:var(--green-900); margin-top:14px; }
.sp2-root .buy-title em{ font-style:italic; color:var(--accent); }
.sp2-root .buy-rec{ font-size:14px; font-weight:600; color:var(--accent); margin-top:9px; }
.sp2-root .buy-desc{ font-size:15px; line-height:1.55; color:var(--ink-soft); margin:12px auto 0; max-width:38ch; text-wrap:pretty; }
.sp2-root .buy-desc b{ color:var(--green-800); font-weight:700; }
.sp2-root .pills{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:22px; }
.sp2-root .buy > .pills:first-child{ margin-top:4px; margin-bottom:20px; }
.sp2-root .pill-stat{ text-align:center; background:var(--green-50); border:1px solid var(--green-100); border-radius:13px; padding:13px 4px; }
.sp2-root .pill-stat .k{ font-family:var(--font-serif); font-weight:700; font-size:21px; color:var(--green-800); line-height:1; }
.sp2-root .pill-stat .t{ font-size:10px; color:var(--green-700); margin-top:6px; font-weight:600; }
.sp2-root .modes{ display:flex; gap:10px; margin-top:22px; }
.sp2-root .mode{ flex:1; position:relative; padding:14px 8px; border-radius:14px; font-weight:700; font-size:13px; text-align:center;
  background:var(--paper); color:var(--ink-soft); box-shadow:inset 0 0 0 1.5px var(--line); transition:all .2s; }
.sp2-root .mode .m-sub{ display:block; font-size:10.5px; font-weight:600; opacity:.8; margin-top:3px; }
.sp2-root .mode.on{ background:var(--green-50); color:var(--green-800); box-shadow:0 0 0 1.5px var(--green-600) inset; }
.sp2-root .mode .save15{ position:absolute; top:-9px; left:50%; transform:translateX(-50%); background:var(--gold-600); color:#1c1404; font-size:10px; font-weight:800; padding:3px 9px; border-radius:999px; box-shadow:var(--shadow-sm); white-space:nowrap; }
.sp2-root .freq{ display:grid; grid-template-rows:1fr; opacity:1; margin-top:12px; transition:grid-template-rows .38s var(--ease),opacity .3s var(--ease),margin .38s var(--ease); }
.sp2-root .freq.collapsed{ grid-template-rows:0fr; opacity:0; margin-top:0; }
.sp2-root .freq-in{ overflow:hidden; min-height:0; }
.sp2-root .freq-row{ display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:var(--green-50); border:1px solid var(--green-100); border-radius:14px; padding:11px 12px 11px 14px; }
.sp2-root .freq-lab{ display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700; color:var(--green-800); }
.sp2-root .freq-lab svg{ width:17px; height:17px; stroke:var(--green-600); fill:none; stroke-width:1.9; }
.sp2-root .freq-seg{ display:flex; gap:3px; background:var(--paper); border-radius:999px; padding:4px; box-shadow:inset 0 0 0 1px var(--line); }
.sp2-root .freq-pill{ padding:7px 14px; border-radius:999px; font-size:12.5px; font-weight:700; color:var(--ink-soft); transition:all .2s var(--ease); white-space:nowrap; }
.sp2-root .freq-pill.on{ background:var(--green-700); color:#fcfbf4; box-shadow:0 3px 8px -2px rgba(20,70,52,.35); }
.sp2-root .pricebox{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:18px; margin-top:16px; text-align:left; box-shadow:var(--shadow-sm); }
.sp2-root .pricebox-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.sp2-root .pricebox .label{ font-size:12.5px; color:var(--ink-soft); font-weight:600; }
.sp2-root .pricebox .amount{ display:flex; align-items:baseline; gap:9px; margin-top:4px; }
.sp2-root .pricebox .amount b{ font-family:var(--font-serif); font-weight:700; font-size:32px; line-height:1; color:var(--green-800); font-variant-numeric:tabular-nums; }
.sp2-root .pricebox .amount s{ font-size:15px; color:var(--ink-faint); text-decoration:line-through; font-weight:600; }
.sp2-root .pricebox .perday{ font-size:12px; color:var(--ink-soft); font-weight:600; text-align:right; white-space:nowrap; }
.sp2-root .save-chip{ display:inline-flex; align-items:center; gap:5px; background:var(--gold-100); color:var(--gold-700); font-size:11.5px; font-weight:700; padding:5px 11px; border-radius:999px; margin-top:9px; }
.sp2-root .pricebox .btn-cta{ margin-top:15px; }
.sp2-root .reassure{ display:flex; align-items:center; justify-content:center; gap:16px; margin-top:13px; flex-wrap:wrap; }
.sp2-root .reassure span{ display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--ink-soft); font-weight:600; }
.sp2-root .reassure svg{ width:15px; height:15px; color:var(--green-600); stroke:currentColor; fill:none; stroke-width:1.8; }
.sp2-root .paylater{ display:flex; align-items:center; justify-content:center; gap:8px; margin-top:11px; padding-top:12px; border-top:1px solid var(--line); font-size:12px; color:var(--ink-soft); font-weight:600; flex-wrap:wrap; }
.sp2-root .pay-chip{ font-size:10.5px; font-weight:800; border-radius:6px; padding:4px 8px; }
.sp2-root .pay-tabby{ background:#C6F24E; color:#1A1A1A; }
.sp2-root .pay-tamara{ background:#E7E1FB; color:#4B2DBD; }
.sp2-root .trust{ display:flex; justify-content:space-between; gap:6px; margin-top:18px; }
.sp2-root .trust > div{ display:flex; flex-direction:column; align-items:center; gap:7px; flex:1; text-align:center; }
.sp2-root .trust svg{ width:20px; height:20px; color:var(--green-700); stroke:currentColor; fill:none; stroke-width:1.7; }
.sp2-root .trust .t{ font-size:10px; color:var(--ink-soft); font-weight:600; line-height:1.2; }
.sp2-root .ribbon-bg{ background:var(--green-900); color:#eef4ef; }
.sp2-root .ribbon{ display:grid; grid-template-columns:1fr 1fr; gap:13px 16px; padding:18px var(--gut); }
.sp2-root .ribbon span{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font-size:12.5px; font-weight:600; line-height:1.35; text-align:center; }
.sp2-root .ribbon svg{ width:15px; height:15px; flex-shrink:0; color:var(--gold-300); stroke:currentColor; fill:none; stroke-width:2; }
.sp2-root .press{ background:var(--paper); border-bottom:1px solid var(--line); padding:16px 0 18px; }
.sp2-root .press-label{ text-align:center; font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; margin-bottom:11px; }
.sp2-root .press-mask{ overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); }
.sp2-root .press-track{ display:flex; align-items:center; gap:38px; width:max-content; animation:marquee 28s linear infinite; padding-left:38px; }
.sp2-root .press-track span{ font-family:var(--font-serif); font-size:19px; font-weight:600; color:var(--green-900); opacity:.42; white-space:nowrap; }
.sp2-root @keyframes marquee{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
.sp2-root @media (prefers-reduced-motion:reduce){ .press-track{ animation:none; } }
.sp2-root .ugc{ background:#e7efe9; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.sp2-root .ugc-rating{ display:flex; align-items:center; justify-content:center; gap:8px; font-size:14px; font-weight:700; color:var(--green-900); }
.sp2-root .ugc-rating .ugc-stars{ color:var(--gold-500); font-size:16px; letter-spacing:1.5px; }
.sp2-root .ugc-rating .ugc-rev{ font-weight:600; color:var(--ink-soft); }
.sp2-root .rail{ display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none;
  padding:4px var(--gut) 6px; margin-top:20px; }
.sp2-root .rail::-webkit-scrollbar{ display:none; }
.sp2-root .vcard{ flex:0 0 64%; scroll-snap-align:start; aspect-ratio:5/8; border-radius:20px; position:relative; overflow:hidden; box-shadow:0 18px 36px -20px rgba(0,0,0,.45); text-align:left; }
.sp2-root .vcard.t1{ background:linear-gradient(160deg,#5a1a38,#2a0e1c); }
.sp2-root .vcard.t2{ background:linear-gradient(160deg,#1f6e4e,#0e3d2b); }
.sp2-root .vcard.t3{ background:linear-gradient(160deg,#9a5a2c,#4a2a12); }
.sp2-root .vcard.t4{ background:linear-gradient(160deg,#7a2348,#3a1228); }
.sp2-root .vcard.t5{ background:linear-gradient(160deg,#2d5c4d,#143028); }
.sp2-root .vtag{ position:absolute; top:12px; left:12px; z-index:2; font-family:var(--font-serif); font-size:9.5px; letter-spacing:.04em; color:rgba(255,255,255,.85); border:1px solid rgba(255,255,255,.4); padding:3px 8px; border-radius:999px; }
.sp2-root .vviews{ position:absolute; top:12px; right:12px; z-index:2; display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:700; color:#fff; background:rgba(0,0,0,.3); backdrop-filter:blur(4px); padding:4px 8px; border-radius:999px; }
.sp2-root .vplay-wrap{ position:absolute; inset:0; display:grid; place-items:center; z-index:2; }
.sp2-root .vplay{ width:52px; height:52px; border-radius:999px; background:rgba(255,255,255,.94); color:var(--green-900); display:grid; place-items:center; box-shadow:0 8px 20px rgba(0,0,0,.3); }
.sp2-root .vplay svg{ width:18px; height:18px; fill:currentColor; margin-left:2px; }
.sp2-root .vcap{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:32px 13px 13px; background:linear-gradient(transparent,rgba(0,0,0,.64)); }
.sp2-root .vcap .hn{ font-size:12px; font-weight:700; color:#fff; }
.sp2-root .vcap .ct{ display:block; font-size:12px; color:rgba(255,255,255,.92); line-height:1.35; margin-top:2px; }
.sp2-root .ugc-swipe{ display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:700; color:var(--green-700); justify-content:center; width:100%; margin-top:14px; }
.sp2-root .ugc-swipe svg{ width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2; animation:nudge 1.4s var(--ease) infinite; }
.sp2-root @keyframes nudge{ 0%,100%{transform:translateX(0)} 50%{transform:translateX(5px)} }
.sp2-root .sci-tabs{ display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-bottom:14px; }
.sp2-root .sci-tab{ display:flex; flex-direction:column; align-items:center; gap:9px; padding:14px 6px; border-radius:15px; background:var(--paper); border:1.5px solid var(--line); text-align:center; transition:all .2s; }
.sp2-root .sci-tab.on{ background:var(--green-50); border-color:var(--green-600); }
.sp2-root .sci-ic{ width:38px; height:38px; border-radius:12px; display:grid; place-items:center; font-family:var(--font-serif); font-weight:700; font-size:15px; background:var(--gold-100); border:1px solid var(--gold-300); color:var(--gold-700); transition:all .2s; }
.sp2-root .sci-tab.on .sci-ic{ background:var(--green-700); border-color:var(--green-700); color:#f3e6c4; }
.sp2-root .sci-tt{ display:flex; flex-direction:column; gap:1px; }
.sp2-root .sci-tt .n{ font-family:var(--font-serif); font-size:14px; font-weight:600; color:var(--green-900); line-height:1.1; }
.sp2-root .sci-tt .s{ font-size:10.5px; font-weight:700; color:var(--ink-faint); }
.sp2-root .sci-tab.on .sci-tt .s{ color:var(--accent); }
.sp2-root .sci-panel{ display:none; background:#fff; border:1px solid var(--line); border-radius:var(--pr); padding:26px 22px; box-shadow:var(--shadow-sm); text-align:center; }
.sp2-root .sci-panel.on{ display:block; animation:fadeUp .4s var(--ease); }
.sp2-root .sci-chip{ display:inline-block; font-size:10.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); background:var(--gold-100); border:1px solid var(--gold-300); padding:5px 12px; border-radius:999px; }
.sp2-root .sci-name{ font-family:var(--font-serif); font-size:24px; font-weight:600; color:var(--green-900); margin-top:13px; line-height:1.12; text-wrap:balance; }
.sp2-root .sci-ing{ font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--ink-faint); margin-top:8px; }
.sp2-root .sci-desc{ font-size:14.5px; line-height:1.6; color:var(--ink-soft); margin-top:14px; text-wrap:pretty; }
.sp2-root .sci-panel .mech-pills{ justify-content:center; margin-top:18px; }
.sp2-root .mech{ display:flex; flex-direction:column; gap:14px; }
.sp2-root .mech-card{ background:#fff; border:1.5px solid var(--line); border-radius:18px; padding:22px; box-shadow:var(--shadow-sm); }
.sp2-root .mech-top{ display:flex; align-items:center; gap:13px; }
.sp2-root .mech-ic{ width:44px; height:44px; flex-shrink:0; border-radius:13px; display:grid; place-items:center;
  background:var(--gold-100); border:1px solid var(--gold-300); color:var(--gold-700); font-family:var(--font-serif); font-weight:700; font-size:17px; }
.sp2-root .mech-tag{ font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.sp2-root .mech-name{ font-family:var(--font-serif); font-weight:600; font-size:20px; color:var(--green-900); line-height:1.12; margin-top:2px; }
.sp2-root .mech-ing{ font-size:11.5px; font-weight:600; color:var(--ink-faint); margin-top:13px; padding-top:13px; border-top:1px solid var(--line); }
.sp2-root .mech-short{ font-size:14px; line-height:1.6; color:var(--ink-soft); margin-top:7px; }
.sp2-root .mech-pills{ display:flex; gap:7px; flex-wrap:wrap; margin-top:14px; }
.sp2-root .mech-pill{ font-size:10.5px; font-weight:600; background:var(--green-50); border:1px solid var(--green-100); border-radius:999px; padding:5px 11px; color:var(--green-700); }
.sp2-root .cmp{ display:flex; flex-direction:column; gap:16px; }
.sp2-root .cmp-card{ background:var(--paper); border:1px solid var(--line); border-radius:18px; padding:20px; box-shadow:var(--shadow-sm); }
.sp2-root .cmp-card-h{ font-family:var(--font-serif); font-size:17px; font-weight:600; color:var(--green-900); margin-bottom:15px; }
.sp2-root .cmp-bars{ display:flex; flex-direction:column; gap:11px; }
.sp2-root .cmp-bar{ display:grid; grid-template-columns:92px 1fr 38px; align-items:center; gap:10px; }
.sp2-root .cb-lab{ font-size:12px; font-weight:700; color:var(--green-900); white-space:nowrap; }
.sp2-root .cb-track{ position:relative; height:12px; border-radius:999px; background:#fff; box-shadow:inset 0 0 0 1px var(--line); overflow:hidden; }
.sp2-root .cb-fill{ position:absolute; inset:0 auto 0 0; width:var(--p); border-radius:999px; background:linear-gradient(90deg,#2f7a5a,#3f8a68); transition:width 1.1s var(--ease); }
.sp2-root .cb-fill.gold{ background:linear-gradient(90deg,#c0913e,#dcb35f); }
.sp2-root .reveal:not(.in) .cb-fill{ width:0; }
.sp2-root .cb-val{ font-size:13px; font-weight:800; color:var(--green-800); text-align:right; font-variant-numeric:tabular-nums; }
.sp2-root .cmp-note{ font-size:11px; color:var(--ink-faint); font-weight:500; margin-top:14px; }
.sp2-root .cmp-collapse{ background:#fff; border:1px solid var(--line); border-radius:var(--pr); box-shadow:var(--shadow-sm); overflow:hidden; transition:border-color .2s,box-shadow .2s; }
.sp2-root .cmp-collapse.open{ border-color:var(--green-100); box-shadow:var(--shadow-md); }
.sp2-root .cmp-head-btn{ display:flex; align-items:center; justify-content:center; gap:12px; width:100%; padding:18px 44px; text-align:center; position:relative; }
.sp2-root .cmp-head-tt{ min-width:0; text-align:center; }
.sp2-root .cmp-head-row{ display:flex; align-items:center; justify-content:center; gap:10px; }
.sp2-root .cmp-head-n{ font-family:var(--font-serif); font-size:18px; font-weight:600; color:var(--green-900); }
.sp2-root .cmp-best{ font-size:10px; font-weight:800; letter-spacing:.06em; color:#f3e6c4; background:var(--green-700); padding:4px 10px; border-radius:999px; }
.sp2-root .cmp-head-s{ font-size:12.5px; font-weight:600; color:var(--ink-soft); margin-top:5px; }
.sp2-root .cmp-chev{ position:absolute; right:16px; top:18px; color:var(--ink-faint); transition:transform .25s,color .2s; }
.sp2-root .cmp-chev svg{ width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2; }
.sp2-root .cmp-collapse.open .cmp-chev{ transform:rotate(180deg); color:var(--green-700); }
.sp2-root .cmp-wrap{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .32s var(--ease); }
.sp2-root .cmp-collapse.open .cmp-wrap{ grid-template-rows:1fr; }
.sp2-root .cmp-inner{ overflow:hidden; }
.sp2-root .cmp-inner .cmp{ gap:0; padding:0 18px 6px; }
.sp2-root .cmp-inner .cmp-card{ border:0; background:transparent; box-shadow:none; border-radius:0; padding:16px 0; }
.sp2-root .cmp-inner .cmp-card + .cmp-card{ border-top:1px solid var(--line); }
.sp2-root .cmp-foot{ text-align:center; font-size:11px; color:var(--ink-faint); font-weight:500; margin-top:14px; }
.sp2-root .tl-track{ position:relative; padding:0 4px; }
.sp2-root .tl-line{ position:absolute; left:14px; right:14px; top:15px; height:5px; border-radius:999px; background:var(--green-100); }
.sp2-root .tl-fill{ position:absolute; left:14px; top:15px; height:5px; border-radius:999px; background:linear-gradient(90deg,var(--green-500),var(--green-700)); transition:width .45s var(--ease); }
.sp2-root .tl-steps{ display:flex; justify-content:space-between; position:relative; }
.sp2-root .tl-step{ display:flex; flex-direction:column; align-items:center; gap:9px; }
.sp2-root .tl-dot{ width:24px; height:24px; border-radius:999px; background:var(--paper); border:2.5px solid var(--green-100); display:grid; place-items:center; color:#fff; transition:all .25s; }
.sp2-root .tl-dot svg{ width:12px; height:12px; stroke:currentColor; fill:none; stroke-width:2.4; }
.sp2-root .tl-step.done .tl-dot{ background:var(--green-700); border-color:var(--green-700); }
.sp2-root .tl-step.active .tl-dot{ width:30px; height:30px; box-shadow:0 0 0 5px var(--green-50); background:var(--green-700); border-color:var(--green-700); }
.sp2-root .tl-step .wk{ font-size:11px; font-weight:700; color:var(--ink-faint); }
.sp2-root .tl-step.active .wk{ color:var(--green-800); }
.sp2-root .tl-detail{ margin-top:22px; background:var(--paper); border:1px solid var(--line); border-radius:var(--pr); padding:22px; box-shadow:var(--shadow-sm); text-align:center; }
.sp2-root .tl-detail .tl-track{ margin-bottom:20px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.sp2-root .tl-detail .row{ display:flex; flex-direction:column; align-items:center; gap:10px; }
.sp2-root .tl-wk{ display:inline-block; font-size:11.5px; font-weight:700; color:#fcfbf4; background:var(--green-700); padding:5px 13px; border-radius:999px; }
.sp2-root .tl-ttl{ font-family:var(--font-serif); font-weight:600; font-size:23px; color:var(--green-900); }
.sp2-root .tl-detail p{ font-size:14.5px; line-height:1.6; color:var(--ink-soft); margin-top:12px; max-width:42ch; margin-left:auto; margin-right:auto; text-wrap:pretty; }
.sp2-root .tl-insight{ display:inline-flex; align-items:center; gap:6px; margin-top:15px; font-size:12px; font-weight:700; color:var(--green-700); background:var(--green-50); border:1px solid var(--green-100); border-radius:999px; padding:7px 13px; }
.sp2-root .prog{ margin-top:18px; background:var(--paper); border:1px solid var(--line); border-radius:var(--pr); padding:22px 18px; box-shadow:var(--shadow-sm); }
.sp2-root .prog-legend{ display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-bottom:20px; }
.sp2-root .prog-legend span{ display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; color:var(--ink-soft); }
.sp2-root .prog-legend .lg{ width:10px; height:10px; border-radius:3px; }
.sp2-root .lg-h{ background:var(--green-600); }
.sp2-root .lg-r{ background:var(--gold-500); }
.sp2-root .lg-f{ background:#b14a60; }
.sp2-root .prog-chart{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.sp2-root .prog-col{ display:flex; flex-direction:column; align-items:center; }
.sp2-root .prog-bars{ display:flex; align-items:flex-end; justify-content:center; gap:5px; height:118px; width:100%; border-bottom:2px solid var(--line); }
.sp2-root .pbar{ width:13px; border-radius:6px 6px 0 0; height:0; transition:height .9s var(--ease); }
.sp2-root .pbar.h{ background:linear-gradient(180deg,var(--green-500),var(--green-700)); }
.sp2-root .pbar.r{ background:linear-gradient(180deg,var(--gold-500),var(--gold-700)); }
.sp2-root .pbar.f{ background:linear-gradient(180deg,#c45f74,#8a2f45); }
.sp2-root .reveal.in .pbar{ height:var(--h); }
.sp2-root .prog-col:nth-child(2) .pbar{ transition-delay:.1s; }
.sp2-root .prog-col:nth-child(3) .pbar{ transition-delay:.2s; }
.sp2-root .prog-col:nth-child(4) .pbar{ transition-delay:.3s; }
.sp2-root .prog-wk{ font-size:11px; font-weight:800; color:var(--green-800); margin-top:11px; }
.sp2-root .prog-cap{ font-size:10px; color:var(--ink-faint); font-weight:600; margin-top:2px; text-align:center; }
.sp2-root .prog-foot{ display:flex; align-items:center; gap:8px; margin-top:18px; padding-top:15px; border-top:1px solid var(--line-soft); font-size:12.5px; font-weight:600; color:var(--ink-soft); }
.sp2-root .prog-foot svg{ width:17px; height:17px; flex-shrink:0; stroke:var(--green-600); fill:none; stroke-width:1.9; }
.sp2-root .impv{ margin-top:16px; background:var(--paper); border:1px solid var(--line); border-radius:var(--pr); padding:22px 18px; box-shadow:var(--shadow-sm); }
.sp2-root .impv-h{ display:flex; align-items:center; gap:7px; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); margin-bottom:18px; }
.sp2-root .impv-h svg{ width:14px; height:14px; fill:currentColor; flex-shrink:0; }
.sp2-root .impv-h b{ color:var(--green-800); }
.sp2-root .impv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px 16px; }
.sp2-root .impv-top{ display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:8px; }
.sp2-root .impv-lab{ font-size:12.5px; font-weight:700; color:var(--green-900); line-height:1.2; }
.sp2-root .impv-val{ font-size:13px; font-weight:800; color:var(--green-700); font-variant-numeric:tabular-nums; }
.sp2-root .impv-track{ position:relative; height:11px; border-radius:999px; background:#fff; box-shadow:inset 0 0 0 1px var(--line); overflow:hidden; }
.sp2-root .impv-fill{ position:absolute; inset:0 auto 0 0; width:0; border-radius:999px; background:linear-gradient(90deg,var(--green-500),var(--green-700)); transition:width .9s var(--ease); }
.sp2-root .reveal.in .impv-fill{ width:var(--p); }
.sp2-root .impv-note{ font-size:11px; color:var(--ink-faint); font-weight:500; margin-top:20px; }
.sp2-root .lifestyle-banner{ position:relative; aspect-ratio:16/9; border-radius:var(--pr); overflow:hidden; margin-bottom:30px; border:1px solid var(--line); box-shadow:var(--shadow-md);
  background:
    repeating-linear-gradient(135deg, rgba(20,60,45,.06) 0 2px, transparent 2px 14px),
    radial-gradient(ellipse 70% 80% at 70% 20%, #eef5ee 0%, transparent 60%),
    linear-gradient(150deg,#e3ecdf,#cdddd0); }
.sp2-root .lifestyle-banner::after{ content:attr(data-label); position:absolute; left:16px; bottom:13px; font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:rgba(27,83,65,.55); font-weight:700; }
.sp2-root .lb-quote{ position:absolute; left:0; right:0; bottom:0; padding:30px 22px 20px; text-align:center;
  background:linear-gradient(transparent, rgba(231,239,233,.6) 40%, rgba(221,232,222,.95)); }
.sp2-root .lb-quote .q{ font-family:var(--font-serif); font-size:18px; font-style:italic; font-weight:600; color:var(--green-900); line-height:1.3; text-wrap:balance; }
.sp2-root .lb-quote .a{ font-size:11.5px; font-weight:700; letter-spacing:.04em; color:var(--green-700); margin-top:9px; }
.sp2-root .routine{ display:flex; flex-direction:row; gap:16px; }
.sp2-root .rt-moment{ border-radius:var(--pr); padding:20px; border:1px solid var(--line); }
.sp2-root .rt-moment.am{ background:linear-gradient(168deg,#fbf3e0,#f6ebd4); border-color:var(--gold-100); }
.sp2-root .rt-moment.pm{ background:linear-gradient(168deg,#e9f0e9,#dde8de); border-color:var(--green-100); }
.sp2-root .rt-m-head{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.sp2-root .rt-ico{ width:42px; height:42px; border-radius:13px; display:grid; place-items:center; flex-shrink:0; }
.sp2-root .rt-moment.am .rt-ico{ background:var(--gold-100); color:var(--gold-700); border:1px solid var(--gold-300); }
.sp2-root .rt-moment.pm .rt-ico{ background:#fff; color:var(--green-700); border:1px solid var(--green-100); }
.sp2-root .rt-ico svg{ width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.8; }
.sp2-root .rt-m-tt{ flex:1; min-width:0; }
.sp2-root .rt-m-name{ font-family:var(--font-serif); font-size:19px; font-weight:600; color:var(--green-900); }
.sp2-root .rt-m-sub{ font-size:12px; color:var(--ink-soft); font-weight:600; margin-top:1px; }
.sp2-root .rt-m-time{ font-size:11px; font-weight:800; color:#fcfbf4; background:var(--green-700); padding:5px 12px; border-radius:999px; white-space:nowrap; }
.sp2-root .rt-moment.am .rt-m-time{ background:var(--gold-600); color:#1c1404; }
.sp2-root .rt-card{ display:flex; gap:13px; background:rgba(255,255,255,.74); border:1px solid rgba(255,255,255,.9); border-radius:15px; padding:14px; box-shadow:var(--shadow-sm); }
.sp2-root .rt-card + .rt-card{ margin-top:11px; }
.sp2-root .rt-vial-wrap{ position:relative; flex-shrink:0; }
.sp2-root .rt-vial{ width:28px; height:62px; border-radius:999px; box-shadow:inset 4px 4px 10px rgba(255,255,255,.25),inset -5px -7px 13px rgba(0,0,0,.3),0 6px 14px -6px rgba(0,0,0,.35); }
.sp2-root .v-collagen{ background:linear-gradient(145deg,#b14a60,#5a1730); }
.sp2-root .v-asta{ background:linear-gradient(145deg,#2f8163,#0e3d2b); }
.sp2-root .v-gluta{ background:linear-gradient(145deg,#e9b8c6,#b8607a); }
.sp2-root .rt-num{ position:absolute; top:-7px; left:-7px; width:22px; height:22px; border-radius:999px; background:var(--green-900); color:#f3e6c4; font-size:11px; font-weight:800; display:grid; place-items:center; border:2px solid #fff; }
.sp2-root .rt-c-body{ min-width:0; }
.sp2-root .rt-c-name{ font-family:var(--font-serif); font-size:16px; font-weight:600; color:var(--green-900); }
.sp2-root .rt-c-ing{ font-size:10.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--accent); margin-top:2px; }
.sp2-root .rt-c-how{ font-size:13px; line-height:1.55; color:var(--ink-soft); margin-top:9px; }
.sp2-root .rt-chip{ display:inline-flex; align-items:center; gap:5px; margin-top:11px; font-size:11px; font-weight:700; color:var(--green-700); background:#fff; border:1px solid var(--green-100); border-radius:999px; padding:5px 11px; }
.sp2-root .rt-chip svg{ width:12px; height:12px; stroke:currentColor; fill:none; stroke-width:2; }
.sp2-root .htt-tabs{ display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-bottom:14px; }
.sp2-root .htt-tab{ display:flex; flex-direction:column; align-items:center; gap:9px; padding:14px 6px; border-radius:15px; background:#fff; border:1.5px solid var(--line); text-align:center; transition:all .2s; }
.sp2-root .htt-tab.on{ background:var(--green-50); border-color:var(--green-600); }
.sp2-root .htt-vial{ width:20px; height:46px; border-radius:999px; box-shadow:inset 4px 4px 9px rgba(255,255,255,.25),inset -5px -6px 12px rgba(0,0,0,.3),0 5px 11px -5px rgba(0,0,0,.35); transition:transform .25s var(--ease); }
.sp2-root .htt-tab.on .htt-vial{ transform:scale(1.06); }
.sp2-root .htt-tt{ display:flex; flex-direction:column; gap:1px; }
.sp2-root .htt-tt .n{ font-family:var(--font-serif); font-size:14px; font-weight:600; color:var(--green-900); line-height:1.1; }
.sp2-root .htt-tt .s{ font-size:10.5px; font-weight:700; color:var(--ink-faint); }
.sp2-root .htt-tab.on .htt-tt .s{ color:var(--accent); }
.sp2-root .htt-panel{ display:none; background:#fff; border:1px solid var(--line); border-radius:var(--pr); padding:26px 22px; box-shadow:var(--shadow-sm); text-align:center; }
.sp2-root .htt-panel.on{ display:block; animation:fadeUp .4s var(--ease); }
.sp2-root .htt-moment{ display:inline-flex; align-items:center; gap:7px; font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; padding:6px 13px; border-radius:999px; }
.sp2-root .htt-moment svg{ width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:1.8; }
.sp2-root .htt-moment.am{ background:var(--gold-100); border:1px solid var(--gold-300); color:var(--gold-700); }
.sp2-root .htt-moment.pm{ background:var(--green-50); border:1px solid var(--green-100); color:var(--green-700); }
.sp2-root .htt-name{ font-family:var(--font-serif); font-size:23px; font-weight:600; color:var(--green-900); margin-top:13px; line-height:1.12; text-wrap:balance; }
.sp2-root .htt-ing{ font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--ink-faint); margin-top:7px; }
.sp2-root .htt-how{ font-size:14.5px; line-height:1.6; color:var(--ink-soft); margin-top:13px; text-wrap:pretty; }
.sp2-root .htt-when{ display:inline-flex; align-items:center; gap:7px; margin-top:16px; font-size:12px; font-weight:700; color:var(--green-700); background:var(--green-50); border:1px solid var(--green-100); border-radius:999px; padding:7px 14px; }
.sp2-root .htt-when svg{ width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2.4; }
.sp2-root .htt-method{ margin-top:16px; background:var(--paper); border:1px solid var(--line); border-radius:var(--pr); padding:22px 18px; box-shadow:var(--shadow-sm); }
.sp2-root .htt-method-h{ text-align:center; font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:16px; }
.sp2-root .htt-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.sp2-root .htt-step{ display:flex; flex-direction:column; align-items:center; gap:9px; }
.sp2-root .htt-step .ring{ width:48px; height:48px; border-radius:999px; background:var(--gold-100); border:1px solid var(--gold-300); color:var(--gold-700); display:grid; place-items:center; }
.sp2-root .htt-step .ring svg{ width:23px; height:23px; stroke:currentColor; fill:none; stroke-width:1.6; }
.sp2-root .htt-step .l{ font-family:var(--font-serif); font-size:14px; font-weight:600; color:var(--green-900); }
.sp2-root .htt-iced{ display:flex; align-items:center; gap:13px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line-soft); }
.sp2-root .htt-iced .ici{ width:44px; height:44px; flex-shrink:0; border-radius:13px; background:#e7f0ee; border:1px solid #c5dcd5; color:#1f6e60; display:grid; place-items:center; }
.sp2-root .htt-iced .ici svg{ width:24px; height:24px; stroke:currentColor; fill:none; stroke-width:1.6; }
.sp2-root .htt-iced b{ display:block; font-family:var(--font-serif); font-size:16px; font-weight:600; color:var(--green-900); }
.sp2-root .htt-iced span{ font-size:12.5px; color:var(--ink-soft); line-height:1.45; }
.sp2-root .builder{ background:#fff; border:1px solid var(--line); border-radius:var(--pr); padding:20px 18px; box-shadow:var(--shadow-sm); }
.sp2-root .ladder{ margin-bottom:22px; }
.sp2-root .ladder-track{ position:relative; height:8px; border-radius:999px; background:var(--green-100); margin:32px 8px 0; }
.sp2-root .ladder-fill{ position:absolute; left:0; top:0; bottom:0; border-radius:999px; width:0; background:linear-gradient(90deg,var(--green-500),var(--green-700)); transition:width .5s var(--ease); }
.sp2-root .ladder-ms{ position:absolute; inset:0; }
.sp2-root .milestone{ position:absolute; top:50%; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; }
.sp2-root .ms-dot{ width:22px; height:22px; border-radius:999px; background:var(--paper); border:2.5px solid var(--green-100); display:grid; place-items:center; color:#fff; transition:all .3s var(--ease); position:relative; z-index:2; }
.sp2-root .ms-dot svg{ width:11px; height:11px; stroke:currentColor; fill:none; stroke-width:2.6; }
.sp2-root .milestone.hit .ms-dot{ background:var(--green-700); border-color:var(--green-700); transform:scale(1.04); }
.sp2-root .milestone.justhit .ms-dot{ animation:msPop .45s var(--ease); }
.sp2-root @keyframes msPop{ 0%{transform:scale(.6)} 55%{transform:scale(1.28)} 100%{transform:scale(1.04)} }
.sp2-root .ms-label{ position:absolute; top:-24px; font-size:11px; font-weight:800; color:var(--ink-faint); white-space:nowrap; transition:color .3s; }
.sp2-root .milestone.hit .ms-label{ color:var(--green-700); }
.sp2-root .ladder-hint{ text-align:center; margin-top:28px; font-size:13.5px; color:var(--ink-soft); font-weight:600; }
.sp2-root .ladder-hint b{ color:var(--green-700); }
.sp2-root .slots{ display:grid; grid-template-columns:repeat(4,1fr); gap:9px; margin-bottom:20px; }
.sp2-root .slot{ position:relative; aspect-ratio:.82; border-radius:14px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; }
.sp2-root .slot-empty{ border:2px dashed var(--line); background:var(--paper-2); color:var(--ink-faint); }
.sp2-root .slot-empty.next{ border-color:var(--green-500); background:var(--green-50); }
.sp2-root .slot-empty .plus{ width:26px; height:26px; border-radius:999px; display:grid; place-items:center; background:#fff; border:1px solid var(--line); }
.sp2-root .slot-empty .plus svg{ width:14px; height:14px; stroke:var(--ink-faint); fill:none; stroke-width:2.2; }
.sp2-root .slot-empty.next .plus svg{ stroke:var(--green-600); }
.sp2-root .slot-filled{ border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.sp2-root .slot.pop{ animation:slotPop .4s var(--ease); }
.sp2-root @keyframes slotPop{ 0%{transform:scale(.5);opacity:0} 60%{transform:scale(1.08)} 100%{transform:scale(1);opacity:1} }
.sp2-root .slot-vial{ width:26px; height:54px; border-radius:999px; box-shadow:inset 5px 5px 12px rgba(255,255,255,.22),inset -6px -8px 14px rgba(0,0,0,.32),0 8px 16px -8px rgba(0,0,0,.4); }
.sp2-root .slot-name{ font-size:9.5px; font-weight:700; color:var(--green-900); text-align:center; line-height:1.2; padding:0 4px; }
.sp2-root .slot-x{ position:absolute; top:5px; right:5px; width:19px; height:19px; border-radius:999px; background:rgba(255,255,255,.92); border:1px solid var(--line); display:grid; place-items:center; color:var(--ink-soft); }
.sp2-root .slot-x svg{ width:10px; height:10px; stroke:currentColor; fill:none; stroke-width:2.4; }
.sp2-root .builder-picker-h{ font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:11px; text-align:center; }
.sp2-root .builder-picker{ display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.sp2-root .bp{ position:relative; background:var(--paper-2); border:1px solid var(--line); border-radius:13px; padding:13px 5px 10px; display:flex; flex-direction:column; align-items:center; gap:8px; transition:transform .16s var(--ease),border-color .16s; }
.sp2-root .bp:active{ transform:scale(.96); }
.sp2-root .bp:disabled{ opacity:.45; pointer-events:none; }
.sp2-root .bp-vial{ width:24px; height:50px; border-radius:999px; box-shadow:inset 4px 4px 10px rgba(255,255,255,.25),inset -5px -7px 12px rgba(0,0,0,.3); }
.sp2-root .bp-n{ font-size:10.5px; font-weight:700; color:var(--green-900); text-align:center; line-height:1.2; }
.sp2-root .bp-p{ font-size:10px; font-weight:700; color:var(--ink-faint); }
.sp2-root .bp-ct{ position:absolute; top:-7px; right:-7px; min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:var(--green-700); color:#f3e6c4; font-size:11px; font-weight:800; display:grid; place-items:center; box-shadow:var(--shadow-sm); }
.sp2-root .bsum{ background:var(--green-900); color:#eef4ef; border-radius:var(--pr); padding:20px; box-shadow:var(--shadow-md); margin-top:16px; }
.sp2-root .bsum-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding-bottom:14px; margin-bottom:14px; border-bottom:1px solid rgba(238,244,239,.16); }
.sp2-root .bsum-top h4{ font-family:var(--font-serif); font-size:19px; font-weight:600; color:#fdfcf5; }
.sp2-root .bsum-off{ font-size:11px; font-weight:800; letter-spacing:.04em; background:var(--gold-600); color:#1c1404; padding:5px 11px; border-radius:999px; transition:background .3s; }
.sp2-root .bsum-off.zero{ background:rgba(255,255,255,.12); color:rgba(238,244,239,.6); }
.sp2-root .bsum-list{ display:flex; flex-direction:column; gap:9px; min-height:48px; margin-bottom:14px; }
.sp2-root .bsum-empty{ font-size:13px; color:rgba(238,244,239,.55); line-height:1.5; padding:6px 0; }
.sp2-root .bsum-item{ display:flex; align-items:center; gap:11px; font-size:13px; animation:fadeUp .3s var(--ease); }
.sp2-root .bsum-item .bi-vial{ width:13px; height:26px; border-radius:999px; flex-shrink:0; }
.sp2-root .bsum-item .bi-n{ flex:1; font-weight:600; color:#f4f8f4; }
.sp2-root .bsum-item .bi-p{ color:rgba(238,244,239,.7); font-variant-numeric:tabular-nums; }
.sp2-root .bsum-item .bi-x{ color:rgba(238,244,239,.5); font-size:15px; line-height:1; padding:0 2px; }
.sp2-root .bsum-rows{ display:flex; flex-direction:column; gap:8px; padding-top:14px; border-top:1px solid rgba(238,244,239,.16); }
.sp2-root .bsum-row{ display:flex; align-items:center; justify-content:space-between; font-size:13px; color:rgba(238,244,239,.78); }
.sp2-root .bsum-row.save{ color:var(--gold-300); font-weight:700; }
.sp2-root .bsum-row .tnum{ font-variant-numeric:tabular-nums; }
.sp2-root .bsum-row.total{ padding-top:12px; margin-top:4px; border-top:1px solid rgba(238,244,239,.16); }
.sp2-root .bsum-row.total .tl{ font-size:15px; font-weight:700; color:#fdfcf5; }
.sp2-root .bsum-row.total .tv{ font-family:var(--font-serif); font-size:24px; font-weight:700; color:#fdfcf5; }
.sp2-root .bsum .btn-cta{ margin-top:16px; background:var(--gold-500); color:#1c1404; box-shadow:0 10px 22px -8px rgba(199,154,71,.55); }
.sp2-root .bsum .btn-cta:disabled{ opacity:.5; pointer-events:none; }
.sp2-root .bsum-fine{ display:flex; align-items:center; justify-content:center; gap:6px; margin-top:12px; font-size:11.5px; font-weight:600; color:rgba(238,244,239,.6); }
.sp2-root .bsum-fine svg{ width:13px; height:13px; stroke:var(--gold-300); fill:none; stroke-width:1.8; }
.sp2-root .ing-tabs{ display:flex; gap:9px; overflow-x:auto; scrollbar-width:none; padding-bottom:4px; margin-bottom:16px; }
.sp2-root .ing-tabs::-webkit-scrollbar{ display:none; }
.sp2-root .ing-tab{ flex:0 0 auto; display:flex; align-items:center; gap:10px; padding:12px 15px; border-radius:14px; background:var(--paper); border:1px solid var(--line); text-align:left; transition:all .2s; }
.sp2-root .ing-tab.on{ background:#fff; border-color:var(--green-300); box-shadow:inset 0 0 0 1.5px var(--green-600); }
.sp2-root .ing-flag{ font-size:20px; }
.sp2-root .ing-tname{ font-family:var(--font-serif); font-size:14px; font-weight:600; color:var(--green-900); white-space:nowrap; }
.sp2-root .ing-torigin{ font-size:10px; font-weight:600; color:var(--ink-faint); margin-top:2px; white-space:nowrap; }
.sp2-root .ing-detail{ display:none; background:#fff; border:1px solid var(--line); border-radius:var(--pr); padding:24px 20px; box-shadow:var(--shadow-sm); text-align:center; }
.sp2-root .ing-detail.on{ display:block; animation:fadeUp .4s var(--ease); }
.sp2-root .ing-dname{ font-family:var(--font-serif); font-size:23px; font-weight:600; color:var(--green-900); }
.sp2-root .ing-dsrc{ font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); margin-top:6px; }
.sp2-root .ing-what{ font-size:14px; line-height:1.65; color:var(--ink-soft); margin-top:15px; text-wrap:pretty; }
.sp2-root .ing-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-top:18px; }
.sp2-root .ing-stat{ background:var(--green-50); border:1px solid var(--green-100); border-radius:13px; padding:15px 8px; }
.sp2-root .ing-stat-n{ font-family:var(--font-serif); font-size:20px; font-weight:700; color:var(--green-800); line-height:1; }
.sp2-root .ing-stat-l{ font-size:10px; color:var(--ink-soft); margin-top:6px; font-weight:600; }
.sp2-root @keyframes fadeUp{ from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none} }
.sp2-root .reviews{ display:flex; flex-direction:column; gap:14px; }
.sp2-root .review{ background:#fff; border:1px solid var(--line); border-radius:var(--pr); padding:22px; box-shadow:var(--shadow-sm); }
.sp2-root .review .wks{ display:flex; gap:6px; margin-bottom:13px; justify-content:center; }
.sp2-root .review .wk{ font-size:10px; font-weight:700; padding:3px 10px; border-radius:999px; background:var(--green-50); color:var(--green-700); border:1px solid var(--green-100); }
.sp2-root .review .stars{ color:var(--gold-500); font-size:14px; letter-spacing:1px; margin-bottom:11px; text-align:center; }
.sp2-root .review .quote{ font-family:var(--font-serif); font-size:16px; line-height:1.5; color:var(--green-900); margin-bottom:16px; text-align:center; text-wrap:pretty; }
.sp2-root .review .who{ display:flex; align-items:center; gap:10px; justify-content:center; }
.sp2-root .review .ava{ width:34px; height:34px; border-radius:999px; display:grid; place-items:center; font-weight:800; font-size:13px; color:#fff; }
.sp2-root .review .nm{ font-size:12.5px; font-weight:700; color:var(--ink); }
.sp2-root .review .loc{ font-size:11px; color:var(--ink-faint); font-weight:600; }
.sp2-root .rev-summary{ text-align:center; padding:16px; background:var(--green-50); border:1px solid var(--green-100); border-radius:16px; font-size:13.5px; color:var(--ink-soft); font-weight:600; }
.sp2-root .rev-summary b{ color:var(--green-900); }
.sp2-root .faq-list{ display:flex; flex-direction:column; gap:11px; }
.sp2-root .faq-item{ background:#fff; border:1px solid var(--line); border-radius:15px; overflow:hidden; transition:border-color .2s,box-shadow .2s; }
.sp2-root .faq-item.open{ border-color:var(--green-100); box-shadow:var(--shadow-md); }
.sp2-root .faq-q{ display:flex; align-items:center; gap:12px; width:100%; padding:16px 16px; text-align:left; }
.sp2-root .faq-qmark{ flex:none; width:30px; height:30px; border-radius:999px; background:var(--green-50); border:1px solid var(--green-100); color:var(--green-700); font-family:var(--font-serif); font-weight:700; font-size:16px; display:grid; place-items:center; transition:all .2s; }
.sp2-root .faq-item.open .faq-qmark{ background:var(--green-700); color:#f3e6c4; border-color:var(--green-700); }
.sp2-root .faq-q .q{ flex:1; font-size:14.5px; font-weight:700; color:var(--green-900); }
.sp2-root .faq-q .ico{ flex:none; color:var(--ink-faint); transition:transform .25s,color .2s; }
.sp2-root .faq-q .ico svg{ width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2; }
.sp2-root .faq-item.open .faq-q .ico{ transform:rotate(180deg); color:var(--green-700); }
.sp2-root .faq-wrap{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .3s var(--ease); }
.sp2-root .faq-item.open .faq-wrap{ grid-template-rows:1fr; }
.sp2-root .faq-inner{ overflow:hidden; }
.sp2-root .faq-a{ font-size:13.5px; line-height:1.65; color:var(--ink-soft); padding:0 16px 16px 58px; }
.sp2-root .faq-curious{ margin-top:18px; background:var(--paper-2); border:1px solid var(--line); border-radius:18px; padding:22px; text-align:center; }
.sp2-root .faq-curious h3{ font-family:var(--font-serif); font-size:20px; font-weight:600; color:var(--green-900); }
.sp2-root .faq-curious p{ font-size:13.5px; color:var(--ink-soft); margin-top:7px; line-height:1.55; }
.sp2-root .faq-msg{ display:inline-flex; align-items:center; gap:8px; margin-top:14px; font-size:14px; font-weight:700; color:var(--green-800); }
.sp2-root .faq-msg svg{ width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; }
.sp2-root .foot{ background:var(--green-900); color:#eef4ef; padding:40px var(--gut) 28px; text-align:center; }
.sp2-root .foot .brand{ justify-content:center; }
.sp2-root .foot .brand-name{ color:#fdfcf5; }
.sp2-root .foot-tag{ font-size:13px; line-height:1.6; color:rgba(238,244,239,.7); margin-top:14px; max-width:30ch; margin-left:auto; margin-right:auto; }
.sp2-root .foot-links{ display:flex; flex-wrap:wrap; justify-content:center; gap:9px 18px; margin-top:22px; }
.sp2-root .foot-links a{ font-size:13px; color:rgba(238,244,239,.85); font-weight:600; }
.sp2-root .foot-form{ display:flex; gap:8px; margin:22px auto 0; max-width:320px; }
.sp2-root .foot-form input{ flex:1; min-width:0; padding:12px 14px; border-radius:999px; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.08); color:#fff; font-family:inherit; font-size:13px; }
.sp2-root .foot-form input::placeholder{ color:rgba(255,255,255,.5); }
.sp2-root .foot-form button{ padding:12px 18px; border-radius:999px; background:var(--gold-600); color:#1c1404; font-weight:800; font-size:13px; }
.sp2-root .foot-bottom{ padding-top:20px; margin-top:24px; border-top:1px solid rgba(238,244,239,.14); font-size:11.5px; color:rgba(238,244,239,.55); line-height:1.7; }
.sp2-root .stickybar{ position:fixed; left:50%; bottom:0; transform:translateX(-50%) translateY(110%); width:100%; max-width:var(--colw); z-index:80;
  background:linear-gradient(180deg,#10392e,#0e342a); border-top:1px solid rgba(199,154,71,.28);
  box-shadow:0 -14px 40px rgba(8,24,18,.34); visibility:hidden; transition:transform .4s var(--ease),visibility .4s;
  padding-bottom:env(safe-area-inset-bottom); }
.sp2-root .stickybar.show{ transform:translateX(-50%) translateY(0); visibility:visible; }
.sp2-root .sb-in{ display:flex; align-items:center; gap:12px; padding:11px var(--gut); }
.sp2-root .sb-sub{ display:inline-flex; align-items:center; gap:7px; flex-shrink:0; padding:8px 11px; border-radius:999px; font-size:11.5px; font-weight:700;
  color:rgba(238,244,239,.85); background:rgba(255,255,255,.05); border:1px solid rgba(238,244,239,.2); transition:all .18s var(--ease); }
.sp2-root .sb-sub b{ color:var(--gold-300); font-weight:800; }
.sp2-root .sb-sub-box{ width:17px; height:17px; border-radius:5px; border:1.5px solid rgba(238,244,239,.4); display:grid; place-items:center; color:#1c1404; transition:all .18s; }
.sp2-root .sb-sub-box svg{ width:11px; height:11px; stroke:currentColor; fill:none; stroke-width:3; opacity:0; transition:opacity .15s; }
.sp2-root .stickybar.is-sub .sb-sub{ background:rgba(199,154,71,.18); border-color:rgba(199,154,71,.55); color:#fdfcf5; }
.sp2-root .stickybar.is-sub .sb-sub-box{ background:var(--gold-500); border-color:var(--gold-500); }
.sp2-root .stickybar.is-sub .sb-sub-box svg{ opacity:1; }
.sp2-root .sb-price{ display:flex; flex-direction:column; align-items:flex-start; gap:1px; flex:1; min-width:0; white-space:nowrap; }
.sp2-root .sb-was{ font-size:11px; color:rgba(232,240,232,.5); text-decoration:line-through; }
.sp2-root .sb-now{ font-family:var(--font-serif); font-size:21px; font-weight:700; color:#fdfcf5; line-height:1; font-variant-numeric:tabular-nums; }
.sp2-root .sb-cta{ flex-shrink:0; display:flex; align-items:center; gap:7px; padding:13px 20px; font-size:13.5px; font-weight:800; border-radius:999px;
  background:var(--gold-500); color:#1c1404; box-shadow:0 10px 22px -8px rgba(199,154,71,.55); transition:background .15s; }
.sp2-root .sb-cta svg{ width:17px; height:17px; stroke:currentColor; fill:none; stroke-width:2; }
.sp2-root .sb-cta[aria-busy="true"]{ opacity:.8; pointer-events:none; }
.sp2-root .toast{ position:fixed; bottom:96px; left:50%; transform:translate(-50%,16px); background:var(--green-900); color:#f3e6c4;
  font-weight:700; font-size:13.5px; padding:13px 22px; border-radius:999px; box-shadow:var(--shadow-lg); z-index:95; opacity:0; pointer-events:none; transition:opacity .3s,transform .3s; max-width:88vw; text-align:center; }
.sp2-root .toast.show{ opacity:1; transform:translate(-50%,0); }
.sp2-root .rv-modal{ position:fixed; inset:0; z-index:100; display:none; align-items:center; justify-content:center; padding:30px; background:rgba(10,20,16,.72); backdrop-filter:blur(8px); }
.sp2-root .rv-modal.show{ display:flex; animation:fadeUp .25s var(--ease); }
.sp2-root .rv-card{ position:relative; width:280px; max-width:86vw; }
.sp2-root .rv-close{ position:absolute; top:-14px; right:-14px; z-index:5; width:32px; height:32px; border-radius:999px; background:var(--paper); color:var(--ink); font-size:15px; box-shadow:var(--shadow-md); display:grid; place-items:center; }
.sp2-root .rv-video{ aspect-ratio:5/8; border-radius:18px 18px 0 0; overflow:hidden; position:relative; background:linear-gradient(160deg,#5a1a38,#1a0810); display:grid; place-items:center; }
.sp2-root .rv-playbig{ width:64px; height:64px; border-radius:999px; background:rgba(255,255,255,.95); display:grid; place-items:center; box-shadow:0 6px 20px rgba(0,0,0,.4); }
.sp2-root .rv-playbig svg{ width:26px; height:26px; fill:var(--green-900); margin-left:3px; }
.sp2-root .rv-meta{ background:var(--paper); border-radius:0 0 18px 18px; padding:16px 18px; }
.sp2-root .rv-handle{ font-family:var(--font-serif); font-size:15px; font-weight:600; color:var(--green-900); }
.sp2-root .rv-cap{ font-size:12.5px; color:var(--ink-soft); margin-top:5px; line-height:1.4; }
.sp2-root .rv-foot{ display:flex; align-items:center; gap:7px; margin-top:11px; font-size:11.5px; color:var(--ink-faint); }
.sp2-root .rv-stars{ color:var(--gold-500); }



/* ---- Shopify: real product-media gallery layer ---- */
.sp2-root .gal-stage--media{ overflow:hidden; }
.sp2-root .gal-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .35s var(--ease); }
.sp2-root .gal-stage--media .gal-photo:first-child{ opacity:1; }
.sp2-root .gal-photo.on{ opacity:1; }
/* section can sit in any theme; keep our column centred and self-contained */
.sp2-section{ padding:0 !important; }
.sp2-root .press-track img{ display:inline-block; }

/* ---- perf: object-fit cover layers (replace old inline styles) ---- */
.sp2-root .vcard-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.sp2-root .lb-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
/* content-visibility: skip offscreen section paint cost on long page */
.sp2-root .sec{ content-visibility:auto; contain-intrinsic-size:auto 640px; }


/* ============================================================
   RESPONSIVE — tablet widen + 2-column hero
   ============================================================ */
@media (min-width:600px){
  .sp2-root .app{ max-width:720px; }
  .sp2-root .gal-main{ aspect-ratio:5/4; }
  .sp2-root .rail .vcard{ flex:0 0 230px; }
  .sp2-root .reviews{ display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
  .sp2-root .reviews .rev-summary{ grid-column:1 / -1; }
}
@media (min-width:600px) and (max-width:859px){
  .sp2-root .stickybar{ max-width:720px; }
}
@media (min-width:860px){
  .sp2-root .app{ max-width:1060px; }
  .sp2-root .hero-wrap{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(28px,4vw,52px); align-items:start; padding:28px var(--gut) 14px; }
  .sp2-root .hero-wrap .hero{ padding:0; position:sticky; top:82px; }
  .sp2-root .hero-wrap .buy{ padding:0; text-align:left; }
  .sp2-root .gal-main{ aspect-ratio:1/1.04; }
  .sp2-root .hero-wrap .buy-rating{ justify-content:flex-start; }
  .sp2-root .hero-wrap .buy-desc{ margin-left:0; margin-right:0; }
  .sp2-root .hero-wrap .reassure,
  .sp2-root .hero-wrap .paylater{ justify-content:flex-start; }
  .sp2-root .buy > .pills:first-child{ margin-top:0; }
  .sp2-root .sec > .gx{ max-width:780px; margin-left:auto; margin-right:auto; }
  .sp2-root .ugc .rail{ max-width:820px; margin-left:auto; margin-right:auto; }
  .sp2-root .reviews{ grid-template-columns:1fr 1fr 1fr; }
  .sp2-root .reviews .rev-summary{ grid-column:1 / -1; }
  .sp2-root .stickybar{ max-width:1060px; }
}


.sp2-root /* ============================================================
   SCIENCE — animated mechanism infographic (mobile)
   ============================================================ */
.mechviz{ margin-top:4px; border:1px solid var(--line); border-radius:var(--pr); background:#fff; box-shadow:var(--shadow-sm); overflow:hidden; }

.sp2-root .mv-tabs{ display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--line); }

.sp2-root .mv-tab{ display:flex; flex-direction:column; align-items:center; gap:8px; padding:14px 6px; text-align:center; border-right:1px solid var(--line-soft); position:relative; transition:background .2s; }

.sp2-root .mv-tab:last-child{ border-right:none; }

.sp2-root .mv-tab.on{ background:var(--green-50); }

.sp2-root .mv-tab.on::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:3px; background:var(--green-700); }

.sp2-root .mv-ic{ width:36px; height:36px; flex-shrink:0; border-radius:11px; display:grid; place-items:center; font-family:var(--font-serif); font-weight:700; font-size:15px; background:var(--gold-100); border:1px solid var(--gold-300); color:var(--gold-700); transition:all .2s; }

.sp2-root .mv-tab.on .mv-ic{ background:var(--green-700); border-color:var(--green-700); color:#f3e6c4; }

.sp2-root .mv-tt{ display:flex; flex-direction:column; align-items:center; gap:2px; min-width:0; }

.sp2-root .mv-tt .n{ font-family:var(--font-serif); font-size:13px; font-weight:600; color:var(--green-900); line-height:1.1; }

.sp2-root .mv-tt .s{ font-size:9.5px; font-weight:700; color:var(--accent); }

.sp2-root .mv-panel{ display:none; padding:18px; }

.sp2-root .mv-panel.on{ display:block; animation:fadeUp .4s var(--ease); }

.sp2-root .mv-viz{ position:relative; height:220px; border-radius:16px; overflow:hidden; }

.sp2-root .mv-cap{ position:absolute; left:0; right:0; bottom:0; text-align:center; padding:13px 10px 10px; font-size:10.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.9); background:linear-gradient(transparent,rgba(0,0,0,.34)); }

.sp2-root .mv-info{ margin-top:18px; text-align:center; }

.sp2-root .mv-eyebrow{ font-size:10.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }

.sp2-root .mv-h{ font-family:var(--font-serif); font-size:22px; font-weight:600; color:var(--green-900); margin-top:8px; line-height:1.12; text-wrap:balance; }

.sp2-root .mv-p{ font-size:14px; line-height:1.6; color:var(--ink-soft); margin-top:11px; text-wrap:pretty; }

.sp2-root .mv-steps{ display:flex; flex-direction:column; gap:10px; margin-top:18px; text-align:left; }

.sp2-root .mv-step{ display:flex; align-items:center; gap:12px; }

.sp2-root .mv-num{ width:28px; height:28px; flex-shrink:0; border-radius:999px; display:grid; place-items:center; font-weight:800; font-size:12.5px; background:var(--green-50); color:var(--green-700); border:1px solid var(--green-100); }

.sp2-root .mv-step b{ font-size:13.5px; color:var(--green-900); font-weight:700; display:block; }

.sp2-root .mv-step span{ font-size:12px; color:var(--ink-faint); font-weight:600; }


.sp2-root .viz-collagen{ background:radial-gradient(ellipse 90% 85% at 50% 42%,#7a2440,#330f1f); }

.sp2-root .vc-fiber{ position:absolute; height:4px; border-radius:999px; transform-origin:center; opacity:0;
  background:linear-gradient(90deg,rgba(233,184,198,.15),rgba(255,222,231,.95),rgba(233,184,198,.15));
  box-shadow:0 0 9px rgba(255,200,215,.55); animation:fiberIn 4.6s ease-in-out infinite; }

@keyframes fiberIn{ 0%{opacity:0} 12%{opacity:1} 76%{opacity:1} 92%{opacity:0} 100%{opacity:0} }
.sp2-root .vc-cell{ position:absolute; left:50%; top:48%; width:26px; height:26px; border-radius:999px; z-index:2;
  background:radial-gradient(circle at 40% 35%,#ffd9e2,#d2738c); transform:translate(-50%,-50%); animation:cellPulse 2.6s ease-in-out infinite; }

@keyframes cellPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(255,200,215,.55); transform:translate(-50%,-50%) scale(1); } 50%{ box-shadow:0 0 0 15px rgba(255,200,215,0); transform:translate(-50%,-50%) scale(1.14); } }
.sp2-root .vc-meter{ position:absolute; right:18px; top:24px; bottom:50px; width:8px; border-radius:999px; background:rgba(255,255,255,.16); overflow:hidden; z-index:2; }

.sp2-root .vc-meter-fill{ position:absolute; left:0; right:0; bottom:0; height:20%; border-radius:999px; background:linear-gradient(180deg,#ffdfe7,#e98ba2); animation:meterFill 4.6s ease-in-out infinite; }

@keyframes meterFill{ 0%{height:18%} 78%{height:90%} 100%{height:18%} }
.sp2-root .viz-shield{ background:linear-gradient(180deg,#0e342a,#16463a); }

.sp2-root .vs-sun{ position:absolute; top:26px; left:50%; transform:translateX(-50%); width:46px; height:46px; border-radius:999px; z-index:2;
  background:radial-gradient(circle at 40% 35%,#ffe9b0,#e0a93c); box-shadow:0 0 28px rgba(224,169,60,.7); }

.sp2-root .vs-sun::before{ content:""; position:absolute; inset:-15px; border-radius:999px;
  background:repeating-conic-gradient(from 0deg,rgba(255,221,150,.55) 0 3.5deg,transparent 3.5deg 22deg);
  -webkit-mask:radial-gradient(circle,transparent 24px,#000 25px); mask:radial-gradient(circle,transparent 24px,#000 25px); animation:spin 16s linear infinite; }

@keyframes spin{ to{ transform:rotate(360deg); } }
.sp2-root .vs-uv{ position:absolute; top:62px; width:8px; height:8px; border-radius:999px; background:#ff8d6b; box-shadow:0 0 9px rgba(255,141,107,.85); animation:uvFall 2.5s ease-in infinite; }

@keyframes uvFall{ 0%{ top:62px; opacity:0; transform:scale(1) } 14%{opacity:1} 64%{ top:150px; opacity:1; transform:scale(1) } 78%{ top:150px; opacity:0; transform:scale(.3) } 100%{opacity:0} }
.sp2-root .vs-shield{ position:absolute; left:24px; right:24px; top:150px; height:58px; border-radius:220px 220px 0 0;
  border:3px solid rgba(124,196,150,.92); border-bottom:none; background:linear-gradient(180deg,rgba(124,196,150,.2),transparent); animation:shieldPulse 2.5s ease-in-out infinite; }

@keyframes shieldPulse{ 0%,100%{ box-shadow:0 0 16px rgba(124,196,150,.3) } 50%{ box-shadow:0 0 32px rgba(124,196,150,.72) } }
.sp2-root .vs-skin{ position:absolute; left:0; right:0; bottom:30px; height:42px; background:linear-gradient(180deg,rgba(255,232,205,.14),transparent); }

.sp2-root .viz-glow{ background:radial-gradient(circle at 50% 48%,#2b5e4d,#103428); }

.sp2-root .vg-core{ position:absolute; left:50%; top:46%; width:62px; height:62px; border-radius:999px; transform:translate(-50%,-50%); z-index:2;
  background:radial-gradient(circle,#fff7e2,#ffd98a 58%,transparent 72%); box-shadow:0 0 44px rgba(255,225,160,.7); animation:glowPulse 3s ease-in-out infinite; }

@keyframes glowPulse{ 0%,100%{ transform:translate(-50%,-50%) scale(1); } 50%{ transform:translate(-50%,-50%) scale(1.12); } }
.sp2-root .vg-ring{ position:absolute; left:50%; top:46%; width:54px; height:54px; border-radius:999px; transform:translate(-50%,-50%); border:2px solid rgba(255,225,160,.6); animation:ringExpand 3s ease-out infinite; }

@keyframes ringExpand{ 0%{ width:50px; height:50px; opacity:.85; } 100%{ width:210px; height:210px; opacity:0; } }
.sp2-root .vg-cell{ position:absolute; width:18px; height:18px; border-radius:999px; background:#6f897d; transform:translate(-50%,-50%); animation:cellGlow 3s ease-in-out infinite; }

@keyframes cellGlow{ 0%,100%{ background:#6f897d; box-shadow:none; } 50%{ background:#ffe6b0; box-shadow:0 0 15px rgba(255,220,150,.85); } }
@media (prefers-reduced-motion:reduce){ .sp2-root .vc-fiber, .sp2-root .vc-cell, .sp2-root .vc-meter-fill, .sp2-root .vs-uv, .sp2-root .vs-shield, .sp2-root .vs-sun::before, .sp2-root .vg-core, .sp2-root .vg-ring, .sp2-root .vg-cell{ animation:none; }
 .sp2-root .vc-fiber{ opacity:1; }
 }



