/*
Theme Name: Radio i Skåne
Template: twentytwentyfive
Description: Eget tema för ssra.se. Mottagare, vattenfallsspektrum, frekvensskala och QSL-kort. Mörkt, exakt och nördigt.
Version: 1.0.0
Text Domain: rs-signal
*/

:root {
  --rs-night: var(--wp--preset--color--night);
  --rs-panel: var(--wp--preset--color--panel);
  --rs-panel-2: var(--wp--preset--color--panel-2);
  --rs-line: var(--wp--preset--color--line);
  --rs-grid: var(--wp--preset--color--grid);
  --rs-soft: var(--wp--preset--color--soft);
  --rs-text: var(--wp--preset--color--text);
  --rs-bright: var(--wp--preset--color--bright);
  --rs-ph: var(--wp--preset--color--phosphor);
  --rs-ph-deep: var(--wp--preset--color--phosphor-deep);
  --rs-amber: var(--wp--preset--color--amber);
  --rs-paper: var(--wp--preset--color--paper);
  --rs-mono: var(--wp--preset--font-family--mono);
  --rs-display: var(--wp--preset--font-family--display);
  --rs-ease: cubic-bezier(.2, .8, .2, 1);
  --rs-glow: 0 0 18px rgba(98, 255, 166, .35);
}

/* ---------- Grund ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: 6rem; }
body {
  font-feature-settings: "kern", "liga";
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  background-color: var(--rs-night);
  background-image:
    radial-gradient(1200px 600px at 80% -10%, rgba(98, 255, 166, .05), transparent 60%),
    linear-gradient(rgba(138, 152, 143, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(138, 152, 143, .035) 1px, transparent 1px);
  background-size: auto, 24px 24px, 24px 24px;
  overflow-x: clip;
}
::selection { background: var(--rs-amber); color: var(--rs-night); }
:where(a) { text-underline-offset: .22em; text-decoration-thickness: 1px; transition: color .2s ease, text-decoration-color .2s ease; }
:focus-visible { outline: 2px solid var(--rs-amber); outline-offset: 3px; border-radius: 2px; }
img { display: block; max-width: 100%; height: auto; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rs-skip { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--rs-ph); color: var(--rs-night); padding: .6rem 1rem; font-family: var(--rs-mono); font-size: .8rem; text-decoration: none; }
.rs-skip:focus { top: 1rem; }
.wp-site-blocks > main, .wp-site-blocks > .wp-block-group { margin-block-start: 0; }
.wp-site-blocks { padding: 0; }
.rs-arrow { display: inline-block; vertical-align: middle; width: 1em; height: .65em; transition: transform .35s var(--rs-ease); }

.rs-kicker {
  font-family: var(--rs-mono); font-size: .72rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase;
  color: var(--rs-amber); display: flex; align-items: center; gap: .7rem; margin: 0;
}
.rs-kicker::before {
  content: ""; width: 30px; height: 10px; flex: none;
  background: url("assets/img/wave-amber.svg") 0 50% / 30px 10px no-repeat;
}
.rs-hero__kicker::before { display: none; }
.rs-sep { display: inline-block; width: 1px; height: .9em; background: var(--rs-line); margin: 0 .8rem; vertical-align: -1px; }

/* ---------- Toppremsa ---------- */
.rs-topbar { border-bottom: 1px solid var(--rs-line); font-family: var(--rs-mono); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--rs-grid); }
.rs-topbar p { margin: 0; padding: .5rem 0; display: flex; align-items: center; white-space: nowrap; }
.rs-utc__k { color: var(--rs-amber); }
.rs-utc__t { color: var(--rs-text); font-variant-numeric: tabular-nums; }
.rs-live { display: inline-flex; align-items: center; gap: .5rem; color: var(--rs-ph); }
.rs-live i { width: 7px; height: 7px; border-radius: 50%; background: var(--rs-ph); box-shadow: 0 0 8px var(--rs-ph); }

/* ---------- Sidhuvud ---------- */
.rs-header { position: sticky; top: 0; z-index: 60; background: rgba(10, 15, 12, .86); backdrop-filter: blur(12px) saturate(1.3); -webkit-backdrop-filter: blur(12px) saturate(1.3); border-bottom: 1px solid var(--rs-line); }
.rs-header__row { padding-block: .8rem; gap: 1.5rem; }
.rs-brand { display: inline-flex; align-items: center; gap: .8rem; text-decoration: none; color: var(--rs-bright); flex: none; }
.rs-brand img { width: 42px; height: 42px; transition: transform .7s var(--rs-ease), filter .3s; }
.rs-brand:hover img { transform: rotate(-8deg) scale(1.04); filter: drop-shadow(0 0 10px rgba(98, 255, 166, .45)); }
.rs-brand__name { font-family: var(--rs-display); font-weight: 600; font-size: 1.32rem; letter-spacing: -.025em; line-height: 1; }
.rs-brand:hover { color: var(--rs-bright); }

.rs-nav .wp-block-navigation-item__content { color: var(--rs-soft); text-decoration: none; position: relative; padding-block: .4rem; }
.rs-nav .wp-block-navigation-item__content::before {
  content: ""; position: absolute; left: 50%; top: -.55rem; width: 0; height: 0; border: 5px solid transparent; border-top-color: var(--rs-amber);
  transform: translate(-50%, -4px); opacity: 0; transition: opacity .25s, transform .35s var(--rs-ease);
}
.rs-nav .wp-block-navigation-item__content:hover, .rs-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--rs-ph); }
.rs-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover::before { opacity: 1; transform: translate(-50%, 0); }
.rs-nav .wp-block-navigation__submenu-container {
  background: var(--rs-panel) !important; border: 1px solid var(--rs-line) !important; border-radius: 4px; padding: .5rem !important; min-width: 270px !important;
  box-shadow: 0 20px 40px rgba(0, 0, 0, .45);
}
.rs-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem .7rem !important; text-transform: none; letter-spacing: 0; font-family: var(--wp--preset--font-family--text); font-size: .95rem; color: var(--rs-text); border-radius: 3px; }
.rs-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: rgba(98, 255, 166, .08); color: var(--rs-ph); }
.rs-nav .wp-block-navigation__submenu-icon { color: var(--rs-grid); }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--rs-night) !important; color: var(--rs-text) !important; padding: 1.5rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.05rem; color: var(--rs-bright); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; background: transparent !important; padding: .2rem 0 .6rem 1rem !important; }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { color: var(--rs-bright); }

/* S-meter: läsindikator i sidhuvudets underkant */
.rs-smeter { position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; opacity: 0; transition: opacity .3s; pointer-events: none; }
.has-smeter .rs-smeter { opacity: 1; }
.rs-smeter::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(138, 152, 143, .28) 0 2px, transparent 2px 10px); }
.rs-smeter i { position: absolute; inset: 0; transform-origin: 0 50%; transform: scaleX(var(--p, 0)); background: linear-gradient(90deg, var(--rs-ph-deep), var(--rs-ph) 70%, var(--rs-amber)); box-shadow: 0 0 10px rgba(98, 255, 166, .5); }

