/* Molly's Matcha Bar · Design „Am Tresen von Molly's“
   Die Seite ist der Tresen der Pop-up-Matcha-Bar am Schulterblatt, von der Gästeseite gesehen:
   oben die helle Wand mit Fensterfolie, OPEN-Schild und Plakaten, unten die Holzplatte mit der
   schwarzen Barmatte. Inhalte sind Dinge, die dort stehen und kleben: Becher mit Sticker, das lila
   Board, Deckel mit Marker-Schrift, Stempelkarte, Becher-Manschetten, Pappträger, Serviette, Klemmbrett. */
@import url('/assets/fonts/fonts.css');

:root{
  --lila:#9377b4; --lila-2:#7a5f9e; --lila-3:#b9a7d4; --lila-4:#ede7f5; --lila-ink:#3a2c52;
  --matcha:#8fb35a; --matcha-2:#6f9440; --matcha-3:#cfe0a6; --matcha-ink:#3c5522;
  --milch:#f6f1e7; --wand:#f5f2ec; --wand-2:#ebe6dc; --paper:#fdfbf6; --karton:#dcc9a7; --karton-2:#c6ad83; --kraft:#c9a06a; --kraft-2:#a97f4c;
  --holz:#dcbc8f; --holz-2:#c8a171; --holz-3:#a67b4b; --matte:#1c1b1f; --matte-2:#2b2a30; --ink:#1f1b26; --ink-2:#4e4858; --ink-3:#7c7686;
  --mango:#f3a531; --erdbeer:#cf3f3f; --blaubeer:#5d3f86; --karamell:#b06f2f; --kaffee:#6b3f22; --kokos:#f7f1e4; --neon:#ff3d3d;
  --shadow:12px 20px 38px -14px rgba(31,27,38,.42), 2px 5px 12px -6px rgba(31,27,38,.3);
  --display:'Fredoka','Nunito','Segoe UI',sans-serif;
  --text:'Nunito','Segoe UI',Helvetica,Arial,sans-serif;
  --marker:'Permanent Marker','Comic Sans MS',cursive;
  --plakat:'Anton','Arial Narrow',Impact,sans-serif;
  --mono:'Courier Prime','Courier New',monospace;
  --w:1200px; --gut:clamp(16px,4vw,56px); --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;color:var(--ink);font:400 17px/1.6 var(--text);overflow-x:hidden;background:var(--wand)}
/* Wand: warmes Weiß, Licht von oben links, feines Korn */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(1200px 700px at 20% -10%,rgba(255,255,255,.9),transparent 60%),radial-gradient(900px 500px at 100% 20%,rgba(147,119,180,.08),transparent 60%)}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.07;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
main,header,footer{position:relative;z-index:1}
img{max-width:100%;height:auto;display:block}
svg{display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-weight:600;font-family:var(--display);line-height:1.1}
p{margin:0 0 1em}
::selection{background:var(--lila-3);color:var(--ink)}
:focus-visible{outline:3px solid var(--lila);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--lila);color:#fff;padding:8px 14px;z-index:100;border-radius:8px}
.skip:focus{left:8px}
.defs{position:absolute;width:0;height:0;overflow:hidden}
.wrap{width:min(var(--w),100% - 2*var(--gut));margin-inline:auto}
.sr{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
.marker{font-family:var(--marker);font-weight:400}
.mono{font-family:var(--mono)}
mark{background:#fff3a3;padding:0 3px;border-radius:3px}
.auge{transform-box:fill-box;transform-origin:center;animation:blink 6s infinite}
@keyframes blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.08)}}
@media(prefers-reduced-motion:reduce){.auge{animation:none}}

/* Aufkleber als Knöpfe: weißer Stanzrand, leicht schief, Schatten wie ein Sticker auf Glas */
.stk{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;background:var(--lila);color:#fff;text-decoration:none;
  font:600 17px/1 var(--display);border:4px solid #fff;box-shadow:0 8px 18px -8px rgba(58,44,82,.55),0 1px 0 rgba(255,255,255,.6) inset;
  transform:rotate(var(--r,-2deg));transition:transform .25s var(--ease),box-shadow .25s var(--ease);cursor:pointer;white-space:nowrap}
