/* ============================================================================
   Doppelt serviert - game.css. Heller El-Camino-Rahmen, dunkles Kartenfeld,
   5x6-Raster mit 3D-Wende. Hochformat, ab 320px sauber. Keine externen Fonts.
   ============================================================================ */
:root{
  --bg:#f6eeda; --bg2:#efe3c6; --panel:#fffdf7; --ink:#291317; --ink-soft:#6d4a44;
  --wine:#7c2230; --wine-deep:#5a1822; --wine-bright:#9a2e3c;
  --gold:#b0812f; --gold-soft:#c7a35c; --line:#e3cfa2; --screen:#1b0f12;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  background:radial-gradient(1000px 420px at 50% -120px,#fff7e6 0%,transparent 70%),
             linear-gradient(180deg,#f7efdc 0%,var(--bg) 42%,#f2e8cf 100%);
  color:var(--ink); font-family:system-ui,Segoe UI,Arial,sans-serif;
  min-height:100vh; min-height:100dvh; overflow-x:hidden;
}
.pc-shell{
  max-width:460px; margin:0 auto; padding:8px 10px calc(14px + env(safe-area-inset-bottom));
  display:flex; flex-direction:column; gap:9px;
}

/* Kopf */
.pc-top{display:flex;align-items:center;gap:8px}
.pc-brand{font-weight:800;color:var(--wine);line-height:1;font-size:1.05rem}
.pc-brand small{display:block;font-weight:600;color:var(--ink-soft);font-size:.62rem;letter-spacing:.04em}
.pc-icon{
  margin-left:auto; width:40px;height:40px;flex:0 0 auto; font-size:1.15rem;
  border:1px solid var(--line);background:var(--panel);border-radius:10px;cursor:pointer;color:var(--wine);
}
.pc-icon:last-of-type{margin-left:0}
.pc-back{
  font-size:.82rem;font-weight:700;color:var(--wine);text-decoration:none;
  border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:8px 12px;white-space:nowrap;
}

/* HUD */
.pc-hud{display:flex;gap:6px;justify-content:space-between}
.pc-stat{
  flex:1;background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:6px 4px;text-align:center;min-width:0;
}
.pc-stat small{display:block;font-size:.58rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}
.pc-stat b{font-size:1.0rem;color:var(--wine-deep);font-variant-numeric:tabular-nums}
.pc-statusrow{display:flex;justify-content:center}
.pc-status{
  font-size:.74rem;font-weight:800;letter-spacing:.03em;padding:4px 14px;border-radius:999px;
  border:1px solid transparent;
}
.pc-status.rated{background:#e9f6e7;color:#2f7a2f;border-color:#bfe0ba}
.pc-status.unrated{background:#fdefe0;color:#b0621f;border-color:#f0cfa8}

/* Kartenfeld */
.pc-boardwrap{
  position:relative; width:100%;
  background:linear-gradient(180deg,#22141a,var(--screen)); border:3px solid var(--gold-soft); border-radius:14px;
  overflow:hidden; box-shadow:0 8px 24px -12px rgba(41,19,23,.5);
  aspect-ratio:5/6; padding:8px;
}
.pc-board{
  display:grid; grid-template-columns:repeat(5,1fr); grid-template-rows:repeat(6,1fr);
  gap:6px; width:100%; height:100%; touch-action:manipulation;
}

/* Karte (Tile) */
.pc-card{
  position:relative; padding:0; border:0; background:transparent; cursor:pointer;
  perspective:640px; -webkit-perspective:640px; touch-action:manipulation; min-width:0;
}
.pc-inner{
  position:absolute; inset:0; transform-style:preserve-3d; -webkit-transform-style:preserve-3d;
  transition:transform .32s cubic-bezier(.2,.7,.2,1);
}
.pc-card.flipped .pc-inner,.pc-card.found .pc-inner{transform:rotateY(180deg)}
.pc-face{
  position:absolute; inset:0; border-radius:10px; overflow:hidden;
  backface-visibility:hidden; -webkit-backface-visibility:hidden;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px -2px rgba(0,0,0,.5);
}
.pc-back{background:var(--wine);border:1px solid var(--wine-deep)}
.pc-front{background:var(--panel);border:1px solid var(--gold-soft);transform:rotateY(180deg)}
.pc-cv{width:100%;height:100%;display:block}
.pc-card.found{cursor:default}
.pc-card.found .pc-front{border-color:#4caf50;box-shadow:0 0 0 2px #4caf50 inset,0 0 14px -2px #6bd06b}
.pc-card.found{animation:pcMatch .42s ease}
.pc-card.miss .pc-front{border-color:var(--wine-bright);box-shadow:0 0 0 2px var(--wine-bright) inset}
.pc-card.miss{animation:pcShake .34s ease}
@keyframes pcMatch{0%{transform:scale(1)}40%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes pcShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

/* Countdown 3-2-1 */
.pc-countdown{
  position:absolute;inset:0;display:none;align-items:center;justify-content:center;z-index:12;
  font:900 5rem system-ui;color:#fff5e9;text-shadow:0 4px 24px rgba(0,0,0,.6);
  background:rgba(23,11,14,.5);pointer-events:none;
}
.pc-countdown.show{display:flex;animation:pcPop .5s ease}
@keyframes pcPop{0%{transform:scale(.5);opacity:0}40%{transform:scale(1.1);opacity:1}100%{transform:scale(1);opacity:1}}

/* Overlays */
.pc-ov{
  position:absolute;inset:0;display:none;align-items:center;justify-content:center;
  padding:16px;background:rgba(23,11,14,.84);z-index:14;overflow:auto;
}
.pc-ov.show{display:flex}
.pc-dlg{
  max-width:340px;width:100%;background:var(--panel);border:2px solid var(--gold-soft);
  border-radius:16px;padding:20px 18px;text-align:center;color:var(--ink);
  box-shadow:0 12px 40px rgba(0,0,0,.4);
}
.pc-dlg h1{margin:0 0 2px;color:var(--wine);font-size:1.6rem}
.pc-dlg h2{margin:0 0 8px;color:var(--wine);font-size:1.3rem}
.pc-dlg .sub{margin:0 0 12px;color:var(--gold);font-style:italic;font-size:.92rem}
.pc-dlg p{margin:.5em 0;line-height:1.5;font-size:.92rem;color:var(--ink-soft)}
.pc-dlg .hint{font-size:.78rem;opacity:.85}
.pc-dlg .warn{font-size:.8rem;color:var(--wine-bright);font-weight:600}
.pc-btn{
  display:inline-block;margin:8px 0 0;font:700 1rem system-ui;padding:12px 22px;
  border-radius:12px;border:0;background:var(--wine);color:#fff5e9;cursor:pointer;
  box-shadow:0 8px 20px -10px var(--wine);
}
.pc-btn.ghost{background:transparent;color:var(--wine);border:1px solid var(--wine)}
.pc-row{display:flex;gap:10px;justify-content:center;margin-top:10px;flex-wrap:wrap}
.pc-row .pc-btn{flex:1;min-width:130px}

.pc-stats{display:flex;flex-direction:column;gap:4px;margin:10px 0}
.statrow{display:flex;justify-content:space-between;padding:6px 10px;background:var(--bg2);border-radius:8px}
.statrow b{color:var(--wine-deep);font-variant-numeric:tabular-nums}

.pc-entry{margin:8px 0;padding:10px;background:var(--bg2);border-radius:10px}
.pc-alabel{display:block;margin:.2em 0 .3em;font-size:.85rem;font-weight:700;color:var(--wine)}
.pc-aliasin{
  width:100%;text-align:center;font:800 1.5rem ui-monospace,monospace;letter-spacing:.3em;
  padding:10px;border:2px solid var(--gold-soft);border-radius:10px;background:#fff;color:var(--ink);text-transform:uppercase;
}
.pc-aliaserr{color:var(--wine-bright);min-height:1.1em;font-size:.85rem}

.pc-banner{
  position:absolute;left:50%;top:14px;transform:translateX(-50%) translateY(-16px);
  background:var(--wine);color:#fff5e9;font-weight:700;padding:8px 18px;border-radius:999px;
  opacity:0;transition:.25s;z-index:20;pointer-events:none;font-size:.9rem;white-space:nowrap;
}
.pc-banner.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Bestenliste */
.pc-hs{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.pc-hshead{font-weight:800;color:var(--wine);margin-bottom:6px;font-size:.95rem}
.pc-hslist{list-style:none;margin:0;padding:0;counter-reset:hs}
.pc-hslist li{
  display:flex;justify-content:space-between;padding:5px 4px;border-bottom:1px dashed var(--line);font-size:.92rem;
}
.pc-hslist li:last-child{border-bottom:0}
.pc-hslist li::before{counter-increment:hs;content:counter(hs) ".";color:var(--gold);font-weight:700;margin-right:8px;min-width:1.4em}
.pc-hslist li span{flex:1;font-family:ui-monospace,monospace}
.pc-hslist li b{color:var(--wine-deep);font-variant-numeric:tabular-nums}

.pc-footer{text-align:center;font-size:.74rem;color:var(--ink-soft);padding:4px 0}
.pc-footer a{color:var(--wine);text-decoration:none}

/* Fokusrahmen (Desktop-Tastatur) */
.pc-card:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:12px}
.pc-btn:focus-visible,.pc-icon:focus-visible,.pc-back:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* reduzierte Bewegung */
@media (prefers-reduced-motion: reduce){
  .pc-inner{transition:transform .01s linear}
  .pc-card.found,.pc-card.miss,.pc-countdown.show{animation:none}
}

/* Querformat: Feld etwas kleiner, Layout bleibt brauchbar */
@media (max-height:560px) and (orientation:landscape){
  .pc-shell{max-width:none;flex-direction:column}
  .pc-boardwrap{max-width:64vh;margin:0 auto}
}

/* schmale Handys */
@media (max-width:360px){
  .pc-brand{font-size:.95rem}
  .pc-stat b{font-size:.9rem}
  .pc-stat small{font-size:.54rem}
  .pc-back{padding:7px 9px;font-size:.76rem}
  .pc-board{gap:5px}
  .pc-countdown{font-size:4rem}
}
