/* GAMPEON Portal. Markenfarben: /brand/README.md. Schriften selbst gehostet (OFL, siehe fonts/). */
@font-face { font-family:"Bebas Neue"; font-weight:400; font-display:swap; src:url(fonts/bebas-neue-latin-400-normal.woff2) format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Bebas Neue"; font-weight:400; font-display:swap; src:url(fonts/bebas-neue-latin-ext-400-normal.woff2) format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"Inter"; font-weight:100 900; font-display:swap; src:url(fonts/inter-latin-wght-normal.woff2) format("woff2-variations"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Inter"; font-weight:100 900; font-display:swap; src:url(fonts/inter-latin-ext-wght-normal.woff2) format("woff2-variations"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

/* Aufbau nach den Vorlagen (Discover, Home, Store): Hauptmenü oben mit Menüs nach Genre, Art und Tag,
   Inhalt in Reihen großer Bilder, Listen mit Filterspalte rechts.
   Flächen in drei Tonstufen aus Space Cadet, Imperial Red als einziger Akzent. */
:root {
  --space-cadet:#2B2D42; --manatee:#8D99AE; --alice-blue:#EDF2F4; --imperial-red:#EF233C; --crimson:#D80032;
  --bg:#12131d; --side:#161724; --surface:#1b1c2b; --card:#222438; --card-2:#2b2d45; --line:#2c2f47;
  --fg:var(--alice-blue); --muted:var(--manatee); --accent:var(--imperial-red); --accent-strong:var(--crimson);
  --glow:0 0 0 1px rgba(239,35,60,.55), 0 10px 30px -10px rgba(239,35,60,.55);
  --ok:#3fb67a; --radius:8px; --page:1520px;
  --display:"Bebas Neue", Impact, "Arial Narrow", sans-serif;
  --text:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color-scheme: dark;
}
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html,body { margin:0; }
body { background:var(--bg); color:var(--fg); font:14px/1.5 var(--text); min-height:100vh; }
a { color:var(--fg); text-decoration:none; }
a:hover { color:var(--accent); }
.muted { color:var(--muted); }
.small { font-size:.8rem; }
code { font-size:.85em; color:var(--muted); }
svg.i { width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

/* ---------------------------------------------------------------- Display-Typo */
h1, h2, .display { font-family:var(--display); font-weight:400; letter-spacing:.02em; line-height:.95; text-transform:uppercase; }
h1 { font-size:clamp(2.4rem, 4.4vw, 3.6rem); margin:0 0 .15em; }
h2 { font-size:1.9rem; margin:0; }
h3 { font-size:.95rem; font-weight:700; margin:0; line-height:1.3; }
.o { color:transparent; -webkit-text-stroke:1.3px var(--fg); }
h2 .o { -webkit-text-stroke:1px var(--fg); }
.dot { color:var(--accent); }
.rule { display:flex; gap:5px; align-items:center; margin:10px 0 0; }
.rule i { display:block; height:3px; background:var(--accent); border-radius:2px; }
.rule i:first-child { width:40px; } .rule i:not(:first-child) { width:7px; opacity:.7; }

/* ---------------------------------------------------------------- App-Gerüst */
/* Seitenleiste ist nur noch das Menü auf schmalen Bildschirmen. */
.side { position:fixed; left:0; top:0; bottom:0; width:280px; overflow-y:auto; overscroll-behavior:contain; background:var(--side); border-right:1px solid var(--line); display:flex; flex-direction:column; padding:18px 14px 14px; gap:16px; z-index:50; transform:translateX(-100%); visibility:hidden; transition:transform .2s, visibility .2s; }
.side.open { transform:none; visibility:visible; box-shadow:20px 0 60px rgba(0,0,0,.6); }
.brand { display:flex; align-items:center; gap:10px; flex:none; }
.side .brand { padding:0 8px 6px; }
.brand .word { height:16px; width:auto; }
.side-nav { display:grid; gap:2px; }
.side-label { font-size:.66rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#666c84; padding:12px 12px 4px; }
.side-nav a { position:relative; display:flex; align-items:center; gap:12px; padding:7px 12px; border-radius:6px; color:var(--muted); font-weight:600; font-size:.88rem; }
.side-nav a:hover { color:var(--fg); background:rgba(237,242,244,.04); }
.side-nav a.active { color:#fff; background:linear-gradient(90deg, rgba(239,35,60,.22), rgba(239,35,60,0)); }
.side-nav a.active::before { content:""; position:absolute; left:-14px; top:7px; bottom:7px; width:3px; border-radius:0 3px 3px 0; background:var(--accent); box-shadow:0 0 12px var(--accent); }
.side-nav a.active svg { color:var(--accent); }
.side-nav .dotg { width:8px; height:8px; border-radius:2px; transform:rotate(45deg); background:var(--muted); margin:0 5px; flex:none; }
.side-nav a.active .dotg, .side-nav a:hover .dotg { background:var(--accent); }
.side-foot { margin-top:auto; display:grid; gap:10px; }
.side-auth { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.side-auth .btn { padding:0 8px; }
.side-card { background:linear-gradient(180deg, rgba(22,23,36,.15), rgba(22,23,36,.82) 48%, rgba(22,23,36,.96)), url(img/build.webp) center 22%/cover, var(--card); border:1px solid rgba(239,35,60,.3); border-radius:var(--radius); padding:78px 12px 12px; font-size:.78rem; line-height:1.4; color:#b4bccb; }
.side-card b { display:block; font:400 1.25rem/1 var(--display); color:var(--fg); letter-spacing:.04em; margin-bottom:4px; }
.side-card .txt { display:block; }
.side-card .btn { margin-top:10px; width:100%; }
.side-links { display:flex; gap:12px; flex-wrap:wrap; padding:0 8px; font-size:.75rem; }
.side-links a { color:#666c84; } .side-links a:hover { color:var(--fg); }

.topbar { position:sticky; top:0; z-index:30; display:flex; align-items:center; gap:18px; height:68px; padding:0 24px; background:rgba(18,19,29,.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.top-nav { display:flex; align-items:center; gap:2px; }
.tn { display:inline-flex; align-items:center; gap:6px; height:40px; padding:0 14px; border-radius:999px; border:1px solid transparent; background:none; color:var(--muted); font:600 .9rem/1 var(--text); cursor:pointer; white-space:nowrap; }
.tn:hover { color:var(--fg); }
.tn.active, .tn[aria-expanded="true"] { color:var(--fg); background:var(--surface); border-color:var(--line); }
.tn.active { box-shadow:inset 0 -2px 0 var(--accent); }
.tn svg.i { width:15px; height:15px; transition:transform .15s; }
.tn[aria-expanded="true"] svg.i { transform:rotate(180deg); color:var(--accent); }
.search { flex:1 1 180px; max-width:460px; display:flex; align-items:center; gap:10px; background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:0 16px; height:42px; }
.search:focus-within { border-color:rgba(239,35,60,.6); box-shadow:0 0 0 3px rgba(239,35,60,.12); }
.search .ico { color:var(--muted); display:flex; }
.search input { border:0; background:none; padding:0; height:100%; outline:none; }
.account { margin-left:auto; display:flex; align-items:center; gap:10px; }
.icon-btn { position:relative; display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--surface); border:1px solid var(--line); color:var(--muted); cursor:pointer; }
.icon-btn:hover { color:var(--fg); border-color:var(--muted); }
.icon-btn .badge-n { position:absolute; top:-3px; right:-3px; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--accent); color:#fff; font-size:.66rem; font-weight:800; display:grid; place-items:center; box-shadow:0 0 0 3px var(--bg); }
.menu { display:none; }
.who { display:flex; align-items:center; gap:10px; padding:4px 10px 4px 4px; border-radius:999px; background:var(--surface); border:1px solid var(--line); color:var(--fg); font:inherit; text-align:left; cursor:pointer; }
.who:hover, .who[aria-expanded="true"] { border-color:rgba(239,35,60,.6); color:var(--fg); }
.who b { display:block; font-size:.82rem; line-height:1.1; }
.who small { display:block; font-size:.7rem; color:var(--muted); }
.who > svg.i { width:16px; height:16px; color:var(--muted); transition:transform .15s; }
.who[aria-expanded="true"] > svg.i { transform:rotate(180deg); }
.icon-btn[aria-expanded="true"] { color:var(--fg); border-color:rgba(239,35,60,.6); }

/* Dropdowns der Topbar (Glocke, Konto) */
.dd { position:relative; }
.pop { position:absolute; top:calc(100% + 10px); right:0; width:340px; max-width:calc(100vw - 32px); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 24px 60px -12px rgba(0,0,0,.7); z-index:30; overflow:hidden; }
.pop-h { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 16px; border-bottom:1px solid var(--line); }
.pop-h b { font:400 1.3rem/1 var(--display); letter-spacing:.04em; }
.pop-list { max-height:min(60vh, 420px); overflow-y:auto; }
.pop-n { display:flex; gap:12px; padding:12px 16px; border-bottom:1px solid var(--line); }
.pop-n:hover { background:rgba(237,242,244,.04); color:var(--fg); }
.pop-n.new { background:linear-gradient(90deg, rgba(239,35,60,.12), transparent 70%); }
.pop-i { flex:none; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--card-2); color:var(--accent); }
.pop-t { min-width:0; }
.pop-t b { display:block; font-size:.85rem; }
.pop-t small { display:block; color:var(--muted); font-size:.78rem; line-height:1.35; }
.pop-n time { display:block; color:#666c84; font-size:.7rem; margin-top:3px; }
.pop-empty { margin:0; padding:22px 16px; color:var(--muted); font-size:.82rem; }
.pop-f { display:flex; align-items:center; justify-content:center; gap:4px; padding:11px; font-size:.76rem; font-weight:700; color:var(--muted); }
.pop-f svg { width:15px; height:15px; color:var(--accent); }
.menu-pop { width:260px; padding:6px; }
.pop-me { display:flex; align-items:center; gap:12px; padding:12px 10px 14px; margin-bottom:6px; border-bottom:1px solid var(--line); }
.pop-me .pop-t { flex:1; }
.pop-me .pill { flex:none; }
.menu-pop a, .menu-pop button { display:flex; align-items:center; gap:12px; width:100%; padding:9px 10px; border:0; border-radius:6px; background:none; color:var(--muted); font:600 .86rem/1.2 var(--text); text-align:left; cursor:pointer; }
.menu-pop a:hover, .menu-pop button:hover { background:rgba(237,242,244,.05); color:var(--fg); }
.menu-pop a:hover svg, .menu-pop button:hover svg { color:var(--accent); }
.menu-pop hr { border:0; border-top:1px solid var(--line); margin:6px 0; }
/* Große Menüs im Hauptmenü: Einträge mit Symbol und einem Satz, darunter Tags. */
.pop.mega { left:0; right:auto; width:640px; padding:12px; }
.pop.mega.narrow { width:360px; }
.mega-h { font-size:.74rem; font-weight:700; color:var(--muted); padding:4px 8px 8px; }
.mega-h.sep { border-top:1px solid var(--line); margin-top:10px; padding-top:14px; }
.mega-g { display:grid; grid-template-columns:1fr 1fr; gap:2px 8px; }
.mega-g.one { grid-template-columns:1fr; }
.mega-i { display:flex; gap:12px; align-items:center; padding:9px 8px; border-radius:6px; min-width:0; }
.mega-i:hover, .mega-i:focus-visible { background:rgba(237,242,244,.05); color:var(--fg); }
.mega-ico { flex:none; display:grid; place-items:center; width:40px; height:40px; border-radius:8px; border:1px solid var(--line); background:var(--bg); color:var(--fg); }
.mega-i:hover .mega-ico { color:var(--accent); border-color:rgba(239,35,60,.5); }
.mega-t { min-width:0; }
.mega-t b { display:block; font-size:.88rem; }
.mega-t small { display:block; font-size:.76rem; line-height:1.35; color:var(--muted); }
.mega-tags { display:flex; flex-wrap:wrap; gap:8px; padding:0 8px 4px; }
.mega-tags a { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 12px; border:1px solid var(--line); border-radius:999px; font-size:.8rem; font-weight:600; color:var(--muted); }
.mega-tags a:hover { color:var(--fg); border-color:var(--muted); }
.mega-tags svg.i { width:14px; height:14px; }
.mega-f { display:flex; justify-content:space-between; gap:10px; padding:12px 8px 4px; margin-top:10px; border-top:1px solid var(--line); }
.mega-f a { display:inline-flex; align-items:center; gap:4px; font-size:.78rem; font-weight:700; color:var(--muted); }
.mega-f a:hover { color:var(--fg); }
.mega-f svg { width:15px; height:15px; color:var(--accent); }
.preview-bar { background:linear-gradient(90deg, var(--crimson), var(--imperial-red)); color:#fff; font-size:.78rem; font-weight:600; padding:6px 28px; text-align:center; }
.preview-bar:empty { display:none; }
main { display:block; width:100%; max-width:var(--page); margin:0 auto; padding:28px 32px 64px; outline:none; min-height:calc(100vh - 160px); }
.foot { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:18px max(32px, calc((100% - var(--page)) / 2 + 32px)); color:var(--muted); font-size:.78rem; border-top:1px solid var(--line); }
.foot a { color:var(--muted); } .foot a:hover { color:var(--fg); }
.scrim { position:fixed; inset:0; background:rgba(5,6,12,.6); z-index:45; }

/* ---------------------------------------------------------------- Bedienelemente */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:0; background:var(--card-2); color:var(--fg); height:40px; padding:0 18px; border-radius:6px; font:700 .76rem/1 var(--text); letter-spacing:.08em; text-transform:uppercase; cursor:pointer; white-space:nowrap; transition:background .15s, box-shadow .15s; }
.btn:hover { background:#383b5a; color:var(--fg); }
.btn.primary { background:var(--accent); color:#fff; box-shadow:0 8px 24px -10px rgba(239,35,60,.9); }
.btn.primary:hover { background:var(--accent-strong); }
.btn.ghost { background:transparent; box-shadow:inset 0 0 0 1px var(--line); }
.btn.ghost:hover { box-shadow:inset 0 0 0 1px var(--manatee); }
.btn.sm { height:32px; padding:0 12px; font-size:.7rem; }
.btn:disabled { opacity:.45; cursor:not-allowed; box-shadow:none; }
.btn svg.i { width:16px; height:16px; }
.link-more { display:inline-flex; align-items:center; gap:4px; font-size:.78rem; font-weight:700; color:var(--muted); white-space:nowrap; }
.link-more svg { color:var(--accent); width:15px; height:15px; }
.arrows { display:flex; gap:6px; }
.arrow { width:32px; height:32px; border-radius:6px; border:1px solid var(--line); background:var(--surface); color:var(--muted); display:grid; place-items:center; cursor:pointer; }
.arrow:hover { color:#fff; background:var(--accent); border-color:var(--accent); }
.arrow svg { width:16px; height:16px; }

input, select, textarea { font:inherit; color:var(--fg); background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:10px 12px; width:100%; }
input:focus, select:focus, textarea:focus { outline:2px solid var(--accent); outline-offset:-1px; }
.search input:focus { outline:none; }
textarea { min-height:110px; resize:vertical; }
label { display:grid; gap:6px; font-weight:600; font-size:.74rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
label > input, label > select, label > textarea { text-transform:none; letter-spacing:0; font-weight:400; font-size:.95rem; }
label .hint { font-weight:400; text-transform:none; letter-spacing:0; font-size:.8rem; }
.check { display:flex; gap:10px; align-items:flex-start; text-transform:none; letter-spacing:0; font-size:.9rem; color:var(--fg); font-weight:400; }
.check input { width:auto; margin-top:3px; accent-color:var(--accent); }
form.stack, .stack { display:grid; gap:16px; max-width:580px; }
.card-form { background:var(--surface); border-radius:var(--radius); padding:26px; border:1px solid var(--line); }
.statement { background:var(--bg); border-left:3px solid var(--accent); padding:12px 14px; border-radius:4px; font-size:.88rem; }
.toolbar { display:flex; gap:10px; flex-wrap:wrap; margin:18px 0 24px; }
.toolbar input, .toolbar select { flex:1 1 200px; width:auto; }

/* ---------------------------------------------------------------- Abschnitte */
.sec { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:40px 0 16px; }
.sec h2 { font-size:1.75rem; }
.sec .right { display:flex; align-items:center; gap:14px; }
.page-head { position:relative; overflow:hidden; border-radius:12px; padding:34px 32px; background:var(--surface); margin-bottom:8px; isolation:isolate; }
.page-head .art { position:absolute; inset:0; width:100%; height:100%; z-index:-2; opacity:.55; }
.page-head::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, var(--surface) 25%, rgba(27,28,43,.6) 60%, rgba(27,28,43,.2)); }
.page-head p { color:var(--muted); max-width:56ch; margin:10px 0 0; }
.page-head .stat-row { margin-top:18px; max-width:560px; }

.rail { display:grid; gap:18px; position:sticky; top:96px; min-width:0; }
.box { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:24px; }
.box h3.box-t { font:400 1.35rem/1 var(--display); letter-spacing:.04em; text-transform:uppercase; margin-bottom:14px; display:flex; justify-content:space-between; align-items:center; }
.box h3.box-t a { font:700 .72rem/1 var(--text); letter-spacing:.04em; text-transform:none; color:var(--muted); }
.list { display:grid; gap:12px; }
.li { display:flex; align-items:center; gap:12px; min-width:0; }
.li .t { min-width:0; flex:1; }
.li .t b { display:block; font-size:.85rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.li .t small { display:block; font-size:.74rem; color:var(--muted); }
.li .n { font-size:.75rem; font-weight:700; color:var(--muted); display:flex; align-items:center; gap:4px; }
.li .n svg { width:14px; height:14px; color:var(--accent); }
.mini { width:56px; aspect-ratio:16/10; border-radius:6px; overflow:hidden; flex:none; position:relative; }
.mini .art { width:100%; height:100%; display:block; }

.stat-row { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.stat-t { background:var(--card); border-radius:var(--radius); padding:12px; min-width:0; }
.stat-t b { display:block; font:400 2rem/1 var(--display); letter-spacing:.02em; }
.stat-t b.o { -webkit-text-stroke:1.1px var(--fg); }
.stat-t span { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:.64rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.stat-t.hot { background:linear-gradient(135deg, var(--accent), var(--crimson)); }
.stat-t.hot span { color:rgba(255,255,255,.8); }

/* ---------------------------------------------------------------- Hero-Banner */
.feature { position:relative; overflow:hidden; border-radius:14px; min-height:360px; display:grid; align-content:end; padding:32px; isolation:isolate; background:var(--surface); }
.feature > .art { position:absolute; inset:0; width:100%; height:100%; z-index:-2; }
.feature > .hero-video { object-fit:cover; opacity:0; transition:opacity .9s ease; }
.feature.has-video > .hero-video { opacity:1; }
.feature .vid-ui { position:absolute; right:14px; bottom:12px; display:none; align-items:center; gap:10px; color:rgba(237,242,244,.55); font-size:.68rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
.feature.has-video .vid-ui { display:flex; }
.feature .vid-toggle { display:grid; place-items:center; width:30px; height:30px; padding:0; border-radius:50%; border:1px solid rgba(237,242,244,.25); background:rgba(18,19,29,.45); color:#edf2f4; cursor:pointer; }
.feature .vid-toggle:hover { background:rgba(18,19,29,.75); }
.feature .vid-toggle:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.feature .vid-toggle .i { width:14px; height:14px; }
.feature::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg, rgba(18,19,29,.96) 0%, rgba(18,19,29,.55) 45%, rgba(18,19,29,0) 75%), linear-gradient(90deg, rgba(18,19,29,.7), transparent 60%); }
.feature .kick { display:flex; gap:8px; align-items:center; margin-bottom:12px; flex-wrap:wrap; }
.feature h1 { font-size:clamp(3rem, 6vw, 5.4rem); margin:0; }
/* Claim wie eine Wortmarke: alle Wörter gefüllt, eng gesetzt. */
.feature h1.claim { letter-spacing:.01em; line-height:.9; text-shadow:0 4px 24px rgba(0,0,0,.45); }
.feature p { color:#c3cad6; max-width:52ch; margin:12px 0 0; }
.feature .actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; align-items:center; }
.feature .meta-row { display:flex; gap:18px; align-items:center; color:#c3cad6; font-size:.82rem; font-weight:600; margin-left:8px; }
.feature .meta-row span { display:flex; align-items:center; gap:6px; }
.feature .meta-row svg { width:16px; height:16px; color:var(--accent); }
.row + .feature { margin-top:40px; }
.hello + .feature { margin-top:18px; }
.strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:12px; }
.strip a { position:relative; display:flex; gap:10px; align-items:center; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:8px; min-width:0; }
.strip a:hover { border-color:rgba(239,35,60,.6); color:var(--fg); }
.strip .t { min-width:0; } .strip b { display:block; font-size:.8rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .strip small { color:var(--muted); font-size:.72rem; }

/* ---------------------------------------------------------------- Karten */
.row { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 4*16px)/5); gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:2px; margin:-2px; }
.row::-webkit-scrollbar { display:none; }
.row > * { scroll-snap-align:start; }
.row.r4 { grid-auto-columns:calc((100% - 3*16px)/4); }
.row.r6 { grid-auto-columns:calc((100% - 5*16px)/6); }
/* Freunde auf der Startseite wie bei Roblox: nur Bild und Name, viele in einer Reihe. */
.row.pals { grid-auto-columns:calc((100% - 9*16px)/10); }
.pal { display:grid; justify-items:center; gap:10px; padding:6px 2px 4px; text-align:center; color:var(--fg); }
.pal b { font-size:.84rem; font-weight:600; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pal:hover b { color:var(--accent); }
.grid { display:grid; gap:16px; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); }
.grid.wide { grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); }
.card { position:relative; background:var(--card); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; transition:transform .18s, box-shadow .18s; min-width:0; }
a.card:hover { transform:translateY(-3px); color:var(--fg); box-shadow:var(--glow); }
.thumb { position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--surface); }
.thumb .art { position:absolute; inset:0; width:100%; height:100%; transition:transform .4s; }
a.card:hover .thumb .art { transform:scale(1.05); }
.thumb::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(18,19,29,.75)); pointer-events:none; }
.thumb .badge { position:absolute; z-index:2; top:10px; left:10px; }
.thumb .badge-r { position:absolute; z-index:2; top:10px; right:10px; }
.thumb .foot-l { position:absolute; z-index:2; left:10px; bottom:9px; display:flex; align-items:center; gap:5px; font-weight:700; font-size:.74rem; background:rgba(18,19,29,.7); backdrop-filter:blur(4px); padding:3px 8px; border-radius:4px; }
.thumb .foot-l svg { width:13px; height:13px; color:var(--accent); }
.play { position:absolute; z-index:2; left:50%; top:50%; width:48px; height:48px; margin:-24px 0 0 -24px; border-radius:50%; background:rgba(239,35,60,.9); display:grid; place-items:center; opacity:0; transform:scale(.8); transition:.2s; box-shadow:0 0 0 6px rgba(239,35,60,.25); }
.play svg { width:18px; height:18px; fill:#fff; stroke:none; margin-left:3px; }
a.card:hover .play { opacity:1; transform:none; }
.card .body { padding:12px 14px 14px; display:grid; gap:4px; }
.card .by { display:flex; align-items:center; gap:8px; min-width:0; }
.card .by .t { min-width:0; flex:1; }
.card .by h3 { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.card .meta { display:flex; justify-content:space-between; gap:8px; color:var(--muted); font-size:.76rem; align-items:center; }
.card .meta span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.card .meta span:last-child { flex:none; }
.thumb .foot-l .live-dot { width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 8px var(--accent); }
.thumb .foot-l.off { color:var(--muted); }
.card .by .t small { display:block; font-size:.76rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.card .by h3 { font-size:1rem; }
.card .meta { justify-content:flex-start; gap:14px; margin-top:4px; }
.card .meta .free { margin-left:auto; color:#7be0aa; font-weight:700; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; }

/* Game-Kachel wie in Discover: Bild mit Spielerzahl, Titel darunter, ohne Kasten. */
.tile { display:flex; flex-direction:column; gap:8px; min-width:0; }
.tile .thumb { aspect-ratio:16/9; border-radius:10px; transition:transform .18s, box-shadow .18s; }
a.tile:hover { color:var(--fg); }
a.tile:hover .thumb { transform:translateY(-3px); box-shadow:var(--glow); }
a.tile:hover .thumb .art { transform:scale(1.05); }
a.tile:hover .play { opacity:1; transform:none; }
.tile h3 { font-size:.95rem; font-weight:800; text-transform:uppercase; letter-spacing:.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:2px; }
.tile .meta { display:flex; justify-content:space-between; gap:8px; margin-top:-6px; color:var(--muted); font-size:.78rem; }
.tile .meta span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tile.l h3 { font-size:1.1rem; }
.tile.l .thumb .foot-l { font-size:.85rem; padding:4px 10px; }
.picks { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; }
.grid.tiles { grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:22px 16px; }

/* Kollektionen: breite Banner pro Genre. */
/* Kollektionen: Szene als Hintergrund (Farbe als Fallback), Figur größer und unten vom Bannerrand angeschnitten,
   oben ragt sie bis 48px heraus. Die Zeile scrollt horizontal, also oben Platz im Scrollbereich lassen. */
.row.coll-row { grid-auto-columns:calc((100% - 3*16px)/4); padding-top:56px; margin-top:-22px; align-items:end; }
.coll { --c1:#EF233C; --c2:#7a0d1d; --bg:none; position:relative; isolation:isolate; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:6px; aspect-ratio:2.6/1; padding:0 18px; border-radius:10px; transition:transform .18s, filter .18s; }
.coll::before { content:""; position:absolute; inset:0; z-index:-2; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--c2) 92%, black) 0%, color-mix(in srgb, var(--c2) 55%, transparent) 38%, transparent 62%),
    var(--bg) center right / cover no-repeat,
    radial-gradient(circle at 78% 60%, rgba(255,255,255,.25), transparent 48%),
    repeating-linear-gradient(115deg, rgba(255,255,255,.07) 0 2px, transparent 2px 14px),
    linear-gradient(100deg, var(--c2) 0%, var(--c1) 75%); }
.coll-figwrap { position:absolute; left:25%; right:0; bottom:0; top:-48px; z-index:-1; overflow:hidden; border-bottom-right-radius:10px; pointer-events:none; }
.coll-fig { position:absolute; right:8%; bottom:-38%; height:132%; width:auto; max-width:none; filter:drop-shadow(0 8px 14px rgba(0,0,0,.45)); transition:transform .25s; transform-origin:bottom center; }
.coll-t { font:400 2.5rem/.95 var(--display); letter-spacing:.03em; text-transform:uppercase; color:#fff; max-width:52%;
  -webkit-text-stroke:7px color-mix(in srgb, var(--c2) 80%, black); paint-order:stroke fill; text-shadow:3px 4px 0 rgba(0,0,0,.45); transform:rotate(-2deg); transform-origin:left center; }
.coll small { color:#fff; font-size:.74rem; font-weight:700; letter-spacing:.02em; text-shadow:0 1px 4px rgba(0,0,0,.6); white-space:nowrap; background:rgba(0,0,0,.32); padding:2px 8px; border-radius:999px; }
/* Breite Figur (Roboter mit Pokal) weiter nach rechts, damit links nichts abgeschnitten wird. */
.coll-minigames .coll-fig { right:2%; }
.coll:hover { transform:translateY(-3px); filter:drop-shadow(0 8px 18px rgba(0,0,0,.4)); color:var(--fg); }
.coll:hover .coll-fig { transform:translateY(-4px) scale(1.04); }
.coll-roleplay { --c1:#EF233C; --c2:#7a0d1d; --bg:url(img/coll/bg-roleplay.webp); }
.coll-racing { --c1:#F77F00; --c2:#9c3307; --bg:url(img/coll/bg-racing.webp); }
.coll-shooter { --c1:#4361EE; --c2:#1a237e; --bg:url(img/coll/bg-shooter.webp); }
.coll-survival { --c1:#2A9D8F; --c2:#123f3a; --bg:url(img/coll/bg-survival.webp); }
.coll-parkour { --c1:#9D4EDD; --c2:#3c1574; --bg:url(img/coll/bg-parkour.webp); }
.coll-sandbox { --c1:#F4A100; --c2:#a5410b; --bg:url(img/coll/bg-sandbox.webp); }
.coll-minigames { --c1:#F72585; --c2:#6d0a49; --bg:url(img/coll/bg-minigames.webp); }
.coll-simulation { --c1:#3A86FF; --c2:#16366e; --bg:url(img/coll/bg-simulation.webp); }
@media (max-width:520px) { .coll-t { font-size:2.2rem; -webkit-text-stroke-width:6px; } }
@media (prefers-reduced-motion: reduce) { .coll:hover, .coll:hover .coll-fig { transform:none; } }

/* Begrüßung für Gäste wie „Set up your account“. */
.hello { display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:16px 20px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); margin-bottom:6px; }
.hello > svg.i { color:var(--accent); width:22px; height:22px; }
.hello b { display:block; font-size:.92rem; }
.hello p { margin:2px 0 0; color:var(--muted); font-size:.84rem; }
.hello > div:not(.acts) { flex:1 1 300px; }
.hello .acts { display:flex; gap:8px; }
.sub { margin:-8px 0 14px; color:var(--muted); font-size:.82rem; }

/* Banner für Creator am Ende der Startseite. */
.build { position:relative; overflow:hidden; isolation:isolate; display:grid; align-content:center; gap:10px; min-height:250px; margin-top:48px; padding:36px; border-radius:14px; background:var(--surface); }
.build > .art { position:absolute; inset:0; width:100%; height:100%; z-index:-2; }
.build::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(18,19,29,.95) 25%, rgba(18,19,29,.5) 60%, rgba(18,19,29,.15)); }
.build h2 { font-size:clamp(2.4rem, 4.4vw, 3.6rem); }
.build p { color:#c3cad6; max-width:56ch; margin:0; }
.build .kick, .build .actions { display:flex; gap:10px; flex-wrap:wrap; }
.build .actions { margin-top:8px; }

/* Listen wie im Store: großer Titel mittig, darunter Liste und Filterspalte rechts. */
.hero-c { text-align:center; padding:18px 0 30px; margin-bottom:28px; border-bottom:1px solid var(--line); }
.hero-c h1 { font-size:clamp(2.6rem, 6vw, 4.8rem); }
.hero-c p { color:var(--muted); font-size:1rem; margin:8px auto 0; max-width:62ch; }
.hero-c .facts { display:flex; justify-content:center; gap:22px; flex-wrap:wrap; margin-top:14px; color:var(--muted); font-size:.85rem; font-weight:600; }
.hero-c .facts span { display:inline-flex; align-items:center; gap:6px; }
.hero-c .facts svg { width:16px; height:16px; color:var(--accent); }
.browse { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:24px; align-items:start; }
.bar { display:flex; gap:10px; flex-wrap:wrap; padding:12px; margin-bottom:16px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
.bar select { flex:0 1 220px; width:auto; }
.field-ico { position:relative; display:block; flex:1 1 240px; text-transform:none; letter-spacing:0; }
.field-ico > svg.i { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--muted); pointer-events:none; }
.field-ico input { padding-left:40px; }
.active-f { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 12px; }
.active-f a { display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 8px 0 12px; border-radius:999px; background:rgba(239,35,60,.14); border:1px solid rgba(239,35,60,.4); font-size:.78rem; font-weight:700; }
.active-f svg.i { width:14px; height:14px; color:var(--accent); }
.count { margin:0 0 14px; color:var(--muted); font-size:.8rem; font-weight:600; }
.filters { display:grid; gap:16px; position:sticky; top:92px; min-width:0; }
.btn.block { width:100%; height:48px; font-size:.8rem; }
.fbox { padding:0; }
.fbox summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:16px 18px; cursor:pointer; }
.fbox summary::-webkit-details-marker { display:none; }
.fbox summary h3.box-t { margin:0; justify-content:flex-start; gap:10px; }
.fbox summary h3.box-t svg { color:var(--accent); }
.fbox summary > svg.i { color:var(--muted); transition:transform .15s; }
.fbox[open] summary > svg.i { transform:rotate(180deg); }
.opts { display:grid; gap:2px; padding:0 10px 14px; max-height:420px; overflow-y:auto; }
.opt { display:flex; align-items:center; gap:10px; padding:8px; border-radius:6px; font-size:.88rem; }
.opt:hover { background:rgba(237,242,244,.04); color:var(--fg); }
.opt.on { background:rgba(239,35,60,.1); }
.opt > span:not(.n) { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.opt .n { margin-left:auto; min-width:30px; padding:1px 8px; border-radius:999px; background:rgba(141,153,174,.14); color:var(--muted); font-size:.72rem; font-weight:700; text-align:center; }
.opt i { flex:none; width:18px; height:18px; border:2px solid #4a4e6b; }
.opt i.radio { border-radius:50%; }
.opt i.check { border-radius:4px; position:relative; }
.opt.on i { border-color:var(--accent); background:var(--accent); }
.opt.on i.radio { box-shadow:inset 0 0 0 3px var(--surface); }
.opt.on i.check::after { content:""; position:absolute; left:4px; top:0; width:5px; height:9px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }

.cap { height:3px; background:rgba(141,153,174,.16); }
.cap i { display:block; height:100%; background:var(--accent); box-shadow:0 0 8px var(--accent); }

.av { display:grid; place-items:center; border-radius:50%; flex:none; font:400 1rem/1 var(--display); letter-spacing:.04em; color:#fff; width:34px; height:34px; box-shadow:0 0 0 2px var(--bg), 0 0 0 3.5px var(--accent); }
.av.s { width:26px; height:26px; font-size:.8rem; box-shadow:0 0 0 2px var(--card), 0 0 0 3px var(--accent); }
.av.l { width:76px; height:76px; font-size:1.9rem; box-shadow:0 0 0 3px var(--card), 0 0 0 5px var(--accent), 0 0 24px rgba(239,35,60,.5); }
.av.xl { width:120px; height:120px; font-size:3rem; box-shadow:0 0 0 4px var(--bg), 0 0 0 7px var(--accent), 0 0 34px rgba(239,35,60,.55); }

.creator { background:var(--card); border-radius:var(--radius); padding:20px 14px 16px; display:grid; justify-items:center; text-align:center; gap:6px; transition:transform .18s, box-shadow .18s; }
.creator:hover { transform:translateY(-3px); box-shadow:var(--glow); color:var(--fg); }
.creator .av { margin-bottom:8px; }
.creator b { font-size:.88rem; } .creator small { color:var(--muted); font-size:.74rem; }
.creator .n { font-size:.72rem; font-weight:700; color:var(--accent); letter-spacing:.06em; text-transform:uppercase; margin-top:4px; }

.genres { display:grid; gap:14px; grid-template-columns:2fr 1fr 1fr 1fr; grid-auto-rows:118px; }
.genre { position:relative; overflow:hidden; border-radius:var(--radius); display:flex; flex-direction:column; justify-content:flex-end; padding:12px 14px; isolation:isolate; transition:transform .18s, box-shadow .18s; }
.genre .art { position:absolute; inset:0; width:100%; height:100%; z-index:-2; }
.genre::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg, rgba(18,19,29,.9), rgba(18,19,29,.05) 70%); }
.genre:first-child { grid-row:span 2; padding:20px; }
.genre span { font:400 1.5rem/1 var(--display); letter-spacing:.04em; text-transform:uppercase; color:#fff; }
.genre:first-child span { font-size:2.6rem; }
.genre small { color:#c3cad6; font-size:.74rem; font-weight:600; }
.genre:hover { transform:translateY(-3px); box-shadow:var(--glow); color:var(--fg); }
.genre-label { font-size:.66rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }

.tag { display:inline-block; font-size:.7rem; font-weight:600; padding:3px 9px; border-radius:999px; background:rgba(141,153,174,.14); color:var(--muted); margin:0 4px 4px 0; }
a.tag:hover { color:var(--fg); }
.pill { display:inline-flex; align-items:center; gap:6px; font-size:.64rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; padding:4px 8px; border-radius:4px; }
.pill.live { background:var(--accent); color:#fff; box-shadow:0 0 14px rgba(239,35,60,.6); }
.pill.live::before { content:""; width:6px; height:6px; border-radius:50%; background:#fff; animation:pulse 1.6s infinite; }
.pill.offline { background:rgba(18,19,29,.8); color:var(--muted); }
.pill.blocked { background:rgba(216,0,50,.2); color:#ff6b81; }
.pill.kind { background:rgba(18,19,29,.78); color:var(--fg); backdrop-filter:blur(4px); }
.pill.free { background:rgba(63,182,122,.18); color:#7be0aa; }
.pill.team { background:var(--accent); color:#fff; }
.pill.dark { background:rgba(18,19,29,.7); color:var(--fg); backdrop-filter:blur(4px); }
@keyframes pulse { 50% { opacity:.3; } }

.chips { display:flex; gap:8px; flex-wrap:wrap; margin:20px 0 0; }
.chips a { display:inline-flex; align-items:center; gap:8px; height:36px; padding:0 16px; border-radius:999px; background:var(--surface); color:var(--muted); font-weight:700; font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; border:1px solid var(--line); }
.chips a:hover { color:var(--fg); border-color:var(--muted); }
.chips a.active { background:var(--accent); border-color:var(--accent); color:#fff; box-shadow:0 6px 20px -8px rgba(239,35,60,.9); }

/* ---------------------------------------------------------------- Detailseiten */
.detail { display:grid; grid-template-columns:minmax(0,2fr) minmax(260px,1fr); gap:28px; align-items:start; margin-top:24px; }
.panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:22px; display:grid; gap:14px; position:sticky; top:96px; }
.panel .big { font:400 3.2rem/.9 var(--display); }
.kv { display:grid; grid-template-columns:auto 1fr; gap:8px 16px; font-size:.88rem; margin:0; }
.kv dt { color:var(--muted); font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding-top:2px; }
.kv dd { margin:0; overflow-wrap:anywhere; }
.mod-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:20px; display:grid; gap:14px; margin-bottom:14px; }
.mod-h { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; }
.mod-h .muted { font-size:.82rem; }
.mod-card .acts { display:flex; gap:8px; flex-wrap:wrap; }
.quote { white-space:pre-line; overflow-wrap:anywhere; border-left:3px solid var(--line); padding-left:12px; color:var(--fg); }
.appeal-st { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; margin:10px 0 0; }
.meter { height:8px; border-radius:999px; background:var(--card-2); overflow:hidden; }
.meter i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg, var(--crimson), var(--imperial-red)); box-shadow:0 0 12px rgba(239,35,60,.6); }
.meter.full i { background:var(--crimson); }
.list .li .n svg.i { width:13px; height:13px; margin-right:3px; vertical-align:-2px; }
.progress { position:relative; height:28px; border-radius:6px; background:var(--surface); border:1px solid var(--line); overflow:hidden; }
.progress i { position:absolute; left:0; top:0; bottom:0; width:0; background:linear-gradient(90deg, var(--crimson), var(--imperial-red)); transition:width .2s; }
.progress span { position:relative; display:block; text-align:center; line-height:26px; font-size:.75rem; font-weight:700; }
.table-wrap { overflow-x:auto; }
.row-acts { display:flex; gap:14px; align-items:center; white-space:nowrap; }
.row-acts svg.i, .card .meta svg.i { width:13px; height:13px; vertical-align:-2px; margin-right:3px; }
.back { display:inline-flex; align-items:center; gap:4px; margin-bottom:14px; font-size:.76rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.back svg { width:15px; height:15px; color:var(--accent); }
table { width:100%; border-collapse:collapse; font-size:.88rem; }
th, td { text-align:left; padding:10px 8px; border-bottom:1px solid var(--line); }
th { color:var(--muted); font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.prose { white-space:pre-line; max-width:70ch; font-size:.95rem; color:#cfd5df; }

.profile-cover { position:relative; height:220px; border-radius:14px; overflow:hidden; isolation:isolate; }
.profile-cover .art { position:absolute; inset:0; width:100%; height:100%; z-index:-1; }
.profile-cover::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg, var(--bg), transparent 70%); }
.profile-head { display:flex; gap:24px; align-items:flex-end; margin:-80px 0 0 28px; position:relative; flex-wrap:wrap; }
.profile-head .av { background-clip:padding-box; }
.profile-head .who-t { padding-bottom:6px; flex:1; min-width:220px; }
.profile-head h1 { font-size:clamp(2.2rem,4vw,3.2rem); margin:0; }
.profile-head .acts { display:flex; gap:10px; padding-bottom:10px; margin-right:28px; }
.profile-body { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:28px; margin-top:24px; align-items:start; }
.tabs { display:flex; gap:6px; margin:0 0 20px; flex-wrap:wrap; }
.tabs a { height:36px; display:inline-flex; align-items:center; padding:0 16px; border-radius:999px; font-weight:700; font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); background:var(--surface); border:1px solid var(--line); }
.tabs a.active { color:#fff; background:var(--accent); border-color:var(--accent); }

.rules { margin:0; padding:0; list-style:none; display:grid; gap:8px; font-size:.85rem; color:#cfd5df; }
.rules li { position:relative; padding-left:22px; }
.rules li::before { position:absolute; left:0; top:0; font-weight:800; }
.rules.ok li::before { content:"✓"; color:var(--ok); } .rules.no li::before { content:"✕"; color:var(--accent); }
.notice { padding:12px 14px; border-radius:6px; background:var(--surface); border-left:3px solid var(--manatee); }
.notice.error { border-color:var(--accent); }
/* Hinweis auf neue Nutzungsbedingungen über jeder Seite (app.js termsBanner) */
.terms-banner { display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; margin:0 0 20px; padding:14px 18px; border-radius:var(--radius); background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--accent); }
.terms-banner p { flex:1 1 320px; margin:0; }
.terms-banner .form-msg { flex-basis:100%; }
.terms-banner .form-msg:empty { display:none; }
.terms-teens { margin:-6px 0 0; }
.check.terms a, .terms-banner a { color:inherit; text-decoration:underline; text-decoration-color:rgba(239,35,60,.6); text-underline-offset:3px; }
.check.terms a:hover, .terms-banner a:hover { color:var(--accent); }
.notice.ok { border-color:var(--ok); }
.empty { padding:34px; text-align:center; color:var(--muted); border:1px dashed var(--line); border-radius:var(--radius); }

/* Anmelden/Registrieren: Karte mit Bildseite wie in der Vorlage */
.auth { display:grid; grid-template-columns:1fr 1fr; max-width:980px; margin:12px auto 0; border-radius:14px; overflow:hidden; background:var(--surface); border:1px solid var(--line); }
.auth-art { position:relative; min-height:460px; padding:34px; display:flex; flex-direction:column; justify-content:flex-end; isolation:isolate; }
.auth-art .art { position:absolute; inset:0; width:100%; height:100%; z-index:-2; }
.auth-art::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg, rgba(18,19,29,.92), rgba(18,19,29,.1)); }
.auth-art h2 { font-size:3rem; }
.auth-art p { color:#c3cad6; margin:10px 0 0; max-width:36ch; }
.auth-form { padding:38px 34px; display:grid; align-content:center; }
.auth-form h1 { font-size:2.4rem; }
.auth-form form.stack { max-width:none; }

@media (prefers-reduced-motion: reduce) { .pill.live::before { animation:none; } a.card:hover, .genre:hover, .creator:hover { transform:none; } a.card:hover .thumb .art { transform:none; } }

@media (max-width:1380px) {
  .row.coll-row { grid-auto-columns:calc((100% - 2*16px)/3); }
  .account .hide-l, .who .who-n { display:none; }
  .who { padding:4px 8px 4px 4px; }
  .rail { position:static; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
  .row { grid-auto-columns:calc((100% - 3*16px)/4); }
  .row.r6 { grid-auto-columns:calc((100% - 4*16px)/5); }
  .row.pals { grid-auto-columns:calc((100% - 7*16px)/8); }
  .profile-body { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:1100px) {
  .top-nav { display:none; }
  .menu { display:grid; }
  .browse { grid-template-columns:minmax(0,1fr); }
  .filters { position:static; order:-1; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); align-items:start; }
  .filters .btn.block { grid-column:1 / -1; height:42px; }
  .picks { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .picks > :nth-child(3) { display:none; }
  .row.coll-row { grid-auto-columns:calc((100% - 16px)/2); }
  .row, .row.r4 { grid-auto-columns:calc((100% - 2*16px)/3); }
  .row.r6 { grid-auto-columns:calc((100% - 3*16px)/4); }
  .row.pals { grid-auto-columns:calc((100% - 5*16px)/6); }
  .genres { grid-template-columns:1fr 1fr 1fr; }
  .strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .topbar { padding:0 16px; gap:10px; height:62px; }
  .topbar > .brand .word { display:none; }
  .search { max-width:none; }
  .who .who-n, .who > svg.i, .account .hide-s { display:none; }
  .who { padding:4px; }
  main { padding:20px 16px 48px; }
  .preview-bar { padding:6px 16px; }
  .foot { padding:16px; }
  .feature { min-height:300px; padding:22px; }
  .detail { grid-template-columns:minmax(0,1fr); }
  .panel { position:static; }
  .auth { grid-template-columns:1fr; }
  .auth-art { min-height:200px; padding:24px; }
  .auth-form { padding:26px 22px; }
  .profile-head { margin:-56px 0 0 12px; gap:14px; }
  .profile-head .acts { margin-right:12px; }
}
@media (max-width:640px) {
  .row, .row.r4 { grid-auto-columns:78%; }
  .row.coll-row { grid-auto-columns:86%; }
  .picks { display:grid; grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:86%; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .picks > :nth-child(3) { display:flex; }
  .picks > * { scroll-snap-align:start; }
  .hero-c { padding:6px 0 20px; margin-bottom:20px; }
  .hello .acts { width:100%; }
  .build { padding:24px 20px; min-height:0; }
  .bar select { flex:1 1 140px; }
  /* Filter kompakt nebeneinander; der geöffnete Kasten nimmt die ganze Breite. */
  .filters { grid-template-columns:1fr 1fr; gap:10px; }
  .fbox[open] { grid-column:1 / -1; }
  .fbox summary { padding:12px 14px; }
  .fbox summary h3.box-t { font-size:1.15rem; }
  .row.r6 { grid-auto-columns:44%; }
  .row.pals { grid-auto-columns:23%; }
  .genres { grid-template-columns:1fr 1fr; grid-auto-rows:96px; }
  .genre:first-child { grid-column:span 2; grid-row:span 1; }
  .genre:first-child span { font-size:2rem; }
  .strip { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .strip .mini { width:40px; }
  .stat-row { grid-template-columns:repeat(3,1fr); gap:6px; }
  .stat-t { padding:10px; } .stat-t b { font-size:1.6rem; }
  .sec h2 { font-size:1.5rem; }
  .arrows { display:none; }
  .account .btn.hide-xs { display:none; }
  .account { gap:8px; }
  .account .btn { height:36px; padding:0 12px; }
  /* Suche als Lupe, die sich beim Antippen über die Topbar ausklappt. */
  .search { position:relative; flex:0 0 40px; height:40px; padding:0; justify-content:center; }
  .search input { position:absolute; inset:0; opacity:0; padding:0 0 0 40px; font-size:16px; cursor:pointer; }
  .search .ico { pointer-events:none; }
  .search:focus-within { flex:1 1 auto; justify-content:flex-start; padding:0 14px; }
  .search:focus-within input { position:static; opacity:1; padding:0; cursor:text; }
  .topbar:has(.search:focus-within) .account { display:none; }
  .pop { position:fixed; top:70px; left:16px; right:16px; width:auto; max-width:none; }
  .page-head { padding:24px 20px; }
  .profile-cover { height:150px; }
}
@media (max-width:350px) {
  .account .hide-xxs { display:none; }
}

/* Key-Art (img/*.webp) liegt über dem SVG-Fallback derselben Stelle. */
img.art { object-fit:cover; }
.mini { position:relative; }
.mini img.art { position:absolute; inset:0; }

/* Zugriffstokens und AI activity (tokens.js) */
.toks { display:grid; gap:12px; }
.tok { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; display:grid; gap:8px; }
.tok.off { opacity:.6; }
.tok-h { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.tok-h b { font-size:1rem; }
.tok-s, .tok-tpl { display:flex; flex-wrap:wrap; gap:6px; }
.tok-a { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.tok-a form { display:contents; }
.tok-a .form-msg:empty { display:none; }
code.scope { font-size:.74rem; padding:2px 6px; border-radius:4px; background:rgba(141,153,174,.16); color:var(--fg); }
.tok-new { display:grid; gap:10px; margin-top:20px; }
.tok-copy { display:flex; gap:8px; }
.tok-copy input { flex:1; min-width:0; font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.85rem; }
.evs .ev { padding:10px 0; border-bottom:1px solid var(--line); }
.evs .ev .t b { white-space:normal; }
.ev-i { width:30px; height:30px; flex:none; border-radius:50%; display:grid; place-items:center; background:rgba(63,182,122,.14); color:#7be0aa; }
.ev.denied .ev-i { background:rgba(216,0,50,.18); color:#ff6b81; }
.ev-i svg { width:16px; height:16px; }
