/* ==========================================================================
   Thai-Watch – Stilblatt
   Übernommen aus dem freigegebenen Prototyp 03_Design/Entwurf_A_Plakatwand.html
   (Entscheidung E-5: Typo-Wand eingefroren).

   Unterschiede zum Prototyp – nur technisch, ohne optische Absicht:
   1. Schrift: Impact (Platzhalter, nicht web-lizenziert) → Anton, selbst gehostet;
      Fließtext → Inter, selbst gehostet. Keine Verbindung zu Google Fonts.
   2. Die Wand-Wörter sind Buchstaben-Umrisse (SVG-Pfade, erzeugt aus Anton),
      keine gestreckten Textelemente mehr. Dadurch entfallen tspan-Normalisierung
      und das Laufzeit-Skript zur Bündigkeit; jedes Wort füllt seine Kachel exakt.
   3. Kachel-Innenabstand absolut (3px/4px) statt prozentual – dadurch sind
      THAI/WATCH, EOS/VID und MUNITY/COM bei jeder Fenstergröße exakt bündig.
   ========================================================================== */

@font-face{
  font-family:"Anton";
  src:url("/assets/fonts/anton-latin.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Inter";
  src:url("/assets/fonts/inter-latin.woff2") format("woff2-variations"),
      url("/assets/fonts/inter-latin.woff2") format("woff2");
  font-weight:100 900;font-style:normal;font-display:swap;
}

:root{
  --ink:#111114; --stage:#0E0E10; --paper:#F4F1EA; --tile:#FFFFFF;
  --blue:#232780;
  --red:#EC1B12; --txt:#F4F2EC; --dim:#A8A49B; --wall:372px;
  --display:"Anton","Arial Narrow",Impact,sans-serif;
  --body:"Inter",-apple-system,"Helvetica Neue",Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--stage);color:var(--txt);font-family:var(--body);line-height:1.55;
     font-feature-settings:"kern" 1;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}
