/* 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:34px;height:34px}
.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:#2c3f8f; margin:0 0 16px}
.manifesto p:last-child{margin-bottom:0}
.manifesto .sig{font-size:15px; font-family:"Outfit",sans-serif; color:var(--ink2); text-align:right}

/* 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}
.grid111{display:grid; grid-template-columns:repeat(auto-fill,minmax(122px,1fr)); gap:11px;
  max-height:640px; overflow-y:auto; padding:6px 8px 6px 2px}
.grid111::-webkit-scrollbar{width:9px}
.grid111::-webkit-scrollbar-thumb{background:var(--line); border-radius:9px}
.tile{position:relative; border:2px solid var(--ink); background:#fff; cursor:pointer; padding:0;
  aspect-ratio:1; overflow:hidden; border-radius:2px; transition:.15s}
.tile img{width:100%; height:100%; object-fit:contain; padding:6px; background:#fff}
.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:270px; margin:0 auto 14px; background:#fbf7ec; padding:10px; border-radius:3px}
.sparkcard .st{font-family:"Caveat",cursive; font-size:31px; color:#fff; line-height:1.15}
.sparkcard .sd{font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:#a394c4; margin-top:6px}
.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)}
.exgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:20px; margin-bottom:44px}
.ex{position:relative; padding:20px 16px 16px; text-align:center; background:var(--paper); box-shadow:var(--shadow)}
.ex img{height:112px; width:auto; margin:0 auto 12px; object-fit:contain}
.ex h4{font-family:"Caveat",cursive; font-size:24px; margin:0 0 3px}
.ex p{margin:0; font-size:13.5px; color:var(--ink2)}
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-size:34px; color:#fff}
footer p{color:#a99f8f; font-size:14px; max-width:56ch; margin:10px auto}
footer a{color:var(--yellow)}

@media (max-width:1000px){
  .hero .grid,.studio,.portal .pgrid{grid-template-columns:1fr}
  .stage{position:static}
  .steps{grid-template-columns:1fr}
  form.commish{grid-template-columns:1fr}
  .grid111{max-height:none}
}

/* ---------- 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:27px; height:27px}
  .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}
  .grid111{grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:8px}
  .pricebar{gap:12px; padding:15px 16px}
  .price{font-size:36px}
  .pricebar .btn{margin-left:0 !important; width:100%; justify-content:center}
  .exgrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px}
  form.commish{padding:22px}
  .sparkcard img{max-height:200px}
}
