/* the site's lettering, served from this folder (made by make_fonts.py) */
@font-face{font-family:'Baloo 2';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/baloo2-700-latin.4399d3e8.woff) format('woff');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-200B, U+200E-206F, U+20AC, U+20B9, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Baloo 2';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/baloo2-700-deva.b3c5f053.woff) format('woff');unicode-range:U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+25CC, U+A830-A839, U+A8E0-A8FF}
@font-face{font-family:'Baloo 2';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/baloo2-800-latin.0ab51709.woff) format('woff');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-200B, U+200E-206F, U+20AC, U+20B9, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Baloo 2';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/baloo2-800-deva.bc8ccb9a.woff) format('woff');unicode-range:U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+25CC, U+A830-A839, U+A8E0-A8FF}
@font-face{font-family:'Lora';font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/lora-500i-latin.b9b202a4.woff) format('woff');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-200B, U+200E-206F, U+20AC, U+20B9, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/poppins-400-latin.f343e516.woff) format('woff');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-200B, U+200E-206F, U+20AC, U+20B9, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/poppins-400-deva.bc798319.woff) format('woff');unicode-range:U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+25CC, U+A830-A839, U+A8E0-A8FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-500-latin.09b28e83.woff) format('woff');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-200B, U+200E-206F, U+20AC, U+20B9, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/poppins-500-deva.2780458a.woff) format('woff');unicode-range:U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+25CC, U+A830-A839, U+A8E0-A8FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-600-latin.d6578830.woff) format('woff');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-200B, U+200E-206F, U+20AC, U+20B9, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/poppins-600-deva.92f43fc3.woff) format('woff');unicode-range:U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+25CC, U+A830-A839, U+A8E0-A8FF}
/* The hidden attribute has to win. Without this, any element with a display rule
   of its own (.pcard is display:flex) stays visible when JavaScript hides it,
   which is exactly why the shop's category filter did nothing at all. */
[hidden]{display:none!important}

:root{
  --ground:#F2F5EF; --surface:#FFFFFF; --surface-2:#E5EEE8; --ink:#16323A; --ink-soft:#4A6067; --line:#D3DDD7;
  --night:#14323B; --night-2:#1D4652; --night-3:#245562; --night-ink:#F6F2E7; --night-soft:#B7CDCD;
  --marigold:#F2B138; --marigold-soft:#FBE3AE; --on-marigold:#2A1B00; --coral:#C9502F; --coral-soft:#F6D5CA;
  --mint:#9DD3A8; --mint-soft:#D7EFDB; --screen:#BFE6F5; --outline:#1B2A31;
  --shadow:0 1px 2px rgba(20,50,59,.06),0 10px 28px rgba(20,50,59,.09);
  --display:"Baloo 2","Poppins",ui-rounded,system-ui,sans-serif;
  --body:"Poppins",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --quote:"Lora",Georgia,"Times New Roman",serif;
  --r:18px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ground:#0F2329; --surface:#163039; --surface-2:#1B3943; --ink:#EAF2EE; --ink-soft:#A8BEC0; --line:#2B4B54;
    --marigold-soft:#4A3A17; --coral:#F08A6C; --coral-soft:#4A2A22; --mint-soft:#1F4636;
    --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px rgba(0,0,0,.35);
  }
}
:root[data-theme="dark"]{
  --ground:#0F2329; --surface:#163039; --surface-2:#1B3943; --ink:#EAF2EE; --ink-soft:#A8BEC0; --line:#2B4B54;
  --marigold-soft:#4A3A17; --coral:#F08A6C; --coral-soft:#4A2A22; --mint-soft:#1F4636;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
:root{--text-scale:1}
html{font-size:calc(17px * var(--text-scale))}
body{margin:0;background:var(--ground);color:var(--ink);font:400 1rem/1.65 var(--body);padding-inline:0;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
.hero .wrap>*,.problem-grid>*,.inside-grid>*,.pep-grid>*,.buy-box>*,.daycard>*{min-width:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--marigold);outline-offset:3px;border-radius:6px}
.wrap{max-width:1140px;margin-inline:auto;padding-inline:20px}
h1,h2,h3{font-family:var(--display);line-height:1.05;text-wrap:balance;margin:0;letter-spacing:-.01em}
h2{font-size:clamp(2rem,4.4vw,3.1rem);font-weight:800}
h3{font-size:1.5rem;font-weight:700}
p{margin:0}
.eyebrow{font:600 .74rem/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--coral)}
.lead{font-size:1.08rem;color:var(--ink-soft);max-width:60ch}
section{padding-block:clamp(48px,7.4vw,88px)}
.sec-head{display:grid;gap:14px;margin-bottom:clamp(28px,4vw,44px)}

/* ---------- buttons: cartoon outline language ---------- */
.btn{--bg:var(--marigold);display:inline-flex;align-items:center;justify-content:center;gap:10px;font:700 1.05rem/1 var(--display);letter-spacing:.01em;
  padding:15px 24px 13px;border-radius:999px;border:2px solid var(--outline);background:var(--bg);color:var(--on-marigold);text-decoration:none;cursor:pointer;white-space:nowrap;
  box-shadow:3px 4px 0 var(--outline);transition:transform .15s ease,box-shadow .15s ease}
.btn:hover{transform:translate(-1px,-2px);box-shadow:4px 6px 0 var(--outline)}
.btn:active{transform:translate(2px,3px);box-shadow:1px 1px 0 var(--outline)}
.btn .price{background:var(--outline);color:var(--marigold);border-radius:999px;padding:5px 10px 3px;font-size:.95rem}
.btn-ghost{background:transparent;border:0;box-shadow:none;color:inherit;font:600 .98rem/1 var(--body);padding:12px 6px;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}
.btn-ghost:hover{transform:none;box-shadow:none;text-decoration-color:var(--marigold)}

/* ---------- preview ribbon & nav ---------- */
.ribbon{background:var(--coral);color:#fff;font:500 .8rem/1.4 var(--body);text-align:center;padding:7px 16px}
.ribbon[hidden]{display:none}
/* the no-JS banner: the buy buttons are script-driven, so a reader whose
   JavaScript is off needs to be told that and given another way to pay */
.ribbon.nojs{background:var(--night);color:var(--night-ink);font-size:.86rem;padding:11px 16px;line-height:1.5}
.ribbon.nojs a{color:#fff}
.nav{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--ground) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink);border-bottom:1px solid var(--line)}
.dark-nav .nav{background:var(--night);color:var(--night-ink);border-bottom-color:rgba(255,255,255,.08)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding-block:6px}
.nav .wrap>*{min-width:0}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:800 1.35rem/1 var(--display);letter-spacing:-.01em;min-height:44px}
.brand img{width:40px;height:auto}
.brand small{font:500 .66rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-top:3px}
.dark-nav .nav .brand small{color:var(--night-soft)}
.nav-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px 22px;min-width:0}
.nav-links a:not(.btn){font:500 calc(.92rem / var(--text-scale))/1 var(--body);text-decoration:none;color:var(--ink-soft);display:inline-flex;align-items:center;min-height:44px;padding-inline:2px}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--ink)}
.dark-nav .nav-links a{color:var(--night-soft)}
.dark-nav .nav-links a:hover{color:var(--night-ink)}
.nav .btn{padding:10px 16px 8px;font-size:calc(.95rem / var(--text-scale));box-shadow:2px 3px 0 var(--outline);min-width:0;max-width:100%}
@media (max-width:760px){.nav-links a:not(.btn){display:none}}
@media (max-width:420px){.brand small{display:none}.brand{font-size:1.15rem}}

/* ---------- hero ---------- */
.hero{background:radial-gradient(120% 90% at 80% 10%,var(--night-3) 0%,var(--night-2) 38%,var(--night) 78%);color:var(--night-ink);padding-block:clamp(40px,7vw,84px) clamp(48px,7vw,88px);position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(28px,5vw,64px);align-items:center}
.hero .eyebrow{color:var(--marigold)}
.hero h1{font-size:clamp(2.6rem,6.4vw,4.7rem);font-weight:800;margin-top:14px;line-height:1.06}
.hero h1 em{font-style:normal;color:var(--marigold)}
/* THE HEADLINE UNDERLINE
   It used to be an absolutely-positioned bar. A browser hangs one of those off
   the FIRST line box of an inline element, so the moment the emphasised phrase
   wrapped onto two or three lines the bar collapsed into a short stub floating
   under one word -- it read as a stray mark, not an underline, and it sat right
   on top of the paragraph below.
   Painting it as a background on the text itself fixes all of that: it is
   exactly as wide as the words, it repeats on every line the phrase occupies
   (that is what box-decoration-break:clone is for), and the padding underneath
   keeps it clear of the descenders and of whatever follows. Each hero sets --u
   to a stroke colour that contrasts with ITS OWN background. */
.hero h1 em,.hero-line em{
  --u:var(--coral);
  text-decoration:underline;
  text-decoration-color:var(--u);
  text-decoration-thickness:.075em;
  text-underline-offset:.17em;
  text-decoration-skip-ink:none;
  animation:underline .9s .45s ease both}
@keyframes underline{from{text-decoration-color:transparent}to{text-decoration-color:var(--u)}}
.hindi{font:600 1.18rem/1.5 var(--display);color:var(--marigold-soft);margin-top:18px}
.hero .lead{color:var(--night-soft);margin-top:12px}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;margin-top:28px}
.upi-note{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:18px;font-size:.84rem;color:var(--night-soft)}
.upi-note span{display:inline-flex;align-items:center;gap:7px}
.upi-note span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--mint)}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}}

