/* ink & iron glow — public annotator page. Self-contained, no dependencies. */
:root {
  --bg:#0a0d13; --bg-soft:#0e131c; --surface:#131a26; --surface-2:#1a2331;
  --line:#243044; --line-soft:#1b2536; --text:#e7eaf1; --text-muted:#97a1b3; --text-dim:#6b7689;
  --ember:#ff8a3d; --ember-2:#ffb347; --glow:rgba(255,138,61,.35);
  --is:#f0a92e; --ob:#9b6dff; --cn:#ff5d5d; --sd:#2ec4b6; --tt:#4d9fff; --un:#8a93a6;
  --radius:16px; --radius-sm:10px; --maxw:980px;
  --mono:ui-monospace,"SF Mono","Cascadia Code",Menlo,Consolas,monospace;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
body{margin:0;font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--ember-2);text-decoration:none}a:hover{text-decoration:underline}
code{font-family:var(--mono);font-size:.92em}
::selection{background:var(--glow);color:#fff}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(1100px 560px at 82% -5%,rgba(255,138,61,.10),transparent 60%),radial-gradient(820px 520px at 0% 8%,rgba(77,159,255,.06),transparent 55%)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}

/* nav */
.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);background:rgba(10,13,19,.72);border-bottom:1px solid var(--line-soft)}
.nav-inner{display:flex;align-items:center;gap:16px;height:58px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.02em}
.brand .dim{color:var(--text-dim);font-weight:600;font-size:.78rem}
.nav-links{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
.nav-links a{color:var(--text-muted);padding:7px 11px;border-radius:8px;font-size:.9rem;font-weight:500}
.nav-links a:hover{color:var(--text);background:var(--surface);text-decoration:none}
.nav-actions{display:flex;align-items:center;gap:8px}
.btn-ghost{border:1px solid var(--line);background:transparent;color:var(--text-muted);border-radius:8px;padding:7px 12px;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}
.btn-ghost:hover{color:var(--text);border-color:var(--ember)}
.nav-burger{display:none}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;cursor:pointer;border-radius:999px;padding:12px 22px;font:inherit;font-weight:600;border:1px solid transparent;transition:transform .15s,box-shadow .2s}
.btn-primary{background:linear-gradient(135deg,var(--ember),var(--ember-2));color:#1a0e04;box-shadow:0 8px 30px -8px var(--glow)}
.btn-primary:hover{transform:translateY(-2px);text-decoration:none}
.btn-outline{border-color:var(--line);color:var(--text);background:var(--surface)}
.btn-outline:hover{border-color:var(--ember);text-decoration:none;transform:translateY(-2px)}

/* sections */
section{padding:84px 0;border-top:1px solid var(--line-soft)}
.kicker{display:inline-block;font-family:var(--mono);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ember);margin-bottom:14px;border:1px solid var(--line);border-radius:999px;padding:5px 13px;background:var(--surface)}
.h2{font-size:clamp(1.6rem,3.4vw,2.5rem);margin:0 0 14px;line-height:1.16}
.lead{font-size:1.1rem;color:var(--text-muted);max-width:720px}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s,transform .7s}
.reveal.in-view{opacity:1;transform:none}.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}

/* hero */
.hero{padding:84px 0 64px;border-top:none}
.hero h1{font-size:clamp(2.1rem,5vw,3.5rem);margin:16px 0 18px;line-height:1.1}
.hero h1 .accent{background:linear-gradient(120deg,var(--ember),var(--ember-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{font-size:1.18rem}
.hero-cta{display:flex;gap:14px;margin:28px 0 16px;flex-wrap:wrap}
.hero-note{font-family:var(--mono);font-size:.8rem;color:var(--text-dim)}

/* demo */
.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px}
@media(max-width:820px){.demo-grid{grid-template-columns:1fr}}
.demo-input textarea{width:100%;min-height:140px;resize:vertical;background:var(--bg-soft);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);padding:15px;font-family:var(--mono);font-size:.98rem;line-height:1.5}
.demo-input textarea:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px var(--glow)}
.demo-row{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}
.presets-label{font-size:.82rem;color:var(--text-dim);width:100%;margin-top:4px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{background:var(--surface-2);border:1px solid var(--line);color:var(--text-muted);border-radius:999px;padding:6px 12px;font-size:.82rem;cursor:pointer}
.chip:hover{color:var(--text);border-color:var(--ember)}
.result{--rc:var(--un);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--rc);border-radius:var(--radius);padding:24px;min-height:240px;display:flex;flex-direction:column;justify-content:center}
.result.is{--rc:var(--is)}.result.ob{--rc:var(--ob)}.result.cn{--rc:var(--cn)}.result.sd{--rc:var(--sd)}.result.tt{--rc:var(--tt)}.result.un{--rc:var(--un)}
.result .empty{color:var(--text-dim);text-align:center;margin:auto}
.result .empty.err{color:var(--is);font-size:.92rem;line-height:1.5}
.verdict-name{font-size:1.5rem;font-weight:800;color:var(--rc);letter-spacing:-.01em}
.verdict-text{font-size:1.05rem;color:var(--text);margin:10px 0 18px}
.verdict-meta{display:flex;gap:24px;border-top:1px solid var(--line-soft);padding-top:14px}
.vm span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}
.vm b{color:var(--text);font-size:1rem}
.band{font-family:var(--mono)}.band-niedrig{color:var(--un)}.band-mittel{color:var(--is)}.band-hoch{color:var(--sd)}

