/* Visionary Artifacts · Cosmic Bakery & Jokeshop */
:root{
  --paper:#fbf7ec; --paper2:#f4eddc; --ink:#241f1a; --ink2:#5b5148;
  --line:#d8cdb5;
  --magenta:#d81b8c; --purple:#7b3ea8; --violet:#a26fd6; --blue:#1f8fd0;
  --teal:#12a08e; --green:#7cc242; --yellow:#f5c518; --orange:#f07f22; --red:#e0342c;
  --wood:#e3caa4; --wood-dark:#b1885a;
  --shadow:0 18px 40px -22px rgba(50,35,15,.55);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"Outfit",ui-sans-serif,system-ui,sans-serif; font-size:17px; line-height:1.62;
  background-image:radial-gradient(circle at 12% 8%, rgba(226,209,175,.35), transparent 42%),
                   radial-gradient(circle at 88% 62%, rgba(214,196,232,.30), transparent 46%);
  overflow-x:hidden;
}
img{max-width:100%; display:block}
a{color:var(--purple)}
.hand{font-family:"Caveat",cursive; font-weight:700; line-height:1.05}
.wrap{width:min(1220px,92vw); margin-inline:auto}
.narrow{width:min(760px,92vw); margin-inline:auto}

/* ---------- hand-drawn frame ---------- */
.doodleframe{
  border:2.5px solid var(--ink);
  border-radius:255px 14px 225px 16px/16px 225px 14px 255px;
  background:var(--paper);
}
.tape{position:absolute; width:104px; height:30px; background:rgba(245,197,24,.55);
  border:1px dashed rgba(120,90,10,.35); transform:rotate(-4deg)}

/* ---------- nav ---------- */
header.nav{position:sticky; top:0; z-index:60; backdrop-filter:blur(9px);
  background:rgba(251,247,236,.82); border-bottom:2px solid var(--ink)}
.nav .wrap{display:flex; align-items:center; gap:18px; padding:11px 0}
.brand{display:flex; align-items:center; gap:10px; font-family:"Caveat",cursive; font-weight:700; font-size:25px; text-decoration:none; color:var(--ink)}
.brand .bolt{width:30px; height:auto}
.nav nav{margin-left:auto; display:flex; gap:20px; align-items:center; flex-wrap:wrap}
.nav nav a{color:var(--ink2); text-decoration:none; font-size:14.5px; font-weight:500}
.nav nav a:hover{color:var(--magenta)}
.cartbtn{display:inline-flex; align-items:center; gap:8px; border:2.5px solid var(--ink);
  background:var(--yellow); padding:7px 15px; font-weight:700; font-size:14.5px; cursor:pointer;
  border-radius:200px 12px 190px 14px/14px 190px 12px 200px; font-family:inherit; color:var(--ink)}