/* ---------- Startsidan: hero ---------- */
.rs-home { padding-bottom: var(--wp--preset--spacing--40); }
.rs-hero { position: relative; padding-top: clamp(2.5rem, 7vw, 6.5rem); padding-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.rs-hero__grid {
  position: absolute; inset: 0 -4vw; z-index: -1; pointer-events: none;
  background:
    linear-gradient(rgba(138, 152, 143, .08) 1px, transparent 1px) 0 0 / 96px 96px,
    linear-gradient(90deg, rgba(138, 152, 143, .08) 1px, transparent 1px) 0 0 / 96px 96px;
  -webkit-mask-image: radial-gradient(70% 90% at 30% 40%, #000, transparent 75%); mask-image: radial-gradient(70% 90% at 30% 40%, #000, transparent 75%);
}
.rs-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--rs-amber); box-shadow: 0 0 10px var(--rs-amber); }
.rs-hero__title {
  font-family: var(--rs-display); font-weight: 500; font-size: clamp(3.6rem, 13.2vw, 12.5rem); line-height: .84; letter-spacing: -.06em;
  color: var(--rs-bright); margin: 1.4rem 0 0; display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .18em;
}
.rs-hero__i { font-family: var(--rs-mono); font-weight: 400; font-size: .26em; letter-spacing: 0; color: var(--rs-amber); align-self: center; transform: translateY(-.4em); border: 1px solid currentColor; border-radius: 3px; padding: .05em .35em; }
.rs-hero__w2 { color: var(--rs-ph); text-shadow: 0 0 40px rgba(98, 255, 166, .28); position: relative; }
.rs-hero__foot { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 2rem 4rem; align-items: end; margin-top: clamp(1.5rem, 3vw, 2.6rem); }
.rs-hero__lede { font-size: clamp(1.1rem, 1.5vw, 1.32rem); line-height: 1.55; color: var(--rs-text); max-width: 44ch; margin: 0; }
.rs-hero__by { display: flex; gap: .9rem; align-items: center; justify-self: end; font-family: var(--rs-mono); font-size: .74rem; letter-spacing: .04em; color: var(--rs-grid); margin: 0; border: 1px solid var(--rs-line); border-radius: 999px; padding: .4rem 1.1rem .4rem .4rem; background: rgba(15, 22, 17, .7); }
.rs-hero__by b { color: var(--rs-bright); font-weight: 500; font-size: .82rem; }
.rs-hero__by img { border-radius: 50%; }

