:root{
  --paper:#FFFFFF;
  --ink:#111111;
  --ink-soft:#3d3d3d;
  --line:rgba(17,17,17,.25);
  --maxw:1040px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
body{
  font-family:'Lora',serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.65;
}
a{color:var(--ink)}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.display{font-family:'Oswald',sans-serif;text-transform:uppercase}
.script{font-family:'Yellowtail',cursive;text-transform:none}

/* ---------- Header ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:var(--ink);color:var(--paper);
}
.header-inner{
  max-width:var(--maxw);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:.55rem 1rem;gap:1rem;
}
.brand{
  font-family:'Oswald',sans-serif;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;
  font-size:.95rem;color:var(--paper);text-decoration:none;white-space:nowrap;
}
.brand b{font-weight:700;border:2px solid var(--paper);border-radius:4px;padding:0 .35rem;margin-left:.35rem}
nav.top{display:flex;gap:1.3rem}
nav.top a{
  font-family:'Oswald',sans-serif;text-transform:uppercase;
  letter-spacing:.16em;font-size:.78rem;text-decoration:none;
  color:rgba(245,243,237,.75);
}
nav.top a:hover{color:var(--paper)}
@media (max-width:660px){nav.top{display:none}}

/* ---------- Hero (Plakat) ---------- */
.hero{
  text-align:center;
  padding:3.2rem 1rem 2.6rem;
  border-bottom:3px solid var(--ink);
}
.rule-line{
  display:inline-flex;align-items:center;gap:.9rem;
  font-family:'Oswald',sans-serif;font-weight:500;
  letter-spacing:.55em;text-transform:uppercase;font-size:.85rem;
}
.rule-line::before,.rule-line::after{
  content:"";width:56px;border-top:2px solid var(--ink);
}
.hero h1{
  font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;
  font-size:clamp(2.1rem,11vw,6.4rem);
  letter-spacing:.02em;line-height:1.02;margin:.5rem 0 .6rem;
}
.ander{
  display:inline-flex;align-items:center;gap:.9rem;
  font-family:'Oswald',sans-serif;font-weight:600;
  letter-spacing:.5em;text-transform:uppercase;font-size:1rem;
  margin-bottom:.9rem;
}
.ander::before,.ander::after{content:"";width:70px;border-top:2px dashed var(--ink)}
.plate{
  display:inline-block;
  font-family:'Oswald',sans-serif;font-weight:700;font-size:clamp(1.5rem,6vw,3rem);
  letter-spacing:.08em;
  border:4px solid var(--ink);border-radius:10px;
  padding:.1rem 1.3rem;
  box-shadow:0 0 0 3px var(--paper),0 0 0 5px var(--ink);
  margin-bottom:1.5rem;
}
.hero .script{font-size:clamp(1.4rem,5vw,2.4rem);display:block}
.decades{
  font-family:'Oswald',sans-serif;font-weight:600;font-size:clamp(0.95rem,3.4vw,1.6rem);
  letter-spacing:.1em;margin:.3rem 0 1.9rem;
}
.decades small{font-size:.6em;vertical-align:.12em;letter-spacing:.05em}
.cta{
  display:inline-block;
  font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;
  letter-spacing:.22em;font-size:.95rem;
  background:var(--ink);color:var(--paper);text-decoration:none;
  padding:.95rem 2.2rem;border:2px solid var(--ink);
  transition:background .15s ease,color .15s ease;
}
.cta:hover{background:var(--paper);color:var(--ink)}
.hero-note{margin-top:.8rem;font-size:.85rem;color:var(--ink-soft);font-style:italic}

/* ---------- Skala-Navigation ---------- */
.skala{
  background:var(--ink);color:var(--paper);
  overflow-x:auto;-webkit-overflow-scrolling:touch;
}
.skala-track{
  min-width:620px;max-width:var(--maxw);margin:0 auto;
  display:flex;position:relative;padding:.35rem 1rem .8rem;
}
.skala-track::before{
  content:"";position:absolute;left:1rem;right:1rem;top:55%;
  border-top:1px solid rgba(245,243,237,.4);
}
.skala a{
  position:relative;z-index:1;flex:1;text-align:center;
  font-family:'Oswald',sans-serif;text-transform:uppercase;
  letter-spacing:.18em;font-size:.78rem;font-weight:500;
  color:var(--paper);text-decoration:none;padding:.45rem .3rem .9rem;
}
.skala a::after{
  content:"";position:absolute;left:50%;bottom:.2rem;
  width:2px;height:.5rem;background:var(--paper);
}
.skala a:hover{text-decoration:underline;text-underline-offset:4px}
.skala .freq{
  display:block;font-weight:400;font-size:.62rem;
  letter-spacing:.12em;color:rgba(245,243,237,.55);
}

/* ---------- Sections ---------- */
section{padding:3.4rem 1rem}
.inner{max-width:var(--maxw);margin:0 auto}
.sec-head{text-align:center;margin-bottom:2.2rem}
.sec-head h2{
  font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;font-size:clamp(1.7rem,5vw,2.5rem);
}
.sec-head .sub{font-style:italic;color:var(--ink-soft)}

/* ---------- Scanner ---------- */
#scanner{border-bottom:3px solid var(--ink)}
.scan-grid{max-width:420px;margin:0 auto;text-align:center}
.radio-front{
  border:4px solid var(--ink);border-radius:14px;
  background:var(--ink);padding:.9rem;
}
.dial-row{
  display:flex;justify-content:space-between;align-items:baseline;
  font-family:'Oswald',sans-serif;color:var(--paper);
  font-size:.72rem;letter-spacing:.12em;padding:0 .3rem .6rem;
}
.dial-row span:first-child{font-weight:700}
#reader{width:100%;min-height:250px;background:var(--paper);border-radius:6px;overflow:hidden}
#reader video{border-radius:6px}
.scan-idle{
  min-height:250px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:1rem;
  text-align:center;padding:1rem;color:var(--ink-soft);
  background:var(--paper);
}
.qr-mark{
  width:64px;height:64px;border:4px solid var(--ink);position:relative;
}
.qr-mark::before,.qr-mark::after{
  content:"";position:absolute;background:var(--ink);
}
.qr-mark::before{inset:10px 34px 34px 10px}
.qr-mark::after{inset:34px 10px 10px 34px}
.scan-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin-top:1rem}
.btn{
  font-family:'Oswald',sans-serif;text-transform:uppercase;
  letter-spacing:.18em;font-size:.8rem;font-weight:600;
  padding:.7rem 1.5rem;cursor:pointer;
  border:2px solid var(--ink);background:var(--paper);color:var(--ink);
  transition:background .15s ease,color .15s ease;
}
.btn:hover,.btn.primary{background:var(--ink);color:var(--paper)}
.btn.primary:hover{background:var(--paper);color:var(--ink)}
.result{
  margin-top:1.4rem;border:2px solid var(--ink);
  padding:1.3rem 1.4rem;display:none;background:#fff;
  text-align:left;
}
.result.show{display:block}
.result h3{
  font-family:'Oswald',sans-serif;text-transform:uppercase;
  letter-spacing:.06em;font-weight:600;font-size:1.2rem;
}
.result .meta{
  font-family:'Oswald',sans-serif;font-size:.75rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);
  margin:.25rem 0 .7rem;
}
.result p{font-size:.95rem}
.result.error{background:var(--ink);color:var(--paper);text-align:center}
.result.error .meta{color:rgba(245,243,237,.7)}
.scan-note{margin-top:1.1rem;font-size:.85rem;font-style:italic;color:var(--ink-soft)}

