
:root{--wood:#29160d;--ink:#452514;--paper:#f0d5a3;--paper-light:#f7e7c4;--gold:#c7924c}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 5%,#604029 0,#2c190f 50%,#1b100b 100%);font-family:Georgia,'Times New Roman',serif;color:var(--ink)}
button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #d9ae59;outline-offset:3px}
#app{max-width:500px;min-height:100vh;margin:0 auto;padding:10px 10px 104px}.loading{color:#ffe6b1;text-align:center}
.frame{background:linear-gradient(130deg,#f9e5be,#e6c38c 60%,#f8deb0);border:10px ridge #815022;outline:2px solid #d6a65d;border-radius:22px;box-shadow:0 16px 50px #000a,0 0 0 2px #5c2b0e inset;overflow:hidden;position:relative}
.frame:after{content:'';position:absolute;inset:7px;border:1px solid #ad7238;border-radius:11px;pointer-events:none}
.frame-pad{padding:18px 18px 26px}.folio{animation:pageEnter .56s ease both}@keyframes pageEnter{from{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
.cover-screen{position:relative;min-height:min(82vh,760px);display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#472514,#1e130c);color:#ffe3ae}
.cover-screen:before{content:'';position:absolute;inset:16px;border:3px double #c59443;border-radius:12px;box-shadow:inset 0 0 20px #0008}
.cover-inside{position:relative;text-align:center;padding:36px;z-index:2}.cover-inside img{max-width:78%;max-height:135px;object-fit:contain;filter:drop-shadow(0 4px 4px #0005)}.cover-inside h1{font-size:39px;line-height:1.08;margin:26px 0}.cover-inside p{font-size:17px;color:#f7d59a}.cover-inside button{font-size:22px;color:#ffe6b1;background:linear-gradient(#70411e,#391b0b);border-radius:50px;padding:15px 28px;border:2px solid #cda056}
.cover-flip{transform-origin:left center;animation:coverOpen .83s ease-in-out forwards;pointer-events:none}@keyframes coverOpen{to{transform:perspective(900px) rotateY(-92deg);opacity:0}}
.home-image{position:relative}.home-image>img{width:100%;display:block;height:auto}.hotspot{position:absolute;left:3%;width:94%;height:7.65%;border:0;border-radius:8px;background:transparent}.hotspot:hover,.hotspot:focus-visible{background:#e5b45c33;box-shadow:0 0 0 2px #ad7f46 inset}
.home-access{padding:14px;text-align:center;font-size:15px;line-height:1.45;background:#f2ddb7}.home-access button{font-size:17px;padding:10px 20px;background:#5e351d;color:#ffefcf;border:1px solid #af753d;border-radius:20px}
.topline{display:flex;align-items:center;gap:10px;color:#ffdfae;margin-bottom:11px;padding:9px 14px;min-height:54px;border:1px solid #aa7338;border-radius:19px;background:#442613ee}.topline h1{font-size:23px;text-align:center;line-height:1.15;margin:0;flex:1}.topline button{font-size:18px;border:1px solid #af7b43;border-radius:999px;background:#281409;color:#ffe4b6;padding:5px 11px}
.hero{position:relative;overflow:hidden;background:#21130e}.hero img{width:100%;height:auto;display:block;object-fit:cover}.hero .veil{position:absolute;left:0;right:0;bottom:0;height:36%;background:linear-gradient(transparent,#29140b99);pointer-events:none}.hero .hero-label{position:absolute;left:20px;right:20px;bottom:20px;color:#fff0cb;font-size:34px;text-shadow:0 3px 8px #180b08}
.ornament{text-align:center;margin:12px auto;color:#9a6232;font-size:20px;letter-spacing:12px}.brand-header{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px 7px}.brand-header img{height:70px;max-width:77%;object-fit:contain}
.chapter-list{padding:12px}.food-card{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:center;padding:10px;margin:6px 0 13px;background:#fff6e688;border:1px solid #a77f4a70;border-radius:14px;color:var(--ink);width:100%;text-align:left}.food-card img{width:96px;height:100px;object-fit:cover;border-radius:12px}.food-card strong{display:block;font-size:21px;line-height:1.12}.food-card small{display:block;font-size:14px;line-height:1.45;margin:5px 0;color:#61442d}.food-card em{font-size:21px;font-weight:700;font-style:normal;color:#6c3112}
.search{width:100%;background:#fff8e8;border:1px solid #ae8653;border-radius:12px;padding:12px 15px;color:#412716;font-size:17px;margin-top:12px}.note{font-size:14px;line-height:1.45;padding:12px 15px;background:#fff5dbbf;border-left:3px solid #bb874d;border-radius:4px;margin:10px 0}.mute{color:#6d4f33}
.item-photo{position:relative;background:#170e0b;overflow:hidden}.item-photo img{display:block;width:100%;max-height:570px;object-fit:cover}.item-photo picture{display:block}.item-photo .image-intro{position:absolute;left:0;right:0;top:0;height:40%;background:linear-gradient(#0007,transparent);pointer-events:none}
.item-content{padding:8px 21px 36px}.item-content h2{font-size:clamp(33px,9vw,49px);line-height:1.01;text-align:center;margin:14px 0 18px;font-weight:700}.item-content .description{font-size:18px;line-height:1.53;text-align:center;margin:10px auto 20px}.metadata{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;align-items:center;margin:15px 0}.metadata .price{font-size:48px;font-weight:bold;color:#6c3214}.metadata .weight{font-size:17px;border:1px solid #ae7d44;border-radius:45px;padding:10px 12px}.rule{height:1px;background:linear-gradient(to right,transparent,#ad844c,transparent);margin:18px 0}.ingredients h3,.allergens h3{font-size:23px;margin:0 0 10px}.ingredients p,.allergens p{font-size:16px;line-height:1.5;margin:0}.ingredients ul{margin:0;padding-left:22px}.ingredients li{font-size:17px;line-height:1.5;padding:1px 0}.allergen-tag{display:inline-block;margin:3px 4px 2px 0;border:1px solid #bd945f;border-radius:30px;padding:5px 9px;font-size:14px;background:#ffffff33}
.langbar{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;margin-top:18px}.langbar button{border:1px solid #bc945f;border-radius:19px;background:#d9b781;color:#462915;padding:8px 11px}.langbar button.active{background:#542f18;color:#ffdfb0}
.buy{display:block;width:100%;border:2px solid #d3a058;border-radius:15px;background:linear-gradient(#6b3d20,#3d1d0f);color:#ffefce;font-size:19px;padding:15px;margin-top:20px}.pager{display:flex;gap:10px;margin-top:16px}.pager button{flex:1;border:1px solid #ae8044;border-radius:15px;color:#472a17;background:#dfbf8b;padding:12px;font-size:16px}.pager button:disabled{opacity:.4}
.steam{position:absolute;bottom:46%;left:50%;width:80px;height:100px;pointer-events:none;filter:blur(7px)}.steam span{position:absolute;display:block;width:54px;height:100px;border-radius:55%;background:radial-gradient(ellipse at 50% 50%,#fff9 0%,#fff5 42%,transparent 74%);transform-origin:center bottom;animation:steaming 4.7s ease-out infinite}.steam span:nth-child(2){left:20px;animation-delay:1.5s}.steam span:nth-child(3){left:-25px;animation-delay:3.1s}@keyframes steaming{0%{opacity:0;transform:translateY(38px) scale(.6) rotate(-8deg)}30%{opacity:.68}100%{opacity:0;transform:translateY(-60px) scale(1.26) rotate(10deg)}}
.drink-anim{position:absolute;left:9%;right:9%;bottom:16px;display:flex;flex-direction:column;align-items:stretch;gap:8px;color:#ffebbf;text-align:center;text-shadow:0 2px 4px #000e;pointer-events:none}.drink-anim .step{opacity:0;position:absolute;bottom:0;left:0;right:0;animation:drinksteps 9s linear infinite}.drink-anim .step:nth-child(1){animation-delay:0s}.drink-anim .step:nth-child(2){animation-delay:3s}.drink-anim .step:nth-child(3){animation-delay:6s}@keyframes drinksteps{0%,4%{opacity:0;transform:translateY(10px)}10%,30%{opacity:1;transform:translateY(0)}33%,100%{opacity:0;transform:translateY(-4px)}}
.drink-progress{height:3px;background:#fff4;overflow:hidden;border-radius:10px}.drink-progress:after{content:'';display:block;width:100%;height:100%;background:#efbf73;transform-origin:left;animation:progress 9s linear infinite}@keyframes progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.dock{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);z-index:20;display:flex;align-items:center;gap:10px;padding:7px;background:linear-gradient(#633a23,#301609);box-shadow:0 6px 35px #0009;border:2px solid #c4924d;border-radius:42px;max-width:calc(100% - 24px)}.dock button{background:#2e180e;border:1px solid #b88546;border-radius:30px;color:#ffe2ad;min-width:52px;height:43px;padding:5px 12px;font-size:22px}.dock #dockCart{min-width:99px}.dock button span{font-size:14px;border-radius:50%;background:#d9b474;color:#331c11;padding:3px 7px}
.cart-entry{display:flex;justify-content:space-between;gap:12px;padding:12px 4px;border-bottom:1px solid #aa7c4477;font-size:18px}.cart-entry button{border:1px solid #ae8653;border-radius:12px;padding:6px 10px;background:#e2be89}.total{font-size:29px;font-weight:bold;display:flex;justify-content:space-between;margin:20px 0}
label{display:block;font-size:17px;margin:12px 0}label input,label select,label textarea{display:block;width:100%;font-size:16px;border:1px solid #b08c55;border-radius:11px;padding:11px;background:#fff9ed;margin-top:6px}.room{width:100%;border-radius:11px;max-height:300px;object-fit:cover}.error{color:#932a1c;font-size:16px}
@media(prefers-reduced-motion:reduce){*,*:after,*:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Podzamcze v15: wejście z dwoma kafelkami i działający spis treści. */
.welcome{padding:15px 13px 20px;background:linear-gradient(140deg,#f8e5bf,#e8c18b 58%,#f7dbaf)}
.welcome-brand{display:flex;align-items:center;justify-content:center;gap:13px;margin:7px 0 14px;min-height:104px}
.welcome-brand img{width:89px;height:93px;object-fit:contain;filter:drop-shadow(0 2px 2px #4b240d33)}
.welcome-brand div{display:flex;flex-direction:column;align-items:center;min-width:0}.welcome-brand span{font-size:12px;letter-spacing:4px}
.welcome-brand strong{font-size:clamp(24px,6.1vw,34px);line-height:1.22;color:#4a2616;text-transform:uppercase}
.welcome-brand small{font-size:11px;letter-spacing:2px}
.welcome-photo{position:relative;overflow:hidden;border-radius:13px;border:2px solid #c89c5f;background:#29150b}
.welcome-photo>img{display:block;width:100%;height:230px;object-fit:cover;object-position:center;transition:opacity .3s}
.welcome-photo>img.in{animation:fadeNewPhoto .6s ease both}@keyframes fadeNewPhoto{from{opacity:.45;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}
.photo-shade{position:absolute;inset:46% 0 0;background:linear-gradient(transparent,#1b0d0799);pointer-events:none}
.photo-caption{position:absolute;bottom:12px;left:12px;right:12px;text-align:center;color:#fff0c9;text-shadow:0 2px 8px #000;font-size:21px}
.photo-controls{position:absolute;top:50%;left:7px;right:7px;transform:translateY(-50%);display:flex;justify-content:space-between;pointer-events:none}
.photo-controls button{pointer-events:auto;background:#331b10bb;border:1px solid #dbb77a;border-radius:50%;color:#fbe2b6;width:38px;height:38px;font-size:18px}
.welcome-heading{text-align:center;margin:23px 3px 15px}.welcome-heading span{font-size:12px;letter-spacing:3px;color:#956739}
.welcome-heading h1{font-size:clamp(23px,6vw,32px);margin:7px 0;color:#482717}
.welcome-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.welcome-tile{position:relative;display:block;overflow:hidden;min-height:230px;border:2px solid #a57235;border-radius:13px;background:#4b2b19;color:#ffe5b9;box-shadow:0 8px 20px #45241455;padding:0;text-align:center}
.welcome-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .3s}
.welcome-tile:hover img,.welcome-tile:focus-visible img{transform:scale(1.055)}
.tile-shade{position:absolute;inset:0;background:linear-gradient(180deg,#20120804 3%,#23140c55 28%,#211108ed 100%)}
.welcome-tile-label{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:230px;padding:13px 8px 17px;text-shadow:0 2px 4px #000}
.welcome-tile-label .tile-icon{border:1px solid #e4bb71aa;border-radius:50%;width:45px;height:45px;display:grid;place-items:center;font-size:27px;color:#f7d19a;margin-bottom:10px;background:#4c2d19dd}
.welcome-tile-label strong{font-size:clamp(18px,5.2vw,26px)}.welcome-tile-label small{font-size:13px;line-height:1.35;margin-top:6px;color:#f0d6ae}
.welcome-note{font-size:13px;line-height:1.5;text-align:center;color:#6b4525;margin:16px 8px 6px}
.menu-toc{background:linear-gradient(140deg,#f8e5be,#e6bf8c 55%,#f6dbaa)}
.toc-banner{height:220px;position:relative;overflow:hidden;background:#2f1b10}.toc-banner img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.toc-overview{text-align:center;padding:15px 12px 7px}.toc-overview h2{font-size:37px;margin:1px;color:#512914}.toc-overview p{margin:6px;color:#68412b;font-size:17px}
.toc-overview .ornament{margin:7px}
.toc-categories{display:flex;flex-direction:column;gap:9px;padding:8px 14px 15px}
.toc-category{display:grid;grid-template-columns:115px 1fr 23px;align-items:center;gap:10px;width:100%;min-height:104px;padding:5px 10px 5px 5px;background:linear-gradient(108deg,#dfb37a,#f9e5bb 69%);border:2px solid #a57537;border-radius:10px;box-shadow:inset 0 0 0 1px #f5e2b5,0 2px 5px #6d3d1e55;text-align:left;color:#442211;position:relative}
.toc-category:hover,.toc-category:focus-visible{filter:brightness(1.06);transform:translateY(-1px)}
.toc-category .toc-thumb{width:115px;height:91px;overflow:hidden;border-radius:5px;background:#3e2315;box-shadow:inset 0 0 10px #28110655}
.toc-thumb img{width:100%;height:100%;object-fit:cover;object-position:center}
.toc-name{display:block;min-width:0}.toc-name strong{display:block;font-size:clamp(17px,4.8vw,22px);line-height:1.09}.toc-name small{display:block;margin-top:8px;font-size:13px;color:#6b4328}.toc-arrow{font-size:17px;color:#75401d}
.all-in-toc{display:block;width:calc(100% - 28px);margin:0 14px 20px;border:1px solid #b28141;background:#55311d;color:#ffe3b6;border-radius:15px;font-size:17px;padding:14px}
/* Pokazowe sekwencje etapowe – nie film AI. */
.item-photo.beverage-photo{isolation:isolate}
.drink-effects{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.drink-effects .drink-pour{position:absolute;top:9%;height:38%;width:7px;border-radius:70% 60% 55% 40%;left:50%;opacity:0;transform:scaleY(0);transform-origin:top;box-shadow:1px 2px 7px #ffffff50}
.drink-pour.espresso{background:linear-gradient(90deg,#44200d,#ac5c27 40%,#6c3210 80%,#3f1c0f);animation:brew-espresso 9s infinite}
.drink-pour.milk{left:57%;background:linear-gradient(90deg,#dfd6c2,#fffaf0 40%,#eddfc6);width:9px;animation:brew-milk 9s infinite}
.drink-effects .drink-foam{position:absolute;top:47%;left:30%;width:42%;height:17px;border-radius:50%;background:radial-gradient(ellipse at center,#fffdf2,#f5debe 60%,transparent 75%);opacity:0;animation:brew-foam 9s infinite;filter:blur(2px)}
.drink-effects .drink-bubbles{position:absolute;inset:10% 22% 20%;opacity:0;background:radial-gradient(circle at 30% 80%,#fff9 0 2px,transparent 3px),radial-gradient(circle at 75% 69%,#fff9 0 2px,transparent 3px),radial-gradient(circle at 52% 75%,#fff9 0 3px,transparent 4px);animation:brew-bubbles 9s infinite}
.drink-effects .drink-latte-art{position:absolute;top:39%;left:41%;width:18%;height:21px;border-radius:50%;background:radial-gradient(ellipse at center,#fff8d7 0 45%,transparent 50%);opacity:0;filter:blur(1.5px);animation:brew-art 9s infinite}
.drink-effects.latte .drink-latte-art,.drink-effects.hot-drink .drink-latte-art,.drink-effects.beer .drink-latte-art,.drink-effects.soda .drink-latte-art,.drink-effects.cold-drink .drink-latte-art{display:none}
.drink-effects.beer .drink-pour.milk,.drink-effects.soda .drink-pour.milk,.drink-effects.cold-drink .drink-pour.milk{display:none}
.drink-effects.beer .drink-pour.espresso,.drink-effects.soda .drink-pour.espresso,.drink-effects.cold-drink .drink-pour.espresso{background:linear-gradient(90deg,#a26123,#efd171,#a66226);width:12px}
.drink-effects.soda .drink-foam,.drink-effects.cold-drink .drink-foam{display:none}
.drink-effects.cappuccino .drink-bubbles,.drink-effects.latte .drink-bubbles,.drink-effects.hot-drink .drink-bubbles{display:none}
.beverage-photo .drink-anim{z-index:2;bottom:10px;background:linear-gradient(180deg,#28160800,#21120ce9 20%);border-radius:12px;padding:14px 12px 8px;pointer-events:auto}
.beverage-photo .drink-progress{height:4px;width:100%;background:#ead1a84a;border-radius:9px;margin-bottom:6px}
.brew-stages{position:relative;height:49px}.brew-stage{position:absolute;inset:0;opacity:0;display:flex;gap:8px;align-items:center;justify-content:center;text-align:left;line-height:1.2;animation:drink-phase 9s infinite}
.brew-stage:nth-child(2){animation-delay:3s}.brew-stage:nth-child(3){animation-delay:6s}
.brew-stage b{min-width:25px;height:25px;border-radius:50%;border:1px solid #caa363;background:#52311e;display:grid;place-items:center;font-size:13px}
.brew-stage span{font-size:clamp(13px,3.8vw,17px)}
.beverage-photo .replay-drink{pointer-events:auto;color:#ffe5bd;background:transparent;border:1px solid #e0b4748a;border-radius:15px;padding:5px 12px;margin:1px auto 0;font-size:13px;text-shadow:none}
.beverage-photo.restarting .drink-effects *,.beverage-photo.restarting .brew-stage,.beverage-photo.restarting .drink-progress:after{animation:none!important}
.beverage-photo.restarting .drink-effects *,.beverage-photo.restarting .brew-stage,.beverage-photo.restarting .drink-progress:after{animation:inherit}
@keyframes brew-espresso{0%,6%{opacity:0;transform:scaleY(0)}12%,28%{opacity:.85;transform:scaleY(1)}35%,100%{opacity:0;transform:scaleY(0)}}
@keyframes brew-milk{0%,33%{opacity:0;transform:scaleY(0)}41%,61%{opacity:.9;transform:scaleY(1)}67%,100%{opacity:0;transform:scaleY(0)}}
@keyframes brew-foam{0%,55%{opacity:0;transform:scale(.5)}66%,88%{opacity:.9;transform:scale(1.05)}100%{opacity:0;transform:scale(1)}}
@keyframes brew-bubbles{0%,50%{opacity:0;transform:translateY(10px)}65%,85%{opacity:.8;transform:translateY(-20px)}100%{opacity:0;transform:translateY(-30px)}}
@keyframes brew-art{0%,69%{opacity:0;transform:scale(.1)}78%,90%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
@keyframes drink-phase{0%,4%{opacity:0;transform:translateY(8px)}10%,30%{opacity:1;transform:translateY(0)}33%,100%{opacity:0;transform:translateY(-7px)}}
@media(max-width:390px){.toc-category{grid-template-columns:95px 1fr 18px}.toc-category .toc-thumb{width:95px;height:84px}.toc-category{min-height:96px}.welcome-brand img{width:70px;height:78px}.welcome-photo>img{height:205px}}

/* Wersja v16: prawdziwy przycisk pod graficznym symbolem powrotu. */
.item-photo .embedded-back-hotspot{position:absolute;z-index:6;top:3%;left:3%;height:13%;width:14%;max-width:80px;min-width:55px;background:transparent;border:2px solid transparent;border-radius:50%;cursor:pointer}
.item-photo .embedded-back-hotspot:hover{background:#e6bc6b27;border-color:#dfbb7c77}
.item-photo .embedded-back-hotspot:focus-visible{outline:3px solid #f6d087;outline-offset:3px}
/* Zachowanie spójnych proporcji na małych urządzeniach. */
@media(max-width:360px){.welcome-brand strong{font-size:23px}.welcome-tile-label strong{font-size:17px}.welcome-tile-label small{font-size:12px}.toc-name strong{font-size:17px}}

/* v17 – every item has the same warm, moody restaurant visual background. */
.item-photo:not(.tall-hero){background:#28170e}
.item-photo:not(.tall-hero)>img{width:100%;height:auto;max-height:610px;object-fit:cover}
.item-photo.tall-hero{background:radial-gradient(circle at 50% 40%,#72452a,#28150c 79%)}
.item-photo.tall-hero>img{display:block;width:100%;height:auto;max-height:820px;object-fit:contain;object-position:center;background:#23140d}
.item-photo.tall-hero .drink-anim{background:linear-gradient(transparent,#201109e9 35%);color:#fff0d4}
.menu-toc .langbar,.frame-pad>.langbar{margin:14px 0;justify-content:center}
.item-photo.tall-hero .steam{left:42%;bottom:36%}
@media(max-width:400px){.item-photo.tall-hero>img{max-height:680px}}

/* The other drinks have stage cards but no artificial liquid falling from nowhere. */
.drink-effects.no-flying-streams .drink-pour{display:none}
.welcome>.langbar{justify-content:center;margin:17px 0 3px}

/* v27: wspólna oprawa również dla zdjęć, których własne tło jest skromne. */
.item-photo{background:radial-gradient(ellipse at 50% 42%,#7c4d2e 0%,#30180f 72%,#1d0d08 100%);border-left:3px solid #a36c31;border-right:3px solid #a36c31;}
.item-photo>img{background:transparent;}
.toc-category .toc-thumb{background:radial-gradient(circle at center,#8d5c34,#2a150d)}