/* ---------- Mottagaren (vattenfallet) ---------- */
.rs-rx {
  --time: 64px; --ro: 360px;
  display: grid; grid-template-columns: var(--time) minmax(0, 1fr) var(--ro);
  border: 1px solid var(--rs-line); border-radius: 8px; background: var(--rs-panel); overflow: hidden;
  box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .8), inset 0 1px 0 rgba(255, 255, 255, .03);
  margin-top: clamp(1rem, 2vw, 1.5rem); position: relative;
}
.rs-rx__bar { grid-column: 1 / -1; display: flex; align-items: center; gap: 1.2rem; padding: .6rem 1rem; border-bottom: 1px solid var(--rs-line); font-family: var(--rs-mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rs-grid); background: var(--rs-panel-2); }
.rs-rx__bar #rs-rx-title { color: var(--rs-text); }
.rs-rx__bar-mid { margin-left: auto; color: var(--rs-ph); }
.rs-rx__led { width: 8px; height: 8px; border-radius: 50%; background: var(--rs-ph); box-shadow: 0 0 10px var(--rs-ph); }
.rs-rx__bands { grid-column: 2; grid-row: 2; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); border-bottom: 1px solid var(--rs-line); }
.rs-band {
  --c: var(--rs-ph);
  display: flex; justify-content: space-between; align-items: center; gap: .4rem; padding: .7rem .7rem .6rem; text-decoration: none; color: var(--rs-soft);
  font-family: var(--rs-mono); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; position: relative; min-width: 0;
  border-left: 1px solid var(--rs-line); transition: background .25s, color .25s;
}
.rs-band:first-child { border-left: 0; }
.rs-band::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: var(--c); opacity: .55; transition: opacity .25s, height .25s; }
.rs-band[data-mode="ssb"] { --c: #3FD68A; }
.rs-band[data-mode="ft8"] { --c: #9DFFC6; }
.rs-band[data-mode="cw"] { --c: var(--rs-amber); }
.rs-band[data-mode="fm"] { --c: #FFD68C; }
.rs-band:hover, .rs-band:focus-visible { background: rgba(98, 255, 166, .06); color: var(--rs-bright); }
.rs-band:hover::after { opacity: 1; height: 5px; }
.rs-band__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rs-band__short { display: none; }
.rs-band__count { color: var(--rs-night); background: var(--c); border-radius: 2px; padding: 0 .35em; font-weight: 600; font-size: .66rem; }
.rs-rx__scale {
  grid-column: 2; grid-row: 3; position: relative; height: 30px; border-bottom: 1px solid var(--rs-line);
  background:
    repeating-linear-gradient(90deg, rgba(138, 152, 143, .55) 0 1px, transparent 1px 2.5%) 0 0 / 100% 6px no-repeat,
    repeating-linear-gradient(90deg, rgba(138, 152, 143, .85) 0 1px, transparent 1px 12.5%) 0 0 / 100% 11px no-repeat;
}
.rs-rx__scale span { position: absolute; left: var(--p); bottom: 4px; transform: translateX(-50%); font-family: var(--rs-mono); font-size: .64rem; color: var(--rs-grid); letter-spacing: .04em; }
.rs-rx__scale span:first-child { transform: translateX(4px); }
.rs-rx__scale span:last-child { transform: translateX(calc(-100% - 4px)); }
.rs-rx__body { display: contents; }
.rs-rx__time { grid-column: 1; grid-row: 4; position: relative; border-right: 1px solid var(--rs-line); background: var(--rs-panel-2); }
.rs-rx__time span { position: absolute; right: 0; top: var(--y); transform: translateY(-50%); padding-right: 12px; font-family: var(--rs-mono); font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rs-grid); }
.rs-rx__time span::after { content: ""; position: absolute; right: 0; top: 50%; width: 7px; height: 1px; background: var(--rs-grid); }
.rs-rx__time span:first-child { color: var(--rs-ph); }
.rs-rx__fall { grid-column: 2; grid-row: 4; position: relative; height: clamp(340px, 36vw, 520px); background: #070B09; overflow: hidden; isolation: isolate; }
.rs-rx__canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2; }
.rs-rx__fall::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: repeating-linear-gradient(to bottom, rgba(0, 0, 0, .18) 0 1px, transparent 1px 3px); }
.rs-rx__cursor { position: absolute; top: 0; bottom: 0; left: var(--x, 50%); width: 1px; background: var(--rs-amber); opacity: 0; transition: left .7s var(--rs-ease), opacity .3s; pointer-events: none; z-index: 1; }
.rs-rx__cursor::before { content: ""; position: absolute; top: 0; bottom: 0; left: -28px; width: 56px; background: linear-gradient(90deg, transparent, rgba(255, 181, 71, .09), transparent); }
.rs-rx__cursor::after { content: ""; position: absolute; top: 0; left: -6px; border: 6px solid transparent; border-top-color: var(--rs-amber); }
.has-cursor .rs-rx__cursor { opacity: .85; }
.rs-rx__signals { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; z-index: 2; }
.rs-rx__signals li { position: absolute; left: var(--x); top: var(--y); }
.rs-sig { position: absolute; left: 0; top: 0; width: 36px; height: var(--len); transform: translateX(-50%); display: block; text-decoration: none; color: var(--rs-bright); }
.rs-sig__trace {
  position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; transform: translateX(-50%);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 14%, #000 84%, transparent); mask-image: linear-gradient(to bottom, transparent, #000 14%, #000 84%, transparent);
  background: linear-gradient(to bottom, #FFE2A6, var(--rs-ph) 55%, var(--rs-ph-deep));
  filter: drop-shadow(0 0 6px rgba(98, 255, 166, .7)); transition: filter .3s, width .3s var(--rs-ease);
}
.rs-sig[data-mode="ssb"] .rs-sig__trace { width: 16px; background: repeating-linear-gradient(90deg, rgba(98, 255, 166, .95) 0 2px, rgba(98, 255, 166, .35) 2px 3px, rgba(157, 255, 198, .8) 3px 5px, rgba(30, 143, 85, .5) 5px 7px); }
.rs-sig[data-mode="ft8"] .rs-sig__trace { width: 7px; background: repeating-linear-gradient(to bottom, #B8FFD6 0 10px, transparent 10px 14px); }
.rs-sig[data-mode="cw"] .rs-sig__trace { width: 3px; background: repeating-linear-gradient(to bottom, #FFD68C 0 3px, transparent 3px 6px, #FFD68C 6px 15px, transparent 15px 18px, #FFD68C 18px 21px, transparent 21px 29px); filter: drop-shadow(0 0 5px rgba(255, 181, 71, .8)); }
.rs-sig[data-mode="fm"] .rs-sig__trace { width: 22px; background: linear-gradient(90deg, transparent, rgba(98, 255, 166, .55) 25%, #FFE2A6 50%, rgba(98, 255, 166, .55) 75%, transparent); }
.rs-sig__tag { position: absolute; left: calc(50% + 12px); top: -4px; font-family: var(--rs-mono); font-size: .64rem; color: var(--rs-soft); background: rgba(7, 11, 9, .75); padding: 0 .25rem; border-radius: 2px; transition: color .2s; }
.rs-sig__label {
  position: absolute; left: calc(50% + 12px); top: 16px; width: max-content; max-width: 250px; white-space: normal;
  font-family: var(--rs-display); font-size: .92rem; font-weight: 500; line-height: 1.2; color: var(--rs-bright);
  background: rgba(7, 11, 9, .9); border-left: 2px solid var(--rs-amber); padding: .35rem .55rem;
  opacity: 0; transform: translateX(-6px); transition: opacity .25s, transform .35s var(--rs-ease); pointer-events: none;
}
.is-left .rs-sig__tag { left: auto; right: calc(50% + 12px); }
.is-left .rs-sig__label { left: auto; right: calc(50% + 12px); border-left: 0; border-right: 2px solid var(--rs-amber); text-align: right; transform: translateX(6px); }
.rs-sig:hover .rs-sig__trace, .rs-sig:focus-visible .rs-sig__trace, .rs-sig.is-tuned .rs-sig__trace { filter: drop-shadow(0 0 10px rgba(255, 214, 140, .95)) brightness(1.25); }
.rs-sig.is-tuned .rs-sig__tag, .rs-sig:hover .rs-sig__tag { color: var(--rs-amber); }
.rs-sig:hover .rs-sig__label, .rs-sig:focus-visible .rs-sig__label, .rs-sig.is-tuned .rs-sig__label { opacity: 1; transform: none; }
.rs-sig:focus-visible { outline-offset: 2px; }

.rs-rx__readout { grid-column: 3; grid-row: 2 / span 3; border-left: 1px solid var(--rs-line); padding: 1.3rem 1.4rem 1.4rem; display: flex; flex-direction: column; gap: .2rem; background: linear-gradient(180deg, var(--rs-panel-2), var(--rs-panel)); min-width: 0; }
.rs-rx__readout > * { margin: 0; }
.rs-ro__head { display: flex; justify-content: space-between; font-family: var(--rs-mono); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rs-grid); }
.rs-ro__num b { color: var(--rs-amber); font-weight: 600; font-size: 1rem; letter-spacing: .02em; }
.rs-ro__meter { height: 10px; margin: .8rem 0 1.3rem; position: relative; background: repeating-linear-gradient(90deg, rgba(138, 152, 143, .22) 0 9%, transparent 9% 11.111%); }
.rs-ro__meter i { position: absolute; inset: 0; -webkit-mask-image: repeating-linear-gradient(90deg, #000 0 9%, transparent 9% 11.111%); mask-image: repeating-linear-gradient(90deg, #000 0 9%, transparent 9% 11.111%); }
.rs-ro__meter i::before { content: ""; position: absolute; inset: 0; transform-origin: 0 50%; transform: scaleX(var(--s, .5)); background: linear-gradient(90deg, var(--rs-ph-deep), var(--rs-ph) 60%, var(--rs-amber)); transition: transform .8s var(--rs-ease); }
.rs-ro__cat { font-family: var(--rs-mono); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rs-ph); }
.rs-ro__title { font-family: var(--rs-display); font-size: clamp(1.4rem, 1.9vw, 1.85rem); font-weight: 600; line-height: 1.12; letter-spacing: -.02em; margin: .45rem 0 .7rem !important; }
.rs-ro__title a { color: var(--rs-bright); text-decoration: none; background: linear-gradient(var(--rs-ph), var(--rs-ph)) 0 100% / 0 2px no-repeat; transition: background-size .45s var(--rs-ease), color .2s; }
.rs-ro__title a:hover { color: var(--rs-bright); background-size: 100% 2px; }
.rs-ro__ex { font-size: .98rem; line-height: 1.55; color: var(--rs-soft); }
.rs-ro__go { margin-top: 1.4rem !important; }
.rs-ro__meta { margin-top: auto !important; padding-top: 1.2rem; display: flex; justify-content: space-between; gap: 1rem; border-top: 1px dashed var(--rs-line); font-family: var(--rs-mono); font-size: .7rem; color: var(--rs-grid); letter-spacing: .04em; }
.rs-ro__meta b { color: var(--rs-text); font-weight: 500; }
.is-flash .rs-ro__title, .is-flash .rs-ro__ex, .is-flash .rs-ro__cat { animation: rs-flash .5s var(--rs-ease); }
@keyframes rs-flash { from { opacity: .15; transform: translateY(4px); filter: blur(1px); } to { opacity: 1; transform: none; filter: none; } }
.rs-rx__hint { grid-column: 1 / -1; margin: 0; padding: .7rem 1rem; border-top: 1px solid var(--rs-line); font-family: var(--rs-mono); font-size: .68rem; letter-spacing: .03em; color: var(--rs-grid); background: var(--rs-panel-2); }

/* ---------- Sektionsrubriker ---------- */
.rs-sechead { margin-top: var(--wp--preset--spacing--60) !important; margin-bottom: var(--wp--preset--spacing--30); display: grid; gap: .8rem; }
.rs-sechead > * { margin: 0; }
.rs-sechead__title { font-family: var(--rs-display); font-weight: 500; font-size: clamp(2rem, 4.2vw, 3.6rem); letter-spacing: -.04em; line-height: 1; color: var(--rs-bright); margin: 0; }
.rs-sechead__note { color: var(--rs-soft); max-width: 52ch; margin: 0; }

/* ---------- Duoton: bilder som fosforskärm, färg vid hover ---------- */
.rs-duo { position: relative; overflow: hidden; isolation: isolate; margin: 0; background: var(--rs-night); }
.rs-duo img { filter: grayscale(1) contrast(1.18) brightness(1.08); transition: filter .7s var(--rs-ease), transform 1.2s var(--rs-ease); width: 100%; }
.rs-duo::before, .rs-duo::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1; transition: opacity .7s var(--rs-ease); }
.rs-duo::before { background: #72E8A6; mix-blend-mode: multiply; }
.rs-duo::after { background: #0A1A11; mix-blend-mode: lighten; }
.rs-duo > a { display: block; }
.rs-lead__card:hover .rs-duo img, .rs-card:hover .rs-duo img { filter: none; transform: scale(1.035); }
.rs-lead__card:hover .rs-duo::before, .rs-lead__card:hover .rs-duo::after, .rs-card:hover .rs-duo::before, .rs-card:hover .rs-duo::after { opacity: 0; }

/* ---------- Senaste signalen ---------- */
.rs-lead .wp-block-post-template { list-style: none; padding: 0; margin: 0; }
.rs-lead__card { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; position: relative; }
.rs-lead__img { border: 1px solid var(--rs-line); border-radius: 6px; }
.rs-lead__img img { aspect-ratio: 16 / 10; object-fit: cover; height: 100% !important; }
.rs-lead__text > * { margin: 0; }
.rs-lead__title { font-family: var(--rs-display); font-size: clamp(1.9rem, 3.4vw, 3.1rem) !important; font-weight: 500; letter-spacing: -.035em; line-height: 1.04; margin: 1rem 0 !important; text-wrap: balance; }
.rs-lead__title a { color: var(--rs-bright); text-decoration: none; }
.rs-lead__title a:hover { color: var(--rs-ph); }
.rs-lead__ex { color: var(--rs-soft); font-size: 1.08rem; margin-bottom: 1.6rem !important; }
.rs-lead__ex .wp-block-post-excerpt__more-text { display: none; }

.rs-btn a, a.rs-btn, .rs-btn-link {
  display: inline-flex; align-items: center; gap: .6rem; font-family: var(--rs-mono); font-size: .76rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase;
  color: var(--rs-ph); text-decoration: none; border: 1px solid rgba(98, 255, 166, .55); padding: .8rem 1.15rem; border-radius: 3px; transition: background .25s, color .25s, box-shadow .25s;
}
.rs-btn a:hover, a.rs-btn:hover, .rs-btn-link:hover { background: var(--rs-ph); color: var(--rs-night); box-shadow: var(--rs-glow); }
.wp-block-read-more.rs-btn { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--rs-mono); font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rs-ph); text-decoration: none; border: 1px solid rgba(98, 255, 166, .55); padding: .8rem 1.15rem; border-radius: 3px; transition: background .25s, color .25s, box-shadow .25s; }
.wp-block-read-more.rs-btn:hover { background: var(--rs-ph); color: var(--rs-night); box-shadow: var(--rs-glow); }

/* Metarad */
.rs-meta { display: flex; flex-wrap: wrap; gap: .3rem .9rem; align-items: center; font-family: var(--rs-mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rs-grid); margin: 0; }
.rs-meta__num { color: var(--rs-amber); }
.rs-meta__cat { color: var(--rs-ph); }

/* ---------- Loggboken ---------- */
.rs-loghead, .rs-log__row { display: grid; grid-template-columns: 3.4rem 7.6rem 11.5rem minmax(0, 1fr) 6.5rem; gap: 1.2rem; align-items: center; }
.rs-loghead { font-family: var(--rs-mono); font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rs-grid); padding: 0 .9rem .6rem; border-bottom: 1px solid var(--rs-grid); }
.rs-loghead span:last-child { text-align: right; }
.rs-log { margin-top: 0 !important; }
.rs-log .wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.rs-log .wp-block-post-template > li { margin: 0; border-bottom: 1px solid var(--rs-line); }
.rs-log__row { position: relative; padding: 1.15rem .9rem; transition: background .3s; }
.rs-log__row > * { margin: 0 !important; }
.rs-log__row::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--rs-ph); transform: scaleY(0); transition: transform .35s var(--rs-ease); box-shadow: var(--rs-glow); }
.rs-log__row:hover { background: linear-gradient(90deg, rgba(98, 255, 166, .07), transparent 70%); }
.rs-log__row:hover::before { transform: scaleY(1); }
.rs-log__num { font-family: var(--rs-mono); font-size: .8rem; color: var(--rs-amber); }
.rs-log__date { font-family: var(--rs-mono); font-size: .8rem; color: var(--rs-grid); font-variant-numeric: tabular-nums; }
.rs-log__cat { font-family: var(--rs-mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rs-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rs-log__title { font-family: var(--rs-display); font-size: clamp(1.15rem, 1.6vw, 1.45rem) !important; font-weight: 500; letter-spacing: -.02em; line-height: 1.2; }
.rs-log__title a { color: var(--rs-bright); text-decoration: none; }
.rs-log__title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.rs-log__row:hover .rs-log__title a { color: var(--rs-ph); }
.rs-log__min { font-family: var(--rs-mono); font-size: .76rem; color: var(--rs-grid); display: flex; justify-content: flex-end; align-items: center; gap: .5rem; }
.rs-log__row:hover .rs-arrow { transform: translateX(5px); color: var(--rs-ph); }
.rs-log__thumb { position: absolute !important; right: 9rem; top: 50%; width: 200px; z-index: 3; pointer-events: none; opacity: 0; transform: translateY(-50%) rotate(-2deg) scale(.94); transition: opacity .3s, transform .45s var(--rs-ease); border: 1px solid var(--rs-line); box-shadow: 0 20px 40px rgba(0, 0, 0, .6); }
.rs-log__thumb img { aspect-ratio: 3 / 2; object-fit: cover; }
.rs-log__row:hover .rs-log__thumb { opacity: 1; transform: translateY(-50%) rotate(-2deg); }

/* ---------- Morse ---------- */
.rs-divider { margin-top: var(--wp--preset--spacing--60) !important; display: flex; align-items: center; gap: 1.5rem; }
.rs-divider::before, .rs-divider::after { content: ""; flex: 1; height: 1px; background: var(--rs-line); }
.rs-morse { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0 1.1rem; margin: 0; }
.rs-morse__ch { display: inline-flex; gap: 5px; align-items: center; }
.rs-morse i { display: block; height: 6px; width: 6px; border-radius: 3px; background: var(--rs-ph); opacity: .35; }
.rs-morse i.is-dah { width: 20px; }
.rs-morse__gap { width: 1.2rem; }
@media (prefers-reduced-motion: no-preference) {
  .rs-morse i { animation: rs-key 6s steps(1) infinite; animation-delay: calc(var(--k) * .18s); }
}
@keyframes rs-key { 0% { opacity: 1; box-shadow: 0 0 10px var(--rs-ph); } 6% { opacity: .35; box-shadow: none; } 100% { opacity: .35; } }

/* ---------- Guiderna ---------- */
.rs-guides-sec { margin-top: var(--wp--preset--spacing--60) !important; }
.rs-guides-sec__head { display: grid; gap: .8rem; margin-bottom: var(--wp--preset--spacing--40); }
.rs-guides-sec__head > * { margin: 0; }
.rs-guides { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--rs-line); border: 1px solid var(--rs-line); border-radius: 8px; overflow: hidden; }
.rs-guides li { background: var(--rs-panel); }
.rs-guides a { position: relative; display: flex; flex-direction: column; gap: .9rem; height: 100%; padding: 1.6rem 1.5rem 1.4rem; text-decoration: none; color: var(--rs-text); transition: background .3s; overflow: hidden; }
.rs-guides a::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, var(--rs-ph), var(--rs-amber)); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--rs-ease); }
.rs-guides a:hover { background: var(--rs-panel-2); }
.rs-guides a:hover::before, .rs-guides a[aria-current]::before { transform: scaleX(1); }
.rs-guides__n { font-family: var(--rs-display); font-size: 3.4rem; font-weight: 300; letter-spacing: -.05em; line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--rs-grid); transition: color .3s, -webkit-text-stroke-color .3s; }
.rs-guides a:hover .rs-guides__n { color: var(--rs-ph); -webkit-text-stroke-color: var(--rs-ph); text-shadow: var(--rs-glow); }
.rs-guides__title { font-family: var(--rs-display); font-size: 1.35rem; font-weight: 600; letter-spacing: -.02em; line-height: 1.15; color: var(--rs-bright); }
.rs-guides__ex { font-size: .95rem; color: var(--rs-soft); line-height: 1.55; }
.rs-guides__min { margin-top: auto; font-family: var(--rs-mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rs-ph); display: flex; align-items: center; gap: .5rem; padding-top: .6rem; }
.rs-guides a:hover .rs-arrow { transform: translateX(5px); }
.rs-guides a[aria-current] { background: var(--rs-panel-2); }
.rs-guidelist { list-style: none; margin: 0; padding: 0; }

/* ---------- Banden ---------- */
.rs-bandgrid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
.rs-bandgrid a {
  position: relative; display: flex; flex-direction: column; gap: .7rem; height: 100%; min-height: 300px; padding: 1.3rem 1.2rem 1.2rem; text-decoration: none;
  color: var(--rs-text); border: 1px solid var(--rs-line); border-radius: 6px; background: linear-gradient(180deg, var(--rs-panel-2), var(--rs-panel)); overflow: hidden;
  transition: border-color .3s, transform .45s var(--rs-ease);
}
.rs-bandgrid a:hover { border-color: rgba(98, 255, 166, .5); transform: translateY(-4px); }
.rs-bandgrid__top { display: flex; justify-content: space-between; font-family: var(--rs-mono); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rs-grid); }
.rs-bandgrid__top span:first-child { color: var(--rs-amber); }
.rs-bandgrid__name { font-family: var(--rs-display); font-size: 1.5rem; font-weight: 600; letter-spacing: -.025em; line-height: 1.1; color: var(--rs-bright); }
.rs-bandgrid__desc { font-size: .92rem; line-height: 1.5; color: var(--rs-soft); }
.rs-bandgrid__wave { margin-top: auto; width: 100%; height: 56px; overflow: visible; }
.rs-bandgrid__wave path { fill: none; stroke: var(--rs-ph); stroke-width: 1.6; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 4px rgba(98, 255, 166, .6)); }
.rs-bandgrid__wave path.is-echo { stroke: var(--rs-amber); opacity: 0; stroke-dasharray: 6 8; filter: none; transform: translateX(0); transition: opacity .3s; }
.rs-bandgrid a:hover .rs-bandgrid__wave path.is-echo { opacity: .8; }
@media (prefers-reduced-motion: no-preference) {
  .rs-bandgrid__wave path:first-child { stroke-dasharray: 1400; stroke-dashoffset: 0; }
  .rs-bandgrid a:hover .rs-bandgrid__wave path:first-child { animation: rs-draw 1.2s var(--rs-ease); }
  .rs-bandgrid a:hover .rs-bandgrid__wave path.is-echo { animation: rs-march 1.4s linear infinite; }
}
@keyframes rs-draw { from { stroke-dashoffset: 1400; } to { stroke-dashoffset: 0; } }
@keyframes rs-march { to { stroke-dashoffset: -28; } }
.rs-bandgrid__go { font-family: var(--rs-mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rs-ph); display: flex; align-items: center; gap: .5rem; }
.rs-bandgrid a:hover .rs-arrow { transform: translateX(5px); }

