:root{--paper:#FBF6EE;--cream:#F3E9D8;--ink:#2A1D15;--muted:#7a6656;--tom:#C8341F;--tom2:#a8281a;--basil:#2E6B3B;--crust:#D99A4E;--oven:#160F0B;--gold:#E7B75F;--line:#e4d6c1;--r:18px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',system-ui,sans-serif;background:var(--paper);color:var(--ink);line-height:1.6;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
img,svg{display:block}
h1,h2,h3{font-family:'Playfair Display',Georgia,serif;line-height:1.08;font-weight:700}
h1 em,h2 em,h3 em{font-style:italic;font-weight:500;color:var(--tom)}
.hand{font-family:'Caveat',cursive}
.wrap{width:min(1180px,92%);margin:0 auto}
section{padding:110px 0;position:relative}
.k{display:inline-block;font-family:'Caveat',cursive;font-size:1.6rem;color:var(--tom);line-height:1;margin-bottom:8px}
.sh{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:46px;flex-wrap:wrap}
.sh h2{font-size:clamp(2.2rem,4.6vw,3.8rem)}
.sh p{max-width:420px;color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;font-weight:700;transition:transform .2s,box-shadow .2s,background .2s}
.btn-r{background:var(--tom);color:#fff;box-shadow:0 10px 24px -10px rgba(200,52,31,.7)}
.btn-r:hover{transform:translateY(-3px);background:var(--tom2)}
.btn-o{border:2px solid var(--ink)}
.btn-o:hover{background:var(--ink);color:var(--paper)}
.btn[disabled]{opacity:.4;pointer-events:none}
.tri{height:5px;background:linear-gradient(90deg,#2E8B47 0 33.3%,#fff 0 66.6%,#C8341F 0)}

/* header */
header{position:sticky;top:0;z-index:100;background:rgba(251,246,238,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px;gap:20px}
.logo{font-family:'Playfair Display',serif;font-style:italic;font-size:1.55rem;font-weight:600;line-height:1}
.logo small{display:block;font-family:'DM Sans';font-style:normal;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--tom);font-weight:700;margin-top:3px}
.menu{display:flex;gap:30px}
.menu a{font-weight:600;font-size:.95rem;position:relative;padding:6px 0}
.menu a:after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--tom);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.menu a:hover:after,.menu a.on:after{transform:scaleX(1)}
.menu a.on{color:var(--tom)}
.hr{display:flex;gap:10px;align-items:center}
.cartb{position:relative;display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:999px;background:var(--ink);color:var(--paper);font-weight:700;font-size:.9rem}
.cartb .n{min-width:22px;height:22px;border-radius:50%;background:var(--tom);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem}
.cartb.bump{animation:bump .5s}
@keyframes bump{30%{transform:scale(1.18) rotate(-4deg)}60%{transform:scale(.95)}}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);font-size:1.2rem}
.mnav{display:none}

/* flour cursor */
#flour{position:fixed;inset:0;pointer-events:none;z-index:300}

/* intro oven */
#oven{position:fixed;inset:0;z-index:500;background:radial-gradient(ellipse at 50% 60%,#2a1810,#0c0806 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f5e6d0;user-select:none;-webkit-user-select:none;touch-action:none;cursor:pointer}
#oven .ttl{font-family:'Playfair Display';font-size:clamp(2rem,5vw,3.6rem);text-align:center;line-height:1.05}
#oven .ttl em{color:var(--gold)}
#oven .sub{font-family:'Caveat';font-size:1.6rem;color:#e9b77a;margin-top:6px}
.arch{position:relative;width:min(420px,78vw);aspect-ratio:1.25;margin:26px 0 18px}
.arch .brick{position:absolute;inset:0;border-radius:50% 50% 0 0/60% 60% 0 0;background:repeating-linear-gradient(0deg,#5a2a1a 0 22px,#3a1a10 22px 25px),#5a2a1a;box-shadow:inset 0 0 0 10px #4a2214,0 30px 60px -10px #000}
.arch .brick:before{content:'';position:absolute;inset:0;border-radius:inherit;background:repeating-linear-gradient(90deg,transparent 0 46px,#3a1a10 46px 49px);mask:repeating-linear-gradient(0deg,#000 0 22px,transparent 22px 25px)}
.arch .mouth{position:absolute;left:18%;right:18%;bottom:0;height:62%;border-radius:50% 50% 0 0/80% 80% 0 0;background:#050302;overflow:hidden;box-shadow:inset 0 0 30px #000}
.arch canvas{position:absolute;inset:0;width:100%;height:100%}
.arch .glow{position:absolute;left:10%;right:10%;bottom:-20%;height:60%;background:radial-gradient(ellipse,rgba(255,140,40,var(--g,0)),transparent 70%);filter:blur(10px);pointer-events:none}
.therm{width:min(360px,74vw);height:14px;border-radius:99px;background:#2b1a12;overflow:hidden;border:1px solid #4a2a1c}
.therm i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ffcf5a,#ff7a1a,#e0301a);transition:width .25s}
.tmp{font-family:'Playfair Display';font-size:2rem;margin-top:10px;font-variant-numeric:tabular-nums}
#oven .hint{margin-top:6px;color:#b99a7d;font-size:.95rem}
#oven .skip{position:absolute;top:22px;right:22px;padding:9px 16px;border:1px solid #5a3a2a;border-radius:999px;font-size:.8rem;letter-spacing:.1em;color:#d8c2a6}
.log{position:fixed;font-size:2.4rem;pointer-events:none;z-index:510;transition:transform .55s cubic-bezier(.3,.1,.4,1),opacity .55s}
#oven.ready .ttl{animation:pulse 1s infinite}
#oven.out{animation:ovout 1s cubic-bezier(.7,0,.3,1) forwards}
@keyframes ovout{to{opacity:0;transform:scale(5);visibility:hidden}}
@keyframes pulse{50%{transform:scale(1.05)}}

/* hero */
.hero{padding:70px 0 40px;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.hero h1{font-size:clamp(3rem,7.4vw,6.4rem)}
.hero h1 .w{display:inline-block;transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.hero h1 .w:hover{transform:translateY(-10px) rotate(-4deg);color:var(--tom)}
.hero p{font-size:1.15rem;color:var(--muted);max-width:520px;margin:22px 0 30px}
.btns{display:flex;gap:12px;flex-wrap:wrap}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.chips span{padding:8px 14px;border-radius:999px;background:var(--cream);font-size:.85rem;font-weight:600}
.spin-pizza{position:relative;aspect-ratio:1;max-width:520px;width:100%;margin-left:auto}
.spin-pizza svg{width:100%;height:100%;filter:drop-shadow(0 30px 40px rgba(60,30,10,.35))}
.spin-pizza .board{position:absolute;inset:-4%;border-radius:50%;background:radial-gradient(circle,#c9925a 0 60%,#a8743f 61% 64%,#c9925a 65%);box-shadow:0 30px 60px -20px rgba(60,30,10,.6)}
.spin-pizza .board:after{content:'';position:absolute;right:-22%;top:44%;width:26%;height:12%;border-radius:0 30px 30px 0;background:#b07a45}
.spin-pizza .rot{position:absolute;inset:0;transition:transform .1s linear}
.steam{position:absolute;inset:0;pointer-events:none}
.steam i{position:absolute;bottom:50%;width:14px;height:90px;border-radius:50%;border-left:4px solid rgba(255,255,255,.75);filter:blur(3px);animation:steam 3s infinite ease-in;opacity:0}
@keyframes steam{0%{transform:translateY(20px) scaleX(1);opacity:0}30%{opacity:.8}100%{transform:translateY(-120px) scaleX(-1.4);opacity:0}}

/* scroll build */
.build{height:420vh;padding:0;background:var(--oven);color:#f5e6d0}
.build .stick{position:sticky;top:0;height:100vh;display:flex;align-items:center;overflow:hidden;padding-top:74px}
.build .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:center}
.steps{list-style:none;display:grid;gap:14px}
.steps li{padding:13px 20px;border-radius:14px;border:1px solid #3a2a20;opacity:.35;transition:opacity .4s,background .4s,transform .4s}
.steps li.on{opacity:1;background:#24170f;transform:translateX(10px);border-color:var(--gold)}
.steps li b{display:block;font-family:'Playfair Display';font-size:1.35rem}
.steps li span{font-size:.9rem;color:#c9b096}
.build h2{font-size:clamp(2rem,4vw,3.2rem);margin-bottom:22px}
.build h2 em{color:var(--gold)}
.bpz{position:relative;width:min(560px,100%);aspect-ratio:1;margin:auto}
.bpz svg{width:100%;height:100%}
.bpz .heat{position:absolute;inset:-10%;border-radius:50%;background:radial-gradient(circle,rgba(255,120,30,.45),transparent 65%);opacity:var(--heat,0);pointer-events:none}
.bpz .temp{position:absolute;right:0;top:4%;font-family:'Playfair Display';font-size:2.4rem;color:var(--gold);opacity:var(--heat,0);font-variant-numeric:tabular-nums}
.bpz .temp small{display:block;font-family:'DM Sans';font-size:.75rem;letter-spacing:.2em;color:#c9b096}
.prog{position:absolute;left:0;right:0;bottom:0;height:4px;background:#2b1d15}
.prog i{display:block;height:100%;width:0;background:var(--gold)}
.drop{transition:transform .5s cubic-bezier(.3,1.5,.5,1),opacity .3s}
.drop.up{transform:translateY(-140px) scale(1.3);opacity:0}

/* cheese pull */
.pull{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.pullbox{position:relative;aspect-ratio:1;max-width:520px;width:100%;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.pullbox svg{width:100%;height:100%;overflow:visible}
#slice{cursor:grab;touch-action:none}
#slice.drag{cursor:grabbing}
.pullhint{position:absolute;left:62%;top:8%;font-family:'Caveat';font-size:1.6rem;color:var(--tom);transform:rotate(-6deg);pointer-events:none;transition:opacity .3s}
.pullhint:after{content:'↙';display:block;font-size:2rem;margin-left:10px}
.pmeter{font-family:'Playfair Display';font-size:3.2rem;color:var(--tom);font-variant-numeric:tabular-nums}
.pmeter small{font-family:'DM Sans';font-size:.9rem;color:var(--muted)}

/* dough */
.dough{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.bowl{position:relative;width:min(420px,100%);aspect-ratio:1.2;margin:auto;cursor:pointer}
.bowl .b{position:absolute;left:0;right:0;bottom:0;height:48%;border-radius:0 0 50% 50%/0 0 100% 100%;background:linear-gradient(#e9e2d6,#cfc4b2);box-shadow:inset 0 10px 0 #f6f1e8,0 30px 40px -20px rgba(60,30,10,.5);z-index:2}
.bowl .d{position:absolute;left:12%;right:12%;bottom:30%;height:60%;border-radius:50% 50% 45% 45%;background:radial-gradient(circle at 40% 30%,#fffaf0,#f1dfbf 60%,#e2c99c);transform-origin:50% 100%;transform:scale(var(--s,.55));transition:transform .2s;z-index:1}
.bowl .d i{position:absolute;border-radius:50%;background:rgba(200,170,120,.35);box-shadow:inset 1px 1px 2px rgba(0,0,0,.15)}
.bowl.poke .d{animation:poke .6s}
@keyframes poke{20%{transform:scale(calc(var(--s) * 1.08),calc(var(--s) * .86))}50%{transform:scale(calc(var(--s) * .95),calc(var(--s) * 1.06))}}
.hrs{font-family:'Playfair Display';font-size:clamp(4rem,10vw,7rem);line-height:1;color:var(--tom);font-variant-numeric:tabular-nums}
.hrs small{font-size:.3em;color:var(--muted)}

/* quote */
.quote{background:var(--cream);text-align:center}
.quote blockquote{font-family:'Caveat';font-size:clamp(2rem,4.4vw,3.6rem);line-height:1.2;max-width:900px;margin:0 auto}
.quote blockquote span{clip-path:inset(0 100% 0 0);display:inline;transition:clip-path 2.4s steps(40)}
.quote.in blockquote span{clip-path:inset(0 0 0 0)}
.quote cite{display:block;margin-top:18px;font-style:normal;font-weight:700;color:var(--tom)}

/* tiles */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.tile{perspective:1000px;aspect-ratio:1;display:block}
.tile .in{position:relative;width:100%;height:100%;transition:transform .8s cubic-bezier(.3,1.2,.4,1);transform-style:preserve-3d}
.tile:hover .in,.tile.flip .in{transform:rotateY(180deg)}
.tile .f,.tile .bk{position:absolute;inset:0;border-radius:16px;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}
.tile .f{background:#f7f1e6;border:8px solid #fff;box-shadow:0 14px 30px -14px rgba(40,30,80,.5);overflow:hidden}
.tile .f:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 22%,#1f4fa0 23% 25%,transparent 26%),radial-gradient(circle at 0 0,#1f4fa0 0 18%,transparent 19%),radial-gradient(circle at 100% 0,#1f4fa0 0 18%,transparent 19%),radial-gradient(circle at 0 100%,#1f4fa0 0 18%,transparent 19%),radial-gradient(circle at 100% 100%,#1f4fa0 0 18%,transparent 19%),conic-gradient(from 45deg,#e8b84a 0 25%,transparent 0 50%,#e8b84a 0 75%,transparent 0);opacity:.85}
.tile .f b{position:relative;font-family:'Playfair Display';font-style:italic;font-size:1.6rem;background:#f7f1e6;padding:6px 14px;border-radius:8px;color:#1f3f80}
.tile .f .ic{position:relative;font-size:2.6rem;background:#f7f1e6;border-radius:50%;width:76px;height:76px;display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.tile .bk{transform:rotateY(180deg);background:var(--tom);color:#fff}
.tile .bk h3{font-size:1.5rem;margin-bottom:8px}
.tile .bk p{font-size:.92rem;opacity:.9}
.tile .bk span{margin-top:14px;font-weight:700}

/* neon + footer */
footer{background:var(--oven);color:#d8c4ab;padding:60px 0 90px}
footer .wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px;align-items:start}
footer .logo{color:#f5e6d0}
footer h4{font-family:'Playfair Display';color:#f5e6d0;font-size:1.1rem;margin-bottom:10px}
footer p,footer li{font-size:.92rem;list-style:none}
.neon{display:inline-block;margin-top:18px;font-family:'Caveat';font-size:2.6rem;line-height:1;padding:6px 18px;border-radius:14px;border:2px solid currentColor;color:#5dff8b;text-shadow:0 0 6px currentColor,0 0 18px currentColor,0 0 40px currentColor;box-shadow:0 0 12px currentColor,inset 0 0 12px currentColor;animation:flick 6s infinite}
.neon.off{color:#ff4a3a}
@keyframes flick{0%,18%,22%,62%,64%,100%{opacity:1}20%,63%{opacity:.35}}
.copy{margin-top:30px;font-size:.8rem;opacity:.6}

/* drawer */
.ov{position:fixed;inset:0;background:rgba(30,18,10,.5);opacity:0;pointer-events:none;transition:opacity .3s;z-index:150}
.ov.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:var(--paper);z-index:160;transform:translateX(100%);transition:transform .45s cubic-bezier(.7,0,.2,1);display:flex;flex-direction:column}
.drawer{visibility:hidden;transition:transform .45s cubic-bezier(.7,0,.2,1),visibility 0s .45s}.drawer.on{transform:none;visibility:visible;transition:transform .45s cubic-bezier(.7,0,.2,1)}
.drawer .dh{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line)}
.drawer .dh h3{font-size:1.6rem}
.drawer .x{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);font-size:1.2rem}
.drawer .dl{flex:1;overflow:auto;padding:10px 24px}
.ci{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px dashed var(--line)}
.ci .e{width:52px;height:52px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 5px #f1e8d8;display:flex;align-items:center;justify-content:center;font-size:1.6rem}
.ci b{display:block;font-size:.95rem}
.ci small{color:var(--muted)}
.qty{display:flex;align-items:center;gap:8px}
.qty button{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);font-weight:700}
.drawer .df{padding:20px 24px;border-top:1px solid var(--line)}
.drawer .tot{display:flex;justify-content:space-between;font-family:'Playfair Display';font-size:1.4rem;margin-bottom:14px}
.drawer .btn{width:100%;justify-content:center}
.empty{text-align:center;padding:50px 10px;color:var(--muted)}
.empty .pl{width:120px;height:120px;margin:0 auto 14px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 12px #f1e8d8,0 10px 20px -10px rgba(0,0,0,.3)}
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,calc(100% + 60px));background:var(--ink);color:var(--paper);padding:13px 22px;border-radius:999px;font-weight:600;z-index:400;transition:transform .4s cubic-bezier(.3,1.4,.5,1);white-space:nowrap;max-width:92vw;overflow:hidden;text-overflow:ellipsis}
.toast.on{transform:translate(-50%,0)}
.fly{position:fixed;z-index:450;font-size:2.2rem;pointer-events:none;transition:left .8s cubic-bezier(.5,0,.8,.6),top .8s cubic-bezier(.2,-.6,.6,1),transform .8s,opacity .8s}

/* page hero */
.phero{padding:80px 0 50px;position:relative;overflow:hidden}
.phero h1{font-size:clamp(2.8rem,6.6vw,5.6rem)}
.phero p{max-width:600px;color:var(--muted);font-size:1.1rem;margin-top:16px}
.crumb{font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.crumb a{color:var(--tom)}

/* chalkboard */
.chalk{background:#232a26;color:#f2efe6;border-radius:24px;padding:46px;position:relative;box-shadow:inset 0 0 0 14px #6b4a2e,inset 0 0 0 16px #4f3520,0 30px 50px -30px rgba(0,0,0,.6);overflow:hidden}
.chalk:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(255,255,255,.06),transparent 60%),radial-gradient(ellipse at 80% 80%,rgba(255,255,255,.05),transparent 50%);pointer-events:none}
.chalk .cw{font-family:'Caveat';font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.05;clip-path:inset(0 100% 0 0);transition:clip-path 1.8s steps(30)}
.chalk.in .cw{clip-path:inset(0 0 0 0)}
.chalk .cs{font-family:'Caveat';font-size:1.5rem;color:#f5d36b}
.chalk .row{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;position:relative}
.chalk .big{font-size:4.6rem}
.chalk .pr{font-family:'Caveat';font-size:2.6rem;color:#f5d36b;text-align:right;line-height:1}
.chalk .pr s{font-size:1.4rem;color:#aaa;display:block}
.chalk .btn{background:#f2efe6;color:#232a26}
.circle{position:absolute;inset:-10px -16px;pointer-events:none}
.circle path{stroke-dasharray:600;stroke-dashoffset:600;transition:stroke-dashoffset 1.2s .9s}
.chalk.in .circle path{stroke-dashoffset:0}

/* menu */
.tabs{display:flex;gap:8px;flex-wrap:wrap;position:relative;margin-bottom:34px}
.tabs button{padding:11px 20px;border-radius:999px;font-weight:700;position:relative;z-index:1;transition:color .3s}
.tabs button.on{color:#fff}
.tabs .pill{position:absolute;top:0;height:100%;border-radius:999px;background:var(--tom);transition:left .45s cubic-bezier(.3,1.3,.5,1),width .45s cubic-bezier(.3,1.3,.5,1);z-index:0}
.dishes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.dish{background:#fff;border-radius:22px;padding:24px;position:relative;box-shadow:0 14px 30px -20px rgba(60,30,10,.4);opacity:0;transform:translateY(30px) rotate(-2deg);animation:dishin .6s cubic-bezier(.3,1.3,.5,1) forwards;animation-delay:var(--d,0s)}
@keyframes dishin{to{opacity:1;transform:none}}
.plate{width:150px;height:150px;margin:0 auto 18px;border-radius:50%;background:radial-gradient(circle,#fff 0 55%,#f4ede2 56% 58%,#fff 59% 70%,#efe5d5 100%);box-shadow:0 14px 20px -12px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;font-size:4.2rem;position:relative;transition:transform .6s cubic-bezier(.3,1.3,.5,1)}
.dish:hover .plate{transform:rotate(25deg) scale(1.06)}
.plate .steam{opacity:0;transition:opacity .3s}
.dish:hover .plate .steam{opacity:1}
.plate .steam i{bottom:60%;height:60px}
.dish h3{font-size:1.35rem;display:flex;align-items:baseline;gap:8px}
.dish h3:after{content:'';flex:1;border-bottom:2px dotted var(--line);order:1}
.dish h3 .p{order:2;font-family:'DM Sans';font-size:1.05rem;color:var(--tom);font-weight:700}
.dish p{color:var(--muted);font-size:.9rem;margin:6px 0 16px;min-height:3em}
.dish .add{width:100%;padding:12px;border-radius:12px;background:var(--cream);font-weight:700;transition:background .2s,color .2s}
.dish .add:hover{background:var(--tom);color:#fff}
.dish .badge{position:absolute;top:16px;left:16px;font-family:'Caveat';font-size:1.2rem;color:#fff;background:var(--basil);padding:2px 12px;border-radius:999px;transform:rotate(-6deg)}
.wheelw{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.wheel{position:relative;width:min(440px,100%);aspect-ratio:1;margin:auto;touch-action:none;user-select:none;-webkit-user-select:none}
.wheel canvas{width:100%;height:100%;cursor:grab}
.wheel .ptr{position:absolute;left:50%;top:-14px;transform:translateX(-50%);width:0;height:0;border-left:16px solid transparent;border-right:16px solid transparent;border-top:30px solid var(--tom);filter:drop-shadow(0 4px 4px rgba(0,0,0,.3));z-index:2}
.wheel .hub{position:absolute;left:50%;top:50%;width:22%;height:22%;transform:translate(-50%,-50%);border-radius:50%;background:var(--tom);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:.85rem;box-shadow:0 6px 14px rgba(0,0,0,.3)}
.wres{min-height:170px;padding:24px;border-radius:20px;background:#fff;box-shadow:0 14px 30px -20px rgba(60,30,10,.4);margin-top:20px}
.wres .e{font-size:3rem}
.leaf{position:fixed;z-index:420;pointer-events:none;font-size:1.6rem}

/* kreator */
.krt{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start}
.kl{position:sticky;top:96px}
.peel{position:relative;aspect-ratio:1;width:100%;max-width:600px;margin:auto}
.peel .wood{position:absolute;inset:0;border-radius:50%;background:repeating-linear-gradient(90deg,#c9925a 0 30px,#c08750 30px 60px);box-shadow:0 30px 60px -20px rgba(60,30,10,.6)}
.peel .wood:after{content:'';position:absolute;left:50%;bottom:-18%;width:16%;height:22%;transform:translateX(-50%);background:#b07a45;border-radius:0 0 20px 20px;z-index:-1}
.pz{position:absolute;inset:5%;transition:transform .6s cubic-bezier(.3,1.3,.5,1)}
.pz svg,.pz canvas{position:absolute;inset:0;width:100%;height:100%}
.pz canvas{cursor:crosshair;touch-action:none}
.pz .top{pointer-events:none}
.tp{transform-box:fill-box;transform-origin:center;animation:tdrop .6s cubic-bezier(.3,1.5,.5,1) both;animation-delay:var(--d,0s)}
@keyframes tdrop{0%{transform:translateY(-120px) rotate(var(--r0,0deg)) scale(1.4);opacity:0}60%{opacity:1}100%{transform:rotate(var(--r,0deg))}}
.tp.gone{animation:tgone .4s forwards}
@keyframes tgone{to{transform:translateY(-80px) scale(.3);opacity:0}}
.ctrl{background:#fff;border-radius:22px;padding:28px;box-shadow:0 14px 30px -20px rgba(60,30,10,.4)}
.ctrl h4{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:20px 0 10px;display:flex;justify-content:space-between}
.ctrl h4:first-child{margin-top:0}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button,.tchip{padding:10px 14px;border-radius:12px;border:1.5px solid var(--line);font-weight:700;font-size:.88rem;transition:background .2s,border-color .2s,color .2s,transform .2s}
.seg button.on,.tchip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.tchip:active{transform:scale(.94)}
.tchip small{font-weight:500;opacity:.7;margin-left:4px}
.tchip.no{text-decoration:line-through;opacity:.5}
.tgrid{display:flex;flex-wrap:wrap;gap:8px}
.cov{height:8px;border-radius:9px;background:var(--cream);overflow:hidden;margin-top:8px}
.cov i{display:block;height:100%;width:0;background:var(--tom);transition:width .2s}
.kprice{display:flex;justify-content:space-between;align-items:center;margin-top:22px;padding-top:18px;border-top:1px dashed var(--line)}
.kprice b{font-family:'Playfair Display';font-size:2.2rem;color:var(--tom);font-variant-numeric:tabular-nums}
.nonna{position:fixed;right:20px;bottom:-260px;z-index:300;width:230px;transition:bottom .5s cubic-bezier(.3,1.4,.5,1);pointer-events:none}
.nonna.on{bottom:20px}
.nonna .bub{background:#fff;border-radius:18px;padding:12px 16px;font-family:'Caveat';font-size:1.6rem;line-height:1.1;box-shadow:0 10px 20px -10px rgba(0,0,0,.4);margin-bottom:8px;position:relative}
.nonna .bub:after{content:'';position:absolute;right:50px;bottom:-10px;border:10px solid transparent;border-top-color:#fff;border-bottom:0}
.nonna .face{font-size:5rem;text-align:right;animation:shake .4s 3}
@keyframes shake{25%{transform:rotate(-12deg)}75%{transform:rotate(12deg)}}
#ovm{position:fixed;inset:0;z-index:250;background:rgba(10,6,4,.92);display:none;align-items:center;justify-content:center;flex-direction:column;color:#f5e6d0}
#ovm.on{display:flex}
#ovm .arch{width:min(520px,90vw)}
#ovm .mouth{overflow:hidden}
#ovm .mini{position:absolute;left:50%;bottom:6%;width:56%;aspect-ratio:1;transform:translateX(-50%) rotateX(62deg);animation:turn 3s linear infinite}
#ovm .mini svg{width:100%;height:100%}
@keyframes turn{to{transform:translateX(-50%) rotateX(62deg) rotate(360deg)}}
#ovm .tm{font-family:'Playfair Display';font-size:3rem;font-variant-numeric:tabular-nums}
.baked .crust{fill:url(#crB)}
.char{opacity:0;transition:opacity 1.2s}
.baked .char{opacity:1}
.cut line{stroke:#7a4a22;stroke-width:2;stroke-dasharray:300;stroke-dashoffset:300;transition:stroke-dashoffset .5s}
.cut.on line{stroke-dashoffset:0}
.kfin{display:none;margin-top:16px}
.kfin.on{display:block}
.kfin input{width:100%;padding:13px 16px;border-radius:12px;border:1.5px solid var(--line);font:inherit;font-family:'Playfair Display';font-style:italic;font-size:1.2rem;margin-bottom:10px;background:var(--paper)}

/* zamowienie */
.ord{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:start}
.card{background:#fff;border-radius:22px;padding:28px;box-shadow:0 14px 30px -20px rgba(60,30,10,.4);margin-bottom:22px}
.card h3{font-size:1.4rem;margin-bottom:14px;display:flex;align-items:center;gap:10px}
.card h3 .no{width:30px;height:30px;border-radius:50%;background:var(--tom);color:#fff;font-family:'DM Sans';font-size:.9rem;display:inline-flex;align-items:center;justify-content:center}
.fld{display:grid;gap:10px}
.fld input,.fld textarea{width:100%;padding:13px 16px;border-radius:12px;border:1.5px solid var(--line);font:inherit;background:var(--paper)}
.fld input:focus{outline:2px solid var(--tom);border-color:transparent}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.free{margin-top:14px;font-size:.88rem;color:var(--muted)}
.fbar{position:relative;height:10px;border-radius:9px;background:var(--cream);margin-top:22px}
.fbar i{display:block;height:100%;border-radius:9px;background:var(--basil);width:0;transition:width .6s}
.fbar .v{position:absolute;top:-26px;font-size:1.6rem;transform:translateX(-50%) scaleX(-1);transition:left .6s}
.tip{display:flex;align-items:center;gap:16px}
.tip input{flex:1;accent-color:var(--tom)}
.tip .face{font-size:2.2rem;width:44px;text-align:center}
.rcpt{position:sticky;top:96px}
.paper{background:#fffdf8;font-family:'Courier New',monospace;font-size:.88rem;padding:28px 26px 40px;box-shadow:0 20px 40px -20px rgba(60,30,10,.5);position:relative;-webkit-mask:linear-gradient(#000,#000) top/100% calc(100% - 12px) no-repeat,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/16px 12px repeat-x;mask:linear-gradient(#000,#000) top/100% calc(100% - 12px) no-repeat,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/16px 12px repeat-x;transform-origin:top}
.paper h4{font-family:'Playfair Display';font-style:italic;font-size:1.5rem;text-align:center}
.paper .c{text-align:center;font-size:.75rem;color:#777;margin-bottom:14px}
.paper .ln{display:flex;gap:6px;align-items:baseline}
.paper .ln span:nth-child(2){flex:1;border-bottom:1px dotted #bbb;transform:translateY(-4px)}
.paper hr{border:0;border-top:1px dashed #bbb;margin:12px 0}
.paper .T{font-size:1.25rem;font-weight:700}
.paper.print{animation:print 1.2s steps(14)}
@keyframes print{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
.stamp{position:absolute;right:34px;bottom:70px;font-family:'DM Sans';font-weight:800;font-size:1.5rem;letter-spacing:.1em;color:var(--tom);border:4px solid var(--tom);padding:4px 14px;border-radius:8px;transform:rotate(-14deg) scale(3);opacity:0;pointer-events:none}
.stamp.on{animation:stamp .5s cubic-bezier(.5,0,.8,.4) forwards}
@keyframes stamp{to{transform:rotate(-14deg) scale(1);opacity:.85}}
.track{display:none}
.track.on{display:block}
.map{position:relative;background:#efe6d6;border-radius:22px;overflow:hidden;aspect-ratio:16/9}
.map svg{width:100%;height:100%}
.tsteps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px}
.tsteps div{padding:14px;border-radius:14px;background:#fff;opacity:.4;transition:opacity .4s,transform .4s;text-align:center;font-weight:700;font-size:.9rem}
.tsteps div .e{font-size:1.8rem;display:block}
.tsteps div.on{opacity:1;transform:translateY(-6px);box-shadow:0 10px 20px -12px rgba(60,30,10,.5)}
.tsteps div.on .e{animation:bump 1s infinite}
.eta{font-family:'Playfair Display';font-size:2.4rem;color:var(--tom)}
.conf{position:fixed;top:-20px;z-index:420;pointer-events:none;width:10px;height:14px}

/* o nas */
.book{position:relative;width:min(920px,100%);aspect-ratio:1.55;margin:0 auto;perspective:2200px}
.book .cov{position:absolute;inset:0;border-radius:10px;background:#7a2a1a;box-shadow:0 30px 50px -20px rgba(0,0,0,.6)}
.leaf2{position:absolute;top:2%;bottom:2%;left:50%;width:48.5%;transform-origin:left center;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.6,.1,.3,1);cursor:pointer}
.leaf2.turn{transform:rotateY(-180deg)}
.leaf2 .fc,.leaf2 .bc{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#fbf3e2;padding:clamp(14px,3.2vw,38px);overflow:hidden;box-shadow:inset 18px 0 30px -20px rgba(0,0,0,.35)}
.leaf2 .bc{transform:rotateY(180deg);box-shadow:inset -18px 0 30px -20px rgba(0,0,0,.35)}
.leaf2 .fc:after,.leaf2 .bc:after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 80% 85%,rgba(150,100,40,.12) 0 9%,transparent 10%),radial-gradient(circle at 80% 85%,transparent 11%,rgba(150,100,40,.12) 11.5% 12.5%,transparent 13%);pointer-events:none}
.pgL{position:absolute;top:2%;bottom:2%;left:1.5%;width:48.5%;background:#fbf3e2;padding:clamp(14px,3.2vw,38px);box-shadow:inset -18px 0 30px -20px rgba(0,0,0,.35)}
.pg .yr{font-family:'Playfair Display';font-size:clamp(1.6rem,4vw,3rem);color:var(--tom);line-height:1}
.pg h3{font-size:clamp(1rem,2.2vw,1.6rem);margin:6px 0 10px}
.pg p{font-family:'Caveat';font-size:clamp(1rem,2.1vw,1.55rem);line-height:1.2;color:#4a3426}
.pg .sk{font-size:clamp(2.6rem,7vw,5.4rem);text-align:center;margin-top:10px}
.pg .nx{position:absolute;right:16px;bottom:12px;font-family:'Caveat';font-size:1.3rem;color:var(--tom)}
.pasta{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.board2{position:relative;aspect-ratio:1.3;width:100%;border-radius:22px;background:repeating-linear-gradient(90deg,#d6a46a 0 40px,#cf9c62 40px 80px);box-shadow:0 30px 50px -30px rgba(60,30,10,.7);overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}
.sheet{position:absolute;left:50%;top:50%;width:calc(var(--w,30) * 1%);height:calc(var(--hh,40) * 1%);transform:translate(-50%,-50%);background:radial-gradient(circle at 40% 40%,#fff4cf,#f3d98e);border-radius:calc(50% - var(--w,30) * .45%);box-shadow:0 8px 14px -6px rgba(90,60,10,.5);transition:border-radius .2s}
.flour2{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.6) 0 3%,transparent 6%),radial-gradient(circle at 75% 65%,rgba(255,255,255,.5) 0 4%,transparent 8%),radial-gradient(circle at 60% 20%,rgba(255,255,255,.5) 0 2%,transparent 5%);pointer-events:none}
.pin{position:absolute;left:50%;top:30%;width:86%;height:44px;transform:translate(-50%,-50%);cursor:grab;display:flex;align-items:center}
.pin .h{width:12%;height:24px;background:#9a6a3a;border-radius:12px}
.pin .r{flex:1;height:44px;background:linear-gradient(#e7c08a,#c99256 60%,#a87640);border-radius:8px;box-shadow:0 10px 14px -6px rgba(0,0,0,.4)}
.strips{position:absolute;inset:0;display:none}
.strips.on{display:block}
.strips i{position:absolute;top:50%;height:calc(var(--hh,90) * 1%);width:7.4%;background:linear-gradient(90deg,#f3d98e,#fff4cf,#f3d98e);border-radius:6px;transform:translate(-50%,-50%);transition:transform 1s cubic-bezier(.3,1.3,.5,1) var(--d),border-radius 1s;box-shadow:0 4px 8px -4px rgba(90,60,10,.5)}
.strips.nest i{border-radius:50%}
.knife{position:absolute;top:-20%;font-size:3rem;transform:rotate(180deg);transition:left .1s linear;pointer-events:none;display:none}
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.mem{background:#fff;border-radius:22px;padding:28px;text-align:center;position:relative;box-shadow:0 14px 30px -20px rgba(60,30,10,.4);cursor:pointer}
.mem .av{font-size:4.4rem;width:120px;height:120px;margin:0 auto 14px;border-radius:50%;background:var(--cream);display:flex;align-items:center;justify-content:center;transition:transform .4s cubic-bezier(.3,1.6,.5,1)}
.mem:hover .av{transform:rotate(-8deg) scale(1.08)}
.mem h3{font-size:1.4rem}
.mem .rl{color:var(--tom);font-weight:700;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase}
.mem .say{position:absolute;left:50%;top:-14px;transform:translate(-50%,-80%) scale(.6);opacity:0;background:var(--ink);color:#fff;padding:10px 16px;border-radius:14px;font-family:'Caveat';font-size:1.4rem;line-height:1.1;width:max-content;max-width:240px;transition:opacity .3s,transform .4s cubic-bezier(.3,1.6,.5,1);pointer-events:none}
.mem .say small{display:block;font-family:'DM Sans';font-size:.75rem;opacity:.7}
.mem:hover .say,.mem.on .say{opacity:1;transform:translate(-50%,-100%) scale(1)}
.hours{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.hours table{width:100%;border-collapse:collapse}
.hours td{padding:12px 0;border-bottom:1px dashed var(--line)}
.hours td:last-child{text-align:right;font-weight:700}
.hours tr.now td{color:var(--tom)}
.bigneon{text-align:center;background:var(--oven);border-radius:24px;padding:50px 20px}
.bigneon .neon{font-size:clamp(3rem,8vw,5.6rem);margin:0}
.bigneon p{color:#d8c4ab;margin-top:18px}

.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

@media(max-width:1000px){
 .menu{display:none}.burger{display:inline-flex;align-items:center;justify-content:center}
 .mnav.open{display:flex;flex-direction:column;padding:6px 4% 18px;background:var(--paper)}
 .mnav a{padding:12px 0;border-bottom:1px solid var(--line);font-weight:700}
 .mnav a.on{color:var(--tom)}
 .hero .wrap,.pull,.dough,.wheelw,.krt,.ord,.pasta,.hours{grid-template-columns:1fr}
 .tiles{grid-template-columns:1fr 1fr}
 .dishes{grid-template-columns:1fr 1fr}
 .build .wrap{grid-template-columns:1fr;gap:16px}
 .build .stick{align-items:flex-start;padding-top:84px}
 .build h2{font-size:1.7rem;margin-bottom:10px}
 .steps{grid-template-columns:repeat(5,1fr);gap:6px}
 .steps li{padding:8px;text-align:center}.steps li span{display:none}.steps li b{font-size:.78rem}
 .steps li.on{transform:translateY(-4px)}
 .bpz{width:min(440px,100%)}.bpz .temp{top:auto;bottom:-46px;right:0;left:0;text-align:center}
 .rcpt{position:static}.kl{position:static}
 .spin-pizza{margin:0 auto;max-width:420px}
 footer .wrap{grid-template-columns:1fr}
 .team{grid-template-columns:1fr}
}
@media(max-width:640px){
 section{padding:80px 0}
 .cartb .t{display:none}
 .dishes,.tiles{grid-template-columns:1fr}
 .tile{aspect-ratio:1.6}
 .chalk{padding:30px 24px}.chalk .row{grid-template-columns:1fr;text-align:center}.chalk .pr{text-align:center}
 .tsteps{grid-template-columns:1fr 1fr}.map{aspect-ratio:1}
 .g2{grid-template-columns:1fr}
 .book{aspect-ratio:1}
 .leaf2{left:0;width:100%;top:0;bottom:0}
 .pgL{display:none}
 .leaf2 .bc{display:none}
 .leaf2.turn{transform:rotateY(-180deg);opacity:0;transition:transform 1.1s cubic-bezier(.6,.1,.3,1),opacity .2s .9s}
 .nonna{width:180px}
}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.baked .chz{fill:#f8dc98}
