:root{--bg:#EAF1EE;--card:#F7FAF8;--ink:#14201D;--muted:#4C5F5A;--pine:#1F3D36;--sun:#E8A33D;--line:#C5D5CF;--on:#EAF1EE;--alt:#DCE8E3}
:root[data-theme=dark]{--bg:#0F1A17;--card:#17261F;--ink:#E6EFEB;--muted:#9DB3AB;--pine:#2C5A4D;--line:#2A3F37;--on:#F2F7F4;--alt:#13211C}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{margin:0;background:var(--bg);color:var(--ink);font:18px/1.6 "Source Serif 4",Georgia,serif;overflow-x:hidden;transition:background .4s,color .4s}
h1,h2,h3,b,.btn,.chip,.logo,nav,summary,cite{font-family:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif}
a{color:inherit}button{font:inherit;cursor:pointer;color:inherit}
:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}.narrow{max-width:760px}
#progress{position:fixed;top:0;left:0;height:4px;width:0;background:var(--sun);z-index:20}
#glow{position:fixed;width:360px;height:360px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(232,163,61,.22),transparent 65%);transform:translate(-50%,-50%);z-index:0;left:-400px;top:0}
header{position:sticky;top:0;z-index:8;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s}
header.s{border-color:var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;height:62px}
.logo{font-weight:800;font-size:21px;text-decoration:none;letter-spacing:-.02em}
nav{display:flex;gap:18px;align-items:center;font-weight:500;font-size:15px}nav a{text-decoration:none}nav a:hover{text-decoration:underline}
nav button{background:none;border:2px solid var(--ink);border-radius:999px;padding:5px 14px;font-weight:700;font-size:14px}
#theme{width:36px;padding:5px 0;font-size:16px}
#count.bump{animation:bump .4s}
@keyframes bump{50%{transform:scale(1.7);color:var(--sun)}}
.btn{display:inline-block;background:var(--pine);color:var(--on);border:0;border-radius:999px;padding:13px 26px;font-weight:700;font-size:15px;text-decoration:none;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}
.btn:hover{box-shadow:0 8px 20px rgba(0,0,0,.2)}
.btn.sun{background:var(--sun);color:#14201D}.btn.ghost{background:none;border:2px solid var(--ink);color:var(--ink)}
.btn .rip{position:absolute;border-radius:50%;background:rgba(255,255,255,.5);transform:scale(0);animation:rip .6s forwards;pointer-events:none}
@keyframes rip{to{transform:scale(4);opacity:0}}
.hero{position:relative;overflow:hidden;padding:84px 0 72px}
.hero .wrap{position:relative;z-index:1}
.blob{position:absolute;border-radius:50%;filter:blur(50px);opacity:.55;animation:drift 14s ease-in-out infinite alternate}
.b1{width:380px;height:380px;background:var(--sun);right:-80px;top:-60px}
.b2{width:320px;height:320px;background:#7FB89F;left:-90px;bottom:-80px;animation-duration:18s}
.b3{width:220px;height:220px;background:#B9A6E8;left:45%;top:30%;animation-duration:22s;opacity:.35}
@keyframes drift{to{transform:translate(60px,-40px) scale(1.2)}}
.float{position:absolute;font-size:44px;animation:fl 6s ease-in-out infinite;z-index:1;user-select:none}
.f1{right:12%;top:18%}.f2{right:28%;top:60%;animation-delay:-2s}.f3{left:6%;top:20%;animation-delay:-4s}.f4{right:6%;top:72%;animation-delay:-1s}.f5{left:40%;top:8%;animation-delay:-3s}
@keyframes fl{50%{transform:translateY(-22px) rotate(10deg)}}
.pill{display:inline-block;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:4px 14px;font:700 14px "Bricolage Grotesque",sans-serif;margin:0 0 18px}
h1{font-size:clamp(46px,9vw,110px);line-height:.95;letter-spacing:-.04em;margin:0 0 24px;font-weight:800;max-width:11ch}
h1 span{display:inline-block;opacity:0;transform:translateY(40px) rotate(4deg);animation:up .8s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes up{to{opacity:1;transform:none}}
.lead{max-width:46ch;color:var(--muted);font-size:20px;margin:0 0 28px}
.row{display:flex;gap:12px;flex-wrap:wrap}
.marquee{background:var(--pine);color:var(--on);overflow:hidden;white-space:nowrap;padding:14px 0;font:700 20px "Bricolage Grotesque",sans-serif;transform:rotate(-1.2deg);margin:0 -10px}
.track{display:inline-flex;animation:mq 30s linear infinite}.marquee:hover .track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}
.stats{padding:64px 0 24px}.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;text-align:center}
.stats b{display:block;font-size:clamp(38px,6vw,60px);letter-spacing:-.03em;color:var(--pine)}[data-theme=dark] .stats b{color:var(--sun)}
.stats span{color:var(--muted)}
section{padding:64px 0;position:relative}.alt{background:var(--alt)}
h2{font-size:clamp(30px,5vw,48px);letter-spacing:-.03em;margin:0 0 8px;line-height:1.05}
.sub{color:var(--muted);margin:0 0 28px;max-width:52ch}
.rv{opacity:0;transform:translateY(32px);transition:opacity .7s,transform .7s}.rv.in{opacity:1;transform:none}
.tools{display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;margin-bottom:24px}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.chip{background:none;border:1.5px solid var(--ink);border-radius:999px;padding:6px 16px;font-weight:500;font-size:15px;transition:background .2s,color .2s}
.chip[aria-pressed=true]{background:var(--ink);color:var(--bg)}
input{font:inherit;padding:11px 16px;border:1.5px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);min-width:0}
#search{width:240px;max-width:100%}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:22px;perspective:900px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .3s;animation:pop .5s backwards;transform-style:preserve-3d}
.card:hover{box-shadow:0 18px 40px rgba(0,0,0,.18)}
@keyframes pop{from{opacity:0;transform:scale(.85) translateY(20px)}}
.sw{height:140px;display:grid;place-items:center;font-size:62px;position:relative;overflow:hidden}
.sw span{transition:transform .4s}.card:hover .sw span{transform:scale(1.3) rotate(-8deg)}
.tag{position:absolute;top:10px;left:10px;background:var(--sun);color:#14201D;font:700 12px "Bricolage Grotesque",sans-serif;padding:2px 10px;border-radius:999px}
.bd{padding:16px;display:flex;flex-direction:column;gap:6px;flex:1}
.card h3{margin:0;font-size:20px}.card p{margin:0;color:var(--muted);font-size:16px;line-height:1.45;flex:1}
.stars{color:var(--sun);font-size:14px;letter-spacing:2px}
.ft{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.price{font:700 20px "Bricolage Grotesque",sans-serif}
.card .btn{padding:8px 16px;font-size:14px}
.band{background:var(--pine);color:var(--on)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px;margin-top:32px}
.cols h3{margin:8px 0 6px;font-size:21px}.cols p{margin:0;opacity:.85}
.ico{display:inline-grid;place-items:center;width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.12);font-size:28px;transition:transform .4s}.cols div:hover .ico{transform:rotate(360deg) scale(1.1)}
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin-top:28px}
blockquote{margin:0;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px;transition:transform .3s}blockquote:hover{transform:translateY(-6px) rotate(-1deg)}
blockquote p{margin:0 0 12px}cite{font-style:normal;font-weight:700}
details{border-bottom:1px solid var(--line);padding:16px 0}
summary{font-weight:700;font-size:19px;cursor:pointer;list-style:none;display:flex;justify-content:space-between}
summary::after{content:"+";font-size:26px;line-height:1;transition:transform .3s}details[open] summary::after{transform:rotate(45deg)}
details p{margin:10px 0 0;color:var(--muted);animation:fade .4s}@keyframes fade{from{opacity:0;transform:translateY(-6px)}}
.news{background:var(--pine);color:var(--on);text-align:center}.news .sub{color:inherit;opacity:.85;margin-inline:auto}
#form{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}#form input{flex:1;min-width:220px;max-width:340px}
#msg{font:700 16px "Bricolage Grotesque",sans-serif;min-height:26px;margin:14px 0 0}
footer{padding:28px 0;color:var(--muted);font-size:15px}.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
aside{position:fixed;top:0;right:0;height:100%;width:min(390px,100%);background:var(--bg);border-left:1px solid var(--line);z-index:12;transform:translateX(100%);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;padding:20px}
aside.open{transform:none}aside .top{display:flex;justify-content:space-between;align-items:center}aside h2{font-size:28px;margin:0}
#ship{height:8px;border-radius:9px;background:var(--line);margin-top:16px;overflow:hidden}#bar{height:100%;width:0;background:var(--sun);transition:width .5s}
#shipTxt{margin:8px 0 0;font-size:15px}
#items{flex:1;overflow:auto;margin:10px 0}
.ln{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);animation:fade .3s}
.q{display:flex;align-items:center;gap:8px;margin-top:4px}.q button{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--ink);background:none;line-height:1}
.total{display:flex;justify-content:space-between;font:800 22px "Bricolage Grotesque",sans-serif;margin-bottom:12px}
#scrim{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:11;opacity:0;pointer-events:none;transition:opacity .3s}#scrim.open{opacity:1;pointer-events:auto}
#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,120px);background:var(--ink);color:var(--bg);padding:12px 22px;border-radius:999px;font:700 15px "Bricolage Grotesque",sans-serif;z-index:30;transition:transform .4s cubic-bezier(.2,1.4,.4,1)}#toast.show{transform:translate(-50%,0)}
#fx{position:fixed;inset:0;pointer-events:none;z-index:40}
@media(max-width:640px){.hide{display:none}.float{font-size:30px;opacity:.7}.marquee{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv,h1 span{opacity:1;transform:none}#glow{display:none}}
.catgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:28px}.catgrid a{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;text-decoration:none;display:flex;flex-direction:column;gap:6px;transition:transform .2s,box-shadow .2s}.catgrid a:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(0,0,0,.1)}.catgrid b{font-size:19px}.catgrid span,.card small{color:var(--muted)}.card small{font:700 12px "Bricolage Grotesque",sans-serif;text-transform:uppercase;letter-spacing:.06em}.tag{font-style:normal}.legal{padding-top:18px;border-top:1px solid var(--line);margin-top:18px;font-size:13px;line-height:1.5}.agegate{position:fixed;inset:0;z-index:100;background:rgba(10,18,16,.86);backdrop-filter:blur(12px);display:grid;place-items:center;padding:20px;transition:opacity .3s}.agegate.gone{opacity:0;pointer-events:none}.agebox{width:min(560px,100%);background:var(--bg);border:1px solid var(--line);border-radius:22px;padding:34px;box-shadow:0 30px 80px rgba(0,0,0,.35)}.agebox h2{margin-bottom:14px}.agebox p:not(.pill){color:var(--muted);margin-bottom:24px}@media(max-width:640px){.catgrid{grid-template-columns:1fr}.agebox{padding:24px}.stats{padding-top:42px}}