/* ---------- QSL-kortet ---------- */
.rs-qsl {
  --ink: #0A0F0C; --ink-soft: #3F4E45; --green: #08683A; --amber-ink: #8A5200;
  margin: 0; color: var(--ink); border-radius: 4px; padding: 1.5rem 1.6rem 1.2rem; position: relative; max-width: 560px;
  background-color: var(--rs-paper);
  background-image: linear-gradient(rgba(10, 15, 12, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(10, 15, 12, .07) 1px, transparent 1px);
  background-size: 14px 14px; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .7), 0 0 0 1px rgba(255, 255, 255, .06);
  font-family: var(--rs-mono); transform: rotate(-1.6deg); transition: transform .6s var(--rs-ease);
}
.rs-qsl:hover { transform: rotate(0deg) translateY(-3px); }
.rs-qsl::before { content: ""; position: absolute; inset: 7px; border: 1px solid rgba(10, 15, 12, .25); border-radius: 2px; pointer-events: none; }
.rs-qsl__top { display: flex; align-items: center; gap: 1rem; padding-bottom: 1rem; border-bottom: 2px solid var(--ink); }
.rs-qsl__top img { border-radius: 10px; flex: none; }
.rs-qsl__top p { margin: 0; }
.rs-qsl__kicker { font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-soft); }
.rs-qsl__name { font-family: var(--rs-display); font-weight: 700; font-size: clamp(1.7rem, 3vw, 2.3rem); letter-spacing: -.04em; line-height: 1; color: var(--ink); }
.rs-qsl__stamp { margin-left: auto !important; font-family: var(--rs-display); font-weight: 700; font-size: 1.5rem; color: var(--amber-ink); border: 2px solid var(--amber-ink); border-radius: 50%; width: 3.4rem; height: 3.4rem; display: grid; place-items: center; transform: rotate(12deg); flex: none; }
.rs-qsl__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 1rem 0; border: 1.5px solid var(--ink); }
.rs-qsl__grid > div { padding: .45rem .6rem; border-left: 1.5px solid var(--ink); }
.rs-qsl__grid > div:first-child { border-left: 0; }
.rs-qsl dl { margin: 0; }
.rs-qsl dt { font-size: .58rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-soft); }
.rs-qsl dd { margin: 0; font-size: .86rem; font-weight: 600; color: var(--ink); }
.rs-qsl__rows > div { display: grid; grid-template-columns: 3.6rem 1fr; gap: .8rem; padding: .32rem 0; border-bottom: 1px dashed rgba(10, 15, 12, .35); align-items: baseline; }
.rs-qsl__rows dd { font-weight: 500; }
.rs-qsl__foot { margin-top: .9rem; font-size: .66rem; letter-spacing: .06em; color: var(--green); }
.rs-qsl.is-compact { max-width: 400px; padding: 1.1rem 1.2rem .9rem; }
.rs-qsl.is-compact .rs-qsl__name { font-size: 1.5rem; }
.rs-qsl.is-compact .rs-qsl__stamp { width: 2.8rem; height: 2.8rem; font-size: 1.15rem; }
.rs-qsl.is-compact .rs-qsl__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rs-qsl.is-compact .rs-qsl__grid > div:nth-child(3) { border-left: 0; }
.rs-qsl.is-compact .rs-qsl__grid > div:nth-child(n+3) { border-top: 1.5px solid var(--ink); }
.rs-qsl.is-compact .rs-qsl__grid dd { font-size: .8rem; }

