/* Hidden Worlds - Herbst, dunkel
   Farben pro Volk setzt das Plugin hwtheme per <style>:root{...}</style> (--c1 dunkel, --c2 mittel, --c3 hell, --acc Akzent). */
:root {
  --bg: #15101a;
  --surface: #1e1722;
  --surface-2: #281e2b;
  --ink: #eadfd2;
  --muted: #a99a92;
  --line: rgba(234, 223, 210, .12);
  --c1: #2e2a3c; --c2: #8e88ab; --c3: #dad5ec;
  --acc: #8e88ab; --acc-soft: rgba(142, 136, 171, .22);
  --f-display: "Waterfall", "Snell Roundhand", "Brush Script MT", cursive;
  --f-sub: "Zen Loop", "Waterfall", cursive;
  --f-body: "Commissioner", "Segoe UI", system-ui, sans-serif;
  color-scheme: dark;
}

/* ---------- Grundlagen ---------- */
html { background: var(--bg); }
body {
  margin: 0; text-align: left;
  background:
    radial-gradient(1200px 520px at 80% -8%, color-mix(in srgb, var(--c1) 38%, transparent), transparent 70%),
    radial-gradient(900px 600px at 0% 40%, color-mix(in srgb, var(--c2) 10%, transparent), transparent 70%),
    var(--bg);
  background-attachment: fixed;
  color: var(--ink);
  font: 400 1rem/1.65 var(--f-body);
  -webkit-font-smoothing: antialiased;
  overflow-y: scroll;
}
#container { min-width: 0; color: var(--ink); font: inherit; position: relative; z-index: 1; }
a:link, a:visited { color: var(--acc); text-decoration: none; }
a:hover, a:active { color: var(--c3); text-decoration: none; }
:focus-visible { outline: 2px solid var(--c3); outline-offset: 3px; border-radius: 4px; }
.wrapper { width: min(1120px, 100%); min-width: 0; max-width: none; margin-inline: auto; padding-inline: clamp(16px, 4vw, 32px); box-sizing: border-box; }
#content { background: transparent; padding: clamp(20px, 3vw, 34px) 0 40px; overflow: visible; width: auto; }
.smalltext { font-size: .85rem; }
.largetext { font-size: 1.1rem; }
hr { border: 0; border-top: 1px solid var(--line); background: none; height: 0; }
img { max-width: 100%; }
#hw-leaves { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; }