/* principle */
.prin-card{margin-top:30px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px}
#principleText{font-size:1.12rem;color:var(--text);margin:0 0 18px}
.eli5-btn{border:1px dashed var(--line);background:var(--bg-soft);color:var(--ember-2);border-radius:999px;padding:8px 16px;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer}
.eli5-btn[aria-pressed=true]{background:var(--ember);color:#1a0e04;border-style:solid}
.prin-points{display:flex;gap:14px;flex-wrap:wrap;margin-top:22px}
.prin-points span{background:var(--bg-soft);border:1px solid var(--line-soft);border-radius:999px;padding:8px 14px;font-size:.9rem;color:var(--text-muted)}

/* categories */
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px}
@media(max-width:760px){.cat-grid{grid-template-columns:1fr}}
.cat{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--c,var(--un));border-radius:var(--radius-sm);padding:16px 18px;font-size:.96rem}
.cat.is{--c:var(--is)}.cat.ob{--c:var(--ob)}.cat.cn{--c:var(--cn)}.cat.sd{--c:var(--sd)}.cat.tt{--c:var(--tt)}.cat.un{--c:var(--un)}
.cat-note{margin-top:18px;color:var(--text-dim);font-size:.92rem}

/* forms (join + login) */
.form-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:26px;margin-top:30px;align-items:start}
@media(max-width:820px){.form-grid{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.field{margin-bottom:16px}
.field label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:6px}
.field input,.field textarea{width:100%;background:var(--bg-soft);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;font:inherit;font-size:.96rem}
.field textarea{min-height:90px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px var(--glow)}
.form-note{font-size:.82rem;color:var(--text-dim);margin-top:6px}
.form-fallback{font-size:.85rem;color:var(--text-dim);margin-top:16px}
.login-card{border-top:3px solid var(--ob)}
.login-card h3{margin:0 0 8px;font-size:1.15rem}
.login-msg{color:var(--cn);font-size:.85rem;min-height:1.1em;margin-top:6px}
.login-invite{font-size:.82rem;color:var(--text-dim);margin-top:14px}
.hp{position:absolute!important;left:-9999px}

/* footer */
.footer{padding:50px 0 60px;border-top:1px solid var(--line);color:var(--text-muted)}
.footer-grid{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
.footer .principle{font-family:var(--mono);font-size:.8rem;color:var(--text-dim);margin-top:6px}


.footer-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.visitor-counter{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;background:var(--surface);padding:8px 13px;font-family:var(--mono);font-size:.78rem;color:var(--text-muted)}
.visitor-counter-label{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase}
.visitor-counter-value{color:var(--ember-2);font-weight:800;font-variant-numeric:tabular-nums;min-width:2ch;text-align:right}
.visitor-counter-state{color:var(--sd);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.visitor-counter-state.err{color:var(--cn)}
@media(max-width:560px){.footer-actions{justify-content:flex-start}.visitor-counter{width:100%;justify-content:space-between}}

/* responsive nav */
@media(max-width:820px){
  .nav-links{display:none;position:absolute;top:58px;left:0;right:0;flex-direction:column;background:var(--bg-soft);border-bottom:1px solid var(--line);padding:10px 16px}
  .nav-links.open{display:flex}
  .nav-burger{display:inline-flex}
  section{padding:64px 0}
}


/* ---------- identity access ---------- */
.login-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.access-status{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:999px;background:var(--bg-soft);padding:8px 12px;font-family:var(--mono);font-size:.78rem;color:var(--text-muted);margin:14px 0}
.status-dot{width:9px;height:9px;border-radius:999px;background:var(--text-dim);box-shadow:0 0 0 3px rgba(151,161,179,.08)}
.access-status.is-approved .status-dot{background:var(--sd);box-shadow:0 0 0 3px rgba(46,196,182,.12)}
.access-status.is-pending .status-dot{background:var(--is);box-shadow:0 0 0 3px rgba(240,169,46,.12)}
.access-status.is-error .status-dot{background:var(--cn);box-shadow:0 0 0 3px rgba(255,93,93,.12)}
.auth-shell{min-height:82vh;display:grid;place-items:center;padding:80px 24px}
.auth-panel{width:min(620px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:0 24px 80px -60px var(--glow)}
.auth-panel .h2{margin-top:14px}
.auth-panel .lead{font-size:1rem;margin-bottom:20px}
.auth-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:18px}
.auth-msg{min-height:1.4em;font-size:.9rem;color:var(--text-muted);margin:14px 0 0}
.auth-msg.err{color:var(--cn)}
.auth-msg.ok{color:var(--sd)}
.auth-msg.warn{color:var(--is)}
.auth-user{font-family:var(--mono);font-size:.82rem;color:var(--text-dim);margin-top:8px;word-break:break-word}
.portal-grid{display:grid;gap:18px;margin-top:24px}
.portal-card{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius-sm);padding:18px}
.portal-card b{color:var(--ember-2)}