.rs-about { margin-top: var(--wp--preset--spacing--60) !important; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; padding: clamp(2rem, 5vw, 4.5rem); border: 1px solid var(--rs-line); border-radius: 8px; background: radial-gradient(600px 400px at 20% 50%, rgba(98, 255, 166, .07), transparent 70%), var(--rs-panel); }
.rs-about__card { display: flex; justify-content: center; }
.rs-about__text { display: grid; gap: 1rem; }
.rs-about__text > * { margin: 0; }
.rs-about__text p { color: var(--rs-text); }
.rs-about__links { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: .6rem !important; }

/* ---------- Artikel ---------- */
.rs-ahead { padding-top: clamp(2rem, 5vw, 4.5rem); display: grid; gap: 1.2rem; max-width: 1080px; }
.rs-ahead > * { margin: 0 !important; }
.rs-crumbs { font-family: var(--rs-mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rs-grid); display: flex; gap: .6rem; flex-wrap: wrap; margin: 0; }
.rs-crumbs a { color: var(--rs-soft); text-decoration: none; }
.rs-crumbs a:hover { color: var(--rs-ph); }
.rs-ahead__cat a { color: var(--rs-night); background: var(--rs-ph); padding: .3rem .6rem; border-radius: 2px; text-decoration: none; font-weight: 600; }
.rs-ahead__cat a:hover { background: var(--rs-amber); color: var(--rs-night); }
.rs-ahead__title { font-family: var(--rs-display); font-weight: 500; font-size: clamp(2.4rem, 6vw, 5.4rem) !important; letter-spacing: -.045em; line-height: .98; color: var(--rs-bright); text-wrap: balance; max-width: 18ch; }
.rs-ahead__lede { font-size: clamp(1.15rem, 1.7vw, 1.4rem); line-height: 1.5; color: var(--rs-text); max-width: 46ch; }
.rs-ahead__lede .wp-block-post-excerpt__more-text { display: none; }
.rs-smeta { list-style: none; padding: 1rem 0 0; margin: .4rem 0 0; display: flex; flex-wrap: wrap; gap: .8rem 2.4rem; border-top: 1px solid var(--rs-line); font-family: var(--rs-mono); font-size: .8rem; color: var(--rs-text); }
.rs-smeta li { display: grid; gap: .15rem; }
.rs-smeta span { font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rs-grid); }

