/* t4ste.de – Rezeptseite. Gleiche Farbwelt wie bisher: dunkle Glut, Gold, cremeweiße Polaroids. */
@font-face{font-family:"Space Grotesk";src:url("fonts/SpaceGrotesk/SpaceGrotesk-wght.ttf") format("truetype");font-weight:300 700;font-display:swap}

:root{
  --gold:#fbbf24;--gold2:#d4af37;--gold-dunkel:#8a5a00;--glut:#ff7a1a;
  --text:#0b1524;--leise:#4b5563;--hell:#fff7ec;--hell-leise:#f3dcc4;
  --karte:#fffaf3;--linie:rgba(15,23,42,.1);
  --rund:22px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;font-family:"Space Grotesk","Inter",system-ui,sans-serif;color:var(--hell);-webkit-tap-highlight-color:transparent;
  background:radial-gradient(circle at 20% 12%,rgba(255,120,20,.42),transparent 45%),radial-gradient(circle at 75% 6%,rgba(255,90,0,.5),transparent 40%),
    radial-gradient(circle at 88% 45%,rgba(255,200,120,.22),transparent 50%),linear-gradient(180deg,#120202 0%,#1a0c0c 35%,#340707 70%,#0c0303 100%);background-attachment:fixed}
body.fenster-offen{overflow:hidden;position:fixed;left:0;right:0;width:100%}
img{display:block;max-width:100%}
button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}
.ic{width:20px;height:20px;flex:none}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:10px}