.stk:hover,.stk:focus-visible{transform:rotate(0deg) translateY(-2px);box-shadow:0 14px 24px -10px rgba(58,44,82,.6)}
.stk.gruen{background:var(--matcha-2)}
.stk.dunkel{background:var(--matte)}
.stk.hell{background:#fff;color:var(--lila-ink);border-color:var(--lila-4)}
.stk svg{width:22px;height:22px}
button.stk{font-family:var(--display)}
.stk:disabled{opacity:.6;cursor:wait;transform:none}

/* Kopfleiste: Fensterband über dem Tresen */
.top{position:sticky;top:0;z-index:50;background:rgba(245,242,236,.86);backdrop-filter:blur(10px);border-bottom:1px solid rgba(31,27,38,.08)}
.top-inner{width:min(var(--w),100% - 2*var(--gut));margin-inline:auto;display:flex;align-items:center;gap:18px;min-height:70px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:600 20px/1 var(--display);color:var(--lila-ink)}
.brand svg{width:46px;height:46px;transform:rotate(-8deg);filter:drop-shadow(0 3px 4px rgba(0,0,0,.18))}
.brand small{display:block;font:600 12px/1.2 var(--text);color:var(--ink-3);margin-top:4px}
nav#nav{margin-left:auto;display:flex;align-items:center;gap:6px}
nav#nav a:not(.stk){padding:10px 12px;text-decoration:none;font:700 15px/1 var(--text);color:var(--ink-2);border-radius:8px}
nav#nav a:not(.stk):hover,nav#nav a[aria-current]{color:var(--lila-ink);background:var(--lila-4)}
nav#nav .stk{margin-left:8px;padding:9px 16px;font-size:15px;--r:-1deg}
.burger{display:none;margin-left:auto;background:none;border:0;padding:8px;font:700 14px var(--text);color:var(--ink);align-items:center;gap:8px;cursor:pointer}
.burger i{display:block;width:26px;height:16px;position:relative}
.burger i::before,.burger i::after,.burger b{content:"";position:absolute;left:0;right:0;height:3px;background:var(--ink);border-radius:2px;transition:.25s}
.burger i::before{top:0}.burger b{top:6.5px}.burger i::after{bottom:0}
.burger[aria-expanded="true"] i::before{transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] i::after{transform:translateY(-6.5px) rotate(-45deg)}
.burger[aria-expanded="true"] b{opacity:0}
@media(max-width:900px){
  .burger{display:flex}
  nav#nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;background:var(--wand);padding:12px var(--gut) 20px;border-bottom:1px solid rgba(31,27,38,.1);box-shadow:0 20px 30px -20px rgba(0,0,0,.3)}
  nav#nav.open{display:flex}
  nav#nav a:not(.stk){padding:12px 10px;font-size:17px}
  nav#nav .stk{margin:10px 0 0;justify-content:center}
}

/* Tresen: Holzplatte mit Barmatte, darauf die Becher */
.tresen{position:relative;padding-top:24px}
.platte{position:relative;margin-top:-60px;background:linear-gradient(180deg,var(--holz) 0,var(--holz-2) 55%,var(--holz-3));padding:54px 0 0;
  box-shadow:0 -6px 0 #e9d3b0 inset}
.platte::before{content:"";position:absolute;inset:0;opacity:.35;pointer-events:none;
  background:repeating-linear-gradient(178deg,transparent 0 22px,rgba(120,80,40,.12) 22px 24px,transparent 24px 47px),repeating-linear-gradient(181deg,transparent 0 60px,rgba(255,255,255,.12) 60px 63px)}
.kante{height:22px;background:linear-gradient(180deg,#8e6238,#5f3f22);box-shadow:0 8px 14px rgba(0,0,0,.25)}
.matte{position:relative;width:min(var(--w),100% - 2*var(--gut));margin:0 auto;background:var(--matte);border-radius:14px 14px 4px 4px;padding:28px 30px 0;
  box-shadow:0 18px 40px -18px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.06) inset;
  background-image:repeating-linear-gradient(90deg,rgba(255,255,255,.055) 0 3px,transparent 3px 12px)}
.matte::after{content:"";position:absolute;left:0;right:0;bottom:0;height:10px;background:var(--matte-2);border-radius:0 0 4px 4px}
.becher-reihe{display:flex;align-items:flex-end;justify-content:space-around;gap:14px;list-style:none;margin:0;padding:0 0 26px;flex-wrap:wrap}
.becher-reihe li{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:120px}
.cup-name{font:800 13px/1.2 var(--text);letter-spacing:.06em;text-transform:uppercase;color:#fff;text-align:center;max-width:140px}
.cup-name small{display:block;font:400 15px/1.2 var(--marker);letter-spacing:0;text-transform:none;color:var(--matcha-3);margin-top:3px}
@media(max-width:999px){
  .platte{margin-top:0}
  .matte{border-radius:10px 10px 4px 4px;padding:20px 12px 0}
  .becher-reihe{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;scroll-snap-type:x mandatory;padding-bottom:22px;-webkit-overflow-scrolling:touch}
  .becher-reihe li{scroll-snap-align:center;flex:0 0 auto}
}

/* Der Becher: klarer Plastikbecher mit Kuppeldeckel, Strohhalm, Schichten und Sticker */
.cup{--cw:118px;--ch:168px;position:relative;width:var(--cw);height:calc(var(--ch) + 34px);filter:drop-shadow(0 16px 14px rgba(0,0,0,.35))}
.cup.s{--cw:84px;--ch:118px}
.cup.xl{--cw:150px;--ch:214px}
.cup-lid{position:absolute;left:-4%;right:-4%;top:6px;height:34px;border-radius:50% 50% 8px 8px/80% 80% 8px 8px;
  background:linear-gradient(180deg,rgba(255,255,255,.75),rgba(240,240,245,.45) 60%,rgba(200,200,210,.5));border:2px solid rgba(255,255,255,.85);z-index:3}
.cup-lid::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:7px;background:rgba(255,255,255,.9);border-radius:3px;box-shadow:0 2px 3px rgba(0,0,0,.15)}
.cup-straw{position:absolute;left:58%;top:-16px;width:9px;height:70px;background:linear-gradient(90deg,#111,#333 50%,#111);border-radius:3px;transform:rotate(8deg);transform-origin:bottom;z-index:2}
.cup-body{position:absolute;left:0;right:0;top:34px;height:var(--ch);clip-path:polygon(0 0,100% 0,88% 97%,84% 100%,16% 100%,12% 97%);background:rgba(255,255,255,.12)}
.cup-body::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.55) 0,rgba(255,255,255,.15) 14%,transparent 30%,transparent 70%,rgba(255,255,255,.22) 100%)}
.cup-body::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;box-shadow:0 0 0 2px rgba(255,255,255,.55) inset,0 -12px 18px -12px rgba(0,0,0,.25) inset}
.cup-fill{position:absolute;inset:0;transform-origin:bottom;animation:pour 1.1s calc(var(--i,0) * .12s) var(--ease) both;
  background:linear-gradient(0deg,var(--bot) 0 calc(var(--l1,36%) - 6%),var(--mid) var(--l1,36%) calc(var(--l2,68%) - 6%),var(--top) var(--l2,68%) 100%)}
@keyframes pour{from{transform:scaleY(.08)}}
@media(prefers-reduced-motion:reduce){.cup-fill{animation:none}}
.cup-foam{position:absolute;left:4%;right:4%;top:2px;height:16px;border-radius:0 0 10px 10px;background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,.3));z-index:1}
.cup-streu{position:absolute;left:8%;right:8%;top:4px;height:10px;z-index:2;background-image:radial-gradient(circle,var(--streu,#8a5a2b) 1.2px,transparent 1.6px);background-size:7px 6px;opacity:.9}
.cup-sticker{position:absolute;left:50%;top:44%;width:56%;aspect-ratio:1;transform:translate(-50%,-50%) rotate(-6deg);z-index:4;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}
.cup-sticker svg{width:100%;height:100%}
.cup-ice{position:absolute;width:26%;aspect-ratio:1;border-radius:6px;background:linear-gradient(135deg,rgba(255,255,255,.75),rgba(255,255,255,.15));border:1px solid rgba(255,255,255,.7);z-index:1}
.cup-ice.a{left:10%;top:16%;transform:rotate(12deg)}.cup-ice.b{right:12%;top:22%;transform:rotate(-20deg)}.cup-ice.c{left:36%;top:6%;transform:rotate(40deg)}
.cup-tag{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%) rotate(var(--r,3deg));background:#fff;color:var(--ink);font:400 15px/1 var(--marker);padding:6px 9px;border-radius:4px;box-shadow:0 3px 8px rgba(0,0,0,.25);z-index:5;white-space:nowrap}

/* Fenster: Rahmen, Scheibe mit Spiegelung, Fensterfolie, OPEN-Schild, Zettel mit Zeiten */
.fenster{background:#2d2a31;padding:14px;border-radius:8px;box-shadow:var(--shadow);position:relative}
.scheibe{position:relative;min-height:380px;border-radius:4px;overflow:hidden;color:#fff;padding:28px 26px 26px;
  background:linear-gradient(160deg,#8fa6b8 0,#5f7a90 40%,#3b4f63 100%)}
.scheibe::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.22) 42%,rgba(255,255,255,.05) 48%,transparent 55%,rgba(255,255,255,.12) 78%,transparent 82%);pointer-events:none}
.scheibe::after{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 30% 110%,rgba(147,119,180,.55),transparent 60%);pointer-events:none}
.folie{position:relative;z-index:1;font:700 clamp(46px,7vw,74px)/.92 var(--display);letter-spacing:.01em;text-shadow:0 1px 0 rgba(0,0,0,.15);text-transform:uppercase}
.folie small{display:block;font:600 clamp(20px,3vw,28px)/1.1 var(--display);letter-spacing:.14em;margin-top:6px}
.folie-baer{position:absolute;right:26px;top:26px;width:72px;height:72px;color:#fff;z-index:1;--kopf:transparent}
.folie-text{position:relative;z-index:1;margin:22px 0 0;max-width:34ch;font:600 17px/1.5 var(--text);color:#f1ecf7}
.neon{position:absolute;left:26px;bottom:26px;z-index:2;padding:8px 16px;border:3px solid;border-radius:10px;font:700 26px/1 var(--display);letter-spacing:.2em;
  color:#ff9a9a;border-color:#ff7b7b;text-shadow:0 0 6px #ff3d3d,0 0 18px #ff3d3d,0 0 34px rgba(255,61,61,.6);box-shadow:0 0 12px rgba(255,61,61,.55),0 0 12px rgba(255,61,61,.45) inset;background:rgba(40,0,0,.25);transition:.4s}
.neon[data-open="false"]{color:#6d5a5a;border-color:#5a4a4a;text-shadow:none;box-shadow:none;background:rgba(0,0,0,.25)}
.neon-status{position:absolute;right:26px;bottom:30px;z-index:2;font:400 16px/1.3 var(--marker);color:#fff;text-align:right;max-width:200px}
.zettel{position:absolute;right:-18px;top:118px;width:210px;background:var(--paper);color:var(--ink);padding:16px 16px 14px;transform:rotate(4deg);box-shadow:0 8px 18px -8px rgba(0,0,0,.55);z-index:3;font-family:var(--marker);font-size:16px;line-height:1.35}
.zettel::before{content:"";position:absolute;left:50%;top:-10px;width:70px;height:20px;transform:translateX(-50%) rotate(-3deg);background:rgba(255,255,255,.55);border:1px solid rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.zettel strong{display:block;font-weight:400;color:var(--lila-2);margin-bottom:4px}
.zettel ul{list-style:none;margin:0;padding:0}
.zettel li{display:flex;justify-content:space-between;gap:10px}
.zettel li.today{background:var(--lila-4);margin:0 -6px;padding:0 6px;border-radius:4px}
@media(max-width:999px){.fenster .zettel{position:static;transform:rotate(-1deg);width:100%;margin-top:14px}.scheibe{min-height:0;padding-bottom:84px}.folie-baer{width:56px;height:56px}}

/* Plakat an der Wand mit Reißzwecke */
.plakat{position:relative;background:#fff;padding:8px;box-shadow:var(--shadow);margin:0}
.plakat img{width:100%}
.plakat::before{content:"";position:absolute;left:50%;top:-8px;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ff8a8a,#c62828 60%,#7f1010);box-shadow:0 2px 3px rgba(0,0,0,.4);transform:translateX(-50%);z-index:2}
.plakat figcaption{font:400 14px/1.3 var(--marker);color:var(--ink-2);padding:8px 4px 2px;text-align:center}

/* Abzug: Foto mit Klebeband */
.abzug{position:relative;background:#fff;padding:10px 10px 38px;box-shadow:var(--shadow);margin:0}
.abzug img{width:100%}
.abzug::before,.abzug::after{content:"";position:absolute;width:74px;height:22px;background:rgba(255,245,200,.7);border:1px solid rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.1);z-index:2}
.abzug::before{left:-18px;top:12px;transform:rotate(-38deg)}
.abzug::after{right:-18px;top:12px;transform:rotate(38deg)}
.abzug figcaption{position:absolute;left:12px;right:12px;bottom:8px;font:400 14px/1.2 var(--marker);color:var(--ink-2);text-align:center}
.abzug.eins::after{display:none}
.abzug.eins::before{left:50%;top:-8px;transform:translateX(-50%) rotate(-2deg)}

/* Das lila Board: die Karte, wie sie im Laden hängt */
.board{background:linear-gradient(180deg,#9b80bb,#8f72b1);color:#fff;border-radius:10px;padding:26px 28px 22px;box-shadow:var(--shadow),0 0 0 6px #7a5f9e inset;border:1px solid rgba(255,255,255,.25)}
.board h2,.board h3{font:800 22px/1.15 var(--text);text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px}
.board h2 small,.board h3 small{display:block;font:400 15px/1.3 var(--marker);text-transform:none;letter-spacing:0;color:#e7dff3;margin-top:4px}
.board + .board{margin-top:22px}
.board ul{list-style:none;margin:0;padding:0}
.board li{display:flex;align-items:baseline;gap:10px;padding:5px 0;font:800 16px/1.3 var(--text);text-transform:uppercase;letter-spacing:.04em}
.board li span:first-child{flex:0 1 auto}
.board li i{flex:1;border-bottom:2px dotted rgba(255,255,255,.55);min-width:14px;transform:translateY(-4px)}
.board li b{font-weight:800;white-space:nowrap}
.board li small{display:block;font:400 13px/1.3 var(--text);text-transform:none;letter-spacing:0;color:#e7dff3;flex-basis:100%}
.board li.mit-small{flex-wrap:wrap}
.board .hinweis{margin:16px 0 0;font:400 14px/1.4 var(--text);color:#efe9f7;border-top:1px solid rgba(255,255,255,.3);padding-top:12px}
.board.dunkel{background:linear-gradient(180deg,#3a2c52,#2f2442);box-shadow:var(--shadow),0 0 0 6px #241b33 inset}

/* Deckel mit Marker-Schrift: Milch der Wahl */
.deckel-reihe{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;list-style:none;margin:0;padding:0}
.deckel{width:118px;aspect-ratio:1;border-radius:50%;position:relative;display:grid;place-items:center;text-align:center;
  background:radial-gradient(circle at 50% 40%,#fff 0 26%,#f0eef2 27% 30%,#fff 31% 74%,#e9e6ec 75% 78%,#fff 79%);
  box-shadow:0 10px 18px -8px rgba(0,0,0,.4),0 0 0 1px rgba(0,0,0,.06) inset;font:400 18px/1.1 var(--marker);color:var(--lila-ink);transform:rotate(var(--r,0deg))}
.deckel::after{content:"";position:absolute;left:50%;top:22%;width:12px;height:12px;border-radius:50%;background:#e2dfe6;transform:translateX(-50%);box-shadow:0 1px 1px rgba(0,0,0,.15) inset}
.deckel span{padding-top:10px}
.deckel small{display:block;font:600 12px/1.2 var(--text);color:var(--ink-3);margin-top:3px}

/* Stempelkarte: die Geschichte als Treuekarte */
.stempelkarte{background:linear-gradient(180deg,#f8f2e6,#efe4cf);color:var(--ink);border-radius:12px;padding:26px 28px;box-shadow:var(--shadow);position:relative;border:1px solid #d8c8a6}
.stempelkarte::before{content:"";position:absolute;inset:8px;border:1.5px dashed rgba(122,95,158,.45);border-radius:8px;pointer-events:none}
.stempelkarte h2{font:700 30px/1.05 var(--display);color:var(--lila-ink)}
.stempelkarte h2 small{display:block;font:400 16px/1.3 var(--marker);color:var(--lila-2);margin-top:6px}
.stempel-feld{display:flex;flex-wrap:wrap;align-items:flex-start;gap:34px 12px;margin:18px 0 12px;list-style:none;padding:0}
.stempel-feld li{flex:0 0 calc((100% - 4 * 12px) / 5);aspect-ratio:1;height:auto;min-width:0;border-radius:50%;border:2px dashed rgba(58,44,82,.35);display:block;position:relative;color:var(--lila)}
.stempel-feld li svg{position:absolute;left:13%;top:13%;width:74%;height:74%;transform:rotate(var(--r,-8deg));--kopf:transparent;opacity:.92;filter:url(#stempel-rauh)}
.stempel-feld li span{position:absolute;left:0;right:0;bottom:-20px;font:400 12px/1.2 var(--marker);color:var(--ink-2);text-align:center;white-space:nowrap}
.stempelkarte .story{margin:34px 0 0;font-size:16.5px;line-height:1.6;columns:2;column-gap:28px}
.stempelkarte .story p{break-inside:avoid}
@media(max-width:700px){.stempelkarte .story{columns:1}.stempel-feld{gap:30px 8px}.stempel-feld li{flex-basis:calc((100% - 4 * 8px) / 5)}.stempel-feld li span{font-size:10px;bottom:-24px;white-space:normal}}

/* Becher-Manschette: Stimmen von Gästen mit Marker draufgeschrieben */
.sleeve{--k:var(--kraft);position:relative;color:#3b2a14;padding:22px 36px 20px 26px;margin:0;
  clip-path:polygon(3% 0,97% 0,100% 100%,0 100%);font:400 17px/1.4 var(--marker);
  background-image:repeating-linear-gradient(90deg,rgba(0,0,0,.05) 0 2px,transparent 2px 9px),linear-gradient(90deg,#b98b53,var(--k) 12%,var(--k) 88%,#b98b53)}
.sleeve::before{content:"“";position:absolute;left:12px;top:-4px;font:400 56px/1 var(--display);color:rgba(58,44,82,.35)}
.sleeve p{margin:0 0 8px;padding-left:14px}
.sleeve cite{display:block;font:600 13px/1.3 var(--text);font-style:normal;color:#5b4224;padding-left:14px}
.sleeve.lila{--k:#a893c7;color:#2a1f3d;background-image:repeating-linear-gradient(90deg,rgba(0,0,0,.05) 0 2px,transparent 2px 9px),linear-gradient(90deg,#8d76b0,var(--k) 12%,var(--k) 88%,#8d76b0)}
.sleeve.lila cite{color:#4b3868}

/* Pappträger mit vier Bechern: Catering */
.traeger{position:relative;padding:30px 20px 0}
.traeger-becher{display:flex;justify-content:center;gap:6px;align-items:flex-end;position:relative;z-index:2}
.traeger-becher .cup{--cw:70px;--ch:98px;filter:drop-shadow(0 6px 6px rgba(0,0,0,.25))}
.traeger-pappe{margin-top:-40px;height:74px;border-radius:6px 6px 10px 10px;position:relative;box-shadow:var(--shadow);
  background-image:repeating-linear-gradient(90deg,rgba(0,0,0,.05) 0 2px,transparent 2px 8px),linear-gradient(180deg,#d9b98a,#c39c69)}
.traeger-pappe::before{content:"";position:absolute;left:50%;top:-30px;width:34px;height:60px;transform:translateX(-50%);background:linear-gradient(180deg,#c9a672,#b58d5a);border-radius:6px 6px 0 0;z-index:1}
.traeger-pappe::after{content:"";position:absolute;left:12%;right:12%;top:14px;height:2px;background:rgba(0,0,0,.12)}
.traeger-text{background:var(--paper);border-radius:10px;padding:22px 24px;margin-top:18px;box-shadow:var(--shadow)}
.traeger-text h2{font:700 30px/1.05 var(--display);color:var(--lila-ink)}
.traeger-text h2 small{display:block;font:400 16px/1.3 var(--marker);color:var(--lila-2);margin-top:6px}
.traeger-text ul{margin:12px 0 18px;padding-left:20px}

/* Serviette mit gekritzelter Wegbeschreibung */
.serviette{background:#fff;padding:22px;box-shadow:var(--shadow);position:relative;border-radius:2px}
.serviette::before{content:"";position:absolute;inset:8px;border:1px solid rgba(0,0,0,.08);border-radius:2px;pointer-events:none;
  background:repeating-linear-gradient(45deg,transparent 0 6px,rgba(0,0,0,.02) 6px 7px)}
.serviette svg{width:100%;height:auto;position:relative}
.serviette .marker{font-size:16px;color:var(--ink)}
.serviette p{margin:10px 0 0;position:relative}

/* Karte nach Klick */
.map{min-height:300px;background:var(--wand-2);border-radius:10px;box-shadow:var(--shadow);overflow:hidden;position:relative}
.map-platz{display:grid;place-items:center;gap:14px;text-align:center;padding:40px 24px;min-height:300px}
.map-platz p{margin:0;max-width:30ch}
.map iframe{width:100%;height:100%;min-height:340px;border:0;display:block}

/* Glasglocke über dem Gebäck */
.glocke{position:relative;padding:18px 18px 0;text-align:center}
.glocke-glas{position:relative;width:min(100%,300px);margin:0 auto;aspect-ratio:1;border-radius:50% 50% 12px 12px;overflow:hidden;
  border:2px solid rgba(255,255,255,.9);box-shadow:0 14px 28px -12px rgba(0,0,0,.45),0 0 0 1px rgba(0,0,0,.06)}
.glocke-glas picture,.glocke-glas img{width:100%;height:100%;object-fit:cover}
.glocke-glas::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(255,255,255,.55) 0,rgba(255,255,255,.1) 30%,transparent 45%,transparent 65%,rgba(255,255,255,.35) 90%);pointer-events:none;z-index:1}
.glocke-glas::after{content:"";position:absolute;left:50%;top:-6px;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#c9c4d0);transform:translateX(-50%);z-index:2;box-shadow:0 2px 4px rgba(0,0,0,.2)}
.glocke-brett{margin:-10px auto 0;width:min(100%,360px);height:26px;background:linear-gradient(180deg,#e0c496,#b98d5b);border-radius:6px;box-shadow:0 10px 16px -8px rgba(0,0,0,.5);position:relative}
.kreide{display:inline-block;margin-top:16px;background:#2b2a30;color:#fff;padding:12px 16px;border-radius:6px;font:400 16px/1.45 var(--marker);box-shadow:var(--shadow);border:4px solid #8e6238;transform:rotate(-2deg);text-align:left}
.kreide strong{display:block;font-weight:400;color:var(--matcha-3);margin-bottom:4px}

/* Klemmbrett: das Formular als Auftragszettel */
.klemmbrett{background:linear-gradient(180deg,#a67b4b,#8e6238);padding:52px 22px 26px;border-radius:10px;box-shadow:var(--shadow);position:relative}
.klemmbrett::before{content:"";position:absolute;left:50%;top:-10px;width:150px;height:44px;transform:translateX(-50%);background:linear-gradient(180deg,#e6e6ea,#9a9aa3);border-radius:8px;box-shadow:0 4px 8px rgba(0,0,0,.35);z-index:2}
.klemmbrett::after{content:"";position:absolute;left:50%;top:6px;width:60px;height:14px;transform:translateX(-50%);background:#55555c;border-radius:6px;z-index:3}
.blatt{background:var(--paper);padding:34px 30px 30px;box-shadow:0 1px 0 rgba(0,0,0,.08),0 10px 20px -14px rgba(0,0,0,.5);position:relative}
.blatt h1,.blatt h2{font:700 30px/1.05 var(--display);color:var(--lila-ink);margin-bottom:6px}
.blatt .marker{color:var(--lila-2)}
.formular{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px;margin-top:18px}
.formular .voll{grid-column:1/-1}
.feld{display:flex;flex-direction:column;gap:4px}
.feld label{font:400 16px/1.2 var(--marker);color:var(--lila-ink)}
.feld input,.feld select,.feld textarea{font:600 17px/1.4 var(--text);color:var(--ink);background:transparent;border:0;border-bottom:2px solid rgba(58,44,82,.45);padding:8px 2px;border-radius:0;width:100%}
.feld textarea{border:2px solid rgba(58,44,82,.35);border-radius:6px;padding:10px;min-height:120px;resize:vertical;background:rgba(255,255,255,.5)}
.feld input:focus,.feld select:focus,.feld textarea:focus{outline:none;border-color:var(--lila);background:rgba(147,119,180,.08)}
.feld small{font:400 13px/1.3 var(--text);color:var(--ink-3)}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.msg{margin:0;font:600 16px/1.4 var(--text);padding:0;min-height:0}
.msg.ok{background:var(--matcha-3);color:var(--matcha-ink);padding:12px 14px;border-radius:8px;margin-top:14px}
.msg.err{background:#f7d6d6;color:#7a1f1f;padding:12px 14px;border-radius:8px;margin-top:14px}
.formular-fuss{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:8px}
.formular-fuss .klein{font:400 14px/1.4 var(--text);color:var(--ink-3);max-width:44ch;margin:0}
@media(max-width:640px){.formular{grid-template-columns:1fr}.klemmbrett{padding:48px 10px 14px}.blatt{padding:26px 18px 22px}}

/* Rechtstexte: das A4-Blatt */
.blatt.recht{max-width:820px;margin:40px auto 60px;font-size:16px}
.blatt.recht h2{font-size:22px;margin:26px 0 6px}
.blatt.recht h3{font:700 18px/1.2 var(--text);margin:18px 0 4px}
.blatt.recht ul{padding-left:20px}
.blatt.recht .folgt{background:#fff3a3;padding:0 4px;border-radius:3px}

/* Abschnitte und Überschriften als Dinge: Schild mit Reißzwecke statt Sektionskopf */
.abschnitt{padding:56px 0 30px}
.schild{display:inline-flex;flex-direction:column;background:#fff;color:var(--lila-ink);padding:12px 18px 10px;border-radius:8px;box-shadow:var(--shadow);transform:rotate(-1.5deg);border:3px solid var(--lila-4);position:relative}
.schild::before{content:"";position:absolute;left:50%;top:-9px;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#c9baea,var(--lila) 60%,var(--lila-ink));transform:translateX(-50%);box-shadow:0 2px 3px rgba(0,0,0,.35)}
.schild h2,.schild h1{font:700 clamp(26px,3.4vw,36px)/1.05 var(--display)}
.schild small{font:400 16px/1.3 var(--marker);color:var(--lila-2);margin-top:4px}
.zeile{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:18px}

/* Fuß: die Tresenkante von unten, dann die Matte */
footer{margin-top:70px;background:var(--matte);color:#efe9f7}
footer .kante{background:linear-gradient(180deg,#c8a171,#8e6238);box-shadow:none}
.foot{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;padding:34px 0 20px}
.foot svg{width:96px;height:96px;transform:rotate(-8deg)}
.foot p{margin:0;font-size:15px;line-height:1.7;color:#d9d2e6}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font:700 15px/1.3 var(--text)}
.foot a{color:#fff;text-decoration:none}
.foot a:hover{color:var(--matcha-3)}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;border-top:1px solid rgba(255,255,255,.12);padding:16px 0 24px;font-size:13px;color:#a79fb7}
.foot-bottom a{color:#d9d2e6}
@media(max-width:800px){.foot{grid-template-columns:1fr;text-align:center;justify-items:center}}

/* Karte-Seite */
.karte-nav{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}
.karte-nav a{text-decoration:none;font:700 14px/1 var(--text);padding:9px 12px;border-radius:8px;background:#fff;color:var(--lila-ink);border:2px solid var(--lila-4)}
.karte-nav a.active,.karte-nav a:hover{background:var(--lila);color:#fff;border-color:var(--lila)}
.karte-block{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:28px;align-items:start;margin-top:34px;scroll-margin-top:90px}
.karte-block .matte{width:auto;min-width:0;margin:0;border-radius:12px;padding:22px 14px 0}
.karte-block .becher-reihe li{min-width:0}
.karte-block .cup{--cw:96px;--ch:136px}
.karte-block .cup-name{font-size:12px;max-width:110px}
.karte-block .becher-reihe{justify-content:center;gap:22px}
@media(max-width:900px){.karte-block{grid-template-columns:minmax(0,1fr)}}

/* 404 */
.leer-seite{display:grid;place-items:center;text-align:center;padding:70px 0 40px;gap:14px}
.leer-seite .cup{margin-bottom:16px}

/* Szene: Objekte frei auf der Fläche (Desktop), gestapelt unter 1000 px. Steht am Ende, damit es die Objekt-Klassen überstimmt. */
.scene{position:relative;width:min(var(--w),100% - 2*var(--gut));margin-inline:auto;min-height:var(--h,700px)}
.scene>.obj{position:absolute;left:var(--x,0);top:var(--y,0);right:auto;bottom:auto;width:var(--wd,auto);margin:0;transform:rotate(var(--r,0deg));transform-origin:center}
.scene>.obj.z1{z-index:1}.scene>.obj.z2{z-index:2}.scene>.obj.z3{z-index:3}.scene>.obj.z4{z-index:4}
.scene>.obj.r{opacity:0;transform:rotate(var(--r,0deg)) translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.scene>.obj.r.in{opacity:1;transform:rotate(var(--r,0deg))}
@media(max-width:999px){
  .scene{min-height:0;display:flex;flex-direction:column;align-items:center;gap:30px;padding:36px 0}
  .scene>.obj{position:relative;left:auto;top:auto;width:min(var(--wm,var(--wd,100%)),100%);transform:rotate(var(--rm,var(--r,0deg)))}
  .scene>.obj[style*="--wd:auto"]{width:auto}
  .scene>.obj.hide-m{display:none}
  .scene>.obj.abzug,.scene>.obj.plakat{width:min(var(--wm,var(--wd,100%)),78%)}
  .scene>.obj.r{transform:rotate(var(--rm,var(--r,0deg))) translateY(18px)}
  .scene>.obj.r.in{transform:rotate(var(--rm,var(--r,0deg)))}
}
@media(prefers-reduced-motion:reduce){.scene>.obj.r{opacity:1;transition:none;transform:rotate(var(--r,0deg))}}