/* Frekvensskala med visare */
.rs-dial { position: relative; margin-top: var(--wp--preset--spacing--40); border: 1px solid var(--rs-line); border-radius: 6px; background: var(--rs-panel); overflow: hidden; }
.rs-dial__bands { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); }
.rs-dial__bands a { padding: .65rem .8rem; font-family: var(--rs-mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rs-grid); text-decoration: none; border-left: 1px solid var(--rs-line); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color .2s, background .2s; }
.rs-dial__bands a:first-child { border-left: 0; }
.rs-dial__bands a:hover { color: var(--rs-bright); background: rgba(98, 255, 166, .05); }
.rs-dial__bands a[aria-current] { color: var(--rs-ph); background: rgba(98, 255, 166, .07); }
.rs-dial__ticks {
  height: 22px; border-top: 1px solid var(--rs-line);
  background:
    repeating-linear-gradient(90deg, rgba(138, 152, 143, .5) 0 1px, transparent 1px 1.25%) 0 0 / 100% 6px no-repeat,
    repeating-linear-gradient(90deg, rgba(138, 152, 143, .85) 0 1px, transparent 1px 10%) 0 0 / 100% 12px no-repeat;
}
.rs-dial__needle { position: absolute; top: calc(100% - 23px); bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: var(--rs-amber); box-shadow: 0 0 12px rgba(255, 181, 71, .8); }
.rs-dial__needle::after { content: ""; position: absolute; bottom: 0; left: -5px; border: 6px solid transparent; border-bottom-color: var(--rs-amber); }
@media (prefers-reduced-motion: no-preference) {
  .rs-dial__needle { animation: rs-needle 1.6s var(--rs-ease) both .2s; }
}
@keyframes rs-needle { from { left: 0; opacity: 0; } 30% { opacity: 1; } to { left: var(--pos); } }

/* Utvald bild med oscilloskopram */
.rs-hero-img { margin-top: var(--wp--preset--spacing--40) !important; position: relative; }
.rs-hero-img img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: 6px; border: 1px solid var(--rs-line); filter: saturate(.9) contrast(1.04); }
.rs-hero-img::before, .rs-hero-img::after { content: ""; position: absolute; width: 26px; height: 26px; border: 2px solid var(--rs-ph); pointer-events: none; }
.rs-hero-img::before { left: -8px; top: -8px; border-right: 0; border-bottom: 0; }
.rs-hero-img::after { right: -8px; top: -8px; border-left: 0; border-bottom: 0; }
.rs-hero-img figcaption { display: flex; gap: .9rem; margin-top: .7rem; font-family: var(--rs-mono); font-size: .7rem; letter-spacing: .04em; color: var(--rs-grid); }
.rs-hero-img figcaption span { white-space: nowrap; color: var(--rs-amber); text-transform: uppercase; letter-spacing: .12em; }

/* Brödtext med innehållsförteckning */
.rs-agrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 42rem) minmax(0, 1fr); gap: clamp(2rem, 4vw, 4rem); margin-top: var(--wp--preset--spacing--50) !important; align-items: start; }
.rs-agrid__aside { grid-column: 1; position: sticky; top: 7rem; justify-self: end; width: 100%; max-width: 270px; }
.rs-agrid > .rs-body { grid-column: 2; margin: 0 !important; min-width: 0; }
.rs-toc { border-left: 1px solid var(--rs-line); padding-left: 1.1rem; }
.rs-toc__title { font-family: var(--rs-mono); font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rs-amber); margin: 0 0 .8rem; }
.rs-toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.rs-toc a { display: grid; grid-template-columns: 1.8rem 1fr; padding: .35rem 0; font-size: .88rem; line-height: 1.35; color: var(--rs-soft); text-decoration: none; transition: color .2s, transform .3s var(--rs-ease); }
.rs-toc a:hover { color: var(--rs-ph); transform: translateX(3px); }
.rs-toc__n { font-family: var(--rs-mono); font-size: .7rem; color: var(--rs-grid); padding-top: .12rem; }

.rs-body { font-size: var(--wp--preset--font-size--medium); line-height: 1.75; color: var(--rs-text); counter-reset: rsh; }
.rs-body > * { max-width: 42rem; }
.rs-body > p:first-child { font-size: 1.24em; line-height: 1.6; color: var(--rs-bright); }
.rs-body p, .rs-body li { hyphens: auto; -webkit-hyphens: auto; }
.rs-body strong { color: var(--rs-bright); font-weight: 600; }
.rs-body a { color: var(--rs-ph); text-decoration-color: rgba(98, 255, 166, .45); }
.rs-body a:hover { color: var(--rs-amber); text-decoration-color: currentColor; }
.rs-body h2 { counter-increment: rsh; font-family: var(--rs-display); font-size: clamp(1.6rem, 2.6vw, 2.15rem); font-weight: 600; letter-spacing: -.03em; line-height: 1.12; margin: 3.4rem 0 1rem; padding-top: 1.6rem; position: relative; }
.rs-body h2::before {
  content: counter(rsh, decimal-leading-zero); position: absolute; left: 0; top: 0; font-family: var(--rs-mono); font-size: .72rem; font-weight: 500; letter-spacing: .14em; color: var(--rs-amber);
}
.rs-body h2::after { content: ""; position: absolute; left: 2.2rem; right: 0; top: .45rem; height: 6px; background: repeating-linear-gradient(90deg, rgba(138, 152, 143, .45) 0 1px, transparent 1px 8px); -webkit-mask-image: linear-gradient(90deg, #000, transparent); mask-image: linear-gradient(90deg, #000, transparent); }
.rs-body h3 { font-family: var(--rs-display); font-size: 1.3rem; font-weight: 600; letter-spacing: -.015em; margin: 2.2rem 0 .6rem; color: var(--rs-bright); }
.rs-body ul, .rs-body ol { padding-left: 1.5rem; }
.rs-body li { margin-bottom: .55rem; padding-left: .3rem; }
.rs-body ul { list-style: none; padding-left: 1.6rem; }
.rs-body ul > li { position: relative; }
.rs-body ul > li::before { content: ""; position: absolute; left: -1.25rem; top: .72em; width: 7px; height: 7px; background: var(--rs-ph); border-radius: 1px; box-shadow: 0 0 8px rgba(98, 255, 166, .6); }
.rs-body ol li::marker { font-family: var(--rs-mono); font-size: .85em; color: var(--rs-amber); }
.rs-body blockquote { margin: 2rem 0; padding: 1rem 0 1rem 1.4rem; border-left: 2px solid var(--rs-amber); font-family: var(--rs-display); font-size: 1.35rem; line-height: 1.4; color: var(--rs-bright); }
.rs-body code { font-family: var(--rs-mono); font-size: .88em; background: var(--rs-panel-2); padding: .1em .35em; border-radius: 3px; color: var(--rs-ph); }
.rs-body hr { border: 0; height: 12px; background: url("assets/img/wave-dim.svg") 0 50% / 80px 14px repeat-x; margin: 3rem 0; }
.rs-body table { width: 100%; border-collapse: collapse; font-size: .95rem; margin: 1.6rem 0; }
.rs-body th, .rs-body td { text-align: left; padding: .6rem .7rem; border-bottom: 1px solid var(--rs-line); vertical-align: top; }
.rs-body th { font-family: var(--rs-mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rs-amber); font-weight: 500; border-bottom-color: var(--rs-grid); }
.rs-body td:first-child { color: var(--rs-bright); font-weight: 500; }

/* Faktaruta (används i guiderna) */
.rs-fact { margin: 2.2rem 0; padding: 1.4rem 1.5rem 1.2rem; border: 1px solid var(--rs-line); border-radius: 6px; background: linear-gradient(180deg, var(--rs-panel-2), var(--rs-panel)); position: relative; font-size: 1rem; line-height: 1.65; }
.rs-fact::before { content: attr(data-label); position: absolute; top: -.6rem; left: 1.1rem; padding: 0 .5rem; background: var(--rs-night); font-family: var(--rs-mono); font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rs-amber); }
.rs-fact > :first-child { margin-top: 0; }
.rs-fact > :last-child { margin-bottom: 0; }
.rs-fact h3 { margin-top: 0; font-size: 1.1rem; }
.rs-fact.is-links { border-color: rgba(98, 255, 166, .35); }

.rs-signoff { display: flex; align-items: center; gap: 1.2rem; max-width: 42rem; margin: var(--wp--preset--spacing--50) auto 0 !important; padding-top: 1.6rem; border-top: 1px solid var(--rs-line); font-family: var(--rs-mono); font-size: .76rem; color: var(--rs-grid); }
.rs-signoff p { margin: 0; }
.rs-signoff b { color: var(--rs-amber); }
.rs-author { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2.5rem; align-items: center; max-width: 64rem; margin: var(--wp--preset--spacing--50) auto 0 !important; padding: 2rem; border: 1px solid var(--rs-line); border-radius: 8px; background: var(--rs-panel); }
.rs-author .rs-qsl { width: 360px; }
.rs-author__text > * { margin: 0 0 .5rem; }
.rs-author__name { font-family: var(--rs-display); font-size: 1.6rem; font-weight: 600; letter-spacing: -.02em; color: var(--rs-bright); }
.rs-author__text p:last-child { color: var(--rs-soft); font-size: 1rem; }

/* Kort */
.rs-more { margin-top: var(--wp--preset--spacing--40) !important; }
.rs-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); }
.rs-card { position: relative; display: flex; flex-direction: column; gap: .8rem; height: 100%; padding: .8rem .8rem 1.3rem; border: 1px solid var(--rs-line); border-radius: 6px; background: var(--rs-panel); transition: border-color .3s, transform .45s var(--rs-ease); }
.rs-card > * { margin: 0 !important; }
.rs-card:hover { border-color: rgba(98, 255, 166, .45); transform: translateY(-3px); }
.rs-card__img { border-radius: 4px; }
.rs-card__img img { aspect-ratio: 3 / 2; object-fit: cover; }
.rs-card .rs-meta { padding: .3rem .4rem 0; }
.rs-card__title { padding: 0 .4rem; font-family: var(--rs-display); font-size: 1.32rem !important; font-weight: 600; letter-spacing: -.02em; line-height: 1.18; }
.rs-card__title a { color: var(--rs-bright); text-decoration: none; }
.rs-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.rs-card:hover .rs-card__title a { color: var(--rs-ph); }
.rs-card__ex { padding: 0 .4rem; font-size: .96rem; line-height: 1.55; color: var(--rs-soft); }
.rs-card__ex .wp-block-post-excerpt__more-text { display: none; }
.rs-grid .wp-block-post-template { gap: clamp(1rem, 2.5vw, 2rem) !important; }