.seite{max-width:1200px;margin:0 auto;padding:16px max(16px,env(safe-area-inset-right)) 32px max(16px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:20px}

/* ---------------------------------------------- Kopf mit Flammen */
.kopf{position:relative;overflow:hidden;border-radius:28px;padding:clamp(20px,4vw,40px);min-height:200px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;
  background:linear-gradient(180deg,rgba(10,6,4,.15),rgba(10,6,4,.78)),var(--kopfbild) center/cover no-repeat,#2a0d05;box-shadow:0 24px 50px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.08)}
.kopf::after{content:"";position:absolute;inset:auto 0 0;height:60%;background:radial-gradient(70% 90% at 50% 120%,rgba(255,140,30,.35),transparent 70%);pointer-events:none;animation:glut 4s ease-in-out infinite alternate}
@keyframes glut{to{opacity:.55}}
.marke{align-self:flex-start;padding:5px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.4);font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:rgba(0,0,0,.25)}
.kopf h1{margin:6px 0 0;font-size:clamp(2rem,6vw,3.4rem);line-height:1.02;font-weight:700;letter-spacing:-.02em;text-shadow:0 4px 24px rgba(0,0,0,.5)}
.kopf p{margin:0;max-width:560px;color:var(--hell-leise);font-size:1.05rem}
.kopf-aktionen{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:10px}
.kopf-zahl{color:var(--hell-leise);font-size:.9rem}

/* Knöpfe */
.knopf{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 18px;border-radius:999px;border:1px solid var(--linie);background:#fff;color:var(--text);font-weight:600;font-size:.95rem;transition:transform .12s,box-shadow .12s}
.knopf:active{transform:scale(.97)}
.knopf.gold{border:0;color:#1a0c0c;background:linear-gradient(180deg,#fcd34d,var(--gold) 55%,#f59e0b);box-shadow:0 8px 20px rgba(251,191,36,.35),inset 0 1px 0 rgba(255,255,255,.6);font-weight:700}
.knopf.durchsichtig{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:var(--hell)}
.knopf.gross{min-height:58px;font-size:1.1rem;padding:0 26px}
.rund{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:50%;border:1px solid var(--linie);background:#fff;color:var(--text)}
.rund.klein{width:38px;height:38px;font-size:1.3rem;font-weight:700}
[data-wuerfel].dreht .ic{animation:dreh .7s cubic-bezier(.3,1.4,.5,1)}
@keyframes dreh{to{transform:rotate(360deg) scale(1.1)}}

/* ---------------------------------------------- Neu dazugekommen */
.neu h2{display:flex;align-items:center;gap:8px;margin:0 2px 10px;font-size:1.1rem;font-weight:700;color:var(--gold)}
.neu-raster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.neu-karte{display:flex;align-items:center;gap:10px;padding:8px;border-radius:18px;border:1px solid rgba(255,255,255,.14);background:rgba(10,4,2,.55);text-align:left;min-width:0;transition:transform .15s,background .15s}
.neu-karte img{width:56px;height:56px;flex:none;border-radius:12px;object-fit:cover}
.neu-karte span{min-width:0;display:flex;flex-direction:column}
.neu-karte small{color:var(--gold);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.neu-karte b{font-weight:600;font-size:.95rem;line-height:1.2;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
@media (max-width:820px){
  .neu-raster{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:minmax(150px,42%);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -16px;padding:0 16px 4px;scroll-padding:0 16px}
  .neu-raster::-webkit-scrollbar{display:none}
  .neu-karte{flex-direction:column;align-items:stretch;padding:7px 7px 10px;scroll-snap-align:start}
  .neu-karte img{width:100%;height:auto;aspect-ratio:16/10}
  .neu-karte span{padding:0 3px}
  .neu-karte b{display:block;-webkit-line-clamp:unset;overflow:visible;overflow-wrap:break-word}
}

/* ---------------------------------------------- Filterleiste (läuft mit) */
.filterleiste{position:sticky;top:0;z-index:20;margin:0 -16px;padding:10px 16px;display:flex;flex-direction:column;gap:10px;
  background:linear-gradient(180deg,rgba(20,6,3,.96),rgba(20,6,3,.88));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.08)}
.suche{display:flex;align-items:center;gap:10px;height:48px;padding:0 16px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18)}
.suche input{flex:1;min-width:0;border:0;background:none;color:var(--hell);font:inherit;font-size:1rem;outline:none}
.suche input::placeholder{color:#d9bfa6}
.suche .ic{color:var(--gold)}
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 4px;scrollbar-width:none;-webkit-mask:linear-gradient(90deg,#000 92%,transparent);mask:linear-gradient(90deg,#000 92%,transparent)}
.chips::-webkit-scrollbar{display:none}
.chip-filter{flex:none;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px 0 6px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:var(--hell);font-weight:600;font-size:.92rem;white-space:nowrap}
.chip-filter:first-child{padding-left:14px}
.chip-filter img{width:28px;height:28px;border-radius:50%;object-fit:cover}
.chip-filter b{font-size:.78rem;font-weight:700;padding:1px 7px;border-radius:999px;background:rgba(255,255,255,.14)}
.chip-filter[aria-pressed="true"]{background:linear-gradient(180deg,#fcd34d,var(--gold));color:#1a0c0c;border-color:transparent}
.chip-filter[aria-pressed="true"] b{background:rgba(26,12,12,.15)}
@media (min-width:900px){
  .filterleiste{flex-direction:row;align-items:flex-start;margin:0;padding:10px 12px;border-radius:24px;border:1px solid rgba(255,255,255,.08)}
  .suche{flex:0 0 300px}.chips{flex:1;flex-wrap:wrap;overflow:visible;-webkit-mask:none;mask:none;padding:4px 0}
}

/* ---------------------------------------------- Raster mit Polaroids */
.raster{display:grid;gap:clamp(14px,2.4vw,24px);grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:720px){.raster{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1100px){.raster{grid-template-columns:repeat(4,minmax(0,1fr))}}
.karte{position:relative;display:flex;flex-direction:column;padding:9px 9px 12px;border-radius:16px;background:var(--karte);color:var(--text);
  box-shadow:0 18px 36px rgba(0,0,0,.45),0 2px 4px rgba(0,0,0,.25);transform:rotate(var(--dreh,0deg));transition:transform .2s,box-shadow .2s}
.karte:nth-child(3n+1){--dreh:-.8deg}.karte:nth-child(3n+2){--dreh:.6deg}.karte:nth-child(4n){--dreh:-.4deg}
.karte.gewuerfelt{animation:wackler .8s ease-in-out}
@keyframes wackler{20%,60%{transform:rotate(-3deg) scale(1.03)}40%,80%{transform:rotate(3deg) scale(1.03)}}
.karte-oeffnen{position:absolute;inset:0;z-index:1;border:0;background:none;border-radius:16px}
.karte-bild{aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:#ead9c4}
.karte-bild img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.karte-text{display:flex;flex-direction:column;gap:4px;padding:10px 4px 0;flex:1}
.karte-kat{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-dunkel)}
.karte h3{margin:0;font-size:clamp(1rem,2.6vw,1.15rem);font-weight:700;line-height:1.2}
.karte p{margin:0;color:var(--leise);font-size:.88rem;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.karte-fuss{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;padding-top:8px}
.info{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:600;color:var(--leise);padding:3px 8px;border-radius:999px;background:#f3e6d4}
.info .ic{width:14px;height:14px}
.karte-knoepfe{margin-left:auto;display:flex;gap:4px;position:relative;z-index:2}
.mini{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--linie);background:#fff;color:var(--text)}
.mini .ic{width:17px;height:17px}
.karte.weg{display:none}
.leer{grid-column:1/-1;text-align:center;color:var(--hell-leise);padding:30px 0}
@media (max-width:420px){.karte-fuss .info:nth-of-type(2){display:none}.karte p{-webkit-line-clamp:2;font-size:.82rem}}

/* ---------------------------------------------- Rezeptansicht */
.fenster{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px}
/* cursor:pointer – sonst löst Safari auf dem iPhone hier keinen Klick aus */
.fenster-hg{position:absolute;inset:0;cursor:pointer;background:rgba(8,3,2,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.rezept{position:relative;width:min(1000px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;border-radius:26px;background:var(--karte);color:var(--text);box-shadow:0 30px 80px rgba(0,0,0,.6);animation:auf .25s cubic-bezier(.2,.9,.3,1)}
@keyframes auf{from{transform:translateY(18px) scale(.98);opacity:0}}
/* bleibt beim Scrollen oben rechts stehen */
.schliessen{position:sticky;top:12px;z-index:3;margin:12px 12px -56px auto;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.rezept-bild{height:min(36vh,340px);overflow:hidden;background:#ead9c4}
.rezept-bild img{width:100%;height:100%;object-fit:cover}
.rezept-inhalt{padding:clamp(16px,3vw,30px);display:flex;flex-direction:column;gap:8px}
.rezept h2{margin:0;font-size:clamp(1.6rem,4.4vw,2.4rem);line-height:1.08;letter-spacing:-.02em}
.rezept-intro{margin:0;color:var(--leise);font-size:1.02rem}
.rezept-infos{display:flex;gap:8px;flex-wrap:wrap}
.rezept-aktionen{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 6px}
.portionen{display:inline-flex;align-items:center;gap:8px;padding:4px;border-radius:999px;background:#f3e6d4}
.portionen span{display:flex;flex-direction:column;align-items:center;min-width:72px;line-height:1.05}
.portionen b{font-size:1.15rem}
.portionen small{font-size:.7rem;color:var(--leise);font-weight:600}
.rezept-spalten{display:grid;gap:22px;grid-template-columns:1fr}
@media (min-width:780px){.rezept-spalten{grid-template-columns:1fr 1.4fr}}
.rezept h3{margin:6px 0 10px;font-size:1.15rem}
.haken-liste,.schritte{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.haken-liste label{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:14px;background:#fff;border:1px solid var(--linie);cursor:pointer;line-height:1.35}
.haken-liste input{width:20px;height:20px;margin:1px 0 0;accent-color:#b45309;flex:none}
.haken-liste input:checked + span{text-decoration:line-through;color:#9ca3af}
.zutat-menge{font-weight:700;margin-right:.3em}
.rezept-hinweis{margin:-4px 0 10px;font-size:.86rem;color:var(--leise)}
.rezept-hinweis:empty{display:none}
.rezept-leer{color:var(--leise);font-style:italic;padding:6px 0}
.schritte li.rezept-leer{padding:12px 14px}.schritte li.rezept-leer::before{display:none}
.knopf:disabled,.rund:disabled{opacity:.45;cursor:default;transform:none}
.schritte{counter-reset:schritt}
.schritte li{counter-increment:schritt;position:relative;padding:12px 14px 12px 50px;border-radius:14px;background:#fff;border:1px solid var(--linie);line-height:1.45}
.schritte li::before{content:counter(schritt);position:absolute;left:12px;top:11px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,#fcd34d,var(--gold));color:#1a0c0c;font-weight:700;font-size:.9rem}
.kurz{display:none}
.timer-chip{display:inline-flex;align-items:center;gap:4px;margin:0 2px;padding:1px 9px 1px 6px;border-radius:999px;border:0;background:#fde68a;color:#7c4a03;font-weight:700;font-size:.92em;vertical-align:baseline}
.timer-chip .ic{width:15px;height:15px}
@media (max-width:560px){
  .fenster{padding:0;place-items:end stretch}
  /* sichtbare Höhe (ohne Adressleiste), oben bleibt ein Streifen zum Schließen */
  .rezept{max-height:86vh;max-height:calc(100svh - 56px);border-radius:24px 24px 0 0;animation:hoch .28s cubic-bezier(.2,.9,.3,1)}
  @keyframes hoch{from{transform:translateY(40px)}}   /* ohne Ausblenden: auch auf langsamen Handys sofort sichtbar */
  .rezept-bild{height:auto;aspect-ratio:16/9}
  .rezept-inhalt{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
  .rezept-aktionen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .rezept-aktionen .knopf.gold,.portionen{grid-column:1/-1}
  .portionen{justify-content:space-between;padding:5px}
  .portionen .rund.klein{width:44px;height:44px}
  .rezept-aktionen .knopf:not(.gold){flex-direction:column;gap:4px;min-height:66px;padding:8px 4px;border-radius:18px;font-size:.85rem}
  .lang{display:none}.kurz{display:inline}
}

/* ---------------------------------------------- Kochmodus */
.kochmodus{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;gap:12px;padding:max(16px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom));
  background:radial-gradient(circle at 50% 110%,rgba(255,120,20,.45),transparent 55%),linear-gradient(180deg,#160505,#2a0a06);color:var(--hell)}
.koch-kopf{display:flex;align-items:center;gap:10px}
.koch-kopf > div{flex:1;min-width:0;display:flex;flex-direction:column}
.koch-kopf small{color:var(--gold);font-weight:600;font-size:.82rem;line-height:1.2}
.koch-kopf b{font-size:1.15rem}
.kochmodus .rund{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:var(--hell)}
.koch-balken{height:6px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden}
.koch-balken i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--glut),var(--gold));transition:width .3s}
.koch-zutaten{max-height:40vh;overflow:auto;padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.08)}
.koch-zutaten ul{margin:0;padding-left:20px;line-height:1.6}
.koch-schritt{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;font-size:clamp(1.4rem,4.6vw,2.4rem);line-height:1.35;font-weight:500;overflow:auto;padding:10px 4px}
.koch-schritt.neu{animation:schritt-rein .3s ease-out}
@keyframes schritt-rein{from{transform:translateY(10px)}}
.koch-schritt p{margin:auto 0;max-width:900px}
.koch-schritt .timer-chip{font-size:.8em}
.koch-zutaten b{margin-right:.3em}
.koch-fuss{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}
.koch-fuss .knopf{width:100%}

/* ---------------------------------------------- Timer */
.timer-leiste{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:70;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}
.timer{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:8px 8px 8px 14px;border-radius:999px;background:#1c0907;color:var(--hell);border:1px solid rgba(251,191,36,.5);box-shadow:0 10px 30px rgba(0,0,0,.5);max-width:calc(100vw - 32px)}
.timer b{font-variant-numeric:tabular-nums;font-size:1.2rem;color:var(--gold)}
.timer small{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--hell-leise)}
.timer button{width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:var(--hell);display:grid;place-items:center}
.timer.fertig{background:linear-gradient(180deg,#fcd34d,var(--gold));color:#1a0c0c;animation:puls .8s ease-in-out infinite alternate}
.timer.fertig b,.timer.fertig small{color:#1a0c0c}
.timer.fertig button{background:rgba(26,12,12,.14);color:#1a0c0c}
@keyframes puls{to{transform:scale(1.05)}}
/* im Kochmodus über den Knöpfen, in der Rezeptansicht Platz am Ende lassen */
body.koch-offen .meldung{top:calc(88px + env(safe-area-inset-top))}
body.koch-offen .timer-leiste{bottom:calc(92px + env(safe-area-inset-bottom))}
body.hat-timer .rezept-inhalt{padding-bottom:calc(30px + var(--timer-platz,0px))}

/* ---------------------------------------------- Meldung, Fuß */
.meldung{position:fixed;left:50%;top:calc(14px + env(safe-area-inset-top));z-index:80;transform:translate(-50%,-30px);opacity:0;visibility:hidden;pointer-events:none;padding:12px 20px;border-radius:999px;background:#fff;color:var(--text);font-weight:600;box-shadow:0 12px 30px rgba(0,0,0,.4);transition:transform .25s cubic-bezier(.2,.9,.3,1),opacity .2s,visibility .25s;max-width:calc(100% - 32px);text-align:center}
.meldung.zeigen{transform:translate(-50%,0);opacity:1;visibility:visible}
.fuss{display:flex;justify-content:center;gap:22px;padding:10px 16px calc(24px + env(safe-area-inset-bottom));font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
.fuss a{color:var(--hell-leise);text-decoration:none}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01s!important;transition-duration:.01s!important}}

/* Hover nur mit Maus – auf iPhones bleibt :hover nach dem Tippen sonst hängen */
@media (hover:hover){
  .neu-karte:hover{transform:translateY(-2px);background:rgba(30,10,4,.7)}
  .karte:hover{transform:rotate(0) translateY(-4px);box-shadow:0 26px 48px rgba(0,0,0,.55),0 0 0 2px var(--gold)}
  .karte:hover .karte-bild img{transform:scale(1.05)}
  .mini:hover{background:var(--gold);border-color:transparent}
  .timer-chip:hover{background:var(--gold)}
  .fuss a:hover{color:var(--gold)}
}