.sw img{width:100%;height:100%;object-fit:contain;background:#fff}.stars i{font-style:normal;color:var(--muted);letter-spacing:0;font-size:12px}.price del,.nuru-price del{font-size:.72em;color:var(--muted);font-weight:500;margin-left:5px}.nuru-feature{background:var(--alt)}.nuru-buy{display:grid;grid-template-columns:minmax(260px,1fr) 1fr;gap:34px;align-items:center;margin:28px 0}.nuru-buy>div:first-child{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.nuru-buy img{display:block;width:100%;max-height:420px;object-fit:contain}.nuru-buy h3{font-size:28px;margin:10px 0 4px}.nuru-price{font:800 28px "Bricolage Grotesque",sans-serif;margin:18px 0 3px}.nuru-price b{font-size:13px;background:var(--sun);color:#14201D;padding:4px 9px;border-radius:999px}.nuru-gallery{display:grid;grid-template-columns:1fr 1fr;gap:16px}.nuru-gallery img{width:100%;height:auto;border-radius:16px;border:1px solid var(--line);background:#fff}.nuru-gallery img:first-child{grid-column:1/-1}@media(max-width:700px){.nuru-buy,.nuru-gallery{grid-template-columns:1fr}.nuru-gallery img:first-child{grid-column:auto}}
.checkout{position:fixed;inset:0;z-index:95;background:rgba(10,18,16,.72);display:none;place-items:center;padding:18px}.checkout.open{display:grid}.checkoutbox{width:min(720px,100%);max-height:92vh;overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:22px;padding:26px;box-shadow:0 30px 80px rgba(0,0,0,.35)}.checkoutbox .top{display:flex;justify-content:space-between;align-items:center}.checkoutbox form{display:grid;gap:14px}.checkoutbox label{font-weight:700}.checkoutbox input,.checkoutbox select,.checkoutbox textarea{width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:12px;padding:12px;background:var(--card);color:var(--ink);font:inherit}.checkoutbox textarea{min-height:90px;resize:vertical}.checkoutgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ordersummary{background:var(--alt);border-radius:14px;padding:14px;white-space:pre-wrap;font-size:14px}.formnote{font-size:13px;color:var(--muted);line-height:1.45}@media(max-width:640px){.checkoutgrid{grid-template-columns:1fr}}

/* Full product image display: show the entire uploaded image without cropping. */
.sw{height:auto;min-height:220px;aspect-ratio:auto;padding:10px;background:#fff;overflow:visible}
.sw img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center;background:#fff}
@media(max-width:640px){.sw{min-height:0;padding:8px}.sw img{width:100%;height:auto;max-height:none}}

#cryptoOptions{padding:16px;border:1px solid #c7b7a4;border-radius:14px;margin:12px 0}#cryptoOptions[hidden],#qrBox[hidden]{display:none!important}#qrBox{text-align:center}#paymentReceipt{width:100%;padding:12px}