/* ---------- Arkiv och sidor ---------- */
.rs-archead, .rs-phead { padding-top: clamp(2rem, 5vw, 4.5rem); display: grid; gap: 1rem; }
.rs-archead > *, .rs-phead > * { margin: 0 !important; }
.rs-archead__title, .rs-phead__title { font-family: var(--rs-display); font-weight: 500; font-size: clamp(2.8rem, 8vw, 7rem) !important; letter-spacing: -.055em; line-height: .92; color: var(--rs-bright); }
.rs-archead__desc { color: var(--rs-text); font-size: 1.2rem; max-width: 52ch; }
.rs-archive .rs-grid { margin-top: var(--wp--preset--spacing--40) !important; }
.wp-block-query-pagination { font-family: var(--rs-mono); font-size: .8rem; margin-top: var(--wp--preset--spacing--40); }
.wp-block-query-pagination a { color: var(--rs-ph); }
.rs-search { max-width: 560px; }
.rs-search .wp-block-search__input, .rs-404__search input { background: var(--rs-panel); color: var(--rs-bright); border: 1px solid var(--rs-line); border-radius: 3px; padding: .8rem 1rem; font: inherit; }
.rs-search .wp-block-search__button, .rs-404__search button { background: var(--rs-ph); color: var(--rs-night); border: 0; border-radius: 3px; font-family: var(--rs-mono); text-transform: uppercase; letter-spacing: .1em; font-size: .76rem; padding: .8rem 1.2rem; cursor: pointer; }
.rs-wave-rule { height: 28px; margin-top: var(--wp--preset--spacing--30) !important; background: url("assets/img/wave-dim.svg") 0 50% / 160px 28px repeat-x; }
@media (prefers-reduced-motion: no-preference) {
  .rs-wave-rule, .rs-footer__wave { animation: rs-wave 9s linear infinite; }
}
@keyframes rs-wave { to { background-position-x: 160px; } }
.rs-page .rs-body { margin-top: var(--wp--preset--spacing--40) !important; margin-bottom: var(--wp--preset--spacing--50); }
.rs-page .rs-body > p:first-child { font-size: 1.2em; }
.rs-page .rs-qsl { margin: 2.6rem 0; }