/* ---------- Banner ---------- */
.hw-hero { position: relative; height: clamp(230px, 32vw, 340px); overflow: hidden; border-bottom: 1px solid var(--line); background: var(--bg) center / cover no-repeat; }
.hw-hero canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.hw-hero[style]::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 55%, var(--bg) 100%); }
.hw-hero-in { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding-bottom: clamp(18px, 3vw, 32px); }
.hw-title {
  display: block; font: 400 clamp(4rem, 12vw, 8.2rem)/.85 var(--f-display); padding-bottom: .12em; width: fit-content; max-width: 100%;
  background: linear-gradient(95deg, var(--c3) 10%, color-mix(in srgb, var(--c3) 55%, #fff) 60%, var(--acc));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--c3);
  filter: drop-shadow(0 0 22px color-mix(in srgb, var(--c3) 45%, transparent)) drop-shadow(0 2px 8px rgba(0,0,0,.55));
}
.hw-tag { margin: .4rem 0 0; font-weight: 500; letter-spacing: .02em; text-shadow: 0 1px 12px rgba(0,0,0,.8); max-width: 44ch; }

/* ---------- Navigation und Leiste ---------- */
#logo { background: color-mix(in srgb, var(--surface) 82%, transparent); border-bottom: 1px solid var(--line); padding: 0; }
#logo .wrapper { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .3rem 1.5rem; padding-block: .5rem; }
#header ul.menu { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: .2rem 1.4rem; }
#header ul.menu li { margin: 0; padding: 0; }
#header ul.menu li a { color: var(--ink); font-weight: 500; font-size: .95rem; letter-spacing: .03em; padding: .25rem 0; border-bottom: 1px solid transparent; background: none !important; display: inline-block; }
#logo ul.top_links a { padding-left: 0 !important; }
#header ul.menu li a:hover { color: var(--ink); border-bottom-color: var(--acc); }
.hw-toggle { display: inline-flex; align-items: center; gap: .4rem; font-size: .85rem; color: var(--muted); cursor: pointer; }
.hw-toggle input { accent-color: var(--acc); }

#panel .upper, #panel .lower { background: color-mix(in srgb, var(--bg) 70%, transparent); color: var(--muted); border: 0; border-bottom: 1px solid var(--line); padding: .45rem 0; font-size: .88rem; }
#panel .upper a, #panel .lower a { color: var(--acc); font-weight: 500; }
#panel .upper a:hover, #panel .lower a:hover { color: var(--c3); }
#panel .upper a.logout, #panel .upper a.lost_password, #panel .upper a.register { background: none; padding-left: 0; }
#panel .lower ul.menu { gap: .1rem 1.1rem; }
#panel .lower ul.menu li a { font-size: .88rem; padding: 0; border: 0; background: none !important; }
#panel .lower ul.user_links { float: right; }
#panel .lower ul.panel_links { float: left; }
#panel .lower ul li a { background-image: none !important; padding-left: 0 !important; }
#panel .upper .wrapper::after, #panel .lower .wrapper::after { content: ""; display: block; clear: both; }
#search { float: right; margin: 0; }
#search input { background: var(--surface) !important; border: 1px solid var(--line) !important; border-radius: 6px; color: var(--ink); padding: .2rem .6rem; font-size: .85rem; }
#search input.button { padding: .2rem .8rem; cursor: pointer; }
#panel .upper .welcome { float: left; }

/* ---------- Brotkrumen ---------- */
.navigation { color: var(--muted); font-size: .88rem; margin: 0 0 1rem; }
.navigation a:link, .navigation a:visited { color: var(--muted); font-size: .88rem; }
.navigation a:hover { color: var(--c3); }
.navigation .active { color: var(--ink); font-size: .88rem; }

/* ---------- Tabellen, Kästen ---------- */
table { color: var(--ink); font-size: inherit; }
.tborder {
  width: 100%; background: color-mix(in srgb, var(--surface) 88%, transparent); border: 1px solid color-mix(in srgb, var(--acc) 22%, var(--line));
  border-radius: 8px; border-collapse: separate; border-spacing: 0; overflow: hidden; margin-bottom: 0;
}
.tfixed { table-layout: fixed; }
.thead, .thead a { background: linear-gradient(180deg, color-mix(in srgb, var(--c1) 70%, var(--surface)), var(--surface)); color: var(--c3); border: 0; border-bottom: 1px solid var(--line); padding: .55rem 1rem; font: 400 1.6rem/1.2 var(--f-sub); letter-spacing: .05em; }
.thead a:link, .thead a:visited { color: var(--c3); background: none; padding: 0; border: 0; }
.thead strong { font-weight: 400; }
.thead .smalltext { font: 400 .88rem/1.4 var(--f-body); letter-spacing: 0; color: var(--muted); }
.thead select { background: var(--surface); color: var(--ink); }
.tcat, .tcat a { background: color-mix(in srgb, var(--surface-2) 80%, transparent); color: var(--muted); border: 0; border-bottom: 1px solid var(--line); padding: .45rem 1rem; font-size: .85rem; }
.tcat a:link, .tcat a:visited { color: var(--ink); background: none; padding: 0; border: 0; }
.tcat strong { font-weight: 600; }
.trow1, .trow2, .trow_shaded { background: transparent; border: 0; border-bottom: 1px solid var(--line); padding: .7rem 1rem; color: var(--ink); }
.trow2 { background: color-mix(in srgb, var(--surface-2) 35%, transparent); }
.trow_shaded { background: color-mix(in srgb, var(--c1) 25%, transparent); }
.trow_sep { background: var(--surface-2); color: var(--muted); border: 0; padding: .4rem 1rem; }
.tfoot, .tfoot a { background: color-mix(in srgb, var(--surface-2) 60%, transparent); color: var(--muted); border: 0; padding: .5rem 1rem; }
.tfoot a:link, .tfoot a:visited { color: var(--acc); background: none; padding: 0; }
.no_bottom_border { border-bottom: 0; }
tr:last-child > td.trow1, tr:last-child > td.trow2 { border-bottom: 0; }
tr.trow_selected td { background: var(--acc-soft); color: var(--ink); }
.bottommenu { background: var(--surface); border: 1px solid var(--line); color: var(--muted); border-radius: 8px; }
fieldset { background: color-mix(in srgb, var(--surface) 80%, transparent); border: 1px solid var(--line); border-radius: 8px; color: var(--ink); padding: 1rem; }
fieldset legend { color: var(--c3); }
fieldset.trow2, fieldset.align_right { background: color-mix(in srgb, var(--surface-2) 60%, transparent); border: 1px solid var(--line); }
blockquote { background: var(--surface-2); border: 0; border-left: 2px solid var(--acc); border-radius: 0 6px 6px 0; color: var(--muted); padding: .6rem 1rem; margin: .6rem 0; }
blockquote cite { color: var(--ink); border-bottom: 1px solid var(--line); font-weight: 600; font-style: normal; }
.codeblock { background: var(--bg); border: 1px solid var(--line); border-radius: 6px; padding: 0; }
.codeblock .title { background: var(--surface-2); color: var(--c3); border-bottom: 1px solid var(--line); }
.codeblock code { background: var(--bg); color: var(--ink); }
.pm_alert, .red_alert, div.error, .success_message, .error_message { border-radius: 8px; }
.pm_alert { background: var(--acc-soft); border: 1px solid var(--acc); color: var(--ink); }
.red_alert { background: rgba(160, 30, 50, .25); border: 1px solid #c4475c; color: #ffd9de; }
div.error { background: rgba(160, 30, 50, .18); border: 1px solid #c4475c; color: var(--ink); }
div.error p em { color: #ff9aa8; }
.success_message { color: #9be3b0; }
.error_message { color: #ff9aa8; }
.highlight { background: var(--acc-soft); color: var(--ink); }

/* ---------- Formulare ---------- */
input.textbox, textarea, select, .editor input, input[type="text"], input[type="password"], input[type="email"], input[type="search"], input[type="number"], input[type="url"] {
  background: var(--bg); color: var(--ink); border: 1px solid var(--line); border-radius: 6px; padding: .4rem .6rem; font: inherit; font-size: .95rem;
}
input.textbox:focus, textarea:focus, select:focus { border-color: var(--acc); outline: 0; box-shadow: 0 0 0 2px var(--acc-soft); }
textarea { font-family: var(--f-body); }
select option { background: var(--surface); color: var(--ink); }
input.button, button.button, a.button, input[type="submit"], input[type="button"] {
  background: linear-gradient(180deg, color-mix(in srgb, var(--c2) 55%, var(--surface)), color-mix(in srgb, var(--c1) 70%, var(--surface)));
  color: var(--ink); border: 1px solid var(--acc); border-radius: 6px; padding: .42rem 1.05rem; font: 600 .9rem var(--f-body); letter-spacing: .02em; cursor: pointer; text-shadow: none;
}
input.button:hover, button.button:hover, input[type="submit"]:hover { box-shadow: 0 0 16px var(--acc-soft); border-color: var(--c3); background-position: 0 0; }
input.error, textarea.error, select.error { border-color: #c4475c; }
input.valid, textarea.valid, select.valid { border-color: #4d9a63; }
label.error { color: #ff9aa8; }
.editor, .editor_control_bar { background: var(--surface-2); border: 1px solid var(--line); color: var(--ink); }
.sceditor-container { background: var(--bg) !important; border-color: var(--line) !important; }
.sceditor-toolbar { background: var(--surface-2) !important; border-color: var(--line) !important; }
.sceditor-group { background: transparent !important; border-color: var(--line) !important; }
.sceditor-button:hover { background: var(--acc-soft) !important; }

/* ---------- Popups, Modals, Seitenzahlen ---------- */
.popup_menu { background: var(--surface); border: 1px solid var(--acc); border-radius: 6px; box-shadow: 0 8px 28px rgba(0,0,0,.5); }
.popup_menu .popup_item_container { background: transparent; }
.popup_menu .popup_item, .popup_menu a.popup_item:link, .popup_menu a.popup_item:visited { color: var(--ink); background: transparent; }
.popup_menu .popup_item:hover { background: var(--acc-soft); color: var(--c3); }
.modal { background: var(--surface); color: var(--ink); border: 1px solid var(--acc); border-radius: 10px; box-shadow: 0 12px 48px rgba(0,0,0,.6); }
.modal .thead { border-radius: 8px 8px 0 0; }
.blocker { background-color: rgba(8, 5, 12, .7) !important; }
.pagination { font-size: .88rem; color: var(--muted); }
.pagination .pages { font-weight: 600; }
.pagination a { background: var(--surface); border: 1px solid var(--line); border-radius: 5px; padding: .15rem .6rem; color: var(--ink); }
.pagination a:hover { background: var(--acc-soft); border-color: var(--acc); color: var(--c3); }
.pagination .pagination_current { background: var(--acc-soft); border: 1px solid var(--acc); border-radius: 5px; padding: .15rem .6rem; color: var(--c3); }
.pagination_breadcrumb { background: var(--surface); border: 1px solid var(--line); color: var(--ink); }
.drop_go_page { color: var(--muted); }

/* ---------- Lampe (Foren-Status) ---------- */
.forum_status, .subforumicon { display: inline-block; background: none !important; width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid color-mix(in srgb, var(--acc) 60%, transparent); vertical-align: middle; flex: none; box-sizing: border-box; }
.forum_on, .subforum_minion, .subforum_on { background: var(--c3) !important; border-color: var(--c3); box-shadow: 0 0 10px 2px color-mix(in srgb, var(--c3) 70%, transparent), 0 0 28px 6px color-mix(in srgb, var(--c3) 30%, transparent); }
.forum_offclose, .subforum_offclose { opacity: .45; border-style: dotted; }
.forum_offlink, .subforum_offlink { border-style: dashed; }
.subforumicon { width: 8px; height: 8px; margin-right: .2rem; box-shadow: none; }
.subforum_on { box-shadow: 0 0 8px 1px color-mix(in srgb, var(--c3) 70%, transparent); }
.forum_legend { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem 1.2rem; margin: 1.6rem 0 0; color: var(--muted); }
.forum_legend dt, .forum_legend dd { float: none; margin: 0; padding: 0; display: inline-flex; align-items: center; }
.forum_legend dd { margin-right: .4rem; }
.thread_legend { color: var(--muted); }
.thread_legend dd, .thread_legend dt { float: none; display: inline; }

/* ---------- Kategorien und Foren (Startseite, Unterforen) ---------- */
.hw-cat { margin-bottom: clamp(32px, 5vw, 54px); }
.hw-cat-head { display: flex; align-items: center; gap: 1.2rem; margin-bottom: 1rem; }
.hw-cat-head h2 { margin: 0; font: 400 clamp(2.9rem, 6vw, 4rem)/1 var(--f-display); padding-bottom: .1em; }
.hw-cat-head h2, .hw-cat-head h2 a { color: var(--c3); text-shadow: 0 0 26px color-mix(in srgb, var(--c3) 40%, transparent); }
.hw-cat-head::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--acc), transparent); opacity: .6; }
.hw-cat-desc { margin: -.4rem 0 1rem; color: var(--muted); }
.hw-subcat .hw-cat-head h2 { font: 400 1.9rem/1.2 var(--f-sub); letter-spacing: .05em; }
.hw-forums { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.hw-forum {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .3rem 1rem; align-items: start;
  padding: 1rem 1.1rem 1rem 1rem; border-radius: 8px;
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  border: 1px solid color-mix(in srgb, var(--acc) 22%, var(--line));
}
.hw-forum:hover { border-color: color-mix(in srgb, var(--acc) 60%, transparent); }
.hw-forum:last-child:nth-child(odd), .hw-forum:has(.hw-sub:nth-child(5)) { grid-column: 1 / -1; }
.hw-forum > .forum_status { margin-top: .95rem; }
.hw-forum h3 { margin: 0; font: 400 clamp(2.2rem, 4vw, 2.7rem)/1 var(--f-display); padding-bottom: .05em; display: inline; }
.hw-forum h3 a, .hw-forum h3 a:link, .hw-forum h3 a:visited { color: var(--ink); }
.hw-forum h3 a:hover { color: var(--c3); }
.hw-desc { margin: .1rem 0 0; color: var(--muted); font-size: .92rem; max-width: 62ch; }
.hw-desc:empty { display: none; }
.hw-subs { display: flex; flex-wrap: wrap; gap: .1rem 1.1rem; margin-top: .55rem; }
.hw-sub { font: 400 1.32rem/1.5 var(--f-sub); letter-spacing: .05em; display: inline-flex; align-items: center; gap: .45rem; color: var(--muted); }
.hw-sub::before { content: ""; width: 5px; height: 5px; background: var(--c2); transform: rotate(45deg); flex: none; }
.hw-sub .subforumicon { display: none; }
.hw-sub a:link, .hw-sub a:visited { color: var(--c3); }
.hw-sub a:hover { color: var(--ink); }
.hw-meta { grid-column: 2; margin: .55rem 0 0; font-size: .8rem; color: var(--muted); display: flex; flex-wrap: wrap; gap: .2rem 1.2rem; font-variant-numeric: tabular-nums; }
.hw-meta b { font-weight: 600; color: var(--ink); }
.hw-last .smalltext { display: inline; }
.hw-last .smalltext br { display: none; }
.hw-last .smalltext a strong { font-weight: 600; }
.hw-last .subforumicon { display: none; }
.hw-last { min-width: 0; overflow-wrap: anywhere; }

/* ---------- Statistik (Wer ist online, Legende) ---------- */
#boardstats_e .tcat { font-size: .9rem; }
#boardstats_e .trow1, #boardstats_e .trow2 { padding: .6rem 1rem; }

/* ---------- Namen ---------- */
.hw-uname { font-weight: 700; }

/* ---------- Themenliste ---------- */
.thread_status { background-image: none !important; width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid color-mix(in srgb, var(--acc) 60%, transparent); display: inline-block; vertical-align: middle; }
.thread_status.newfolder, .thread_status.newhotfolder, .thread_status.dot_newfolder, .thread_status.dot_newhotfolder { background: var(--c3) !important; border-color: var(--c3); box-shadow: 0 0 8px 1px color-mix(in srgb, var(--c3) 65%, transparent); }
.subject_new { font-weight: 700; }
a.subject_new { color: var(--c3); }
.inline_row a { word-break: break-word; }

/* ---------- Beiträge ---------- */
.post {
  display: grid; grid-template-columns: 220px minmax(0, 1fr); grid-template-rows: 1fr auto; overflow: hidden; margin-bottom: 14px;
  border: 1px solid color-mix(in srgb, var(--acc) 25%, var(--line)); border-radius: 8px; background: color-mix(in srgb, var(--surface) 90%, transparent);
}
.post.classic { padding-top: 0; }
.post .post_author, .post.classic .post_author {
  grid-row: 1 / 3; grid-column: 1; float: none; width: auto; margin: 0; border: 0; border-right: 1px solid var(--line); padding: 1.2rem 1rem; text-align: center;
  background: linear-gradient(180deg, color-mix(in srgb, var(--c1) 55%, var(--surface)), var(--surface));
}
.post .post_author div.author_avatar, .post.classic .post_author div.author_avatar { float: none; margin: 0 0 .6rem; text-align: center; }
.post .post_author div.author_avatar img { max-width: 110px; height: auto; padding: 0; border: 0; border-radius: 50%; background: var(--surface-2); box-shadow: 0 0 0 2px var(--acc), 0 0 24px var(--acc-soft); aspect-ratio: 1; object-fit: cover; }
.post .post_author div.author_information, .post.classic .post_author div.author_information { float: none; padding: 0; text-align: center; }
.post .post_author div.author_information .largetext { font-size: 1.15rem; }
.post .post_author div.author_information .smalltext { color: var(--c3); font-family: var(--f-sub); font-size: 1.15rem; letter-spacing: .05em; line-height: 1.3; }
.post .post_author div.author_statistics, .post.classic .post_author div.author_statistics { float: none; padding: .5rem 0 0; margin: .5rem 0 0; border-top: 1px solid var(--line); font-size: .8rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.post_content, .post.classic .post_content { grid-column: 2; float: none; width: auto; padding: 1.1rem 1.5rem .4rem; min-width: 0; }
.post .post_head { font-size: .8rem; color: var(--muted); border-bottom: 1px solid var(--line); padding-bottom: .6rem; margin-bottom: .6rem; }
.post .post_head span.post_date { color: var(--muted); }
.post .post_head span.edited_post, .post .post_head span.edited_post a { color: var(--muted); }
.post_body { font-size: 1rem; padding: .6rem 0 1rem; line-height: 1.7; overflow-wrap: anywhere; }
.post_content .signature { border-top: 1px solid var(--line); color: var(--muted); font-size: .88rem; }
.post .post_meta, .post .post_meta a:link, .post .post_meta a:visited { color: var(--muted); }
.post_controls { grid-column: 2; clear: none; padding: .5rem 1.2rem .8rem; background: transparent; border: 0; }
.post_controls::after { content: ""; display: block; clear: both; }
.postbit_buttons > a:link, .postbit_buttons > a:visited { background: var(--surface-2); border: 1px solid var(--line); border-radius: 5px; color: var(--ink); padding: .12rem .6rem; font-size: .8rem; margin: 0 .2rem .2rem 0; display: inline-block; }
.postbit_buttons > a:hover { background: var(--acc-soft); border-color: var(--acc); color: var(--c3); }
.postbit_buttons a span { background-image: none !important; padding-left: 0 !important; }
.post.unapproved_post .post_author, .post.unapproved_post .post_controls { background: color-mix(in srgb, var(--c1) 30%, transparent); }
.post.deleted_post { background: rgba(160, 30, 50, .12); }
.scaleimages img { max-width: 100%; height: auto; }
#posts_container { margin-top: 0; }
.ignored_post { background: var(--surface-2); border: 1px solid var(--line); }
.attachment { color: var(--ink); }
.repbox { border-radius: 4px; }
.reputation_positive { color: #7ed89a; }
.reputation_negative { color: #ff8a9a; }

/* ---------- Online ---------- */
.online { color: #7ed89a; }
.offline { color: var(--muted); }

/* ---------- Fußzeile ---------- */
#footer { background: none; color: var(--muted); border-top: 1px solid var(--line); margin-top: 1rem; }
#footer .upper { background: none; border: 0; padding: 1rem 0 .4rem; }
#footer .lower { background: none; padding: .4rem 0 2rem; color: var(--muted); font-size: .85rem; }
#footer a:link, #footer a:visited { color: var(--muted); }
#footer a:hover { color: var(--c3); }
#footer ul.menu li { margin-left: 0; margin-right: 1.2rem; }
#footer ul.menu li a { padding: 0; background: none; }
#footer .upper .language select, #footer .upper .theme select { background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: 5px; }
#footer .lower #current_time { float: none; display: block; margin-bottom: .2rem; }
#footer .lower #copyright { display: block; }

/* ---------- Player (Themensong, Stimme) ---------- */
.hw-player { display: inline-flex; align-items: center; gap: .85rem; padding: .5rem 1.1rem .5rem .55rem; border-radius: 999px; border: 1px solid var(--line); background: var(--surface-2); min-width: min(100%, 20rem); }
.hw-play { flex: none; width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 1px solid var(--acc); cursor: pointer; display: grid; place-items: center; padding: 0;
  background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--c3) 55%, var(--c2)), var(--c2) 60%, var(--c1)); box-shadow: 0 0 14px var(--acc-soft); }
.hw-play:hover { box-shadow: 0 0 22px color-mix(in srgb, var(--c3) 55%, transparent); }
.hw-play svg, .hw-mini svg { width: 1.05rem; height: 1.05rem; fill: #fff; }
.i-pause { display: none; }
[data-state="playing"] .i-play { display: none; }
[data-state="playing"] .i-pause { display: block; }
.hw-pinfo { display: grid; gap: .1rem; min-width: 0; flex: 1; }
.hw-ptitle { font-weight: 600; font-size: .92rem; line-height: 1.2; }
.hw-psub { font-size: .78rem; color: var(--muted); line-height: 1.2; }
.hw-bar { height: 3px; border-radius: 2px; background: var(--line); overflow: hidden; margin-top: .3rem; }
.hw-bar i { display: block; height: 100%; width: var(--p, 0%); background: linear-gradient(90deg, var(--acc), var(--c3)); }
.hw-ptime { font-size: .78rem; color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.hw-mini { display: inline-flex; align-items: center; gap: .4rem; margin-left: .7rem; padding: .12rem .75rem .12rem .5rem; border-radius: 999px; border: 1px solid var(--acc); font-size: .82rem; font-weight: 500; cursor: pointer; color: var(--ink);
  background: linear-gradient(90deg, var(--acc-soft) var(--p, 0%), transparent var(--p, 0%)); }
.hw-mini:hover { border-color: var(--c3); }
.hw-embed { margin-top: .6rem; max-width: 560px; }
.hw-embed iframe { width: 100%; border: 0; border-radius: 8px; background: var(--bg); display: block; }
.hw-link { color: var(--acc); }

/* ---------- Profil ---------- */
.hw-profile { border: 1px solid color-mix(in srgb, var(--acc) 30%, var(--line)); border-radius: 10px; overflow: hidden; background: color-mix(in srgb, var(--surface) 92%, transparent); margin-bottom: 40px; }
.hw-cover { position: relative; height: clamp(170px, 26vw, 260px); background: var(--bg) center / cover no-repeat; }
.hw-cover canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.hw-idrow { position: relative; display: flex; flex-wrap: wrap; align-items: flex-end; gap: .8rem 1.4rem; padding: 0 clamp(16px, 3vw, 28px); margin-top: calc(clamp(88px, 12vw, 120px) / -2); }
.hw-icon { flex: none; width: clamp(88px, 12vw, 120px); aspect-ratio: 1; border-radius: 12px; border: 3px solid var(--bg); box-shadow: 0 0 0 2px var(--acc), 0 0 28px var(--acc-soft); overflow: hidden;
  background: radial-gradient(circle at 35% 28%, var(--c3), var(--c2) 52%, var(--c1)); display: grid; place-items: center; }
.hw-icon img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hw-ident { flex: 1 1 18rem; min-width: 0; padding-bottom: .2rem; }
.hw-ident h1 { margin: 0; font: 400 clamp(3.4rem, 8vw, 5.4rem)/.95 var(--f-display); padding-bottom: .1em; overflow-wrap: anywhere;
  background: linear-gradient(95deg, var(--c3) 15%, color-mix(in srgb, var(--c3) 50%, #fff)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: var(--c3);
  filter: drop-shadow(0 0 18px color-mix(in srgb, var(--c3) 40%, transparent)); }
.hw-volkline { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; margin-top: .1rem; }
.hw-volk { font: 400 1.75rem/1.2 var(--f-sub); letter-spacing: .05em; color: var(--c3); }
.hw-plaque { display: inline-block; font-size: .75rem; font-weight: 600; letter-spacing: .03em; padding: .08rem .55rem; border-radius: 3px; border: 1px solid var(--acc); background: linear-gradient(90deg, var(--acc-soft), transparent); color: var(--c3); }
.hw-actions { display: flex; flex-wrap: wrap; gap: .5rem; padding-bottom: .4rem; }
.hw-btn, .hw-btn:link, .hw-btn:visited { display: inline-block; padding: .48rem 1.05rem; border-radius: 6px; border: 1px solid var(--acc); background: linear-gradient(180deg, color-mix(in srgb, var(--c2) 55%, var(--surface)), color-mix(in srgb, var(--c1) 70%, var(--surface))); font-weight: 600; font-size: .9rem; color: var(--ink); cursor: pointer; }
.hw-btn:hover { box-shadow: 0 0 16px var(--acc-soft); border-color: var(--c3); color: var(--ink); }
.hw-btn.ghost, .hw-btn.ghost:link, .hw-btn.ghost:visited { background: transparent; border-color: var(--line); font-weight: 500; }
.hw-intro { padding: 1rem clamp(16px, 3vw, 28px) 0; display: grid; gap: .9rem; }
.hw-intro:empty { display: none; }
.hw-quote { margin: 0; font-style: italic; font-size: 1.12rem; max-width: 62ch; }
.hw-tabs-scroll { margin-top: 1.1rem; overflow-x: auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--bg) 40%, transparent); }
.hw-tabs { display: flex; min-width: max-content; padding-inline: clamp(8px, 2vw, 20px); }
.hw-tab { position: relative; padding: .55rem 1.2rem .5rem; background: none; border: 0; cursor: pointer; font: 400 1.55rem/1.3 var(--f-sub); letter-spacing: .05em; color: color-mix(in srgb, var(--ink) 75%, var(--bg)); white-space: nowrap; }
.hw-tab:hover { color: var(--ink); }
.hw-tab[aria-selected="true"] { color: var(--c3); text-shadow: 0 0 16px color-mix(in srgb, var(--c3) 55%, transparent); }
.hw-tab[aria-selected="true"]::after { content: ""; position: absolute; left: 1rem; right: 1rem; bottom: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--c3), transparent); }
.hw-panel { padding: clamp(16px, 3vw, 28px); display: grid; gap: 16px; }
.hw-panel[hidden] { display: none; }
.hw-empty { margin: 0; color: var(--muted); }
.hw-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.hw-group { border: 1px solid var(--line); border-radius: 8px; padding: 1rem 1.2rem 1.1rem; background: color-mix(in srgb, var(--surface-2) 55%, transparent); min-width: 0; }
.hw-group.full { grid-column: 1 / -1; }
.hw-group h2 { margin: 0 0 .6rem; font: 400 1.6rem/1.2 var(--f-sub); letter-spacing: .05em; color: var(--c3); }
.hw-group dl { margin: 0; display: grid; grid-template-columns: minmax(7.5rem, max-content) minmax(0, 1fr); gap: .3rem 1.1rem; }
.hw-group dt { color: var(--muted); font-size: .92rem; }
.hw-group dd { margin: 0; overflow-wrap: anywhere; }
.hw-group p, .hw-prose p { margin: 0 0 .9em; max-width: 68ch; }
.hw-prose { margin-top: .6rem; }
.hw-group dl + .hw-prose { border-top: 1px solid var(--line); padding-top: .7rem; }
.hw-prose p:last-child { margin-bottom: 0; }
.hw-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.hw-list li { display: flex; gap: .6rem; align-items: baseline; }
.hw-list li::before { content: ""; flex: none; width: 5px; height: 5px; background: var(--c2); transform: rotate(45deg) translateY(-2px); }
.hw-list b { font-weight: 600; }
.hw-list span { color: var(--muted); }
.hw-rel { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.hw-relcard { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .1rem .9rem; align-items: center; border: 1px solid var(--line); border-radius: 8px; padding: .9rem 1rem; background: color-mix(in srgb, var(--surface-2) 55%, transparent); }
.hw-dot { grid-row: span 3; width: 52px; height: 52px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, var(--c3), var(--c2) 60%, var(--c1)); box-shadow: 0 0 0 2px color-mix(in srgb, var(--c3) 70%, transparent); }
.hw-how { font: 400 1.25rem/1.2 var(--f-sub); letter-spacing: .05em; color: var(--c3); }
.hw-who { font-weight: 600; }
.hw-what { font-size: .85rem; color: var(--muted); }
.hw-group .tborder { margin-top: .6rem; }
.hw-group .hw-table { width: 100%; border-collapse: collapse; }
.hw-group .hw-table td { border: 0; border-bottom: 1px solid var(--line); background: transparent; padding: .35rem .2rem; }
.hw-group .hw-table tr:last-child td { border-bottom: 0; }
.hw-group .hw-table td:first-child { color: var(--muted); width: 38%; }
.hw-modbox { display: grid; gap: .6rem; margin-top: .8rem; }
.hw-center { text-align: center; margin-top: .8rem; }

/* ---------- Schmale Bildschirme ---------- */
@media (max-width: 820px) {
  .hw-forums, .hw-cols, .hw-rel { grid-template-columns: minmax(0, 1fr); }
  .hw-forum:last-child:nth-child(odd), .hw-forum:has(.hw-sub:nth-child(5)) { grid-column: auto; }
  .hw-group dl { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .hw-group dt { margin-top: .45rem; }
  .post { grid-template-columns: minmax(0, 1fr); }
  .post .post_author, .post.classic .post_author { grid-row: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .post_content, .post_controls { grid-column: 1; }
  #panel .lower ul.user_links, #panel .lower ul.panel_links, #search, #panel .upper .welcome { float: none; }
  .hw-hero { height: clamp(200px, 48vw, 260px); }
}
@media (prefers-reduced-motion: reduce) { #hw-leaves { display: none; } }

/* Korrekturen */
.hw-last div, .hw-last .smalltext div { display: inline; text-align: left !important; margin: 0; padding: 0; }
.hw-meta { align-items: baseline; }
.hw-forum:not(:has(.hw-subs)) .hw-desc { margin-bottom: .2rem; }
@media (max-width: 820px) {
  .tborder:not(.hw-table) { display: block; overflow-x: auto; }
  .thead { font-size: 1.35rem; }
  .hw-title { font-size: clamp(3.4rem, 17vw, 5rem); }
}

/* Beitrag: grosses Bild und Zierzeichen */
.post { grid-template-columns: 250px minmax(0, 1fr); }
.post .post_author div.author_avatar img { width: 190px; height: 190px; max-width: 100%; border-radius: 14px; object-fit: cover; aspect-ratio: 1; padding: 0; box-shadow: 0 0 0 2px var(--acc), 0 0 28px var(--acc-soft); }
.post .post_author div.author_information .smalltext::before { content: ""; display: block; width: 9px; height: 9px; margin: .55rem auto .35rem; background: linear-gradient(135deg, var(--c3), var(--acc)); transform: rotate(45deg); box-shadow: 0 0 10px var(--acc-soft); }
.post .post_author div.author_information .smalltext::after { content: ""; display: block; width: 60%; height: 1px; margin: .5rem auto 0; background: linear-gradient(90deg, transparent, var(--acc), transparent); opacity: .7; }
@media (max-width: 820px) { .post { grid-template-columns: minmax(0, 1fr); } .post .post_author div.author_avatar img { width: 130px; height: 130px; } }

/* Banner: grosse Bilder, Gesichter bleiben sichtbar */
.hw-hero { height: clamp(260px, 30vw, 520px); background-position: center 28%; }
.hw-hero[style]::after { background: linear-gradient(to bottom, rgba(10,8,14,.25) 0%, transparent 30%, color-mix(in srgb, var(--bg) 70%, transparent) 78%, var(--bg) 100%); }
.hw-cover { background-position: center 28%; }

/* Avatar hochkant */
.post { grid-template-columns: 260px minmax(0, 1fr); }
.post .post_author div.author_avatar img { width: 200px; height: 280px; max-width: 100%; aspect-ratio: 5 / 7; border-radius: 14px; object-fit: cover; }
.hw-idrow { margin-top: calc(clamp(110px, 15vw, 150px) * -0.7); }
.hw-icon { width: clamp(110px, 15vw, 150px); aspect-ratio: 5 / 7; border-radius: 14px; }
@media (max-width: 820px) { .post .post_author div.author_avatar img { width: 140px; height: 196px; } }

/* Strich unter dem Banner entfernt */
.hw-hero { border-bottom: 0; margin-bottom: -1px; }
.hw-hero[style]::after { bottom: -1px; }
#logo { border-top: 0; }
