:root {
      --rose: #ff5f86;
      --rose-dark: #e94770;
      --pink: #fff1f5;
      --ink: #3c2d34;
      --muted: #816a74;
      --card: rgba(255, 255, 255, 0.88);
      --shadow: 0 24px 70px rgba(145, 58, 89, 0.19);
    }

    * { box-sizing: border-box; }

    html, body { min-height: 100%; }

    body {
      margin: 0;
      min-height: 100svh;
      display: grid;
      place-items: center;
      overflow: hidden;
      font-family: Inter, ui-rounded, "SF Pro Rounded", "Segoe UI", system-ui, sans-serif;
      color: var(--ink);
      background-color: #ffdbe6;
      background-image:
        linear-gradient(rgba(255, 238, 243, 0.24), rgba(255, 210, 223, 0.24)),
        url("hintergrund.jpeg");
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      padding: 20px;
    }

    .blob {
      position: fixed;
      border-radius: 50%;
      filter: blur(1px);
      opacity: .22;
      pointer-events: none;
      animation: float 9s ease-in-out infinite;
    }

    .blob.one { width: 190px; height: 190px; background: #ff8cab; top: -45px; left: -55px; }
    .blob.two { width: 150px; height: 150px; background: #ffc0d0; right: -40px; bottom: -30px; animation-delay: -3s; }

    @keyframes float {
      50% { transform: translateY(18px) translateX(8px) scale(1.05); }
    }

    .card {
      position: relative;
      width: min(92vw, 560px);
      min-height: 570px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      padding: 44px 34px 34px;
      border: 1px solid rgba(255,255,255,.75);
      border-radius: 32px;
      background: var(--card);
      box-shadow: var(--shadow);
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
      text-align: center;
      isolation: isolate;
    }

    .eyebrow {
      margin: 0 0 18px;
      padding: 8px 13px;
      border-radius: 999px;
      color: var(--rose-dark);
      background: #ffe7ee;
      font-size: 13px;
      font-weight: 800;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .heart-wrap {
      position: relative;
      width: 124px;
      height: 124px;
      display: grid;
      place-items: center;
      margin-bottom: 20px;
      border-radius: 36px;
      background: linear-gradient(145deg, #fff, #ffe4ec);
      box-shadow: inset 0 0 0 1px #fff, 0 18px 35px rgba(227, 73, 117, .17);
      transform: rotate(-3deg);
    }

    .heart { font-size: 62px; animation: beat 1.35s ease-in-out infinite; }

    @keyframes beat {
      0%, 100% { transform: scale(1); }
      45% { transform: scale(1.12); }
      60% { transform: scale(1.03); }
    }

    h1 {
      max-width: 450px;
      margin: 0;
      font-size: clamp(32px, 7vw, 48px);
      line-height: 1.05;
      letter-spacing: -.045em;
    }

    .subline {
      max-width: 420px;
      margin: 16px 0 0;
      color: var(--muted);
      font-size: 17px;
      line-height: 1.55;
    }

    .playground {
      position: relative;
      width: 100%;
      min-height: 150px;
      margin-top: 28px;
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 16px;
    }

    button {
      min-width: 132px;
      min-height: 54px;
      border: 0;
      border-radius: 17px;
      padding: 14px 22px;
      font: inherit;
      font-size: 17px;
      font-weight: 850;
      cursor: pointer;
      touch-action: manipulation;
      transition: transform .22s ease, box-shadow .22s ease, left .28s cubic-bezier(.2,.8,.2,1), top .28s cubic-bezier(.2,.8,.2,1), opacity .2s ease;
      user-select: none;
      -webkit-tap-highlight-color: transparent;
    }

    button:focus-visible { outline: 4px solid rgba(255, 95, 134, .24); outline-offset: 4px; }

    #yesBtn {
      z-index: 5;
      color: white;
      background: linear-gradient(135deg, var(--rose), #ff7fa0);
      box-shadow: 0 12px 28px rgba(233, 71, 112, .30);
    }

    #yesBtn:hover { transform: translateY(-3px) scale(1.03); box-shadow: 0 16px 34px rgba(233, 71, 112, .38); }

    #noBtn {
      z-index: 4;
      color: #705661;
      background: #fff;
      box-shadow: 0 10px 24px rgba(83, 48, 62, .12), inset 0 0 0 1px #f3dce4;
      transform-origin: center;
    }

    #noBtn:hover { box-shadow: 0 13px 28px rgba(83, 48, 62, .16), inset 0 0 0 1px #efcbd8; }
    #noBtn.compact-no {
      min-width: 0;
      min-height: 42px;
      max-width: 125px;
      padding: 9px 11px;
      font-size: 12px;
      line-height: 1.15;
      white-space: normal;
    }
    #noBtn.moving {
      position: absolute;
      z-index: 20;
      margin: 0;
      transform-origin: top left;
      touch-action: none;
      will-change: left, top, transform;
    }

    .playground.runaway-active {
      min-height: 260px;
      isolation: isolate;
    }

    .playground.runaway-active #noBtn {
      z-index: 20;
      min-width: 0;
      max-width: 180px;
      white-space: normal;
    }
    #noBtn.breaking { animation: shatter .55s ease forwards; }

    @keyframes shatter {
      0% { transform: scale(var(--no-scale, 1)) rotate(0); filter: blur(0); opacity: 1; }
      45% { transform: scale(calc(var(--no-scale, 1) * 1.15)) rotate(-4deg); }
      100% { transform: scale(calc(var(--no-scale, 1) * .25)) rotate(15deg); filter: blur(7px); opacity: 0; }
    }

    .hint {
      min-height: 24px;
      margin: 14px 0 0;
      color: var(--rose-dark);
      font-size: 14px;
      font-weight: 780;
    }

    .particle {
      position: fixed;
      z-index: 30;
      pointer-events: none;
      font-weight: 900;
      animation: pop .8s ease-out forwards;
    }

    @keyframes pop {
      to { transform: translate(var(--dx), var(--dy)) rotate(var(--rot)) scale(.3); opacity: 0; }
    }

    .confetti {
      position: fixed;
      top: -20px;
      z-index: 40;
      pointer-events: none;
      animation: fall linear forwards;
    }

    @keyframes fall {
      to { transform: translateY(110vh) rotate(760deg); opacity: .95; }
    }

    .result {
      animation: reveal .5s cubic-bezier(.2,.8,.2,1) both;
    }

    @keyframes reveal {
      from { opacity: 0; transform: translateY(18px) scale(.96); }
      to { opacity: 1; transform: translateY(0) scale(1); }
    }

    .result-icon { font-size: clamp(36px, calc(8vw + 2px), 52px); margin-bottom: 12px; font-weight: 850; }
    .result h2 { margin: 0; font-size: clamp(34px, 8vw, 50px); letter-spacing: -.04em; }
    .result p { margin: 16px auto 0; max-width: 400px; color: var(--muted); font-size: 18px; line-height: 1.55; }

    .restart {
      margin-top: 26px;
      min-width: 180px;
      min-height: 54px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 17px;
      padding: 14px 22px;
      color: var(--rose-dark);
      background: #ffe7ee;
      box-shadow: none;
      font-size: 17px;
      font-weight: 850;
      text-decoration: none;
      transition: transform .22s ease;
    }

    .restart:hover { transform: translateY(-2px); }

    @media (max-width: 560px) {
      body { padding: 12px; overflow: auto; }
      .card { min-height: min(680px, calc(100svh - 24px)); padding: 32px 18px 24px; border-radius: 26px; }
      .heart-wrap { width: 106px; height: 106px; border-radius: 31px; }
      .heart { font-size: 54px; }
      .subline { font-size: 16px; }
      .playground { min-height: 190px; gap: 12px; }
      .playground.runaway-active { min-height: 280px; }
      button { min-width: 116px; min-height: 52px; padding: 13px 17px; }
    }

    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
    }