/* ---------- Guidesidor ---------- */
.rs-ghead { position: relative; padding-top: clamp(2rem, 5vw, 4.5rem); padding-bottom: 1rem; display: grid; gap: 1.1rem; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); column-gap: clamp(2rem, 5vw, 5rem); align-items: end; }
.rs-ghead > * { margin: 0 !important; grid-column: 1; }
.rs-ghead__scope { grid-column: 2 !important; grid-row: 1 / span 5; align-self: stretch; min-height: 300px; border: 1px solid var(--rs-line); border-radius: 8px; background: radial-gradient(closest-side, rgba(98, 255, 166, .08), transparent), #070B09; position: relative; overflow: hidden; }
.rs-ghead__scope::after { content: "CH1 · X/Y"; position: absolute; left: .8rem; top: .6rem; font-family: var(--rs-mono); font-size: .62rem; letter-spacing: .14em; color: var(--rs-grid); }
.rs-scope { position: absolute; inset: 0; width: 100%; height: 100%; }
.rs-ghead__title { font-family: var(--rs-display); font-weight: 500; font-size: clamp(2.4rem, 5.4vw, 4.8rem) !important; letter-spacing: -.045em; line-height: .98; color: var(--rs-bright); text-wrap: balance; }
.rs-ghead__lede { font-size: clamp(1.12rem, 1.6vw, 1.35rem); line-height: 1.5; color: var(--rs-text); max-width: 48ch; }
.rs-ghead__lede .wp-block-post-excerpt__more-text { display: none; }
.rs-guide .rs-agrid { border-top: 1px solid var(--rs-line); padding-top: var(--wp--preset--spacing--40); }
.rs-guides-sec.is-compact .rs-guides__ex { display: none; }
.rs-guides-sec.is-compact .rs-guides__n { font-size: 2.4rem; }

/* ---------- 404 ---------- */
.rs-404__box { position: relative; margin-top: var(--wp--preset--spacing--50) !important; min-height: 62vh; border: 1px solid var(--rs-line); border-radius: 8px; overflow: hidden; display: grid; place-items: center; isolation: isolate; }
.rs-noise { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; opacity: .9; }
.rs-404__text { text-align: center; max-width: 640px; padding: 3rem 1.5rem; background: radial-gradient(closest-side, rgba(10, 15, 12, .92), rgba(10, 15, 12, .6) 70%, transparent); display: grid; gap: 1.1rem; justify-items: center; }
.rs-404__text > * { margin: 0; }
.rs-404__text h1 { font-size: clamp(2.2rem, 5vw, 4rem); letter-spacing: -.04em; font-weight: 500; }
.rs-404__search { display: flex; gap: .5rem; }

/* ---------- Sidfot ---------- */
.rs-footer { margin-top: var(--wp--preset--spacing--60); padding-top: 1.2rem; background: linear-gradient(180deg, var(--rs-panel), #070B09); padding-bottom: 2rem; position: relative; overflow: hidden; font-size: .95rem; }
.rs-footer__wave { height: 28px; margin: 0 !important; max-width: none !important; background: url("assets/img/wave-dim.svg") 0 50% / 160px 28px repeat-x; }
.rs-footer__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; padding: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--40); border-bottom: 1px solid var(--rs-line); }
.rs-footer__title { font-family: var(--rs-display); font-weight: 500; font-size: clamp(3rem, 10vw, 9.5rem); letter-spacing: -.065em; line-height: .82; margin: 0; color: transparent; -webkit-text-stroke: 1px rgba(166, 180, 171, .55); }
.rs-footer__sign { font-family: var(--rs-mono); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rs-amber); margin: 0; }
.rs-footer__cols { display: grid; grid-template-columns: 1.5fr 1fr 1.2fr 1fr; gap: 2.5rem; padding: var(--wp--preset--spacing--40) 0; }
.rs-footer__cols p { margin: 0 0 1rem; color: var(--rs-text); max-width: 40ch; }
.rs-footer__note { font-size: .85rem; color: var(--rs-grid) !important; }
.rs-footer__h { font-family: var(--rs-mono); font-size: .66rem !important; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--rs-amber); margin: 0 0 1rem; }
.rs-footer ul { list-style: none; margin: 0; padding: 0; }
.rs-footer li { margin-bottom: .5rem; }
.rs-footer a { color: var(--rs-text); text-decoration: none; }
.rs-footer a:hover { color: var(--rs-ph); }
.rs-footer__base { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem 2rem; padding-top: 1.4rem; border-top: 1px solid var(--rs-line); font-family: var(--rs-mono); font-size: .7rem; letter-spacing: .06em; color: var(--rs-grid); }
.rs-footer__base p { margin: 0; }
.rs-footer__base .rs-morse i { height: 4px; width: 4px; }
.rs-footer__base .rs-morse i.is-dah { width: 13px; }

/* ---------- Rörelse vid scroll ---------- */
@media (prefers-reduced-motion: no-preference) {
  .rs-hero__title > span { display: inline-block; animation: rs-rise 1s var(--rs-ease) both; }
  .rs-hero__title .rs-hero__i { animation-delay: .12s; }
  .rs-hero__title .rs-hero__w2 { animation-delay: .2s; }
  .rs-rx { animation: rs-rise 1.1s var(--rs-ease) both .25s; }
  @supports (animation-timeline: view()) {
    .rs-log .wp-block-post-template > li, .rs-bandgrid li, .rs-guides li, .rs-card, .rs-about, .rs-lead__card, .rs-sechead {
      animation: rs-rise linear both; animation-timeline: view(); animation-range: entry 0% cover 20%;
    }
  }
}
@keyframes rs-rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }

/* ---------- Brytpunkter ---------- */
@media (max-width: 1180px) {
  .rs-rx { --ro: 300px; }
  .rs-bandgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-guides { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-agrid { grid-template-columns: minmax(0, 1fr); }
  .rs-agrid__aside { position: static; justify-self: stretch; max-width: 42rem; margin-inline: auto; grid-column: 1; }
  .rs-agrid > .rs-body { grid-column: 1; margin-inline: auto !important; width: 100%; max-width: 42rem; }
  .rs-toc { border: 1px solid var(--rs-line); border-radius: 6px; padding: 1rem 1.2rem; background: var(--rs-panel); }
  .rs-footer__cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 960px) {
  .rs-header__row { padding-block: .6rem; }
  .rs-rx { --time: 40px; grid-template-columns: var(--time) minmax(0, 1fr); }
  .rs-rx__readout { grid-column: 1 / -1; grid-row: 5; border-left: 0; border-top: 1px solid var(--rs-line); }
  .rs-rx__hint { grid-row: 6; }
  .rs-band__long { display: none; }
  .rs-band__short { display: inline; }
  .rs-band { padding: .65rem .45rem; font-size: .64rem; }
  .rs-sig__label { display: none; }
  .rs-loghead { display: none; }
  .rs-log__row { grid-template-columns: 2.4rem minmax(0, 1fr) auto; grid-template-areas: "num date min" "num cat cat" "num title title"; gap: .25rem .9rem; padding: 1.1rem .4rem; }
  .rs-log__num { grid-area: num; align-self: start; padding-top: .1rem; }
  .rs-log__date { grid-area: date; }
  .rs-log__cat { grid-area: cat; }
  .rs-log__title { grid-area: title; margin-top: .35rem !important; }
  .rs-log__min { grid-area: min; }
  .rs-log__thumb { display: none; }
  .rs-lead__card { grid-template-columns: minmax(0, 1fr); }
  .rs-cards, .rs-grid .wp-block-post-template { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; }
  .rs-about { grid-template-columns: minmax(0, 1fr); }
  .rs-author { grid-template-columns: minmax(0, 1fr); justify-items: start; }
  .rs-ghead { grid-template-columns: minmax(0, 1fr); }
  .rs-ghead__scope { grid-column: 1 !important; grid-row: auto; min-height: 180px; order: 9; }
  .rs-hero__foot { grid-template-columns: minmax(0, 1fr); }
  .rs-hero__by { justify-self: start; }
}
@media (max-width: 640px) {
  .rs-hide-sm { display: none !important; }
  .rs-topbar .rs-sep.rs-hide-sm { display: none; }
  .rs-brand img { width: 36px; height: 36px; }
  .rs-brand__name { font-size: 1.15rem; }
  .rs-rx__bar { gap: .7rem; padding: .55rem .8rem; }
  .rs-rx__fall { height: 380px; }
  .rs-rx__time span { font-size: .56rem; padding-right: 9px; letter-spacing: .04em; }
  .rs-band { flex-direction: column; align-items: flex-start; gap: .3rem; }
  .rs-rx__scale span { font-size: .56rem; }
  .rs-rx__scale span:nth-child(2), .rs-rx__scale span:nth-child(4) { display: none; }
  .rs-bandgrid { grid-template-columns: minmax(0, 1fr); }
  .rs-bandgrid a { min-height: 0; }
  .rs-guides { grid-template-columns: minmax(0, 1fr); }
  .rs-cards, .rs-grid .wp-block-post-template { grid-template-columns: minmax(0, 1fr) !important; }
  .rs-qsl { padding: 1.1rem 1.1rem .9rem; transform: rotate(-1deg); }
  .rs-qsl__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-qsl__grid > div:nth-child(3) { border-left: 0; }
  .rs-qsl__grid > div:nth-child(n+3) { border-top: 1.5px solid var(--ink); }
  .rs-author { padding: 1.2rem; }
  .rs-author .rs-qsl { width: 100%; }
  .rs-about { padding: 1.5rem 1.1rem; }
  .rs-footer__cols { grid-template-columns: minmax(0, 1fr); gap: 1.8rem; }
  .rs-hero-img img { aspect-ratio: 4 / 3; }
  .rs-dial__bands a { padding: .6rem .4rem; font-size: .6rem; letter-spacing: .04em; }
  .rs-dial .rs-band__long { display: none; }
  .rs-dial .rs-band__short { display: inline; }
  .rs-body h2::after { display: none; }
  .rs-smeta { gap: .8rem 1.6rem; }
  .rs-404__search { flex-direction: column; }
}