/* stage: Fonu's evening */
.stage{position:relative;width:100%;max-width:470px;margin-inline:auto;aspect-ratio:1/.92;border-radius:28px;border:2px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg,#1A3E4A 0%,#173743 64%,#24515E 64%,#1F4A56 100%);overflow:hidden;cursor:pointer;isolation:isolate}
.stage .window{position:absolute;left:8%;top:9%;width:38%;height:40%;border-radius:14px;border:3px solid #2F6371;background:linear-gradient(180deg,#0D2530,#123643)}
.stage .window::before,.stage .window::after{content:"";position:absolute;background:#2F6371}
.stage .window::before{left:50%;top:0;bottom:0;width:3px;transform:translateX(-50%)}
.stage .window::after{top:50%;left:0;right:0;height:3px;transform:translateY(-50%)}
.moon{position:absolute;left:14%;top:14%;width:13%;aspect-ratio:1;border-radius:50%;box-shadow:inset -9px 5px 0 0 #F7DE8E;transform:rotate(-12deg)}
.twinkle{position:absolute;left:var(--x);top:var(--y);width:5px;height:5px;border-radius:50%;background:#FFF3C9;animation:tw 2.8s var(--d) ease-in-out infinite}
@keyframes tw{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.15)}}
.lamp{position:absolute;right:9%;top:0;width:3px;height:22%;background:#3B6F7D}
.lamp::after{content:"";position:absolute;left:50%;bottom:-18px;width:44px;height:22px;transform:translateX(-50%);border-radius:22px 22px 4px 4px;background:var(--marigold);box-shadow:0 18px 60px 20px rgba(242,177,56,.18)}
.rug{position:absolute;left:10%;right:10%;bottom:7%;height:12%;border-radius:50%;background:#2C5E6B;border:2px dashed rgba(255,255,255,.12)}
.fonu{position:absolute;width:25%;left:18%;bottom:13%;z-index:2;transition:left 1.1s cubic-bezier(.5,0,.3,1),bottom 1.1s cubic-bezier(.5,0,.3,1),width 1.1s ease,transform .6s ease}
.fonu .f{position:absolute;inset:auto 0 0 0;width:100%;height:auto;opacity:0;transition:opacity .25s ease}
.fonu .f-shock{position:relative}
.stage[data-state="buzz"] .f-shock,.stage[data-state="hello"] .f-wave,.stage[data-state="sleep"] .f-sleepy{opacity:1}
.stage[data-state="buzz"] .fonu{animation:buzz .16s linear infinite}
@keyframes buzz{0%,100%{transform:translateX(0) rotate(0)}25%{transform:translateX(-3px) rotate(-3deg)}75%{transform:translateX(3px) rotate(3deg)}}
.stage[data-state="hello"] .fonu{animation:bob 1.1s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.stage[data-state="sleep"] .fonu{left:55.5%;bottom:17%;width:22%;animation:breathe 3.4s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:scale(1) rotate(-4deg)}50%{transform:scale(1.03) rotate(-4deg)}}
.basket{position:absolute;right:9%;bottom:9%;width:40%;z-index:3}
.basket-back{z-index:1}
.pings{position:absolute;inset:0;pointer-events:none;z-index:4}
.ping{position:absolute;font:600 .74rem/1 var(--body);background:#fff;color:var(--outline);border:2px solid var(--outline);border-radius:999px;padding:6px 10px 5px;opacity:0;transform:scale(.4)}
.ping b{color:var(--coral)}
.stage[data-state="buzz"] .ping{animation:pop .5s var(--d) cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes pop{to{opacity:1;transform:scale(1)}}
.bubble{position:absolute;left:6%;right:auto;top:6%;max-width:62%;z-index:5;background:#fff;color:var(--outline);border:2px solid var(--outline);border-radius:18px;padding:10px 14px 9px;
  font:700 1rem/1.25 var(--display);box-shadow:3px 4px 0 var(--outline);transition:transform .3s ease}
.bubble::after{content:"";position:absolute;left:30%;bottom:-11px;width:16px;height:16px;background:#fff;border-right:2px solid var(--outline);border-bottom:2px solid var(--outline);transform:rotate(45deg)}
.stage[data-state="sleep"] .bubble{left:auto;right:6%;background:var(--marigold)}
.stage[data-state="sleep"] .bubble::after{left:auto;right:30%;background:var(--marigold)}
.zzz{position:absolute;right:21%;bottom:44%;z-index:4;font:800 1.5rem/1 var(--display);color:#F7DE8E;opacity:0;transition:opacity .4s}
.stage[data-state="sleep"] .zzz{opacity:1}
.zzz span{display:inline-block;animation:zz 2.4s ease-in-out infinite}
.zzz span:nth-child(2){font-size:.8em;animation-delay:.5s}.zzz span:nth-child(3){font-size:.6em;animation-delay:1s}
@keyframes zz{0%{transform:translate(0,6px);opacity:0}30%{opacity:1}100%{transform:translate(10px,-26px);opacity:0}}
.tap-hint{position:absolute;left:50%;bottom:2.5%;transform:translateX(-50%);z-index:6;font:500 .72rem/1 var(--body);color:var(--night-soft);letter-spacing:.06em;white-space:nowrap}

/* ---------- problem ---------- */
.problem{background:var(--ground)}
.problem-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,60px);align-items:center}
.scene{border-radius:var(--r);border:2px solid var(--outline);box-shadow:5px 6px 0 var(--outline);background:#FFF6E6;overflow:hidden}
.quotes{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.quotes span{font:700 1.02rem/1 var(--display);background:var(--surface);border:1.5px solid var(--line);border-radius:999px;padding:10px 14px 8px}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:28px}
.stat{background:var(--surface);border-radius:14px;padding:18px;border:1px solid var(--line)}
.stat b{display:block;font:800 2.3rem/1 var(--display);color:var(--coral);font-variant-numeric:tabular-nums}
.stat p{font-size:.86rem;color:var(--ink-soft);margin-top:8px}
.grade{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 5px;border-radius:5px;font:700 .72rem/1 var(--body);vertical-align:1px;border:1.5px solid currentColor}
.g-a{color:#2E8B57}.g-b{color:#2F6FA8}.g-c{color:var(--coral)}
.fine{font-size:.78rem;color:var(--ink-soft);margin-top:14px;max-width:70ch}
@media (max-width:860px){.problem-grid{grid-template-columns:1fr}}
@media (max-width:420px){.stats{grid-template-columns:1fr}}

/* ---------- trail ---------- */
.trail{background:var(--surface-2)}
.trail-scroll{overflow-x:auto;margin-inline:-20px;padding-inline:20px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.trail svg{display:block;width:100%;min-width:760px;height:auto;overflow:visible}
.trail-path{fill:none;stroke:var(--line);stroke-width:26;stroke-linecap:round}
.trail-dash{fill:none;stroke:var(--surface);stroke-width:3;stroke-dasharray:2 14;stroke-linecap:round}
.stone{cursor:pointer}
.stone circle{fill:var(--surface);stroke:var(--outline);stroke-width:2;transition:fill .25s,transform .25s;transform-box:fill-box;transform-origin:center}
.stone text{font:700 17px var(--display);fill:var(--ink);text-anchor:middle;dominant-baseline:central;pointer-events:none}
.stone.done circle{fill:var(--marigold)}
.stone.done text{fill:var(--on-marigold)}
.stone.on circle{fill:var(--coral);transform:scale(1.18)}
.stone.on text{fill:#fff}
.stone:hover circle{transform:scale(1.12)}
.stone:focus{outline:none}
.stone:focus-visible circle{stroke:var(--marigold);stroke-width:4}
.wk{font:600 12px var(--body);letter-spacing:.14em;fill:var(--ink-soft);text-transform:uppercase}
/* the phone-friendly version of the trail: all fourteen days, nothing to scroll */
.daygrid-wrap{display:none}
.dg-lab{font:600 .72rem/1.2 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:14px 0 8px}
.daygrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.daygrid button{aspect-ratio:1;min-height:40px;min-width:0;padding:0;border-radius:50%;border:2px solid var(--outline);
  background:var(--surface);color:var(--ink);font:700 1.02rem/1 var(--display);cursor:pointer;
  transition:transform .2s cubic-bezier(.3,1.6,.4,1),background .2s ease}
.daygrid button.done{background:var(--marigold);color:var(--on-marigold)}
.daygrid button[aria-current="true"]{background:var(--coral);color:#fff;transform:scale(1.1);box-shadow:2px 3px 0 var(--outline)}
@media (max-width:810px){.trail-scroll{display:none}.daygrid-wrap{display:block}}
@media (max-width:430px){.daygrid{gap:6px}}
@media (max-width:340px){.daygrid{grid-template-columns:repeat(5,minmax(0,1fr))}}
.flag{fill:var(--coral);stroke:var(--outline);stroke-width:1.5}
.daycard{display:grid;grid-template-columns:300px 1fr;gap:clamp(20px,3vw,34px);align-items:center;background:var(--surface);
  border:2px solid var(--outline);border-radius:22px;padding:clamp(18px,2.4vw,26px);box-shadow:5px 6px 0 var(--outline);
  margin:18px auto 0;max-width:980px}
.daycard img{width:100%;aspect-ratio:262/231;object-fit:contain;border-radius:14px;background:#FFF6E6;border:1px solid var(--line);padding:8px}
.daycard .meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chip{font:600 .72rem/1 var(--body);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:6px 10px 5px;background:var(--mint-soft);color:var(--ink)}
.chip.day{background:var(--marigold);color:var(--on-marigold)}
.daycard h3{font-size:clamp(1.6rem,3vw,2.1rem);margin-top:10px}
.daycard p.what{margin-top:8px;color:var(--ink-soft);max-width:62ch}
.fonu-says{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font:italic 500 1.02rem/1.45 var(--quote);color:var(--ink)}
.fonu-says img{width:36px;flex:none;border-radius:0;background:none}
.daynav{display:flex;gap:10px;margin-top:16px}
.daynav button{font:600 .88rem/1 var(--body);border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:9px 14px;cursor:pointer}
.daynav button:hover{border-color:var(--ink)}
.daycard.swap .txt,.daycard.swap img{animation:swapin .45s ease}
@keyframes swapin{from{transform:translateY(8px);opacity:.3}to{transform:none;opacity:1}}
@media (max-width:860px){.daycard{grid-template-columns:240px 1fr;gap:22px}}
@media (max-width:700px){.daycard{grid-template-columns:1fr}.daycard img{max-width:300px;margin-inline:auto}.daycard .txt{text-align:left}}

/* ---------- inside ---------- */
.inside-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,56px);align-items:start}
.ledger{margin:0;border-top:2px solid var(--ink)}
.ledger div{display:grid;grid-template-columns:1fr auto;gap:16px;padding:13px 0;border-bottom:1px solid var(--line);align-items:baseline}
.ledger dt{font-weight:500}
.ledger dt small{display:block;color:var(--ink-soft);font-size:.82rem;font-weight:400;margin-top:2px}
.ledger dd{margin:0;font:600 .86rem/1 var(--body);color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap}
.pages{display:grid;grid-auto-flow:column;grid-auto-columns:200px;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 20px 22px;margin-inline:-20px;scrollbar-width:thin}
.pg{scroll-snap-align:start;border:0;padding:0;background:none;text-align:left;cursor:zoom-in;color:inherit;font:inherit}
.pg img{width:100%;aspect-ratio:210/297;object-fit:cover;border-radius:6px;box-shadow:var(--shadow);border:1px solid var(--line);transition:transform .25s ease}
.pg:hover img{transform:translateY(-4px) rotate(-.6deg)}
.pg span{display:block;font-size:.82rem;color:var(--ink-soft);margin-top:10px;line-height:1.4}
.pg span b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.scroll-hint{font-size:.8rem;color:var(--ink-soft);margin-top:4px}
@media (max-width:900px){.inside-grid{grid-template-columns:1fr}}

/* ---------- play cards marquee ---------- */
.play{background:var(--night);color:var(--night-ink);overflow:hidden}
.play .eyebrow{color:var(--marigold)}
.play .lead{color:var(--night-soft)}
.marquee{display:flex;gap:14px;width:max-content;animation:slide 60s linear infinite;padding-block:8px}
.marquee.rev{animation-direction:reverse;animation-duration:70s}
.marquee-box:hover .marquee{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}
.card-chip{display:flex;align-items:center;gap:12px;background:var(--night-2);border:1.5px solid rgba(255,255,255,.14);border-radius:16px;padding:12px 16px 11px;white-space:nowrap}
.card-chip b{font:700 1.08rem/1.1 var(--display);color:var(--night-ink)}
.card-chip i{font-style:normal;font-size:.82rem;color:var(--marigold-soft);display:block}
.card-chip .cat{font:600 .64rem/1 var(--body);letter-spacing:.12em;color:var(--night);background:var(--mint);border-radius:6px;padding:5px 6px 4px}
.marquee-box{display:grid;gap:10px;margin-top:34px}

/* ---------- pep ---------- */
.pep-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,56px);align-items:center}
.pep-list{display:grid;gap:18px;margin-top:24px}
.pep-list div{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start}
.pep-list b{font:700 1.2rem/1.2 var(--display)}
.pep-list p{color:var(--ink-soft);font-size:.95rem}
.dot{width:14px;height:14px;border-radius:50%;margin-top:6px;border:2px solid var(--outline)}
@media (max-width:860px){.pep-grid{grid-template-columns:1fr}}

/* ---------- buy ---------- */
.buy{background:var(--surface-2)}
.buy-box{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,5vw,56px);align-items:center;background:var(--surface);border:2px solid var(--outline);border-radius:28px;padding:clamp(22px,4vw,48px);box-shadow:6px 8px 0 var(--outline)}
.cover-wrap{position:relative;max-width:320px;margin-inline:auto}
.cover-wrap .cover{border-radius:8px;transform:rotate(-3deg);box-shadow:0 20px 40px rgba(20,50,59,.25);border:1px solid var(--line)}
.cover-wrap .peek{position:absolute;right:-12%;bottom:-6%;width:34%;animation:bob 2.2s ease-in-out infinite}
.price-big{font:800 clamp(3.4rem,8vw,5rem)/1 var(--display);color:var(--ink);font-variant-numeric:tabular-nums;margin-top:10px}
.price-big small{font:500 1rem/1 var(--body);color:var(--ink-soft);margin-left:10px}
.checks{list-style:none;padding:0;margin:20px 0 26px;display:grid;gap:9px}
.checks li{display:grid;grid-template-columns:22px 1fr;gap:10px;font-size:.96rem}
.checks li::before{content:"";width:18px;height:18px;margin-top:3px;border-radius:50%;background:var(--mint) no-repeat center/11px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5l2.5 2.5L10 3.5' fill='none' stroke='%231B2A31' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.apps{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.apps span{font:600 .78rem/1 var(--body);border:1.5px solid var(--line);border-radius:8px;padding:7px 10px 6px;color:var(--ink-soft)}
@media (max-width:820px){.buy-box{grid-template-columns:1fr}}

/* ---------- faq ---------- */
.faq-list{max-width:820px;display:grid;gap:10px}
details{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:0 18px}
summary{list-style:none;cursor:pointer;padding:17px 34px 16px 0;font:700 1.12rem/1.3 var(--display);position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font:700 1.5rem/1 var(--body);color:var(--coral);transition:transform .2s}
details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
details p{padding-bottom:18px;color:var(--ink-soft);max-width:68ch}

/* ---------- footer ---------- */
footer{background:var(--night);color:var(--night-soft);padding-block:48px 88px;font-size:.88rem}
/* the floating buttons need room; only pages with the sticky buy bar need a lot of it */
.has-sticky footer{padding-bottom:148px}
/* narrow screens stack the footer columns unevenly, so the round buttons need a little more room */
@media (max-width:760px){footer{padding-bottom:112px}}
footer .wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:28px}
footer .brand{color:var(--night-ink)}
footer .brand small{color:var(--night-soft)}
footer nav{display:flex;flex-wrap:wrap;gap:10px 20px;align-content:start}
footer nav a{color:var(--night-ink);text-underline-offset:4px}
footer p+p{margin-top:8px}
@media (max-width:700px){footer .wrap{grid-template-columns:1fr}}

/* ---------- sticky bar ---------- */
.sticky{position:fixed;left:12px;right:12px;bottom:12px;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--night);color:var(--night-ink);
  border:2px solid var(--outline);border-radius:999px;padding:8px 8px 8px 20px;box-shadow:0 12px 30px rgba(0,0,0,.25);transform:translateY(140%);transition:transform .35s cubic-bezier(.3,1.3,.5,1)}
.sticky.show{transform:none}
.sticky{flex-wrap:wrap}
.sticky>*{min-width:0}
.sticky .btn{max-width:100%;white-space:normal;text-align:center}
.sticky p{font:600 .9rem/1.2 var(--body)}
.sticky p small{display:block;font-weight:400;color:var(--night-soft);font-size:.74rem}
.sticky .btn{padding:11px 18px 9px;box-shadow:none}
@media (min-width:900px){.sticky{left:auto;right:24px;width:420px}}

/* ---------- dialogs ---------- */
dialog{border:2px solid var(--outline);border-radius:24px;padding:0;background:var(--surface);color:var(--ink);width:min(560px,calc(100% - 24px));max-height:calc(100% - 32px);box-shadow:6px 8px 0 var(--outline)}
dialog::backdrop{background:rgba(10,28,34,.62);backdrop-filter:blur(3px)}
dialog[open]{animation:dlg .3s cubic-bezier(.3,1.3,.5,1)}
@keyframes dlg{from{transform:translateY(24px) scale(.97);opacity:0}to{transform:none;opacity:1}}
.dlg-in{padding:24px clamp(18px,4vw,30px) 26px;display:grid;gap:16px}
.dlg-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.x{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:50%;width:38px;height:38px;font:600 1.2rem/1 var(--body);cursor:pointer;flex:none}
.order{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;padding:14px;border-radius:16px;background:var(--surface-2)}
.order img{border-radius:4px;border:1px solid var(--line)}
.order b{font:700 1.08rem/1.2 var(--display);display:block}
.order small{color:var(--ink-soft);font-size:.8rem}
.order .amt{font:800 1.4rem/1 var(--display);font-variant-numeric:tabular-nums}
.steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:10px}
/* block, not grid: a grid split "<b>Title.</b> text" into one word per line on the thank-you page */
.steps li{counter-increment:s;position:relative;padding:4px 0 0 42px;min-height:30px;font-size:.94rem}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--marigold);color:var(--on-marigold);font:700 .95rem/1 var(--display);border:1.5px solid var(--outline)}
.dlg-in .btn{width:100%}
.note{font-size:.8rem;color:var(--ink-soft)}
.note a{color:var(--ink)}
.setup{background:var(--coral-soft);border-radius:12px;padding:12px 14px;font-size:.86rem}
.setup[hidden]{display:none}
.policy{width:min(760px,calc(100% - 24px))}
.policy .dlg-in{gap:12px}
.policy h2{font-size:1.9rem}
.policy h3{font-size:1.15rem;margin-top:8px}
.policy p,.policy li{color:var(--ink-soft);font-size:.93rem}
.policy ul{margin:0;padding-left:20px;display:grid;gap:6px}
.peek-dlg{width:min(700px,calc(100% - 24px))}
.peek-dlg img{width:100%;border-radius:8px;border:1px solid var(--line)}
.peek-nav{display:flex;justify-content:space-between;align-items:center;gap:10px}
.peek-nav button{font:600 .9rem/1 var(--body);border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:10px 16px;cursor:pointer}
.toast{position:fixed;left:50%;top:18px;transform:translate(-50%,-160%);z-index:60;background:var(--outline);color:#fff;border-radius:12px;padding:12px 16px;font-size:.88rem;max-width:calc(100% - 32px);transition:transform .35s ease}
.toast.show{transform:translate(-50%,0)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .marquee{width:auto;flex-wrap:wrap;transform:none!important}
  .marquee .dup{display:none}
}

/* =================== brand shell additions =================== */
:root{--sky:#DDF1F5;--pink:#F4B6C2}
.skip{position:absolute;left:-999px;top:8px;z-index:99;background:var(--marigold);color:var(--on-marigold);padding:8px 14px;border-radius:8px;font-weight:600}
.skip:focus{left:12px}
.crumbs{font-size:.8rem;color:var(--ink-soft);padding-block:14px 0}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li+li::before{content:"›";margin-right:6px;color:var(--line)}
.crumbs a{text-decoration:none;color:var(--ink-soft);display:inline-block;padding-block:7px;margin-block:-7px}.crumbs a:hover{color:var(--ink);text-decoration:underline}
.hero .crumbs,.hero .crumbs a{color:var(--night-soft)}

/* home hero */
.home-hero{background:linear-gradient(180deg,var(--sky) 0%,var(--ground) 100%);padding-block:clamp(36px,6vw,72px) clamp(40px,6vw,80px);overflow:hidden}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .home-hero{background:linear-gradient(180deg,#123A45 0%,var(--ground) 100%)}}
:root[data-theme="dark"] .home-hero{background:linear-gradient(180deg,#123A45 0%,var(--ground) 100%)}
.home-hero .wrap{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(24px,5vw,56px);align-items:center}
.home-hero .wrap>*{min-width:0}
.home-hero h1{font-size:clamp(2.5rem,6vw,4.4rem);font-weight:800;line-height:1}
.home-hero h1 .hl{color:var(--coral)}
.home-hero .lead{margin-top:16px}
.home-hero .hindi{color:var(--ink-soft);font-size:1.08rem;margin-top:12px}
.trust{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.trust span{font:600 .78rem/1 var(--body);background:var(--surface);border:1.5px solid var(--line);border-radius:999px;padding:8px 12px 7px}
@media (max-width:860px){.home-hero .wrap{grid-template-columns:1fr}}
/* ===================================================================
   THE HOME HERO: the product, not a mascot.
   A phone with a real page open on it, two real pages standing behind,
   on a warm lit stage. Nothing here moves: the job of this picture is
   to answer "what exactly do I get" before anybody scrolls.
   =================================================================== */
.hstage{width:100%;max-width:560px;margin:0 auto}
.hstage-in{position:relative;aspect-ratio:16/12.8;border-radius:24px;overflow:hidden;
  background:
    radial-gradient(120% 90% at 18% 6%, #FFFDF7 0%, rgba(255,253,247,0) 58%),
    linear-gradient(168deg, #EDF3F0 0%, #E3EDEA 46%, #DCE9E6 100%);
  border:1px solid var(--line);
  box-shadow:0 1px 1px rgba(20,50,59,.04), 0 30px 60px -34px rgba(20,50,59,.45)}
.hlight{position:absolute;left:-6%;top:-18%;width:64%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle, rgba(255,241,204,.75) 0%, rgba(255,241,204,.18) 45%, rgba(255,241,204,0) 70%)}
/* a soft shelf so nothing floats: a faint horizon plus one contact shadow */
.hstage-in::before{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;
  background:linear-gradient(to top, rgba(20,50,59,.085) 0%, rgba(20,50,59,.055) 30%,
    rgba(20,50,59,.028) 58%, rgba(20,50,59,.009) 80%, rgba(20,50,59,0) 100%)}
.hshelf{position:absolute;left:50%;bottom:4.6%;translate:-50% 0;width:56%;height:5%;
  border-radius:50%;background:radial-gradient(closest-side, rgba(20,50,59,.30) 0%, rgba(20,50,59,0) 100%);
  filter:blur(3px)}

/* ------------------------------------------------------------------
   THREE PAGES YOU CAN PICK UP
   Each of the three things on the stage is a real button. Clicking one
   brings that page forward and enlarges it where it stands; the other
   two do not budge, which is the point -- the arrangement stays
   recognisable and only the page you asked for changes.
   The chosen one is held in data-front on the stage, so one attribute
   drives every rule below and the state is visible in the DOM.
   ------------------------------------------------------------------ */
.hpick{position:absolute;padding:0;margin:0;border:0;background:none;cursor:pointer;
  transition:scale .42s cubic-bezier(.2,1.25,.35,1), rotate .42s ease, translate .42s ease,
             filter .3s ease;
  transform-origin:50% 92%}
.hpick:focus-visible{outline:3px solid var(--outline);outline-offset:4px;border-radius:8px}
/* the raised page says it can be put back down again */
.hstage-in[data-front="1"] .hpk1,.hstage-in[data-front="2"] .hpk2,
.hstage-in[data-front="3"] .hpk3{cursor:zoom-out}
.hpick.hpk1{left:8%;bottom:13.5%;width:30%;rotate:-7deg;z-index:1}
.hpick.hpk3{right:7.5%;bottom:15.5%;width:30%;rotate:6.5deg;z-index:1}
.hpick.hpk2{left:50%;bottom:6%;width:33%;translate:-50% 0;z-index:3;transform-origin:50% 100%}
/* the printed page itself fills its button */
.hpaper{display:block;width:100%;height:auto;border-radius:6px;background:#fff;
  border:1px solid rgba(27,42,49,.14);
  box-shadow:0 2px 3px rgba(20,50,59,.08), 0 18px 26px -14px rgba(20,50,59,.42)}
/* Whichever page was clicked: forward, bigger, straightened up a little.
   Nothing else on the stage has a rule here, deliberately -- the other two
   keep the exact size and place they started in, so the scene never
   rearranges itself under you. Only one page is ever raised at a time. */
/* The chosen page comes to the middle of the stage and stands upright, the way
   you would hold a sheet up to read it. The move is done with translate rather
   than by changing left/right, because "auto" cannot be animated and the page
   would jump instead of travelling. The numbers are percentages of the page's
   own width, worked out so it lands centred and clear of all four edges. */
.hstage-in[data-front="1"] .hpk1{z-index:6;scale:1.5;rotate:0deg;translate:90% 8%}
.hstage-in[data-front="3"] .hpk3{z-index:6;scale:1.5;rotate:0deg;translate:-92% 8%}
.hstage-in[data-front="2"] .hpk2{z-index:6;scale:1.06}
.hstage-in[data-front="1"] .hpk1 .hpaper,
.hstage-in[data-front="3"] .hpk3 .hpaper{
  box-shadow:0 4px 8px rgba(20,50,59,.14), 0 28px 44px -16px rgba(20,50,59,.5)}
.hstage-in[data-front="2"] .hphone{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),
             0 4px 8px rgba(20,50,59,.24), 0 34px 52px -20px rgba(20,50,59,.62)}
@media (hover:hover){
  .hpick:hover{filter:brightness(1.03) drop-shadow(0 10px 18px rgba(20,50,59,.22))}
}
/* ---- the nudge that says "these move" ----
   Nobody clicks a picture that looks like a picture. So the three pages take
   turns giving a little wiggle, one after another, until somebody touches one
   -- at which point the invitation has done its job and stops for good.
   It runs four times and then settles by itself, so it invites without
   nagging, and it only starts once the stage has actually been scrolled into
   view, so it is not already finished by the time anybody looks at it.
   Each page needs its own keyframes because the wiggle has to carry that
   page's resting angle: a shared one would snap all three upright first. */
@media (prefers-reduced-motion:no-preference){
  .hstage-in.invite:not(.touched) .hpk1{animation:hWig1 7s ease-in-out 4 both}
  .hstage-in.invite:not(.touched) .hpk2{animation:hWig2 7s ease-in-out 4 both}
  .hstage-in.invite:not(.touched) .hpk3{animation:hWig3 7s ease-in-out 4 both}
}
@keyframes hWig1{
  0%,6%{rotate:-7deg;translate:0 0;scale:1}
  9%{rotate:-1.4deg;translate:0 -5%;scale:1.035}
  12.5%{rotate:-12deg;translate:0 -1%;scale:1.02}
  16%{rotate:-4.4deg;translate:0 -3%;scale:1.03}
  19%{rotate:-8.4deg;translate:0 0;scale:1.01}
  22%,100%{rotate:-7deg;translate:0 0;scale:1}
}
@keyframes hWig2{
  0%,26%{rotate:0deg;translate:-50% 0;scale:1}
  29%{rotate:3.4deg;translate:-50% -3.4%;scale:1.03}
  32.5%{rotate:-3.4deg;translate:-50% -.8%;scale:1.02}
  36%{rotate:2deg;translate:-50% -2%;scale:1.025}
  39%{rotate:-1deg;translate:-50% 0;scale:1.01}
  42%,100%{rotate:0deg;translate:-50% 0;scale:1}
}
/* This one leans away from the right-hand edge of the stage, so its swing is a
   degree smaller than page 1's and it slides very slightly inwards as it tips.
   Without that it clipped its own corner by a few pixels at the top of the
   wiggle -- invisible in a still, obvious as a flicker in motion. */
@keyframes hWig3{
  0%,46%{rotate:6.5deg;translate:0 0;scale:1}
  49%{rotate:10.6deg;translate:-2% -5%;scale:1.03}
  52.5%{rotate:1.6deg;translate:-.5% -1%;scale:1.02}
  56%{rotate:8.6deg;translate:-1.5% -3%;scale:1.025}
  59%{rotate:5deg;translate:0 0;scale:1.01}
  62%,100%{rotate:6.5deg;translate:0 0;scale:1}
}

.hstage-hint{margin:0;position:absolute;left:50%;bottom:1.6%;translate:-50% 0;z-index:7;
  font:600 .68rem/1 var(--body);color:var(--ink-soft);background:rgba(255,255,255,.86);
  padding:5px 10px;border-radius:99px;white-space:nowrap;
  transition:opacity .3s ease}
.hstage-in.touched .hstage-hint{opacity:0}

/* the phone, drawn in CSS so it stays crisp at every size */
.hphone{position:relative;width:100%;aspect-ratio:9/18.6;
  background:#16242B;border-radius:13% / 6.3%;padding:3.4% 3.2%;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),
             0 3px 6px rgba(20,50,59,.22), 0 26px 40px -18px rgba(20,50,59,.58)}
.hphone-bar{position:absolute;left:50%;top:2.4%;translate:-50% 0;width:24%;height:1.5%;
  border-radius:99px;background:#2E4149}
.hphone-home{position:absolute;left:50%;bottom:1.6%;translate:-50% 0;width:32%;height:.9%;
  border-radius:99px;background:rgba(255,255,255,.5)}
.hphone-scr{position:relative;height:100%;border-radius:10% / 5.4%;overflow:hidden;
  background:#E7EAED}
.hphone-scr::before{content:"";position:absolute;inset:0 0 auto 0;height:7%;background:#F7F8F9;
  border-bottom:1px solid rgba(27,42,49,.10);z-index:2}
/* ==================================================================
   THE PHONE THAT FILLS ITSELF IN
   The phone used to hold two small photographs of pages, which said
   "this is a PDF" and nothing else -- flat as a newspaper cutting. The
   thing worth showing is what the kit DOES, so the screen is a real
   page built out of CSS: three jobs get ticked one at a time, tonight's
   job types itself onto the line, and the brand's doodles pop out past
   the phone's edge. Nobody has to read the caption to understand it.

   Everything is sized in cqw -- 1% of the phone screen's own width --
   so the page stays in proportion at every stage size.
   Motion: one 9-second loop. Under prefers-reduced-motion the whole
   thing simply sits in its finished state, ticked and filled in.
   ================================================================== */
.hphone-scr{container-type:inline-size}
.hkit{position:absolute;left:0;right:0;top:7%;bottom:0;z-index:1;
  padding:6cqw 6cqw 0;background:#fff;
  font:500 6.4cqw/1.28 var(--body);color:#1B2A31;text-align:left}
.hkit-pill{margin:0 0 4.4cqw;display:inline-block;padding:1.6cqw 3.4cqw;border-radius:99px;
  background:#FBEFD9;color:#8A5B12;font:700 4.8cqw/1 var(--body);
  letter-spacing:.04em;text-transform:uppercase}
.hkit-list{margin:0;padding:0;list-style:none;display:grid;gap:3.6cqw}
.hkit-list li{display:grid;grid-template-columns:9.4cqw minmax(0,1fr);gap:3cqw;align-items:start}
.hkit-box{position:relative;width:9.4cqw;height:9.4cqw;border-radius:1.6cqw;
  border:.7cqw solid #6E7F86;background:#fff}
.hkit-box svg{position:absolute;inset:-1.4cqw;width:calc(100% + 2.8cqw);height:calc(100% + 2.8cqw)}
.hkit-box path{fill:none;stroke:#1F4E5A;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;
  /* the tick is drawn on, like a pen stroke: the line starts fully retracted */
  stroke-dasharray:32;stroke-dashoffset:32}
.hkit-lab{margin:5.6cqw 0 1.4cqw;font:700 4.9cqw/1 var(--body);color:#1F4E5A}
.hkit-line{position:relative;margin:0;border-bottom:.6cqw solid #C9C1B2;min-height:8cqw}
.hkit-type{display:inline-block;overflow:hidden;white-space:nowrap;vertical-align:bottom;
  max-width:0;font:500 6cqw/1.3 var(--body);color:#22333B;
  border-right:.7cqw solid transparent}
.hkit-yay{position:absolute;right:6cqw;bottom:15cqw;padding:1.8cqw 3.4cqw;border-radius:99px;
  background:#F2B138;color:#3A2A12;font:700 5cqw/1 var(--body);
  box-shadow:0 .8cqw 2cqw rgba(20,50,59,.22);opacity:0;scale:.4}
.hkit-foot{position:absolute;left:6cqw;right:6cqw;bottom:4.5cqw;margin:0;
  font:italic 500 4.9cqw/1.25 var(--quote);color:#C9502F}
/* the quiet line that makes the point the caption cannot: the answers stay */
.hkit-saved{display:flex;align-items:center;gap:2cqw;margin:5cqw 0 0;
  font:600 4.7cqw/1 var(--body);color:#2E7D5B;opacity:0}
.hkit-savetick{width:5.4cqw;height:5.4cqw;flex:none}
.hkit-savetick svg{width:100%;height:100%}
.hkit-savetick path{fill:none;stroke:#2E7D5B;stroke-width:3.6;stroke-linecap:round;stroke-linejoin:round}
.hkit-doodle{display:block;width:34%;height:auto;margin:4cqw auto 0}
/* the doodles sit on the phone, not in the screen, so they fly out past its edge */
.hpop{position:absolute;width:26%;z-index:4;opacity:0;pointer-events:none}
.hpop img{display:block;width:100%;height:auto}
.hpop1{left:-14%;top:26%}
.hpop2{right:-15%;top:39%}
.hpop3{left:-12%;top:52%}
.hpop4{right:-13%;top:66%}

@media (prefers-reduced-motion:no-preference){
  /* Five separate keyframes rather than one with five delays, which is the
     obvious way and the wrong one: a delay shifts the whole nine seconds, so
     each row would also UN-tick at its own moment and the page would erase
     itself raggedly, one row at a time, halfway through the next round. These
     tick at 0.4s apart and all clear together at 8.3s. */
  .hkit-list li:nth-child(1) path{animation:hTick1 9s ease-out infinite both}
  .hkit-list li:nth-child(2) path{animation:hTick2 9s ease-out infinite both}
  .hkit-list li:nth-child(3) path{animation:hTick3 9s ease-out infinite both}
  .hkit-list li:nth-child(4) path{animation:hTick4 9s ease-out infinite both}
  .hkit-list li:nth-child(5) path{animation:hTick5 9s ease-out infinite both}
  .hkit-type{animation:hType 9s steps(11,end) infinite both, hCaret .7s step-end 11 4.4s both}
  .hkit-yay{animation:hYay 9s cubic-bezier(.2,1.5,.4,1) infinite both}
  .hkit-saved{animation:hSaved 9s ease-out infinite both}
  .hkit-doodle{animation:hBob 3.4s ease-in-out infinite}
  .hpop{animation:hPop 9s ease-out infinite both}
  .hpop1{animation-delay:.9s}
  .hpop2{animation-delay:2.2s}
  .hpop3{animation-delay:3.5s}
  .hpop4{animation-delay:5.6s}
  /* the two paper pages on the shelf breathe, very slightly */
  .hpk1 .hpaper{animation:hSway1 7s ease-in-out infinite}
  .hpk3 .hpaper{animation:hSway2 8s ease-in-out infinite}
}
/* drawn on quickly, then held for most of the loop, then cleared for the replay */
@keyframes hTick1{0%,4%{stroke-dashoffset:32}8%,88%{stroke-dashoffset:0}92%,100%{stroke-dashoffset:32}}
@keyframes hTick2{0%,13%{stroke-dashoffset:32}17%,88%{stroke-dashoffset:0}92%,100%{stroke-dashoffset:32}}
@keyframes hTick3{0%,22%{stroke-dashoffset:32}26%,88%{stroke-dashoffset:0}92%,100%{stroke-dashoffset:32}}
@keyframes hTick4{0%,31%{stroke-dashoffset:32}35%,88%{stroke-dashoffset:0}92%,100%{stroke-dashoffset:32}}
@keyframes hTick5{0%,40%{stroke-dashoffset:32}44%,88%{stroke-dashoffset:0}92%,100%{stroke-dashoffset:32}}
@keyframes hType{
  0%,48%{max-width:0}
  66%{max-width:46cqw}
  88%{max-width:46cqw}
  90%,100%{max-width:0}
}
@keyframes hCaret{50%{border-right-color:#C9502F}}
@keyframes hYay{
  0%,70%{opacity:0;scale:.4;rotate:-12deg}
  76%{opacity:1;scale:1;rotate:-4deg}
  86%{opacity:1;scale:1;rotate:-4deg}
  90%,100%{opacity:0;scale:.6;rotate:-12deg}
}
/* out of the phone, up and away, turning as it goes */
@keyframes hPop{
  0%{opacity:0;translate:0 0;scale:.3;rotate:0deg}
  4%{opacity:1;scale:1.08}
  9%{scale:.96}
  20%{opacity:.85;translate:-8% -70%;rotate:-16deg;scale:.9}
  28%{opacity:0;translate:-12% -105%;rotate:-22deg;scale:.8}
  29%,100%{opacity:0;translate:0 0;scale:.3;rotate:0deg}
}
@keyframes hSaved{0%,68%{opacity:0}74%,88%{opacity:1}92%,100%{opacity:0}}
@keyframes hBob{0%,100%{translate:0 0;rotate:-4deg}50%{translate:0 -6%;rotate:4deg}}
@keyframes hSway1{0%,100%{rotate:0deg}50%{rotate:1.5deg}}
@keyframes hSway2{0%,100%{rotate:0deg}50%{rotate:-1.4deg}}
/* the finished state, for anybody who has asked their device to stop animating */
@media (prefers-reduced-motion:reduce){
  .hkit-box path{stroke-dashoffset:0}
  .hkit-type{max-width:46cqw}
  .hkit-saved{opacity:1}
}

/* two small honest labels */
.hchip{position:absolute;font:600 .72rem/1 var(--body);color:var(--ink);
  background:color-mix(in srgb,var(--surface) 92%,transparent);
  border:1px solid var(--line);border-radius:999px;padding:7px 11px 6px;
  box-shadow:0 1px 2px rgba(20,50,59,.06), 0 8px 16px -10px rgba(20,50,59,.4);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.hchip.hc1{left:4%;top:10%}
.hchip.hc2{right:4.5%;bottom:8%}
/* below the stage, the same two facts as plain pills — used where the stage is
   too narrow for floating labels to sit clear of the pages */
.hfacts{display:none;margin:12px 0 0;padding:0;list-style:none;
  justify-content:center;gap:8px;flex-wrap:wrap}
.hfacts li{font:600 .72rem/1 var(--body);color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-radius:999px;padding:7px 11px 6px}
.hstage-cap{margin-top:14px;font:400 .84rem/1.5 var(--body);color:var(--ink-soft);text-align:center;
  max-width:44ch;margin-inline:auto}

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .hstage-in{
    background:radial-gradient(120% 90% at 18% 6%, #21414A 0%, rgba(33,65,74,0) 58%),
               linear-gradient(168deg,#173038 0%,#12262C 100%)}
  :root:not([data-theme="light"]) .hlight{background:radial-gradient(circle, rgba(255,224,138,.22) 0%, rgba(255,224,138,0) 70%)}
  :root:not([data-theme="light"]) .hpaper{border-color:rgba(255,255,255,.14)}
  :root:not([data-theme="light"]) .hstage-in::before{
    background:linear-gradient(to top, rgba(0,0,0,.30) 0%, rgba(0,0,0,.19) 30%,
      rgba(0,0,0,.095) 58%, rgba(0,0,0,.03) 80%, rgba(0,0,0,0) 100%)}
  :root:not([data-theme="light"]) .hshelf{
    background:radial-gradient(closest-side, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 100%)}
}
:root[data-theme="dark"] .hstage-in{
  background:radial-gradient(120% 90% at 18% 6%, #21414A 0%, rgba(33,65,74,0) 58%),
             linear-gradient(168deg,#173038 0%,#12262C 100%)}
:root[data-theme="dark"] .hlight{background:radial-gradient(circle, rgba(255,224,138,.22) 0%, rgba(255,224,138,0) 70%)}
:root[data-theme="dark"] .hpaper{border-color:rgba(255,255,255,.14)}
:root[data-theme="dark"] .hstage-in::before{
  background:linear-gradient(to top, rgba(0,0,0,.30) 0%, rgba(0,0,0,.19) 30%,
    rgba(0,0,0,.095) 58%, rgba(0,0,0,.03) 80%, rgba(0,0,0,0) 100%)}
:root[data-theme="dark"] .hshelf{
  background:radial-gradient(closest-side, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 100%)}

@media (max-width:860px){.hstage{max-width:460px}}
@media (max-width:620px){
  .hchip{display:none}
  .hfacts{display:flex}
  .hstage-cap{font-size:.8rem}
}

/* ticker */
.ticker{background:var(--marigold);color:var(--on-marigold);border-block:2px solid var(--outline);overflow:hidden;padding-block:12px}
.ticker .row{display:flex;gap:28px;width:max-content;animation:slide 38s linear infinite;font:700 1.02rem/1 var(--display);white-space:nowrap}
.ticker .row span::after{content:"✦";margin-left:28px}

/* feature product */
.feature{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,5vw,56px);align-items:center;background:var(--surface);border:2px solid var(--outline);border-radius:28px;padding:clamp(20px,4vw,44px);box-shadow:6px 8px 0 var(--outline)}
.feature>*{min-width:0}
.feature .cover-wrap{max-width:300px}
.feature h3{font-size:clamp(1.8rem,3.4vw,2.5rem);font-weight:800}
.feature .desc{color:var(--ink-soft);margin-top:10px;max-width:58ch}
.feature .row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;margin-top:22px}
.price-tag{font:800 2rem/1 var(--display);font-variant-numeric:tabular-nums}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
@media (max-width:760px){.feature{grid-template-columns:1fr}}

/* how it works */
.how{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;list-style:none;padding:0;margin:0;counter-reset:h}
.how li{counter-increment:h;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px}
.how li::before{content:counter(h);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--mint);border:2px solid var(--outline);font:800 1.2rem/1 var(--display);margin-bottom:14px;color:var(--outline)}
.how b{display:block;font:700 1.25rem/1.2 var(--display)}
.how p{color:var(--ink-soft);font-size:.94rem;margin-top:6px}
@media (max-width:760px){.how{grid-template-columns:1fr}}

/* values */
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.values div{border-top:3px solid var(--marigold);padding-top:14px}
.values div:nth-child(2){border-color:var(--coral)}.values div:nth-child(3){border-color:var(--mint)}.values div:nth-child(4){border-color:#8FC9E8}
.values b{font:700 1.15rem/1.2 var(--display);display:block}
.values p{color:var(--ink-soft);font-size:.92rem;margin-top:6px}
@media (max-width:860px){.values{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.values{grid-template-columns:1fr}}

/* ==================================================================
   "NO PRINTER? YOU DON'T NEED ONE."
   The kits became fillable, and that quietly removes the objection that
   used to cost the most sales: plenty of Indian homes have no printer,
   and a kit full of printables reads as useless without one. So it gets
   its own band on the home page rather than a line in the FAQ.
   The four icons are drawn in CSS -- a finger tapping, a page saving, a
   pen, a highlighter -- so no image has to load for the section to make
   sense, and they inherit the brand colours from the token block.
   ================================================================== */
.bothways{background:var(--surface-2)}
.bw-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin-top:26px}
.bw{background:var(--surface);border:1.5px solid var(--line);border-radius:20px;padding:20px}
.bw b{display:block;font:700 1.12rem/1.24 var(--display);margin-top:12px}
.bw p{color:var(--ink-soft);font-size:.92rem;margin-top:6px}
.bw-ico{position:relative;display:block;width:44px;height:44px;border-radius:13px;
  border:2px solid var(--outline);background:var(--marigold)}
.bw:nth-child(2) .bw-ico{background:var(--mint)}
.bw:nth-child(3) .bw-ico{background:#F7E1DA}
.bw:nth-child(4) .bw-ico{background:#CDE8F4}
.bw-ico::before,.bw-ico::after{content:"";position:absolute;background:var(--outline)}
/* a fingertip pressing a tick box */
.bw-tap::before{left:8px;top:8px;width:17px;height:17px;border-radius:4px;background:transparent;
  border:2.4px solid var(--outline)}
.bw-tap::after{left:19px;top:19px;width:13px;height:13px;border-radius:50% 50% 50% 2px;
  background:var(--outline)}
/* a phone, with what you typed kept safely inside it */
.bw-save::before{left:12px;top:5px;width:16px;height:30px;border-radius:4px;background:transparent;
  border:2.4px solid var(--outline)}
.bw-save::after{left:15px;top:17px;width:10px;height:5px;background:transparent;
  border-left:2.4px solid var(--outline);border-bottom:2.4px solid var(--outline);
  rotate:-45deg;border-radius:0 0 0 1px}
/* a sheet of paper with its corner turned down */
.bw-pen::before{left:10px;top:5px;width:20px;height:30px;border-radius:2px;background:var(--surface);
  border:2.4px solid var(--outline)}
.bw-pen::after{right:8px;top:5px;width:9px;height:9px;background:var(--marigold);
  border-left:2.4px solid var(--outline);border-bottom:2.4px solid var(--outline)}
/* a highlighter stroke across a line of text */
.bw-mark::before{left:7px;top:14px;width:30px;height:9px;border-radius:2px;background:var(--marigold);
  box-shadow:0 0 0 2px var(--outline)}
.bw-mark::after{left:7px;top:28px;width:22px;height:3px;border-radius:2px;background:var(--outline)}
.bw-note{margin-top:20px;font-size:.88rem;color:var(--ink-soft);max-width:80ch}
@media (max-width:980px){.bw-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.bw-grid{grid-template-columns:1fr}}

/* cards: shop + journal */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px}
.pcard{display:flex;flex-direction:column;background:var(--surface);border:1.5px solid var(--line);border-radius:22px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.pcard:hover{transform:translateY(-4px) rotate(-.4deg);box-shadow:var(--shadow)}
.pcard .thumb{background:var(--surface-2);padding:22px 22px 0;display:flex;justify-content:center;aspect-ratio:4/3.4;overflow:hidden}
.pcard .thumb img{width:68%;border-radius:4px 4px 0 0;box-shadow:0 10px 24px rgba(20,50,59,.2);align-self:flex-end}
.pcard .body{padding:18px 20px 20px;display:grid;gap:8px}
.pcard .cat{font:600 .7rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--coral)}
.pcard h3{font-size:1.3rem}
.pcard h3 a{text-decoration:none}
.pcard h3 a::after{content:"";position:absolute;inset:0}
.pcard{position:relative}
.pcard .meta{display:flex;justify-content:space-between;align-items:center;margin-top:4px}
.pcard .meta b{font:800 1.3rem/1 var(--display)}
.pcard .meta > span{font-size:.8rem;color:var(--ink-soft)}
.jcard{display:grid;gap:10px;background:var(--surface);border:1.5px solid var(--line);border-radius:20px;padding:22px;position:relative;transition:transform .2s ease}
.jcard:hover{transform:translateY(-3px)}
.jcard h3{font-size:1.25rem;line-height:1.2}
.jcard h3 a{text-decoration:none}.jcard h3 a::after{content:"";position:absolute;inset:0}
.jcard p{color:var(--ink-soft);font-size:.92rem}
.jcard .lang{font:600 .7rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
/* the shop's filter bar: categories on the left, sorting on the right */
.shopbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:14px 20px;padding-bottom:16px;border-bottom:1.5px solid var(--line)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{display:inline-flex;align-items:center;gap:7px;font:600 .85rem/1 var(--body);
  border:1.5px solid var(--line);background:var(--surface);color:var(--ink);
  border-radius:999px;padding:9px 12px 9px 14px;cursor:pointer;
  transition:border-color .15s ease,background .15s ease}
.chips button:hover{border-color:var(--outline)}
.chips button:focus-visible{outline:3px solid var(--marigold);outline-offset:2px}
.chips button[aria-pressed="true"]{background:var(--ink);color:var(--ground);border-color:var(--ink)}
/* how many products are in each category, so nobody taps into a thin one */
.chips .cn{font:700 .72rem/1 var(--body);min-width:1.35em;padding:3px 5px 2px;text-align:center;
  border-radius:999px;background:var(--line);color:var(--ink)}
.chips button[aria-pressed="true"] .cn{background:rgba(255,255,255,.22);color:var(--ground)}
.sortbox{display:flex;align-items:center;gap:9px;margin-left:auto}
.sortbox label{font:600 .84rem/1 var(--body);color:var(--ink-soft);white-space:nowrap}
.sortbox select{font:600 .87rem/1.2 var(--body);color:var(--ink);background:var(--surface);
  border:1.5px solid var(--line);border-radius:999px;padding:10px 34px 10px 14px;cursor:pointer;
  appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.sortbox select:hover{border-color:var(--outline)}
.sortbox select:focus-visible{outline:3px solid var(--marigold);outline-offset:2px}
.shopcount{margin:14px 0 20px;font:500 .9rem/1.4 var(--body);color:var(--ink-soft)}
@media (max-width:560px){
  .shopbar{flex-direction:column;align-items:stretch}
  .sortbox{margin-left:0}
  .sortbox select{flex:1 1 auto;min-width:0}
}
.page-head{padding-block:clamp(36px,6vw,64px) 8px}
.page-head h1{font-size:clamp(2.3rem,5.4vw,3.6rem);font-weight:800}
.page-head .lead{margin-top:12px}
.soon{margin-top:26px;color:var(--ink-soft);font-size:.95rem}

/* article */
.prose{max-width:720px;margin-inline:auto;padding-block:clamp(28px,5vw,56px) clamp(56px,8vw,96px)}
.prose h1{font-size:clamp(2.1rem,5vw,3.2rem);font-weight:800;margin-top:10px}
.prose .standfirst{font-size:1.14rem;color:var(--ink-soft);margin-top:14px}
.prose .byline{font-size:.82rem;color:var(--ink-soft);margin-top:14px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.prose h2{font-size:clamp(1.5rem,3vw,1.95rem);margin-top:40px;margin-bottom:10px}
.prose h3{font-size:1.2rem;margin-top:24px;margin-bottom:6px}
.prose p,.prose li{font-size:1.02rem;line-height:1.75}
.prose p+p{margin-top:14px}
.prose ul,.prose ol{padding-left:22px;display:grid;gap:8px;margin:12px 0}
.prose .tbl{overflow-x:auto;margin:16px 0}
.prose table{border-collapse:collapse;width:100%;min-width:520px;font-size:.93rem}
.prose th,.prose td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.prose th{font:600 .74rem/1.3 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border-bottom:2px solid var(--ink)}
.prose .box{background:var(--surface);border:2px solid var(--outline);border-radius:20px;padding:20px 22px;margin:28px 0;box-shadow:4px 5px 0 var(--outline)}
.prose .box h3{margin-top:0}
.prose .src{font-size:.85rem;color:var(--ink-soft)}
.prose .src li{font-size:.85rem;line-height:1.5}
.prose .src a{word-break:break-word}
.prose[lang="hi"] p,.prose[lang="hi"] li{font-size:1.06rem;line-height:1.85}
.cta-box{display:grid;grid-template-columns:90px 1fr;gap:18px;align-items:center}
.cta-box>*{min-width:0}
.cta-box .btn{white-space:normal;text-align:center}
@media (max-width:520px){.cta-box{grid-template-columns:1fr;justify-items:start}.cta-box img{max-width:90px}}
.cta-box img{border-radius:4px;box-shadow:var(--shadow)}
.cta-box .btn{margin-top:12px}
.note-med{font-size:.85rem;color:var(--ink-soft);border-left:3px solid var(--line);padding-left:12px;margin-top:22px}

/* screen time table on product page */
.agegrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.agegrid div{background:var(--surface);border:1.5px solid var(--line);border-radius:18px;padding:18px}
.agegrid b{display:block;font:800 1.5rem/1 var(--display)}
.agegrid span{display:block;font:600 .72rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--coral);margin-bottom:10px}
.agegrid p{font-size:.9rem;color:var(--ink-soft);margin-top:8px}
@media (max-width:860px){.agegrid{grid-template-columns:1fr 1fr}}
@media (max-width:420px){.agegrid{grid-template-columns:1fr}}
.hi-block{background:var(--surface);border-radius:22px;border:1.5px solid var(--line);padding:clamp(20px,4vw,34px)}
.hi-block h2{font-size:clamp(1.6rem,3.4vw,2.2rem)}
.hi-block p{margin-top:12px;font-size:1.05rem;line-height:1.85;color:var(--ink-soft);max-width:70ch}
.hero-line{font:800 clamp(2.6rem,6.4vw,4.7rem)/1.06 var(--display);margin-top:12px;margin-bottom:.26em;text-wrap:balance;letter-spacing:-.01em}
.hero-line em{font-style:normal;color:var(--marigold)}
.hero h1.kicker{font:700 clamp(1rem,1.6vw,1.15rem)/1.35 var(--body);letter-spacing:0;color:var(--marigold);margin-top:10px}

/* footer extended */
footer .wrap{grid-template-columns:1.3fr 1fr 1fr}
footer h2{font:700 .8rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--night-ink);margin-bottom:12px}
footer .col{display:grid;gap:2px;align-content:start}
footer .col a{color:var(--night-soft);text-decoration:none;display:inline-flex;align-items:center;min-height:38px}
footer .col a:hover{color:var(--night-ink);text-decoration:underline}
.social{display:flex;gap:14px;margin-top:14px}
.social a{color:var(--night-ink)}
@media (max-width:760px){footer .wrap{grid-template-columns:1fr 1fr}footer .wrap>div:first-child{grid-column:1/-1}}
.policy-main{max-width:760px;margin:clamp(24px,5vw,48px) auto clamp(56px,8vw,96px);background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:clamp(20px,5vw,44px)}
.policy-main h1{font-size:clamp(2rem,4.6vw,2.8rem);font-weight:800;margin-bottom:6px}
.policy-main h2{font-size:1.25rem;margin-top:24px;margin-bottom:6px}
.policy-main h3{font-size:1.05rem;margin-top:18px;margin-bottom:4px}
.policy-main #legal{scroll-margin-top:150px}
.js-phone{white-space:nowrap}
.policy-main p,.policy-main li{color:var(--ink-soft)}
.policy-main ul{padding-left:20px;display:grid;gap:6px}
.policy-main p+p{margin-top:10px}

.prose .crumbs ol{display:flex;padding:0;margin:0;gap:6px}
.prose .crumbs li{font-size:.8rem;line-height:1.4}
.mnav{display:none;position:relative}
.mnav summary{list-style:none;cursor:pointer;font:600 calc(.9rem / var(--text-scale))/1 var(--body);border:1.5px solid var(--line);border-radius:999px;padding:10px 14px}
.mnav summary::-webkit-details-marker{display:none}
.mnav[open] summary{background:var(--ink);color:var(--ground)}
.mnav div{position:absolute;right:0;top:calc(100% + 8px);background:var(--surface);color:var(--ink);border:2px solid var(--outline);border-radius:16px;box-shadow:4px 5px 0 var(--outline);padding:8px;display:grid;min-width:180px;z-index:40}
.mnav div a{display:block!important;padding:11px 12px;border-radius:10px;text-decoration:none;color:var(--ink)!important;font:600 calc(.95rem / var(--text-scale))/1 var(--body)}
.mnav div a:hover{background:var(--surface-2)}
.dark-nav .mnav summary{border-color:rgba(255,255,255,.25);color:var(--night-ink)}
@media (max-width:760px){.mnav{display:block}}
@media (max-width:400px){.nav .wrap{gap:8px}.nav .btn{padding:9px 12px 7px;font-size:calc(.88rem / var(--text-scale))}.brand{font-size:1.05rem}.brand img{width:32px}}

/* combo */
.combo{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,5vw,56px);align-items:center;background:var(--marigold-soft);border:2px solid var(--outline);border-radius:28px;padding:clamp(22px,4vw,44px);box-shadow:6px 8px 0 var(--outline)}
.combo>*{min-width:0}
.combo-art{position:relative;display:flex;justify-content:center;align-items:flex-start;
  max-width:340px;width:100%;margin-inline:auto;padding:12px 10px 20px}
.combo-art img{position:static;width:47%;height:auto;border-radius:6px;box-shadow:0 14px 30px rgba(20,50,59,.25);
  border:1px solid var(--line);transition:transform .3s ease}
.combo-art .c1{transform:rotate(-6deg);margin-right:-3%;z-index:1}
.combo-art .c2{transform:rotate(5deg);margin-left:-3%;margin-top:24px}
.combo:hover .c1{transform:rotate(-9deg) translateX(-7px)}.combo:hover .c2{transform:rotate(8deg) translateX(7px)}
.combo-art .plus{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:var(--coral);color:#fff;border:2px solid var(--outline);display:grid;place-items:center;font:800 1.9rem/1 var(--display);box-shadow:3px 4px 0 var(--outline);z-index:2}
.combo-price{margin-top:16px;display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}
.combo-price b{font:800 2.4rem/1 var(--display)}
.combo-price .was{color:var(--ink-soft);font-size:.9rem}
@media (max-width:760px){.combo{grid-template-columns:1fr}}

/* pack page */
/* This hero used to be one flat slab of saturated marigold edge to edge, which
   is why it read as unfinished next to the other three: the Reset page has a
   deep night gradient, the combo a cream-to-gold one, the safety walk a soft
   clay. Worse, the Play Cards cover is ITSELF marigold, so the product sat
   yellow-on-yellow with nothing to separate it.
   Same yellow, given depth: a warm cream halo behind the fan so the cover has
   something to sit against, and a gentle gradient so the band is lit rather
   than printed flat. */
.pack-hero{
  background:
    radial-gradient(74% 66% at 76% 30%, #FFF4DA 0%, rgba(255,244,218,.62) 38%, rgba(255,244,218,0) 72%),
    linear-gradient(168deg,#FAD57F 0%,#F7C35A 54%,#EFB33E 100%);
  color:#1B2A31;padding-block:clamp(36px,6vw,72px) clamp(44px,6vw,80px);overflow:hidden}
.pack-hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,5vw,56px);align-items:center}
.pack-hero .wrap>*{min-width:0}
.pack-hero .crumbs,.pack-hero .crumbs a{color:#5A4413}
.pack-hero h1.kicker{font:700 clamp(1rem,1.6vw,1.15rem)/1.35 var(--body);color:#7A3E12;margin-top:10px}
.pack-hero .hero-line em{color:#C9502F}
.pack-hero .lead{color:#3A2A12;margin-top:14px}
.pack-hero .hindi{color:#5A4413;font-size:1.08rem}
.pack-hero .btn-ghost{color:#1B2A31}
.pack-hero .trust span{background:#FFF6DE;border-color:#E3A13B;color:#1B2A31}
.fan{position:relative;height:clamp(300px,42vw,440px);max-width:430px;width:100%;margin-inline:auto}
.fan img{position:absolute;left:50%;top:50%;width:56%;border-radius:6px;border:2px solid #1B2A31;box-shadow:5px 7px 0 #1B2A31;transform-origin:50% 90%;animation:fanout 1s cubic-bezier(.3,1.3,.5,1) both}
.fan .f1{transform:translate(-50%,-50%) rotate(-2deg);z-index:3}
.fan .f2{transform:translate(-18%,-50%) rotate(9deg);z-index:2;animation-delay:.15s}
.fan .f3{transform:translate(-82%,-50%) rotate(-12deg);z-index:1;animation-delay:.3s}
@keyframes fanout{from{translate:0 12px;opacity:.4}to{translate:0 0;opacity:1}}
.fan:hover .f2{transform:translate(-8%,-52%) rotate(14deg)}.fan:hover .f3{transform:translate(-92%,-52%) rotate(-17deg)}
.fan img{transition:transform .35s ease}
@media (max-width:860px){.pack-hero .wrap{grid-template-columns:1fr}}
.ways{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ways>div{background:var(--surface);border:1.5px solid var(--line);border-radius:22px;padding:20px;display:grid;gap:8px;align-content:start}
.ways img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:top;border-radius:12px;border:1px solid var(--line);margin-bottom:8px}
.ways b{font:700 1.25rem/1.2 var(--display)}
.ways p{color:var(--ink-soft);font-size:.93rem}
@media (max-width:760px){.ways{grid-template-columns:1fr}}
.games{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.game{display:grid;grid-template-columns:14px 1fr;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.game .dot{width:12px;height:12px;border-radius:50%;margin-top:6px;border:0}
.game b{display:block;font:700 1.08rem/1.2 var(--display)}
.game i{display:block;font-size:.84rem;color:var(--coral);margin-top:2px}
.game small{display:block;font-size:.76rem;color:var(--ink-soft);margin-top:4px}

/* thank-you page */
.ty{position:relative;overflow:hidden;background:linear-gradient(180deg,#FFF0C9 0%,var(--ground) 60%)}
.toran{height:clamp(56px,8vw,90px);background:url("toran.webp") repeat-x top left/auto 100%}
.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.confetti i{position:absolute;top:-20px;width:9px;height:14px;border-radius:2px;animation:fall 3.2s var(--d) cubic-bezier(.3,.6,.4,1) both}
@keyframes fall{0%{transform:translate(0,-10vh) rotate(0)}100%{transform:translate(var(--x),110vh) rotate(var(--r));opacity:.9}}
.ty-wrap{position:relative;text-align:center;padding-block:clamp(20px,4vw,40px) clamp(56px,8vw,96px)}
.ty h1{font-size:clamp(2.6rem,7vw,4.6rem);font-weight:800;margin-top:10px;color:var(--ink)}
.ty h1 span{display:block;font-size:.42em;color:var(--coral);margin-top:10px}
.ty-langs{font:600 .95rem/1.4 var(--body);color:var(--ink-soft);margin-top:10px}
.ty-art{width:min(620px,100%);margin:26px auto 0;border-radius:24px;border:2px solid var(--outline);box-shadow:6px 8px 0 var(--outline)}
.ty-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:34px;text-align:left}
.ty-card{background:var(--surface);border:1.5px solid var(--line);border-radius:22px;padding:24px}
.ty-card h2{font-size:1.5rem;margin-bottom:14px}
.ty-card p{color:var(--ink-soft)}
.ty-sign{font:italic 500 1.2rem/1.4 var(--quote);color:var(--coral);margin-top:34px}
@media (max-width:760px){.ty-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.confetti{display:none}.fan img{animation:none}}

.mnav{background:none!important;border:0!important;padding:0!important;border-radius:0}
.mnav summary{background:var(--surface);color:var(--ink)}
.mnav summary::after{content:none!important}
.dark-nav .mnav summary{background:transparent;color:var(--night-ink)}

/* =============== easy-to-use kit: help bar, big buttons, text size =============== */
.helpbar{background:var(--surface-2);color:var(--ink);font-size:calc(.85rem / var(--text-scale));border-bottom:1px solid var(--line)}
.helpbar .wrap{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;justify-content:flex-end;padding-block:8px}
.helpbar span{margin-right:auto;color:var(--ink-soft)}
.helpbar a{font-weight:600;text-decoration:underline;text-underline-offset:3px;display:inline-flex;align-items:center;min-height:38px;padding-inline:2px}
.helpbar .wa{color:#128C4B}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .helpbar .wa{color:#7BD8A4}}
:root[data-theme="dark"] .helpbar .wa{color:#7BD8A4}
.btn{min-height:52px;font-size:1.08rem}
.nav .btn{min-height:46px}
.btn-ghost{min-height:44px;display:inline-flex;align-items:center}
.textsize{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;min-width:46px;min-height:42px;font:700 calc(1rem / var(--text-scale))/1 var(--body);cursor:pointer}
.textsize sup{font-size:.7em}
.textsize[aria-pressed="true"]{background:var(--marigold);border-color:var(--outline);color:var(--on-marigold)}
.dark-nav .textsize{background:transparent;color:var(--night-ink);border-color:rgba(255,255,255,.3)}
.reassure{margin-top:14px;font-size:.88rem;color:var(--ink-soft)}
.totop{position:fixed;right:16px;bottom:20px;z-index:45;width:52px;height:52px;border-radius:50%;border:2px solid var(--outline);background:var(--surface);color:var(--ink);font:700 1.4rem/1 var(--body);cursor:pointer;box-shadow:3px 4px 0 var(--outline)}
.totop[hidden]{display:none}
.wafloat{position:fixed;left:16px;bottom:20px;z-index:45;display:inline-flex;align-items:center;gap:8px;background:#0F7A41;color:#fff;border:2px solid var(--outline);border-radius:999px;padding:13px 18px 12px;font:700 1rem/1 var(--display);text-decoration:none;box-shadow:3px 4px 0 var(--outline)}
.wafloat[hidden]{display:none}
.wafloat::before{content:"";width:22px;height:22px;flex:0 0 22px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M12%202.6c-5.2%200-9.4%203.7-9.4%208.3%200%202.5%201.3%204.8%203.3%206.3-.2%201.3-.9%202.6-1.9%203.6%201.7-.2%203.4-.8%204.8-1.8%201%20.3%202.1.4%203.2.4%205.2%200%209.4-3.7%209.4-8.5S17.2%202.6%2012%202.6z%22%2F%3E%3Ccircle%20cx%3D%228.2%22%20cy%3D%2210.9%22%20r%3D%221.25%22%20fill%3D%22%230F7A41%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2210.9%22%20r%3D%221.25%22%20fill%3D%22%230F7A41%22%2F%3E%3Ccircle%20cx%3D%2215.8%22%20cy%3D%2210.9%22%20r%3D%221.25%22%20fill%3D%22%230F7A41%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}
@media (max-width:520px){.wafloat{padding:12px 15px 11px;font-size:.88rem}}
.has-sticky .totop,.has-sticky .wafloat{bottom:calc(var(--stickyh,64px) + 24px)}

/* =============== swipeable, zoomable preview gallery =============== */
.gal{position:relative;--gh:300px}
.gtrack{display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:18px;background:var(--surface-2);overscroll-behavior-x:contain}
.gtrack::-webkit-scrollbar{display:none}
.gslide{scroll-snap-align:center;border:0;background:none;padding:14px 10px;cursor:zoom-in;display:grid;place-items:center}
.gslide img{height:var(--gh);width:auto;max-width:100%;border-radius:8px;border:1px solid var(--line);box-shadow:0 10px 26px rgba(20,50,59,.18);background:#fff}
.gal-card{--gh:230px}
.gal-feature{--gh:330px}
/* The preview stage on a product page was as wide as the text column -- about
   1100px -- while the page inside it is a portrait sheet roughly 330px across.
   Two thirds of it was empty mint, and the arrows sat marooned at the far edges,
   far enough from the picture to read as page furniture rather than as its
   controls. Since clicking the picture opens the zoom viewer rather than turning
   the page, the whole thing felt like it did not move at all. Hugging the stage
   to the sheet -- which is exactly what the home page does -- puts the arrows
   back beside the thing they move. */
.gal-full{--gh:clamp(300px,44vw,470px);max-width:min(100%,470px);margin-inline:auto}
.garrow{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:2px solid var(--outline);background:var(--surface);color:var(--ink);font:700 1.6rem/1 var(--body);cursor:pointer;display:grid;place-items:center;box-shadow:2px 3px 0 var(--outline);z-index:2}
.garrow.prev{left:6px}.garrow.next{right:6px}
.garrow:disabled{opacity:.35;cursor:default;box-shadow:none}
.gcount{position:absolute;top:10px;right:12px;z-index:2;background:var(--outline);color:#fff;border-radius:999px;padding:5px 10px 4px;font:600 .78rem/1 var(--body);font-variant-numeric:tabular-nums}
.gdots{display:flex;justify-content:center;gap:0;margin-top:6px;flex-wrap:wrap}
.gdot{width:34px;height:34px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}
.gdot::before{content:"";width:10px;height:10px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);transition:transform .25s cubic-bezier(.3,1.6,.4,1),background .2s ease}
.gdot[aria-current="true"]::before{background:var(--coral);border-color:var(--outline);transform:scale(1.3)}
.ghint{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;font-size:.85rem;color:var(--ink-soft)}
.gzoom-ico{width:15px;height:15px;border:2px solid currentColor;border-radius:50%;position:relative;display:inline-block}
.gzoom-ico::after{content:"";position:absolute;right:-5px;bottom:-5px;width:7px;height:2px;background:currentColor;transform:rotate(45deg)}
@media (max-width:520px){.garrow{display:none}.gal{--gh:260px}.gal-card{--gh:210px}}

/* =============== full-screen zoom viewer =============== */
.viewer{width:100%;max-width:100%;height:100%;max-height:100%;margin:0;border:0;border-radius:0;padding:0;background:#0E252C;color:#F6F2E7;box-shadow:none;display:flex;flex-direction:column}
.viewer::backdrop{background:#0E252C}
.viewer[open]{animation:none}
/* a closed <dialog> is display:none by default, but the flex rule above switched it
   back on, which left a whole blank screen of it sitting under the footer */
.viewer:not([open]){display:none}
.vtop{display:flex;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid rgba(255,255,255,.12)}
.vcap{font:600 .95rem/1.35 var(--body);flex:1}
.vtools{display:flex;gap:8px}
.vbtn{width:46px;height:46px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);background:transparent;color:#F6F2E7;font:700 1.5rem/1 var(--body);cursor:pointer}
.vbtn.vclose{background:var(--marigold);color:var(--on-marigold);border-color:var(--outline)}
.vstage{flex:1;min-height:0;display:grid;place-items:center;overflow:hidden;touch-action:none;cursor:zoom-in;background:#0E252C}
.vstage[data-zoomed="1"]{cursor:grab}
/* The page must FIT the stage before any zooming starts. A percentage max-height
   does not resolve against a flex item whose own height is auto, so the picture
   used to open at full size -- taller than the window -- and the zoom could only
   go further in. Absolute positioning inside the stage gives the percentages a
   real box to measure against, so it always opens whole and centred. */
.vstage img{position:absolute;inset:0;margin:auto;max-width:96%;max-height:98%;width:auto;height:auto;border-radius:6px;background:#fff;user-select:none;-webkit-user-drag:none;transform-origin:center center;backface-visibility:hidden}
.vstage img.vmoving{will-change:transform}
.vbottom{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;border-top:1px solid rgba(255,255,255,.12)}
.vnav{min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid rgba(255,255,255,.35);background:transparent;color:#F6F2E7;font:600 1rem/1 var(--body);cursor:pointer}
.vcount{font:600 .9rem/1 var(--body);font-variant-numeric:tabular-nums;color:#B7CDCD}
.vbuy{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:0 14px 12px}
.vbuy .btn{flex:1;min-width:180px}
.vhint{font-size:.8rem;color:#B7CDCD}
.cardbuy{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:12px}
.pcard{position:relative}
.pcard h3 a::after{content:none}
.pcard .body{padding:16px 18px 20px}
.feature .gal-feature{margin-inline:auto;max-width:420px}
@media (prefers-reduced-motion:reduce){.gtrack{scroll-behavior:auto}}

@media (max-width:600px){
  .nav .wrap{gap:8px;min-height:58px}
  .nav-links{gap:8px}
  .nav .btn{padding:9px 11px 7px;font-size:calc(.88rem / var(--text-scale))}
  .textsize{min-width:36px;min-height:38px}
  .mnav summary{padding:9px 10px;font-size:calc(.82rem / var(--text-scale))}
  .brand{font-size:.92rem;gap:7px}
  .brand small{display:none}
  .brand img{width:27px}
  /* cap the header brand so the two names sit on two lines and the buttons stay on one row */
  .nav .brand{max-width:112px}
  .nav-links{gap:8px}
  .nav .btn{padding:9px 12px 8px;font-size:calc(.9rem / var(--text-scale));min-height:44px}
  .nav .btn .price{padding:4px 7px 3px;font-size:calc(.82rem / var(--text-scale))}
  .textsize{min-width:38px;min-height:38px;font-size:calc(.9rem / var(--text-scale))}
  .mnav summary{padding:10px 12px;font-size:calc(.85rem / var(--text-scale))}
  .helpbar{font-size:calc(.78rem / var(--text-scale))}
  .helpbar .wrap{justify-content:center}
  .helpbar span{margin-right:0;width:100%;text-align:center}
}
@media (max-width:600px){.nav .btn span.price{display:none}}

.vzoomtag{position:absolute;top:12px;left:14px;background:rgba(14,37,44,.72);color:#F6F2E7;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:5px 10px 4px;font:600 .76rem/1 var(--body);font-variant-numeric:tabular-nums;opacity:0;transition:opacity .2s ease;pointer-events:none}
.vzoomtag[data-on="1"]{opacity:1}
.vstage{position:relative}
/* the strip of pages at 100% (6 Oct 2026): scrolled natively, like the product-page strip */
.vtrack{position:absolute;inset:0;display:grid;grid-auto-flow:column;grid-auto-columns:100%;grid-template-rows:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior:contain;scrollbar-width:none;touch-action:none}
.vtrack::-webkit-scrollbar{display:none}
.vslide{position:relative;scroll-snap-align:center;min-width:0}
.vstage #vimg{z-index:1;visibility:hidden}
.vstage[data-layer="zoom"] #vimg,.vstage[data-layer="push"] #vimg{visibility:visible}
.vstage[data-layer="zoom"] .vtrack{visibility:hidden}
.vzoomtag{z-index:2}
html:has(dialog.viewer[open]){overflow:hidden}

.gslide img.glazy{background:var(--surface-2);min-height:var(--gh)}

/* ============================================================
   THE CUTE LAYER · wobbly wordmark, doodle pop-ins, cozy reveals
   (all of it dies quietly under prefers-reduced-motion)
   ============================================================ */

/* -- the wordmark: every letter breathes, and waves on hover -- */
.wm{display:inline}
.wword{display:inline-block;white-space:nowrap}
.wl{display:inline-block;transform-origin:50% 88%;animation:wl-bob 4.2s ease-in-out infinite;animation-delay:calc(var(--i) * .11s - 1.2s)}
@keyframes wl-bob{0%,100%{translate:0 0;rotate:0deg}28%{translate:0 -2.4px;rotate:-3.5deg}62%{translate:0 1.4px;rotate:2.6deg}}
.brand:hover .wl,.brand:focus-visible .wl{animation:wl-wave .72s cubic-bezier(.3,1.5,.45,1) both;animation-delay:calc(var(--i) * .04s)}
@keyframes wl-wave{0%{translate:0 0;rotate:0;scale:1}42%{translate:0 -8px;rotate:-9deg;scale:1.14}100%{translate:0 0;rotate:0;scale:1}}
.wm-sp{display:inline-block;width:.3em}
.brand img{transform-origin:50% 85%;animation:rock 3.4s ease-in-out infinite}
.brand:hover img{animation:boat-hop .7s cubic-bezier(.3,1.6,.4,1)}
@keyframes boat-hop{0%,100%{translate:0 0;rotate:0}40%{translate:5px -7px;rotate:-10deg}70%{translate:-2px 0;rotate:5deg}}

/* -- scroll rail: a paper boat sails along the bottom of the header -- */
.prog{position:absolute;left:0;right:0;bottom:-2px;height:4px;pointer-events:none;z-index:2}
.pbar{position:absolute;left:0;top:1px;height:3px;width:calc(var(--p,0) * 100%);background:linear-gradient(90deg,var(--mint),var(--marigold) 55%,var(--coral));border-radius:0 4px 4px 0}
.pboat{position:absolute;bottom:0;left:calc(13px + var(--p,0) * (100% - 26px));width:24px;height:auto;translate:-50% 0;opacity:0;transition:opacity .35s ease}
.prog[data-on="1"] .pboat{opacity:1;animation:rock 2.6s ease-in-out infinite}

/* -- cozy reveals: content drifts up as you arrive at it --
   (translate/scale, not transform, so hover effects still work) -- */
.le-anim .reveal{opacity:0;translate:0 14px;scale:.993}
.le-anim .reveal.in{opacity:1;translate:0 0;scale:1;
  transition:opacity .42s ease,translate .5s cubic-bezier(.2,.9,.25,1),scale .5s cubic-bezier(.2,.9,.25,1);
  transition-delay:calc(var(--r,0) * 45ms)}
.le-anim .sec-head.reveal.in h2{animation:head-in .8s cubic-bezier(.25,1.35,.4,1) both}
@keyframes head-in{0%{rotate:-1.6deg;translate:0 6px}100%{rotate:0deg;translate:0 0}}

/* -- little doodles in the page gutters, popping in with a bounce -- */
.has-dood{position:relative}
.dood{position:absolute;top:var(--top,22%);width:clamp(46px,4.2vw,64px);height:auto;pointer-events:none;z-index:1;
  opacity:0;scale:.35;rotate:var(--rot,0deg);filter:drop-shadow(0 7px 12px rgba(20,50,59,.14))}
.dood[data-side="l"]{left:max(8px,calc(50% - 625px))}
.dood[data-side="r"]{right:max(8px,calc(50% - 625px))}
.dood.in{opacity:1;scale:1;transition:opacity .5s ease,scale .8s cubic-bezier(.2,1.75,.4,1)}
.dood.in::after{content:""}
.dood.in{animation:dood-float 5.6s ease-in-out 1s infinite}
@keyframes dood-float{0%,100%{translate:0 0}50%{translate:0 -10px}}
@media (max-width:1240px){.dood{display:none}}

/* -- a doodle badge on every section label -- */
.dchip{display:inline-block;width:27px;height:auto;vertical-align:-7px;margin-right:9px;animation:wig 3.4s ease-in-out infinite;transform-origin:50% 80%}
@keyframes wig{0%,100%{rotate:-9deg}50%{rotate:9deg}}
.page-head .dchip,.sec-head .dchip{width:30px;vertical-align:-8px}

/* -- section dots, dancing a little wave -- */
.dotrow{display:flex;gap:7px;align-items:center;margin-top:2px}
.dotrow i{width:9px;height:9px;border-radius:50%;background:var(--marigold);border:1.5px solid var(--outline);
  animation:dotwave 2.6s ease-in-out infinite;animation-delay:calc(var(--i) * .13s)}
.dotrow i:nth-child(3n+2){background:var(--coral)}
.dotrow i:nth-child(3n){background:var(--mint)}
.dotrow i:last-child{border-radius:2px;rotate:45deg}
@keyframes dotwave{0%,100%{translate:0 0;scale:1}45%{translate:0 -7px;scale:1.18}}

/* -- emoticons popping up as you scroll -- */
.poplayer{position:fixed;inset:0;pointer-events:none;z-index:25;overflow:hidden}
.poppy{position:absolute;bottom:-80px;width:clamp(44px,6vw,66px);height:auto;
  animation:poppy 2.3s cubic-bezier(.25,.9,.3,1) forwards;filter:drop-shadow(0 6px 10px rgba(20,50,59,.16))}
@keyframes poppy{
  0%{opacity:0;translate:0 0;rotate:var(--rot,0deg);scale:.45}
  16%{opacity:1;scale:1.08}
  70%{opacity:.95}
  100%{opacity:0;translate:var(--dx,0) -52vh;rotate:calc(var(--rot,0deg) * -1.7);scale:.8}}

/* -- confetti burst when someone taps Buy -- */
.spark{position:absolute;width:var(--sz,22px);height:auto;animation:spark .92s cubic-bezier(.2,.8,.3,1) forwards}
@keyframes spark{
  0%{opacity:0;translate:-50% -50%;scale:.3}
  18%{opacity:1;scale:1}
  100%{opacity:0;translate:calc(-50% + var(--dx,0px)) calc(-50% + var(--dy,0px));scale:.55;rotate:var(--rot,90deg)}}
.squish{animation:squish .45s cubic-bezier(.3,1.7,.4,1)}
@keyframes squish{0%{scale:1}30%{scale:1.1 .88;rotate:-2.5deg}60%{scale:.96 1.05;rotate:1.5deg}100%{scale:1;rotate:0deg}}

/* -- footer doodles, bobbing in a row -- */
.foot-doods{display:flex;gap:14px;align-items:flex-end;margin-top:20px}
.foot-doods img{width:38px;height:auto;animation:dood-float 4.4s ease-in-out infinite;animation-delay:calc(var(--i) * .35s)}

/* -- a doodle peeking out of a product card on hover -- */
.peekdood{position:absolute;left:6px;top:6px;width:44px;height:auto;z-index:3;pointer-events:none;
  opacity:0;scale:.4;rotate:-16deg;transition:opacity .25s ease,scale .45s cubic-bezier(.2,1.8,.4,1),rotate .45s ease}
@media (hover:hover){.pcard:hover .peekdood,.pcard:focus-within .peekdood{opacity:1;scale:1;rotate:7deg}}

/* -- micro-interactions: everything answers back when you touch it -- */
.chip,.trust span,.quotes span,.apps span,.badges .chip{transition:rotate .2s ease,scale .2s ease}
@media (hover:hover){
  .chip:hover,.trust span:hover,.quotes span:hover{rotate:-3deg;scale:1.07}
  .how li{transition:translate .25s ease}
  .how li:hover{translate:0 -5px}
  .how li::before{transition:rotate .3s cubic-bezier(.3,1.6,.4,1),scale .3s ease}
  .how li:hover::before{rotate:-14deg;scale:1.12}
  .values div{transition:translate .25s ease}
  .values div:hover{translate:0 -4px}
  .gslide img{transition:rotate .3s ease,scale .3s ease}
  .gslide:hover img{rotate:-1.1deg;scale:1.02}
  .game:hover .dot,.pep-list div:hover .dot{animation:dotwave .7s ease-in-out}
  summary:hover::after{scale:1.25;rotate:12deg}
  .ways>div{transition:translate .25s ease,rotate .25s ease}
  .ways>div:hover{translate:0 -5px;rotate:-.5deg}
  footer .col a{transition:translate .18s ease}
  footer .col a:hover{translate:4px 0}
}
summary::after{transition:transform .2s,scale .25s cubic-bezier(.3,1.6,.4,1),rotate .25s ease}
.gdot[aria-current="true"]::before{animation:dotpulse 2s ease-in-out infinite}
@keyframes dotpulse{0%,100%{transform:scale(1.3)}50%{transform:scale(1.55)}}
@media (hover:hover){.gdot:hover::before{transform:scale(1.5) rotate(10deg)}}
.home-hero h1{animation:hero-in .7s cubic-bezier(.2,1.3,.4,1) both}
@keyframes hero-in{0%{translate:0 14px;rotate:-.8deg}100%{translate:0 0;rotate:0deg}}
.home-hero h1 .hl{display:inline-block;animation:hl-tilt 6s ease-in-out 1s infinite}
@keyframes hl-tilt{0%,100%{rotate:0deg}50%{rotate:-1.4deg}}
.btn .price{transition:rotate .25s cubic-bezier(.3,1.7,.4,1)}
.btn:hover .price{rotate:-6deg}

@media (prefers-reduced-motion:reduce){
  .wl,.brand img,.dchip,.dotrow i,.foot-doods img,.dood,.home-hero h1,.home-hero h1 .hl,.prog .pboat{animation:none!important}
  .poplayer,.dood,.peekdood{display:none!important}
  .le-anim .reveal{opacity:1!important;translate:none!important;scale:1!important}
}

/* ================= readable small text: a darker ink for the accent =================
   The coral looks right at display sizes, but under 18px it only reached ~4:1
   against our creams and greens. Small coral text now uses a deeper shade. */
:root{--accent-ink:#A8371A}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--accent-ink:#FFA98C}}
:root[data-theme="dark"]{--accent-ink:#FFA98C}
.eyebrow,.pcard .cat,.agegrid span,.game i,.grade.g-c,.jcard .lang,.ty-sign{color:var(--accent-ink)}
.hero .eyebrow,.play .eyebrow,.dark-nav .hero .eyebrow{color:var(--marigold)}
.helpbar .wa{color:#0B6B39}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .helpbar .wa{color:#7BD8A4}}
.ribbon{background:#AF3F22}
.pack-hero .hero-line em{color:#8E2A10;--u:#A8371A}
.pack-hero .hindi{color:#4A3408}
.pack-hero h1.kicker{color:#6A3410}
/* the long amber line at the top of a product page: cream reads far better than amber */
.hero h1.kicker{color:#FFE6B4}
.hero .hindi,.combo-hero .hindi{color:#FFEFD0}

/* ================= landing exactly where you tapped ================= */
:target,section[id],#inside,#combo,#buy,#days,#games,#all-products{scroll-margin-top:84px}

/* ================= "see all the products" breaker ================= */
.breaker{padding-block:clamp(28px,4vw,44px) 0}
.breaker .wrap{display:flex;align-items:center;justify-content:center;gap:16px}
/* on a narrow phone with the text turned up, the dashes go and the label wraps */
@media (max-width:430px){.breaker-line{display:none}.breaker-txt{white-space:normal;text-align:center}}
.breaker-line{flex:1;height:3px;border-radius:3px;background:repeating-linear-gradient(90deg,var(--line) 0 10px,transparent 10px 18px)}
.breaker-txt{font:800 clamp(1.1rem,2.4vw,1.5rem)/1 var(--display);white-space:nowrap;color:var(--ink);
  background:var(--marigold);border:2px solid var(--outline);border-radius:999px;padding:11px 20px 9px;
  box-shadow:3px 4px 0 var(--outline);rotate:-1deg}
.all-prod{background:var(--surface-2);padding-top:clamp(30px,4vw,44px)}

/* ================= the combo product page ================= */
/* warm cream rather than dark teal: the two covers are light, and they sit
   naturally on cream instead of floating in white boxes on a dark ground */
.combo-hero{background:linear-gradient(168deg,#FFF7E6 0%,#FDEBC4 62%,#F8DCA6 100%);color:var(--ink);
  padding-block:clamp(30px,5vw,58px) clamp(38px,6vw,72px);overflow:hidden;position:relative}
.combo-hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,5vw,56px);align-items:center}
.combo-hero .wrap>*{min-width:0}
.combo-hero .crumbs,.combo-hero .crumbs a{color:#6B5426}
.combo-hero h1.kicker{color:#7A3E12}
.combo-hero .hero-line{margin-bottom:4px}
.combo-hero .hero-line em{color:#A8371A}
.combo-hero .hero-line em{--u:#B8431F}
.combo-hero .lead{color:#3E3320;margin-top:18px}
.combo-hero .hindi{color:#5A4413;margin-top:14px;font-size:1.06rem}
.combo-hero .trust span{background:#FFFBF0;border-color:#E3B963;color:var(--outline)}
.combo-hero .btn-ghost{color:#1B2A31}
.combo-hero .gal{--gh:clamp(240px,30vw,320px)}
.combo-hero .gtrack{background:rgba(255,255,255,.5)}
.combo-hero .ghint{color:#6B5426}
.combo-price-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin-top:22px}
.combo-price-row .was{color:#6B5426;text-decoration:line-through;font-size:.95rem}
.combo-price-row .price-tag{font:800 clamp(2.2rem,4.4vw,2.9rem)/1 var(--display);color:var(--ink);font-variant-numeric:tabular-nums}
.combo-price-row .saves{font:700 .8rem/1 var(--body);letter-spacing:.06em;text-transform:uppercase;
  background:var(--mint);color:#123039;border:1.5px solid var(--outline);border-radius:999px;padding:7px 11px 6px}
@media (max-width:860px){.combo-hero .wrap{grid-template-columns:1fr}}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .combo-hero{background:linear-gradient(168deg,#3A2E12 0%,#2A2411 62%,#1E1B0C 100%);color:var(--ink)}
  :root:not([data-theme="light"]) .combo-hero .lead{color:#E4D9BE}
  :root:not([data-theme="light"]) .combo-hero .crumbs,:root:not([data-theme="light"]) .combo-hero .crumbs a,
  :root:not([data-theme="light"]) .combo-hero .ghint,:root:not([data-theme="light"]) .combo-hero .hindi{color:#D8C79A}
  :root:not([data-theme="light"]) .combo-hero h1.kicker{color:#FFD08A}
  :root:not([data-theme="light"]) .combo-hero .hero-line em{color:#FFA277;--u:#E8724A}
  :root:not([data-theme="light"]) .combo-hero .trust span{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:var(--ink)}
  :root:not([data-theme="light"]) .combo-hero .btn-ghost{color:var(--ink)}}

/* what's in the combo: one card per file, each a door to its own page */
.inc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,28px)}
.inc{display:grid;grid-template-columns:132px 1fr;gap:clamp(16px,2.4vw,24px);background:var(--surface);
  border:2px solid var(--outline);border-radius:24px;padding:clamp(18px,2.4vw,26px);box-shadow:5px 6px 0 var(--outline);
  transition:transform .22s ease,box-shadow .22s ease}
.inc>*{min-width:0}
@media (hover:hover){.inc:hover{transform:translateY(-4px);box-shadow:6px 9px 0 var(--outline)}}
.inc-art{display:block;align-self:start}
.inc-art img{width:100%;height:auto;border-radius:8px;border:1px solid var(--line);box-shadow:0 12px 26px rgba(20,50,59,.22)}
.inc-body h3{font-size:clamp(1.25rem,2.2vw,1.55rem);margin-top:6px}
.inc-body h3 a{text-decoration:none}
.inc-body h3 a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--coral)}
.inc-what{color:var(--ink-soft);font-size:.95rem;margin-top:10px}
.inc-list{margin:14px 0 12px}
.inc-list li{font-size:.9rem}
.inc-links{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.inc-alone{font-size:.85rem;color:var(--ink-soft)}
@media (max-width:980px){.inc-grid{grid-template-columns:1fr}}
@media (max-width:460px){.inc{grid-template-columns:1fr}.inc-art{max-width:150px}}

/* product names are links now: make that visible without shouting */
.feature h3 a,#combo h2 a{text-decoration:none;color:inherit}
.feature h3 a:hover,#combo h2 a:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:5px;text-decoration-color:var(--coral)}
a.combo-art{display:flex}

/* ---- dark mode had kept two light backgrounds, which made their text unreadable ---- */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .ty{background:linear-gradient(180deg,#3A2F12 0%,var(--ground) 60%)}
  :root:not([data-theme="light"]) .toran{filter:brightness(.85)}
}
:root[data-theme="dark"] .ty{background:linear-gradient(180deg,#3A2F12 0%,var(--ground) 60%)}
/* the breaker chip is always marigold, so its text must always be the dark ink */
.breaker-txt{color:var(--on-marigold)}
/* the play-card chips always sit on dark navy, so their hint line needs a fixed light amber
   (--marigold-soft flips to a dark brown in dark mode, which is a background tint, not a text colour) */
.card-chip i{color:#F7D89A}

/* ---- "sound familiar?": text and figures side by side, then the wide illustration ----
   The picture is 1100x400, so in a side column it was only ~180px tall and left a
   tall hole beside the text. Full width, it fills the row it is given. */
.problem-top{display:grid;grid-template-columns:1.24fr .76fr;gap:clamp(22px,4vw,52px);align-items:start}
.problem-top>*{min-width:0}
.problem .sec-head{margin-bottom:20px}
.problem .stats{margin-top:0;grid-template-columns:1fr;gap:14px}
.scene-wide{margin:clamp(26px,4vw,42px) 0 0;width:100%}
.scene-wide img{width:100%;height:auto;display:block}
.problem .fine{margin-top:18px}
@media (max-width:860px){.problem-top{grid-template-columns:1fr}.problem .stats{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.problem .stats{grid-template-columns:1fr}}

/* a padded card inside a padded section stacked up to ~300px of air; trim the section */
.buy,#combo{padding-block:clamp(38px,5.5vw,68px)}

/* a section whose content is itself a padded, bordered card does not need the
   full rhythm on top of that card's own padding */
section:has(>.wrap>.hi-block),section:has(>.wrap>.buy-box),section:has(>.wrap>.combo){padding-block:clamp(34px,5vw,62px)}

/* ================= share row: WhatsApp first, because this is India ================= */
.share{max-width:1140px;margin:0 auto;padding:clamp(18px,3vw,26px) 20px;display:flex;flex-wrap:wrap;
  align-items:center;justify-content:center;gap:10px 14px;text-align:center}
.share-lead{font:700 1.05rem/1.3 var(--display);width:100%}
.sh{font:600 .92rem/1 var(--body);border:1.5px solid var(--line);background:var(--surface);color:var(--ink);
  border-radius:999px;padding:0 16px;min-height:44px;display:inline-flex;align-items:center;gap:8px;
  cursor:pointer;text-decoration:none;transition:transform .18s ease,border-color .18s ease}
@media (hover:hover){.sh:hover{transform:translateY(-2px);border-color:var(--ink)}}
.sh-wa{background:#0B6B39;border-color:var(--outline);color:#fff;font-weight:700;box-shadow:2px 3px 0 var(--outline)}
.sh-wa::before{content:"";width:16px;height:16px;border-radius:50%;background:#fff;flex:none}
.sh[hidden]{display:none}

/* ================= real buyer quotes (hidden until there are any) ================= */
.voices{background:var(--surface-2)}
.voice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.voice{margin:0;background:var(--surface);border:2px solid var(--outline);border-radius:22px;
  padding:24px 24px 20px;box-shadow:5px 6px 0 var(--outline);position:relative}
.voice::before{content:"\201C";position:absolute;left:16px;top:2px;font:800 3.4rem/1 var(--display);color:var(--marigold)}
.voice blockquote{margin:14px 0 0;font:italic 500 1.06rem/1.5 var(--quote);color:var(--ink)}
.voice figcaption{margin-top:14px;font:600 .84rem/1.3 var(--body);color:var(--accent-ink)}

/* ================= the details that separate a finished site from a built one ================= */
/* iPhone home-indicator: keep the floating furniture above it */
.sticky{bottom:calc(12px + env(safe-area-inset-bottom))}
.totop,.wafloat{bottom:calc(20px + env(safe-area-inset-bottom))}
.has-sticky .totop,.has-sticky .wafloat{bottom:calc(var(--stickyh,64px) + 24px + env(safe-area-inset-bottom))}
@supports (padding:max(0px)){
  body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
}
/* no 300ms tap delay, no grey flash on tap */
a,button,summary,.gslide,.stone,.daygrid button,.gdot{touch-action:manipulation;-webkit-tap-highlight-color:rgba(242,177,56,.28)}
/* selection in the brand's colours */
::selection{background:var(--marigold);color:var(--on-marigold)}
/* fewer orphans and ragged lines in body copy */
p,li,figcaption,blockquote,dd,dt{text-wrap:pretty}
/* respect a visitor who has asked their browser for less data: no decorative sprites */
@media (prefers-reduced-data:reduce){
  .sboat,.fly,.twk,.dood,.foot-doods,.peekdood,.poplayer{display:none!important}
  .shimmer,.sun-glow{animation:none}
}
/* Windows high-contrast mode: keep the outlines that carry meaning */
@media (forced-colors:active){
  .btn,.sh,.gdot,.daygrid button,.chip,.trust span{border:1px solid CanvasText}
  .btn{forced-color-adjust:none;background:Highlight;color:HighlightText}
}

/* ================= printing: a parent printing the plan should get the words ================= */
@media print{
  .helpbar,.ribbon,.nav,.prog,.totop,.wafloat,.toast,.sticky,.share,.poplayer,.dood,.foot-doods,
  .gdots,.ghint,.garrow,.gcount,.daygrid-wrap,.trail-scroll,.marquee-box,.ticker,dialog{display:none!important}
  html{font-size:11pt}
  body{background:#fff;color:#000}
  a{color:#000;text-decoration:underline}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#444;word-break:break-all}
  section{padding-block:14pt!important;break-inside:avoid}
  .hero,.home-hero,.pack-hero,.combo-hero,.play,footer{background:#fff!important;color:#000!important}
  .hero .lead,.hero .hindi,.combo-hero .lead,footer,footer a{color:#000!important}
  h1,h2,h3{break-after:avoid}
  details{break-inside:avoid}
  details > *{display:block!important}
  .gtrack{overflow:visible!important;display:block!important}
  .gslide{break-inside:avoid;page-break-inside:avoid}
  .gslide:not(:first-child){display:none!important}
  .buy-box,.combo,.inc,.voice,.daycard{box-shadow:none!important;border:1pt solid #999!important}
  @page{margin:14mm}
}
/* the post-purchase ask, on the thank-you page */
.ty-ask{max-width:680px;margin:clamp(30px,5vw,48px) auto 0;background:var(--surface);border:2px solid var(--outline);
  border-radius:24px;padding:clamp(22px,3.6vw,32px);box-shadow:5px 6px 0 var(--outline);text-align:left}
.ty-ask h2{font-size:clamp(1.5rem,3vw,1.9rem);margin:6px 0 10px}
.ty-ask p{color:var(--ink-soft)}
.ty-ask-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}

/* ================= search ================= */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.sform{position:relative;display:flex;align-items:center;gap:8px;order:3;flex-basis:100%;margin-bottom:6px}
.sico{position:absolute;left:14px;width:16px;height:16px;border:2px solid var(--ink-soft);border-radius:50%;pointer-events:none}
.sico::after{content:"";position:absolute;right:-6px;bottom:-5px;width:8px;height:2px;background:var(--ink-soft);transform:rotate(45deg);border-radius:2px}
.sinput{flex:1;min-width:0;min-height:44px;padding:0 14px 0 40px;border-radius:999px;border:1.5px solid var(--line);
  background:var(--surface);color:var(--ink);font:500 calc(.96rem / var(--text-scale))/1 var(--body);appearance:none}
.sinput::placeholder{color:var(--ink-soft)}
.sinput:focus{outline:none;border-color:var(--marigold);box-shadow:0 0 0 3px rgba(242,177,56,.35)}
.sinput::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;width:18px;height:18px;
  background:var(--ink-soft);border-radius:50%;cursor:pointer;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 2l8 8M10 2l-8 8' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/12px no-repeat}
.sgo{min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--outline);background:var(--marigold);
  color:var(--on-marigold);font:700 calc(.92rem / var(--text-scale))/1 var(--display);cursor:pointer;flex:none}
.dark-nav .sinput{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:var(--night-ink)}
.dark-nav .sinput::placeholder{color:var(--night-soft)}
.dark-nav .sico,.dark-nav .sico::after{border-color:var(--night-soft);background-color:transparent}
.dark-nav .sico::after{background:var(--night-soft)}
@media (min-width:900px){
  .sform{order:2;flex-basis:clamp(200px,22vw,280px);margin:0 0 0 auto}
  .nav-links{order:3;margin-left:0}
  .sgo{display:none}                     /* on a keyboard, Enter is the button */
  /* the panel is wider than the box, so titles do not wrap into towers */
  .sresults{left:auto;right:0;width:min(480px,calc(100vw - 48px))}
}
@media (max-width:899px){.nav .wrap{flex-wrap:wrap}}

/* the dropdown */
.sresults{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:60;max-height:min(70vh,520px);overflow-y:auto;
  background:var(--surface);color:var(--ink);border:2px solid var(--outline);border-radius:18px;
  box-shadow:4px 6px 0 var(--outline),0 24px 50px -20px rgba(20,50,59,.5);padding:6px;overscroll-behavior:contain}
.sresults[hidden]{display:none}
.sr{display:grid;grid-template-columns:auto 1fr auto;gap:4px 10px;align-items:baseline;padding:11px 12px;border-radius:12px;
  text-decoration:none;color:var(--ink)}
.sr:hover,.sr.on{background:var(--surface-2)}
.sr-k{grid-row:1;font:700 .62rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);
  background:var(--marigold-soft);border-radius:999px;padding:5px 8px 4px;white-space:nowrap}
.sr-t{grid-row:1;font:700 1rem/1.25 var(--display)}
.sr-price{grid-row:1;font:800 1rem/1 var(--display);font-variant-numeric:tabular-nums;white-space:nowrap}
.sr-d{grid-row:2;grid-column:2/-1;font-size:.84rem;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sr-all{display:block;text-align:center;font:700 .92rem/1 var(--display);color:var(--accent-ink);padding:13px}
.sr-none{padding:14px 12px;font-size:.92rem;color:var(--ink-soft)}
.sr-none b{color:var(--ink)}

/* the results page */
.sform-page{order:0;flex-basis:auto;margin:22px 0 0;max-width:640px}
.sform-page .sgo{display:inline-flex;align-items:center}
.sp-count{font:600 .9rem/1 var(--body);color:var(--ink-soft);margin:26px 0 14px}
.sp-list{display:grid;gap:10px}
.sp-list .sr{background:var(--surface);border:1.5px solid var(--line);padding:16px 18px}
@media (hover:hover){.sp-list .sr:hover{border-color:var(--ink);transform:translateY(-2px)}}
.sp-list .sr{transition:transform .18s ease,border-color .18s ease}

/* anchors land below whatever height the header currently is */
:target,section[id],#inside,#combo,#buy,#days,#games,#all-products{scroll-margin-top:calc(var(--navh,84px) + 14px)}
.sp-noscript{margin-top:26px;background:var(--surface);border:2px solid var(--outline);border-radius:22px;padding:24px;box-shadow:5px 6px 0 var(--outline)}
.sp-noscript ul{margin:14px 0 0;padding-left:20px;display:grid;gap:8px}

/* ---------------------------------------------------------------
   THE GRATITUDE STRIP
   A valley of flowers above the footer with one kind line at a time.
   The card has a floor height so a longer line never shoves the
   footer downwards (that would count as layout shift).
   --------------------------------------------------------------- */
.qstrip{position:relative;isolation:isolate;overflow:hidden;border-top:3px solid var(--outline);border-bottom:3px solid var(--outline);
  padding-block:clamp(34px,5vw,56px);background:linear-gradient(#FFE9C9,#EDD9F2 46%,#9ED08F)}
.qs-art{position:absolute;inset:0;z-index:-1;pointer-events:none}
.qs-art>img{width:100%;height:100%;object-fit:cover;object-position:50% 100%}
.qs-in{position:relative;max-width:860px;margin-inline:auto;padding-inline:20px;text-align:center}
.qs-lead{display:inline-flex;align-items:center;gap:8px;font:700 .92rem/1.2 var(--display);letter-spacing:.01em;color:#3B2A10;
  background:rgba(255,255,255,.86);border:2px solid var(--outline);border-radius:999px;padding:7px 15px 6px;box-shadow:2px 3px 0 rgba(27,42,49,.5)}
.qs-lead span{font-size:1.05em;line-height:1}
.qs-card{margin:16px 0 0;background:#FFF9EC;border:3px solid var(--outline);border-radius:24px;box-shadow:5px 7px 0 rgba(27,42,49,.8);
  padding:clamp(20px,3.2vw,30px) clamp(18px,3.4vw,36px);display:grid;align-content:center;gap:12px;min-height:190px;
  transition:opacity .26s ease,translate .26s ease}
.qs-q{margin:0;font:500 clamp(1.12rem,2.1vw,1.42rem)/1.55 var(--quote);color:#16323A;text-wrap:pretty}
.qs-q::before{content:"\201C"}
.qs-q::after{content:"\201D"}
.qs-by{display:grid;gap:2px;font:400 .9rem/1.4 var(--body);color:#4A6067}
.qs-by b{font:700 .98rem/1.3 var(--display);color:#8E2A10}
.qs-by b::before{content:"\2014\00a0"}
.qs-src{font-size:.82rem;color:#5A6E74}
.qs-ctrl{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px;flex-wrap:wrap}
.qs-nav,.qs-pause{font-family:var(--display);border:2px solid var(--outline);background:rgba(255,255,255,.92);color:#16323A;cursor:pointer;
  box-shadow:2px 3px 0 rgba(27,42,49,.55);transition:transform .14s ease,box-shadow .14s ease}
.qs-nav{width:38px;height:38px;border-radius:999px;font-size:1.3rem;line-height:1;padding:0 0 3px}
.qs-pause{border-radius:999px;padding:9px 16px 7px;font-weight:700;font-size:.88rem;min-height:38px}
.qs-nav:hover,.qs-pause:hover{transform:translate(-1px,-2px);box-shadow:3px 5px 0 rgba(27,42,49,.55)}
.qs-nav:active,.qs-pause:active{transform:translate(1px,2px);box-shadow:1px 1px 0 rgba(27,42,49,.55)}
.qs-bar{display:inline-block;width:96px;height:8px;border:2px solid var(--outline);border-radius:999px;background:rgba(255,255,255,.8);overflow:hidden;vertical-align:middle}
.qs-bar i{display:block;height:100%;width:100%;background:var(--marigold);transform-origin:0 50%;animation:qsfill 9s linear infinite}
@keyframes qsfill{0%{scale:0 1}100%{scale:1 1}}
.qstrip.qs-paused .qs-bar i,.qstrip:hover .qs-bar i,.qstrip:focus-within .qs-bar i{animation-play-state:paused}
.qs-card.qs-out{opacity:0;translate:0 10px}
.qs-card.qs-in-anim{animation:qsin .4s cubic-bezier(.2,.9,.3,1.2) both}
@keyframes qsin{0%{opacity:0;translate:0 -10px;scale:.985}100%{opacity:1;translate:0 0;scale:1}}
/* butterflies crossing the valley, and petals coming down */
.qs-bf,.qs-pt{position:absolute;pointer-events:none}
.qs-bf{left:0}
.qs-bf img,.qs-pt img{display:block}
.qs-bf1{top:16%;animation:qsfly 31s linear infinite}
.qs-bf2{top:52%;animation:qsfly 44s linear infinite -12s}
.qs-bf3{top:33%;animation:qsfly 38s linear infinite -26s}
.qs-bf img{animation:qsbob 1.7s ease-in-out infinite alternate}
.qs-bf2 img{animation-duration:1.3s}
.qs-bf3 img{animation-duration:2.1s}
@keyframes qsfly{0%{translate:-8vw 0}100%{translate:108vw 0}}
@keyframes qsbob{0%{translate:0 -7px;rotate:-7deg}100%{translate:0 7px;rotate:7deg}}
.qs-pt1{left:14%;animation:qsfall 13s linear infinite}
.qs-pt2{left:58%;animation:qsfall 17s linear infinite -6s}
.qs-pt3{left:86%;animation:qsfall 15s linear infinite -11s}
@keyframes qsfall{0%{translate:0 -24px;opacity:0;rotate:0deg}12%{opacity:.95}100%{translate:44px 420px;opacity:0;rotate:280deg}}
@media (max-width:820px){.qs-card{min-height:206px}}
@media (max-width:560px){
  .qs-card{min-height:224px;border-radius:20px;padding-inline:16px}
  .qs-bar{width:72px}
  .qs-bf2,.qs-pt3{display:none}
}
@media (max-width:380px){.qs-card{min-height:264px}}
.qstrip.qs-static .qs-pause,.qstrip.qs-static .qs-bar{display:none}
@media (prefers-reduced-motion:reduce){
  .qs-bf,.qs-pt{display:none}
  .qs-bar i{animation:none;scale:1 1}
  .qs-card,.qs-card.qs-in-anim{animation:none;transition:none}
}
/* night: keep the valley, dim the glare, flip the card */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .qstrip{--qs-card:#14323B;--qs-ink:#F6F2E7;--qs-soft:#B7CDCD;--qs-name:#FFC98A;--qs-veil:rgba(20,50,59,.86);--qs-dim:.82}}
:root[data-theme="dark"] .qstrip{--qs-card:#14323B;--qs-ink:#F6F2E7;--qs-soft:#B7CDCD;--qs-name:#FFC98A;--qs-veil:rgba(20,50,59,.86);--qs-dim:.82}
.qstrip{--qs-card:#FFF9EC;--qs-ink:#16323A;--qs-soft:#4A6067;--qs-name:#8E2A10;--qs-veil:rgba(255,255,255,.86);--qs-dim:1}
.qs-art>img{filter:brightness(var(--qs-dim)) saturate(calc(.1 + var(--qs-dim) * .9))}
.qs-card{background:var(--qs-card)}
.qs-q{color:var(--qs-ink)}
.qs-by{color:var(--qs-soft)}
.qs-by b{color:var(--qs-name)}
.qs-src{color:var(--qs-soft)}
.qs-lead{background:var(--qs-veil);color:var(--qs-ink)}
.qs-nav,.qs-pause{background:var(--qs-veil);color:var(--qs-ink)}

/* the elder-care kit gets the kit's own warm cocoa-and-cream hero */
.safe-hero{background:#F0E0CF;color:#22313A}
.safe-hero .crumbs,.safe-hero .crumbs a{color:#6B4B36}
.safe-hero h1.kicker{color:#7A4A2B}
.safe-hero .hero-line em{color:#A8371A;--u:#C9502F}
.safe-hero .lead{color:#3A2C22}
.safe-hero .hindi{color:#6B4B36}
.safe-hero .btn-ghost{color:#3A2C22}
/* "lagayein?" is a long word: let it shrink rather than push the page sideways */
@media (max-width:380px){.safe-hero .hero-line{font-size:2.5rem;hyphens:auto}}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .safe-hero{background:#3A2A22;color:#F6F2E7}
  :root:not([data-theme="light"]) .safe-hero .crumbs,:root:not([data-theme="light"]) .safe-hero .crumbs a,
  :root:not([data-theme="light"]) .safe-hero .lead,:root:not([data-theme="light"]) .safe-hero .hindi{color:#E8DCCE}
  :root:not([data-theme="light"]) .safe-hero .btn-ghost{color:#F6F2E7}
  :root:not([data-theme="light"]) .safe-hero h1.kicker{color:#F2C08F}
  :root:not([data-theme="light"]) .safe-hero .hero-line em{color:#FFB08A;--u:#E8724A}}
:root[data-theme="dark"] .safe-hero{background:#3A2A22;color:#F6F2E7}
:root[data-theme="dark"] .safe-hero .crumbs,:root[data-theme="dark"] .safe-hero .crumbs a,
:root[data-theme="dark"] .safe-hero .lead,:root[data-theme="dark"] .safe-hero .hindi{color:#E8DCCE}
:root[data-theme="dark"] .safe-hero .btn-ghost{color:#F6F2E7}
:root[data-theme="dark"] .safe-hero h1.kicker{color:#F2C08F}
:root[data-theme="dark"] .safe-hero .hero-line em{color:#FFB08A;--u:#E8724A}

/* ---------------------------------------------------------------
   THE HOME SAFETY KIT: the free-sample card, the room grid,
   and the honest "who is this for" panel.
   --------------------------------------------------------------- */
.sample{background:var(--surface-2)}
.sample-in{display:grid;grid-template-columns:200px 1fr;gap:clamp(20px,4vw,44px);align-items:center}
.sample-art{display:block;border:3px solid var(--outline);border-radius:14px;overflow:hidden;
  box-shadow:6px 8px 0 var(--outline);rotate:-2deg}
.sample-art img{display:block;width:100%;height:auto}
/* two free samples, side by side */
.fsamps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3.2vw,36px)}
.fsamp{display:grid;grid-template-columns:132px 1fr;gap:clamp(14px,2vw,22px);align-items:start;
  background:var(--surface);border:2px solid var(--line);border-radius:var(--r);
  padding:clamp(16px,2.2vw,22px)}
.fsamp h3{font:700 1.14rem/1.3 var(--display);color:var(--ink)}
.fsamp > div > p{margin-top:8px;font-size:.92rem;line-height:1.55;color:var(--ink-soft)}
.fsamp-from{font-size:.86rem}
.fsamp-from a{color:var(--ink);font-weight:600}
.fsamp-cta{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
/* "or just read it here" -- the route for somebody who will not save a file from
   a shop they have just met. Sits beside the download, never instead of it. */
.samp-view{white-space:nowrap}
.fsamp .reassure{margin-top:10px}
@media (max-width:1000px){.fsamps{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){
  /* the card stacks, so the wording and the button get the full width even at
     the largest text size on the narrowest phone */
  .fsamp{grid-template-columns:minmax(0,1fr);gap:16px}
  .fsamp .sample-art{width:118px;justify-self:start}
  .fsamp h3{font-size:1.06rem}
}
/* the optional "email it to me as well" box under each free sample */
/* the spam honeypot: present for robots, invisible and out of the way for people.
   Parked off to the left so its box can never widen the page. */
.hidden-field{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.hidden-field label,.hidden-field input{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.samp-mail{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}
.samp-lab{display:block;font:500 .9rem/1.45 var(--body);color:var(--ink)}
.samp-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px;padding-right:3px}
.samp-row input{flex:1 1 11rem;min-width:0;font:400 .95rem/1.2 var(--body);color:var(--ink);
  background:var(--surface);border:2px solid var(--line);border-radius:999px;padding:11px 16px}
.samp-row input::placeholder{color:var(--ink-soft);opacity:1}
.samp-row input:focus-visible{outline:3px solid var(--marigold);outline-offset:1px;border-color:var(--outline)}
/* the second action of the pair: clearly a button, deliberately quieter than the
   marigold Download button above it */
.samp-go{flex:0 0 auto;font:700 .92rem/1 var(--body);color:var(--ink);cursor:pointer;
  background:var(--surface);border:2px solid var(--outline);border-radius:999px;
  padding:12px 18px 11px;box-shadow:2px 3px 0 var(--outline);
  transition:translate .14s ease,box-shadow .14s ease}
.samp-go:hover{translate:-1px -1px;box-shadow:3px 4px 0 var(--outline)}
.samp-go:active{translate:1px 2px;box-shadow:0 0 0 var(--outline)}
.samp-go:focus-visible{outline:3px solid var(--marigold);outline-offset:2px}
.samp-go[disabled]{opacity:.6;cursor:default;translate:none;box-shadow:2px 3px 0 var(--outline)}
.samp-consent{margin-top:9px;font:400 .78rem/1.5 var(--body);color:var(--ink-soft)}
.samp-note{margin-top:10px;font:500 .86rem/1.5 var(--body);color:var(--ink);
  background:var(--mint-soft);border-radius:10px;padding:9px 12px}
.samp-note.bad{background:var(--coral-soft)}
.dl-list{display:flex;flex-direction:column;gap:12px;align-items:flex-start;margin:22px 0 26px}
.dl-one{max-width:100%;white-space:normal;text-align:left;line-height:1.3;
  padding-top:13px;padding-bottom:12px}
@media (max-width:420px){.samp-go{width:100%}}
.rooms{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.room{background:var(--surface);border:2px solid var(--line);border-radius:var(--r);padding:16px 18px 18px}
.room b{display:block;font:700 1.02rem/1.3 var(--display);color:var(--ink);margin-bottom:5px}
.room p{font-size:.9rem;color:var(--ink-soft);line-height:1.5}
.honest{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(18px,3.4vw,40px);align-items:start;
  background:var(--surface);border:3px solid var(--outline);border-radius:var(--r);
  padding:clamp(20px,3.4vw,32px);box-shadow:var(--shadow)}
.honest > div > p + p{margin-top:12px;color:var(--ink-soft)}
.qbox{background:var(--marigold-soft);border-radius:14px;padding:16px 18px 14px}
.qbox .eyebrow{color:#5A4413}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .qbox .eyebrow{color:#F2C889}}
:root[data-theme="dark"] .qbox .eyebrow{color:#F2C889}
.qlist{list-style:none;padding:0;margin:12px 0 10px;display:grid;gap:10px}
.qlist li{display:grid;grid-template-columns:20px 1fr;gap:10px;font:500 .95rem/1.45 var(--body)}
.qlist li::before{content:"";width:15px;height:15px;margin-top:4px;border-radius:4px;
  border:2px solid var(--outline);background:var(--surface)}
.qbox .reassure{margin-top:10px}
@media (max-width:820px){
  .sample-in{grid-template-columns:150px minmax(0,1fr);gap:20px}
  .honest{grid-template-columns:1fr}
}
@media (max-width:560px){
  .sample-in{grid-template-columns:minmax(0,1fr)}
  .sample-in > .sample-art{justify-self:start}
  .sample-art{max-width:170px}
  /* long call-to-action labels are allowed to wrap on a narrow phone */
  .sample .btn,.sample .btn-ghost{white-space:normal;text-align:center}
  .sample .hero-cta{width:100%}
}


/* ===== thank-you page: the gentle "something for another day" block ===== */
.ty-next{position:relative;margin-top:clamp(28px,5vw,48px);background:var(--surface);border:2px dashed var(--line);border-radius:24px;padding:clamp(22px,4vw,32px);text-align:left}
.ty-next-doodle{position:absolute;right:16px;top:-26px;width:62px;height:auto;rotate:-8deg}
.ty-next h2{font-size:clamp(1.3rem,2.8vw,1.7rem);margin-top:6px}
.ty-next-lead{margin-top:8px;color:var(--ink-soft);font-size:.95rem;max-width:44ch}
.ty-next-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:20px}
.ty-next-card{display:flex;gap:14px;align-items:flex-start;background:var(--surface-2);border:1.5px solid var(--line);border-radius:18px;padding:14px;text-decoration:none;color:inherit;transition:translate .15s ease,box-shadow .15s ease}
.ty-next-card:hover,.ty-next-card:focus-visible{translate:0 -2px;box-shadow:3px 4px 0 var(--outline);border-color:var(--outline)}
.ty-next-card img{width:74px;height:auto;border-radius:8px;border:1.5px solid var(--outline);flex:0 0 74px;rotate:-2deg}
.ty-next-card > span{display:block;min-width:0}
.ty-next-card b{display:block;font:700 1.02rem/1.25 var(--display)}
.ty-next-card small{display:block;margin-top:5px;font:400 .86rem/1.5 var(--body);color:var(--ink-soft)}
.ty-next-meta{display:block;margin-top:7px;font:600 .8rem/1.3 var(--body);color:var(--ink-soft);font-variant-numeric:tabular-nums}
.ty-next-go{display:inline-block;margin-top:9px;font:700 .88rem/1 var(--body);color:var(--accent-ink)}
@media (max-width:420px){.ty-next-card{flex-direction:column}.ty-next-card img{flex:none;width:86px}}


/* ---------------------------------------------------------------
   THE BELIEVABLE YEAR: the book's own dawn sky, gold silk across it,
   and a sun glowing behind the fan of pages. Dark by design in both
   themes, so its cream text reads the same everywhere.
   --------------------------------------------------------------- */
.pack-hero.year-hero{
  background:
    radial-gradient(46% 52% at 76% 56%, rgba(251,227,180,.62) 0%, rgba(251,227,180,.2) 46%, rgba(251,227,180,0) 72%),
    url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 1440 420%22 preserveAspectRatio=%22none%22%3E%3Cpath d=%22M0 308.6 L24 313.2 L48 317.0 L72 319.9 L96 321.6 L120 322.0 L144 321.1 L168 319.0 L192 315.7 L216 311.5 L240 306.7 L264 301.5 L288 296.1 L312 291.0 L336 286.5 L360 282.7 L384 279.9 L408 278.3 L432 278.0 L456 279.0 L480 281.3 L504 284.6 L528 288.8 L552 293.7 L576 299.0 L600 304.3 L624 309.4 L648 313.9 L672 317.6 L696 320.3 L720 321.7 L744 321.9 L768 320.8 L792 318.5 L816 315.1 L840 310.8 L864 305.8 L888 300.6 L912 295.3 L936 290.2 L960 285.8 L984 282.1 L1008 279.6 L1032 278.2 L1056 278.1 L1080 279.3 L1104 281.8 L1128 285.2 L1152 289.6 L1176 294.6 L1200 299.9 L1224 305.2 L1248 310.2 L1272 314.6 L1296 318.1 L1320 320.6 L1344 321.8 L1368 321.8 L1392 320.5 L1416 318.0 L1440 314.4%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.15%22/%3E%3Cpath d=%22M0 312.3 L24 316.7 L48 320.2 L72 322.6 L96 323.7 L120 323.5 L144 322.0 L168 319.2 L192 315.3 L216 310.6 L240 305.4 L264 299.9 L288 294.5 L312 289.6 L336 285.3 L360 282.0 L384 279.9 L408 279.1 L432 279.6 L456 281.4 L480 284.5 L504 288.5 L528 293.3 L552 298.7 L576 304.2 L600 309.5 L624 314.3 L648 318.4 L672 321.4 L696 323.3 L720 323.8 L744 323.0 L768 320.9 L792 317.6 L816 313.3 L840 308.4 L864 303.0 L888 297.5 L912 292.2 L936 287.6 L960 283.7 L984 280.9 L1008 279.3 L1032 279.1 L1056 280.2 L1080 282.6 L1104 286.1 L1128 290.6 L1152 295.7 L1176 301.1 L1200 306.6 L1224 311.7 L1248 316.2 L1272 319.9 L1296 322.4 L1320 323.7 L1344 323.6 L1368 322.2 L1392 319.5 L1416 315.8 L1440 311.2%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.21%22/%3E%3Cpath d=%22M0 315.9 L24 320.1 L48 323.2 L72 325.1 L96 325.6 L120 324.7 L144 322.5 L168 319.1 L192 314.6 L216 309.5 L240 303.9 L264 298.3 L288 292.9 L312 288.2 L336 284.4 L360 281.7 L384 280.3 L408 280.3 L432 281.6 L456 284.3 L480 288.2 L504 292.9 L528 298.2 L552 303.8 L576 309.4 L600 314.6 L624 319.0 L648 322.5 L672 324.7 L696 325.6 L720 325.1 L744 323.2 L768 320.1 L792 315.9 L816 311.0 L840 305.5 L864 299.8 L888 294.4 L912 289.4 L936 285.3 L960 282.3 L984 280.5 L1008 280.1 L1032 281.1 L1056 283.5 L1080 287.0 L1104 291.5 L1128 296.7 L1152 302.3 L1176 307.9 L1200 313.2 L1224 317.9 L1248 321.6 L1272 324.2 L1296 325.5 L1320 325.4 L1344 323.9 L1368 321.1 L1392 317.2 L1416 312.4 L1440 307.0%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.27%22/%3E%3Cpath d=%22M0 319.4 L24 323.3 L48 326.0 L72 327.3 L96 327.2 L120 325.6 L144 322.7 L168 318.6 L192 313.7 L216 308.1 L240 302.3 L264 296.6 L288 291.4 L312 287.1 L336 283.8 L360 281.7 L384 281.1 L408 282.0 L432 284.3 L456 287.8 L480 292.3 L504 297.6 L528 303.4 L552 309.1 L576 314.6 L600 319.4 L624 323.3 L648 326.0 L672 327.3 L696 327.2 L720 325.6 L744 322.7 L768 318.6 L792 313.7 L816 308.1 L840 302.3 L864 296.6 L888 291.4 L912 287.1 L936 283.8 L960 281.7 L984 281.1 L1008 282.0 L1032 284.3 L1056 287.8 L1080 292.3 L1104 297.6 L1128 303.4 L1152 309.1 L1176 314.6 L1200 319.4 L1224 323.3 L1248 326.0 L1272 327.3 L1296 327.2 L1320 325.6 L1344 322.7 L1368 318.6 L1392 313.7 L1416 308.1 L1440 302.3%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.32%22/%3E%3Cpath d=%22M0 322.9 L24 326.4 L48 328.5 L72 329.2 L96 328.4 L120 326.1 L144 322.6 L168 317.9 L192 312.4 L216 306.5 L240 300.6 L264 295.0 L288 290.1 L312 286.2 L336 283.5 L360 282.3 L384 282.5 L408 284.3 L432 287.4 L456 291.8 L480 297.0 L504 302.7 L528 308.7 L552 314.5 L576 319.7 L600 324.0 L624 327.1 L648 328.9 L672 329.2 L696 327.9 L720 325.3 L744 321.3 L768 316.4 L792 310.8 L816 304.9 L840 299.0 L864 293.5 L888 288.9 L912 285.3 L936 283.0 L960 282.2 L984 282.9 L1008 285.0 L1032 288.5 L1056 293.1 L1080 298.5 L1104 304.4 L1128 310.3 L1152 316.0 L1176 321.0 L1200 325.0 L1224 327.8 L1248 329.1 L1272 329.0 L1296 327.3 L1320 324.3 L1344 320.1 L1368 314.9 L1392 309.2 L1416 303.2 L1440 297.4%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.38%22/%3E%3Cpath d=%22M0 326.2 L24 329.3 L48 330.8 L72 330.9 L96 329.3 L120 326.3 L144 322.1 L168 316.9 L192 311.0 L216 304.9 L240 298.9 L264 293.5 L288 288.9 L312 285.6 L336 283.7 L360 283.3 L384 284.5 L408 287.2 L432 291.2 L456 296.2 L480 302.0 L504 308.1 L528 314.1 L552 319.7 L576 324.4 L600 328.1 L624 330.3 L648 331.0 L672 330.2 L696 327.8 L720 324.1 L744 319.3 L768 313.7 L792 307.6 L816 301.5 L840 295.8 L864 290.8 L888 286.9 L912 284.3 L936 283.3 L960 283.8 L984 285.8 L1008 289.2 L1032 293.8 L1056 299.3 L1080 305.3 L1104 311.5 L1128 317.3 L1152 322.5 L1176 326.6 L1200 329.5 L1224 330.9 L1248 330.8 L1272 329.1 L1296 325.9 L1320 321.6 L1344 316.2 L1368 310.3 L1392 304.2 L1416 298.3 L1440 292.9%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.42%22/%3E%3Cpath d=%22M0 329.4 L24 331.9 L48 332.9 L72 332.2 L96 329.9 L120 326.2 L144 321.3 L168 315.6 L192 309.4 L216 303.1 L240 297.2 L264 292.1 L288 288.0 L312 285.4 L336 284.3 L360 284.9 L384 287.0 L408 290.6 L432 295.4 L456 301.1 L480 307.2 L504 313.5 L528 319.5 L552 324.7 L576 328.8 L600 331.6 L624 332.8 L648 332.4 L672 330.4 L696 326.9 L720 322.2 L744 316.6 L768 310.4 L792 304.1 L816 298.1 L840 292.9 L864 288.6 L888 285.7 L912 284.4 L936 284.6 L960 286.5 L984 289.9 L1008 294.5 L1032 300.1 L1056 306.2 L1080 312.5 L1104 318.5 L1128 323.9 L1152 328.2 L1176 331.2 L1200 332.7 L1224 332.6 L1248 330.8 L1272 327.6 L1296 323.1 L1320 317.6 L1344 311.5 L1368 305.2 L1392 299.1 L1416 293.7 L1440 289.2%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.46%22/%3E%3Cpath d=%22M0 332.3 L24 334.3 L48 334.6 L72 333.2 L96 330.2 L120 325.8 L144 320.3 L168 314.1 L192 307.6 L216 301.3 L240 295.6 L264 290.9 L288 287.5 L312 285.6 L336 285.5 L360 287.0 L384 290.1 L408 294.5 L432 300.0 L456 306.3 L480 312.7 L504 319.0 L528 324.7 L552 329.3 L576 332.6 L600 334.4 L624 334.5 L648 332.9 L672 329.7 L696 325.2 L720 319.6 L744 313.4 L768 306.9 L792 300.7 L816 295.0 L840 290.5 L864 287.2 L888 285.5 L912 285.5 L936 287.2 L960 290.5 L984 295.1 L1008 300.7 L1032 307.0 L1056 313.4 L1080 319.7 L1104 325.2 L1128 329.8 L1152 332.9 L1176 334.5 L1200 334.4 L1224 332.6 L1248 329.3 L1272 324.6 L1296 319.0 L1320 312.7 L1344 306.2 L1368 300.0 L1392 294.5 L1416 290.0 L1440 287.0%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.50%22/%3E%3Cpath d=%22M0 335.1 L24 336.4 L48 336.0 L72 333.8 L96 330.1 L120 325.0 L144 319.0 L168 312.4 L192 305.8 L216 299.6 L240 294.2 L264 290.0 L288 287.4 L312 286.4 L336 287.2 L360 289.7 L384 293.7 L408 299.0 L432 305.1 L456 311.7 L480 318.3 L504 324.4 L528 329.6 L552 333.5 L576 335.8 L600 336.5 L624 335.3 L648 332.5 L672 328.2 L696 322.8 L720 316.5 L744 309.9 L768 303.3 L792 297.4 L816 292.4 L840 288.8 L864 286.8 L888 286.5 L912 287.9 L936 291.1 L960 295.6 L984 301.3 L1008 307.6 L1032 314.3 L1056 320.7 L1080 326.5 L1104 331.2 L1128 334.6 L1152 336.3 L1176 336.2 L1200 334.4 L1224 331.0 L1248 326.2 L1272 320.4 L1296 313.9 L1320 307.3 L1344 300.9 L1368 295.3 L1392 290.8 L1416 287.8 L1440 286.4%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.52%22/%3E%3Cpath d=%22M0 337.6 L24 338.3 L48 337.1 L72 334.1 L96 329.7 L120 324.0 L144 317.5 L168 310.7 L192 304.0 L216 298.0 L240 293.0 L264 289.5 L288 287.7 L312 287.6 L336 289.4 L360 292.9 L384 297.8 L408 303.8 L432 310.5 L456 317.3 L480 323.8 L504 329.5 L528 334.0 L552 337.0 L576 338.3 L600 337.7 L624 335.3 L648 331.3 L672 326.0 L696 319.7 L720 312.9 L744 306.2 L768 299.9 L792 294.5 L816 290.5 L840 288.1 L864 287.5 L888 288.6 L912 291.6 L936 296.1 L960 301.7 L984 308.2 L1008 315.0 L1032 321.7 L1056 327.7 L1080 332.7 L1104 336.2 L1128 338.0 L1152 338.1 L1176 336.3 L1200 332.8 L1224 327.9 L1248 321.9 L1272 315.2 L1296 308.4 L1320 301.9 L1344 296.2 L1368 291.7 L1392 288.7 L1416 287.5 L1440 288.0%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.54%22/%3E%3Cpath d=%22M0 339.9 L24 339.8 L48 337.8 L72 334.1 L96 328.9 L120 322.7 L144 315.8 L168 308.8 L192 302.2 L216 296.5 L240 292.1 L264 289.4 L288 288.5 L312 289.5 L336 292.3 L360 296.7 L384 302.5 L408 309.1 L432 316.1 L456 323.0 L480 329.2 L504 334.3 L528 337.9 L552 339.8 L576 339.9 L600 338.0 L624 334.4 L648 329.3 L672 323.1 L696 316.2 L720 309.2 L744 302.6 L768 296.8 L792 292.3 L816 289.5 L840 288.5 L864 289.4 L888 292.1 L912 296.5 L936 302.1 L960 308.7 L984 315.7 L1008 322.6 L1032 328.9 L1056 334.1 L1080 337.8 L1104 339.8 L1128 339.9 L1152 338.1 L1176 334.6 L1200 329.6 L1224 323.4 L1248 316.6 L1272 309.6 L1296 302.9 L1320 297.1 L1344 292.6 L1368 289.6 L1392 288.5 L1416 289.3 L1440 291.9%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.55%22/%3E%3Cpath d=%22M0 341.9 L24 341.0 L48 338.3 L72 333.8 L96 327.9 L120 321.2 L144 314.0 L168 306.9 L192 300.5 L216 295.3 L240 291.6 L264 289.7 L288 289.8 L312 291.9 L336 295.7 L360 301.1 L384 307.5 L408 314.6 L432 321.8 L456 328.5 L480 334.2 L504 338.6 L528 341.2 L552 341.9 L576 340.6 L600 337.4 L624 332.6 L648 326.5 L672 319.6 L696 312.4 L720 305.4 L744 299.3 L768 294.3 L792 291.0 L816 289.6 L840 290.1 L864 292.6 L888 296.8 L912 302.4 L936 309.1 L960 316.2 L984 323.3 L1008 329.9 L1032 335.3 L1056 339.3 L1080 341.5 L1104 341.8 L1128 340.0 L1152 336.5 L1176 331.3 L1200 325.0 L1224 318.0 L1248 310.8 L1272 304.0 L1296 298.1 L1320 293.5 L1344 290.5 L1368 289.5 L1392 290.5 L1416 293.4 L1440 297.9%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.55%22/%3E%3Cpath d=%22M0 343.6 L24 342.0 L48 338.4 L72 333.2 L96 326.7 L120 319.5 L144 312.1 L168 305.1 L192 299.0 L216 294.4 L240 291.5 L264 290.6 L288 291.7 L312 294.8 L336 299.7 L360 305.9 L384 313.0 L408 320.4 L432 327.5 L456 333.8 L480 338.9 L504 342.3 L528 343.7 L552 343.0 L576 340.4 L600 335.9 L624 330.0 L648 323.1 L672 315.8 L696 308.5 L720 301.9 L744 296.5 L768 292.7 L792 290.8 L816 290.9 L840 293.1 L864 297.1 L888 302.7 L912 309.4 L936 316.7 L960 324.0 L984 330.8 L1008 336.6 L1032 340.8 L1056 343.2 L1080 343.6 L1104 342.0 L1128 338.4 L1152 333.2 L1176 326.7 L1200 319.5 L1224 312.1 L1248 305.1 L1272 299.0 L1296 294.4 L1320 291.5 L1344 290.6 L1368 291.7 L1392 294.8 L1416 299.7 L1440 305.9%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.54%22/%3E%3Cpath d=%22M0 345.0 L24 342.6 L48 338.2 L72 332.2 L96 325.2 L120 317.7 L144 310.2 L168 303.4 L192 297.8 L216 293.8 L240 291.8 L264 292.0 L288 294.2 L312 298.4 L336 304.2 L360 311.1 L384 318.6 L408 326.2 L432 333.1 L456 338.8 L480 343.0 L504 345.2 L528 345.3 L552 343.3 L576 339.3 L600 333.7 L624 326.8 L648 319.3 L672 311.8 L696 304.8 L720 298.9 L744 294.5 L768 292.1 L792 291.7 L816 293.5 L840 297.3 L864 302.8 L888 309.5 L912 316.9 L936 324.5 L960 331.6 L984 337.7 L1008 342.2 L1032 344.9 L1056 345.5 L1080 343.9 L1104 340.3 L1128 335.0 L1152 328.4 L1176 321.0 L1200 313.5 L1224 306.3 L1248 300.1 L1272 295.3 L1296 292.4 L1320 291.6 L1344 293.0 L1368 296.3 L1392 301.4 L1416 307.9 L1440 315.3%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.52%22/%3E%3Cpath d=%22M0 346.1 L24 342.8 L48 337.7 L72 331.0 L96 323.5 L120 315.7 L144 308.3 L168 301.8 L192 296.8 L216 293.6 L240 292.7 L264 293.9 L288 297.3 L312 302.5 L336 309.2 L360 316.7 L384 324.5 L408 331.9 L432 338.4 L456 343.3 L480 346.4 L504 347.3 L528 346.0 L552 342.6 L576 337.3 L600 330.6 L624 323.1 L648 315.3 L672 307.9 L696 301.5 L720 296.5 L744 293.5 L768 292.7 L792 294.1 L816 297.5 L840 302.8 L864 309.6 L888 317.1 L912 324.9 L936 332.3 L960 338.7 L984 343.6 L1008 346.5 L1032 347.3 L1056 345.9 L1080 342.3 L1104 337.0 L1128 330.2 L1152 322.7 L1176 314.9 L1200 307.5 L1224 301.1 L1248 296.3 L1272 293.4 L1296 292.7 L1320 294.2 L1344 297.8 L1368 303.2 L1392 310.0 L1416 317.5 L1440 325.3%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.50%22/%3E%3Cpath d=%22M0 346.9 L24 342.8 L48 336.9 L72 329.6 L96 321.7 L120 313.8 L144 306.5 L168 300.4 L192 296.1 L216 294.0 L240 294.1 L264 296.5 L288 300.9 L312 307.1 L336 314.5 L360 322.5 L384 330.4 L408 337.5 L432 343.3 L456 347.2 L480 349.0 L504 348.5 L528 345.8 L552 341.0 L576 334.6 L600 327.0 L624 319.0 L648 311.2 L672 304.3 L696 298.8 L720 295.2 L744 293.7 L768 294.6 L792 297.7 L816 302.8 L840 309.5 L864 317.1 L888 325.2 L912 332.9 L936 339.6 L960 344.8 L984 348.1 L1008 349.1 L1032 347.9 L1056 344.4 L1080 339.0 L1104 332.1 L1128 324.4 L1152 316.4 L1176 308.8 L1200 302.3 L1224 297.3 L1248 294.4 L1272 293.8 L1296 295.4 L1320 299.2 L1344 304.9 L1368 312.0 L1392 319.8 L1416 327.8 L1440 335.2%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.46%22/%3E%3Cpath d=%22M0 347.4 L24 342.4 L48 335.8 L72 328.0 L96 319.8 L120 311.8 L144 304.8 L168 299.4 L192 295.9 L216 294.8 L240 296.0 L264 299.6 L288 305.1 L312 312.2 L336 320.2 L360 328.4 L384 336.2 L408 342.8 L432 347.6 L456 350.4 L480 350.8 L504 348.8 L528 344.6 L552 338.5 L576 331.1 L600 323.0 L624 314.8 L648 307.4 L672 301.3 L696 297.0 L720 294.9 L744 295.3 L768 297.9 L792 302.8 L816 309.3 L840 317.0 L864 325.2 L888 333.2 L912 340.4 L936 346.0 L960 349.6 L984 350.9 L1008 349.9 L1032 346.5 L1056 341.1 L1080 334.1 L1104 326.2 L1128 318.0 L1152 310.2 L1176 303.5 L1200 298.4 L1224 295.4 L1248 294.8 L1272 296.6 L1296 300.7 L1320 306.6 L1344 313.9 L1368 322.0 L1392 330.2 L1416 337.7 L1440 344.0%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.42%22/%3E%3Cpath d=%22M0 347.6 L24 341.8 L48 334.5 L72 326.2 L96 317.8 L120 310.0 L144 303.4 L168 298.6 L192 296.1 L216 296.1 L240 298.6 L264 303.3 L288 309.9 L312 317.7 L336 326.1 L360 334.4 L384 341.7 L408 347.6 L432 351.4 L456 352.8 L480 351.7 L504 348.2 L528 342.5 L552 335.3 L576 327.2 L600 318.7 L624 310.8 L648 304.0 L672 299.0 L696 296.3 L720 296.0 L744 298.2 L768 302.7 L792 309.1 L816 316.8 L840 325.2 L864 333.5 L888 341.0 L912 347.0 L936 351.0 L960 352.7 L984 351.9 L1008 348.7 L1032 343.3 L1056 336.2 L1080 328.1 L1104 319.6 L1128 311.6 L1152 304.7 L1176 299.5 L1200 296.5 L1224 295.9 L1248 297.8 L1272 302.1 L1296 308.3 L1320 315.9 L1344 324.2 L1368 332.6 L1392 340.2 L1416 346.4 L1440 350.7%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.38%22/%3E%3Cpath d=%22M0 347.5 L24 340.9 L48 332.9 L72 324.3 L96 315.8 L120 308.2 L144 302.2 L168 298.3 L192 296.9 L216 298.0 L240 301.7 L264 307.6 L288 315.1 L312 323.5 L336 332.1 L360 340.2 L384 347.0 L408 351.8 L432 354.3 L456 354.2 L480 351.5 L504 346.5 L528 339.7 L552 331.5 L576 322.9 L600 314.5 L624 307.1 L648 301.4 L672 297.9 L696 296.9 L720 298.5 L744 302.6 L768 308.7 L792 316.4 L816 324.9 L840 333.6 L864 341.4 L888 347.9 L912 352.4 L936 354.5 L960 353.9 L984 350.8 L1008 345.5 L1032 338.4 L1056 330.1 L1080 321.4 L1104 313.1 L1128 306.0 L1152 300.6 L1176 297.5 L1200 297.0 L1224 299.0 L1248 303.5 L1272 309.9 L1296 317.8 L1320 326.4 L1344 334.9 L1368 342.6 L1392 348.8 L1416 352.9 L1440 354.5%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.32%22/%3E%3Cpath d=%22M0 347.1 L24 339.7 L48 331.2 L72 322.3 L96 313.9 L120 306.6 L144 301.3 L168 298.4 L192 298.1 L216 300.6 L240 305.4 L264 312.4 L288 320.6 L312 329.5 L336 338.2 L360 345.8 L384 351.7 L408 355.3 L432 356.4 L456 354.7 L480 350.4 L504 344.0 L528 336.1 L552 327.3 L576 318.5 L600 310.5 L624 304.0 L648 299.7 L672 297.9 L696 298.9 L720 302.4 L744 308.3 L768 315.9 L792 324.5 L816 333.4 L840 341.7 L864 348.7 L888 353.6 L912 356.1 L936 355.9 L960 353.1 L984 347.8 L1008 340.6 L1032 332.2 L1056 323.3 L1080 314.8 L1104 307.4 L1128 301.8 L1152 298.6 L1176 298.0 L1200 300.2 L1224 304.8 L1248 311.5 L1272 319.7 L1296 328.5 L1320 337.2 L1344 345.0 L1368 351.2 L1392 355.1 L1416 356.4 L1440 355.0%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.27%22/%3E%3Cpath d=%22M0 346.4 L24 338.4 L48 329.4 L72 320.3 L96 312.0 L120 305.3 L144 300.8 L168 299.0 L192 300.0 L216 303.7 L240 309.7 L264 317.6 L288 326.5 L312 335.6 L336 344.1 L360 351.0 L384 355.8 L408 358.1 L432 357.5 L456 354.1 L480 348.4 L504 340.7 L528 331.9 L552 322.8 L576 314.2 L600 307.0 L624 301.8 L648 299.2 L672 299.4 L696 302.4 L720 307.8 L744 315.3 L768 324.0 L792 333.1 L816 341.8 L840 349.3 L864 354.7 L888 357.7 L912 357.9 L936 355.3 L960 350.2 L984 343.0 L1008 334.4 L1032 325.3 L1056 316.5 L1080 308.8 L1104 303.0 L1128 299.7 L1152 299.1 L1176 301.3 L1200 306.1 L1224 313.0 L1248 321.5 L1272 330.6 L1296 339.5 L1320 347.4 L1344 353.5 L1368 357.2 L1392 358.2 L1416 356.3 L1440 351.9%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.21%22/%3E%3Cpath d=%22M0 345.5 L24 336.8 L48 327.4 L72 318.3 L96 310.3 L120 304.3 L144 300.8 L168 300.1 L192 302.4 L216 307.3 L240 314.5 L264 323.2 L288 332.6 L312 341.7 L336 349.7 L360 355.7 L384 359.2 L408 359.9 L432 357.6 L456 352.7 L480 345.5 L504 336.8 L528 327.4 L552 318.3 L576 310.3 L600 304.3 L624 300.8 L648 300.1 L672 302.4 L696 307.3 L720 314.5 L744 323.2 L768 332.6 L792 341.7 L816 349.7 L840 355.7 L864 359.2 L888 359.9 L912 357.6 L936 352.7 L960 345.5 L984 336.8 L1008 327.4 L1032 318.3 L1056 310.3 L1080 304.3 L1104 300.8 L1128 300.1 L1152 302.4 L1176 307.3 L1200 314.5 L1224 323.2 L1248 332.6 L1272 341.7 L1296 349.7 L1320 355.7 L1344 359.2 L1368 359.9 L1392 357.6 L1416 352.7 L1440 345.5%22 fill=%22none%22 stroke=%22%23F8DFB2%22 stroke-width=%221%22 stroke-opacity=%220.15%22/%3E%3C/svg%3E") center bottom / 100% 62% no-repeat,
    linear-gradient(172deg,#20244B 0%,#3F346A 34%,#7A4C78 66%,#B9687A 100%);
  color:#FBF4E6}
.pack-hero.year-hero .crumbs,.pack-hero.year-hero .crumbs a{color:#EADBCB}
.pack-hero.year-hero h1.kicker{color:#F8DFB2;letter-spacing:.01em}
.pack-hero.year-hero .hero-line{color:#FFF6E8}
.pack-hero.year-hero .hero-line em{color:#F8DFB2;--u:#E3B860}
.pack-hero.year-hero .lead{color:#F6EADB}
.pack-hero.year-hero .hindi{color:#EADBCB}
.pack-hero.year-hero .btn-ghost{color:#FFF6E8;border-color:rgba(248,223,178,.75)}
.pack-hero.year-hero .trust span{background:rgba(255,255,255,.1);border-color:rgba(227,184,96,.85);color:#FFF6E8}
.pack-hero.year-hero .fan img{border:1.5px solid #E3C98A;box-shadow:0 22px 44px rgba(18,10,40,.5)}
.year-ways{background:linear-gradient(180deg,var(--ground) 0%,var(--surface-2) 100%)}
.year-ways .ways img{aspect-ratio:620/877;object-fit:cover;object-position:top;background:#F4ECE4}
@media (max-width:860px){.year-ways .ways{grid-template-columns:1fr;max-width:420px;margin-inline:auto}}

/* The Believable Year: the gifting band */
.year-gift{background:linear-gradient(180deg,var(--surface-2) 0%,var(--ground) 100%)}
.gsteps{margin:16px 0 4px;padding:0;list-style:none;display:grid;gap:10px;counter-reset:g}
.gsteps li{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;color:var(--ink-soft)}
.gsteps li::before{content:counter(g);counter-increment:g;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  background:#7A4C78;color:#FFF6E8;font:700 .9rem/1 var(--display)}
.gsteps b{color:var(--ink)}

/* ===================================================================
   THE BELIEVABLE YEAR: announcement bar, the Shop menu, the welcome card,
   and the home-page band. Added 3 Oct 2026.
   =================================================================== */
.annbar{background:linear-gradient(90deg,#2B2F5C 0%,#5A4479 45%,#A85E7A 100%);color:#FFF6E8;font-size:calc(.9rem / var(--text-scale))}
.annbar .wrap{display:flex;align-items:center;justify-content:center;gap:10px 12px;padding-block:9px;position:relative;padding-right:44px;flex-wrap:wrap;text-align:center}
.annbar .ab-new{background:#F8DFB2;color:#3F2E5C;font:700 calc(.7rem / var(--text-scale))/1 var(--body);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:6px 10px;white-space:nowrap}
.annbar a{color:#FFF6E8;text-decoration:none}
.annbar a b{color:#F8DFB2}
.annbar a u{text-underline-offset:3px;text-decoration-color:#E3B860}
.annbar a:hover u{color:#F8DFB2}
.annbar .ab-x{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;color:#FFF6E8;font-size:calc(1.4rem / var(--text-scale));line-height:1;width:40px;height:40px;cursor:pointer;border-radius:50%}
.annbar .ab-x:hover{background:rgba(255,255,255,.12)}

.pmenu{position:relative;background:none;border:0;border-radius:0;padding:0}
.pmenu summary{list-style:none;cursor:pointer;font:500 calc(.92rem / var(--text-scale))/1 var(--body);color:var(--ink-soft);display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 2px;position:relative}
.pmenu summary::-webkit-details-marker{display:none}
.pmenu summary::after{content:"";position:static;display:inline-block;width:7px;height:7px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;font:inherit;color:inherit;transform:rotate(45deg) translateY(-2px);transition:transform .2s;scale:1;rotate:0deg}
.pmenu[open] summary::after{transform:rotate(225deg) translateY(-1px)}
.pmenu summary:hover,.pmenu[open] summary,.pmenu summary[aria-current]{color:var(--ink)}
.pm-panel{position:absolute;left:50%;transform:translateX(-50%);top:calc(100% + 8px);width:min(440px,92vw);background:var(--surface);color:var(--ink);border:2px solid var(--outline);border-radius:18px;box-shadow:5px 6px 0 var(--outline);padding:10px;display:grid;gap:4px;z-index:60}
.nav-links .pm-panel a.pm-item{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;padding:8px;border-radius:12px;color:var(--ink);min-height:0;position:relative}
.nav-links .pm-panel a.pm-item:hover{background:var(--surface-2)}
.pm-item img{width:44px;height:62px;object-fit:cover;border-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.pm-item span{display:grid;gap:3px}
.pm-item b{font:600 calc(.95rem / var(--text-scale))/1.25 var(--body)}
.pm-item small{font-size:calc(.8rem / var(--text-scale));color:var(--ink-soft);line-height:1.3}
.pm-item em{font:700 calc(.92rem / var(--text-scale))/1 var(--body);font-style:normal;color:var(--ink)}
.pm-item .pm-new{position:absolute;top:6px;right:8px;font:700 calc(.62rem / var(--text-scale))/1 var(--body);font-style:normal;letter-spacing:.06em;text-transform:uppercase;background:#3F346A;color:#F8DFB2;border-radius:999px;padding:4px 7px}
.pm-item:has(.pm-new) em{margin-top:14px}
.pm-foot{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:4px;padding:10px 8px 4px}
.nav-links .pm-foot a{font-weight:600;color:var(--coral);min-height:32px}
@media (max-width:760px){.pmenu{display:none}}
.mnav .mn-prod{display:flex;justify-content:space-between;gap:12px;font-size:calc(.9rem / var(--text-scale));padding-left:18px}
.mnav .mn-prod span{color:var(--ink-soft);font-weight:600}

.ypop{border:0;padding:0;border-radius:22px;max-width:min(640px,94vw);width:640px;background:linear-gradient(160deg,#FFF8EC 0%,#FBEFF0 100%);color:#1E2A3A;box-shadow:0 30px 80px rgba(20,20,50,.45)}
.ypop::backdrop{background:rgba(26,22,48,.55);backdrop-filter:blur(2px)}
.ypop .x{position:absolute;top:10px;right:10px;width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.75);font-size:1.5rem;cursor:pointer;color:#3F346A;z-index:2}
.yp-in{display:grid;grid-template-columns:170px 1fr;gap:24px;padding:28px;align-items:center}
.yp-in img{width:170px;height:auto;border-radius:10px;box-shadow:0 12px 30px rgba(43,47,92,.35);transform:rotate(-3deg)}
.yp-eyebrow{font:700 .72rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:#A04A62;margin:0 0 8px}
.ypop h2{font:700 clamp(1.35rem,3.4vw,1.8rem)/1.15 var(--display);margin:0 0 10px;color:#2B2F5C;text-wrap:balance}
.yp-lead{margin:0 0 10px;color:#4A4458;font-size:.97rem}
.yp-facts{margin:0 0 16px;font-size:.85rem;color:#6B6670}
.yp-cta{display:flex;flex-wrap:wrap;gap:10px}
.yp-cta .btn-ghost{color:#2B2F5C}
.yp-later{margin-top:12px;background:none;border:0;color:#6B6670;text-decoration:underline;text-underline-offset:3px;font:500 .85rem var(--body);cursor:pointer;padding:6px 0}
@media (max-width:560px){.yp-in{grid-template-columns:1fr;padding:22px;gap:14px;text-align:center}.yp-in img{width:120px;margin:0 auto}.yp-cta{justify-content:center}}

.yband{background:
    radial-gradient(42% 60% at 80% 50%, rgba(251,227,180,.55) 0%, rgba(251,227,180,0) 70%),
    linear-gradient(160deg,#20244B 0%,#3F346A 38%,#7A4C78 72%,#B9687A 100%);color:#FBF4E6;padding-block:clamp(40px,6vw,72px)}
.yband .yb-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,56px);align-items:center}
.yband .eyebrow{color:#F8DFB2}
.yband h2{color:#FFF6E8;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.08;margin:10px 0 14px;text-wrap:balance}
.yband h2 em{font-style:normal;color:#F8DFB2}
.yband .lead{color:#F1E3D6;max-width:60ch}
.yband .yb-chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 22px}
.yband .yb-chips span{border:1px solid rgba(248,223,178,.6);color:#FBEBD2;border-radius:999px;padding:7px 12px;font-size:.84rem}
.yband .yb-cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.yband .btn-ghost{color:#FFF6E8;border-color:rgba(248,223,178,.75)}
.yband .yb-price{font:700 1.1rem var(--body);color:#F8DFB2}
.yband .yb-art{position:relative;display:flex;justify-content:center}
.yband .yb-art img{width:min(440px,100%);height:auto;filter:drop-shadow(0 24px 40px rgba(10,10,40,.45))}
@media (max-width:820px){.yband .yb-grid{grid-template-columns:1fr}.yband .yb-art{order:-1}.yband .yb-art img{width:min(320px,86%)}}
.mnav div{min-width:min(300px,86vw)}
.mnav div a.mn-prod{display:flex!important;justify-content:space-between;align-items:baseline;gap:14px;font-size:calc(.88rem / var(--text-scale));line-height:1.3;padding-left:20px}
.mnav div a.mn-prod span{flex:none;color:var(--ink-soft);font-weight:700}
@media (max-width:760px){
  .mnav div{position:fixed;left:12px;right:12px;top:auto;min-width:0;margin-top:8px;max-height:calc(100vh - 230px);overflow:auto}
}

/* ---------- About page: rainy-day paper boat (chosen 4 Oct 2026) ---------- */
@media (prefers-reduced-motion:reduce){.ab *{animation:none!important;transition:none!important}}
.ab{overflow:hidden}
.ab-hero{position:relative;background:linear-gradient(180deg,#DCEFF7 0%,#EAF5F0 62%,var(--ground) 100%);padding-block:clamp(18px,3vw,30px) 0}
.ab-hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(16px,4vw,48px);align-items:end}
.ab-hero h1{font-size:clamp(2.2rem,5.4vw,3.6rem);font-weight:800;line-height:1.02;margin-top:8px;text-wrap:balance}
.ab-hero h1 .ab-hi{position:relative;white-space:nowrap}
.ab-hero h1 .ab-hi::after{content:"";position:absolute;left:-2%;right:-2%;bottom:.02em;height:.32em;z-index:-1;border-radius:40% 60% 50% 50%;background:var(--marigold);opacity:.55;transform:rotate(-1.2deg)}
.ab-hero h1 span{position:relative;z-index:0}
.ab-hero .standfirst{font-size:1.14rem;color:var(--ink-soft);margin-top:14px;max-width:560px}
.ab-copy{padding-bottom:clamp(40px,6vw,72px)}
.ab-puddle{position:relative;height:clamp(230px,30vw,330px)}
.ab-puddle .ab-rain{position:absolute;inset:0 0 30% 0;pointer-events:none}
.ab-puddle .ab-rain i{position:absolute;top:-20px;width:2px;height:16px;border-radius:2px;background:#7FB4C7;opacity:.7;animation:abdrop 1.6s linear infinite}
@keyframes abdrop{to{transform:translateY(240px);opacity:0}}
.ab-puddle .ab-water{position:absolute;left:0;right:22%;bottom:4%;height:40%}
.ab-puddle .ab-water svg{width:100%;height:100%;display:block}
.ab-boatbtn{position:absolute;left:8%;bottom:24%;width:clamp(120px,15vw,168px);border:0;background:none;padding:0;cursor:pointer;animation:abbob 3.2s ease-in-out infinite;transition:left 2.6s cubic-bezier(.45,.05,.4,1)}
.ab-boatbtn img{width:100%;height:auto;display:block;filter:drop-shadow(0 6px 0 rgba(27,42,49,.08))}
.ab-boatbtn:focus-visible{outline:3px solid var(--coral);outline-offset:6px;border-radius:12px}
.ab-boatbtn.ab-sail{left:36%}
@keyframes abbob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8px) rotate(3deg)}}
.ab-ripple{position:absolute;bottom:22%;width:120px;height:26px;margin-left:-60px;border:2px solid #7FB4C7;border-radius:50%;opacity:0;pointer-events:none}
.ab-ripple.go{animation:abrip 1.2s ease-out}
@keyframes abrip{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1.8);opacity:0}}
.ab-fonu{position:absolute;right:3%;bottom:6%;width:clamp(74px,9vw,104px);height:auto;animation:abwave 2.4s ease-in-out infinite;transform-origin:50% 90%}
@keyframes abwave{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(5deg)}}
.ab-cloud{position:absolute;top:6%;left:34%;width:clamp(70px,8vw,100px);height:auto;animation:abdrift 18s ease-in-out infinite alternate}
@keyframes abdrift{to{transform:translateX(40px)}}

.ab-body{max-width:900px;margin-inline:auto;padding-inline:20px;padding-block:clamp(24px,4vw,40px) clamp(56px,8vw,96px);display:grid;gap:clamp(44px,6vw,72px)}
.ab h2{font-size:clamp(1.5rem,3vw,1.95rem);margin-bottom:14px}

/* notebook page */
.ab-note{position:relative;background-color:var(--surface);border-radius:6px;box-shadow:var(--shadow);transform:rotate(-.8deg);
  padding:32px clamp(22px,4vw,40px) 32px clamp(64px,10vw,92px);
  background-image:linear-gradient(90deg,transparent clamp(44px,7.5vw,68px),#E8A598 clamp(44px,7.5vw,68px),#E8A598 calc(clamp(44px,7.5vw,68px) + 2px),transparent calc(clamp(44px,7.5vw,68px) + 2px)),
    repeating-linear-gradient(180deg,transparent 0 31px,#CFE3EC 31px 32px)}
.ab-note p{font-size:1.06rem;line-height:32px;max-width:62ch;margin:0}
.ab-note h2{line-height:64px;margin:0}
.ab-tape{position:absolute;width:96px;height:28px;background:rgba(242,177,56,.55);top:-12px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.ab-tape.l{left:18px;transform:rotate(-8deg)}.ab-tape.r{right:18px;transform:rotate(6deg);background:rgba(157,211,168,.65)}
.ab-note .ab-holes{position:absolute;left:clamp(14px,2.5vw,22px);top:40px;bottom:40px;display:flex;flex-direction:column;justify-content:space-around}
.ab-note .ab-holes i{width:14px;height:14px;border-radius:50%;background:var(--ground);box-shadow:inset 0 2px 3px rgba(0,0,0,.12)}
.ab-note .ab-doodle{position:absolute;right:-14px;bottom:-22px;width:86px;transform:rotate(8deg)}

/* sticky notes */
.ab-stickies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,30px);list-style:none;padding:0;margin:0}
.ab-sticky{position:relative;padding:30px 24px 26px;border-radius:4px 4px 18px 4px;box-shadow:0 12px 20px -12px rgba(20,50,59,.35);transition:transform .25s ease}
.ab-sticky:nth-child(1){background:var(--marigold-soft);transform:rotate(-2deg)}
.ab-sticky:nth-child(2){background:var(--mint-soft);transform:rotate(1.6deg)}
.ab-sticky:nth-child(3){background:var(--coral-soft);transform:rotate(1.2deg)}
.ab-sticky:nth-child(4){background:#D6ECF6;transform:rotate(-1.4deg)}
.ab-sticky:hover{transform:rotate(0) translateY(-4px)}
.ab-sticky .ab-pin{position:absolute;top:-9px;left:50%;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--coral);border:2px solid var(--outline)}
.ab-sticky:nth-child(2) .ab-pin{background:var(--marigold)}.ab-sticky:nth-child(4) .ab-pin{background:var(--mint)}
.ab-sticky img{width:52px;height:auto;float:right;margin:-6px -4px 6px 10px}
.ab-sticky b{display:block;font:800 1.25rem/1.15 var(--display);margin-bottom:6px}
.ab-sticky p{font-size:.98rem}

/* postcard */
.ab-post{position:relative;background:var(--surface);border-radius:14px;box-shadow:var(--shadow);display:grid;grid-template-columns:1.25fr .75fr;overflow:hidden}
.ab-post::before{content:"";position:absolute;inset:0;border:10px solid transparent;border-image:repeating-linear-gradient(45deg,var(--coral) 0 14px,transparent 14px 28px,#5B9BB0 28px 42px,transparent 42px 56px) 10;pointer-events:none;border-radius:14px}
.ab-post .ab-msg{padding:clamp(30px,4vw,44px)}
.ab-post .ab-msg p{margin-bottom:22px}
.ab-post .ab-addr{border-left:2px dashed var(--line);padding:clamp(30px,4vw,44px) 28px;position:relative}
.ab-stamp{position:absolute;top:30px;right:30px;width:104px;transform:rotate(4deg);background:var(--surface);padding:6px;border:6px dotted var(--surface);outline:1px solid var(--line);box-shadow:0 4px 10px -4px rgba(20,50,59,.3)}
.ab-stamp div{background:#D6ECF6;padding:14px 6px;text-align:center}
.ab-stamp img{width:70px;height:auto;display:inline-block}
.ab-pmark{position:absolute;top:70px;right:112px;width:92px;height:92px;border:2px solid rgba(201,80,47,.55);border-radius:50%;transform:rotate(-14deg);display:grid;place-items:center}
.ab-pmark::after{content:"";position:absolute;left:-60px;right:-20px;top:46%;height:12px;background:repeating-linear-gradient(180deg,rgba(201,80,47,.45) 0 2px,transparent 2px 5px)}
.ab-pmark span{font:800 .62rem/1.15 var(--display);letter-spacing:.12em;text-transform:uppercase;color:rgba(201,80,47,.75);text-align:center}
.ab-lines{margin-top:170px;display:grid;gap:26px}.ab-lines i{display:block;height:2px;background:var(--line)}

@media (max-width:760px){
 .ab-hero .wrap{grid-template-columns:1fr}
 .ab-puddle{margin-inline:-20px;height:190px;margin-top:-18px}
 .ab-copy{padding-bottom:0}
 .ab-cloud{top:2%;left:46%}
 .ab-stickies{grid-template-columns:1fr}
 .ab-note h2{line-height:32px;margin-bottom:32px}
 .ab-post{grid-template-columns:1fr}
 .ab-post .ab-addr{border-left:0;border-top:2px dashed var(--line);min-height:150px}
 .ab-post .ab-addr .ab-lines{display:none}
 .ab-pmark{top:34px;right:auto;left:30px}
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ab-hero{background:linear-gradient(180deg,#143E4B 0%,#123540 62%,var(--ground) 100%)}
 :root:not([data-theme="light"]) .ab-note{background-image:linear-gradient(90deg,transparent 68px,#7A3B30 68px,#7A3B30 70px,transparent 70px),repeating-linear-gradient(180deg,transparent 0 31px,#2B4B54 31px 32px)}
 :root:not([data-theme="light"]) .ab-sticky:nth-child(4),:root:not([data-theme="light"]) .ab-stamp div{background:#1C4250}}
:root[data-theme="dark"] .ab-hero{background:linear-gradient(180deg,#143E4B 0%,#123540 62%,var(--ground) 100%)}
:root[data-theme="dark"] .ab-note{background-image:linear-gradient(90deg,transparent 68px,#7A3B30 68px,#7A3B30 70px,transparent 70px),repeating-linear-gradient(180deg,transparent 0 31px,#2B4B54 31px 32px)}
:root[data-theme="dark"] .ab-sticky:nth-child(4),:root[data-theme="dark"] .ab-stamp div{background:#1C4250}

/* Play Cards page: plain-spoken note for people who already own the Screen Reset (combo removed 5 Oct 2026) */
.have-note{padding-block:clamp(8px,2vw,16px) clamp(28px,4vw,44px)}
.have-in{max-width:760px;margin-inline:auto;background:var(--mint-soft);border:1.5px solid var(--line);border-radius:20px;padding:clamp(20px,3vw,28px)}
.have-in h2{font-size:clamp(1.25rem,2.4vw,1.5rem);margin-bottom:8px}
.have-in p{color:var(--ink)}
.have-line{font-size:.9rem;color:var(--ink-soft);margin:-4px 0 14px}

/* Home Safety page: plain statement of what is India-specific (5 Oct 2026) */
.fitnote{margin-top:12px;font-size:.92rem;color:var(--ink-soft);border-left:3px solid var(--marigold);padding:2px 0 2px 12px;max-width:52ch}

/* Terms, Privacy, Refunds and Delivery: justified body text on wider screens (her instruction, 5 Oct 2026). */
.policy-main.is-justified p,.policy-main.is-justified li{-webkit-hyphens:none;hyphens:none}
@media (min-width:720px){.policy-main.is-justified p,.policy-main.is-justified li{text-align:justify;text-justify:inter-word;-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:7 3 3;text-wrap:wrap}}
/* text-wrap:pretty (used site-wide) breaks lines early to avoid a lonely last word; under justify that early break
   becomes a stretched, gappy line, so justified paragraphs wrap normally. Headings never hyphenate. */
.policy-main.is-justified h2,.policy-main.is-justified h3{-webkit-hyphens:none;hyphens:none}
/* phones stay left-aligned: a narrow column cannot be justified without wide gaps.
   .rag = a paragraph the page measured and found gappy when justified (see tidyJustified) */
.policy-main.is-justified p.note,.policy-main.is-justified p:has(> a.btn),.policy-main.is-justified .rag{text-align:left;-webkit-hyphens:none;hyphens:none}

/* ---- A+ (9 Oct 2026) ----
   The button shows its own state (A / A+ / A++), yellow while above normal, on light
   and dark headers alike. The header itself does not grow with the text size: the
   bigger sizes are for reading, and at 130% the phone wordmark used to break apart
   ("Little" overlapping, "E lsewhere"). Dividing by --text-scale keeps it exactly as
   it is at normal size. */
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.textsize{white-space:nowrap;padding:0 10px}
.dark-nav .textsize[aria-pressed="true"]{background:var(--marigold);border-color:var(--outline);color:var(--on-marigold)}
.nav .brand{font-size:calc(1.35rem / var(--text-scale))}
.nav .brand small{font-size:calc(.66rem / var(--text-scale))}
.nav .textsize{font-size:calc(1rem / var(--text-scale))}
@media (max-width:600px){
  .nav .brand{font-size:calc(.92rem / var(--text-scale))}
  .nav .textsize{font-size:calc(.9rem / var(--text-scale));padding:0 8px}
}

/* header chrome keeps its normal size at every text size (A+ enlarges the page, not the header) */
.nav{font-size:calc(1rem / var(--text-scale))}
@media (min-width:601px){.nav .btn .price{font-size:calc(.95rem / var(--text-scale))}}
/* small phones (360-400px): keep logo + A + Menu + Shop on one row at every text size */
.nav .textsize{min-width:3.1em}
@media (max-width:400px){
  .nav .wrap{gap:6px}
  .nav-links{gap:6px}
  .nav .textsize{padding:0 5px}
  .mnav summary{padding-inline:10px}
  .nav .btn{padding-inline:10px}
  .sn-now{display:none}
}
/* long unbroken text (the email address) and long button labels never push the page sideways at bigger text sizes */
[data-cfg="brandEmail"],a[href^="mailto:"],.js-email{overflow-wrap:anywhere}
main .btn{max-width:100%;white-space:normal}
main h1,main h2{overflow-wrap:break-word;hyphens:auto}

/* ---- 10 Oct 2026: smoothness pass ---- */
/* sections out of view pause their decorative loops (set by site.js) */
[data-rest] *,[data-rest] *::before,[data-rest] *::after{animation-play-state:paused!important}
/* the floating "Need help?" joins after the first screen */
.wafloat:not(.wf-on){opacity:0;translate:0 14px;pointer-events:none;visibility:hidden}
.wafloat{transition:opacity .3s ease,translate .3s ease,visibility 0s linear}
.wafloat:not(.wf-on){transition:opacity .2s ease,translate .2s ease,visibility 0s linear .2s}
/* the section badge must not make its line taller when it is added */
.page-head .eyebrow,.sec-head .eyebrow{min-height:30px}
.le-rm .page-head .eyebrow,.le-rm .sec-head .eyebrow{min-height:0}
/* laptop header, by design rather than by accident (10 Oct 2026). Until now the
   last button (Shop now, or Get it with its price) was a few pixels too wide for
   the row and dropped onto a line of its own under the links at every laptop width.
   From 1180px: one row, and the search box takes whatever room is left.
   900-1179px: the links and the button on one row, the search box on a full-width
   row beneath, the same arrangement as on a phone. */
@media (min-width:1180px){
  .nav-links{flex:none;flex-wrap:nowrap}
  .sform{flex:1 1 180px;max-width:280px}
}
@media (min-width:900px) and (max-width:1179px){
  .nav .wrap{flex-wrap:wrap}
  .nav-links{order:2;flex-wrap:nowrap;margin-left:auto;column-gap:18px}
  .sform{order:3;flex:1 1 100%;max-width:none;margin:0 0 6px}
}
/* on the dark product headers "Shop" matched the other links' colour only on hover,
   so it looked switched off */
.dark-nav .pmenu summary{color:var(--night-soft)}
.dark-nav .pmenu summary:hover,.dark-nav .pmenu[open] summary{color:var(--night-ink)}
/* a soft cross-fade from page to page (Chrome, Edge, Safari 18.2+; others change page as before) */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:.2s;animation-timing-function:ease}
}
/* the 2027 bar never appears and then vanishes: hidden before the first paint once closed, and on its own page */
.ann-off #annbar{display:none}

@media (prefers-reduced-motion:reduce){.sboat,.sboat img,.shimmer,.sun-glow,.twk,.fly,.rscene-tag,.rscene-tag img,.ticker .row{animation:none!important}.sboat{display:none}.shimmer{opacity:.25}.twk,.fly{opacity:.7}.rscene-tag{rotate:-1.6deg;opacity:1;translate:0 0}}
