{"id":2,"date":"2026-10-25T17:04:34","date_gmt":"2026-10-25T13:34:34","guid":{"rendered":"http:\/\/shellcafe.ir\/?page_id=2"},"modified":"2026-10-28T23:04:18","modified_gmt":"2026-10-28T19:34:18","slug":"%d8%a8%d8%b1%da%af%d9%87-%d9%86%d9%85%d9%88%d9%86%d9%87","status":"publish","type":"page","link":"https:\/\/shellcafe.ir\/","title":{"rendered":""},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2\" class=\"elementor elementor-2\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a479ac2 e-flex e-con-boxed e-con e-parent\" data-id=\"a479ac2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f3bf767 elementor-widget-mobile__width-initial elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"f3bf767\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- SHELL CAFE: paste this whole block into one Elementor \"HTML\" widget -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Serif+Display:ital@0;1&family=Vazirmatn:wght@300;400;600;800&display=swap\" rel=\"stylesheet\">\n<style>\n#shell-cafe{\n  --foam:#FBF6EE;\n  --milk:#FFFDF9;\n  --crema:#EFE1CB;\n  --latte:#C9A47C;\n  --nescafe:#7B4F2E;\n  --roast:#4A2E1B;\n  --espresso:#2B1B12;\n  --muted:#7A6453;\n  --line:rgba(123,79,46,.16);\n  --glass:rgba(255,255,255,.46);\n  --glass-edge:rgba(255,255,255,.75);\n  --nav-h:84px;\n  --shadow:0 30px 50px -26px rgba(92,56,30,.42), 0 3px 10px rgba(92,56,30,.06);\n  --ease:cubic-bezier(.2,.9,.2,1);\n  --p:0;\n  --groove:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 100 40' preserveAspectRatio='none'%3E%3Cpath d='M3 22C28 4 70 38 97 18' fill='none' stroke='%23120803' stroke-opacity='.55' stroke-width='3' stroke-linecap='round' vector-effect='non-scaling-stroke'\/%3E%3Cpath d='M3 25.5C28 7.5 70 41.5 97 21.5' fill='none' stroke='%23ffffff' stroke-opacity='.18' stroke-width='1.5' stroke-linecap='round' vector-effect='non-scaling-stroke'\/%3E%3C\/svg%3E\");\n}\n#shell-cafe *{box-sizing:border-box}\n#shell-cafe{\n  margin:0;background:var(--foam);color:var(--espresso);\n  font-family:'Vazirmatn','Tahoma',system-ui,sans-serif;font-weight:400;line-height:1.8;\n  -webkit-font-smoothing:antialiased;overflow-x:clip;position:relative;isolation:isolate;direction:rtl;\n}\n\n\/* ---------- Isolation from theme \/ Elementor styles ---------- *\/\n#shell-cafe :where(h1,h2,h3,h4,p,a,b,strong,span,button,input,output,figcaption,label){font-family:inherit;letter-spacing:normal;text-transform:none}\n#shell-cafe :where(button,[type=\"button\"],[type=\"submit\"]){appearance:none;-webkit-appearance:none;padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none;text-shadow:none;color:inherit;font:inherit;min-height:0;line-height:inherit;text-decoration:none}\n#shell-cafe :where(button,[type=\"button\"],[type=\"submit\"]):is(:hover,:focus,:active){background:none;color:inherit;text-decoration:none;box-shadow:none}\n#shell-cafe :where(input){appearance:none;-webkit-appearance:none;margin:0;box-shadow:none;font:inherit;color:inherit;min-height:0}\n#shell-cafe :where(img,svg,video){max-width:none;border:0}\n#shell-cafe :where(label){margin:0;font-weight:inherit}\n\/* remove Elementor's default widget spacing around this block *\/\n.elementor-widget-html:has(#shell-cafe){margin:0!important}\n.elementor-widget-html:has(#shell-cafe)>.elementor-widget-container{margin:0!important;padding:0!important}\n\n#shell-cafe button,\n#shell-cafe input{font:inherit;color:inherit}\n#shell-cafe button{cursor:pointer;border:0;background:none}\n#shell-cafe :focus-visible{outline:3px solid var(--nescafe);outline-offset:3px;border-radius:12px}\n#shell-cafe h1,\n#shell-cafe h2,\n#shell-cafe h3,\n#shell-cafe p{margin:0}\n#shell-cafe .latin{font-family:'DM Serif Display',Georgia,serif;font-style:italic;font-weight:400;direction:ltr;unicode-bidi:isolate}\n\/* ---------- Glass aurora background ---------- *\/\n#shell-cafe .aurora{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}\n#shell-cafe .aurora i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.75;will-change:transform}\n#shell-cafe .aurora i:nth-child(1){width:52vmax;height:52vmax;right:-14vmax;top:-12vmax;background:#EBC28F;animation:shell-drift1 26s ease-in-out infinite alternate}\n#shell-cafe .aurora i:nth-child(2){width:44vmax;height:44vmax;left:-14vmax;top:34vh;background:#E4B3A0;opacity:.5;animation:shell-drift2 32s ease-in-out infinite alternate}\n#shell-cafe .aurora i:nth-child(3){width:40vmax;height:40vmax;right:12vmax;bottom:-16vmax;background:#CFE1DA;opacity:.65;animation:shell-drift3 30s ease-in-out infinite alternate}\n@keyframes shell-drift1{to{transform:translate(-14vmax,16vmax) scale(1.12)}}\n@keyframes shell-drift2{to{transform:translate(18vmax,-10vmax) scale(.92)}}\n@keyframes shell-drift3{to{transform:translate(-16vmax,-12vmax) scale(1.08)}}\n#shell-cafe .shell-main,\n#shell-cafe header,\n#shell-cafe .bar{position:relative;z-index:1}\n\/* ---------- WebGL layer ---------- *\/\n#shell-cafe #gl{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:60}\n#shell-cafe .fallback{display:block}\n#shell-cafe .no-gl .fallback{display:block}\n#shell-cafe .no-gl #gl{display:none}\n#shell-cafe .slot .fallback{position:absolute;inset:0;margin:auto;width:min(80%,360px);height:auto;aspect-ratio:1;filter:drop-shadow(0 20px 20px rgba(74,46,27,.3))}\n#shell-cafe #navSlot .fallback{width:100%;height:100%}\n\/* ---------- Glass buttons: light sweeps through ---------- *\/\n#shell-cafe .cta,\n#shell-cafe .primary,\n#shell-cafe .add,\n#shell-cafe .cartbtn,\n#shell-cafe .bar,\n#shell-cafe .ind,\n#shell-cafe .step button{\n  position:relative;isolation:isolate;overflow:hidden;color:var(--espresso);\n  background:linear-gradient(145deg,rgba(255,255,255,.26) 0%,rgba(255,255,255,.04) 100%);\n  border:1px solid rgba(255,255,255,.75);\n  -webkit-backdrop-filter:blur(14px) saturate(1.8);backdrop-filter:blur(14px) saturate(1.8);\n  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -12px 18px -12px rgba(255,255,255,.7),0 14px 26px -16px rgba(43,27,18,.35);\n}\n#shell-cafe .cta::before,\n#shell-cafe .primary::before,\n#shell-cafe .add::before,\n#shell-cafe .bar::before,\n#shell-cafe .ind::before,\n#shell-cafe .step button::before{\n  content:\"\";position:absolute;top:-10%;bottom:-10%;left:0;width:55%;z-index:-1;pointer-events:none;\n  background:linear-gradient(105deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.75) 50%,rgba(255,255,255,0) 100%);\n  transform:translateX(-140%) skewX(-18deg);animation:shell-sheen 5.5s ease-in-out infinite;\n}\n#shell-cafe .add::before{animation-delay:-1s}\n#shell-cafe .ind::before{animation-delay:-3.2s}\n#shell-cafe .bar::before{animation-delay:-.5s}\n#shell-cafe .step button::before{animation-delay:-2.6s}\n#shell-cafe .cta:hover::before,\n#shell-cafe .primary:hover::before,\n#shell-cafe .add:hover::before{animation-duration:1.5s}\n#shell-cafe .cta::after,\n#shell-cafe .primary::after,\n#shell-cafe .add::after,\n#shell-cafe .bar::after,\n#shell-cafe .ind::after,\n#shell-cafe .step button::after{\n  content:\"\";position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;\n  background:linear-gradient(180deg,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 50%);\n}\n@keyframes shell-sheen{0%,50%{transform:translateX(-140%) skewX(-18deg)}100%{transform:translateX(360%) skewX(-18deg)}}\n#shell-cafe .nav,\n#shell-cafe .nav.solid{\n  background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,.05) 100%);\n  -webkit-backdrop-filter:blur(22px) saturate(1.6);backdrop-filter:blur(22px) saturate(1.6);\n  border:1px solid rgba(255,255,255,.34);\n  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 10px 30px -16px rgba(20,10,4,.45);\n}\n#shell-cafe svg.bn{width:1.5em;height:1em;flex:none}\n\/* ---------- Nav ---------- *\/\n#shell-cafe .nav{\n  position:absolute;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);\n  width:min(980px,calc(100% - 24px));height:60px;z-index:50;border-radius:20px;\n  display:flex;align-items:center;justify-content:space-between;gap:16px;\n  padding-inline:22px 10px;\n}\n#shell-cafe .brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}\n#shell-cafe #navSlot{width:36px;height:36px;display:block}\n#shell-cafe #navSlot .fallback path{fill:#fff}\n#shell-cafe #navSlot .fallback{filter:drop-shadow(0 2px 8px rgba(0,0,0,.35))}\n#shell-cafe .brand .latin{font-size:1.8rem;line-height:1;letter-spacing:.005em;text-shadow:0 2px 12px rgba(0,0,0,.35)}\n#shell-cafe .nav-actions{display:flex;align-items:center;gap:8px}\n#shell-cafe .nav .cartbtn,\n#shell-cafe .nav .burger{\n  color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.38);\n  box-shadow:inset 0 1px 0 rgba(255,255,255,.45);text-shadow:0 1px 8px rgba(0,0,0,.3);\n}\n#shell-cafe .nav .badge{color:#fff;background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.55);text-shadow:none}\n#shell-cafe .burger{\n  position:relative;width:44px;height:44px;border-radius:50%;flex:none;display:grid;place-items:center;\n  -webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);\n  transition:transform .25s var(--ease),background .25s;\n}\n#shell-cafe .burger:hover{background:rgba(255,255,255,.24)}\n#shell-cafe .burger i{position:absolute;left:12px;right:12px;height:2px;border-radius:2px;background:#fff;transition:transform .4s var(--ease),opacity .25s,top .4s var(--ease)}\n#shell-cafe .burger i:nth-child(1){top:15px}\n#shell-cafe .burger i:nth-child(2){top:21px}\n#shell-cafe .burger i:nth-child(3){top:27px}\n#shell-cafe .burger[aria-expanded=\"true\"] i:nth-child(1){top:21px;transform:rotate(45deg)}\n#shell-cafe .burger[aria-expanded=\"true\"] i:nth-child(2){opacity:0;transform:scaleX(.2)}\n#shell-cafe .burger[aria-expanded=\"true\"] i:nth-child(3){top:21px;transform:rotate(-45deg)}\n#shell-cafe .cartbtn{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:99px;font-weight:600;font-size:.95rem;transition:transform .25s var(--ease)}\n\/* ---------- Hamburger menu panel (glass) ---------- *\/\n#shell-cafe .mscrim{position:fixed;inset:0;z-index:71;opacity:0;pointer-events:none}\n#shell-cafe .mscrim.open{pointer-events:auto}\n#shell-cafe .mpanel{\n  position:fixed;z-index:72;top:calc(max(12px,env(safe-area-inset-top)) + 70px);\n  left:max(12px,calc((100vw - 980px) \/ 2));width:min(300px,calc(100vw - 24px));\n  display:flex;flex-direction:column;gap:4px;padding:10px;border-radius:24px;\n  background:linear-gradient(145deg,rgba(60,38,24,.42),rgba(60,38,24,.22));\n  -webkit-backdrop-filter:blur(26px) saturate(1.7);backdrop-filter:blur(26px) saturate(1.7);\n  border:1px solid rgba(255,255,255,.38);\n  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 30px 60px -24px rgba(20,10,4,.6);\n  opacity:0;visibility:hidden;transform:translateY(-12px) scale(.96);transform-origin:top left;\n  transition:opacity .3s,transform .45s var(--ease),visibility 0s .45s;\n}\n#shell-cafe .mpanel.open{opacity:1;visibility:visible;transform:none;transition:opacity .3s,transform .45s var(--ease),visibility 0s}\n#shell-cafe .mpanel button{\n  display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;\n  padding:14px 18px;border-radius:16px;color:#fff;font-weight:600;font-size:1.05rem;text-align:right;\n  text-shadow:0 1px 8px rgba(0,0,0,.3);transition:background .25s;\n  opacity:0;transform:translateY(8px);\n}\n#shell-cafe .mpanel.open button{opacity:1;transform:none;transition:background .25s,opacity .4s var(--ease),transform .5s var(--ease);transition-delay:0s,calc(.08s + var(--k) * 55ms),calc(.08s + var(--k) * 55ms)}\n#shell-cafe .mpanel button:hover,\n#shell-cafe .mpanel button:focus-visible{background:rgba(255,255,255,.18)}\n#shell-cafe .mpanel button svg{width:16px;height:16px;opacity:.7;transform:rotate(180deg)}\n\/* ---------- About ---------- *\/\n#shell-cafe .about{position:relative;padding:8px clamp(14px,4vw,48px) clamp(24px,5vw,48px);scroll-margin-top:0}\n#shell-cafe .about-in{\n  max-width:720px;margin:0 auto;padding:clamp(24px,4vw,40px);border-radius:30px;text-align:center;\n  display:flex;flex-direction:column;gap:12px;\n  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.7);\n  -webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);\n  box-shadow:0 26px 44px -28px rgba(43,27,18,.4),inset 0 1px 0 rgba(255,255,255,.8);\n}\n#shell-cafe .about-in h2{font-size:clamp(1.8rem,5vw,2.6rem);font-weight:800;line-height:1.2;color:var(--roast)}\n#shell-cafe .about-in p{color:var(--roast);opacity:.88;font-size:1.05rem;line-height:2}\n\/* ---------- Cream curtain transition ---------- *\/\n#shell-cafe .curtain{\n  position:fixed;inset:0;z-index:100;display:grid;place-items:center;visibility:hidden;pointer-events:none;\n  background:linear-gradient(180deg,#F7EDDB 0%,#EFE1CB 100%);border-radius:44px 44px 0 0;\n  transform:translateY(100%);will-change:transform;\n}\n#shell-cafe .curtain.on{visibility:visible;pointer-events:auto}\n#shell-cafe .curtain .c-in{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;color:var(--roast);opacity:0}\n#shell-cafe .curtain .c-in .latin{font-size:1.5rem;color:var(--nescafe)}\n#shell-cafe .curtain .c-in b{font-size:clamp(2rem,8vw,3.2rem);font-weight:800;line-height:1.3}\n#shell-cafe .cartbtn:hover{transform:rotate(-2deg) scale(1.04)}\n#shell-cafe .cartbtn svg{width:20px;height:20px}\n#shell-cafe .badge{\n  min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:rgba(255,255,255,.35);border:1px solid rgba(255,255,255,.8);color:var(--espresso);text-shadow:none;\n  font-size:.78rem;line-height:22px;text-align:center;font-weight:800;\n}\n#shell-cafe .badge.bump{animation:shell-bump .4s var(--ease)}\n@keyframes shell-bump{40%{transform:scale(1.4)}}\n#shell-cafe .badge[data-n=\"0\"]{display:none}\n\/* ---------- Hero (video) ---------- *\/\n#shell-cafe .hero{\n  position:relative;min-height:100vh;min-height:100svh;overflow:hidden;display:flex;align-items:center;\n  padding:calc(var(--nav-h) + 20px) clamp(20px,5vw,72px) 56px;\n}\n#shell-cafe .hero-video{position:absolute;inset:0;z-index:0;background:#2B1B12}\n#shell-cafe .hero-video video{width:100%;height:100%;object-fit:cover;display:block}\n#shell-cafe .hero-video.empty{background:linear-gradient(130deg,#4A2E1B,#9A6A42,#E4C79B,#7B4F2E);background-size:300% 300%;animation:shell-vidgrad 14s ease-in-out infinite alternate}\n@keyframes shell-vidgrad{to{background-position:100% 100%}}\n#shell-cafe .hero-video::after{content:\"\";position:absolute;inset:0;pointer-events:none;\n  background:\n    linear-gradient(to top,\n      rgba(251,246,238,1) 0%,rgba(251,246,238,.96) 6%,rgba(251,246,238,.84) 13%,rgba(251,246,238,.64) 21%,\n      rgba(251,246,238,.42) 30%,rgba(251,246,238,.22) 40%,rgba(251,246,238,.08) 50%,rgba(251,246,238,0) 62%),\n    rgba(20,10,4,.12)}\n#shell-cafe .hero-text{\n  position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:20px;max-width:540px;\n  padding:0;\n}\n#shell-cafe .status{\n  display:inline-flex;align-items:center;gap:10px;padding:7px 16px 7px 14px;border-radius:99px;\n  background:rgba(255,255,255,.55);border:1px solid var(--glass-edge);\n  font-size:.9rem;font-weight:600;color:var(--roast);animation:shell-fadeUp .8s .1s var(--ease) both;\n}\n#shell-cafe .status i{width:9px;height:9px;border-radius:50%;background:#5E8C61;box-shadow:0 0 0 4px rgba(94,140,97,.2);animation:shell-pulse 2.4s infinite}\n#shell-cafe .status.closed i{background:#B5765A;box-shadow:0 0 0 4px rgba(181,118,90,.2)}\n@keyframes shell-pulse{50%{box-shadow:0 0 0 8px rgba(94,140,97,0)}}\n@keyframes shell-fadeUp{from{opacity:0;transform:translateY(16px)}}\n#shell-cafe .hero h1{\n  font-family:'DM Serif Display',Georgia,serif;font-style:italic;font-weight:400;direction:ltr;text-align:right;\n  font-size:clamp(5rem,13vw,10rem);line-height:1;letter-spacing:.005em;display:flex;padding-inline-end:.08em;\n}\n#shell-cafe .hero h1 b{\n  display:inline-block;font-weight:400;\n  background:linear-gradient(180deg,#9A6A42 0%,#5B3720 55%,#2B1B12 100%);-webkit-background-clip:text;background-clip:text;color:transparent;\n  filter:drop-shadow(0 12px 14px rgba(74,46,27,.22));\n  animation:shell-letter .9s var(--ease) both;animation-delay:calc(.25s + var(--i) * 90ms);\n}\n@keyframes shell-letter{from{opacity:0;transform:translateY(46%) rotate(8deg);filter:blur(10px)}}\n#shell-cafe .hero-text p{font-size:1.2rem;color:var(--roast);opacity:.88;max-width:30ch;line-height:1.9;animation:shell-fadeUp .8s .8s var(--ease) both}\n#shell-cafe .hero-text .cta{animation:shell-fadeUp .8s 1s var(--ease) both}\n#shell-cafe .cta{\n  display:inline-flex;align-items:center;gap:12px;padding:16px 38px;border-radius:99px;text-decoration:none;\n  font-weight:600;font-size:1.05rem;transition:transform .3s var(--ease);\n}\n#shell-cafe .cta:hover{transform:translateY(-3px)}\n#shell-cafe .cta svg{width:20px;height:20px;animation:shell-nudge 1.8s ease-in-out infinite}\n@keyframes shell-nudge{50%{transform:translateY(4px)}}\n\/* ---------- Menu ---------- *\/\n#shell-cafe .menu{position:relative;scroll-margin-top:0}\n#shell-cafe .menu-head{max-width:1240px;margin:0 auto;padding:clamp(64px,10vw,120px) clamp(16px,4vw,48px) 20px}\n#shell-cafe .menu-head h2{font-size:clamp(2.6rem,7vw,4.6rem);font-weight:800;line-height:1.2;color:var(--roast)}\n#shell-cafe .menu-head p{margin-top:10px;color:var(--muted);font-size:1.05rem;max-width:44ch}\n#shell-cafe .tabs{\n  position:relative;z-index:40;\n  overflow-x:auto;scrollbar-width:none;padding:10px clamp(16px,4vw,48px);\n}\n#shell-cafe .tabs::-webkit-scrollbar{display:none}\n#shell-cafe .track{\n  position:relative;display:flex;gap:2px;padding:4px;width:max-content;margin-inline:auto 0;\n  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.65);border-radius:99px;\n  -webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);\n  box-shadow:0 12px 30px -18px rgba(74,46,27,.45);\n}\n#shell-cafe .tab{position:relative;z-index:1;padding:8px 20px;border-radius:99px;font-weight:600;font-size:.98rem;color:var(--muted);white-space:nowrap;transition:color .3s}\n#shell-cafe .tab[aria-selected=\"true\"]{color:var(--espresso);text-shadow:none}\n#shell-cafe .ind{\n  position:absolute;top:4px;bottom:4px;left:0;border-radius:99px;z-index:0;\n  transition:transform .45s var(--ease),width .45s var(--ease);\n}\n\/* category stage *\/\n#shell-cafe .stage{max-width:1240px;margin:18px auto 0;padding:0 clamp(16px,4vw,48px)}\n#shell-cafe .stage-in{\n  position:relative;display:flex;align-items:center;gap:18px;padding:8px 22px;border-radius:28px;overflow:hidden;\n  background:rgba(255,255,255,.1);\n  border:1px solid rgba(255,255,255,.65);\n  -webkit-backdrop-filter:blur(20px) saturate(1.6);backdrop-filter:blur(20px) saturate(1.6);\n  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 24px 40px -28px rgba(43,27,18,.3);\n}\n#shell-cafe .stage-in.swap{animation:shell-stageIn .7s var(--ease)}\n@keyframes shell-stageIn{from{opacity:0;transform:translateY(14px) scale(.98)}}\n#shell-cafe .stage-in[data-cat=\"hot\"]{--tint:rgba(255,205,150,.55)}\n#shell-cafe .stage-in[data-cat=\"cold\"]{--tint:rgba(190,222,236,.6)}\n#shell-cafe .stage-in[data-cat=\"other\"]{--tint:rgba(214,232,160,.55)}\n#shell-cafe .stage-in[data-cat=\"food\"]{--tint:rgba(250,214,130,.55)}\n#shell-cafe .stage-in[data-cat=\"sweet\"]{--tint:rgba(248,194,200,.55)}\n#shell-cafe .stage-art{flex:none;width:140px;height:106px}\n#shell-cafe .stage-art svg{width:100%;height:100%;overflow:visible}\n#shell-cafe .stage h3{font-size:clamp(1.25rem,3.2vw,1.7rem);font-weight:800;color:var(--roast);line-height:1.3}\n#shell-cafe .stage p{margin-top:2px;color:var(--muted);font-size:.9rem;max-width:36ch}\n#shell-cafe .stage svg *{transform-box:fill-box;transform-origin:center}\n#shell-cafe .s-steam{animation:shell-steam 3.2s ease-out infinite;opacity:0}\n#shell-cafe .s-steam:nth-of-type(2){animation-delay:1s}\n#shell-cafe .s-steam:nth-of-type(3){animation-delay:2s}\n@keyframes shell-steam{0%{transform:translateY(10px) scaleY(.8);opacity:0}30%{opacity:.85}100%{transform:translateY(-18px) scaleY(1.1);opacity:0}}\n#shell-cafe .s-float{animation:shell-flo 4s ease-in-out infinite}\n#shell-cafe .s-float:nth-of-type(2n){animation-duration:5.2s;animation-delay:-1.5s}\n@keyframes shell-flo{50%{transform:translateY(-8px) rotate(14deg)}}\n#shell-cafe .s-ice{animation:shell-ice 3.6s ease-in-out infinite}\n#shell-cafe .s-ice:nth-of-type(2){animation-delay:-1.2s}\n#shell-cafe .s-ice:nth-of-type(3){animation-delay:-2.4s}\n@keyframes shell-ice{50%{transform:translateY(-6px) rotate(18deg)}}\n#shell-cafe .s-bub{animation:shell-bub 3s ease-in infinite;opacity:0}\n#shell-cafe .s-bub:nth-of-type(2n){animation-delay:-1.1s}\n#shell-cafe .s-bub:nth-of-type(3n){animation-delay:-2s}\n@keyframes shell-bub{0%{transform:translateY(14px);opacity:0}25%{opacity:.9}100%{transform:translateY(-34px);opacity:0}}\n#shell-cafe .s-spin{animation:shell-spin 18s linear infinite}\n@keyframes shell-spin{to{transform:rotate(360deg)}}\n#shell-cafe .s-sway{transform-origin:50% 100%!important;animation:shell-sway 3.4s ease-in-out infinite alternate}\n#shell-cafe .s-sway:nth-of-type(2n){animation-delay:-1.4s}\n@keyframes shell-sway{from{transform:rotate(-10deg)}to{transform:rotate(10deg)}}\n#shell-cafe .s-fall{animation:shell-fall 3.6s linear infinite;opacity:0}\n#shell-cafe .s-fall:nth-of-type(2n){animation-delay:-1.2s}\n#shell-cafe .s-fall:nth-of-type(3n){animation-delay:-2.4s}\n@keyframes shell-fall{0%{transform:translateY(-22px) rotate(0);opacity:0}15%{opacity:1}100%{transform:translateY(44px) rotate(240deg);opacity:0}}\n#shell-cafe .s-bounce{animation:shell-bounce 1.8s ease-in-out infinite}\n@keyframes shell-bounce{50%{transform:translateY(-9px)}}\n#shell-cafe .s-pulse{animation:shell-glow 3s ease-in-out infinite}\n@keyframes shell-glow{50%{transform:scale(1.1);opacity:.6}}\n#shell-cafe .grid{\n  display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:58px 16px;\n  max-width:1240px;margin:0 auto;padding:58px clamp(16px,4vw,48px) 130px;\n}\n#shell-cafe .grid.enter .item{animation:shell-rise .55s var(--ease) both;animation-delay:calc(var(--i) * 55ms)}\n@keyframes shell-rise{from{opacity:0;translate:0 24px}}\n#shell-cafe .item{\n  position:relative;display:flex;flex-direction:column;gap:6px;text-align:center;\n  padding:68px 14px 14px;border-radius:26px;\n  transform-style:preserve-3d;\n  transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));\n  transition:transform .5s var(--ease);\n}\n#shell-cafe .item::before{\n  content:\"\";position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;\n  background:rgba(255,255,255,.1);\n  border:1px solid rgba(255,255,255,.7);box-shadow:0 22px 38px -26px rgba(43,27,18,.38),inset 0 1px 0 rgba(255,255,255,.8);\n  -webkit-backdrop-filter:blur(18px) saturate(1.6);backdrop-filter:blur(18px) saturate(1.6);\n}\n#shell-cafe .item.tilting{transition:transform .08s linear}\n#shell-cafe .item::after{\n  content:\"\";position:absolute;inset:0;border-radius:inherit;pointer-events:none;\n  background:radial-gradient(240px circle at var(--gx,50%) var(--gy,0%),rgba(255,255,255,.7),rgba(255,255,255,0) 60%);\n  opacity:var(--go,0);transition:opacity .3s;\n}\n#shell-cafe .art{\n  position:absolute;top:-38px;left:50%;width:104px;height:104px;margin-left:-52px;\n  transform:translateZ(70px);filter:drop-shadow(0 20px 12px rgba(74,46,27,.32));pointer-events:none;\n}\n#shell-cafe .art svg{width:100%;height:100%;display:block}\n#shell-cafe .art.photo img{width:100%;height:100%;object-fit:cover;border-radius:50%;border:4px solid rgba(255,255,255,.92);display:block}\n#shell-cafe .item h3{font-size:1rem;font-weight:800;line-height:1.5;color:var(--roast)}\n#shell-cafe .item .desc{font-size:.78rem;color:var(--muted);line-height:1.7;min-height:3.2em}\n#shell-cafe .buy{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:10px}\n#shell-cafe .price{font-weight:800;font-size:.92rem;color:var(--espresso);white-space:nowrap}\n#shell-cafe .price small{font-weight:400;color:var(--muted);font-size:.78rem;margin-inline-start:3px}\n#shell-cafe .add{\n  display:inline-flex;align-items:center;gap:6px;padding:6px 14px 6px 11px;border-radius:99px;\n  font-weight:600;font-size:.82rem;transition:transform .25s var(--ease);\n}\n#shell-cafe .add:hover{transform:rotate(-3deg) scale(1.05)}\n#shell-cafe .add:active{transform:scale(.94)}\n#shell-cafe .add svg{width:14px;height:14px}\n#shell-cafe .step{display:inline-flex;align-items:center;gap:4px;padding:2px;border-radius:99px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.5)}\n#shell-cafe .step button{width:30px;height:30px;border-radius:50%;font-size:1.25rem;line-height:1;font-weight:600;transition:transform .2s var(--ease)}\n#shell-cafe .step button:active{transform:scale(.86)}\n#shell-cafe .step output{min-width:24px;text-align:center;font-weight:800}\n#shell-cafe .item.feat{grid-column:span 2;padding:18px 160px 18px 18px;justify-content:center;align-items:flex-start;text-align:right;gap:6px}\n#shell-cafe .item.feat h3{font-size:1.25rem}\n#shell-cafe .item.feat .desc{min-height:0;font-size:.85rem;max-width:34ch}\n#shell-cafe .item.feat .buy{margin-top:6px;width:100%;max-width:290px;justify-content:space-between}\n#shell-cafe .item.feat .art{top:50%;left:22px;width:130px;height:130px;margin:0;transform:translate3d(0,-50%,80px)}\n#shell-cafe .tag{display:inline-block;padding:1px 10px;border-radius:99px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.7);font-size:.75rem;font-weight:600;color:var(--espresso)}\n\/* ---------- Gallery ---------- *\/\n#shell-cafe .gallery{position:relative;overflow:hidden;padding:clamp(36px,7vw,72px) 16px clamp(48px,8vw,90px);scroll-margin-top:0}\n#shell-cafe .g-in{max-width:520px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center}\n#shell-cafe .g-in h2{font-size:clamp(1.8rem,5vw,2.6rem);font-weight:800;line-height:1.2;color:var(--roast)}\n#shell-cafe .deck-wrap{display:flex;justify-content:center;width:100%}\n#shell-cafe .deck{\n  position:relative;width:min(62vw,240px);aspect-ratio:4\/5;touch-action:pan-y;cursor:grab;outline-offset:10px;\n  user-select:none;-webkit-user-select:none;margin-inline:auto;\n}\n#shell-cafe .deck.dragging{cursor:grabbing}\n#shell-cafe .gcard{\n  position:absolute;inset:0;margin:0;border-radius:26px;overflow:hidden;\n  background:rgba(255,255,255,.1);\n  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);\n  border:1px solid rgba(255,255,255,.75);box-shadow:0 26px 40px -26px rgba(43,27,18,.5),inset 0 1px 0 rgba(255,255,255,.8);\n  transition:transform .6s var(--ease),opacity .5s;will-change:transform;\n}\n#shell-cafe .deck.dragging .gcard{transition:none}\n#shell-cafe .gcard.fly{transition:transform .42s cubic-bezier(.5,0,.8,.4),opacity .38s}\n#shell-cafe .gcard img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}\n#shell-cafe .ph{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-weight:600;font-size:.9rem}\n#shell-cafe .ph svg{width:42px;height:42px;color:var(--latte)}\n#shell-cafe .gcard figcaption{\n  position:absolute;right:10px;left:10px;bottom:10px;padding:7px 12px;border-radius:16px;font-weight:800;font-size:.85rem;color:var(--espresso);\n  background:rgba(255,255,255,.28);border:1px solid rgba(255,255,255,.75);-webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5);\n}\n#shell-cafe .g-ctl{display:flex;align-items:center;justify-content:center;gap:12px}\n#shell-cafe .dots{display:flex;gap:8px;align-items:center}\n#shell-cafe .dot{position:relative;width:22px;height:12px;border-radius:50%;background:rgba(43,27,18,.14);border:1px solid rgba(255,255,255,.6);overflow:hidden;transition:width .4s var(--ease),background .3s}\n#shell-cafe .dot.on{width:52px;background:rgba(43,27,18,.1)}\n#shell-cafe .dot i{position:absolute;inset:0;width:0;background:rgba(43,27,18,.55);border-radius:inherit;display:block}\n#shell-cafe .dot:not(.on) i{display:none}\n@keyframes shell-fillbar{to{width:100%}}\n#shell-cafe .arrow{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.7);color:var(--espresso);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .25s var(--ease)}\n#shell-cafe .arrow:hover{transform:scale(1.08)}\n#shell-cafe .arrow svg{width:18px;height:18px}\n\/* ---------- Footer ---------- *\/\n#shell-cafe .info{position:relative;padding:clamp(24px,5vw,56px) clamp(14px,4vw,48px) 130px;scroll-margin-top:0}\n#shell-cafe .foot{\n  max-width:1040px;margin:0 auto;padding:clamp(24px,4vw,40px);border-radius:34px;\n  display:grid;grid-template-columns:auto repeat(3,1fr);align-items:center;gap:clamp(20px,4vw,44px);\n  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.7);\n  -webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);\n  box-shadow:0 26px 44px -28px rgba(43,27,18,.4),inset 0 1px 0 rgba(255,255,255,.8);\n}\n#shell-cafe .f-logo{width:92px;height:92px;display:block}\n#shell-cafe .f-col h3{font-size:.85rem;font-weight:600;color:var(--muted);margin-bottom:6px}\n#shell-cafe .f-col p{font-size:1.05rem;font-weight:800;line-height:1.7;color:var(--espresso)}\n#shell-cafe .f-col a.map{display:inline-block;margin-top:4px;font-size:.88rem;font-weight:600;color:var(--roast)}\n#shell-cafe .insta{padding:11px 22px;font-size:.98rem;gap:10px;direction:ltr}\n#shell-cafe .insta svg{width:22px;height:22px;animation:none}\n\/* ---------- Cart ---------- *\/\n#shell-cafe .bar{\n  position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));z-index:65;\n  display:flex;align-items:center;gap:14px;padding:9px 26px 9px 9px;border-radius:99px;\n  font-weight:600;white-space:nowrap;\n  transform:translate(-50%,160%);visibility:hidden;\n  transition:transform .5s var(--ease),visibility 0s .5s;\n}\n#shell-cafe .bar.show{transform:translate(-50%,0);visibility:visible;transition:transform .5s var(--ease),visibility 0s}\n#shell-cafe .bar .cnt{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.35);border:1px solid rgba(255,255,255,.8);color:var(--espresso);font-weight:800;text-shadow:none}\n#shell-cafe .bar strong{font-weight:800}\n#shell-cafe .fly{position:fixed;width:20px;height:13px;z-index:90;pointer-events:none}\n#shell-cafe .fly svg{width:100%;height:100%;display:block;filter:drop-shadow(0 4px 3px rgba(43,27,18,.4))}\n#shell-cafe .scrim{position:fixed;inset:0;z-index:70;background:rgba(43,27,18,.4);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .35s}\n#shell-cafe.cart-open .scrim{opacity:1;pointer-events:auto}\n#shell-cafe .drawer{\n  position:fixed;z-index:80;top:0;bottom:0;left:0;width:min(440px,100%);\n  display:flex;flex-direction:column;background:rgba(255,253,249,.72);overflow:hidden;\n  -webkit-backdrop-filter:blur(30px) saturate(1.7);backdrop-filter:blur(30px) saturate(1.7);\n  border-right:1px solid var(--glass-edge);\n  transform:translateX(-104%);transition:transform .5s var(--ease);\n  box-shadow:30px 0 80px -30px rgba(43,27,18,.5);\n}\n#shell-cafe.cart-open .drawer{transform:none}\n#shell-cafe .d-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line)}\n#shell-cafe .d-head h2{font-size:1.3rem;font-weight:800;color:var(--roast)}\n#shell-cafe .x{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.6);border:1px solid var(--glass-edge);display:grid;place-items:center;color:var(--roast)}\n#shell-cafe .x svg{width:18px;height:18px}\n#shell-cafe .d-body{flex:1;overflow-y:auto;padding:8px 24px}\n#shell-cafe .line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}\n#shell-cafe .line:last-child{border-bottom:0}\n#shell-cafe .line b{display:block;font-weight:600;color:var(--roast)}\n#shell-cafe .line span.p{font-size:.88rem;color:var(--muted)}\n#shell-cafe .line .step{flex:none}\n#shell-cafe .empty{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;padding:56px 12px;color:var(--muted)}\n#shell-cafe .empty .cta{padding:13px 40px;font-size:.95rem}\n#shell-cafe .d-foot{padding:18px 24px calc(20px + env(safe-area-inset-bottom));border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px;background:rgba(251,243,230,.5)}\n#shell-cafe .field{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600;color:var(--roast)}\n#shell-cafe .field input{\n  width:120px;padding:10px 14px;border-radius:14px;border:1.5px solid var(--glass-edge);background:rgba(255,255,255,.7);text-align:center;font-weight:600;\n}\n#shell-cafe .field input:focus-visible{outline-offset:1px;border-color:var(--nescafe)}\n#shell-cafe .field input[aria-invalid=\"true\"]{border-color:#B5503A}\n#shell-cafe .err{min-height:1.4em;margin-top:-6px;font-size:.85rem;color:#A63F2A}\n#shell-cafe .sum{display:flex;justify-content:space-between;align-items:baseline;font-size:1.05rem}\n#shell-cafe .sum strong{font-size:1.35rem;font-weight:800;color:var(--roast)}\n#shell-cafe .primary{padding:15px;border-radius:99px;font-weight:600;font-size:1.05rem;transition:transform .2s var(--ease)}\n#shell-cafe .primary:active{transform:scale(.98)}\n#shell-cafe .primary:disabled{opacity:.5;cursor:not-allowed}\n#shell-cafe .done{\n  position:absolute;inset:0;z-index:2;background:rgba(255,253,249,.88);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);\n  display:none;flex-direction:column;align-items:center;justify-content:center;\n  gap:12px;padding:32px;text-align:center;\n}\n#shell-cafe .done.on{display:flex}\n#shell-cafe .done h2{font-size:1.7rem;font-weight:800;color:var(--roast)}\n#shell-cafe .done p{color:var(--muted);max-width:28ch}\n#shell-cafe .done .code{margin-top:4px;padding:8px 20px;border-radius:99px;background:rgba(239,225,203,.8);font-weight:800;color:var(--roast);letter-spacing:.04em}\n#shell-cafe .done svg.ok{width:92px;height:92px;margin-bottom:6px}\n#shell-cafe .done svg.ok circle{fill:none;stroke:var(--nescafe);stroke-width:4;stroke-dasharray:252;stroke-dashoffset:252}\n#shell-cafe .done svg.ok path{fill:none;stroke:var(--nescafe);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:60;stroke-dashoffset:60}\n#shell-cafe .done.on svg.ok circle{animation:shell-draw .7s var(--ease) forwards}\n#shell-cafe .done.on svg.ok path{animation:shell-draw .5s .45s var(--ease) forwards}\n@keyframes shell-draw{to{stroke-dashoffset:0}}\n#shell-cafe .done .cta{margin-top:12px;border:0}\n\/* ---------- Responsive ---------- *\/\n@media (max-width:860px){\n#shell-cafe .links{display:none}\n#shell-cafe .hero{align-items:flex-end;padding-top:calc(var(--nav-h) + 4px);padding-bottom:28px}\n#shell-cafe .hero-text{gap:14px;max-width:none;width:100%}\n#shell-cafe .hero h1{font-size:clamp(4.6rem,24vw,7.5rem)}\n#shell-cafe .hero-text p{font-size:1.05rem}\n#shell-cafe .cartbtn span.t{display:none}\n#shell-cafe .item.feat{padding-right:140px}\n#shell-cafe .item.feat .art{width:110px;height:110px;left:14px}\n}\n@media (max-width:720px){\n#shell-cafe .drawer{top:auto;width:100%;max-height:90vh;max-height:90svh;border-radius:28px 28px 0 0;transform:translateY(106%);box-shadow:0 -30px 80px -30px rgba(43,27,18,.5)}\n#shell-cafe.cart-open .drawer{transform:none}\n#shell-cafe .stage-in{padding:14px 20px;gap:14px}\n#shell-cafe .stage-art{width:96px;height:72px}\n}\n@media (max-width:860px){\n#shell-cafe .foot{grid-template-columns:1fr 1fr;text-align:center;justify-items:center}\n#shell-cafe .foot .f-logo{grid-column:1 \/ -1}\n}\n@media (max-width:599px){\n#shell-cafe .foot{grid-template-columns:1fr;gap:22px}\n#shell-cafe .grid{grid-template-columns:1fr;gap:10px;padding-top:24px}\n#shell-cafe .item,\n#shell-cafe .item.feat{\n    display:grid;grid-template-columns:72px 1fr;gap:2px 12px;align-items:center;text-align:right;\n    padding:12px;border-radius:22px;grid-column:auto;transform:none!important;\n  }\n#shell-cafe .item .art,\n#shell-cafe .item.feat .art{position:relative;top:auto;left:auto;width:72px;height:72px;margin:0;transform:none;grid-row:1 \/ span 2;filter:drop-shadow(0 10px 8px rgba(74,46,27,.28))}\n#shell-cafe .item.feat .art{width:72px;height:72px}\n#shell-cafe .item h3,\n#shell-cafe .item.feat h3{font-size:.95rem;align-self:end}\n#shell-cafe .item .desc,\n#shell-cafe .item.feat .desc{min-height:0;font-size:.78rem;align-self:start}\n#shell-cafe .item .buy,\n#shell-cafe .item.feat .buy{grid-column:1 \/ -1;max-width:none;margin-top:8px;padding-top:0}\n#shell-cafe .item.feat .tag{grid-column:2;justify-self:start}\n#shell-cafe .item::after{display:none}\n#shell-cafe .menu-head{padding-bottom:8px}\n}\n@media (prefers-reduced-motion:reduce){\n#shell-cafe *,\n#shell-cafe *::before,\n#shell-cafe *::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}\n}\n<\/style>\n<div id=\"shell-cafe\" dir=\"rtl\" lang=\"fa\">\n<svg width=\"0\" height=\"0\" style=\"position:absolute\" aria-hidden=\"true\" focusable=\"false\"><defs>\n  <radialGradient id=\"shellBeanG\" cx=\".35\" cy=\".3\" r=\".9\"><stop offset=\"0\" stop-color=\"#A8774C\"\/><stop offset=\".55\" stop-color=\"#6A4126\"\/><stop offset=\"1\" stop-color=\"#34200F\"\/><\/radialGradient>\n  <symbol id=\"shellBean\" viewBox=\"0 0 24 16\">\n    <ellipse cx=\"12\" cy=\"8\" rx=\"11\" ry=\"7.2\" fill=\"url(#beanG)\"\/>\n    <path d=\"M2.6 8.6C8 3 15 13 21.4 7\" fill=\"none\" stroke=\"#1B0E06\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n    <ellipse cx=\"8\" cy=\"4.8\" rx=\"3.6\" ry=\"1.4\" fill=\"#fff\" opacity=\".28\" transform=\"rotate(-15 8 4.8)\"\/>\n  <\/symbol>\n<\/defs><\/svg>\n\n<div class=\"aurora\" aria-hidden=\"true\"><i><\/i><i><\/i><i><\/i><\/div>\n\n<header class=\"nav\" id=\"nav\">\n  <a class=\"brand\" href=\"#top\" aria-label=\"Shell\u060c \u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc\">\n    <span id=\"navSlot\"><svg class=\"fallback\" aria-hidden=\"true\"><\/svg><\/span>\n    <span class=\"latin\">Shell<\/span>\n  <\/a>\n  <div class=\"nav-actions\">\n    <button class=\"cartbtn\" id=\"openCart\" aria-label=\"\u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u0633\u0628\u062f \u0633\u0641\u0627\u0631\u0634\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 8h14l-1.2 11.2a2 2 0 0 1-2 1.8H8.2a2 2 0 0 1-2-1.8L5 8Z\"\/><path d=\"M9 8V6.5a3 3 0 0 1 6 0V8\"\/><\/svg>\n      <span class=\"t\">\u0633\u0628\u062f \u0633\u0641\u0627\u0631\u0634<\/span>\n      <span class=\"badge\" id=\"navCount\" data-n=\"0\">\u06f0<\/span>\n    <\/button>\n    <button class=\"burger\" id=\"burger\" type=\"button\" aria-label=\"\u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u0645\u0646\u0648\" aria-expanded=\"false\" aria-controls=\"mpanel\"><i><\/i><i><\/i><i><\/i><\/button>\n  <\/div>\n<\/header>\n\n<div class=\"mscrim\" id=\"mscrim\"><\/div>\n<nav class=\"mpanel\" id=\"mpanel\" aria-label=\"\u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u0633\u0627\u06cc\u062a\" inert>\n  <button type=\"button\" data-go=\"#top\" data-label=\"\u062e\u0627\u0646\u0647\" style=\"--k:0\">\u062e\u0627\u0646\u0647<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9 6l6 6-6 6\"\/><\/svg><\/button>\n  <button type=\"button\" data-go=\"#gallery\" data-label=\"\u0641\u0636\u0627\u06cc \u06a9\u0627\u0641\u0647\" style=\"--k:1\">\u0641\u0636\u0627\u06cc \u06a9\u0627\u0641\u0647<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9 6l6 6-6 6\"\/><\/svg><\/button>\n  <button type=\"button\" data-go=\"#about\" data-label=\"\u062f\u0631\u0628\u0627\u0631\u0647 \u0645\u0627\" style=\"--k:2\">\u062f\u0631\u0628\u0627\u0631\u0647 \u0645\u0627<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9 6l6 6-6 6\"\/><\/svg><\/button>\n  <button type=\"button\" data-go=\"#info\" data-label=\"\u062a\u0645\u0627\u0633\" style=\"--k:3\">\u062a\u0645\u0627\u0633<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9 6l6 6-6 6\"\/><\/svg><\/button>\n<\/nav>\n\n<div class=\"curtain\" id=\"curtain\" aria-hidden=\"true\">\n  <div class=\"c-in\" id=\"curtainIn\"><span class=\"latin\">Shell<\/span><b id=\"curtainLabel\"><\/b><\/div>\n<\/div>\n\n<div class=\"shell-main\" id=\"top\">\n  <section class=\"hero\" id=\"hero\">\n    <div class=\"hero-video empty\" id=\"heroVideoBox\" aria-hidden=\"true\">\n      <video id=\"heroVideo\" muted loop playsinline preload=\"auto\"><\/video>\n    <\/div>\n    <div class=\"hero-text\">\n      <h1 aria-label=\"Shell\"><b aria-hidden=\"true\" style=\"--i:0\">S<\/b><b aria-hidden=\"true\" style=\"--i:1\">h<\/b><b aria-hidden=\"true\" style=\"--i:2\">e<\/b><b aria-hidden=\"true\" style=\"--i:3\">l<\/b><b aria-hidden=\"true\" style=\"--i:4\">l<\/b><\/h1>\n      <p>\u0642\u0647\u0648\u0647\u200c\u06cc \u062a\u0627\u0632\u0647\u060c \u0635\u0628\u062d\u0627\u0646\u0647 \u0648 \u062f\u0633\u0631 \u062f\u0631 \u0641\u0636\u0627\u06cc\u06cc \u0622\u0631\u0627\u0645.<\/p>\n      <a class=\"cta\" href=\"#menu\">\n        \u062f\u06cc\u062f\u0646 \u0645\u0646\u0648\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 5v14M6 13l6 6 6-6\"\/><\/svg>\n      <\/a>\n    <\/div>\n  <\/section>\n\n  <section class=\"menu\" id=\"menu\" aria-labelledby=\"menuTitle\">\n    <div class=\"menu-head\">\n      <h2 id=\"menuTitle\">\u0645\u0646\u0648<\/h2>\n    <\/div>\n    <div class=\"tabs\" id=\"tabsWrap\">\n      <div class=\"track\" id=\"track\" role=\"tablist\" aria-label=\"\u062f\u0633\u062a\u0647\u200c\u0628\u0646\u062f\u06cc \u0645\u0646\u0648\">\n        <span class=\"ind\" id=\"ind\" aria-hidden=\"true\"><\/span>\n      <\/div>\n    <\/div>\n    <div class=\"stage\"><div class=\"stage-in\" id=\"stage\"><\/div><\/div>\n    <div class=\"grid\" id=\"grid\" role=\"tabpanel\"><\/div>\n  <\/section>\n\n  <section class=\"gallery\" id=\"gallery\" aria-labelledby=\"galTitle\">\n    <div class=\"g-in\">\n      <h2 id=\"galTitle\">\u0641\u0636\u0627\u06cc \u0634\u0644<\/h2>\n      <div class=\"deck-wrap\">\n        <div class=\"deck\" id=\"deck\" tabindex=\"0\" role=\"group\" aria-roledescription=\"carousel\" aria-label=\"\u0639\u06a9\u0633\u200c\u0647\u0627\u06cc \u06a9\u0627\u0641\u0647\"><\/div>\n      <\/div>\n      <div class=\"g-ctl\">\n        <button class=\"arrow\" id=\"gPrev\" type=\"button\" aria-label=\"\u0639\u06a9\u0633 \u0642\u0628\u0644\u06cc\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9 6l6 6-6 6\"\/><\/svg><\/button>\n        <div class=\"dots\" id=\"dots\"><\/div>\n        <button class=\"arrow\" id=\"gNext\" type=\"button\" aria-label=\"\u0639\u06a9\u0633 \u0628\u0639\u062f\u06cc\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15 6l-6 6 6 6\"\/><\/svg><\/button>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"about\" id=\"about\" aria-labelledby=\"aboutTitle\">\n    <div class=\"about-in\">\n      <h2 id=\"aboutTitle\">\u062f\u0631\u0628\u0627\u0631\u0647 \u0645\u0627<\/h2>\n      <!-- Replace this text with your own story -->\n      <p>\u0634\u0644 \u06a9\u0627\u0641\u0647\u200c\u0627\u06cc \u0622\u0631\u0627\u0645 \u062f\u0631 \u0635\u0648\u0645\u0639\u0647\u200c\u0633\u0631\u0627\u060c \u062f\u0627\u062e\u0644 \u0639\u0645\u0627\u0631\u062a \u0641\u0631\u062c\u0648\u062f\u06cc \u0627\u0633\u062a\u061b \u062c\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0641\u0646\u062c\u0627\u0646 \u0642\u0647\u0648\u0647\u200c\u06cc \u062a\u0627\u0632\u0647\u060c \u06cc\u06a9 \u0635\u0628\u062d\u0627\u0646\u0647\u200c\u06cc \u062e\u0648\u0628 \u06cc\u0627 \u062f\u0633\u0631\u06cc \u06a9\u0646\u0627\u0631 \u062f\u0648\u0633\u062a\u0627\u0646.<\/p>\n      <p>\u0647\u0645\u0647\u200c\u06cc \u0646\u0648\u0634\u06cc\u062f\u0646\u06cc\u200c\u0647\u0627 \u0648 \u063a\u0630\u0627\u0647\u0627\u06cc \u0645\u0627 \u062a\u0627\u0632\u0647 \u062a\u0647\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u0645 \u0647\u0631 \u0628\u0627\u0631 \u06a9\u0647 \u0645\u06cc\u200c\u0622\u06cc\u06cc\u060c \u062d\u0633 \u0631\u0627\u062d\u062a\u06cc \u0648 \u0622\u0631\u0627\u0645\u0634 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc.<\/p>\n    <\/div>\n  <\/section>\n\n  <footer class=\"info\" id=\"info\" aria-label=\"\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062a\u0645\u0627\u0633\">\n    <div class=\"foot\">\n      <svg class=\"fallback f-logo\" role=\"img\" aria-label=\"\u0644\u0648\u06af\u0648\u06cc \u06a9\u0627\u0641\u0647\"><\/svg>\n      <div class=\"f-col\">\n        <h3>\u0633\u0627\u0639\u062a \u06a9\u0627\u0631\u06cc<\/h3>\n        <p>\u0647\u0631 \u0631\u0648\u0632\u060c \u0627\u0632 8 \u0635\u0628\u062d \u062a\u0627 10 \u0634\u0628<\/p>\n      <\/div>\n      <div class=\"f-col\">\n        <h3>\u0622\u062f\u0631\u0633<\/h3>\n        <p id=\"addr\"><\/p>\n      <\/div>\n      <div class=\"f-col\">\n        <h3>\u0627\u06cc\u0646\u0633\u062a\u0627\u06af\u0631\u0627\u0645<\/h3>\n        <a class=\"cta insta\" id=\"insta\" href=\"https:\/\/www.instagram.com\/shellcafe2026\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"\u0635\u0641\u062d\u0647\u200c\u06cc \u0627\u06cc\u0646\u0633\u062a\u0627\u06af\u0631\u0627\u0645 \u0645\u0627\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"5.5\"\/><circle cx=\"12\" cy=\"12\" r=\"4.2\"\/><circle cx=\"17.4\" cy=\"6.6\" r=\"1.1\" fill=\"currentColor\" stroke=\"none\"\/><\/svg>\n          <span>@shellcafe2026<\/span>\n        <\/a>\n      <\/div>\n    <\/div>\n  <\/footer>\n<\/div>\n\n<button class=\"bar\" id=\"bar\" aria-label=\"\u0645\u0634\u0627\u0647\u062f\u0647 \u0633\u0628\u062f \u0633\u0641\u0627\u0631\u0634\">\n  <span class=\"cnt\" id=\"barCount\">\u06f0<\/span>\n  <span>\u0645\u0634\u0627\u0647\u062f\u0647 \u0633\u0628\u062f<\/span>\n  <strong id=\"barTotal\"><\/strong>\n<\/button>\n\n<div class=\"scrim\" id=\"scrim\"><\/div>\n<aside class=\"drawer\" id=\"drawer\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"drawerTitle\" inert>\n  <div class=\"d-head\">\n    <h2 id=\"drawerTitle\">\u0633\u0628\u062f \u0633\u0641\u0627\u0631\u0634<\/h2>\n    <button class=\"x\" id=\"closeCart\" aria-label=\"\u0628\u0633\u062a\u0646 \u0633\u0628\u062f\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M6 6l12 12M18 6L6 18\"\/><\/svg>\n    <\/button>\n  <\/div>\n  <div class=\"d-body\" id=\"dBody\"><\/div>\n  <form class=\"d-foot\" id=\"orderForm\" novalidate>\n    <label class=\"field\" for=\"table\">\u0634\u0645\u0627\u0631\u0647 \u0645\u06cc\u0632\n      <input id=\"table\" inputmode=\"numeric\" autocomplete=\"off\" placeholder=\"\u0645\u062b\u0644\u0627\u064b \u06f5\" aria-describedby=\"tErr\">\n    <\/label>\n    <p class=\"err\" id=\"tErr\" role=\"alert\"><\/p>\n    <div class=\"sum\"><span>\u062c\u0645\u0639 \u06a9\u0644<\/span><strong id=\"dTotal\"><\/strong><\/div>\n    <button class=\"primary\" id=\"submit\" type=\"submit\">\u062b\u0628\u062a \u0633\u0641\u0627\u0631\u0634<\/button>\n  <\/form>\n  <div class=\"done\" id=\"done\">\n    <svg class=\"ok\" viewBox=\"0 0 92 92\" aria-hidden=\"true\"><circle cx=\"46\" cy=\"46\" r=\"40\"\/><path d=\"M29 47l12 12 23-26\"\/><\/svg>\n    <h2>\u0633\u0641\u0627\u0631\u0634\u062a \u062b\u0628\u062a \u0634\u062f<\/h2>\n    <p id=\"doneMsg\"><\/p>\n    <span class=\"code\" id=\"doneCode\"><\/span>\n    <button class=\"cta\" id=\"doneClose\" type=\"button\">\u0628\u0633\u062a\u0646<\/button>\n  <\/div>\n<\/aside>\n<\/div>\n<script>\n(function(){\nconst ROOT = document.getElementById('shell-cafe');\nif(!ROOT) return;\n\/* =====================================================\n   MENU DATA: edit names, descriptions and prices (Toman) here\n   ===================================================== *\/\nconst CATS = [\n  {id:'hot',   name:'\u0642\u0647\u0648\u0647 \u06af\u0631\u0645'},\n  {id:'cold',  name:'\u0642\u0647\u0648\u0647 \u0633\u0631\u062f'},\n  {id:'other', name:'\u0646\u0648\u0634\u06cc\u062f\u0646\u06cc\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631'},\n  {id:'food',  name:'\u0635\u0628\u062d\u0627\u0646\u0647'},\n  {id:'sweet', name:'\u062f\u0633\u0631'}\n];\n\nconst ITEMS = [\n  {id:'nes', cat:'hot', feat:true, name:'\u0646\u0633\u06a9\u0627\u0641\u0647 \u0634\u0644', desc:'\u0646\u0633\u06a9\u0627\u0641\u0647\u200c\u06cc \u06a9\u0641\u200c\u062f\u0627\u0631 \u0628\u0627 \u0634\u06cc\u0631 \u062f\u0627\u063a \u0648 \u06a9\u0645\u06cc \u062f\u0627\u0631\u0686\u06cc\u0646. \u0627\u0645\u0636\u0627\u06cc \u06a9\u0627\u0641\u0647.', price:120000,\n    art:{k:'cup', d:['#A9764B','#5E3A20'], deco:'spiral', f:'#F7EAD6'}},\n  {id:'esp', cat:'hot', name:'\u0627\u0633\u067e\u0631\u0633\u0648', desc:'\u062f\u0648 \u0634\u0627\u062a \u0627\u0633\u067e\u0631\u0633\u0648\u06cc \u063a\u0644\u06cc\u0638 \u0628\u0627 \u06a9\u0650\u0631\u0650\u0645\u0627\u06cc \u0637\u0644\u0627\u06cc\u06cc.', price:85000,\n    art:{k:'cup', d:['#5B3620','#2A170C'], deco:'crema'}},\n  {id:'ame', cat:'hot', name:'\u0622\u0645\u0631\u06cc\u06a9\u0627\u0646\u0648', desc:'\u0627\u0633\u067e\u0631\u0633\u0648 \u0628\u0627 \u0622\u0628 \u062f\u0627\u063a\u061b \u0633\u0627\u062f\u0647 \u0648 \u0631\u0648\u0634\u0646.', price:95000,\n    art:{k:'cup', d:['#6A4126','#34200F'], deco:'crema'}},\n  {id:'cap', cat:'hot', name:'\u06a9\u0627\u067e\u0648\u0686\u06cc\u0646\u0648', desc:'\u0627\u0633\u067e\u0631\u0633\u0648\u060c \u0634\u06cc\u0631 \u0628\u062e\u0627\u0631\u200c\u062f\u0627\u062f\u0647 \u0648 \u06a9\u0641 \u0636\u062e\u06cc\u0645.', price:125000,\n    art:{k:'cup', d:['#DDC29B','#A87B4F'], deco:'foam', f:'#F7EBDA'}},\n  {id:'lat', cat:'hot', name:'\u0644\u0627\u062a\u0647', desc:'\u0634\u06cc\u0631 \u0627\u0628\u0631\u06cc\u0634\u0645\u06cc \u0628\u0627 \u06cc\u06a9 \u0634\u0627\u062a \u0627\u0633\u067e\u0631\u0633\u0648.', price:135000,\n    art:{k:'cup', d:['#E4CAA4','#B58A5A'], deco:'heart', f:'#FFF7EA'}},\n  {id:'moc', cat:'hot', name:'\u0645\u0648\u06a9\u0627', desc:'\u0627\u0633\u067e\u0631\u0633\u0648 \u0648 \u0634\u06a9\u0644\u0627\u062a \u062a\u0644\u062e \u0628\u0627 \u0634\u06cc\u0631.', price:145000,\n    art:{k:'cup', d:['#6B4330','#3A2013'], deco:'ring', f:'#EBD6BC'}},\n\n  {id:'ilt', cat:'cold', name:'\u0622\u06cc\u0633 \u0644\u0627\u062a\u0647', desc:'\u0627\u0633\u067e\u0631\u0633\u0648\u060c \u0634\u06cc\u0631 \u0633\u0631\u062f \u0648 \u06cc\u062e.', price:140000,\n    art:{k:'glass', d:['#EBD6B6','#B98E5E']}},\n  {id:'iam', cat:'cold', name:'\u0622\u06cc\u0633 \u0622\u0645\u0631\u06cc\u06a9\u0627\u0646\u0648', desc:'\u0627\u0633\u067e\u0631\u0633\u0648\u06cc \u062a\u0627\u0632\u0647 \u0631\u0648\u06cc \u06cc\u062e.', price:110000,\n    art:{k:'glass', d:['#7A4A2A','#3A2111']}},\n  {id:'cbr', cat:'cold', name:'\u06a9\u0644\u062f \u0628\u0631\u0648', desc:'\u0642\u0647\u0648\u0647\u200c\u0627\u06cc \u06a9\u0647 \u06f1\u06f2 \u0633\u0627\u0639\u062a \u0628\u0627 \u0622\u0628 \u0633\u0631\u062f \u062f\u0645 \u06a9\u0634\u06cc\u062f\u0647.', price:130000,\n    art:{k:'glass', d:['#5A3520','#241208']}},\n  {id:'fra', cat:'cold', name:'\u0641\u0631\u0627\u067e\u0647 \u0646\u0633\u06a9\u0627\u0641\u0647', desc:'\u0646\u0633\u06a9\u0627\u0641\u0647\u200c\u06cc \u06cc\u062e\u06cc \u0648 \u06a9\u0641\u200c\u062f\u0627\u0631 \u0628\u0627 \u062e\u0627\u0645\u0647.', price:155000,\n    art:{k:'glass', d:['#CFAA82','#8B5E3C'], top:'cream'}},\n\n  {id:'hch', cat:'other', name:'\u0647\u0627\u062a\u200c\u0686\u0627\u06a9\u0644\u062a', desc:'\u0634\u06a9\u0644\u0627\u062a \u062f\u0627\u063a \u0648 \u063a\u0644\u06cc\u0638 \u0628\u0627 \u0645\u0627\u0631\u0634\u0645\u0627\u0644\u0648.', price:130000,\n    art:{k:'cup', d:['#6B3E2A','#35190E'], deco:'marsh'}},\n  {id:'chi', cat:'other', name:'\u0686\u0627\u06cc \u0645\u0627\u0633\u0627\u0644\u0627', desc:'\u0686\u0627\u06cc \u0647\u0646\u062f\u06cc \u0628\u0627 \u0634\u06cc\u0631 \u0648 \u0627\u062f\u0648\u06cc\u0647\u200c\u06cc \u06af\u0631\u0645.', price:110000,\n    art:{k:'cup', d:['#D09A60','#8D5A2C'], deco:'foam', f:'#F2DDBE'}},\n  {id:'lem', cat:'other', name:'\u0644\u06cc\u0645\u0648\u0646\u0627\u062f \u0646\u0639\u0646\u0627', desc:'\u0644\u06cc\u0645\u0648\u06cc \u062a\u0627\u0632\u0647\u060c \u0646\u0639\u0646\u0627 \u0648 \u06cc\u062e.', price:105000,\n    art:{k:'glass', d:['#F6EAA0','#E1C85A'], top:'lemon'}},\n  {id:'shk', cat:'other', name:'\u0634\u06cc\u06a9 \u0648\u0627\u0646\u06cc\u0644', desc:'\u0628\u0633\u062a\u0646\u06cc \u0648\u0627\u0646\u06cc\u0644\u06cc\u060c \u0634\u06cc\u0631 \u0648 \u062e\u0627\u0645\u0647.', price:165000,\n    art:{k:'glass', d:['#FFF5E0','#EBD2A8'], top:'cream'}},\n\n  {id:'cro', cat:'food', name:'\u06a9\u0631\u0648\u0633\u0627\u0646 \u06a9\u0631\u0647', desc:'\u062a\u0627\u0632\u0647 \u0627\u0632 \u0641\u0631\u060c \u0628\u0627 \u06a9\u0631\u0647\u200c\u06cc \u062e\u0648\u0634\u200c\u0639\u0637\u0631.', price:95000,\n    art:{k:'croissant'}},\n  {id:'tst', cat:'food', name:'\u062a\u0633\u062a \u0622\u0648\u0648\u06a9\u0627\u062f\u0648', desc:'\u0646\u0627\u0646 \u062a\u0633\u062a\u060c \u0622\u0648\u0648\u06a9\u0627\u062f\u0648 \u0648 \u062a\u062e\u0645\u200c\u0645\u0631\u063a.', price:185000,\n    art:{k:'toast'}},\n  {id:'omo', cat:'food', name:'\u0627\u0645\u0644\u062a \u062e\u0648\u0646\u06af\u06cc', desc:'\u06af\u0648\u062c\u0647\u060c \u0633\u0628\u0632\u06cc \u0648 \u067e\u0646\u06cc\u0631\u060c \u0628\u0627 \u0646\u0627\u0646 \u062a\u0627\u0632\u0647.', price:170000,\n    art:{k:'omelette'}},\n\n  {id:'chz', cat:'sweet', name:'\u0686\u06cc\u0632\u06a9\u06cc\u06a9', desc:'\u067e\u0646\u06cc\u0631 \u062e\u0627\u0645\u0647\u200c\u0627\u06cc \u0628\u0627 \u0633\u0633 \u06a9\u0627\u0631\u0627\u0645\u0644.', price:165000,\n    art:{k:'wedge', top:'#F6E5C3', crust:'#C99A5E', sauce:'#B5651D'}},\n  {id:'bro', cat:'sweet', name:'\u0628\u0631\u0627\u0648\u0646\u06cc', desc:'\u0634\u06a9\u0644\u0627\u062a \u062a\u0644\u062e \u0648 \u06af\u0631\u0645\u060c \u0628\u0627 \u067e\u0648\u062f\u0631 \u0642\u0646\u062f.', price:120000,\n    art:{k:'brownie'}},\n  {id:'tir', cat:'sweet', name:'\u062a\u06cc\u0631\u0627\u0645\u06cc\u0633\u0648', desc:'\u0645\u0627\u0633\u06a9\u0627\u0631\u067e\u0648\u0646\u0647\u060c \u0642\u0647\u0648\u0647 \u0648 \u06a9\u0627\u06a9\u0627\u0626\u0648.', price:175000,\n    art:{k:'wedge', top:'#8A5B3E', crust:'#E8D3AE', sauce:'#5A3420', dust:true}},\n  {id:'cok', cat:'sweet', name:'\u06a9\u0648\u06a9\u06cc \u0634\u06a9\u0644\u0627\u062a\u06cc', desc:'\u0646\u0631\u0645 \u0627\u0632 \u0648\u0633\u0637\u060c \u062a\u0631\u062f\u0650 \u0644\u0628\u0647\u200c\u0647\u0627.', price:80000,\n    art:{k:'cookie'}}\n];\n\n\/* =====================================================\n   ITEM PHOTOS: put the full image URL of each item inside ''\n   Example:  esp:'https:\/\/your-site.com\/wp-content\/uploads\/espresso.jpg'\n   If empty, the illustrated drawing is shown instead\n   ===================================================== *\/\nconst PHOTOS = {\n  nes:'', esp:'', ame:'', cap:'', lat:'', moc:'',\n  ilt:'', iam:'', cbr:'', fra:'',\n  hch:'', chi:'', lem:'', shk:'',\n  cro:'', tst:'', omo:'',\n  chz:'', bro:'', tir:'', cok:''\n};\n\n\/* =====================================================\n   CAFE PHOTOS (four cards): image URL and title of each card\n   ===================================================== *\/\nconst GALLERY = [\n  {img:'', t:'\u0646\u0634\u06cc\u0645\u0646 \u0627\u0635\u0644\u06cc'},\n  {img:'', t:'\u0628\u0627\u0631 \u0642\u0647\u0648\u0647'},\n  {img:'', t:'\u0641\u0636\u0627\u06cc \u0628\u06cc\u0631\u0648\u0646\u06cc'},\n  {img:'', t:'\u0645\u06cc\u0632 \u06a9\u0646\u0627\u0631 \u067e\u0646\u062c\u0631\u0647'}\n];\n\nconst HOURS = {open:8, close:22};   \/\/ opening hours\nasync function sendOrder(order){\n  \/\/ Connect this to your server or to the cafe's WhatsApp\/Telegram. Demo only for now.\n  console.log('order', order);\n  return true;\n}\n\n\/* =====================================================\n   HERO BACKGROUND VIDEO\n   src: full video URL from the WordPress Media Library\n   poster: image shown before the video loads\n   ===================================================== *\/\nconst HERO_VIDEO = {src:''};   \/\/ paste the full URL of DRXO2545.MP4 from the Media Library here\n\n\/* =====================================================\n   CAFE INFO (footer)\n   address: shown in the footer     mapUrl: map link (optional, e.g. Google Maps)\n   instagram: Instagram id without @\n   ===================================================== *\/\nconst CAFE = {\n  address: '\u0635\u0648\u0645\u0639\u0647 \u0633\u0631\u0627-\u062e\u06cc\u0627\u0628\u0627\u0646 \u062c\u0645\u0647\u0648\u0631\u06cc-\u0639\u0645\u0627\u0631\u062a \u0641\u0631\u062c\u0648\u062f\u06cc-\u06a9\u0627\u0641\u0647 \u0634\u0644',\n  mapUrl: '',\n  instagram: 'shellcafe2026'\n};\n\n\/* logo data (extracted from the logo image) *\/\nconst LOGO={\"base\":{\"outer\":[[-0.0433,1.0],[-0.05,0.9983],[-0.0858,0.9967],[-0.1383,0.9908],[-0.18,0.9842],[-0.2283,0.9742],[-0.285,0.9592],[-0.3267,0.9458],[-0.3817,0.925],[-0.4233,0.9067],[-0.47,0.8833],[-0.51,0.8608],[-0.555,0.8325],[-0.5975,0.8025],[-0.6317,0.7758],[-0.6742,0.7392],[-0.7392,0.6742],[-0.7758,0.6317],[-0.8092,0.5883],[-0.8325,0.555],[-0.8558,0.5183],[-0.8833,0.47],[-0.9067,0.4233],[-0.9383,0.3475],[-0.9517,0.3092],[-0.9675,0.255],[-0.9775,0.2133],[-0.9883,0.155],[-0.995,0.1033],[-0.9983,0.0492],[-1.0,0.0417],[-1.0,-0.0408],[-0.9983,-0.0483],[-0.9967,-0.0842],[-0.9917,-0.1308],[-0.9833,-0.1833],[-0.9733,-0.2308],[-0.9608,-0.2783],[-0.9417,-0.3375],[-0.9267,-0.3767],[-0.9058,-0.4242],[-0.8842,-0.4675],[-0.8642,-0.5033],[-0.8417,-0.54],[-0.8092,-0.5875],[-0.7825,-0.6225],[-0.7458,-0.6658],[-0.7267,-0.6867],[-0.675,-0.7375],[-0.6417,-0.7667],[-0.6083,-0.7933],[-0.5683,-0.8225],[-0.525,-0.8508],[-0.4792,-0.8775],[-0.425,-0.905],[-0.3875,-0.9217],[-0.345,-0.9383],[-0.2958,-0.955],[-0.2517,-0.9675],[-0.2092,-0.9775],[-0.16,-0.9867],[-0.1025,-0.9942],[-0.0483,-0.9975],[-0.0408,-0.9992],[0.04,-0.9992],[0.0475,-0.9975],[0.0733,-0.9967],[0.1308,-0.9908],[0.1833,-0.9825],[0.2308,-0.9725],[0.2783,-0.96],[0.3375,-0.9408],[0.3767,-0.9258],[0.4242,-0.905],[0.4675,-0.8833],[0.5033,-0.8633],[0.5375,-0.8425],[0.5875,-0.8083],[0.6267,-0.7783],[0.6658,-0.745],[0.6858,-0.7267],[0.7375,-0.6742],[0.7625,-0.6458],[0.7908,-0.6108],[0.8225,-0.5675],[0.8508,-0.5242],[0.8775,-0.4783],[0.9058,-0.4225],[0.9375,-0.3467],[0.95,-0.3108],[0.9658,-0.2575],[0.9767,-0.2125],[0.9875,-0.1542],[0.9942,-0.1025],[0.9975,-0.0492],[0.9992,-0.0417],[0.9992,0.0425],[0.9975,0.05],[0.995,0.095],[0.99,0.1383],[0.9833,0.18],[0.9733,0.2283],[0.9583,0.285],[0.945,0.3267],[0.9242,0.3817],[0.9058,0.4233],[0.8825,0.47],[0.86,0.51],[0.835,0.55],[0.8017,0.5975],[0.775,0.6317],[0.7383,0.6742],[0.6733,0.7392],[0.64,0.7683],[0.6033,0.7975],[0.5592,0.8292],[0.5217,0.8533],[0.48,0.8775],[0.44,0.8983],[0.3908,0.9208],[0.34,0.9408],[0.3058,0.9525],[0.2575,0.9667],[0.205,0.9792],[0.1492,0.9892],[0.1108,0.9942],[0.0625,0.9983],[0.0492,0.9983],[0.0425,1.0]],\"holes\":[[[-0.0208,-0.3683],[0.0033,-0.3675],[0.0292,-0.3692],[0.055,-0.3733],[0.0775,-0.3792],[0.1025,-0.3883],[0.125,-0.3992],[0.1517,-0.4158],[0.1708,-0.4308],[0.1942,-0.4533],[0.215,-0.4792],[0.2317,-0.5058],[0.2425,-0.5283],[0.2517,-0.5533],[0.2592,-0.5842],[0.2625,-0.61],[0.2633,-0.635],[0.2617,-0.6608],[0.2567,-0.69],[0.2525,-0.7058],[0.2433,-0.7317],[0.23,-0.7592],[0.2158,-0.7817],[0.2017,-0.8],[0.1683,-0.8333],[0.1533,-0.845],[0.1225,-0.8642],[0.1033,-0.8733],[0.0758,-0.8833],[0.0483,-0.89],[0.025,-0.8933],[-0.025,-0.8933],[-0.0442,-0.8908],[-0.0733,-0.8842],[-0.1017,-0.8742],[-0.1258,-0.8625],[-0.1525,-0.8458],[-0.1667,-0.835],[-0.1817,-0.8217],[-0.2042,-0.7975],[-0.215,-0.7833],[-0.2317,-0.7567],[-0.2433,-0.7325],[-0.2533,-0.7042],[-0.26,-0.675],[-0.2625,-0.6558],[-0.2625,-0.6067],[-0.2592,-0.5825],[-0.2525,-0.555],[-0.2425,-0.5275],[-0.2333,-0.5083],[-0.2142,-0.4775],[-0.2025,-0.4625],[-0.175,-0.4342],[-0.1508,-0.415],[-0.1283,-0.4008],[-0.1008,-0.3875],[-0.075,-0.3783],[-0.0467,-0.3717]],[[-0.19,-0.0217],[-0.1683,-0.0125],[-0.1375,-0.0017],[-0.0958,0.0092],[-0.0483,0.0167],[-0.0025,0.0192],[0.0392,0.0175],[0.0783,0.0125],[0.12,0.0033],[0.1617,-0.01],[0.1917,-0.0225],[0.22,-0.0367],[0.2508,-0.055],[0.2867,-0.0808],[0.32,-0.11],[0.35,-0.1417],[0.3792,-0.1792],[0.4042,-0.2192],[0.4217,-0.2542],[0.4342,-0.285],[0.4425,-0.31],[0.4508,-0.3417],[0.4583,-0.385],[0.4617,-0.4267],[0.4608,-0.475],[0.4567,-0.5125],[0.4458,-0.5642],[0.4342,-0.6008],[0.4142,-0.6475],[0.3933,-0.685],[0.3675,-0.7225],[0.3425,-0.7525],[0.3092,-0.7858],[0.27,-0.8175],[0.2317,-0.8425],[0.195,-0.8617],[0.19,-0.8617],[0.2125,-0.845],[0.2333,-0.8267],[0.2617,-0.7958],[0.275,-0.7783],[0.2892,-0.7567],[0.3075,-0.7217],[0.3225,-0.6817],[0.3325,-0.6392],[0.3367,-0.6008],[0.3367,-0.5658],[0.3342,-0.5383],[0.325,-0.4933],[0.3167,-0.4675],[0.3083,-0.4467],[0.2867,-0.4058],[0.2625,-0.3717],[0.2308,-0.3375],[0.2117,-0.3208],[0.1917,-0.3058],[0.1575,-0.285],[0.1142,-0.2658],[0.0775,-0.255],[0.0458,-0.2492],[0.0217,-0.2467],[-0.0217,-0.2467],[-0.0467,-0.2492],[-0.0742,-0.2542],[-0.0967,-0.26],[-0.1233,-0.2692],[-0.1408,-0.2767],[-0.1767,-0.2958],[-0.1967,-0.3092],[-0.2267,-0.3333],[-0.25,-0.3567],[-0.2642,-0.3733],[-0.2833,-0.4],[-0.2967,-0.4225],[-0.3125,-0.4558],[-0.3233,-0.4867],[-0.3308,-0.5167],[-0.335,-0.5425],[-0.3367,-0.5608],[-0.3367,-0.6058],[-0.3333,-0.6358],[-0.3292,-0.6575],[-0.3233,-0.68],[-0.31,-0.7167],[-0.2933,-0.75],[-0.2758,-0.7775],[-0.2483,-0.8117],[-0.2208,-0.8383],[-0.1908,-0.8617],[-0.1917,-0.8625],[-0.2183,-0.85],[-0.2583,-0.8258],[-0.2908,-0.8017],[-0.32,-0.7758],[-0.35,-0.7442],[-0.375,-0.7125],[-0.3975,-0.6783],[-0.4183,-0.6392],[-0.4367,-0.5942],[-0.4492,-0.5517],[-0.4583,-0.5017],[-0.4617,-0.4625],[-0.4617,-0.4233],[-0.4567,-0.3725],[-0.4467,-0.3242],[-0.4325,-0.28],[-0.4192,-0.2483],[-0.3925,-0.1992],[-0.3683,-0.1642],[-0.3358,-0.1258],[-0.3075,-0.0983],[-0.2692,-0.0675],[-0.2292,-0.0417]],[[-0.2483,0.3133],[-0.1867,0.3358],[-0.1358,0.3492],[-0.0833,0.3583],[-0.0267,0.3633],[0.045,0.3625],[0.0733,0.36],[0.1142,0.3542],[0.1467,0.3475],[0.1875,0.3367],[0.2225,0.325],[0.25,0.3142],[0.3058,0.2875],[0.3417,0.2667],[0.3717,0.2467],[0.4017,0.2242],[0.4283,0.2017],[0.4742,0.1567],[0.5108,0.1133],[0.5442,0.0658],[0.5708,0.02],[0.5958,-0.0333],[0.6175,-0.0942],[0.6325,-0.155],[0.6417,-0.2192],[0.6442,-0.2617],[0.6442,-0.295],[0.64,-0.3542],[0.63,-0.4142],[0.6158,-0.4683],[0.595,-0.5258],[0.5667,-0.585],[0.5392,-0.6308],[0.5067,-0.6758],[0.4708,-0.7175],[0.4233,-0.7633],[0.3725,-0.8033],[0.3358,-0.8275],[0.3083,-0.8433],[0.2825,-0.8567],[0.2492,-0.8717],[0.2442,-0.8717],[0.2775,-0.8533],[0.305,-0.8358],[0.3325,-0.8158],[0.3717,-0.7825],[0.3958,-0.7583],[0.42,-0.7308],[0.4442,-0.6992],[0.4675,-0.6633],[0.4783,-0.6442],[0.5008,-0.5975],[0.5125,-0.5675],[0.5258,-0.5242],[0.535,-0.4825],[0.54,-0.4483],[0.5433,-0.4033],[0.5433,-0.3683],[0.5408,-0.3308],[0.535,-0.2892],[0.5292,-0.2608],[0.5192,-0.2242],[0.5067,-0.1883],[0.49,-0.15],[0.4725,-0.1167],[0.4467,-0.0758],[0.4208,-0.0417],[0.3992,-0.0167],[0.3692,0.0133],[0.3392,0.0392],[0.3125,0.0592],[0.275,0.0833],[0.2525,0.0958],[0.21,0.1158],[0.17,0.1308],[0.1183,0.145],[0.0708,0.1533],[0.0217,0.1575],[-0.0375,0.1567],[-0.0883,0.1508],[-0.1483,0.1375],[-0.2,0.12],[-0.2308,0.1067],[-0.2558,0.0942],[-0.2875,0.0758],[-0.3275,0.0483],[-0.3675,0.015],[-0.4008,-0.0183],[-0.4367,-0.0617],[-0.4558,-0.0892],[-0.4717,-0.115],[-0.4925,-0.155],[-0.5108,-0.1992],[-0.5267,-0.25],[-0.5375,-0.3033],[-0.5425,-0.3492],[-0.5433,-0.4067],[-0.5392,-0.4567],[-0.5317,-0.5],[-0.52,-0.545],[-0.5017,-0.5958],[-0.4825,-0.6367],[-0.4583,-0.6783],[-0.4383,-0.7075],[-0.4208,-0.73],[-0.3983,-0.7558],[-0.37,-0.7842],[-0.3492,-0.8025],[-0.3158,-0.8283],[-0.2858,-0.8483],[-0.2617,-0.8625],[-0.2625,-0.8633],[-0.27,-0.8608],[-0.3167,-0.8367],[-0.37,-0.8025],[-0.4225,-0.7608],[-0.46,-0.725],[-0.5017,-0.6775],[-0.5408,-0.6225],[-0.5692,-0.5733],[-0.5917,-0.525],[-0.6117,-0.47],[-0.6258,-0.4167],[-0.6358,-0.3583],[-0.64,-0.3083],[-0.6392,-0.2342],[-0.6358,-0.1992],[-0.6308,-0.1658],[-0.6242,-0.1333],[-0.615,-0.0983],[-0.6025,-0.06],[-0.5925,-0.0342],[-0.5658,0.0225],[-0.54,0.0667],[-0.5058,0.115],[-0.4658,0.1617],[-0.42,0.2058],[-0.3917,0.2292],[-0.3608,0.2517],[-0.3067,0.285]],[[-0.25,0.7617],[-0.2133,0.7717],[-0.1592,0.7833],[-0.1233,0.7892],[-0.0792,0.7942],[-0.0192,0.7975],[0.0183,0.7975],[0.0575,0.7958],[0.0958,0.7925],[0.1717,0.7808],[0.2158,0.7708],[0.26,0.7583],[0.3042,0.7433],[0.34,0.7292],[0.37,0.7158],[0.4117,0.695],[0.4792,0.655],[0.5142,0.6308],[0.5542,0.6],[0.6033,0.5567],[0.6475,0.5117],[0.6792,0.475],[0.7242,0.415],[0.7475,0.3792],[0.7725,0.3358],[0.7967,0.2875],[0.8108,0.255],[0.8283,0.2092],[0.8417,0.1675],[0.8542,0.12],[0.8625,0.08],[0.8692,0.0383],[0.8733,0.0017],[0.8767,-0.0533],[0.8767,-0.1058],[0.8725,-0.17],[0.8667,-0.215],[0.8583,-0.2608],[0.8492,-0.3],[0.8375,-0.3408],[0.8233,-0.3825],[0.8075,-0.4225],[0.7925,-0.4558],[0.7708,-0.4983],[0.7467,-0.54],[0.725,-0.5733],[0.6967,-0.6125],[0.6733,-0.6417],[0.6417,-0.6775],[0.5975,-0.7217],[0.5567,-0.7575],[0.4958,-0.8033],[0.4492,-0.8333],[0.4092,-0.8558],[0.3725,-0.8742],[0.3308,-0.8925],[0.2842,-0.91],[0.25,-0.9208],[0.2442,-0.9208],[0.2975,-0.9],[0.3625,-0.8683],[0.4075,-0.8417],[0.4508,-0.8117],[0.4875,-0.7825],[0.52,-0.7533],[0.5583,-0.7142],[0.6,-0.6642],[0.6367,-0.6117],[0.6567,-0.5783],[0.6833,-0.5267],[0.7042,-0.4775],[0.7175,-0.44],[0.7342,-0.38],[0.7458,-0.3183],[0.7517,-0.2658],[0.7533,-0.2358],[0.7525,-0.1633],[0.7467,-0.1042],[0.7375,-0.0517],[0.7267,-0.0075],[0.7092,0.0475],[0.6908,0.0933],[0.6658,0.145],[0.6408,0.1883],[0.6142,0.2283],[0.5842,0.2675],[0.5467,0.31],[0.5083,0.3475],[0.465,0.3842],[0.41,0.4233],[0.3625,0.4517],[0.3233,0.4717],[0.2875,0.4875],[0.225,0.51],[0.1725,0.5242],[0.1408,0.5308],[0.1108,0.5358],[0.0675,0.5408],[0.0233,0.5433],[-0.02,0.5433],[-0.0808,0.5392],[-0.1125,0.535],[-0.1617,0.5258],[-0.1983,0.5167],[-0.2442,0.5025],[-0.2858,0.4867],[-0.3125,0.475],[-0.3558,0.4533],[-0.385,0.4367],[-0.425,0.4108],[-0.4592,0.3858],[-0.5092,0.3433],[-0.5317,0.3217],[-0.565,0.2858],[-0.5892,0.2567],[-0.6175,0.2183],[-0.6392,0.185],[-0.6567,0.155],[-0.68,0.1092],[-0.6925,0.0808],[-0.7058,0.0467],[-0.7167,0.0142],[-0.7242,-0.0117],[-0.7367,-0.0658],[-0.7433,-0.1067],[-0.7475,-0.145],[-0.75,-0.1925],[-0.75,-0.2242],[-0.7483,-0.2608],[-0.745,-0.2967],[-0.7383,-0.3417],[-0.7308,-0.3783],[-0.7217,-0.4142],[-0.7058,-0.4633],[-0.6808,-0.5242],[-0.6608,-0.5642],[-0.6367,-0.6058],[-0.6175,-0.635],[-0.595,-0.6658],[-0.5508,-0.7183],[-0.5275,-0.7425],[-0.4925,-0.775],[-0.4592,-0.8025],[-0.4333,-0.8217],[-0.4025,-0.8425],[-0.3633,-0.8658],[-0.3033,-0.8958],[-0.2558,-0.915],[-0.2175,-0.9275],[-0.2175,-0.9292],[-0.2242,-0.9283],[-0.2567,-0.9192],[-0.3233,-0.8958],[-0.3733,-0.8742],[-0.4208,-0.85],[-0.4675,-0.8225],[-0.5108,-0.7933],[-0.5533,-0.7608],[-0.5992,-0.7208],[-0.6417,-0.6783],[-0.6817,-0.6325],[-0.72,-0.5817],[-0.75,-0.5358],[-0.7783,-0.4858],[-0.8025,-0.4358],[-0.8242,-0.3825],[-0.8433,-0.3242],[-0.8525,-0.29],[-0.8617,-0.2483],[-0.8675,-0.215],[-0.8742,-0.1608],[-0.8775,-0.105],[-0.8775,-0.055],[-0.8733,0.01],[-0.8683,0.05],[-0.8583,0.105],[-0.8483,0.1467],[-0.8367,0.1867],[-0.8225,0.2275],[-0.8042,0.2725],[-0.7875,0.3083],[-0.7692,0.3433],[-0.7508,0.375],[-0.725,0.415],[-0.6933,0.4583],[-0.6717,0.485],[-0.6358,0.525],[-0.605,0.5558],[-0.555,0.6],[-0.4925,0.6467],[-0.4617,0.6667],[-0.4125,0.695],[-0.3708,0.7158],[-0.3408,0.7292],[-0.2958,0.7467]]]},\"rings\":[{\"outer\":[[-0.51,0.8608],[-0.555,0.8325],[-0.585,0.8117],[-0.6192,0.7858],[-0.6583,0.7533],[-0.685,0.7292],[-0.7292,0.685],[-0.7633,0.6467],[-0.7917,0.6117],[-0.8217,0.5708],[-0.8558,0.5183],[-0.8833,0.47],[-0.9067,0.4233],[-0.9267,0.3775],[-0.9417,0.3383],[-0.9558,0.2958],[-0.9675,0.255],[-0.9775,0.2133],[-0.9883,0.155],[-0.995,0.1033],[-0.9983,0.0492],[-1.0,0.0417],[-1.0,-0.0408],[-0.9983,-0.0483],[-0.9967,-0.0842],[-0.9917,-0.1308],[-0.9833,-0.1833],[-0.9733,-0.2308],[-0.9625,-0.2725],[-0.9483,-0.3183],[-0.9317,-0.3642],[-0.9108,-0.4133],[-0.8842,-0.4675],[-0.8642,-0.5033],[-0.8417,-0.54],[-0.8092,-0.5875],[-0.7825,-0.6225],[-0.7525,-0.6583],[-0.7267,-0.6867],[-0.6875,-0.7258],[-0.6417,-0.7667],[-0.6083,-0.7933],[-0.5683,-0.8225],[-0.5067,-0.8617],[-0.3975,-0.8617],[-0.4283,-0.8458],[-0.4675,-0.8225],[-0.505,-0.7975],[-0.5333,-0.7767],[-0.5883,-0.7308],[-0.6517,-0.6675],[-0.6817,-0.6325],[-0.705,-0.6025],[-0.7275,-0.5708],[-0.75,-0.5358],[-0.7717,-0.4983],[-0.7925,-0.4575],[-0.8175,-0.4],[-0.8275,-0.3733],[-0.8433,-0.3242],[-0.86,-0.2567],[-0.8717,-0.1842],[-0.8758,-0.14],[-0.8775,-0.105],[-0.8775,-0.055],[-0.8758,-0.02],[-0.8717,0.025],[-0.8658,0.0658],[-0.8583,0.105],[-0.8483,0.1467],[-0.8367,0.1867],[-0.8225,0.2275],[-0.8042,0.2725],[-0.7875,0.3083],[-0.7508,0.375],[-0.7108,0.435],[-0.68,0.475],[-0.6558,0.5033],[-0.605,0.5558],[-0.5767,0.5817],[-0.5425,0.61],[-0.515,0.6308],[-0.48,0.655],[-0.4125,0.695],[-0.3708,0.7158],[-0.3408,0.7292],[-0.305,0.7433],[-0.2608,0.7583],[-0.1883,0.7775],[-0.15,0.785],[-0.1033,0.7917],[-0.0583,0.7958],[-0.0192,0.7975],[0.0575,0.7958],[0.0958,0.7925],[0.1392,0.7867],[0.1717,0.7808],[0.2158,0.7708],[0.2492,0.7617],[0.295,0.7467],[0.34,0.7292],[0.37,0.7158],[0.4117,0.695],[0.4608,0.6667],[0.5025,0.6392],[0.5542,0.6],[0.6033,0.5567],[0.6475,0.5117],[0.6925,0.4583],[0.7242,0.415],[0.7575,0.3625],[0.7883,0.305],[0.8108,0.255],[0.8358,0.1867],[0.8542,0.12],[0.8642,0.0708],[0.8725,0.01],[0.8767,-0.0533],[0.8767,-0.1058],[0.8725,-0.17],[0.8633,-0.235],[0.8525,-0.2867],[0.8375,-0.3408],[0.8183,-0.3958],[0.7925,-0.4558],[0.7708,-0.4983],[0.7467,-0.54],[0.725,-0.5733],[0.6967,-0.6125],[0.6508,-0.6675],[0.5975,-0.7217],[0.5617,-0.7533],[0.5325,-0.7767],[0.4958,-0.8033],[0.4667,-0.8225],[0.4275,-0.8458],[0.3967,-0.8617],[0.5075,-0.8608],[0.5375,-0.8425],[0.5875,-0.8083],[0.6183,-0.785],[0.6583,-0.7517],[0.6858,-0.7267],[0.7267,-0.6858],[0.7625,-0.6458],[0.7908,-0.6108],[0.8225,-0.5675],[0.8508,-0.5242],[0.8775,-0.4783],[0.9058,-0.4225],[0.9375,-0.3467],[0.95,-0.3108],[0.9658,-0.2575],[0.9767,-0.2125],[0.9875,-0.1542],[0.9942,-0.1025],[0.9975,-0.0492],[0.9992,-0.0417],[0.9992,0.0425],[0.9975,0.05],[0.995,0.095],[0.99,0.1383],[0.9833,0.18],[0.9733,0.2283],[0.9583,0.285],[0.945,0.3267],[0.9242,0.3817],[0.9058,0.4233],[0.8825,0.47],[0.86,0.51],[0.835,0.55],[0.8108,0.585],[0.775,0.6317],[0.7458,0.6658],[0.6842,0.7292],[0.64,0.7683],[0.6033,0.7975],[0.5592,0.8292],[0.5217,0.8533],[0.48,0.8775],[0.44,0.8983],[0.3908,0.9208],[0.34,0.9408],[0.3058,0.9525],[0.2575,0.9667],[0.205,0.9792],[0.1492,0.9892],[0.1108,0.9942],[0.0625,0.9983],[0.0492,0.9983],[0.0425,1.0],[-0.0433,1.0],[-0.05,0.9983],[-0.0858,0.9967],[-0.1383,0.9908],[-0.18,0.9842],[-0.2283,0.9742],[-0.285,0.9592],[-0.3267,0.9458],[-0.3817,0.925],[-0.4233,0.9067],[-0.47,0.8833]],\"holes\":[]},{\"outer\":[[-0.3633,0.4492],[-0.3958,0.43],[-0.425,0.4108],[-0.4808,0.3683],[-0.5317,0.3217],[-0.565,0.2858],[-0.5892,0.2567],[-0.6117,0.2267],[-0.6308,0.1983],[-0.6617,0.1458],[-0.685,0.0983],[-0.7008,0.06],[-0.7167,0.0142],[-0.7242,-0.0117],[-0.7383,-0.075],[-0.745,-0.12],[-0.7483,-0.1558],[-0.75,-0.2242],[-0.7475,-0.2717],[-0.7433,-0.31],[-0.7308,-0.3783],[-0.7217,-0.4142],[-0.7058,-0.4633],[-0.6808,-0.5242],[-0.6525,-0.5792],[-0.6367,-0.6058],[-0.6117,-0.6433],[-0.5892,-0.6733],[-0.5583,-0.71],[-0.5325,-0.7375],[-0.4992,-0.7692],[-0.4758,-0.7892],[-0.4392,-0.8175],[-0.4025,-0.8425],[-0.37,-0.8617],[-0.2667,-0.8617],[-0.3167,-0.8367],[-0.37,-0.8025],[-0.4225,-0.7608],[-0.46,-0.725],[-0.5017,-0.6775],[-0.5408,-0.6225],[-0.5692,-0.5733],[-0.5917,-0.525],[-0.6117,-0.47],[-0.6258,-0.4167],[-0.6358,-0.3583],[-0.64,-0.3083],[-0.64,-0.2483],[-0.6375,-0.2142],[-0.6333,-0.1808],[-0.6283,-0.1525],[-0.6183,-0.11],[-0.6025,-0.06],[-0.58,-0.0058],[-0.5542,0.0433],[-0.54,0.0667],[-0.5183,0.0983],[-0.4825,0.1433],[-0.4383,0.1892],[-0.3917,0.2292],[-0.3458,0.2617],[-0.2975,0.29],[-0.2483,0.3133],[-0.1867,0.3358],[-0.1358,0.3492],[-0.095,0.3567],[-0.0617,0.3608],[-0.0267,0.3633],[0.03,0.3633],[0.0558,0.3617],[0.1142,0.3542],[0.17,0.3417],[0.2225,0.325],[0.2617,0.3092],[0.3058,0.2875],[0.3417,0.2667],[0.3717,0.2467],[0.4058,0.2208],[0.4367,0.1942],[0.4742,0.1567],[0.4975,0.13],[0.5292,0.0883],[0.5583,0.0425],[0.5825,-0.0033],[0.6008,-0.0458],[0.6133,-0.0808],[0.6233,-0.115],[0.6342,-0.1642],[0.6408,-0.2108],[0.6442,-0.2617],[0.6433,-0.3158],[0.6367,-0.3783],[0.6283,-0.4217],[0.6158,-0.4683],[0.595,-0.5258],[0.575,-0.5692],[0.5467,-0.6192],[0.5125,-0.6683],[0.48,-0.7075],[0.4408,-0.7475],[0.4075,-0.7767],[0.3617,-0.8108],[0.3158,-0.8392],[0.2708,-0.8617],[0.3758,-0.8608],[0.4075,-0.8417],[0.4417,-0.8183],[0.465,-0.8008],[0.5,-0.7717],[0.52,-0.7533],[0.5583,-0.7142],[0.6,-0.6642],[0.62,-0.6367],[0.6408,-0.605],[0.6658,-0.5617],[0.6833,-0.5267],[0.7092,-0.4642],[0.7283,-0.4033],[0.7375,-0.365],[0.7442,-0.3292],[0.7492,-0.2925],[0.7525,-0.2533],[0.7533,-0.1808],[0.7508,-0.1408],[0.7467,-0.1042],[0.7342,-0.0367],[0.7142,0.0333],[0.7,0.0717],[0.6875,0.1008],[0.6567,0.1617],[0.635,0.1975],[0.6142,0.2283],[0.5708,0.2833],[0.5467,0.31],[0.52,0.3367],[0.4933,0.3608],[0.465,0.3842],[0.41,0.4233],[0.3517,0.4575],[0.3125,0.4767],[0.275,0.4925],[0.225,0.51],[0.1992,0.5175],[0.1408,0.5308],[0.1108,0.5358],[0.0675,0.5408],[0.0233,0.5433],[-0.02,0.5433],[-0.0808,0.5392],[-0.15,0.5283],[-0.1892,0.5192],[-0.2292,0.5075],[-0.2692,0.4933],[-0.3033,0.4792]],\"holes\":[]},{\"outer\":[[-0.265,0.0892],[-0.315,0.0575],[-0.3533,0.0275],[-0.3675,0.015],[-0.4008,-0.0183],[-0.4217,-0.0425],[-0.4558,-0.0892],[-0.4808,-0.1317],[-0.5,-0.1717],[-0.5208,-0.2292],[-0.5308,-0.2675],[-0.5375,-0.3033],[-0.5408,-0.3292],[-0.5433,-0.365],[-0.5433,-0.4067],[-0.5408,-0.4417],[-0.5375,-0.4683],[-0.5317,-0.5],[-0.52,-0.545],[-0.5017,-0.5958],[-0.4767,-0.6475],[-0.4467,-0.6958],[-0.4308,-0.7175],[-0.4067,-0.7467],[-0.37,-0.7842],[-0.3283,-0.8192],[-0.295,-0.8425],[-0.2633,-0.8617],[-0.1933,-0.8617],[-0.2258,-0.8458],[-0.2667,-0.82],[-0.3017,-0.7925],[-0.3333,-0.7625],[-0.365,-0.7258],[-0.3908,-0.6892],[-0.4092,-0.6575],[-0.4275,-0.6183],[-0.4408,-0.5817],[-0.4517,-0.5408],[-0.4583,-0.5017],[-0.4617,-0.4625],[-0.4617,-0.4233],[-0.4567,-0.3725],[-0.4467,-0.3242],[-0.4325,-0.28],[-0.4192,-0.2483],[-0.4,-0.2117],[-0.3775,-0.1767],[-0.3508,-0.1425],[-0.3175,-0.1075],[-0.295,-0.0875],[-0.2633,-0.0633],[-0.2217,-0.0375],[-0.1825,-0.0183],[-0.1375,-0.0017],[-0.0958,0.0092],[-0.0483,0.0167],[-0.0025,0.0192],[0.0392,0.0175],[0.0875,0.0108],[0.1292,0.0008],[0.1617,-0.01],[0.1917,-0.0225],[0.22,-0.0367],[0.2508,-0.055],[0.2725,-0.07],[0.3008,-0.0925],[0.32,-0.11],[0.35,-0.1417],[0.375,-0.1733],[0.3892,-0.1942],[0.4042,-0.2192],[0.4167,-0.2433],[0.4317,-0.2783],[0.4425,-0.31],[0.4508,-0.3417],[0.4558,-0.3675],[0.4608,-0.4108],[0.4617,-0.4592],[0.4592,-0.4933],[0.4542,-0.5275],[0.4458,-0.5642],[0.4342,-0.6008],[0.4217,-0.6317],[0.405,-0.665],[0.3875,-0.6942],[0.3617,-0.73],[0.3425,-0.7525],[0.3092,-0.7858],[0.2833,-0.8075],[0.2467,-0.8333],[0.2167,-0.8508],[0.1933,-0.8617],[0.2625,-0.8617],[0.3133,-0.83],[0.3558,-0.7967],[0.3958,-0.7583],[0.43,-0.7183],[0.455,-0.6833],[0.4783,-0.6442],[0.5008,-0.5975],[0.5125,-0.5675],[0.5233,-0.5333],[0.535,-0.4825],[0.5417,-0.4317],[0.5433,-0.4033],[0.5433,-0.3683],[0.5392,-0.3158],[0.5292,-0.2608],[0.5217,-0.2325],[0.5117,-0.2017],[0.495,-0.1608],[0.4725,-0.1167],[0.4408,-0.0675],[0.4125,-0.0317],[0.3692,0.0133],[0.3392,0.0392],[0.29,0.0742],[0.2525,0.0958],[0.2217,0.1108],[0.1933,0.1225],[0.145,0.1383],[0.0975,0.1492],[0.0375,0.1567],[-0.0217,0.1575],[-0.0642,0.1542],[-0.1183,0.145],[-0.165,0.1325],[-0.2142,0.1142]],\"holes\":[]},{\"outer\":[[-0.1908,-0.305],[-0.22,-0.3275],[-0.25,-0.3567],[-0.2642,-0.3733],[-0.2833,-0.4],[-0.2967,-0.4225],[-0.3142,-0.46],[-0.325,-0.4925],[-0.3325,-0.5258],[-0.3367,-0.5608],[-0.3367,-0.6058],[-0.3333,-0.6358],[-0.3292,-0.6575],[-0.3233,-0.68],[-0.31,-0.7167],[-0.2933,-0.75],[-0.2758,-0.7775],[-0.255,-0.8042],[-0.2292,-0.8308],[-0.2108,-0.8467],[-0.1908,-0.8617],[-0.1267,-0.8617],[-0.14,-0.8542],[-0.1667,-0.835],[-0.1817,-0.8217],[-0.1992,-0.8033],[-0.2233,-0.7708],[-0.2317,-0.7567],[-0.245,-0.7283],[-0.2533,-0.7042],[-0.2575,-0.6875],[-0.2617,-0.6633],[-0.2633,-0.6442],[-0.2633,-0.6175],[-0.2608,-0.5925],[-0.2575,-0.5742],[-0.2483,-0.5425],[-0.2383,-0.5183],[-0.2292,-0.5008],[-0.2142,-0.4775],[-0.2025,-0.4625],[-0.175,-0.4342],[-0.1508,-0.415],[-0.1283,-0.4008],[-0.1067,-0.39],[-0.09,-0.3833],[-0.0692,-0.3767],[-0.0467,-0.3717],[-0.03,-0.3692],[-0.0033,-0.3675],[0.0208,-0.3683],[0.0467,-0.3717],[0.0775,-0.3792],[0.11,-0.3917],[0.1392,-0.4075],[0.1617,-0.4233],[0.1775,-0.4367],[0.2,-0.46],[0.2233,-0.4917],[0.2392,-0.5208],[0.2517,-0.5533],[0.26,-0.5892],[0.2625,-0.61],[0.2633,-0.635],[0.2617,-0.6608],[0.2567,-0.69],[0.2525,-0.7058],[0.2433,-0.7317],[0.23,-0.7592],[0.2225,-0.7717],[0.2092,-0.7908],[0.1967,-0.8058],[0.1742,-0.8283],[0.16,-0.84],[0.1383,-0.855],[0.1258,-0.8617],[0.1917,-0.8608],[0.2175,-0.8408],[0.2433,-0.8167],[0.265,-0.7917],[0.285,-0.7633],[0.2958,-0.745],[0.3142,-0.7058],[0.3225,-0.6817],[0.3308,-0.6483],[0.3367,-0.6008],[0.3367,-0.5658],[0.3342,-0.5383],[0.33,-0.5142],[0.3233,-0.4875],[0.3108,-0.4525],[0.295,-0.42],[0.2792,-0.3942],[0.2583,-0.3667],[0.2308,-0.3375],[0.2075,-0.3175],[0.1817,-0.2992],[0.1575,-0.285],[0.1208,-0.2683],[0.0875,-0.2575],[0.0617,-0.2517],[0.0217,-0.2467],[-0.0217,-0.2467],[-0.0467,-0.2492],[-0.0742,-0.2542],[-0.0967,-0.26],[-0.1333,-0.2733],[-0.1608,-0.2867]],\"holes\":[]}]};\n\n\/* ===================== helpers ===================== *\/\nconst $ = s => ROOT.querySelector(s);\nconst fa = n => Number(n).toLocaleString('fa-IR');\nconst money = n => fa(n) + ' \u062a\u0648\u0645\u0627\u0646';\nconst norm = s => s.replace(\/[\u06f0-\u06f9]\/g, d => '\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9'.indexOf(d)).replace(\/[\u0660-\u0669]\/g, d => '\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669'.indexOf(d));\nconst reduce = matchMedia('(prefers-reduced-motion: reduce)').matches;\nconst byId = Object.fromEntries(ITEMS.map(i => [i.id, i]));\nconst BEAN = (cls='bn') => `<svg class=\"${cls}\" viewBox=\"0 0 24 16\" aria-hidden=\"true\"><use href=\"#bean\"\/><\/svg>`;\n\n\/* static logo (used when WebGL is unavailable) *\/\n(function(){\n  if(!LOGO.base) return;\n  const P = pts => 'M' + pts.map(p => p[0] + ' ' + (-p[1])).join('L') + 'Z';\n  const d = [LOGO.base.outer, ...LOGO.base.holes].map(P).join('');\n  ROOT.querySelectorAll('.fallback').forEach(s => {\n    s.setAttribute('viewBox', '-1.02 -1.02 2.04 2.04');\n    s.innerHTML = `<path d=\"${d}\" fill=\"#000\" fill-rule=\"evenodd\"\/>`;\n  });\n})();\n\n\/* ===================== SVG art of the items ===================== *\/\nfunction art(it){\n  const a = it.art, id = 'a' + it.id, [c1, c2] = a.d || ['#000', '#000'];\n  const defs = `<defs>\n    <radialGradient id=\"${id}p\" cx=\".35\" cy=\".28\" r=\".95\"><stop offset=\"0\" stop-color=\"#fff\"\/><stop offset=\"1\" stop-color=\"#E3D2B9\"\/><\/radialGradient>\n    <radialGradient id=\"${id}d\" cx=\".38\" cy=\".3\" r=\".9\"><stop offset=\"0\" stop-color=\"${c1}\"\/><stop offset=\"1\" stop-color=\"${c2}\"\/><\/radialGradient>\n  <\/defs>`;\n  const plate = `<circle cx=\"60\" cy=\"60\" r=\"55\" fill=\"url(#${id}p)\"\/><circle cx=\"60\" cy=\"60\" r=\"46\" fill=\"none\" stroke=\"#DFCDB2\" stroke-width=\"1.2\"\/>`;\n  const shine = `<ellipse cx=\"46\" cy=\"44\" rx=\"11\" ry=\"5\" fill=\"#fff\" opacity=\".2\" transform=\"rotate(-32 46 44)\"\/>`;\n  let b = '';\n  switch(a.k){\n    case 'cup': {\n      let deco = '';\n      if(a.deco === 'heart') deco = `<path d=\"M60 75 C43 63 46 46 60 54 C74 46 77 63 60 75Z\" fill=\"${a.f}\"\/>`;\n      if(a.deco === 'spiral') deco = `<circle cx=\"60\" cy=\"60\" r=\"30\" fill=\"${a.f}\" opacity=\".28\"\/><path d=\"M60 60 a3 3 0 0 1 6 0 a9 9 0 0 1 -18 0 a15 15 0 0 1 30 0 a21 21 0 0 1 -42 0\" fill=\"none\" stroke=\"${a.f}\" stroke-width=\"3.4\" stroke-linecap=\"round\"\/>`;\n      if(a.deco === 'foam') deco = `<circle cx=\"60\" cy=\"60\" r=\"30\" fill=\"${a.f}\"\/><circle cx=\"60\" cy=\"60\" r=\"22\" fill=\"${a.f}\"\/><g fill=\"#6B4330\" opacity=\".45\"><circle cx=\"52\" cy=\"54\" r=\"1.6\"\/><circle cx=\"66\" cy=\"52\" r=\"1.4\"\/><circle cx=\"58\" cy=\"64\" r=\"1.6\"\/><circle cx=\"70\" cy=\"64\" r=\"1.3\"\/><circle cx=\"50\" cy=\"66\" r=\"1.2\"\/><circle cx=\"62\" cy=\"46\" r=\"1.2\"\/><\/g>`;\n      if(a.deco === 'crema') deco = `<circle cx=\"60\" cy=\"60\" r=\"26\" fill=\"none\" stroke=\"#D9A86B\" stroke-width=\"3.5\" opacity=\".6\"\/><circle cx=\"60\" cy=\"60\" r=\"14\" fill=\"#D9A86B\" opacity=\".18\"\/>`;\n      if(a.deco === 'ring') deco = `<circle cx=\"60\" cy=\"60\" r=\"25\" fill=\"${a.f}\" opacity=\".92\"\/><circle cx=\"60\" cy=\"60\" r=\"18\" fill=\"${c1}\" opacity=\".8\"\/><circle cx=\"60\" cy=\"60\" r=\"10\" fill=\"${a.f}\"\/>`;\n      if(a.deco === 'marsh') deco = `<g fill=\"#FFF4E4\" stroke=\"#E6D2B6\" stroke-width=\"1\"><circle cx=\"51\" cy=\"52\" r=\"7.5\"\/><circle cx=\"68\" cy=\"50\" r=\"7\"\/><circle cx=\"59\" cy=\"66\" r=\"7.5\"\/><circle cx=\"73\" cy=\"65\" r=\"6.5\"\/><circle cx=\"46\" cy=\"67\" r=\"6\"\/><\/g>`;\n      b = `${plate}<rect x=\"84\" y=\"52\" width=\"28\" height=\"16\" rx=\"8\" fill=\"#fff\" stroke=\"#DFCDB2\" stroke-width=\"1.4\"\/>\n        <circle cx=\"60\" cy=\"60\" r=\"38\" fill=\"#fff\" stroke=\"#DFCDB2\" stroke-width=\"1.5\"\/>\n        <circle cx=\"60\" cy=\"60\" r=\"32\" fill=\"url(#${id}d)\"\/>${deco}${shine}`;\n      break;\n    }\n    case 'glass': {\n      let top = '';\n      if(a.top === 'cream') top = `<circle cx=\"60\" cy=\"60\" r=\"24\" fill=\"#FFF8EC\"\/><path d=\"M60 60 a3 3 0 0 1 6 0 a9 9 0 0 1 -18 0 a15 15 0 0 1 30 0\" fill=\"none\" stroke=\"#E8D3B2\" stroke-width=\"3\" stroke-linecap=\"round\"\/>`;\n      if(a.top === 'lemon') top = `<g transform=\"translate(46 50)\"><circle r=\"16\" fill=\"#F8EEA6\" stroke=\"#E7D272\" stroke-width=\"2\"\/><g stroke=\"#EBDC8A\" stroke-width=\"2\"><path d=\"M0 -14V14M-14 0H14M-10 -10L10 10M10 -10L-10 10\"\/><\/g><circle r=\"3\" fill=\"#F8EEA6\"\/><\/g><ellipse cx=\"76\" cy=\"74\" rx=\"9\" ry=\"5\" fill=\"#7FA45A\" transform=\"rotate(-35 76 74)\"\/><ellipse cx=\"68\" cy=\"80\" rx=\"8\" ry=\"4.5\" fill=\"#93B46C\" transform=\"rotate(20 68 80)\"\/>`;\n      const ice = (a.top === 'cream' || a.top === 'lemon') ? '' :\n        `<g fill=\"#fff\" opacity=\".4\"><rect x=\"32\" y=\"34\" width=\"26\" height=\"26\" rx=\"7\" transform=\"rotate(-14 45 47)\"\/><rect x=\"60\" y=\"56\" width=\"26\" height=\"26\" rx=\"7\" transform=\"rotate(12 73 69)\"\/><rect x=\"38\" y=\"64\" width=\"22\" height=\"22\" rx=\"6\" transform=\"rotate(24 49 75)\"\/><\/g>`;\n      const straw = a.top === 'lemon' ? '' : `<circle cx=\"80\" cy=\"40\" r=\"6.5\" fill=\"none\" stroke=\"#fff\" stroke-width=\"3.2\" opacity=\".92\"\/><circle cx=\"80\" cy=\"40\" r=\"3.6\" fill=\"#3A2111\" opacity=\".45\"\/>`;\n      b = `<circle cx=\"60\" cy=\"60\" r=\"55\" fill=\"#fff\" opacity=\".62\"\/><circle cx=\"60\" cy=\"60\" r=\"55\" fill=\"none\" stroke=\"#DCCAB0\" stroke-width=\"1.5\"\/>\n        <circle cx=\"60\" cy=\"60\" r=\"47\" fill=\"url(#${id}d)\"\/>${ice}${top}${straw}\n        <path d=\"M17 62 A43 43 0 0 1 40 22\" fill=\"none\" stroke=\"#fff\" stroke-opacity=\".7\" stroke-width=\"3.4\" stroke-linecap=\"round\"\/>`;\n      break;\n    }\n    case 'wedge': {\n      const dust = a.dust ? `<g fill=\"#F3E3C8\" opacity=\".75\"><circle cx=\"54\" cy=\"50\" r=\"1.6\"\/><circle cx=\"66\" cy=\"56\" r=\"1.4\"\/><circle cx=\"60\" cy=\"66\" r=\"1.6\"\/><circle cx=\"72\" cy=\"70\" r=\"1.3\"\/><circle cx=\"50\" cy=\"68\" r=\"1.3\"\/><circle cx=\"62\" cy=\"42\" r=\"1.2\"\/><\/g>` : '';\n      b = `${plate}<g transform=\"rotate(-14 60 60)\"><path d=\"M60 24 L92 80 Q60 96 28 80 Z\" fill=\"${a.top}\" stroke=\"${a.crust}\" stroke-width=\"4\" stroke-linejoin=\"round\"\/>\n        <path d=\"M60 34 Q66 56 78 72\" fill=\"none\" stroke=\"${a.sauce}\" stroke-width=\"5\" stroke-linecap=\"round\" opacity=\".9\"\/>\n        <path d=\"M46 74 Q58 80 72 78\" fill=\"none\" stroke=\"${a.sauce}\" stroke-width=\"3.5\" stroke-linecap=\"round\" opacity=\".75\"\/>${dust}<\/g>`;\n      break;\n    }\n    case 'brownie':\n      b = `${plate}<g transform=\"rotate(-8 60 60)\"><rect x=\"30\" y=\"38\" width=\"36\" height=\"36\" rx=\"7\" fill=\"#3E2214\"\/><rect x=\"48\" y=\"46\" width=\"36\" height=\"36\" rx=\"7\" fill=\"#52301C\"\/>\n        <rect x=\"52\" y=\"50\" width=\"28\" height=\"12\" rx=\"6\" fill=\"#fff\" opacity=\".12\"\/>\n        <g fill=\"#FFF8EE\" opacity=\".8\"><circle cx=\"40\" cy=\"48\" r=\"1.8\"\/><circle cx=\"56\" cy=\"60\" r=\"1.6\"\/><circle cx=\"62\" cy=\"52\" r=\"1.8\"\/><circle cx=\"72\" cy=\"68\" r=\"1.6\"\/><circle cx=\"58\" cy=\"74\" r=\"1.4\"\/><circle cx=\"76\" cy=\"58\" r=\"1.4\"\/><\/g><\/g>`;\n      break;\n    case 'cookie':\n      b = `${plate}<circle cx=\"60\" cy=\"62\" r=\"32\" fill=\"#D3A66B\"\/><circle cx=\"60\" cy=\"60\" r=\"30\" fill=\"#E2B87C\"\/>\n        <g fill=\"#4A2A18\"><ellipse cx=\"48\" cy=\"50\" rx=\"6\" ry=\"4\" transform=\"rotate(-20 48 50)\"\/><ellipse cx=\"68\" cy=\"48\" rx=\"5\" ry=\"3.6\" transform=\"rotate(25 68 48)\"\/><ellipse cx=\"74\" cy=\"64\" rx=\"5.5\" ry=\"4\" transform=\"rotate(-10 74 64)\"\/><ellipse cx=\"56\" cy=\"68\" rx=\"6\" ry=\"4\" transform=\"rotate(15 56 68)\"\/><ellipse cx=\"44\" cy=\"66\" rx=\"4.5\" ry=\"3.4\"\/><ellipse cx=\"62\" cy=\"58\" rx=\"4\" ry=\"3\" transform=\"rotate(35 62 58)\"\/><\/g>\n        <ellipse cx=\"48\" cy=\"44\" rx=\"12\" ry=\"5\" fill=\"#fff\" opacity=\".22\" transform=\"rotate(-30 48 44)\"\/>`;\n      break;\n    case 'croissant':\n      b = `${plate}<g transform=\"translate(0 4)\"><path d=\"M24 74 A37 37 0 0 1 96 74\" fill=\"none\" stroke=\"#B97B36\" stroke-width=\"26\" stroke-linecap=\"round\"\/>\n        <path d=\"M24 72 A37 37 0 0 1 96 72\" fill=\"none\" stroke=\"#DDA95A\" stroke-width=\"24\" stroke-linecap=\"round\"\/>\n        <path d=\"M24 72 A37 37 0 0 1 96 72\" fill=\"none\" stroke=\"#9F6125\" stroke-width=\"24\" stroke-dasharray=\"1.6 9\" opacity=\".45\"\/>\n        <path d=\"M30 64 A37 37 0 0 1 80 46\" fill=\"none\" stroke=\"#F3CE88\" stroke-width=\"5\" stroke-linecap=\"round\" opacity=\".7\"\/><\/g>`;\n      break;\n    case 'toast':\n      b = `${plate}<rect x=\"27\" y=\"27\" width=\"66\" height=\"66\" rx=\"20\" fill=\"#D9AE72\"\/><rect x=\"33\" y=\"33\" width=\"54\" height=\"54\" rx=\"15\" fill=\"#EACB97\"\/>\n        <rect x=\"38\" y=\"38\" width=\"44\" height=\"44\" rx=\"12\" fill=\"#A8BE79\"\/><path d=\"M44 54 q8 -8 16 -2 t16 -2\" fill=\"none\" stroke=\"#C5D6A0\" stroke-width=\"3\" stroke-linecap=\"round\"\/>\n        <ellipse cx=\"62\" cy=\"64\" rx=\"15\" ry=\"12\" fill=\"#FFFBF2\"\/><circle cx=\"62\" cy=\"64\" r=\"7\" fill=\"#F2B63C\"\/><circle cx=\"60\" cy=\"62\" r=\"2\" fill=\"#fff\" opacity=\".6\"\/>`;\n      break;\n    case 'omelette':\n      b = `${plate}<g transform=\"rotate(-12 60 60)\"><ellipse cx=\"60\" cy=\"62\" rx=\"40\" ry=\"27\" fill=\"#E2AE3F\"\/><ellipse cx=\"60\" cy=\"59\" rx=\"37\" ry=\"24\" fill=\"#F4CB5E\"\/>\n        <path d=\"M24 60 Q60 52 96 60\" fill=\"none\" stroke=\"#DFAE45\" stroke-width=\"2.5\" stroke-linecap=\"round\"\/>\n        <g fill=\"#7FA45A\"><ellipse cx=\"46\" cy=\"52\" rx=\"4\" ry=\"2\" transform=\"rotate(30 46 52)\"\/><ellipse cx=\"72\" cy=\"50\" rx=\"4\" ry=\"2\" transform=\"rotate(-20 72 50)\"\/><ellipse cx=\"62\" cy=\"70\" rx=\"4\" ry=\"2\" transform=\"rotate(10 62 70)\"\/><ellipse cx=\"82\" cy=\"64\" rx=\"3.5\" ry=\"2\"\/><\/g>\n        <g fill=\"#D9573F\" opacity=\".85\"><circle cx=\"54\" cy=\"64\" r=\"2.6\"\/><circle cx=\"76\" cy=\"58\" r=\"2.4\"\/><circle cx=\"42\" cy=\"62\" r=\"2.2\"\/><\/g><\/g>`;\n      break;\n  }\n  return `<svg viewBox=\"0 0 120 120\" aria-hidden=\"true\">${defs}${b}<\/svg>`;\n}\n\n\/* ===================== stage art of each menu category ===================== *\/\nconst bean = (x, y, w, cls, rot = 0) => `<g class=\"${cls}\"><use href=\"#bean\" x=\"${x}\" y=\"${y}\" width=\"${w}\" height=\"${w * 2 \/ 3}\" transform=\"rotate(${rot} ${x + w \/ 2} ${y + w \/ 3})\"\/><\/g>`;\nconst STAGE = {\n  hot: {\n    title: '\u0642\u0647\u0648\u0647 \u06af\u0631\u0645',\n    text: '\u0627\u0632 \u0627\u0633\u067e\u0631\u0633\u0648\u06cc \u063a\u0644\u06cc\u0638 \u062a\u0627 \u0646\u0633\u06a9\u0627\u0641\u0647\u200c\u06cc \u06a9\u0641\u200c\u062f\u0627\u0631\u061b \u0647\u0631 \u0641\u0646\u062c\u0627\u0646 \u062f\u0627\u063a \u0648 \u062a\u0627\u0632\u0647.',\n    svg: `<svg viewBox=\"0 0 210 158\" aria-hidden=\"true\">\n      <ellipse cx=\"105\" cy=\"140\" rx=\"74\" ry=\"9\" fill=\"rgba(74,46,27,.2)\"\/>\n      <ellipse cx=\"105\" cy=\"130\" rx=\"66\" ry=\"11\" fill=\"#fff\" stroke=\"#E2D2BA\" stroke-width=\"1.5\"\/>\n      <path d=\"M56 68H154V96C154 118 134 130 105 130C76 130 56 118 56 96Z\" fill=\"#fff\" stroke=\"#E2D2BA\" stroke-width=\"2\"\/>\n      <path d=\"M154 78h10a15 15 0 0 1 0 30h-13\" fill=\"none\" stroke=\"#E2D2BA\" stroke-width=\"7\" stroke-linecap=\"round\"\/>\n      <ellipse cx=\"105\" cy=\"68\" rx=\"49\" ry=\"10\" fill=\"#4B2C18\"\/><ellipse cx=\"105\" cy=\"67\" rx=\"40\" ry=\"6.5\" fill=\"#8A5A36\"\/>\n      <path d=\"M86 56C80 44 94 38 88 24\" fill=\"none\" stroke=\"#BCA184\" stroke-width=\"4.5\" stroke-linecap=\"round\" class=\"s-steam\"\/>\n      <path d=\"M105 54C99 40 113 34 107 18\" fill=\"none\" stroke=\"#BCA184\" stroke-width=\"4.5\" stroke-linecap=\"round\" class=\"s-steam\"\/>\n      <path d=\"M124 56C118 44 132 38 126 24\" fill=\"none\" stroke=\"#BCA184\" stroke-width=\"4.5\" stroke-linecap=\"round\" class=\"s-steam\"\/>\n      ${bean(14, 30, 28, 's-float', -20)}${bean(170, 18, 24, 's-float', 30)}${bean(176, 120, 22, 's-float', -40)}\n    <\/svg>`\n  },\n  cold: {\n    title: '\u0642\u0647\u0648\u0647 \u0633\u0631\u062f',\n    text: '\u06cc\u062e\u060c \u0634\u06cc\u0631 \u0648 \u0627\u0633\u067e\u0631\u0633\u0648\u061b \u0628\u0631\u0627\u06cc \u0648\u0642\u062a\u06cc \u06a9\u0647 \u0647\u0648\u0627 \u06af\u0631\u0645 \u0627\u0633\u062a.',\n    svg: `<svg viewBox=\"0 0 210 158\" aria-hidden=\"true\"><defs><linearGradient id=\"stC\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\"><stop offset=\"0\" stop-color=\"#F1DDBD\"\/><stop offset=\".45\" stop-color=\"#B98A5A\"\/><stop offset=\"1\" stop-color=\"#4B2C18\"\/><\/linearGradient><\/defs>\n      <ellipse cx=\"105\" cy=\"146\" rx=\"52\" ry=\"7\" fill=\"rgba(74,46,27,.2)\"\/>\n      <path d=\"M68 28H142L134 134Q133 142 124 142H86Q77 142 76 134Z\" fill=\"rgba(255,255,255,.55)\" stroke=\"#B9D0DA\" stroke-width=\"2.5\"\/>\n      <path d=\"M72 52H138L132 132Q131 137 124 137H86Q79 137 78 132Z\" fill=\"url(#stC)\"\/>\n      <g fill=\"#fff\" fill-opacity=\".55\" stroke=\"#fff\" stroke-opacity=\".9\" stroke-width=\"1.5\">\n        <rect x=\"86\" y=\"46\" width=\"24\" height=\"24\" rx=\"6\" class=\"s-ice\"\/><rect x=\"108\" y=\"60\" width=\"22\" height=\"22\" rx=\"6\" class=\"s-ice\"\/><rect x=\"92\" y=\"76\" width=\"20\" height=\"20\" rx=\"6\" class=\"s-ice\"\/><\/g>\n      <path d=\"M126 4L110 112\" stroke=\"#fff\" stroke-width=\"7\" stroke-linecap=\"round\"\/><path d=\"M126 4L110 112\" stroke=\"#8A5A36\" stroke-width=\"7\" stroke-linecap=\"round\" stroke-dasharray=\"7 9\" opacity=\".7\"\/>\n      <path d=\"M78 36L84 128\" stroke=\"#fff\" stroke-opacity=\".8\" stroke-width=\"3.5\" stroke-linecap=\"round\"\/>\n      <g fill=\"#fff\" fill-opacity=\".8\"><circle cx=\"96\" cy=\"124\" r=\"3\" class=\"s-bub\"\/><circle cx=\"116\" cy=\"118\" r=\"2.4\" class=\"s-bub\"\/><circle cx=\"104\" cy=\"128\" r=\"2\" class=\"s-bub\"\/><circle cx=\"122\" cy=\"126\" r=\"2.6\" class=\"s-bub\"\/><\/g>\n      <g stroke=\"#9CC4D6\" stroke-width=\"3\" stroke-linecap=\"round\"><path d=\"M30 60v16M22 68h16\" class=\"s-pulse\"\/><path d=\"M178 90v12M172 96h12\" class=\"s-pulse\"\/><\/g>\n    <\/svg>`\n  },\n  other: {\n    title: '\u0646\u0648\u0634\u06cc\u062f\u0646\u06cc\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631',\n    text: '\u0634\u06a9\u0644\u0627\u062a \u062f\u0627\u063a\u060c \u0686\u0627\u06cc \u0627\u062f\u0648\u06cc\u0647\u200c\u062f\u0627\u0631 \u0648 \u0644\u06cc\u0645\u0648\u0646\u0627\u062f \u062e\u0646\u06a9.',\n    svg: `<svg viewBox=\"0 0 210 158\" aria-hidden=\"true\">\n      <ellipse cx=\"105\" cy=\"146\" rx=\"60\" ry=\"8\" fill=\"rgba(74,46,27,.18)\"\/>\n      <path d=\"M92 70 C80 40 52 36 38 22 C60 18 90 30 98 62Z\" fill=\"#7FA45A\" class=\"s-sway\"\/>\n      <path d=\"M118 70 C130 36 160 30 176 14 C150 12 124 30 114 62Z\" fill=\"#93B46C\" class=\"s-sway\"\/>\n      <path d=\"M104 74 C96 46 104 26 108 8 C118 30 116 54 108 74Z\" fill=\"#6E9450\" class=\"s-sway\"\/>\n      <g class=\"s-spin\"><circle cx=\"105\" cy=\"100\" r=\"42\" fill=\"#F8EEA6\" stroke=\"#E7D26E\" stroke-width=\"7\"\/>\n        <g stroke=\"#F0E28C\" stroke-width=\"3.5\" stroke-linecap=\"round\"><path d=\"M105 62V138M67 100H143M78 73L132 127M132 73L78 127\"\/><\/g>\n        <circle cx=\"105\" cy=\"100\" r=\"6\" fill=\"#F8EEA6\"\/><\/g>\n      <ellipse cx=\"92\" cy=\"80\" rx=\"14\" ry=\"5\" fill=\"#fff\" opacity=\".35\" transform=\"rotate(-35 92 80)\"\/>\n      <g fill=\"#BFE0EA\"><path d=\"M30 40c4 7 6 11 0 15s-8-4 0-15Z\" class=\"s-fall\"\/><path d=\"M182 52c4 7 6 11 0 15s-8-4 0-15Z\" class=\"s-fall\"\/><path d=\"M168 24c3 5 5 8 0 11s-6-3 0-11Z\" class=\"s-fall\"\/><\/g>\n    <\/svg>`\n  },\n  food: {\n    title: '\u0635\u0628\u062d\u0627\u0646\u0647',\n    text: '\u0646\u0627\u0646 \u062a\u0627\u0632\u0647\u060c \u062a\u062e\u0645\u200c\u0645\u0631\u063a \u0648 \u06a9\u0631\u0647\u061b \u0634\u0631\u0648\u0639 \u062e\u0648\u0628 \u0631\u0648\u0632.',\n    svg: `<svg viewBox=\"0 0 210 158\" aria-hidden=\"true\">\n      <g class=\"s-spin\" style=\"animation-duration:30s\"><g stroke=\"#F3C660\" stroke-width=\"5\" stroke-linecap=\"round\" opacity=\".8\">\n        <path d=\"M105 6V22M105 136V152M12 79H28M182 79H198M39 13L50 24M160 134L171 145M171 13L160 24M50 134L39 145\"\/><\/g><\/g>\n      <circle cx=\"105\" cy=\"79\" r=\"40\" fill=\"#FBE3A0\" opacity=\".85\" class=\"s-pulse\"\/>\n      <ellipse cx=\"105\" cy=\"136\" rx=\"72\" ry=\"9\" fill=\"rgba(74,46,27,.2)\"\/>\n      <ellipse cx=\"105\" cy=\"126\" rx=\"68\" ry=\"11\" fill=\"#fff\" stroke=\"#E2D2BA\" stroke-width=\"1.5\"\/>\n      <path d=\"M52 112 A54 50 0 0 1 158 112\" fill=\"none\" stroke=\"#B97B36\" stroke-width=\"34\" stroke-linecap=\"round\"\/>\n      <path d=\"M52 110 A54 50 0 0 1 158 110\" fill=\"none\" stroke=\"#DDA95A\" stroke-width=\"31\" stroke-linecap=\"round\"\/>\n      <path d=\"M52 110 A54 50 0 0 1 158 110\" fill=\"none\" stroke=\"#9F6125\" stroke-width=\"31\" stroke-dasharray=\"2 13\" opacity=\".45\"\/>\n      <path d=\"M62 96 A54 50 0 0 1 118 68\" fill=\"none\" stroke=\"#F6D595\" stroke-width=\"7\" stroke-linecap=\"round\" opacity=\".75\"\/>\n      <g fill=\"#C98A3F\"><circle cx=\"40\" cy=\"30\" r=\"2.6\" class=\"s-fall\"\/><circle cx=\"168\" cy=\"38\" r=\"2.2\" class=\"s-fall\"\/><circle cx=\"150\" cy=\"20\" r=\"2.4\" class=\"s-fall\"\/><circle cx=\"62\" cy=\"14\" r=\"2\" class=\"s-fall\"\/><\/g>\n    <\/svg>`\n  },\n  sweet: {\n    title: '\u062f\u0633\u0631',\n    text: '\u0634\u06cc\u0631\u06cc\u0646\u060c \u0646\u0631\u0645 \u0648 \u062e\u0648\u0634\u200c\u0639\u0637\u0631\u061b \u06a9\u0646\u0627\u0631 \u0642\u0647\u0648\u0647\u200c\u0627\u062a.',\n    svg: `<svg viewBox=\"0 0 210 158\" aria-hidden=\"true\">\n      <ellipse cx=\"105\" cy=\"142\" rx=\"78\" ry=\"9\" fill=\"rgba(74,46,27,.2)\"\/>\n      <ellipse cx=\"105\" cy=\"132\" rx=\"72\" ry=\"11\" fill=\"#fff\" stroke=\"#E2D2BA\" stroke-width=\"1.5\"\/>\n      <rect x=\"52\" y=\"108\" width=\"106\" height=\"20\" rx=\"6\" fill=\"#5A3420\"\/>\n      <rect x=\"52\" y=\"96\" width=\"106\" height=\"12\" fill=\"#F6E5C3\"\/>\n      <rect x=\"52\" y=\"74\" width=\"106\" height=\"22\" fill=\"#7A4A2D\"\/>\n      <path d=\"M48 62H162V74H48Z\" fill=\"#FBEFD9\"\/>\n      <path d=\"M52 74c8 0 8 14 14 14s6-14 14-14 8 10 14 10 6-10 14-10 8 14 14 14 6-14 14-14 8 12 12 12 6-12 12-12\" fill=\"#FBEFD9\"\/>\n      <rect x=\"52\" y=\"76\" width=\"106\" height=\"4\" fill=\"#fff\" opacity=\".18\"\/>\n      <g class=\"s-bounce\"><path d=\"M105 52c0-12 8-22 18-26\" fill=\"none\" stroke=\"#5E7A3A\" stroke-width=\"3\" stroke-linecap=\"round\"\/><circle cx=\"105\" cy=\"54\" r=\"12\" fill=\"#C62F3B\"\/><ellipse cx=\"101\" cy=\"50\" rx=\"4\" ry=\"2.6\" fill=\"#fff\" opacity=\".5\" transform=\"rotate(-30 101 50)\"\/><\/g>\n      <g><rect x=\"34\" y=\"20\" width=\"9\" height=\"3.6\" rx=\"1.8\" fill=\"#F26D85\" class=\"s-fall\"\/><rect x=\"170\" y=\"14\" width=\"9\" height=\"3.6\" rx=\"1.8\" fill=\"#6DC1B8\" class=\"s-fall\"\/><rect x=\"150\" y=\"30\" width=\"9\" height=\"3.6\" rx=\"1.8\" fill=\"#F5C34D\" class=\"s-fall\"\/><rect x=\"62\" y=\"8\" width=\"9\" height=\"3.6\" rx=\"1.8\" fill=\"#8E7CE0\" class=\"s-fall\"\/><rect x=\"186\" y=\"40\" width=\"9\" height=\"3.6\" rx=\"1.8\" fill=\"#F26D85\" class=\"s-fall\"\/><\/g>\n    <\/svg>`\n  }\n};\n\n\/* ===================== cart state ===================== *\/\nconst cart = new Map();\nconst count = () => [...cart.values()].reduce((s, q) => s + q, 0);\nconst total = () => [...cart].reduce((s, [id, q]) => s + byId[id].price * q, 0);\n\nfunction ctl(id){\n  const q = cart.get(id) || 0, it = byId[id];\n  return q\n    ? `<div class=\"step\" role=\"group\" aria-label=\"\u062a\u0639\u062f\u0627\u062f ${it.name}\"><button type=\"button\" data-act=\"dec\" aria-label=\"\u06a9\u0645 \u06a9\u0631\u062f\u0646 ${it.name}\">\u2212<\/button><output aria-live=\"polite\">${fa(q)}<\/output><button type=\"button\" data-act=\"inc\" aria-label=\"\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 ${it.name}\">+<\/button><\/div>`\n    : `<button type=\"button\" class=\"add\" data-act=\"inc\" aria-label=\"\u0627\u0641\u0632\u0648\u062f\u0646 ${it.name} \u0628\u0647 \u0633\u0628\u062f\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M12 5v14M5 12h14\"\/><\/svg>\u0627\u0641\u0632\u0648\u062f\u0646<\/button>`;\n}\n\nfunction change(id, delta){\n  const q = Math.max(0, (cart.get(id) || 0) + delta);\n  q ? cart.set(id, q) : cart.delete(id);\n  const slot = ROOT.querySelector(`.item[data-id=\"${id}\"] .ctl`);\n  if(slot){\n    const hadFocus = slot.contains(document.activeElement);\n    slot.innerHTML = ctl(id);\n    if(hadFocus){ const nb = slot.querySelector('[data-act=\"inc\"]'); nb && nb.focus(); }\n  }\n  syncCart();\n}\n\n\/* coffee beans that jump from the button into the cart *\/\nfunction flyBeans(r){\n  if(reduce || ROOT.classList.contains('cart-open')) return;\n  const t = $('#openCart').getBoundingClientRect();\n  const sx = r.left + r.width \/ 2, sy = r.top + r.height \/ 2, tx = t.left + t.width \/ 2, ty = t.top + t.height \/ 2;\n  for(let i = 0; i < 5; i++){\n    const el = document.createElement('span');\n    el.className = 'fly'; el.innerHTML = BEAN('');\n    el.style.left = (sx - 10) + 'px'; el.style.top = (sy - 6) + 'px';\n    ROOT.appendChild(el);\n    const ox = (Math.random() - .5) * 100, oy = -40 - Math.random() * 70;\n    el.animate([\n      {transform:'translate(0,0) rotate(0deg) scale(.6)', opacity:0},\n      {transform:`translate(${ox}px,${oy}px) rotate(${Math.random() * 200}deg) scale(1.15)`, opacity:1, offset:.35},\n      {transform:`translate(${tx - sx}px,${ty - sy}px) rotate(${360 + Math.random() * 200}deg) scale(.5)`, opacity:.9}\n    ], {duration:760 + i * 70, delay:i * 55, easing:'cubic-bezier(.5,0,.3,1)', fill:'both'}).onfinish = () => el.remove();\n  }\n}\n\nfunction syncCart(){\n  const n = count(), t = total();\n  const nc = $('#navCount');\n  if(nc.dataset.n != n){ nc.classList.remove('bump'); void nc.offsetWidth; nc.classList.add('bump'); }\n  nc.dataset.n = n; nc.textContent = fa(n);\n  $('#barCount').textContent = fa(n);\n  $('#barTotal').textContent = money(t);\n  $('#bar').classList.toggle('show', n > 0 && !ROOT.classList.contains('cart-open'));\n  $('#dTotal').textContent = money(t);\n  $('#orderForm').style.display = n ? '' : 'none';\n  const body = $('#dBody');\n  if(!n){\n    body.innerHTML = `<div class=\"empty\"><p>\u0633\u0628\u062f \u062e\u0627\u0644\u06cc \u0627\u0633\u062a. \u0627\u0632 \u0645\u0646\u0648 \u06cc\u06a9 \u0646\u0648\u0634\u06cc\u062f\u0646\u06cc \u06cc\u0627 \u062f\u0633\u0631 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646.<\/p><button class=\"cta\" type=\"button\" id=\"backMenu\">\u062f\u06cc\u062f\u0646 \u0645\u0646\u0648<\/button><\/div>`;\n  } else {\n    body.innerHTML = [...cart].map(([id, q]) => {\n      const it = byId[id];\n      return `<div class=\"line\" data-id=\"${id}\"><div><b>${it.name}<\/b><span class=\"p\">${money(it.price * q)}<\/span><\/div><div class=\"ctl\">${ctl(id)}<\/div><\/div>`;\n    }).join('');\n  }\n}\n\n\/* ===================== menu ===================== *\/\nconst grid = $('#grid'), track = $('#track'), ind = $('#ind'), stage = $('#stage');\nlet active = CATS[0].id;\n\nCATS.forEach(c => {\n  const b = document.createElement('button');\n  b.className = 'tab'; b.type = 'button'; b.role = 'tab'; b.dataset.cat = c.id; b.textContent = c.name;\n  track.appendChild(b);\n});\n\nfunction placeInd(){\n  const b = track.querySelector('.tab[aria-selected=\"true\"]');\n  if(!b) return;\n  ind.style.width = b.offsetWidth + 'px';\n  ind.style.transform = `translateX(${b.offsetLeft}px)`;\n}\n\nfunction renderGrid(animate){\n  track.querySelectorAll('.tab').forEach(t => {\n    const on = t.dataset.cat === active;\n    t.setAttribute('aria-selected', on);\n    t.tabIndex = on ? 0 : -1;\n  });\n  placeInd();\n\n  const st = STAGE[active];\n  stage.dataset.cat = active;\n  stage.innerHTML = `<div class=\"stage-art\">${st.svg}<\/div><div><h3>${st.title}<\/h3><p>${st.text}<\/p><\/div>`;\n  stage.classList.remove('swap');\n  if(animate){ void stage.offsetWidth; stage.classList.add('swap'); }\n\n  grid.innerHTML = ITEMS.filter(i => i.cat === active).map((it, i) => {\n    const ph = PHOTOS[it.id];\n    return `\n    <article class=\"item${it.feat ? ' feat' : ''}\" data-id=\"${it.id}\" style=\"--i:${i}\">\n      <div class=\"art${ph ? ' photo' : ''}\">${ph ? `<img decoding=\"async\" src=\"${ph}\" alt=\"${it.name}\" loading=\"lazy\" draggable=\"false\">` : art(it)}<\/div>\n      ${it.feat ? '<span class=\"tag\">\u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0634\u0644<\/span>' : ''}\n      <h3>${it.name}<\/h3>\n      <p class=\"desc\">${it.desc}<\/p>\n      <div class=\"buy\"><span class=\"price\">${fa(it.price)}<small>\u062a\u0648\u0645\u0627\u0646<\/small><\/span><span class=\"ctl\">${ctl(it.id)}<\/span><\/div>\n    <\/article>`;\n  }).join('');\n  grid.setAttribute('aria-label', CATS.find(c => c.id === active).name);\n  grid.classList.remove('enter');\n  if(animate){ void grid.offsetWidth; grid.classList.add('enter'); }\n}\n\ntrack.addEventListener('click', e => {\n  const t = e.target.closest('.tab'); if(!t || t.dataset.cat === active) return;\n  active = t.dataset.cat; renderGrid(true);\n  t.scrollIntoView({inline:'center', block:'nearest', behavior: reduce ? 'auto' : 'smooth'});\n});\ntrack.addEventListener('keydown', e => {\n  const k = e.key; if(k !== 'ArrowLeft' && k !== 'ArrowRight') return;\n  const i = CATS.findIndex(c => c.id === active);\n  const n = (i + (k === 'ArrowLeft' ? 1 : -1) + CATS.length) % CATS.length; \/\/ in right-to-left, left means next\n  active = CATS[n].id; renderGrid(true);\n  track.querySelector('.tab[aria-selected=\"true\"]').focus();\n});\ngrid.addEventListener('click', e => {\n  const btn = e.target.closest('[data-act]'); if(!btn) return;\n  const card = btn.closest('.item'); if(!card) return;\n  const inc = btn.dataset.act === 'inc', r = btn.getBoundingClientRect();\n  change(card.dataset.id, inc ? 1 : -1);\n  if(inc) flyBeans(r);\n});\n\n\/* 3D tilt of the cards following the mouse pointer *\/\nif(matchMedia('(hover:hover) and (pointer:fine)').matches && !reduce){\n  grid.addEventListener('pointermove', e => {\n    const card = e.target.closest('.item'); if(!card) return;\n    const r = card.getBoundingClientRect(), x = (e.clientX - r.left) \/ r.width, y = (e.clientY - r.top) \/ r.height;\n    card.classList.add('tilting');\n    card.style.setProperty('--ry', ((x - .5) * 14).toFixed(2) + 'deg');\n    card.style.setProperty('--rx', ((.5 - y) * 12).toFixed(2) + 'deg');\n    card.style.setProperty('--gx', (x * 100).toFixed(1) + '%');\n    card.style.setProperty('--gy', (y * 100).toFixed(1) + '%');\n    card.style.setProperty('--go', 1);\n  });\n  grid.addEventListener('pointerout', e => {\n    const card = e.target.closest('.item');\n    if(!card || card.contains(e.relatedTarget)) return;\n    card.classList.remove('tilting');\n    card.style.setProperty('--rx', '0deg'); card.style.setProperty('--ry', '0deg'); card.style.setProperty('--go', 0);\n  });\n}\n\n\/* ===================== four-card gallery ===================== *\/\n(function(){\n  const N = GALLERY.length, IV = 4500;\n  const deck = $('#deck'), dotsEl = $('#dots');\n  const cam = '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4 8h3l1.5-2h7L17 8h3a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1Z\"\/><circle cx=\"12\" cy=\"13\" r=\"3.6\"\/><\/svg>';\n  deck.innerHTML = GALLERY.map((g, i) => `\n    <figure class=\"gcard\" aria-label=\"${g.t}\">\n      ${g.img ? `<img decoding=\"async\" src=\"${g.img}\" alt=\"${g.t}\" draggable=\"false\">` : `<div class=\"ph\">${cam}<span>\u0639\u06a9\u0633 ${fa(i + 1)}<\/span><\/div>`}\n      <figcaption>${g.t}<\/figcaption>\n    <\/figure>`).join('');\n  dotsEl.innerHTML = GALLERY.map((g, i) => `<button class=\"dot\" type=\"button\" aria-label=\"\u0631\u0641\u062a\u0646 \u0628\u0647 \u0639\u06a9\u0633 ${fa(i + 1)}\"><i><\/i><\/button>`).join('');\n  const cards = [...deck.children], dots = [...dotsEl.children];\n\n  let cur = 0, dx = 0, dragging = false, flying = -1, busy = false, hover = false, inView = true, timer = null, sx = 0;\n  const OUT = 'translate3d(-120%,-20px,0) rotate(-10deg)';\n\n  function layout(){\n    cards.forEach((c, i) => {\n      if(i === flying) return;\n      const o = (i - cur + N) % N;\n      let tx = -o * 16, ty = o * 10, sc = 1 - o * .06, rot = 0, op = o > 2 ? 0 : 1 - o * .16;\n      if(o === 0 && dx){ tx = dx; rot = dx \/ 20; }\n      c.style.transform = `translate3d(${tx}px,${ty}px,0) scale(${sc}) rotate(${rot}deg)`;\n      c.style.opacity = op;\n      c.style.zIndex = N - o;\n      c.setAttribute('aria-hidden', o === 0 ? 'false' : 'true');\n    });\n  }\n  function progress(){\n    dots.forEach((d, i) => {\n      d.classList.toggle('on', i === cur);\n      const f = d.firstElementChild;\n      f.style.animation = 'none';\n      if(i === cur && !reduce){ void f.offsetWidth; f.style.animation = `shell-fillbar ${IV}ms linear forwards`; }\n      else if(i === cur){ f.style.width = '100%'; }\n    });\n  }\n  function schedule(){\n    clearTimeout(timer);\n    if(reduce) return;\n    timer = setTimeout(() => {\n      if(!hover && !dragging && inView && !document.hidden) go(1); else schedule();\n    }, IV);\n  }\n  function go(dir){\n    if(busy) return;\n    busy = true;\n    if(dir > 0){\n      const old = cards[cur];\n      flying = cur; old.classList.add('fly'); old.style.transform = OUT; old.style.opacity = '0';\n      cur = (cur + 1) % N; dx = 0; layout();\n      setTimeout(() => { flying = -1; old.classList.remove('fly'); layout(); busy = false; }, 440);\n    } else {\n      const prev = (cur - 1 + N) % N, c = cards[prev];\n      c.style.transition = 'none'; c.style.transform = OUT; c.style.opacity = '0'; c.style.zIndex = N + 1;\n      void c.offsetWidth; c.style.transition = '';\n      cur = prev; dx = 0; layout();\n      setTimeout(() => { busy = false; }, 460);\n    }\n    progress(); schedule();\n  }\n  function goTo(i){\n    if(i === cur) return;\n    \/\/ jump directly: several steps in a row, without waiting\n    const steps = (i - cur + N) % N;\n    let k = 0;\n    const run = () => { busy = false; go(1); if(++k < steps) setTimeout(run, 150); };\n    run();\n  }\n\n  deck.addEventListener('pointerdown', e => {\n    if(busy) return;\n    dragging = true; sx = e.clientX; dx = 0;\n    deck.setPointerCapture(e.pointerId); deck.classList.add('dragging');\n  });\n  deck.addEventListener('pointermove', e => {\n    if(!dragging) return;\n    dx = e.clientX - sx; layout();\n  });\n  const end = cancel => {\n    if(!dragging) return;\n    dragging = false; deck.classList.remove('dragging');\n    const d = cancel ? 0 : dx; dx = 0;\n    if(d < -55) go(1); else if(d > 55) go(-1); else layout();\n    schedule();\n  };\n  deck.addEventListener('pointerup', () => end(false));\n  deck.addEventListener('pointercancel', () => end(true));\n  deck.addEventListener('keydown', e => {\n    if(e.key === 'ArrowLeft'){ go(1); e.preventDefault(); }\n    if(e.key === 'ArrowRight'){ go(-1); e.preventDefault(); }\n  });\n  deck.addEventListener('mouseenter', () => { hover = true; });\n  deck.addEventListener('mouseleave', () => { hover = false; });\n  $('#gNext').addEventListener('click', () => go(1));\n  $('#gPrev').addEventListener('click', () => go(-1));\n  dots.forEach((d, i) => d.addEventListener('click', () => goTo(i)));\n  new IntersectionObserver(es => { inView = es[0].isIntersecting; }, {threshold:.25}).observe(deck);\n\n  layout(); progress(); schedule();\n})();\n\n\/* ===================== cart and order submission ===================== *\/\nconst drawer = $('#drawer');\nlet lastFocus = null;\nfunction openCart(){\n  lastFocus = document.activeElement;\n  ROOT.classList.add('cart-open');\n  drawer.removeAttribute('inert');\n  $('#done').classList.remove('on');\n  syncCart();\n  setTimeout(() => $('#closeCart').focus(), 50);\n}\nfunction closeCart(){\n  ROOT.classList.remove('cart-open');\n  drawer.setAttribute('inert', '');\n  syncCart();\n  lastFocus && lastFocus.focus && lastFocus.focus();\n}\n$('#openCart').addEventListener('click', openCart);\n$('#bar').addEventListener('click', openCart);\n$('#closeCart').addEventListener('click', closeCart);\n$('#scrim').addEventListener('click', closeCart);\ndocument.addEventListener('keydown', e => { if(e.key === 'Escape' && ROOT.classList.contains('cart-open')) closeCart(); });\n$('#dBody').addEventListener('click', e => {\n  if(e.target.closest('#backMenu')){ closeCart(); $('#menu').scrollIntoView({behavior: reduce ? 'auto' : 'smooth'}); return; }\n  const btn = e.target.closest('[data-act]'); if(!btn) return;\n  const line = btn.closest('.line'); if(!line) return;\n  change(line.dataset.id, btn.dataset.act === 'inc' ? 1 : -1);\n});\n\n$('#orderForm').addEventListener('submit', async e => {\n  e.preventDefault();\n  const input = $('#table'), err = $('#tErr');\n  const v = norm(input.value.trim());\n  if(!\/^\\d{1,3}$\/.test(v) || +v < 1){\n    input.setAttribute('aria-invalid', 'true');\n    err.textContent = '\u0634\u0645\u0627\u0631\u0647 \u0645\u06cc\u0632 \u0631\u0627 \u0628\u0627 \u0639\u062f\u062f \u0628\u0646\u0648\u06cc\u0633\u060c \u0645\u062b\u0644\u0627\u064b \u06f5.';\n    input.focus(); return;\n  }\n  input.removeAttribute('aria-invalid'); err.textContent = '';\n  const btn = $('#submit'); btn.disabled = true; btn.textContent = '\u062f\u0631 \u062d\u0627\u0644 \u062b\u0628\u062a\u2026';\n  const order = {table:+v, items:[...cart].map(([id, q]) => ({id, name:byId[id].name, qty:q, price:byId[id].price})), total:total()};\n  let ok = false;\n  try{ ok = await sendOrder(order); }catch(_){ ok = false; }\n  btn.disabled = false; btn.textContent = '\u062b\u0628\u062a \u0633\u0641\u0627\u0631\u0634';\n  if(!ok){ err.textContent = '\u0633\u0641\u0627\u0631\u0634 \u062b\u0628\u062a \u0646\u0634\u062f. \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646.'; return; }\n  $('#doneCode').textContent = 'SH-' + Number(Math.floor(1000 + Math.random() * 9000)).toLocaleString('fa-IR', {useGrouping:false});\n  $('#doneMsg').textContent = `\u0633\u0641\u0627\u0631\u0634\u062a \u0628\u0631\u0627\u06cc \u0645\u06cc\u0632 ${fa(+v)} \u062b\u0628\u062a \u0634\u062f \u0648 \u0628\u0647\u200c\u0632\u0648\u062f\u06cc \u0622\u0645\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.`;\n  $('#done').classList.add('on');\n  $('#doneClose').focus();\n});\n$('#table').addEventListener('input', () => { $('#table').removeAttribute('aria-invalid'); $('#tErr').textContent = ''; });\n$('#doneClose').addEventListener('click', () => {\n  cart.clear(); $('#table').value = '';\n  ROOT.querySelectorAll('.item .ctl').forEach(c => { c.innerHTML = ctl(c.closest('.item').dataset.id); });\n  closeCart();\n});\n\n\/* ===================== footer info ===================== *\/\n(function(){\n  const a = $('#addr');\n  a.textContent = CAFE.address;\n  if(CAFE.mapUrl){\n    const l = document.createElement('a');\n    l.className = 'map'; l.href = CAFE.mapUrl; l.target = '_blank'; l.rel = 'noopener noreferrer'; l.textContent = '\u0645\u0634\u0627\u0647\u062f\u0647 \u0631\u0648\u06cc \u0646\u0642\u0634\u0647';\n    a.after(document.createElement('br'), l);\n  }\n  const ig = $('#insta');\n  ig.href = 'https:\/\/www.instagram.com\/' + CAFE.instagram + '\/';\n  ig.querySelector('span').textContent = '@' + CAFE.instagram;\n})();\n\n\/* ===================== hamburger menu + cream curtain ===================== *\/\n(function(){\n  const burger = $('#burger'), panel = $('#mpanel'), scrim = $('#mscrim');\n  const curtain = $('#curtain'), cIn = $('#curtainIn'), cLabel = $('#curtainLabel');\n  let busy = false;\n  const sleep = ms => new Promise(r => setTimeout(r, ms));\n\n  function setMenu(open){\n    burger.setAttribute('aria-expanded', open);\n    burger.setAttribute('aria-label', open ? '\u0628\u0633\u062a\u0646 \u0645\u0646\u0648' : '\u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u0645\u0646\u0648');\n    panel.classList.toggle('open', open);\n    scrim.classList.toggle('open', open);\n    if(open) panel.removeAttribute('inert'); else panel.setAttribute('inert', '');\n  }\n  burger.addEventListener('click', () => setMenu(burger.getAttribute('aria-expanded') !== 'true'));\n  scrim.addEventListener('click', () => setMenu(false));\n  document.addEventListener('keydown', e => {\n    if(e.key === 'Escape' && panel.classList.contains('open')){ setMenu(false); burger.focus(); }\n  });\n\n  function jump(target){\n    if(target === '#top'){ ROOT.scrollIntoView({behavior:'instant', block:'start'}); return; }\n    const el = ROOT.querySelector(target);\n    if(el) el.scrollIntoView({behavior:'instant', block:'start'});\n  }\n\n  async function goSection(target, label){\n    if(busy) return;\n    setMenu(false);\n    if(reduce || !curtain.animate){ jump(target); return; }\n    busy = true;\n    const ease = 'cubic-bezier(.7,0,.2,1)';\n    curtain.classList.add('on');\n    cLabel.textContent = label;\n    \/\/ 1) the cream curtain rises from the bottom and covers the page\n    const up = curtain.animate([{transform:'translateY(100%)'},{transform:'translateY(0)'}], {duration:650, easing:ease, fill:'forwards'});\n    cIn.animate([{opacity:0, transform:'translateY(16px)'},{opacity:1, transform:'none'}], {duration:450, delay:300, easing:'ease-out', fill:'forwards'});\n    await up.finished;\n    \/\/ 2) behind the curtain we jump to the target section\n    jump(target);\n    await sleep(380);\n    \/\/ 3) the curtain moves up and the target section is revealed\n    const out = curtain.animate([{transform:'translateY(0)'},{transform:'translateY(-100%)'}], {duration:650, easing:ease, fill:'forwards'});\n    cIn.animate([{opacity:1},{opacity:0}], {duration:250, easing:'ease-in', fill:'forwards'});\n    await out.finished;\n    curtain.getAnimations().forEach(a => a.cancel());\n    cIn.getAnimations().forEach(a => a.cancel());\n    curtain.classList.remove('on');\n    busy = false;\n  }\n\n  panel.addEventListener('click', e => {\n    const b = e.target.closest('[data-go]'); if(!b) return;\n    goSection(b.dataset.go, b.dataset.label);\n  });\n})();\n\n\/* ===================== top bar ===================== *\/\nconst nav = $('#nav');\nconst onScroll = () => nav.classList.toggle('solid', -ROOT.getBoundingClientRect().top > 24);\naddEventListener('scroll', onScroll, {passive:true}); onScroll();\naddEventListener('resize', placeInd);\n\n\/* in-page anchor links (brand, \"see menu\" button) *\/\nROOT.addEventListener('click', e => {\n  const a = e.target.closest('a[href^=\"#\"]');\n  if(!a || !ROOT.contains(a)) return;\n  const h = a.getAttribute('href');\n  const to = h === '#top' ? ROOT : (h.length > 1 ? ROOT.querySelector(h) : null);\n  if(!to) return;\n  e.preventDefault();\n  to.scrollIntoView({behavior: reduce ? 'auto' : 'smooth', block:'start'});\n});\n\nrenderGrid(false);\nsyncCart();\ndocument.fonts && document.fonts.ready.then(placeInd);\n\n\/* =====================================================\n   background video\n   ===================================================== *\/\n(function(){\n  const box = $('#heroVideoBox'), v = $('#heroVideo');\n  if(!HERO_VIDEO.src){ v.remove(); return; }\n  box.classList.remove('empty');\n  if(HERO_VIDEO.poster) v.poster = HERO_VIDEO.poster;\n  v.src = HERO_VIDEO.src;\n  if(reduce){ v.removeAttribute('autoplay'); return; }\n  const play = () => v.play().catch(() => {});\n  play();\n  new IntersectionObserver(es => { es[0].isIntersecting ? play() : v.pause(); }, {threshold:.05}).observe(box);\n})();\n})();\n<\/script>}\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Shell \u0633\u0628\u062f \u0633\u0641\u0627\u0631\u0634 \u06f0 \u062e\u0627\u0646\u0647 \u0641\u0636\u0627\u06cc \u06a9\u0627\u0641\u0647 \u062f\u0631\u0628\u0627\u0631\u0647 \u0645\u0627 \u062a\u0645\u0627\u0633 Shell Shell \u0642\u0647\u0648\u0647\u200c\u06cc \u062a\u0627\u0632\u0647\u060c \u0635\u0628\u062d\u0627\u0646\u0647 \u0648 \u062f\u0633\u0631 \u062f\u0631 \u0641\u0636\u0627\u06cc\u06cc \u0622\u0631\u0627\u0645. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/shellcafe.ir\/index.php?rest_route=\/wp\/v2\/pages\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shellcafe.ir\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/shellcafe.ir\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/shellcafe.ir\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/shellcafe.ir\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2"}],"version-history":[{"count":68,"href":"https:\/\/shellcafe.ir\/index.php?rest_route=\/wp\/v2\/pages\/2\/revisions"}],"predecessor-version":[{"id":101,"href":"https:\/\/shellcafe.ir\/index.php?rest_route=\/wp\/v2\/pages\/2\/revisions\/101"}],"wp:attachment":[{"href":"https:\/\/shellcafe.ir\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}