/* ---------- Besuch (Plakat-Infos) ---------- */
.info-list{max-width:640px;margin:0 auto}
.info-item{
  display:flex;flex-direction:column;gap:.6rem;align-items:center;
  text-align:center;padding:1.5rem .2rem;
}
.info-item + .info-item{border-top:2px dotted var(--line)}
.info-item svg{width:46px;height:46px}
.info-item h3{
  font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;
  letter-spacing:.2em;font-size:.95rem;margin-bottom:.2rem;
}
.info-item p{color:var(--ink-soft)}
.info-item .big{
  font-family:'Oswald',sans-serif;font-weight:700;font-size:1.5rem;
  text-transform:uppercase;letter-spacing:.08em;color:var(--ink);
}
.info-item em{font-style:italic}

/* ---------- Ribbon / Footer ---------- */
.ribbon-wrap{text-align:center;padding:0 1rem 3.2rem}
.ribbon{
  display:inline-block;background:var(--ink);color:var(--paper);
  font-family:'Yellowtail',cursive;font-size:clamp(1.6rem,5vw,2.3rem);
  padding:.55rem 2.6rem .75rem;
  clip-path:polygon(0 0,100% 0,96% 50%,100% 100%,0 100%,4% 50%);
}
footer{
  background:var(--ink);color:rgba(245,243,237,.75);
  padding:1.5rem 1rem;text-align:center;font-size:.8rem;
}
footer .freq{
  font-family:'Oswald',sans-serif;letter-spacing:.3em;text-transform:uppercase;
  display:block;margin-bottom:.3rem;color:var(--paper);
}
footer a{color:rgba(245,243,237,.75)}
footer .credit{margin-top:.6rem;font-size:.7rem;letter-spacing:.04em;opacity:.6}