.cartbtn:hover{transform:rotate(-1deg)}
.cartbtn .cnt{background:var(--magenta); color:#fff; border-radius:99px; min-width:22px; padding:1px 6px; font-size:12px; text-align:center}

/* ---------- hero ---------- */
.hero{position:relative; padding:56px 0 40px; overflow:hidden}
.hero .grid{display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:center}
.eyewrap{position:relative}
.eyewrap img{filter:drop-shadow(0 22px 30px rgba(60,40,20,.28))}
.kicker{font-size:12.5px; letter-spacing:.20em; text-transform:uppercase; color:var(--ink2); font-weight:600}
h1.big{font-family:"Caveat",cursive; font-weight:700; font-size:clamp(52px,8.2vw,104px); margin:.06em 0 .04em; line-height:.92}
h1.big em{font-style:normal; color:var(--magenta)}
.sub{font-family:"Caveat",cursive; font-size:clamp(26px,3.3vw,38px); font-weight:700; color:var(--purple); margin:0 0 14px; transform:rotate(-1deg)}
.lede{font-size:18.5px; color:var(--ink2); max-width:52ch}
.cta-row{display:flex; gap:14px; flex-wrap:wrap; margin-top:26px}
.btn{display:inline-flex; align-items:center; gap:9px; cursor:pointer; font-family:inherit;
  border:2.5px solid var(--ink); padding:13px 24px; font-weight:700; font-size:16px; text-decoration:none; color:var(--ink);
  background:var(--paper); border-radius:220px 16px 200px 18px/18px 200px 16px 220px; transition:.16s}
.btn:hover{transform:translateY(-2px) rotate(-.7deg); box-shadow:5px 6px 0 var(--ink)}
.btn.primary{background:var(--magenta); color:#fff; border-color:var(--ink)}
.btn.lime{background:var(--green)}
.btn:disabled{opacity:.45; cursor:not-allowed; transform:none; box-shadow:none}

/* ---------- sections ---------- */
section{padding:74px 0; position:relative}
.sec-head{text-align:center; margin-bottom:38px}
h2{font-family:"Caveat",cursive; font-weight:700; font-size:clamp(38px,5.2vw,62px); margin:0 0 8px; line-height:1}
.sec-head p{color:var(--ink2); max-width:60ch; margin:0 auto}
.rule{width:min(560px,80vw); height:14px; margin:0 auto 34px; opacity:.5}

/* manifesto */
.manifesto{background:var(--paper2); border-block:2.5px solid var(--ink)}
.manifesto .card{position:relative; padding:44px 46px; box-shadow:var(--shadow)}
.manifesto p{font-family:"Caveat",cursive; font-size:27px; line-height:1.42; color:var(--purple); margin:0 0 16px}
.manifesto p:last-child{margin-bottom:0}
.manifesto .sig{font-family:"Caveat",cursive; font-weight:700; font-size:42px; line-height:1;
  color:var(--purple); text-align:right; margin-top:26px; padding-right:12px;
  transform:rotate(-3deg); transform-origin:right center;
  -webkit-text-stroke:.75px var(--purple)}

/* steps */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:26px}
.step{position:relative; padding:30px 24px 26px; text-align:center; box-shadow:var(--shadow)}
.step .num{position:absolute; top:-19px; left:50%; transform:translateX(-50%);
  width:42px; height:42px; border:2.5px solid var(--ink); border-radius:50%; background:var(--yellow);
  display:grid; place-items:center; font-family:"Caveat",cursive; font-weight:700; font-size:25px}
.step h3{font-family:"Caveat",cursive; font-size:29px; margin:10px 0 6px}
.step p{margin:0; font-size:15.5px; color:var(--ink2)}

/* ---------- creator ---------- */
.creator{background:linear-gradient(180deg,var(--paper),#f6efe0)}
.studio{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.02fr); gap:38px; align-items:start}
.stage{position:sticky; top:82px}
.blockwrap{display:grid; place-items:center; padding:30px 10px 22px;
  background:radial-gradient(ellipse at 50% 62%, rgba(180,150,110,.24), transparent 66%)}
.flipshell{position:relative; max-width:100%; perspective:1600px; transition:.28s cubic-bezier(.2,.8,.3,1)}
.flipper{position:relative; width:100%; height:100%; transform-style:preserve-3d;
  transition:transform .78s cubic-bezier(.3,.9,.3,1)}
.flipper.flipped{transform:rotateY(180deg)}
.face{position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden}
.face.back{transform:rotateY(180deg)}
.woodblock{isolation:isolate;
  box-shadow:0 2px 0 #a87f52, 0 4px 0 #96703f, 0 6px 0 #8a6538, 0 8px 0 #7d5a30,
             0 26px 44px -16px rgba(60,40,15,.55);
  border-radius:3px; overflow:hidden}
.face.back .grain{filter:brightness(.965) saturate(.9)}
.backnote{position:absolute; z-index:4; left:50%; bottom:12%; transform:translateX(-50%);
  font-family:"Caveat",cursive; font-size:19px; color:#6b5030; opacity:.8; white-space:nowrap}
.flipbtn{border:2px solid var(--ink); background:var(--paper); cursor:pointer; font-family:inherit;
  font-size:12.5px; font-weight:600; padding:5px 13px; margin:7px 0 5px;
  border-radius:190px 12px 180px 13px/13px 180px 12px 190px}
.flipbtn:hover{background:var(--yellow)}
.teaser{text-align:center; font-family:"Caveat",cursive; font-size:26px; margin:30px 0 0; color:var(--ink2)}
.teaser a{color:var(--magenta)}
.woodblock .grain{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0}
.woodblock .artimg{position:relative; z-index:1; width:100%; height:100%; object-fit:contain;
  mix-blend-mode:multiply; padding:7%; opacity:.94}
.woodblock .sheen{position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(115deg, rgba(255,255,255,.34) 0%, rgba(255,255,255,0) 34%, rgba(255,255,255,0) 66%, rgba(120,85,40,.14) 100%)}
.woodblock .nfc{position:absolute; z-index:3; left:50%; top:44%; translate:-50% -50%; width:44%; max-width:190px;
  filter:drop-shadow(0 2px 5px rgba(255,255,255,.8)) drop-shadow(0 6px 12px rgba(60,40,15,.4));
  cursor:pointer; transition:.2s; animation:nfcpulse 3.4s ease-in-out infinite}
@keyframes nfcpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
.woodblock .nfc:hover{scale:1.07; rotate:6deg}
.blockcap{text-align:center; font-size:13.5px; color:var(--ink2); margin-top:16px}
.blockcap b{color:var(--ink)}

.opts{margin-top:8px}
.optrow{margin-bottom:22px}
.optrow > label{display:block; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:var(--ink2); margin-bottom:9px}
.chips{display:flex; flex-wrap:wrap; gap:9px}
.chip{border:2px solid var(--ink); background:var(--paper); padding:8px 14px; cursor:pointer;
  font-family:inherit; font-size:14.5px; font-weight:600; color:var(--ink);
  border-radius:200px 12px 190px 13px/13px 190px 12px 200px; transition:.14s}
.chip:hover{background:#fff}
.chip[aria-pressed="true"]{background:var(--violet); color:#fff; border-color:var(--ink); transform:rotate(-1deg)}
.chip small{display:block; font-weight:500; opacity:.72; font-size:11.5px}
.pricebar{display:flex; align-items:center; gap:16px; flex-wrap:wrap; padding:18px 20px; margin-top:6px;
  border:2.5px dashed var(--ink); border-radius:210px 16px 200px 18px/18px 200px 16px 210px; background:#fff8e6}
.price{font-family:"Caveat",cursive; font-weight:700; font-size:44px; line-height:1}
.price small{font-family:"Outfit",sans-serif; font-size:13px; font-weight:500; color:var(--ink2); display:block}
.qty{display:flex; align-items:center; border:2px solid var(--ink); border-radius:99px; overflow:hidden}
.qty button{width:34px; height:34px; border:0; background:var(--paper); cursor:pointer; font-size:18px; font-family:inherit}
.qty button:hover{background:var(--yellow)}
.qty span{min-width:34px; text-align:center; font-weight:700}

/* picker */
.pickerhead{display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:14px}
.search{flex:1; min-width:190px; border:2.5px solid var(--ink); background:#fff; padding:11px 16px;
  font-family:inherit; font-size:15px; border-radius:200px 14px 190px 15px/15px 190px 14px 200px}
.search:focus{outline:none; border-color:var(--magenta)}
.count{font-size:13.5px; color:var(--ink2); white-space:nowrap}
.sparkgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(122px,1fr)); gap:11px;
  align-content:start; grid-auto-rows:max-content;   /* a short search result must not stretch tiles tall */
  max-height:min(640px,74vh); min-height:340px; overflow-y:auto; padding:6px 8px 6px 2px;
  overscroll-behavior:contain}
.sparkgrid::-webkit-scrollbar{width:9px}
.sparkgrid::-webkit-scrollbar-thumb{background:var(--line); border-radius:9px}
/* The IMG is the square (aspect-ratio on the img, in normal flow), never the tile:
   - aspect-ratio on the overflow:hidden tile let iPhone Safari crush tiles to slivers
   - an absolutely positioned img left ~20px of phantom page width in Chrome once the
     thumbnails loaded, so the phone page slid sideways
   - an img sized height:100% grew tiles tall once a portrait thumbnail loaded */
.tile{position:relative; border:2px solid var(--ink); background:#fff; cursor:pointer; padding:0;
  overflow:hidden; border-radius:2px; transition:.15s; display:grid; width:100%}
.tile img{display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; padding:6px; background:#fff}
.tile .no,.tile .tt{z-index:1}
.tile:hover{transform:translateY(-3px) rotate(-1deg); box-shadow:4px 5px 0 var(--ink)}
.tile[aria-pressed="true"]{border-color:var(--magenta); border-width:3.5px; box-shadow:0 0 0 3px rgba(216,27,140,.2)}
.tile .no{position:absolute; left:3px; top:2px; font-size:9.5px; color:#9a9086; font-weight:600}
.tile .tt{position:absolute; inset:auto 0 0 0; background:rgba(36,31,26,.86); color:#fff;
  font-size:10.5px; padding:4px 5px; line-height:1.25; opacity:0; transition:.15s;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.tile:hover .tt{opacity:1}

/* ---------- portal ---------- */
.portal{background:#171226; color:#f0e9dc; border-block:2.5px solid #000}
.portal h2{color:#fff}
.portal .sec-head p{color:#bdb2c9}
.portal .pgrid{display:grid; grid-template-columns:.95fr 1.05fr; gap:46px; align-items:center}
.slothstage{position:relative; display:grid; place-items:center; padding:14px}
.slothbtn{position:relative; width:min(330px,74vw); aspect-ratio:1; background:none; border:0; cursor:pointer; padding:0}
.slothbtn img{width:100%; filter:drop-shadow(0 0 34px rgba(180,140,255,.42))}
.slothbtn:hover img{filter:drop-shadow(0 0 46px rgba(210,160,255,.6))}
.slothbtn .ring{position:absolute; inset:-6%; border:2px dashed rgba(190,160,255,.45); border-radius:50%; animation:spin 26s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.tapcue{font-family:"Caveat",cursive; font-size:23px; color:#c9b6f2; margin-top:6px}
.sparkcard{border:2.5px solid #40325e; background:#1f1834; padding:24px; border-radius:6px; min-height:280px;
  display:grid; place-items:center; text-align:center}
.sparkcard .inner{display:none}
.sparkcard.on .inner{display:block; animation:pop .5s cubic-bezier(.2,1.3,.4,1)}
.sparkcard.on .empty{display:none}
@keyframes pop{from{opacity:0; transform:scale(.9) rotate(-2deg)}to{opacity:1; transform:none}}
.sparkcard .empty{color:#8d81a3; font-family:"Caveat",cursive; font-size:25px}
.sparkcard img{max-height:330px; margin:0 auto; background:#fbf7ec; padding:12px; border-radius:3px;
  box-shadow:0 14px 34px -14px rgba(0,0,0,.6)}
.portal ul.beats{list-style:none; padding:0; margin:22px 0 0}
.portal ul.beats li{padding-left:30px; position:relative; margin-bottom:13px; color:#d6cde0; font-size:16px}
.portal ul.beats li::before{content:"⚡"; position:absolute; left:0; top:0; color:var(--yellow)}

/* ---------- commission ---------- */
.commission{background:var(--paper2); border-block:2.5px solid var(--ink)}
.subhead{font-family:"Caveat",cursive; font-size:clamp(30px,3.6vw,42px); text-align:center;
  margin:0 0 30px; color:var(--ink)}

/* the artifact in the wild, its own beat before the commission pitch */
.onthedesk{background:linear-gradient(180deg,var(--paper),#f3ecdd); padding:66px 0}
.inwild{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:36px;
  align-items:center; padding:26px; margin:0; background:var(--paper); box-shadow:var(--shadow)}
.inwild img{width:100%; border-radius:2px; box-shadow:0 16px 34px -18px rgba(60,40,15,.6)}
.inwild figcaption h4{font-family:"Caveat",cursive; font-size:clamp(32px,4vw,46px); margin:0 0 10px}
.inwild figcaption p{margin:0; font-size:17px; color:var(--ink2); max-width:44ch}

/* commissioned work: a compact card grid (Yanik prefers these small) */
.works{display:grid; grid-template-columns:repeat(auto-fit,minmax(288px,1fr)); gap:20px; margin-bottom:10px}
.work{display:flex; flex-direction:column; padding:16px 16px 18px; background:var(--paper);
  box-shadow:var(--shadow); border:2.5px solid var(--ink);
  border-radius:255px 14px 225px 16px/16px 225px 14px 255px}
.work.flip .workimg{order:0}
.workimg img{width:100%; height:186px; object-fit:contain; background:#fff;
  border:1px solid rgba(0,0,0,.08); border-radius:2px; padding:7px}
.work.tall .workimg img{height:320px}
.workcopy h4{font-family:"Caveat",cursive; font-size:27px; margin:13px 0 6px; line-height:1.05}
.workcopy{display:flex; flex-direction:column; flex:1}
.workcopy > p{margin:0; font-size:13.5px; color:var(--ink2); line-height:1.55}
.testi{margin:13px 0 0; padding:0}
.testi.quote{position:relative; background:#fff; border:2px solid var(--ink);
  border-radius:200px 14px 190px 16px/16px 190px 14px 200px; padding:12px 15px 10px;
  box-shadow:3px 4px 0 var(--ink)}
.testi.quote::before{content:""; position:absolute; top:-9px; left:34px; width:15px; height:15px;
  background:#fff; border-left:2px solid var(--ink); border-top:2px solid var(--ink);
  transform:rotate(45deg)}
.testi.quote p{font-family:"Caveat",cursive; font-size:18px; line-height:1.26;
  color:var(--purple); margin:0 0 6px}
.testi.quote cite{font-style:normal; font-size:12.5px; color:var(--ink2); font-weight:700;
  letter-spacing:.03em}
/* Randy's clip sits in its own column beside Go Big, pointed at by a drawn arrow */
.randycell{display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:6px 4px}
.randylabel{display:flex; align-items:flex-start; gap:2px; align-self:flex-start;
  margin:0 0 2px 6px; color:var(--magenta)}
.rlab{font-family:"Caveat",cursive; font-weight:700; font-size:29px; line-height:1;
  transform:rotate(-4deg); white-space:nowrap; padding-top:10px}
.rarrow{width:74px; height:60px; flex:none; margin-top:-4px}
.testi.vid{margin:0}
.testi.vid video{width:100%; max-width:236px; aspect-ratio:9/16; height:auto; border-radius:5px;
  background:#000; display:block; border:2.5px solid var(--ink); box-shadow:4px 5px 0 var(--ink)}
.testi.vid figcaption{margin-top:10px; font-family:"Caveat",cursive; font-size:20px;
  color:var(--ink2); line-height:1.2; text-align:center}
.formhead{margin-top:56px}
form.commish{display:grid; grid-template-columns:1fr 1fr; gap:16px; padding:32px; box-shadow:var(--shadow)}
form.commish .full{grid-column:1/-1}
form.commish label{display:block; font-size:12.5px; letter-spacing:.13em; text-transform:uppercase; font-weight:600; color:var(--ink2); margin-bottom:6px}
form.commish input,form.commish textarea,form.commish select{width:100%; border:2px solid var(--ink); background:#fff;
  padding:11px 14px; font-family:inherit; font-size:15px; border-radius:3px}
form.commish textarea{min-height:118px; resize:vertical}
form.commish input:focus,form.commish textarea:focus,form.commish select:focus{outline:none; border-color:var(--magenta)}
.formnote{font-size:13px; color:var(--ink2); margin:0}

/* ---------- cart drawer ---------- */
.scrim{position:fixed; inset:0; background:rgba(30,22,12,.5); z-index:90; opacity:0; pointer-events:none; transition:.22s}
.scrim.on{opacity:1; pointer-events:auto}
.drawer{position:fixed; top:0; right:0; height:100%; width:min(430px,94vw); background:var(--paper);
  border-left:2.5px solid var(--ink); z-index:100; transform:translateX(102%); transition:.28s cubic-bezier(.2,.8,.3,1);
  display:flex; flex-direction:column}
.drawer.on{transform:none}
.drawer h3{font-family:"Caveat",cursive; font-size:34px; margin:0}
.drawer .dh{display:flex; align-items:center; padding:18px 22px; border-bottom:2.5px solid var(--ink)}
.drawer .dh button{margin-left:auto; border:0; background:none; font-size:26px; cursor:pointer; line-height:1}
.lines{flex:1; overflow-y:auto; padding:18px 22px}
.line{display:grid; grid-template-columns:70px 1fr auto; gap:13px; padding:13px 0; border-bottom:1.5px dashed var(--line)}
.line .lw{position:relative; isolation:isolate; border:1.5px solid var(--ink); overflow:hidden; aspect-ratio:1}
.line .lw img.g{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.line .lw img.a{position:relative; width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; padding:8%}
.line b{display:block; font-size:14.5px; line-height:1.3}
.line small{color:var(--ink2); font-size:12.5px}
.line .rm{border:0; background:none; color:#b03; cursor:pointer; font-size:12px; padding:0; text-decoration:underline}
.dfoot{border-top:2.5px solid var(--ink); padding:20px 22px}
.dfoot .tot{display:flex; justify-content:space-between; font-weight:700; font-size:19px; margin-bottom:6px}
.dfoot .ship{display:flex; justify-content:space-between; font-size:13.5px; color:var(--ink2); margin-bottom:14px}
.dfoot .btn{width:100%; justify-content:center}
.empty-cart{text-align:center; color:var(--ink2); font-family:"Caveat",cursive; font-size:24px; padding:44px 10px}

/* ---------- sloth guide ---------- */
.guide{position:fixed; right:18px; bottom:18px; flex-direction:row-reverse; z-index:80; display:flex; align-items:flex-end; gap:9px; pointer-events:auto}
.guide img{width:58px; filter:drop-shadow(0 6px 12px rgba(60,40,15,.35)); animation:bob 4.6s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(2deg)}}
.bubble{background:#fff; border:2.5px solid var(--ink); padding:9px 14px; max-width:210px;
  font-family:"Caveat",cursive; font-size:19px; line-height:1.2; pointer-events:none;
  border-radius:200px 16px 190px 18px/18px 190px 16px 200px; box-shadow:3px 4px 0 var(--ink);
  opacity:0; transform:translateY(6px) scale(.94); transition:.24s cubic-bezier(.2,1.2,.4,1)}
.bubble.on{opacity:1; transform:none}
@media (max-width:900px){ .guide{display:none} }

/* footer */
footer{background:var(--ink); color:#e8ddc9; padding:52px 0 34px; text-align:center}
footer .f{font-family:"Caveat",cursive; font-weight:700; font-size:clamp(30px,4.6vw,50px); color:#fff; line-height:1.1; margin:0}
footer .latin{font-family:"Caveat",cursive; font-size:clamp(20px,2.6vw,28px); color:var(--yellow);
  font-style:italic; margin:8px auto 20px; letter-spacing:.01em}
footer .bakery{font-family:"Caveat",cursive; font-size:26px; color:#cbbfa9; margin:0 auto 6px}
footer p{color:#a99f8f; font-size:14px; max-width:56ch; margin:10px auto}
footer a{color:var(--yellow)}

/* ---------- picker strip + sheet (phones and tablets) ---------- */
.mobile-only{display:none}
.sheethead{display:none}
.striprow{min-width:0}
/* the pulsing ring around the Cosmic Sloth button pokes ~10px past a phone's edge
   mid-pulse; clip it at the section (clip makes no scroll box, so nothing else changes) */
.portal{overflow-x:clip}
.strip{position:relative; width:100%; min-width:0; max-width:100%; contain:inline-size; display:grid; grid-auto-flow:column; grid-template-rows:repeat(2,76px); grid-auto-columns:76px;
  gap:8px; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; scroll-snap-type:x proximity;
  padding:4px 2px 10px; scrollbar-width:none; -webkit-overflow-scrolling:touch}
.strip::-webkit-scrollbar{display:none}
.strip .tile{scroll-snap-align:start}
.strip .tile:hover{transform:none; box-shadow:none}
.strip .tile .no{font-size:9px}
.strip .tile .tt{display:none}
.swipehint{text-transform:none; letter-spacing:0; font-family:"Caveat",cursive; font-size:19px; font-weight:700;
  color:var(--magenta); margin-left:6px}
.allbtn{font-size:13.5px; padding:7px 15px}
body.sheet-open{overflow:hidden}

@media (max-width:1000px){
  .hero .grid,.studio,.portal .pgrid{grid-template-columns:1fr}
  /* minmax(0,…) so the wide swipe strip scrolls instead of stretching the column */
  .studio{grid-template-columns:minmax(0,1fr)}
  .stage{position:static; min-width:0}
  .mobile-only{display:block}
  .striprow{margin:14px 0 20px}
  .picker{display:none}
  .picker.sheet{display:flex; flex-direction:column; position:fixed; inset:0; z-index:95; background:var(--paper);
    padding:12px 14px 0}
  .picker.sheet .sheethead{display:flex; align-items:center; margin-bottom:8px}
  .sheethead h3{font-family:"Caveat",cursive; font-size:32px; margin:0; line-height:1}
  .sheethead button{margin-left:auto; border:0; background:none; font-size:34px; line-height:1; cursor:pointer; padding:2px 8px; color:var(--ink)}
  .picker.sheet .sparkgrid{flex:1; max-height:none; min-height:0; padding-bottom:30px}
  .blockwrap{padding:14px 6px 12px}
  .blockcap{margin-top:8px}
  .studio{gap:0}
  .steps{grid-template-columns:1fr}
  form.commish{grid-template-columns:1fr}
}

/* ---------- small screens ---------- */
@media (max-width:760px){
  body{font-size:16px}
  .nav .wrap{gap:10px; padding:9px 0}
  .brand{font-size:21px; white-space:nowrap}
  .brand .bolt{width:25px; height:auto}
  .nav nav a{display:none}                 /* section links collapse; page is a single scroll */
  .cartbtn{padding:6px 12px; font-size:13.5px}
  .hero{padding:34px 0 26px}
  .hero .grid{gap:26px}
  section{padding:52px 0}
  .manifesto .card{padding:30px 24px}
  .manifesto p{font-size:23px}
  .pickerhead{gap:9px}
  .sparkgrid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:8px;
    max-height:min(520px,62vh); min-height:300px}
  .pricebar{gap:12px; padding:15px 16px}
  .price{font-size:36px}
  .pricebar .btn{margin-left:0 !important; width:100%; justify-content:center}
  .inwild{grid-template-columns:1fr; gap:18px; padding:18px}
  .works{grid-template-columns:1fr}
  .randycell{padding:4px 0 0}
  .randylabel{align-self:center; margin-left:0}
  .workimg img{height:200px}
  .onthedesk{padding:44px 0}
  form.commish{padding:22px}
  .sparkcard img{max-height:200px}
}

/* ---------- checkout bits in the cart ---------- */
.dfoot .shipto{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px;
  font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:var(--ink2)}
.dfoot .shipto select{flex:1; max-width:220px; border:2px solid var(--ink); background:#fff; padding:7px 10px;
  font-family:inherit; font-size:14.5px; font-weight:600; color:var(--ink); border-radius:6px; letter-spacing:0; text-transform:none}
.dfoot .ship{margin-bottom:5px}
.dfoot .tot{margin:10px 0 4px; padding-top:8px; border-top:1.5px dashed var(--line)}
.dfoot .stickernote{font-size:12.5px; color:var(--ink2); margin:0 0 14px; line-height:1.45}
.dfoot .payerr{color:#b03; font-size:13.5px; margin:10px 0 0; min-height:0}
.dfoot .payerr:empty{display:none}

/* ---------- "almost ready" mode: until admin > Settings > Taking orders is on ---------- */
.soon{display:none}
body.store-closed .soon{display:block; margin-top:14px; padding:16px 18px; border:2.5px solid var(--ink); background:#fff;
  border-radius:16px 200px 14px 190px/190px 14px 200px 16px}
body.store-closed #addBtn, body.store-closed .qty, body.store-closed #cartBtn{display:none}
.soonhead{margin:0 0 8px}
.soonbadge{display:inline-block; background:var(--yellow); border:2px solid var(--ink); padding:3px 12px; font-weight:700;
  font-size:13.5px; letter-spacing:.03em; border-radius:99px; transform:rotate(-1.5deg)}
.soontext{margin:0 0 12px; font-size:15px; color:var(--ink2); line-height:1.5}
.soonpick{font-weight:600; color:var(--ink)}
.notify{display:flex; gap:9px; flex-wrap:wrap; position:relative}
.notify input[type=email]{flex:1; min-width:190px; border:2px solid var(--ink); background:#fff; padding:10px 13px;
  font-family:inherit; font-size:15px; border-radius:8px}
.notify input[type=email]:focus{outline:none; border-color:var(--magenta)}
.notify .btn{padding:10px 18px; font-size:15px}
.soon .formnote{margin-top:10px}
.soon .formnote:empty{display:none}
/* honeypot fields: invisible to people, irresistible to bots */
/* !important because form.commish input{width:100%} outranks a plain class, and a
   100%-wide absolute input made the phone page 40px wider than the screen */
form.commish, .notify{position:relative}
input.hp{position:absolute !important; left:0; top:0; width:1px !important; height:1px !important; min-width:0 !important;
  padding:0 !important; border:0 !important; margin:0 !important; overflow:hidden; clip-path:inset(50%); opacity:0; pointer-events:none}