img{max-width:100%;}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;}
.skip{position:absolute;left:-9999px;top:0;z-index:99;background:#fff;color:#111;padding:12px 18px;font-weight:700;}
.skip:focus{left:8px;top:8px;}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ================= TYPO-WAND ================= */
.wall{position:fixed;inset:0 auto 0 0;width:var(--wall);background:var(--paper);
      display:grid;gap:7px;padding:7px;z-index:40;
      grid-template-columns:1fr .169fr 1.746fr;
      grid-template-rows:minmax(84px,1.6fr) minmax(64px,1.3fr) minmax(74px,1.5fr)
                         minmax(56px,1.2fr) minmax(74px,1.5fr) minmax(52px,1.1fr) minmax(74px,1.5fr);}
.tile{background:var(--tile);border:2px solid var(--blue);border-radius:10px;display:block;position:relative;
      cursor:pointer;transition:background-color .28s ease,border-color .28s ease;}
/* Buchstaben füllen die Kachel fast randlos; absoluter Innenabstand = exakte
   Bündigkeit zwischen benachbarten Kacheln (THAI/WATCH, EOS/VID, MUNITY/COM) */
.tile svg{position:absolute;left:4px;top:3px;width:calc(100% - 8px);height:calc(100% - 6px);overflow:visible;}
.tile svg path{fill:var(--blue);transition:fill .28s ease;}
.group{display:contents;}
/* Hover UND Auswahl = NEGATIV-Effekt: Kasten blau, Schrift weiß */
.group:hover .tile,.group.active .tile{background:var(--blue);}
.group:hover .tile svg path,.group.active .tile svg path{fill:var(--tile);}
/* Marke: rot (Logofarbe); Hover/Auswahl = rot invertiert */
.brand .tile svg path{fill:var(--red);}
.brand:hover .tile,.brand.active .tile{background:var(--red);border-color:var(--red);}
.brand:hover .tile svg path,.brand.active .tile svg path{fill:#fff;}

/* Platzierung */
.t-thai{grid-column:1;grid-row:1;}
.t-watch{grid-column:2/4;grid-row:1/3;}
.t-util{grid-column:1;grid-row:2;display:grid;grid-template-columns:1.15fr 1fr;gap:7px;}
.t-vid{grid-column:1/3;grid-row:3/5;}
.t-eos{grid-column:3;grid-row:3;}
.t-wis{grid-column:3;grid-row:4;}
.t-com{grid-column:1/3;grid-row:5/7;}
.t-munity{grid-column:3;grid-row:5;}
.t-mit{grid-column:3;grid-row:6;}
.t-machen{grid-column:1/4;grid-row:7;}

/* ==== Verschmelzung der Wortgruppen (keine Fugen im Wort) ==== */
.t-thai{margin-right:-9px;border-right:none;z-index:2;border-radius:10px 0 0 10px;}
.t-watch{border-radius:0 10px 10px 10px;}
.t-eos{margin-left:-9px;border-left:none;z-index:2;border-radius:0 10px 10px 0;}
.t-vid{border-radius:10px 0 10px 10px;}
.t-wis{border-radius:10px;}
.t-munity{margin-left:-9px;border-left:none;z-index:2;border-radius:0 10px 10px 0;}
.t-com{border-radius:10px 0 10px 10px;}
.t-mit{margin-bottom:-9px;border-bottom:none;z-index:2;border-radius:10px 10px 0 0;}
.t-machen{border-radius:10px 0 10px 10px;}

/* Utility-Kacheln (Menü, Suche, 18+) */
.u{background:var(--tile);border:2px solid var(--blue);border-radius:10px;display:flex;align-items:center;
   justify-content:center;position:relative;cursor:pointer;
   transition:background-color .28s ease,color .28s ease,border-color .28s ease;}
.u:hover{background:var(--blue);}
.u:hover .burger i{background:#fff;}
.u:hover .lens{border-color:#fff;}
.u:hover .lens::after{background:#fff;}
.u.age:hover{background:var(--red);color:#fff;}
.u .burger{width:46%;height:38%;position:relative;display:block;}
.u .burger i{position:absolute;left:0;right:0;height:4px;background:var(--blue);border-radius:2px;
             transition:top .28s ease,transform .28s ease,opacity .18s ease,background-color .28s ease;}
.u .burger i:nth-child(1){top:0;}
.u .burger i:nth-child(2){top:calc(50% - 2px);}
.u .burger i:nth-child(3){top:calc(100% - 4px);}
.wall.menuopen .u .burger i:nth-child(1){top:calc(50% - 2px);transform:rotate(45deg);}
.wall.menuopen .u .burger i:nth-child(2){opacity:0;}
.wall.menuopen .u .burger i:nth-child(3){top:calc(50% - 2px);transform:rotate(-45deg);}
.ustack{display:grid;grid-template-rows:1fr 1fr;gap:7px;}
.u .lens{width:auto;height:42%;aspect-ratio:1;border:3.5px solid var(--blue);border-radius:50%;position:relative;
         transition:border-color .28s ease;}
.u .lens::after{content:"";position:absolute;width:46%;height:3.5px;background:var(--blue);bottom:-22%;right:-30%;
                transform:rotate(45deg);border-radius:2px;transition:background-color .28s ease;}
.u.age{color:var(--red);border-color:var(--red);font-weight:400;font-size:clamp(13px,1.2vw,18px);
       font-family:var(--display);letter-spacing:.02em;}

/* ==== Such-Panel: gleiche Mechanik wie das Menü-Panel (Referenzmuster) ==== */
.searchpanel{grid-column:1/4;grid-row:3/8;z-index:7;background:var(--tile);border:2px solid var(--blue);
             border-radius:10px;display:flex;flex-direction:column;padding:24px;
             min-height:0;overflow:auto;
             clip-path:inset(0 0 100% 0 round 10px);visibility:hidden;
             transition:clip-path .38s cubic-bezier(.22,.61,.36,1),visibility 0s linear .38s;}
.wall.searchopen .searchpanel{clip-path:inset(0 0 0 0 round 10px);visibility:visible;transition-delay:0s;}
.stitle{color:var(--blue);font-size:clamp(26px,2.2vw,32px);font-weight:800;letter-spacing:-.01em;line-height:1.2;}
.sform{margin-top:18px;}
.sform input{width:100%;border:2px solid var(--blue);border-radius:8px;background:#fff;color:var(--blue);
             font:inherit;font-size:16px;padding:13px 14px;outline:none;}
.sform input::placeholder{color:#8b8fbb;}
.sform input:focus{box-shadow:0 0 0 3px rgba(35,39,128,.15);}
/* Lupen-Kachel bleibt invertiert, solange die Suche offen ist */
.wall.searchopen .u.search{background:var(--blue);}
.wall.searchopen .u.search .lens{border-color:#fff;}
.wall.searchopen .u.search .lens::after{background:#fff;}

/* ==== Menü-Panel ==== */
.menupanel{grid-column:1/4;grid-row:3/8;z-index:6;background:var(--tile);border:2px solid var(--blue);
           border-radius:10px;display:flex;flex-direction:column;padding:24px 24px 18px;
           min-height:0;overflow:auto;
           clip-path:inset(0 0 100% 0 round 10px);visibility:hidden;
           transition:clip-path .38s cubic-bezier(.22,.61,.36,1),visibility 0s linear .38s;}
.wall.menuopen .menupanel{clip-path:inset(0 0 0 0 round 10px);visibility:visible;transition-delay:0s;}
.mnav,.msub{display:flex;flex-direction:column;flex-shrink:0;}
.mnav a{color:var(--blue);font-size:clamp(21px,1.8vw,25px);font-weight:800;line-height:1.5;letter-spacing:-.01em;}
.msub a{color:var(--blue);font-size:16px;font-weight:700;line-height:1.75;}
.mnav a,.msub a{cursor:pointer;transition:color .45s ease;}
.mnav a:hover,.msub a:hover{color:#767CB0;}
/* Kontrast-Korrektur (WCAG AA für große Schrift): vorher #A9ACC9 = 2,2:1 */
.mnav a.cur{color:#7A7FA8;pointer-events:none;transition:none;}
/* Drei Blöcke im Menü – Navigation, Rechtstexte, Konto –, getrennt allein durch
   denselben Abstand. Keine Linien: die Wand lebt von Flächen, nicht von Rahmen. */
.msub{margin-top:24px;}
.mfoot{margin-top:auto;padding-top:26px;color:#3A3E6E;font-size:13px;line-height:1.6;}
.mfoot strong{color:var(--blue);}
.mbtns{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.mbtn{background:#EDEFF8;border:none;border-radius:6px;padding:9px 14px;font-size:13px;font-weight:600;
      color:var(--blue);cursor:pointer;display:inline-block;}
.mbtn:hover{background:#DDE1F2;}

/* ================= BÜHNE ================= */
.stage{margin-left:var(--wall);min-height:100vh;position:relative;}
.pad{padding:0 44px;max-width:1180px;}
.seal{position:absolute;top:32px;right:44px;width:118px;height:118px;z-index:5;}
.seal img{width:100%;height:100%;display:block;filter:drop-shadow(0 3px 14px rgba(0,0,0,.4));}

/* Bereichskopf */
.secbar{display:flex;justify-content:space-between;align-items:center;padding-top:36px;gap:16px;flex-wrap:wrap;}
.chip{display:inline-block;background:#232327;color:#fff;font-size:13px;font-weight:800;letter-spacing:.16em;
      text-transform:uppercase;padding:10px 16px;border-radius:4px;}
/* Der Chip darf als h1 dienen (Seitenüberschrift), ohne anders auszusehen */
h1.chip{margin:0;line-height:normal;}
.toggle{display:flex;gap:6px;flex-wrap:wrap;}
.tbtn{background:none;border:none;color:#fff;font-size:14px;font-weight:700;padding:9px 16px;border-radius:4px;
      cursor:pointer;display:inline-block;}
.tbtn:hover{background:#22222a;}
.tbtn.on{background:#fff;color:#111;}
/* Serien-Filterleiste: immer EINE Zeile. Passt sie nicht, wird seitlich
   geschoben statt umgebrochen (Vorgabe Josh 30.07.). */
.filterbar{margin-top:18px;flex-wrap:nowrap;overflow-x:auto;gap:4px;
           scrollbar-width:none;-ms-overflow-style:none;}
.filterbar::-webkit-scrollbar{display:none;}
.filterbar .tbtn{flex:none;white-space:nowrap;font-size:13px;padding:8px 12px;}

/* Slider (Startseite)
   Der Kopfblock ist genauso hoch wie die Kopfzeile der Wand (Rasterzeilen 1+2
   inkl. Fugen): 2,9 von 9,7 Anteilen der Höhe (100vh − 14px Rand − 42px Fugen),
   plus 7px Rand und 2 Fugen ⇒ 29,9vh + 4px. Dadurch beginnt die Videoreihe
   exakt an der Oberkante der VIDEOS-Kachel, und die Schlagzeile sitzt mittig
   zur THAI-WATCH-Kachel. */
.slider{padding-top:0;}
/* Die Gesamthöhe bleibt unverändert – sie bindet die Videobahn an die Oberkante
   der VIDEOS-Kachel. Innerhalb davon sitzt die Schlagzeile oben bündig zum
   Siegel und die Videobeschreibung unten direkt über dem Video (Vorgabe Josh). */
.shead{height:max(calc(29.9vh + 4px),206px);position:relative;display:flex;align-items:stretch;}
.shead > .pad:first-child{width:100%;display:flex;flex-direction:column;
      padding-top:32px;      /* = Oberkante des Siegels */
      padding-bottom:14px;   /* 14px = derselbe Abstand wie Pfeile → Video */
      container-type:inline-size;}
/* Pfeile schweben unten rechts im Kopfblock, damit die Schlagzeile exakt auf
   Mitte der Marken-Kachel bleibt (sie sind schmal und liegen weit rechts,
   der Textblock endet spätestens bei 620 px – keine Überdeckung) */
.shead > .arrowrow{position:absolute;left:0;right:0;bottom:14px;}
/* Feste Seitenüberschrift (Schlagzeile).
   Breite = 86 % der Spalte, also exakt die Breite des Videos darunter.
   Die Schriftgröße ist in cqi angegeben (Prozent der Spaltenbreite) und so
   gewählt, dass der Satz genau diese Breite einzeilig füllt – dadurch bleibt
   die Bündigkeit bei jeder Fenstergröße erhalten, ohne Laufzeit-Skript.
   ACHTUNG: Der Wert ist auf die aktuelle Schlagzeile abgestimmt. Wird im
   Dashboard ein deutlich längerer Text gesetzt, muss er nachgezogen werden. */
/* Die Zeile bekommt einen Kasten in exakt der Höhe des Siegels (118px, ab 32px
   von oben) und sitzt darin senkrecht mittig – dadurch liegt die Schriftmitte
   auf der Logomitte, bei jeder Schriftgröße und ohne Nachrechnen. */
.shead-h1{width:86%;white-space:nowrap;font-weight:600;letter-spacing:-.01em;line-height:1.2;
          font-size:clamp(24px,2.5vw,36px);   /* Rückfall für Browser ohne Container-Einheiten */
          font-size:3.58cqi;
          height:118px;display:flex;align-items:center;}
/* Schmale Bühne: Die Videokante liegt bei 86 % der Spalte, das Siegel beginnt
   118px vor deren Ende – rechnerisch überschneiden sich beide, sobald die
   Spalte schmaler als 986px wird (Fenster < 1446px). Dort bricht die
   Schlagzeile deshalb um und endet mit sicherem Abstand vor dem Logo; sie
   bleibt aber senkrecht mittig dazu. */
@media (min-width:961px) and (max-width:1445px){
  .shead-h1{width:100%;max-width:calc(100% - 142px);white-space:normal;
            font-size:clamp(22px,2.1vw,28px);}
}
/* Sehr flache Desktop-Fenster: Für den vollen Siegel-Kasten reicht die Höhe des
   Kopfblocks nicht mehr, ohne dass die Beschreibung ins Video rutschen würde.
   Dort rückt die Schlagzeile nach oben statt mittig. */
@media (min-width:961px) and (max-height:725px){
  .shead-h1{height:auto;display:block;}
  .shead > .pad:first-child{padding-top:24px;}
}
/* Titel des gerade sichtbaren Videos – eine Stufe leiser, wechselt beim Wischen.
   margin-top:auto schiebt Titel und Beschreibung an den unteren Rand. */
.shead-video{font-size:clamp(16px,1.35vw,19px);font-weight:500;line-height:1.35;max-width:620px;
             margin-top:auto;color:#DCD8D0;}
.slider p.copy{max-width:580px;margin:8px 0 0;font-size:15px;color:var(--dim);}
.arrows{display:flex;gap:10px;justify-content:flex-end;margin:0;}
.arrow{width:52px;height:44px;border-radius:10px;background:#fff;border:none;cursor:pointer;display:flex;
       align-items:center;justify-content:center;}
.arrow:hover{background:#d9d9d9;}
.arrow svg{width:18px;height:18px;stroke:#111;stroke-width:2.6;fill:none;}
/* Videobahn: echtes horizontales Scrollen mit Einrasten (Wischen, Trackpad,
   Pfeile, Punkte). Die Rollleiste bleibt unsichtbar, der Anschnitt des
   nächsten Videos zeigt, dass es weitergeht. */
.track{display:flex;gap:18px;overflow-x:auto;overscroll-behavior-x:contain;
       scroll-snap-type:x mandatory;scroll-behavior:smooth;
       scrollbar-width:none;-ms-overflow-style:none;}
.track::-webkit-scrollbar{display:none;}
.track:focus-visible{outline:3px solid var(--red);outline-offset:4px;}
.media{border-radius:4px;overflow:hidden;position:relative;aspect-ratio:16/7.2;flex:0 0 86%;display:flex;
       align-items:center;justify-content:center;background:linear-gradient(135deg,#17171d,#24242c);
       background-size:cover;background-position:center;scroll-snap-align:start;cursor:pointer;}
.media .num{position:absolute;left:26px;bottom:6px;font-family:var(--display);font-size:120px;
            color:rgba(255,255,255,.14);line-height:1;pointer-events:none;}
.media .play{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.95);display:flex;
             align-items:center;justify-content:center;border:none;cursor:pointer;transition:transform .2s ease;}
.media .play::after{content:"";width:0;height:0;border-left:24px solid #111;border-top:15px solid transparent;
                    border-bottom:15px solid transparent;margin-left:6px;}
.media .play:hover{transform:scale(1.06);}
/* .peek entfällt – der Anschnitt entsteht jetzt durch die Scroll-Bahn selbst */
.m1{background:linear-gradient(135deg,#17171d,#24242c);}
.m2{background:linear-gradient(135deg,#1c1c22,#303038);}
.m3{background:linear-gradient(135deg,#141419,#26262e);}
.dashes{display:flex;gap:8px;margin:16px 0 0;}
.dash{width:56px;height:5px;border-radius:3px;background:#3a3a40;border:none;cursor:pointer;padding:0;position:relative;}
/* Unsichtbar vergrößerte Trefferfläche (Touch-Ziel ~44px) */
.dash::before{content:"";position:absolute;inset:-18px 0;}
.dash.on{background:#fff;}
.videometa{margin-top:14px;font-size:13px;color:var(--dim);letter-spacing:.1em;text-transform:uppercase;}

/* Videos-Bereich */
.bigmedia{position:relative;border-radius:4px;overflow:hidden;aspect-ratio:16/7.6;margin-top:28px;display:flex;
          align-items:center;justify-content:center;background:linear-gradient(135deg,#17171d,#24242c);}
/* Abspielknopf, wenn er allein steht (im Slider liegt er als .play in .media) */
.playbtn{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.95);display:flex;
         align-items:center;justify-content:center;transition:transform .2s ease;}
.playbtn::after{content:"";width:0;height:0;border-left:24px solid #111;border-top:15px solid transparent;
                border-bottom:15px solid transparent;margin-left:6px;}
.bigmedia:hover .playbtn{transform:scale(1.06);}
.oarrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:10px;
        background:rgba(255,255,255,.92);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.oarrow.l{left:18px;} .oarrow.r{right:18px;}
.oarrow svg{width:16px;height:16px;stroke:#111;stroke-width:2.6;fill:none;}
.dots{display:flex;gap:8px;justify-content:center;margin-top:16px;}
.dot{width:8px;height:8px;border-radius:50%;background:#4a4a52;border:none;cursor:pointer;padding:0;position:relative;}
.dot::before{content:"";position:absolute;inset:-16px;}
.dot.on{background:#fff;}
.bigtitle{font-size:clamp(21px,1.9vw,27px);font-weight:600;line-height:1.3;margin-top:22px;max-width:680px;}

/* Listen / Karten */
.vlist{border:1px solid #2a2a30;margin-top:34px;}
.vrow{display:flex;gap:18px;padding:18px 20px;border-bottom:1px solid #2a2a30;align-items:center;cursor:pointer;}
.vrow:last-child{border-bottom:none;}
.vrow:hover{background:#17171c;}
.vrow .num{font-family:var(--display);font-size:30px;color:#5a5a62;min-width:40px;}
.vrow h3{font-size:16px;font-weight:600;line-height:1.35;}
.vmeta{font-size:12px;color:var(--dim);letter-spacing:.1em;text-transform:uppercase;margin-top:4px;}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:34px;}
.cards.four{grid-template-columns:repeat(2,1fr);max-width:900px;}
.card{display:flex;flex-direction:column;gap:14px;cursor:pointer;}
.cmedia{aspect-ratio:4/2.9;border-radius:4px;display:flex;align-items:center;justify-content:center;
        position:relative;overflow:hidden;background:#1A1A20;}
.cmedia span{font-family:var(--display);font-size:88px;color:rgba(255,255,255,.92);line-height:1;}
/* Kategoriebild füllt die Kachel; der Verlauf darunter bleibt als Rückfall,
   solange das Bild noch lädt. */
.cmedia img{width:100%;height:100%;object-fit:cover;display:block;}
.pills{display:flex;gap:8px;flex-wrap:wrap;}
.pill{border:1.5px solid #4a4a52;color:#cfccc4;font-size:12.5px;font-weight:600;padding:4px 12px;border-radius:999px;}
.pill.fill{background:#fff;border-color:#fff;color:#111;}
.card h3{font-size:21px;font-weight:700;line-height:1.35;}
.card p{font-size:15px;color:var(--dim);}
.card .stand{font-size:12px;color:#8F8B81;letter-spacing:.08em;text-transform:uppercase;}
.card:hover h3{text-decoration:underline;text-underline-offset:4px;}

/* Weiße Karte + aufgesetzter Button */
/* ---- Beitragsliste der Community (Entwurf B, 02.08.) ----
   Eine Spalte, klare Zeilen, Antwortzahl als Anker. Bewusst dieselbe Bauweise
   wie .vlist im Konto: eine Form weniger in der Website, nicht eine mehr. */
.blist{border:1px solid #26262d;border-radius:8px;overflow:hidden;margin-top:34px;}
.brow{display:flex;gap:22px;align-items:flex-start;padding:20px 22px;
      border-bottom:1px solid #24242a;transition:background-color .18s ease;}
.brow:last-child{border-bottom:none;}
.brow:hover{background:#16161b;}
.brow:hover h3{text-decoration:underline;text-underline-offset:4px;}
.bzahl{flex:none;width:74px;text-align:center;padding-top:6px;}
.bzahl b{display:block;font-size:24px;font-weight:800;line-height:1;color:var(--txt);}
.bzahl.leer b{color:#4f4f57;}
.bzahl span{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#8F8B81;}
.bhaupt{flex:1;min-width:0;}
.bhaupt h3{font-size:19px;font-weight:700;line-height:1.35;margin:8px 0 6px;}
/* Eine Zeile Teaser hält alle Reihen gleich hoch – genau das macht die Liste
   überschaubar. Der Titel trägt die Bedeutung, der Teaser nur den Ton. */
.bhaupt p{font-size:14.5px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bmeta{display:block;font-size:12px;color:#8F8B81;letter-spacing:.08em;text-transform:uppercase;margin-top:10px;}
/* Schreib-Knopf steht über der Liste: Wer schreiben will, soll nicht scrollen. */
.schreibknopf{margin-top:28px;}
/* Blättern */
.blaettern{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:26px;}
.bseite{border:1.5px solid #3a3a42;color:#DCD8D0;font-size:13.5px;font-weight:700;
        padding:8px 14px;border-radius:4px;min-width:42px;text-align:center;
        transition:background-color .18s ease,border-color .18s ease;}
a.bseite:hover{background:#1d1d22;border-color:#6b6b74;}
.bseite.on{background:#fff;border-color:#fff;color:#111;}
.bseite.aus{opacity:.35;}

.cardsec{padding:60px 0 10px;}
/* Beide Kästen wieder deckend weiß (Vorgabe Josh 30.07.) */
.whitecard{position:relative;background:#fff;color:#141414;border-radius:6px;padding:46px 48px 44px;}
.whitecard h2{font-size:clamp(30px,3.6vw,46px);font-weight:700;letter-spacing:-.01em;max-width:calc(100% - 240px);}
.whitecard p{max-width:760px;margin-top:16px;font-size:17.5px;color:#3c3c3c;}
/* Knopf sitzt jetzt IM Kasten – gleicher Abstand nach oben und rechts */
.morebtn{position:absolute;top:38px;right:38px;background:#111;color:#fff;
         font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
         padding:14px 22px;border-radius:4px;display:flex;align-items:center;gap:10px;border:none;cursor:pointer;}
.morebtn:hover{background:#333;}
.morebtn svg{width:14px;height:14px;stroke:#fff;stroke-width:2.6;fill:none;}

.gridsec{padding:78px 0 8px;}
.newssec{padding:84px 0 20px;}
/* minmax(0,…) statt 1.15fr 1fr: sonst sprengt die Eigenbreite des E-Mail-Feldes
   die Karte, sobald die Bühne schmal wird (schmales Desktop-Fenster). */
.newscard{position:relative;background:#fff;color:#141414;border-radius:6px;padding:44px 48px;display:grid;
          grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:36px;align-items:center;}
.newscard h2{font-size:clamp(26px,3.2vw,40px);font-weight:800;letter-spacing:-.01em;}
.newscard p{margin-top:10px;font-weight:500;color:#4c4c4c;}
.nform{display:flex;}
.nform input{flex:1;border:2px solid #111;background:transparent;padding:15px 16px;font:inherit;font-size:15px;
             color:#111;outline:none;border-radius:4px 0 0 4px;min-width:0;}
.nform input::placeholder{color:#8a8a8a;}
.nform button{background:#111;color:#fff;border:2px solid #111;padding:15px 24px;font-weight:800;
              text-transform:uppercase;letter-spacing:.08em;font-size:13px;cursor:pointer;border-radius:0 4px 4px 0;}
.nform button:hover{background:#333;}
.nnote{margin-top:12px;font-size:12.5px;color:#6b6b6b;}

/* Mitmachen */
.formcards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:34px;}
.fcard{border:1px solid #3a3a42;border-radius:6px;padding:28px 26px;display:flex;flex-direction:column;gap:12px;}
.fcard h3{font-size:20px;font-weight:700;}
.fcard p{font-size:14.5px;color:var(--dim);flex:1;}
.fbtn{align-self:flex-start;background:#fff;color:#111;font-size:13px;font-weight:800;letter-spacing:.1em;
      text-transform:uppercase;padding:12px 18px;border-radius:4px;border:none;cursor:pointer;display:inline-block;}
.fbtn:hover{background:#d9d9d9;}
.modnote{margin-top:26px;font-size:13.5px;color:var(--dim);border-left:3px solid #fff;padding-left:14px;}
.modnote a{color:#fff;}
.modnote.fehler{border-left-color:#EC1B12;}
/* Spam-Hinweis: derselbe Bau wie .modnote, aber lesbarer – wer hier landet,
   wartet gerade auf eine Mail und muss den Satz wirklich lesen. */
.mailtipp{margin-top:24px;max-width:620px;font-size:15px;line-height:1.6;color:var(--txt);
          border-left:3px solid var(--red);padding:2px 0 2px 16px;}
.modnote.abstand{margin:18px 0 0;}
.modnote.abstand22{margin-top:22px;}
/* Status der eigenen Beiträge (Konto) */
.status-ok{color:#7BD89B;}
.status-warte{color:#F4D06F;}
.status-nein{color:#FF8A84;}
/* Roter Aktionsknopf; dunkler als das Logorot, damit weiße 13-px-Schrift AA erreicht */
.fbtn.rot{background:#D8140B;color:#fff;}
.fbtn.rot:hover{background:#B01109;}
/* Zweitrangige Handlung: gleiche Form, ruhigere Farbe – damit auf einer Seite
   klar bleibt, was der Hauptweg ist. Innenabstand um die Rahmenstärke
   verringert, damit der Knopf exakt so groß bleibt wie ein gefüllter. */
.fbtn.zweit{background:none;color:#fff;border:1.5px solid #4a4a52;padding:10.5px 16.5px;}
.fbtn.zweit:hover{background:#1d1d22;border-color:#6b6b74;}
/* Markenrot – dasselbe wie in der Wand und im Logo */
.fbtn.markenrot{background:var(--red);color:#fff;}
.fbtn.markenrot:hover{background:#C4160F;}
/* Knöpfe tragen ihre Bedeutung über die Fläche, nicht über einen Strich:
   in .prose würde sonst die allgemeine Link-Unterstreichung greifen. */
.fbtn,.prose a.fbtn{text-decoration:none;}
/* Knopfzeile im Konto */
.ktools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:24px;}
/* Gleiche Größe für das Knopfpaar – die Mindestbreite richtet sich nach dem
   längeren Wort, damit beide als Paar wirken statt als Zufall. */
.ktools .fbtn{line-height:1.15;min-width:172px;text-align:center;}

/* Fließtext-Seiten (Rechtliches, Artikel) */
.prose{padding-top:34px;max-width:760px;}
.prose h1{font-size:clamp(30px,3.6vw,46px);font-weight:700;letter-spacing:-.01em;line-height:1.12;}
.prose h2{font-size:24px;font-weight:700;margin-top:38px;}
.prose h3{font-size:19px;font-weight:700;margin-top:28px;}
.prose p,.prose ul,.prose ol{margin-top:16px;font-size:17px;color:#DCD8D0;}
.prose ul,.prose ol{padding-left:22px;}
.prose li{margin-top:6px;}
.prose a{text-decoration:underline;text-underline-offset:3px;}
.prose .lead{font-size:19px;color:var(--dim);}
.prose table{width:100%;border-collapse:collapse;margin-top:22px;font-size:15.5px;font-variant-numeric:tabular-nums;}
.prose th,.prose td{border-bottom:1px solid #2a2a30;padding:11px 12px;text-align:left;}
.prose th{color:#fff;font-weight:700;}
.stand-note{margin-top:28px;font-size:13px;color:#8F8B81;letter-spacing:.06em;text-transform:uppercase;}
/* Quellenangabe unter Artikeln (Vertrauenssignal bei Visa-, Gesundheits-, Geldthemen) */
.quelle{margin-top:34px;padding-top:18px;border-top:1px solid #2a2a30;font-size:14px;color:var(--dim);line-height:1.6;}
.quelle strong{color:#DCD8D0;}
/* Pfadanzeige */
.krumen{margin-top:22px;font-size:13px;color:var(--dim);display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.krumen a{text-decoration:underline;text-underline-offset:3px;}
.krumen a:hover{color:#fff;}
.krumen span[aria-current]{color:#DCD8D0;}

/* Footer */
footer{padding:90px 0 70px;text-align:center;position:relative;}
/* Wortlogo (Pinselschriftzug) im Footer – ersetzt den gesetzten Schriftzug,
   Höhe entspricht der bisherigen optischen Größe. Es steht etwas tiefer und
   dichter am Text darunter (Abstand halbiert, Vorgabe Josh 30.07.). */
.fwortlogo{display:block;height:32px;width:auto;margin:16px auto 0;}
footer .claim{margin:8px auto 30px;color:var(--dim);font-size:14.5px;max-width:460px;line-height:1.65;}
.flinks{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.flink{border:1.5px solid #4a4a52;border-radius:6px;padding:11px 20px;font-size:14px;font-weight:600;color:#d8d5cd;
       cursor:pointer;background:none;display:inline-block;}
.flink:hover{border-color:#fff;color:#fff;}
.flink.age{border-color:var(--red);color:var(--red);font-weight:800;}
.toplink{position:absolute;right:44px;bottom:60px;width:46px;height:46px;border:1.5px solid #4a4a52;border-radius:6px;
         display:flex;align-items:center;justify-content:center;}
.toplink svg{width:16px;height:16px;stroke:#d8d5cd;stroke-width:2.4;fill:none;}
.fnote{margin-top:34px;font-size:12.5px;color:#8a8579;}

/* ==== Formulare auf der dunklen Bühne (Konto, Community-Schreiben) ==== */
.dform{max-width:640px;margin-top:26px;}
.dform label,.d-label{display:block;font-weight:700;font-size:14.5px;margin:18px 0 7px;color:#fff;}
.dform .d-opt,.d-opt{color:var(--dim);font-weight:500;}
.dform input[type=text],.dform input[type=email],.dform input[type=password],.dform textarea,.dform select{
  width:100%;background:#17171C;border:1.5px solid #3a3a42;border-radius:6px;color:var(--txt);
  font:inherit;font-size:15.5px;padding:12px 14px;outline:none;}
.dform select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A8A49B' stroke-width='2.4'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:18px;padding-right:40px;}
.dform select:focus{border-color:#fff;}
.dform input:focus,.dform textarea:focus{border-color:#fff;}
.dform input::placeholder,.dform textarea::placeholder{color:#6f6c65;}
.dform textarea{min-height:130px;resize:vertical;line-height:1.6;}
.dform .fbtn{margin-top:20px;}
.d-alt{margin-top:18px;font-size:14px;color:var(--dim);}
.d-alt a{text-decoration:underline;text-underline-offset:3px;}
.d-check{display:flex;gap:10px;align-items:flex-start;margin-top:18px;font-size:14px;color:#DCD8D0;font-weight:500!important;}
.d-check input{width:17px;height:17px;margin-top:2px;accent-color:#fff;flex:none;}
.d-radios{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px;}
.d-radio{display:flex;gap:10px;align-items:flex-start;border:1.5px solid #3a3a42;border-radius:6px;
         padding:14px 16px;cursor:pointer;font-weight:500!important;margin:0!important;}
.d-radio small{color:var(--dim);}
.d-radio input{width:16px;height:16px;margin-top:3px;accent-color:#fff;flex:none;}
.d-radio:has(input:checked){border-color:#fff;background:#17171C;}
.d-tags{display:flex;gap:8px;flex-wrap:wrap;}
.d-tag{cursor:pointer;}
.d-tag input{position:absolute;opacity:0;pointer-events:none;}
.d-tag span{display:inline-block;border:1.5px solid #4a4a52;color:#cfccc4;font-size:13px;font-weight:600;
            padding:7px 14px;border-radius:999px;transition:all .15s ease;}
.d-tag:has(input:checked) span{background:#fff;border-color:#fff;color:#111;}
.d-tag input:focus-visible+span{outline:3px solid var(--red);outline-offset:2px;}

/* Honigtopf: für Menschen unsichtbar, für Bots ein normales Feld */
.hpx{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}

/* Distanzierungshinweis unter fremden Beiträgen (Haftung für Nutzerinhalte) */
.fremdnote{margin-top:22px;max-width:760px;font-size:13px;color:#7f7c74;line-height:1.6;}
/* Melde-Link nach Art. 16 DSA: erreichbar, aber optisch zurückhaltend */
.meldelink{color:var(--dim);text-decoration:underline;text-underline-offset:3px;white-space:nowrap;}
.meldelink:hover{color:#fff;}
.k-meta .meldelink{margin-left:8px;font-size:12.5px;}

/* Kommentare / Antworten */
.kommentar{border-left:3px solid #3a3a42;padding:2px 0 2px 16px;margin-top:24px;}
.kommentar .k-meta{font-size:13px;color:var(--dim);}
.kommentar .k-meta strong{color:#fff;}
.kommentar .k-body{margin-top:6px;font-size:15.5px;color:#DCD8D0;line-height:1.6;}

/* 18+-Hinweis (einmalige Selbstbestätigung, ohne Cookie) */
.agegate{position:fixed;inset:0;z-index:90;background:rgba(8,8,10,.94);display:flex;align-items:center;
         justify-content:center;padding:24px;}
.agegate[hidden]{display:none;}
.agebox{background:#fff;color:#141414;border-radius:8px;max-width:460px;padding:36px 34px;text-align:center;}
/* Wortlogo im 18+-Fenster: etwas größer als im Footer, es ist hier das erste,
   was man sieht. Höhe statt Breite gesteuert – die Grafik ist sehr breit. */
.agelogo{display:block;height:40px;width:auto;margin:0 auto 4px;}
.agebox h2{font-size:24px;font-weight:800;margin-top:14px;}
.agebox p{margin-top:12px;font-size:15.5px;color:#3c3c3c;}
.agebtns{display:flex;gap:10px;justify-content:center;margin-top:22px;flex-wrap:wrap;}
.agebtns .fbtn{background:#111;color:#fff;}
.agebtns .fbtn:hover{background:#333;}
.agebtns .flink{border-color:#bbb;color:#444;}
/* Pflichtlinks im 18+-Fenster: unaufdringlich, aber immer erreichbar */
.agelaw{margin-top:20px;font-size:13px;color:#6b6b6b;}
.agelaw a{color:#3c3c3c;text-decoration:underline;text-underline-offset:3px;}
.agelaw a:hover{color:#111;}

/* ==== Schmales Desktop-Fenster (Wand fix, Bühne eng): Zwischenstufe ==== */
@media (min-width:961px) and (max-width:1250px){
  .cards,.formcards{grid-template-columns:repeat(2,1fr);}
  /* Knopf über dem Text statt neben der Überschrift (wie mobil) */
  .whitecard{padding-top:96px;}
  .whitecard h2{max-width:100%;}
  .morebtn{top:22px;right:22px;}
}
/* Platz fürs Siegel muss der Kopfblock nicht mehr reservieren: die Schlagzeile
   endet bei 86 % der Spalte (= Videokante) und damit vor dem Logo, die
   Beschreibung sitzt unten am Video. */
/* Sehr niedrige Desktop-Fenster: Wand scrollbar statt abgeschnitten
   (Mindesthöhe des Rasters ist ~534px, MITMACHEN wäre sonst unerreichbar). */
@media (min-width:961px) and (max-height:560px){
  .wall{overflow-y:auto;}
}
/* Rückmeldung beim Drücken */
.arrow:active,.fbtn:active,.morebtn:active{transform:translateY(1px);}
.oarrow:active{transform:translateY(calc(-50% + 1px));}

/* ================= MOBIL ================= */
@media (max-width:960px){
  .wall{position:sticky;top:0;width:auto;height:auto;padding:7px;
        grid-template-columns:1fr .169fr 1.746fr;
        grid-template-rows:minmax(58px,64px) minmax(48px,54px) minmax(64px,74px)
                           minmax(48px,54px) minmax(64px,74px) minmax(44px,50px) minmax(58px,64px);}
  .stage{margin-left:0;}
  .pad{padding:0 20px;}
  .seal{display:none;}
  .media{flex:0 0 92%;}   /* Handy: ein Video pro Blick, Rest zeigt an, dass es weitergeht */

  .media .num{font-size:74px;left:16px;}
  .whitecard,.newscard{padding:34px 24px;}
  /* minmax(0,1fr) statt 1fr: sonst sprengt die intrinsische Breite des
     E-Mail-Feldes die Newsletter-Karte bei sehr schmalen Fenstern */
  .newscard,.cards,.cards.four,.formcards{grid-template-columns:minmax(0,1fr);}
  /* Auf dem Handy sitzt der Knopf über dem Text, Abstände zum kleineren
     Innenrand (24px) passend verkleinert */
  .whitecard{padding-top:96px;}
  .whitecard h2{max-width:100%;}
  .morebtn{top:22px;right:22px;}
  .toplink{display:none;}
  .mnav a,.msub a{font-size:19px;}
  .u .lens{min-height:15px;border-width:3px;}
  .u .lens::after{height:3px;}
  .slider{padding-top:32px;}
  /* Mobil steht die Wand über der Bühne – die Höhenbindung des Kopfblocks
     (Ausrichtung an der VIDEOS-Kachel) gilt nur am Rechner. Ebenso die
     einzeilige Schlagzeile in Videobreite: hier darf sie umbrechen. */
  .shead{height:auto;display:block;}
  .shead > .pad:first-child{display:block;padding-top:0;padding-bottom:0;}
  .shead-h1{width:100%;white-space:normal;font-size:clamp(24px,4.6vw,32px);
            height:auto;display:block;}
  .shead > .arrowrow{position:static;margin-top:18px;}
  .cardsec,.gridsec,.newssec{padding-top:56px;}

  /* Unterseiten: nur die Kopfzeile der Wand bleibt oben stehen, die Wortkacheln
     klappen über den Burger auf. Auf der Startseite bleibt die volle Plakatwand
     als Auftakt erhalten. */
  /* body.shrunk = Startseite nach dem ersten Scrollen: dieselbe Kopfzeile wie
     auf den Unterseiten. Die volle Wand ist der Auftakt, nicht der Dauerzustand –
     sonst nimmt sie beim Lesen den halben Bildschirm. Gesetzt von site.js.

     Der Übergang läuft in zwei Zügen, sonst springt es: erst verblassen die
     Wortkacheln (.wandfade), dann fährt die Wand auf die Kopfzeilenhöhe
     zusammen. Die Höhe animiert site.js über einen gesetzten Pixelwert – aus
     „auto“ heraus lässt sich nicht überblenden. */
  .wall{transition:height .32s cubic-bezier(.4,0,.2,1);}
  body.wandfade .t-vid,body.wandfade .t-eos,body.wandfade .t-wis,
  body.wandfade .t-com,body.wandfade .t-munity,body.wandfade .t-mit,
  body.wandfade .t-machen{opacity:0;}
  .t-vid,.t-eos,.t-wis,.t-com,.t-munity,.t-mit,.t-machen{
    transition:background-color .28s ease,border-color .28s ease,opacity .19s ease;}

  body.sub .wall,body.shrunk .wall{grid-template-rows:minmax(58px,64px) minmax(48px,54px);}
  body.sub .t-vid,body.sub .t-eos,body.sub .t-wis,
  body.sub .t-com,body.sub .t-munity,body.sub .t-mit,body.sub .t-machen,
  body.shrunk .t-vid,body.shrunk .t-eos,body.shrunk .t-wis,
  body.shrunk .t-com,body.shrunk .t-munity,body.shrunk .t-mit,body.shrunk .t-machen{display:none;}
  body.sub .menupanel,body.sub .searchpanel,
  body.shrunk .menupanel,body.shrunk .searchpanel{position:absolute;top:calc(100% - 7px);left:7px;right:7px;grid-area:auto;
                      max-height:min(70dvh,540px);}

  /* Beitragsliste: engere Ränder, schmalere Zahlenspalte */
  .brow{gap:14px;padding:16px 14px;}
  .bzahl{width:52px;padding-top:4px;}
  .bzahl b{font-size:20px;}
  .bhaupt h3{font-size:17.5px;}
}
@media (max-width:520px){
  .wall{grid-template-columns:1fr .169fr 1.5fr;}
  /* Am Handy kostet die Zahlenspalte Breite, ohne etwas zu sagen: Die
     Antwortzahl steht ohnehin in der Meta-Zeile darunter. */
  .bzahl{display:none;}
  .brow{gap:0;padding:16px 16px;}
  .shead-video{font-size:16px;}
  .prose p,.prose ul,.prose ol{font-size:16.5px;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.001s!important;animation-duration:.001s!important;}
  html{scroll-behavior:auto;}
}

/* Druck: Wand und Bedienelemente weglassen */
@media print{
  .wall,.agegate,footer .flinks,.toplink{display:none!important;}
  .stage{margin:0;}
  body{background:#fff;color:#000;}
}
