/* #gc-ai-content-css */

.gc-ai-badge{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
	font:700 11px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	letter-spacing:.04em;color:#fff;background:#7c3aed;border-radius:6px;padding:3px 6px;
	text-transform:uppercase;vertical-align:middle;white-space:nowrap;}
/* Clip card: pair the chip with the bottom-right duration badge (ManyVids order: AI then time). */
.gc-clip-card__media .gc-ai-badge--card{position:absolute;bottom:0;right:0;z-index:3;}
.gc-ai-badge--profile{font-size:12px;padding:3px 7px;margin-left:8px;}
.gc-ai-badge--page{font-size:13px;padding:4px 8px;margin-left:10px;}
.gc-ai-badge--feed{font-size:10px;padding:2px 6px;}
/* Duration+AI pairing wrapper (added on cards where we control markup). */
.gc-clip-card__br-badges{position:absolute;bottom:0;right:0;z-index:3;display:flex;gap:6px;align-items:flex-end;}
.gc-clip-card__br-badges .gc-clip-card__duration-badge,
.gc-clip-card__br-badges .gc-ai-badge--card{position:static;bottom:auto;right:auto;}
.gc-clip-card__br-badges .gc-ai-badge--card{margin-bottom:2px;}
/* Creator my-profile toggle card + per-clip fieldset. */
.gc-ai-flag-card{margin:18px 0;padding:16px 18px;border:1px solid #2a2f3a;border-radius:12px;background:#151a24;}
.gc-ai-flag-card h3{margin:0 0 6px;font-size:15px;color:#e9ecf3;}
.gc-ai-flag-card p{margin:0 0 12px;font-size:13px;color:#aab3c5;}
.gc-ai-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;color:#e9ecf3;}
.gc-ai-switch input{width:18px;height:18px;accent-color:#7c3aed;}
.gc-ai-flag-card[data-locked="1"]{opacity:.85;}
.gc-ai-flag-card .gc-ai-lock-note{color:#f0b429;font-size:12px;margin-top:8px;}
.gc-ai-clip-field{margin:12px 0;}
.gc-ai-clip-field>label{display:block;font-weight:600;margin-bottom:6px;}
.gc-ai-clip-field .gc-ai-clip-opts{display:flex;gap:16px;flex-wrap:wrap;}
.gc-ai-clip-field .gc-ai-clip-opts label{display:inline-flex;align-items:center;gap:6px;font-weight:400;}

/* #gc-mbadge-css */
.gc-clip-card__badges .gc-mbadge{display:inline-block;align-self:flex-start;font-size:10.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:3px 7px;border-radius:6px;line-height:1.15;color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.35);margin:0 6px 6px 0}.gc-clip-card__badges .gc-mbadge--new{background:#1b7a42}.gc-clip-card__badges .gc-mbadge--free{background:#2b6cb0}.gc-clip-card__badges .gc-mbadge--bestseller{background:#caa23a;color:#161a22}.gc-clip-card__badges .gc-mbadge--trending{background:#bf4a2f}
/* #gc-clipv-css */
.gc-clipv-strip__row{display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px 2px 14px;scrollbar-width:thin;}.gc-clipv-strip__row>.gc-clip-card{flex:0 0 244px;max-width:244px;scroll-snap-align:start;}.gc-clipv-strip__row::-webkit-scrollbar{height:8px;}.gc-clipv-strip__row::-webkit-scrollbar-thumb{background:var(--gc-border,#334155);border-radius:8px;}.gc-clipv-strip__more{color:var(--gc-text,#eef2f8);text-decoration:underline;text-underline-offset:2px;font-weight:700;white-space:nowrap;}@media(max-width:600px){.gc-clipv-strip__row>.gc-clip-card{flex-basis:72vw;max-width:72vw;}}
/* #gc-media-fit */

/* gc_media_fit_utility_v1 */
.gc-media-fit-on .gc-media-fit { position: relative; overflow: hidden; }

.gc-media-fit-on .gc-media-fit.is-portrait::before,
.gc-media-fit-on .gc-media-fit.is-square::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--gc-fit-bg, none);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	/* Dark enough that white overlay text keeps the contrast it was designed for,
	   whatever the clip's own brightness is. Measured per fixture, not eyeballed. */
	filter: blur(30px) brightness(.40) saturate(1.05);
	transform: scale(1.18);
	z-index: 0;
}

.gc-media-fit-on .gc-media-fit.is-portrait > img,
.gc-media-fit-on .gc-media-fit.is-portrait > video,
.gc-media-fit-on .gc-media-fit.is-square > img,
.gc-media-fit-on .gc-media-fit.is-square > video {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* Fixed pixel boxes (64x36, 80x45, 44x44, 54x72, 72x96, fixed heights) get contain on the
   brand dark only -- a 30px blur behind a 44px thumbnail is pure GPU cost for no legibility. */
.gc-media-fit-on .gc-media-fit--flat.is-portrait::before,
.gc-media-fit-on .gc-media-fit--flat.is-square::before { display: none; }
.gc-media-fit-on .gc-media-fit--flat.is-portrait,
.gc-media-fit-on .gc-media-fit--flat.is-square { background-color: var(--gc-deep, #0b1220); }

/* gc_media_watch_fit_v1 -- the clip WATCH player.
   The theme pins .gc-clip-watch-player__media to aspect-ratio:16/9 with
   object-fit:cover, so a 1080x1920 trailer is scaled to the box WIDTH and
   ~69% of the frame is cropped away above and below. Portrait/square media
   gets a height-capped box instead; the shared contain + ::before rules above
   then do the rest, so the watch page looks like the cards rather than like a
   second, separate treatment.
   Height, not aspect-ratio: a 9/16 box at panel width would be ~1400px tall on
   desktop and push the title and buybox entirely below the fold. */
/* gc_watch_player_height_65vh_v1 -- 65vh, not 78vh, and the reason is measured:
   at 78vh the player is 702px on a 1440x900 desktop and "Add to cart" lands at y=977,
   i.e. 77px BELOW the fold, so the only buying path needs a scroll. At 65vh the player
   is 585px and the button sits at y=860, visible on load. The landscape control on the
   same page renders at 586px and never had the problem, which is what pins the cause to
   the player height rather than to the page. The film stays fully visible either way --
   this trades 117px of picture for the buy button. */
.gc-media-fit-on .gc-clip-watch-player__media.gc-media-fit.is-portrait,
.gc-media-fit-on .gc-clip-watch-player__media.gc-media-fit.is-square {
	aspect-ratio: auto;
	height: min(65vh, 760px);
}

/* The video must be SIZED to its own shape, not stretched to the box with
   object-fit:contain. Measured on staging 2026-08-07: with width:100% +
   contain, a PLAYING <video> paints its letterbox bars opaque black in
   Chromium, so the ::before backdrop was painted and then completely hidden --
   the walk screenshot showed black bars where the blurred fill belonged.
   Giving the element `height:100%; width:auto` makes its box the video's own
   aspect ratio, so there are no bars inside it and the backdrop is visible on
   both sides. Does not depend on how a browser chooses to paint letterboxing. */
.gc-media-fit-on .gc-clip-watch-player__media.gc-media-fit.is-portrait > video,
.gc-media-fit-on .gc-clip-watch-player__media.gc-media-fit.is-square > video,
.gc-media-fit-on .gc-clip-watch-player__media.gc-media-fit.is-portrait > img,
.gc-media-fit-on .gc-clip-watch-player__media.gc-media-fit.is-square > img {
	width: auto;
	max-width: 100%;
	height: 100%;
	margin-inline: auto;
	background: transparent;
}

/* The no-preview branch nests its poster one level deeper than the shared
   direct-child rule reaches, so it would keep cropping. */
.gc-media-fit-on .gc-clip-watch-player__media.gc-media-fit.is-portrait .gc-clip-watch-player__noteaser,
.gc-media-fit-on .gc-clip-watch-player__media.gc-media-fit.is-square .gc-clip-watch-player__noteaser {
	height: 100%;
}
.gc-media-fit-on .gc-clip-watch-player__media.gc-media-fit.is-portrait .gc-clip-watch-player__noteaser > img,
.gc-media-fit-on .gc-clip-watch-player__media.gc-media-fit.is-square .gc-clip-watch-player__noteaser > img {
	position: relative;
	z-index: 1;
	height: 100%;
	object-fit: contain;
}

@media (max-width: 782px) {
	.gc-media-fit-on .gc-clip-watch-player__media.gc-media-fit.is-portrait,
	.gc-media-fit-on .gc-clip-watch-player__media.gc-media-fit.is-square {
		height: min(72vh, 640px);
	}
}

/* gc_media_feed_timeline_fit_v1 -- storefront feed (/store/<slug>/#feed).
   The base rule pins every timeline media box to `aspect-ratio:16/9 !important` and the
   video carries an INLINE object-fit:cover, so a 608x1081 post showed 31.6 % of itself.
   Both are overridden here: !important plus higher specificity for the box, and a CSS
   !important for the inline object-fit.
   The box takes the MEDIA's own ratio, so on a phone (card ~305px wide) the post is
   edge to edge with no bars. max-height keeps a desktop card from becoming 1575px tall;
   where the cap bites, the ratio yields and the blurred fill covers the sides. */
.gc-media-fit-on .gc-feed-timeline-item__media.gc-media-fit.is-portrait,
.gc-media-fit-on .gc-feed-timeline-item__media.gc-media-fit.is-square {
	aspect-ratio: var(--gc-fit-ar, 9 / 16) !important;
	max-height: 640px;
	/* gc_media_feed_timeline_blur_v2 -- NOT #000: the ::before fill should be what shows
	   beside a portrait video. The brand dark only appears when there is no fill image. */
	background: var(--gc-deep, #0b1220);
}

/* gc_media_feed_timeline_blur_v2 -- size the media to its OWN shape.
   Measured before this change: box 886x640 and medium 886x640, i.e. the element spanned
   the whole box. object-fit:contain scales the picture but the ELEMENT still covers the
   full area and paints its letterbox opaque, so the blurred ::before underneath was
   invisible and the sides read as black. Giving the element its own width lets the fill
   through. Same mechanism as the watch player -- a letterbox is painted by the element,
   not by the box. */
.gc-media-fit-on .gc-feed-timeline-item__media.gc-media-fit.is-portrait > video,
.gc-media-fit-on .gc-feed-timeline-item__media.gc-media-fit.is-portrait > img,
.gc-media-fit-on .gc-feed-timeline-item__media.gc-media-fit.is-square > video,
.gc-media-fit-on .gc-feed-timeline-item__media.gc-media-fit.is-square > img {
	object-fit: contain !important;
	position: relative;
	z-index: 1;
	height: 100% !important;
	width: auto !important;
	max-width: 100%;
	margin-inline: auto;
	display: block;
	background: transparent;
}

/* gc_media_feed_modal_fit_v2 -- full-post modal in the storefront feed.
   The box KEEPS its height; only the media may be smaller than it. v1 let the box take its
   height from the content, and when the script swapped the poster for a
   <video preload="none"> the box collapsed to 0px and stayed there -- the player looked
   closed. Measured: 40 samples at 0px while the video was already decoding.
   A portrait video is now fully visible and centred, with the box's dark surface beside
   it. Nothing here depends on a size that has not loaded yet. */
.gc-media-fit-on .gc-feed-full__clip {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #000;
}
.gc-media-fit-on .gc-feed-full__clip > img,
.gc-media-fit-on .gc-feed-full__clip .gc-feed-full__clip-poster,
.gc-media-fit-on .gc-feed-full__clip .gc-feed-full__clip-video,
.gc-media-fit-on .gc-feed-full__clip > video {
	width: auto !important;
	max-width: 100%;
	height: 100% !important;
	object-fit: contain !important;
	display: block;
	margin-inline: auto;
}

/* gc_media_feed_lock_and_fill_v3 (1) -- das Schloss gehoert MITTIG UEBER das Medium.
   Es hat position:static; das display:flex des Modal-Fixes machte daraus ein Flex-Element
   NEBEN dem Video, das rechts aus der Box lief (gemessen: rechte Kante 931, Boxrand 918).
   Absolut positioniert nimmt es am Flex-Fluss nicht mehr teil und kann nicht mehr
   abgeschnitten werden -- unabhaengig davon, wie breit die Box gerade ist. */
.gc-media-fit-on .gc-feed-full__clip { position: relative; }
.gc-media-fit-on .gc-feed-full__clip .gc-feed-full__lock-icon,
.gc-media-fit-on .gc-feed-timeline-item__media .gc-feed-timeline-item__lock-icon {
	position: absolute !important;
	left: 50% !important;
	top: 50% !important;
	transform: translate(-50%, -50%) !important;
	margin: 0 !important;
	z-index: 3;
	pointer-events: none;
}

/* gc_media_feed_lock_and_fill_v3 (2) -- Fuellung fuer GROSSE Flaechen.
   Dieselben Filterwerte, die auf der 318x198-Clipkarte Struktur uebrig lassen, ergeben
   auf der rund 9x groesseren Feedbox eine graue Flaeche: `cover` skaliert das Hochkant-
   poster dort viel staerker hoch und blur(30px) buegelt den Rest platt. Also fuer diese
   eine Flaeche weicher zeichnen, weniger abdunkeln, weniger zoomen -- damit der Rand so
   aussieht wie auf den Clipkarten im Store. Die Clipkarten selbst bleiben unberuehrt. */
.gc-media-fit-on .gc-feed-timeline-item__media.gc-media-fit.is-portrait::before,
.gc-media-fit-on .gc-feed-timeline-item__media.gc-media-fit.is-square::before {
	filter: blur(12px) brightness(.62) saturate(1.15);
	transform: scale(1.05);
}

@media (prefers-reduced-motion: reduce) {
	.gc-media-fit-on .gc-media-fit.is-portrait::before,
	.gc-media-fit-on .gc-media-fit.is-square::before { transform: none; }
}

/* #gc-media-badges */

/* gc_media_quality_badges_v1 -- drawn in the site's own language, deliberately NOT the
   licensed Full HD / Ultra HD certification marks (those certify displays, not files). */
.gc-qbadge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1.5;
	white-space: nowrap;
	vertical-align: middle;
}

/* Dark ink on a warm metallic fill. Chosen for contrast, not for looks alone:
   #16100a on #e3ad33 measures ~8.6:1, far above the 4.5 body gate, and stays legible
   in both colour schemes because both stops are fixed rather than themed. */
.gc-qbadge--uhd {
	background: linear-gradient(135deg, #e3ad33, #f0c766);
	color: #16100a;
	border: 1px solid rgba(0, 0, 0, .18);
}
.gc-qbadge--uhd .gc-qbadge__sub {
	background: #16100a;
	color: #f3d089;
	border-radius: 999px;
	padding: 1px 6px;
	font-size: 11px;
	letter-spacing: .04em;
}

/* The common case is deliberately quieter than UHD -- 387 of 403 clips are Full HD,
   so shouting it would flatten the distinction the badge exists to draw. */
.gc-qbadge--fhd,
.gc-qbadge--hd,
.gc-qbadge--vertical {
	background: rgba(255, 255, 255, .06);
	color: #eef1f5;
	border: 1px solid rgba(255, 255, 255, .28);
}
.gc-qbadge__glyph { width: 9px; height: 14px; flex: 0 0 auto; }

/* Light scheme: the translucent white fill would sit on a light panel and collapse
   to ~1.2:1, so both the fill and the ink are restated rather than inherited.
   Selector verified against the codebase, not assumed: the theme switches on
   html[data-theme="light"] (guyscat-theme.js:3634 and every gc-*-contrast mu-plugin).
   A body-class guess would have shipped as dead CSS. */
html[data-theme="light"] .gc-qbadge--fhd,
html[data-theme="light"] .gc-qbadge--hd,
html[data-theme="light"] .gc-qbadge--vertical {
	background: rgba(0, 0, 0, .05);
	color: #1e242c;
	border-color: rgba(0, 0, 0, .30);
}

/* #gc-vr-badge-css */
.gc-mbadge--vr{background:#ff6a00;color:#1a0b00;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:999px;font-size:12px;line-height:1.5;pointer-events:auto;box-shadow:0 1px 3px rgba(0,0,0,.35)}.gc-clip-card__badges .gc-mbadge.gc-mbadge--vr{color:#1a0b00;-webkit-text-fill-color:#1a0b00}.gc-clip-card__badges .gc-mbadge.gc-mbadge--vrres{color:#111827;-webkit-text-fill-color:#111827}.gc-mbadge--vrres{background:#ffd166;color:#111827;font-weight:800;letter-spacing:.04em;padding:3px 9px;border-radius:999px;font-size:12px;line-height:1.5;pointer-events:auto;box-shadow:0 1px 3px rgba(0,0,0,.35)}.gc-qbadge.gc-qbadge--vr{background:#2dd4bf;color:#04211d;padding:7px 14px;font-size:13px;gap:8px;min-height:32px;box-shadow:0 1px 3px rgba(0,0,0,.28)}.gc-qbadge--vr .gc-qbadge__glyph--wide{width:22px;height:14px;flex:0 0 auto}.gc-qbadge--vr .gc-qbadge__label{letter-spacing:.06em}@media (max-width:600px){.gc-qbadge.gc-qbadge--vr{padding:8px 13px;min-height:36px}}
/* #gc-storerank-badge-contrast */
.gc-store-rank-row__count-badge{color:#3a2233}.gc-store-rank-row__rank{color:#3a2233}
/* #gc-fe23-hover-kontrast */
html[data-theme="light"] .gc-clip-card__title a:hover,html[data-theme="light"] .gc-clip-card__title a:focus-visible{color:#94591a}
/* #gc-kbvr-css */

/* gc_kb_vr_layout_v1c — brand palette, light + dark */
body.gc-kbvr{--kv-ac:var(--gc-accent,#2dd4bf);--kv-ac-rgb:var(--gc-accent-rgb,45,212,191);--kv-ac-ink:#0b0f14;
  --kv-ac-text:color-mix(in srgb,var(--kv-ac) 62%,#fff);--kv-card:var(--gc-surface-solid,#0b1730);--kv-card2:var(--gc-surface-2-solid,#111e3a);
  --kv-line:var(--gc-border-solid,#1d2a44);--kv-ink:var(--gc-text,#edf4ff);--kv-dim:var(--gc-text-soft,#9dafcf);--kv-strong:var(--gc-text-strong,#fff)}
html[data-theme="light"] body.gc-kbvr{--kv-card:#fff;--kv-card2:#fff;--kv-strong:var(--gc-text,#1a1a1a);--kv-ac-text:color-mix(in srgb,var(--kv-ac) 48%,#000)}   /* v1c2: hell — Akzenttext (Kapitelnummern, Kicker) auf Weiss war 4,22:1 (lewdden-Walk 03.10.), jetzt dunkler gemischt */
/* head */
body.gc-kbvr .gc-kb-article > h1{font-size:clamp(30px,3.6vw,46px);line-height:1.05;letter-spacing:-.03em;font-weight:850;color:var(--kv-strong);margin-bottom:10px}
body.gc-kbvr .gc-kb-article > h1::before{content:attr(data-kbvr-kicker);display:table;align-items:center;gap:8px;margin:0 0 12px;padding:6px 13px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--kv-ac-text);background:rgba(var(--kv-ac-rgb),.12);border:1px solid rgba(var(--kv-ac-rgb),.45)}
body.gc-kbvr .gc-kb-article__body{font-size:16px;line-height:1.65;color:var(--kv-ink)}
body.gc-kbvr .gc-kb-article__body > p.gc-kb-lede{font-size:17.5px;padding:18px 22px;border-radius:16px;border:1px solid rgba(var(--kv-ac-rgb),.4);background:linear-gradient(140deg,rgba(var(--kv-ac-rgb),.12),transparent 70%),var(--kv-card);color:var(--kv-strong)}
body.gc-kbvr .gc-kb-article__body > hr{display:none}
/* gc_kb_vr_layout_v1c — eigene KB-Kategorie „VR“ (/help/category/vr/): Headset-Symbol statt Buch (icon_svg kennt nur Schlüsselwörter) */
.gc-kb-card--cat[href*="/help/category/vr/"] .gc-kb-cat__ico svg{display:none}
.gc-kb-card--cat[href*="/help/category/vr/"] .gc-kb-cat__ico::before{content:'';display:block;width:24px;height:24px;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><rect x='2.5' y='7' width='19' height='10' rx='3'/><path d='M8.5 17v1.5a1.5 1.5 0 0 0 3 0V17M12.5 17v1.5a1.5 1.5 0 0 0 3 0V17'/><circle cx='8' cy='12' r='1.6'/><circle cx='16' cy='12' r='1.6'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><rect x='2.5' y='7' width='19' height='10' rx='3'/><path d='M8.5 17v1.5a1.5 1.5 0 0 0 3 0V17M12.5 17v1.5a1.5 1.5 0 0 0 3 0V17'/><circle cx='8' cy='12' r='1.6'/><circle cx='16' cy='12' r='1.6'/></svg>") center/contain no-repeat}
.kbvr-howto{display:flex;align-items:center;gap:14px;margin:0 0 18px;padding:14px 18px;border-radius:16px;border:1px solid rgba(var(--kv-ac-rgb),.5);background:linear-gradient(135deg,rgba(var(--kv-ac-rgb),.16),transparent 70%),var(--kv-card);color:var(--kv-strong);text-decoration:none}
.kbvr-howto:hover{border-color:rgba(var(--kv-ac-rgb),.9)}
.kbvr-howto__ico{flex:0 0 40px;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--kv-ac-rgb),.2);color:var(--kv-ac-text);font-size:16px}
.kbvr-howto__t{display:flex;flex-direction:column;gap:2px;min-width:0}.kbvr-howto__t strong{font-size:15.5px;font-weight:800}.kbvr-howto__t > span{font-size:13.5px;color:var(--kv-ink)}
.kbvr-howto__go{margin-left:auto;font-size:20px;color:var(--kv-ac-text)}
/* chapter bar */
.kbvr-bar{position:sticky;top:0;z-index:5;margin:14px 0 22px;padding:8px 0;background:color-mix(in srgb,var(--gc-bg,#07111f) 88%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--kv-line);border-bottom:1px solid var(--kv-line)}
.kbvr-bar__in{display:flex;flex-wrap:wrap;gap:6px}
.kbvr-bar.is-hoch{position:relative;top:auto}
html[data-theme="light"] body.gc-kbvr .gc-kb-article__body .kbvr-bar a:not(.gc-kb-btn):not(.gc-kb-card){color:var(--kv-strong)!important;-webkit-text-fill-color:var(--kv-strong)!important}
html[data-theme="light"] body.gc-kbvr .gc-kb-article__body .kbvr-bar a:not(.gc-kb-btn):not(.gc-kb-card) .kbvr-bar__n{-webkit-text-fill-color:var(--kv-ac-text)!important}   /* das KB-Basis-CSS setzt im Hellmodus -webkit-text-fill-color pink — computed color war schon dunkel, die Pixel nicht */   /* v1c2: hell — das Theme faerbt <a> pink (200,30,106) auf rosa Tint = 4,22:1 (lewdden-Walk 03.10.); dunkle Schrift, Tint bleibt */   /* v1c: ab drei Zeilen (14 Kapitel) nicht mehr kleben — eine klebende 5-Zeilen-Leiste frisst den Bildschirm */   /* gc_kb_vr_layout_v1c (03.10.): Desktop umbrechen statt abschneiden (Dominik: Pille 4 abgeschnitten) */
@media (max-width:640px){.kbvr-bar{position:relative}.kbvr-bar__in{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;padding-right:28px}   /* v1c2: kein Kantenverlauf — der dimmte die letzte sichtbare Pille unter 4,5:1 (S26-Walk 03.10.); der ›-Hinweis bleibt */.kbvr-bar__in::-webkit-scrollbar{display:none}.kbvr-bar a{scroll-snap-align:start}.kbvr-bar::after{content:'›';position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:20px;line-height:1;color:var(--kv-ac-text);pointer-events:none}.kbvr-bar.is-ende::after{display:none}}
.kbvr-bar a{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:7px 12px;border-radius:999px;color:var(--kv-ink);text-decoration:none;font-size:13.5px;font-weight:700;border:1px solid transparent}
.kbvr-bar a:hover,.kbvr-bar a.is-on{background:rgba(var(--kv-ac-rgb),.14);border-color:rgba(var(--kv-ac-rgb),.45);color:var(--kv-strong)}
.kbvr-bar__n{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--kv-card2);border:1px solid var(--kv-line);font-size:11px;color:var(--kv-ac-text)}
/* section heads */
body.gc-kbvr .gc-kb-article__body > h2{display:flex;gap:14px;align-items:flex-start;margin:44px 0 14px;font-size:clamp(22px,2.4vw,30px);line-height:1.1;letter-spacing:-.02em;font-weight:850;color:var(--kv-strong);scroll-margin-top:70px}
body.gc-kbvr .gc-kb-article__body > h2 .kbvr-num{flex:0 0 auto;width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:var(--kv-ac-ink);background:var(--kv-ac);margin-top:-2px}
body.gc-kbvr .gc-kb-article__body > h2.kbvr-sub{font-size:clamp(19px,2vw,24px);padding-left:14px;border-left:4px solid var(--kv-ac);margin-top:30px}
body.gc-kbvr .gc-kb-article__body > h3{color:var(--kv-strong);font-weight:800;margin:24px 0 8px}
/* lists as card stacks */
body.gc-kbvr .gc-kb-article__body > ul,body.gc-kbvr .gc-kb-article__body > ol{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px}
body.gc-kbvr .gc-kb-article__body > ul > li,body.gc-kbvr .gc-kb-article__body > ol > li{position:relative;padding:12px 16px 12px 36px;border:1px solid var(--kv-line);border-radius:14px;background:var(--kv-card);font-size:15px}
body.gc-kbvr .gc-kb-article__body > ul > li::before{content:"";position:absolute;left:16px;top:19px;width:9px;height:9px;border-radius:50%;background:var(--kv-ac)}
body.gc-kbvr .gc-kb-article__body > ol{counter-reset:k}
body.gc-kbvr .gc-kb-article__body > ol > li{padding-left:48px;counter-increment:k}
body.gc-kbvr .gc-kb-article__body > ol > li::before{content:counter(k);position:absolute;left:12px;top:11px;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:900;font-size:13px;color:var(--kv-ac-ink);background:var(--kv-ac)}
body.gc-kbvr .gc-kb-article__body li strong{color:var(--kv-strong)}
/* figures */
body.gc-kbvr .gc-kb-article__body figure{margin:18px 0 22px;border:1px solid var(--kv-line);border-radius:16px;overflow:hidden;background:var(--kv-card)}
body.gc-kbvr .gc-kb-article__body figure img{display:block;width:100%;height:auto}
body.gc-kbvr .gc-kb-article__body figure figcaption{padding:10px 14px;font-size:13.5px;color:var(--kv-dim);border-top:1px solid var(--kv-line);background:var(--kv-card2)}
/* tables, code, callouts already styled by the KB; links */
body.gc-kbvr .gc-kb-article__body a{color:var(--kv-ac-text);font-weight:700;text-decoration:none;border-bottom:1px solid rgba(var(--kv-ac-rgb),.45)}
body.gc-kbvr .gc-kb-article__body a:hover{border-bottom-color:var(--kv-ac)}
body.gc-kbvr .gc-kb-article__body p.gc-kb-r39-kurz,body.gc-kbvr .gc-kb-article__body p.gc-kb-r38-pcvr{padding:12px 16px;border-radius:14px;background:var(--kv-card2);border:1px solid var(--kv-line)}
/* two-column tables (Problem / Fix) become stacked cards on a phone */
@media (max-width:640px){body.gc-kbvr .gc-kb-article__body table,body.gc-kbvr .gc-kb-article__body thead,body.gc-kbvr .gc-kb-article__body tbody,body.gc-kbvr .gc-kb-article__body tr,body.gc-kbvr .gc-kb-article__body td,body.gc-kbvr .gc-kb-article__body th{display:block;width:100%;box-sizing:border-box}body.gc-kbvr .gc-kb-article__body thead{display:none}body.gc-kbvr .gc-kb-article__body tr{margin:0 0 10px;border:1px solid var(--kv-line);border-radius:14px;background:var(--kv-card);overflow:hidden}body.gc-kbvr .gc-kb-article__body td,body.gc-kbvr .gc-kb-article__body th{border:0;padding:10px 14px}body.gc-kbvr .gc-kb-article__body td:first-child,body.gc-kbvr .gc-kb-article__body th:first-child{font-weight:800;color:var(--kv-strong);background:var(--kv-card2);border-bottom:1px solid var(--kv-line)}}
@media (max-width:640px){body.gc-kbvr .gc-kb-article__body > h2{gap:10px}body.gc-kbvr .gc-kb-article__body > h2 .kbvr-num{width:34px;height:34px;font-size:14px}}

