/* SABOTEO – Website
   Look: Baustelle trifft Sabotage. Helles Papier, tiefes Schwarz, Warnband-Gelb, Signal-Rot.
   Stempel, Klebeband, Kassenbon – nichts davon sieht aus wie die üblichen Neon-Overlay-Seiten. */
@font-face { font-family: "Lilita One"; src: url("LilitaOne.ttf") format("truetype"); font-display: swap; }

:root {
  --paper: #f2ede3;
  --paper-2: #e8e1d3;
  --ink: #121115;
  --ink-2: #1c1b21;
  --ink-3: #2a2930;
  --hazard: #ffc21a;
  --signal: #ff3d1f;
  --help: #14b86e;
  --text: #121115;
  --muted: #5d5a55;
  --line: rgba(18, 17, 21, 0.14);
  --display: "Lilita One", "Arial Black", system-ui, sans-serif;
  --body: ui-sans-serif, "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "Cascadia Mono", "Consolas", "SFMono-Regular", Menlo, monospace;
  --radius: 14px;
  --wrap: 1180px;
  --tape: repeating-linear-gradient(-45deg, var(--hazard) 0 22px, var(--ink) 22px 44px);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; background: var(--paper); color: var(--text);
  font: 17px/1.6 var(--body); -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
/* feines Papierkorn */
body::before {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 100; opacity: 0.35; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--display); font-weight: 400; line-height: 0.98; letter-spacing: 0.3px; margin: 0; }
p { margin: 0 0 1em; }
.wrap { width: min(var(--wrap), calc(100% - 40px)); margin: 0 auto; }
.muted { color: var(--muted); }
.mono { font-family: var(--mono); }
.dark { background: var(--ink); color: #f4f1ea; --muted: #a8a49c; --line: rgba(255, 255, 255, 0.12); }
.yellow { background: var(--hazard); --muted: #4a3c08; }
section { padding: 110px 0; position: relative; }

/* ---------- Stempel, Band, Knöpfe ---------- */
.stamp {
  display: inline-block; font: 700 12px/1 var(--mono); letter-spacing: 2px; text-transform: uppercase;
  border: 2px solid currentColor; padding: 7px 10px 6px; border-radius: 4px; transform: rotate(-2deg);
}
.stamp.red { color: var(--signal); }
.stamp.green { color: var(--help); }
.tape-band { height: 18px; background: var(--tape); }
.btn {
  display: inline-flex; align-items: center; gap: 10px; justify-content: center; cursor: pointer;
  font: 16px/1 var(--display); letter-spacing: 0.6px; text-decoration: none; text-transform: uppercase;
  padding: 17px 24px 15px; border-radius: 10px; border: 2.5px solid var(--ink); color: var(--ink); background: transparent;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.btn.solid { background: var(--ink); color: var(--paper); box-shadow: 5px 5px 0 var(--signal); }
.btn.solid:hover { transform: translate(-2px, -2px); box-shadow: 7px 7px 0 var(--signal); }
.btn.solid:active { transform: translate(3px, 3px); box-shadow: 2px 2px 0 var(--signal); }
.btn.line:hover { background: var(--ink); color: var(--paper); }
.dark .btn { border-color: #f4f1ea; color: #f4f1ea; }
.dark .btn.solid { background: var(--hazard); color: var(--ink); border-color: var(--hazard); box-shadow: 5px 5px 0 var(--signal); }
.btn.small { padding: 12px 16px 10px; font-size: 14px; box-shadow: 3px 3px 0 var(--signal); }

/* ---------- Kopfzeile ---------- */
.nav { position: sticky; top: 0; z-index: 50; background: rgba(242, 237, 227, 0.86); backdrop-filter: blur(10px); border-bottom: 2px solid var(--ink); }
.nav .wrap { display: flex; align-items: center; gap: 22px; height: 70px; }
.brand { display: flex; align-items: center; gap: 10px; font: 26px/1 var(--display); text-decoration: none; letter-spacing: 1px; }
.brand img { width: 34px; height: 34px; border-radius: 8px; }
.nav nav { margin-left: auto; display: flex; align-items: center; gap: 26px; }
.nav nav a:not(.btn) { text-decoration: none; font-weight: 600; font-size: 15px; position: relative; }
.nav nav a:not(.btn)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -4px; height: 2px; background: var(--signal); transition: right 0.2s ease; }
.nav nav a:not(.btn):hover::after { right: 0; }
.menu-toggle { display: none; margin-left: auto; background: none; border: 2px solid var(--ink); border-radius: 8px; width: 44px; height: 40px; font-size: 20px; cursor: pointer; }

/* ---------- Hero ---------- */
.hero { padding: 70px 0 90px; overflow: hidden; }
.hero .wrap { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 50px; align-items: center; }
.hero h1 { font-size: clamp(56px, 8.4vw, 124px); margin: 22px 0 26px; }
.hero h1 .line { display: block; }
.hero h1 .hot { color: var(--signal); position: relative; display: inline-block; }
.hero h1 .hot svg { position: absolute; left: -2%; bottom: -0.12em; width: 104%; height: 0.32em; overflow: visible; }
.hero h1 .hot path { fill: none; stroke: var(--ink); stroke-width: 7; stroke-linecap: round; stroke-dasharray: 900; stroke-dashoffset: 900; animation: draw 1.1s 0.9s cubic-bezier(.6, 0, .3, 1) forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
.hero .lead { font-size: 20px; max-width: 590px; }
.hero .lead b { background: linear-gradient(transparent 62%, rgba(255, 194, 26, 0.75) 62%); }
.hero .cta { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 30px; }
.hero .facts { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 26px; font: 13px/1.4 var(--mono); color: var(--muted); }
.hero .facts span::before { content: "■ "; color: var(--signal); }

/* Kassenbon: das Live-Protokoll druckt, was der Chat auslöst */
.receipt-stage { position: relative; display: flex; justify-content: center; min-height: 560px; }
.receipt-stage .shot {
  position: absolute; width: 230px; border: 6px solid #fff; box-shadow: 0 18px 40px rgba(18, 17, 21, 0.28); border-radius: 4px;
  animation: float 7s ease-in-out infinite;
}
.receipt-stage .shot img { aspect-ratio: 9 / 16; object-fit: cover; width: 100%; }
.receipt-stage .shot::before {
  content: ""; position: absolute; top: -14px; left: 50%; width: 92px; height: 26px; transform: translateX(-50%) rotate(-4deg);
  background: rgba(255, 194, 26, 0.78); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}
.receipt-stage .shot.a { left: 0; top: 30px; transform: rotate(-7deg); }
.receipt-stage .shot.b { right: 0; top: 0; transform: rotate(6deg); animation-delay: -3s; }
@keyframes float { 50% { translate: 0 -10px; } }
.receipt {
  position: relative; z-index: 2; margin-top: 150px; width: 300px; background: #fffdf7; color: var(--ink);
  font: 13px/1.5 var(--mono); padding: 18px 18px 26px; box-shadow: 0 22px 50px rgba(18, 17, 21, 0.3); transform: rotate(-1.5deg);
  --zig: radial-gradient(circle at 8px 0, transparent 7px, #fffdf7 7.5px);
}
.receipt::after { content: ""; position: absolute; left: 0; right: 0; bottom: -10px; height: 12px; background: var(--zig); background-size: 16px 12px; }
.receipt .head { text-align: center; border-bottom: 1.5px dashed var(--ink); padding-bottom: 10px; margin-bottom: 8px; }
.receipt .head b { font: 22px/1 var(--display); letter-spacing: 2px; display: block; }
.receipt .live { color: var(--signal); font-weight: 700; }
.receipt .live::before { content: "● "; animation: blink 1.2s steps(2) infinite; }
@keyframes blink { 50% { opacity: 0.2; } }
.receipt ol { list-style: none; margin: 0; padding: 0; height: 236px; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; }
.receipt li { padding: 6px 0; border-bottom: 1px dotted rgba(18, 17, 21, 0.25); animation: print 0.45s steps(6) both; }
.receipt li .who { font-weight: 700; }
.receipt li .fx { display: block; }
.receipt li .fx.s { color: var(--signal); }
.receipt li .fx.h { color: #0c8a52; }
@keyframes print { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
.receipt .foot { border-top: 1.5px dashed var(--ink); margin-top: 8px; padding-top: 8px; display: flex; justify-content: space-between; }

/* ---------- Laufband ---------- */
.ticker { background: var(--ink); color: var(--hazard); overflow: hidden; border-block: 3px solid var(--ink); transform: rotate(-1.2deg); margin: 0 -20px; position: relative; z-index: 3; }
.ticker .track { display: flex; width: max-content; gap: 0; animation: tick 38s linear infinite; }
.ticker span { font: 22px/1 var(--display); letter-spacing: 1px; padding: 16px 26px; white-space: nowrap; }
.ticker span i { font-style: normal; color: #f4f1ea; }
.ticker span b { color: var(--signal); font-weight: 400; }
@keyframes tick { to { transform: translateX(-50%); } }

/* ---------- Was ist SABOTEO ---------- */
.explain .grid { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: 70px; align-items: start; }
.explain h2 { font-size: clamp(42px, 5.4vw, 76px); margin: 18px 0 24px; }
.explain h2 em { font-style: normal; color: var(--hazard); }
.chain { list-style: none; padding: 0; margin: 34px 0 0; display: grid; gap: 14px; }
.chain li { display: grid; grid-template-columns: 54px 1fr; gap: 16px; align-items: start; }
.chain .no { font: 30px/1 var(--display); color: var(--ink); background: var(--hazard); border-radius: 10px; height: 54px; display: grid; place-items: center; }
.chain b { font: 22px/1.1 var(--display); letter-spacing: 0.3px; display: block; margin: 3px 0 4px; }

/* Mini-Brücke zum Ausprobieren */
.demo { background: var(--ink-2); border: 2px solid var(--ink-3); border-radius: 22px; padding: 26px; position: sticky; top: 100px; }
.demo .demo-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 18px; }
.demo .demo-head b { font: 22px/1 var(--display); }
.demo .goal { font: 13px/1 var(--mono); color: var(--hazard); }
.bridge {
  position: relative; height: 230px; border-radius: 14px; overflow: hidden;
  background: radial-gradient(ellipse at 50% 120%, #3b1d5a 0, transparent 60%), linear-gradient(#0b0d1a, #161a33);
}
.bridge .stars { position: absolute; inset: 0; background-image: radial-gradient(1.5px 1.5px at 20% 30%, #fff8, transparent), radial-gradient(1px 1px at 70% 20%, #fff7, transparent), radial-gradient(1.5px 1.5px at 40% 60%, #fff5, transparent), radial-gradient(1px 1px at 85% 55%, #fff6, transparent), radial-gradient(1px 1px at 10% 75%, #fff5, transparent); }
.bridge .rope { position: absolute; left: 4%; right: 4%; top: 104px; height: 2px; background: #6b5434; }
.planks { position: absolute; left: 4%; right: 4%; top: 120px; display: flex; gap: 3px; }
.plank { flex: 1; height: 16px; background: linear-gradient(#a8753f, #7a5128); border-radius: 2px; transition: transform 0.5s cubic-bezier(.5, 0, .9, .4), opacity 0.5s; transform-origin: 50% 0; }
.plank.cracked { background: linear-gradient(#ff8a3a, #c2410c); animation: shake 0.12s linear infinite; }
.plank.broken { transform: translateY(160px) rotate(40deg); opacity: 0; }
.plank.gold { background: linear-gradient(#ffe066, #e0a400); box-shadow: 0 0 12px #ffd34d; }
@keyframes shake { 50% { translate: 1px 0; } }
.runner { position: absolute; top: 84px; width: 22px; height: 36px; left: 4%; transition: left 0.16s linear, top 0.5s ease-in; }
.runner::before { content: ""; position: absolute; left: 4px; top: 0; width: 14px; height: 14px; border-radius: 50%; background: #e8c39e; }
.runner::after { content: ""; position: absolute; left: 2px; top: 14px; width: 18px; height: 22px; border-radius: 6px 6px 3px 3px; background: #2a2930; box-shadow: inset 0 3px 0 #fff3; }
.runner.fall { top: 260px; transition: top 0.6s ease-in; }
.bridge .island { position: absolute; right: 0; top: 118px; width: 4%; height: 40px; background: #3d6b3a; border-radius: 6px 0 0 6px; }
.demo .buttons { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; margin-top: 16px; }
.demo button {
  font: 15px/1.1 var(--display); letter-spacing: 0.4px; padding: 14px 8px 12px; border-radius: 10px; border: 0; cursor: pointer; color: #fff;
  transition: transform 0.1s ease, filter 0.15s;
}
.demo button:active { transform: scale(0.96); }
.demo button small { display: block; font: 11px/1.3 var(--mono); opacity: 0.8; margin-top: 4px; letter-spacing: 0; }
.demo .sab { background: var(--signal); }
.demo .hlp { background: var(--help); }
.demo .wind { background: #3d64c8; }
.demo .log { font: 12.5px/1.5 var(--mono); color: var(--muted); margin-top: 14px; min-height: 40px; }
.demo .log b { color: #f4f1ea; }

/* ---------- Spiele ---------- */
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 46px; flex-wrap: wrap; }
.section-head h2 { font-size: clamp(42px, 5.4vw, 76px); margin-top: 14px; }
.section-head p { max-width: 430px; margin: 0; }
.games { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 26px; }
.poster {
  position: relative; display: flex; flex-direction: column; text-decoration: none; background: #fff; border: 2.5px solid var(--ink);
  border-radius: var(--radius); overflow: hidden; transition: transform 0.25s ease, box-shadow 0.25s ease; box-shadow: 0 0 0 var(--ink);
}
.poster:hover { transform: translate(-4px, -4px) rotate(-0.6deg); box-shadow: 8px 8px 0 var(--ink); }
.poster .img { aspect-ratio: 4 / 5; overflow: hidden; background: var(--ink); position: relative; }
.poster .img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 62%; transition: transform 0.6s ease; }
.poster:hover .img img { transform: scale(1.05); }
.poster .label { position: absolute; top: 14px; left: 14px; }
.poster .label .stamp { background: var(--paper); }
.poster .body { padding: 18px 18px 20px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.poster h3 { font-size: 30px; }
.poster .tag { font-size: 15px; color: var(--muted); margin: 0; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { font: 12px/1 var(--mono); padding: 6px 8px 5px; border-radius: 4px; border: 1.5px solid var(--line); }
.chip.s { color: #c0260d; border-color: rgba(255, 61, 31, 0.4); background: rgba(255, 61, 31, 0.07); }
.chip.h { color: #0c7a48; border-color: rgba(20, 184, 110, 0.4); background: rgba(20, 184, 110, 0.07); }
.poster .foot { margin-top: auto; display: flex; justify-content: space-between; align-items: center; padding-top: 10px; border-top: 1.5px dashed var(--line); font: 14px/1 var(--mono); }
.poster .foot b { font: 22px/1 var(--display); white-space: nowrap; }
.poster .foot { gap: 12px; }
.poster .foot span { text-align: right; font-size: 11.5px; line-height: 1.4; }
.poster.soon { cursor: default; }
.poster.soon .img { display: grid; place-items: center; background: var(--tape); }
.poster.soon .img span { font: 28px/1 var(--display); background: var(--ink); color: var(--hazard); padding: 14px 18px 12px; transform: rotate(-4deg); }

/* ---------- Was man einstellen kann ---------- */
.features { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2.5px solid var(--ink); border-left: 2.5px solid var(--ink); }
.feature { padding: 30px 28px; border-right: 2.5px solid var(--ink); border-bottom: 2.5px solid var(--ink); position: relative; transition: background 0.2s; }
.feature:hover { background: #fff; }
.feature .n { font: 12px/1 var(--mono); color: var(--signal); letter-spacing: 2px; }
.feature h3 { font-size: 26px; margin: 12px 0 10px; }
.feature p { margin: 0; color: var(--muted); font-size: 15.5px; }

/* ---------- Preise ---------- */
.pricing { overflow: hidden; }
.pricing::before, .pricing::after { content: ""; position: absolute; left: 0; right: 0; height: 18px; background: var(--tape); }
.pricing::before { top: 0; } .pricing::after { bottom: 0; }
.pricing h2 { font-size: clamp(42px, 5.4vw, 76px); }
.plans-wrap { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: 26px; margin-top: 40px; align-items: stretch; }
.plan-card { background: var(--ink); color: #f4f1ea; border-radius: 22px; padding: 34px; position: relative; box-shadow: 10px 10px 0 rgba(18, 17, 21, 0.25); }
.plan-card.single { background: var(--paper); color: var(--ink); border: 2.5px solid var(--ink); }
.switch { display: inline-flex; background: var(--ink-3); border-radius: 12px; padding: 5px; position: relative; margin: 18px 0 26px; flex-wrap: wrap; }
.switch button {
  position: relative; z-index: 1; border: 0; background: none; color: #cfcac0; font: 15px/1 var(--display); letter-spacing: 0.4px;
  padding: 13px 16px 11px; border-radius: 9px; cursor: pointer; transition: color 0.2s;
}
.switch button.on { color: var(--ink); }
.switch button em { font-style: normal; font: 11px/1 var(--mono); display: block; margin-top: 3px; color: var(--help); }
.switch button.on em { color: #0b5e37; }
.switch .knob { position: absolute; top: 5px; bottom: 5px; border-radius: 9px; background: var(--hazard); transition: left 0.3s cubic-bezier(.4, 1.4, .5, 1), width 0.3s; }
.price-big { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.price-big .num { font: clamp(64px, 8vw, 104px)/0.9 var(--display); color: var(--hazard); }
.price-big .per { font: 18px/1.2 var(--mono); color: #cfcac0; }
.billed { font: 14px/1.4 var(--mono); color: #a8a49c; margin: 10px 0 22px; min-height: 20px; }
.ticks { list-style: none; padding: 0; margin: 0 0 28px; display: grid; gap: 8px; }
.ticks li::before { content: "✓"; color: var(--help); font-weight: 900; margin-right: 10px; }
.plan-card .best { position: absolute; top: -14px; right: 26px; background: var(--signal); color: #fff; font: 13px/1 var(--display); letter-spacing: 1px; padding: 9px 12px 7px; border-radius: 6px; transform: rotate(3deg); }
.plan-card.single .price-big .num { color: var(--ink); }
.plan-card.single .price-big .per, .plan-card.single .billed { color: var(--muted); }
.small-print { font: 12.5px/1.5 var(--mono); color: var(--muted); margin-top: 22px; }

/* ---------- Startklar (Checkliste) ---------- */
.checklist { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 60px; counter-reset: c; }
.checklist li { display: grid; grid-template-columns: 38px 1fr; gap: 16px; padding: 22px 0; border-bottom: 1.5px dashed var(--line); counter-increment: c; }
.checklist .box { width: 32px; height: 32px; border: 2.5px solid #f4f1ea; border-radius: 6px; position: relative; margin-top: 2px; }
.checklist .box::after {
  content: ""; position: absolute; left: 8px; top: 1px; width: 9px; height: 18px; border: solid var(--hazard); border-width: 0 4px 4px 0;
  transform: rotate(45deg) scale(0); transition: transform 0.35s cubic-bezier(.4, 1.8, .5, 1);
}
.checklist li.in .box::after { transform: rotate(45deg) scale(1); }
.checklist b { font: 22px/1.15 var(--display); letter-spacing: 0.3px; display: block; margin-bottom: 4px; }
.checklist b::before { content: counter(c, decimal-leading-zero) " · "; color: var(--hazard); font-family: var(--mono); font-size: 14px; vertical-align: 3px; }
.checklist p { margin: 0; color: var(--muted); font-size: 15.5px; }

/* ---------- FAQ ---------- */
.faq { max-width: 880px; }
.faq details { border-bottom: 2.5px solid var(--ink); }
.faq details:first-of-type { border-top: 2.5px solid var(--ink); }
.faq summary { list-style: none; cursor: pointer; padding: 22px 50px 22px 0; font: 22px/1.2 var(--display); letter-spacing: 0.3px; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 6px; top: 16px; font-size: 34px; transition: transform 0.25s; color: var(--signal); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { margin: 0 0 22px; color: var(--muted); max-width: 720px; }

/* ---------- Abschluss & Fuß ---------- */
.final { text-align: center; }
.final h2 { font-size: clamp(52px, 8vw, 120px); }
.final h2 span { color: var(--signal); }
.final .cta { display: flex; justify-content: center; gap: 16px; margin-top: 34px; flex-wrap: wrap; }
footer { background: var(--ink); color: #a8a49c; padding: 46px 0; font-size: 14px; }
footer .wrap { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
footer nav { display: flex; gap: 22px; }
footer a { color: #f4f1ea; text-decoration: none; }
footer a:hover { color: var(--hazard); }

/* ---------- Spielseiten ---------- */
.game-hero { padding: 60px 0 90px; }
.game-hero .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.game-hero h1 { font-size: clamp(60px, 8.5vw, 128px); margin: 20px 0 22px; }
.game-hero .lead { font-size: 19px; }
.phone-pair { position: relative; height: 620px; }
.phone-pair .shot { position: absolute; width: 270px; border: 6px solid #fff; border-radius: 4px; box-shadow: 0 20px 44px rgba(18, 17, 21, 0.3); animation: float 7s ease-in-out infinite; }
.phone-pair .shot img { aspect-ratio: 9 / 16; object-fit: cover; width: 100%; }
.phone-pair .shot.a { left: 4%; top: 30px; transform: rotate(-5deg); }
.phone-pair .shot.b { right: 4%; top: 0; transform: rotate(5deg); animation-delay: -3.5s; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; }
.rules { display: grid; gap: 12px; }
.rule { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: baseline; padding: 14px 0; border-bottom: 1.5px dashed var(--line); }
.rule .stamp { transform: none; font-size: 11px; }
.rule p { margin: 0; }

/* ---------- Einblenden beim Scrollen ---------- */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.7s ease, transform 0.7s cubic-bezier(.2, .7, .2, 1); }
.reveal.in { opacity: 1; transform: none; }
.reveal.d1 { transition-delay: 0.08s; } .reveal.d2 { transition-delay: 0.16s; } .reveal.d3 { transition-delay: 0.24s; }

/* ---------- Text-Seiten (Impressum, AGB …) ---------- */
.doc { max-width: 820px; padding: 70px 0 100px; }
.doc h1 { font-size: clamp(44px, 6vw, 72px); margin-bottom: 30px; }
.doc h2 { font-size: 26px; margin: 34px 0 10px; }

/* ---------- Kleine Bildschirme ---------- */
@media (max-width: 980px) {
  section { padding: 80px 0; }
  .hero .wrap, .explain .grid, .plans-wrap, .game-hero .wrap, .split { grid-template-columns: 1fr; }
  .receipt-stage { min-height: 520px; }
  .demo { position: relative; top: 0; }
  .features { grid-template-columns: 1fr 1fr; }
  .checklist { grid-template-columns: 1fr; }
  .phone-pair { height: 520px; max-width: 520px; margin: 0 auto; width: 100%; }
  .phone-pair .shot { width: 210px; }
}
@media (max-width: 720px) {
  .nav nav { display: none; position: absolute; top: 70px; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; background: var(--paper); border-bottom: 2px solid var(--ink); padding: 8px 20px 18px; }
  .nav nav.open { display: flex; }
  .nav nav a:not(.btn) { padding: 14px 0; border-bottom: 1px solid var(--line); }
  .nav nav .btn { margin-top: 14px; }
  .menu-toggle { display: block; }
  .features { grid-template-columns: 1fr; }
  .receipt-stage .shot { width: 150px; }
  .receipt { width: 270px; margin-top: 120px; }
  .demo .buttons { grid-template-columns: 1fr; }
  .switch button { padding: 12px 11px 10px; font-size: 13px; }
  .plan-card { padding: 26px 22px; }
  .phone-pair { height: 430px; }
  .phone-pair .shot { width: 170px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1; transform: none; }
  .hero h1 .hot path { stroke-dashoffset: 0; }
}
.plan-card:not(.single) .btn.solid { background: var(--hazard); color: var(--ink); border-color: var(--hazard); }

/* Rechtstexte (Impressum, Datenschutz, AGB) */
main.legal { width: min(820px, calc(100% - 40px)); margin: 0 auto; padding: 60px 0 100px; }
main.legal h1 { font-size: clamp(44px, 6vw, 72px); margin: 10px 0 30px; }
main.legal h2 { font-size: 24px; margin: 34px 0 10px; }
main.legal p { color: #3a3833; }
main.legal a { color: var(--signal); }
.notice { border: 2.5px dashed var(--signal); border-radius: 10px; padding: 14px 16px; font: 13.5px/1.5 var(--mono); color: #8a2410; background: rgba(255, 61, 31, 0.06); }
