/* kryptocasino-de2026.org — Aurora / dark-first
   Zero webfonts, zero external hosts. Animation is transform+opacity only. */

:root{
  color-scheme:dark light;
  /* Flagge: Schwarz #000000 · Rot #DD0000 · Gold #FFCE00 */
  --ink:#09090B; --ink2:#101014; --panel:#16161B; --panel2:#1D1D23; --line:#2E2E36;
  --tx:#F6F6F8; --muted:#A9A9B4; --dim:#77777F;
  --gold:#FFCE00; --goldSoft:#FFDE5C; --red:#DD0000; --redSoft:#FF4747;
  --brand:#FFCE00; --brand2:#FFDE5C; --violet:#DD0000; --magenta:#FFCE00;
  --cta:#FFCE00; --onCta:#0B0B0D;
  --ok:#3DD68C; --warn:#FFCE00; --bad:#FF6B6B;
  --glass:rgba(20,20,25,.985); --glassHdr:rgba(9,9,11,.90);
  --panelA:rgba(22,22,27,.95); --panelB:rgba(29,29,35,.95); --panelC:rgba(22,22,27,.92);
  --tint:rgba(255,206,0,.11); --tintB:rgba(255,206,0,.38); --tintH:rgba(255,206,0,.07);
  --ctaGlow:rgba(255,206,0,.42); --ctaSoft:rgba(255,206,0,.13); --ctaBrd:rgba(255,206,0,.50);
  --r:14px; --wrap:1180px;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --shadow:0 18px 50px -12px rgb(0 0 0 / .55);
}
@media (prefers-color-scheme:light){
  :root{--ink:#FAFAFB;--ink2:#F2F2F5;--panel:#FFFFFF;--panel2:#F5F5F8;--line:#E1E1E7;
        --tx:#0B0B0D;--muted:#4B4B57;--dim:#6E6E7A;
        /* bright gold is 1.6:1 on white — text uses a darkened gold instead */
        --gold:#FFCE00;--goldSoft:#FFDE5C;--red:#C10000;--redSoft:#E02424;
        --brand:#8A6D00;--brand2:#6F5700;--violet:#C10000;--magenta:#8A6D00;
        --cta:#8A6D00;--onCta:#FFFFFF;
        --ok:#0F7A4A;--warn:#8A6D00;--bad:#C0392B;--shadow:0 16px 40px -14px rgb(20 20 25 / .16);
        --glass:rgba(255,255,255,.995);--glassHdr:rgba(250,250,251,.93);
        --panelA:rgba(255,255,255,.97);--panelB:rgba(245,245,248,.97);--panelC:rgba(255,255,255,.95);
        --tint:rgba(193,0,0,.06);--tintB:rgba(193,0,0,.26);--tintH:rgba(193,0,0,.04);
        --ctaGlow:rgba(138,109,0,.30);--ctaSoft:rgba(138,109,0,.09);--ctaBrd:rgba(138,109,0,.40)}
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:hidden;scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--tx);font:16px/1.7 var(--sans);
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand2);text-decoration:none;text-underline-offset:3px}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--brand2);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:22px}
.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip:focus{width:auto;height:auto;clip-path:none;left:10px;top:10px;z-index:80;background:var(--panel);padding:12px 16px;border-radius:10px;border:2px solid var(--brand2)}

/* ================= aurora backdrop ================= */
body::before{
  content:"";position:fixed;inset:-30% -10% auto -10%;height:80vh;z-index:-2;pointer-events:none;
  background:
    radial-gradient(48% 58% at 16% 26%, rgba(221,0,0,.42), transparent 70%),
    radial-gradient(42% 52% at 80% 20%, rgba(255,206,0,.32), transparent 70%),
    radial-gradient(38% 48% at 52% 62%, rgba(221,0,0,.22), transparent 72%);
  filter:blur(60px) saturate(1.25);opacity:.55;
  animation:aurora 16s ease-in-out infinite alternate;
}
@media (prefers-color-scheme:light){body::before{opacity:.13;filter:blur(80px) saturate(.9)}}
@keyframes aurora{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(-3%,2%,0) scale(1.08)}
  100%{transform:translate3d(3%,-2%,0) scale(1.04)}
}
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,transparent 0%,var(--ink) 62%)}

/* ================= header ================= */
header{position:sticky;top:0;z-index:50;background:var(--glassHdr);border-top:3px solid transparent;border-image:linear-gradient(90deg,#000 0 33.3%,#DD0000 33.3% 66.6%,#FFCE00 66.6% 100%) 1;
  -webkit-backdrop-filter:saturate(150%) blur(14px);backdrop-filter:saturate(150%) blur(14px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:20px;height:68px;min-width:0}
.brand{font-weight:800;font-size:17.5px;letter-spacing:-.4px;color:var(--tx);text-decoration:none;white-space:nowrap}
.brand:hover{text-decoration:none}
.brand{display:flex;align-items:center;gap:10px}
.brandmark{width:30px;height:30px;flex:none;border-radius:50%;display:block}
.brandtx{display:flex;flex-direction:column;line-height:1.05}
.brandtx b{font-weight:800;font-size:16.5px;letter-spacing:-.3px;color:var(--tx)}
.brandtx b i{font-style:normal;color:var(--gold)}
.brandtx s{text-decoration:none;font-size:9.5px;letter-spacing:2.1px;font-weight:700;color:var(--dim);text-transform:uppercase}
.lang{display:flex;gap:6px;margin-left:auto}
.lang a{border:1px solid var(--line);border-radius:8px;padding:5px 10px;font-size:12.5px;font-weight:700;
  color:var(--muted);text-decoration:none;transition:.2s}
.lang a:hover{border-color:var(--brand2);color:var(--brand2);text-decoration:none}
.lang a[aria-current=true]{border-color:var(--brand);color:var(--brand);background:var(--tint)}

/* mega menu */
.mainnav{min-width:0}
.mainnav>ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.has-menu{position:static}
.has-menu>a{display:flex;align-items:center;gap:6px;padding:22px 13px;color:var(--muted);
  font-size:14.5px;font-weight:600;text-decoration:none;position:relative;transition:color .2s}
.has-menu>a::after{content:"";position:absolute;left:13px;right:13px;bottom:14px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--brand),var(--brand2));transform:scaleX(0);transform-origin:left;transition:transform .25s}
.has-menu>a:hover,.has-menu>a[aria-current=page]{color:var(--tx);text-decoration:none}
.has-menu:hover>a::after,.has-menu:focus-within>a::after,.has-menu>a[aria-current=page]::after{transform:scaleX(1)}
.chev{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.6;transition:transform .25s}
.has-menu:hover .chev,.has-menu:focus-within .chev{transform:rotate(180deg)}
.mega{position:absolute;left:0;right:0;top:100%;background:var(--glass);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity .2s,transform .2s,visibility .2s;z-index:60}
.has-menu:hover .mega,.has-menu:focus-within .mega{opacity:1;visibility:visible;transform:none}
.mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:26px;padding:28px 22px 32px}
.mcol strong{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--brand);margin-bottom:11px}
.mcol ul{list-style:none;margin:0;padding:0}
.mcol li{margin-bottom:7px}
.mcol a{color:var(--muted);font-size:14px;text-decoration:none;transition:color .18s,transform .18s;display:inline-block}
.mcol a:hover{color:var(--brand2);transform:translateX(3px);text-decoration:none}

/* mobile nav */
.mobnav{display:none;border-top:1px solid var(--line)}
.mobnav summary{display:flex;align-items:center;gap:10px;padding:14px 22px;font-weight:700;cursor:pointer;min-height:48px;color:var(--tx)}
.mobnav summary::-webkit-details-marker{display:none}
.mobnav summary span{display:block;width:20px;height:2px;border-radius:2px;background:var(--brand);position:relative}
.mobnav summary span+span{margin-left:-25px;top:6px}
.mobnav summary span+span+span{margin-left:-25px;top:12px}
.mobnav .wrap{display:flex;flex-direction:column;padding-bottom:14px}
.mobnav .wrap a{padding:14px 0;border-top:1px solid var(--line);color:var(--muted);font-weight:600;min-height:48px;text-decoration:none}
.mobnav .wrap a:hover{color:var(--brand2)}
@media (max-width:1100px){.mainnav{display:none}.mobnav{display:block}.nav{height:auto;padding-block:14px}}

/* ================= hero ================= */
.hero{padding:74px 0 46px;position:relative}
.hero-split{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center}
.hero-copy{min-width:0}
.hero-media{position:relative;isolation:isolate}
.hero-media picture,.hero-media img{display:block;width:100%}
.hero-media img{aspect-ratio:3/4;object-fit:contain;object-position:bottom center;
  filter:drop-shadow(0 26px 50px rgba(0,0,0,.55)) drop-shadow(0 0 26px rgba(255,206,0,.16));
  position:relative;z-index:2}
/* gold rim + warm grade so a cool photo still sits inside the flag palette */
/* halo behind the cutout */
.hero-media::before{content:"";position:absolute;left:50%;top:6%;width:78%;aspect-ratio:1;translate:-50% 0;
  z-index:0;pointer-events:none;border-radius:50%;
  background:radial-gradient(closest-side,rgba(255,206,0,.30),rgba(221,0,0,.12) 55%,transparent 72%);
  filter:blur(38px)}
/* floor reflection so she is standing on something */
.hero-media::after{content:"";position:absolute;left:50%;bottom:2%;width:66%;height:26px;translate:-50% 0;
  z-index:1;pointer-events:none;border-radius:50%;
  background:radial-gradient(closest-side,rgba(255,206,0,.34),transparent 72%);filter:blur(13px)}
.hero-glow{position:absolute;inset:auto -8% -12% -8%;height:55%;z-index:-1;border-radius:50%;
  background:radial-gradient(closest-side,rgba(255,206,0,.30),transparent 70%);filter:blur(48px)}
/* floating credential chips over the photo */
.floatchip{position:absolute;z-index:3;display:flex;align-items:center;gap:9px;
  background:var(--glass);border:1px solid var(--tintB);border-radius:13px;padding:10px 14px;
  font-size:13px;font-weight:700;color:var(--tx);box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.floatchip b{color:var(--brand);font-size:16px}
.floatchip.a{left:-22px;top:16%}
.floatchip.b{right:-16px;top:46%}
.floatchip.c{left:-10px;bottom:16%}
@media (max-width:980px){
  .hero-split{grid-template-columns:1fr;gap:34px}
  .hero-media{max-width:420px;margin-inline:auto}
  .floatchip.a{left:-8px}.floatchip.b{right:-4px}.floatchip.c{left:0}
}
@media (max-width:560px){.floatchip{font-size:11.5px;padding:8px 11px}.floatchip b{font-size:14px}}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.8px;
  text-transform:uppercase;color:var(--brand);border:1px solid var(--tintB);
  background:var(--tint);padding:6px 13px;border-radius:999px;margin-bottom:20px}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brand);
  box-shadow:0 0 0 0 var(--tintB);animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px transparent}100%{box-shadow:0 0 0 0 transparent}}
.hero h1{font-size:clamp(32px,5.2vw,54px);line-height:1.08;letter-spacing:-1.4px;margin:0 0 18px;max-width:19ch;font-weight:800}
.hero h1 em{font-style:normal;background:linear-gradient(100deg,var(--brand),var(--brand2) 40%,var(--violet) 85%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.lede{font-size:18.5px;line-height:1.65;color:var(--muted);max-width:62ch;margin:0 0 26px}
.hero-img{border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--shadow)}

/* trust chips */
.trust{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 0;padding:0;list-style:none}
.trust li{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--muted);
  background:var(--panelC);border:1px solid var(--line);
  border-radius:999px;padding:8px 15px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s,color .2s}
.trust li:hover{border-color:var(--tintB);color:var(--tx)}
.trust svg{width:15px;height:15px;flex:none;stroke:var(--ok);fill:none;stroke-width:2.6}

/* ================= sections ================= */
section{padding:44px 0}
h2{font-size:clamp(23px,3vw,31px);letter-spacing:-.7px;margin:0 0 10px;font-weight:800}
h3{font-size:18px;margin:0 0 6px;font-weight:700}
.sub{color:var(--muted);margin:0 0 26px;max-width:72ch}

/* ================= ranked list (replaces cards) ================= */
.ranklist{display:flex;flex-direction:column;gap:12px;counter-reset:rank}
.rank{position:relative;display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:16px;
  background:linear-gradient(160deg,var(--panelA),var(--panelB));
  border:1px solid var(--line);border-radius:16px;padding:15px 18px;overflow:hidden;
  transition:transform .3s cubic-bezier(.2,.7,.3,1),border-color .3s,box-shadow .3s}
.rank::after{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,206,0,.13),transparent);
  transform:skewX(-18deg);transition:left .75s cubic-bezier(.2,.7,.3,1)}
.rank:hover::after{left:120%}
.rank .logo{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;
  background:var(--panelC);border:1px solid var(--line);font-weight:800;font-size:14px;color:var(--brand);overflow:hidden}
.rank .logo img{width:100%;height:100%;object-fit:cover}
.rank::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--brand),var(--brand2),var(--violet));opacity:0;transition:opacity .28s}
.rank:hover{transform:translateY(-2px);border-color:var(--tintB);box-shadow:0 16px 40px -18px rgba(255,206,0,.45),var(--shadow)}
.rank:hover::before{opacity:1}

.rank .num{color:var(--brand)}
/* podium: filled badge keeps contrast in both themes (gold text on white is 1.4:1) */
.rank:nth-child(-n+3) .num{display:grid;place-items:center;width:40px;height:40px;margin-inline:auto;
  border-radius:11px;font-size:17px;color:#0B0B0D;background:linear-gradient(145deg,var(--gold),var(--goldSoft));
  box-shadow:0 4px 14px -6px rgba(255,206,0,.7)}
.rank:nth-child(2) .num{background:linear-gradient(145deg,#D8D8DE,#F2F2F5);box-shadow:0 4px 14px -6px rgba(0,0,0,.35)}
.rank:nth-child(3) .num{background:linear-gradient(145deg,#C97B34,#E5A868);box-shadow:0 4px 14px -6px rgba(201,123,52,.55)}
.rank .body{min-width:0}
.rank .name{font-size:17.5px;font-weight:800;margin:0;letter-spacing:-.35px}
.rank .name a{color:var(--tx);text-decoration:none}
.rank .name a:hover{color:var(--brand2)}
.rank .facts{display:flex;flex-wrap:wrap;gap:5px 16px;margin:5px 0 0;padding:0;list-style:none;font-size:13px;color:var(--muted)}
.rank .facts li{display:flex;align-items:center;gap:6px}
.rank .facts b{color:var(--tx);font-weight:700}
.rank .act{display:flex;flex-direction:column;gap:7px;align-items:stretch;min-width:132px}
.score{display:inline-flex;align-items:baseline;gap:3px;justify-content:center;font-weight:800;font-size:19px;
  background:var(--tint);border:1px solid var(--tintB);color:var(--brand);border-radius:9px;padding:5px 11px}
.score small{font-size:11.5px;font-weight:600;opacity:.8}
.score.pending{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  background:transparent;border-style:dashed;border-color:var(--line);color:var(--dim);padding:6px 10px}
@media (max-width:720px){
  .rank{grid-template-columns:48px 1fr;gap:12px;padding:14px}
  .rank .act{grid-column:1/-1;flex-direction:row;align-items:center}
  .rank .num{font-size:21px}
}

/* ================= tiles ================= */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.tile{position:relative;background:var(--panelC);border:1px solid var(--line);
  border-radius:var(--r);padding:20px;transition:transform .28s cubic-bezier(.2,.7,.3,1),border-color .28s,box-shadow .28s;overflow:hidden}
.tile::after{content:"";position:absolute;inset:0;border-radius:var(--r);padding:1px;opacity:0;transition:opacity .3s;
  background:linear-gradient(135deg,var(--brand),var(--violet));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.tile:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.tile:hover::after{opacity:1}
.tile h3{margin:0 0 8px;font-size:16.5px}
.tile h3 a{color:var(--tx);text-decoration:none}
.tile:hover h3 a{color:var(--brand2)}
.tile p{margin:0;font-size:14px;color:var(--muted);line-height:1.6}
.tile .kv{display:flex;gap:14px;margin-top:12px;font-size:13px;color:var(--dim)}
.tile .kv b{color:var(--brand);font-weight:700}

/* ================= verdict ================= */
.verdict{position:relative;background:linear-gradient(150deg,var(--panelA),var(--panelB));
  border:1px solid var(--line);border-radius:var(--r);padding:26px;margin:0 0 30px;overflow:hidden}
.verdict::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--brand),var(--violet))}
.verdict h2{font-size:20px;margin:0 0 10px}
.vgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:18px;margin-top:20px}
.vgrid div{font-size:15px;font-weight:600}
.vgrid span{display:block;color:var(--dim);font-size:11.5px;text-transform:uppercase;letter-spacing:.8px;font-weight:700;margin-bottom:3px}

/* ================= buttons ================= */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 20px;
  border-radius:10px;font-weight:700;font-size:14.5px;text-decoration:none;cursor:pointer;white-space:nowrap;
  background:linear-gradient(100deg,var(--gold),var(--goldSoft));color:#0B0B0D;
  box-shadow:0 6px 18px -6px var(--ctaGlow);
  transition:filter .22s,box-shadow .22s,transform .22s}
.btn:hover{filter:brightness(1.08);box-shadow:0 10px 26px -6px var(--ctaGlow);text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--brand);border:1.5px solid var(--ctaBrd);box-shadow:none;font-weight:700}
.btn.ghost:hover{background:linear-gradient(100deg,var(--gold),var(--goldSoft));color:#0B0B0D;border-color:transparent}

/* ================= tables ================= */
.scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;background:var(--panelC);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:14.5px}
caption{text-align:left;color:var(--dim);font-size:13.5px;padding-bottom:10px}
th{background:var(--tint);text-align:left;padding:12px 14px;
  font-size:11.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);font-weight:700}
td{padding:12px 14px;border-top:1px solid var(--line)}
tbody tr{transition:background .2s}
tbody tr:hover{background:var(--tintH)}

/* ================= prose ================= */
.prose p,.prose ul{max-width:72ch;color:var(--muted)}
.prose p{margin:0 0 16px}
.prose strong{color:var(--tx)}
.pros{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}
@media (max-width:640px){.pros{grid-template-columns:1fr}}
.pros>div{background:var(--panelC);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.pros>div:first-child{border-top:2px solid var(--ok)}
.pros>div:last-child{border-top:2px solid var(--bad)}
.pros ul{margin:10px 0 0;padding-left:20px}
.pros li{margin-bottom:7px;color:var(--muted)}

/* ================= faq ================= */
details{background:var(--panelC);border:1px solid var(--line);
  border-radius:12px;padding:16px 18px;margin-bottom:10px;transition:border-color .22s}
details:hover{border-color:var(--tintB)}
details>summary{font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
details>summary::-webkit-details-marker{display:none}
details>summary::after{content:"";width:11px;height:11px;flex:none;border-right:2.4px solid var(--brand);
  border-bottom:2.4px solid var(--brand);transform:rotate(45deg) translateY(-2px);transition:transform .25s}
details[open]>summary::after{transform:rotate(225deg) translateY(-2px)}
details p{margin:12px 0 0;color:var(--muted)}
.mobnav{background:none;border-radius:0;padding:0;margin:0}
.mobnav summary::after{display:none}

/* ================= breadcrumbs ================= */
.crumbs{font-size:13px;color:var(--dim);padding-top:22px}
.crumbs a{color:var(--dim);text-decoration:none}
.crumbs a:hover{color:var(--brand2)}

/* ================= footer ================= */
footer{background:var(--panelB);border-top:1px solid var(--line);margin-top:60px;padding:44px 0 28px;font-size:14px;color:var(--muted)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:28px;margin-bottom:28px}
.fcol strong{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--brand);margin-bottom:11px}
.fcol ul{list-style:none;margin:0;padding:0}
.fcol li{margin-bottom:7px}
.fcol a{color:var(--muted);font-size:14px;text-decoration:none;transition:color .18s}
.fcol a:hover{color:var(--brand2)}
.flegal{display:flex;flex-wrap:wrap;gap:18px;padding-top:18px;border-top:1px solid var(--line)}
.flegal a{color:var(--muted)}
.disclaimer{font-size:12.5px;line-height:1.65;color:var(--dim);border-top:1px solid var(--line);padding-top:16px;margin-top:16px}

/* ================= scroll reveal ================= */
.js-reveal .reveal{opacity:0;transform:translateY(18px)}
.js-reveal .reveal.in{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
}


/* ================= mobile optimisation ================= */
@media (max-width:760px){
  .wrap{padding-inline:18px}
  .hero{padding:44px 0 30px}
  .hero h1{font-size:clamp(28px,8vw,36px);letter-spacing:-.9px;max-width:none}
  .lede{font-size:16.5px}
  section{padding:32px 0}
  h2{font-size:clamp(21px,6vw,25px)}
  .tiles{grid-template-columns:1fr;gap:12px}
  .tile{padding:17px}
  .trust li{font-size:12.5px;padding:7px 12px}
  .vgrid{grid-template-columns:1fr 1fr;gap:14px}
  .verdict{padding:20px}
  .fgrid{grid-template-columns:1fr 1fr;gap:22px}
  footer{padding:32px 0 24px}
  .mega{display:none}
}
@media (max-width:420px){
  .vgrid,.fgrid{grid-template-columns:1fr}
  .rank .facts{gap:4px 12px;font-size:12.5px}
}
@supports(padding:max(0px)){
  .wrap{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
}
a,button,summary{-webkit-tap-highlight-color:rgba(45,212,191,.18)}
@media (hover:none){
  .rank:hover,.tile:hover{transform:none;box-shadow:none}
  .rank:active,.tile:active{border-color:var(--tintB)}
}

/* ================= luxury pass 2 ================= */
/* monogram that reads as a design choice, not a missing asset */
.rank .logo{width:58px;height:58px;border-radius:15px;display:grid;place-items:center;
  font-weight:800;font-size:17px;letter-spacing:.4px;
  color:hsl(var(--lh,46) 85% 78%);
  background:linear-gradient(150deg,hsl(var(--lh,46) 42% 18%),hsl(var(--lh,46) 48% 11%));
  border:1px solid hsl(var(--lh,46) 45% 30% / .8);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 6px 16px -8px hsl(var(--lh,46) 60% 30% / .6);
  position:relative;overflow:hidden;flex:none}
.rank .logo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(150deg,rgba(255,255,255,.14),transparent 55%);pointer-events:none}
@media (prefers-color-scheme:light){
  .rank .logo{color:hsl(var(--lh,46) 60% 26%);
    background:linear-gradient(150deg,hsl(var(--lh,46) 65% 93%),hsl(var(--lh,46) 55% 86%));
    border-color:hsl(var(--lh,46) 45% 70%)}}
.rank .logo.has-img{width:58px;height:58px}
.rank .logo.has-img{background:#fff;border-color:var(--line);padding:5px}
.rank .logo.has-img img{width:100%;height:100%;object-fit:contain;display:block}
.rank .logo.has-img::after{display:none}

/* podium row gets a gold frame + ribbon */
.rank:first-child{border-color:var(--tintB);
  background:linear-gradient(160deg,rgba(255,206,0,.07),var(--panelB) 55%)}
.rank:first-child::before{opacity:1}
.rank:first-child .act{margin-top:16px}
.ribbon{position:absolute;top:0;right:0;z-index:3;
  background:linear-gradient(100deg,var(--gold),var(--goldSoft));color:#0B0B0D;
  font-size:10px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase;
  padding:4px 12px;border-bottom-left-radius:10px}

/* ================= CTA ================= */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;left:-70%;width:40%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent);
  transform:skewX(-20deg);transition:left .65s cubic-bezier(.2,.7,.3,1);pointer-events:none}
.btn:hover::after{left:130%}
.btn .arw{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.6;
  transition:transform .25s cubic-bezier(.2,.7,.3,1)}
.btn:hover .arw{transform:translateX(4px)}
.btn.lg{font-size:16px;padding:15px 26px;min-height:52px;border-radius:12px}
/* the row CTA is the money button — make it the loudest thing in the row */
.rank .act .btn{background:linear-gradient(100deg,var(--gold),var(--goldSoft));color:#0B0B0D;
  border:none;box-shadow:0 6px 18px -8px var(--ctaGlow);font-weight:800}
.rank .act .btn:hover{filter:brightness(1.07);box-shadow:0 12px 26px -8px var(--ctaGlow)}
.rank:first-child .act .btn{box-shadow:0 8px 24px -6px rgba(255,206,0,.55)}

/* secondary action under the CTA */
.rank .act .more{font-size:12px;font-weight:600;color:var(--dim);text-align:center;text-decoration:none}
.rank .act .more:hover{color:var(--brand)}

/* ================= section headers ================= */
.shead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:8px}
.shead h2{margin:0}
.shead .meta{font-size:13px;color:var(--dim);font-weight:600;white-space:nowrap}

/* ================= sticky mobile CTA ================= */
.stickycta{position:fixed;left:0;right:0;bottom:0;z-index:45;display:none;
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  background:var(--glassHdr);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-top:1px solid var(--line)}
.stickycta .btn{width:100%}
@media (max-width:720px){.stickycta{display:block}body{padding-bottom:76px}}

/* subtle grain over the aurora — kills gradient banding */
body::after{background-image:linear-gradient(180deg,transparent 0%,var(--ink) 62%),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.028'/%3E%3C/svg%3E")}

/* ================= high-level motion (all progressive enhancement) ================= */
/* cross-document view transitions — page navigations crossfade, CSS only */
@view-transition{navigation:auto}
::view-transition-old(root){animation-duration:.22s}
::view-transition-new(root){animation-duration:.28s}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}

/* scroll-driven entrances — each row/tile animates as IT enters the viewport.
   No JS, no observer; browsers without animation-timeline simply skip it. */
@supports (animation-timeline: view()){
  .rank,.tile{animation:riseIn linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
  .verdict,.pros>div{animation:riseIn linear both;animation-timeline:view();animation-range:entry 0% entry 45%}
  @keyframes riseIn{from{opacity:.15;transform:translateY(26px) scale(.985)}to{opacity:1;transform:none}}
}
@media (prefers-reduced-motion:reduce){.rank,.tile,.verdict,.pros>div{animation:none!important}}

/* hero entrance on load — staggered fade-up, pure CSS */
@keyframes heroUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.hero-copy>*{animation:heroUp .6s cubic-bezier(.2,.7,.3,1) backwards}
.hero-copy>*:nth-child(1){animation-delay:.05s}
.hero-copy>*:nth-child(2){animation-delay:.14s}
.hero-copy>*:nth-child(3){animation-delay:.23s}
.hero-copy>*:nth-child(4){animation-delay:.32s}
.hero-copy>*:nth-child(5){animation-delay:.41s}
.hero-media{animation:heroUp .7s cubic-bezier(.2,.7,.3,1) .2s backwards}
.floatchip{animation:heroUp .5s cubic-bezier(.2,.7,.3,1) backwards}
.floatchip.a{animation-delay:.55s}.floatchip.b{animation-delay:.7s}.floatchip.c{animation-delay:.85s}
@media (prefers-reduced-motion:reduce){.hero-copy>*,.hero-media,.floatchip{animation:none!important}}

/* ================= E-E-A-T: byline + author + toc + progress ================= */
.byline{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin:-8px 0 26px;
  padding:14px 16px;background:var(--panelC);border:1px solid var(--line);border-radius:14px}
.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;
  font-weight:800;font-size:15px;color:#0B0B0D;background:linear-gradient(140deg,var(--gold),var(--goldSoft))}
.byline .who{display:flex;flex-direction:column;line-height:1.35;min-width:0}
.byline .who a{font-weight:800;color:var(--tx);text-decoration:none;font-size:15px}
.byline .who a:hover{color:var(--brand)}
.byline .who span{font-size:12.5px;color:var(--dim)}
.byline .when{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;line-height:1.35;font-size:12.5px;color:var(--dim)}
.byline .when time{font-weight:700;color:var(--muted)}
@media (max-width:560px){.byline .when{margin-left:57px;align-items:flex-start}}

.toc{background:var(--panelC);border:1px solid var(--line);border-left:3px solid var(--gold);
  border-radius:12px;padding:16px 20px;margin:0 0 28px}
.toc strong{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--brand);margin-bottom:9px}
.toc ol{margin:0;padding-left:18px;columns:2;column-gap:32px}
@media (max-width:700px){.toc ol{columns:1}}
.toc li{margin-bottom:6px;font-size:14px;break-inside:avoid}
.toc a{color:var(--muted);text-decoration:none}
.toc a:hover{color:var(--brand2)}
html{scroll-padding-top:84px}

/* reading progress — pure CSS scroll-driven, header underline */
@supports (animation-timeline: scroll()){
  body::marker{content:""}
  header::after{content:"";position:absolute;left:0;bottom:-3px;height:3px;width:100%;
    background:linear-gradient(90deg,var(--gold),var(--red));transform-origin:left;
    transform:scaleX(0);animation:readbar linear both;animation-timeline:scroll(root)}
  @keyframes readbar{to{transform:scaleX(1)}}
}
@media (prefers-reduced-motion:reduce){header::after{animation:none;display:none}}

/* werbehinweis (ad-marking, UWG + Search Central link policy) */
.adnote{font-size:12.5px;line-height:1.6;color:var(--dim);background:var(--panelC);
  border:1px dashed var(--line);border-radius:10px;padding:10px 14px;margin:0 0 18px;max-width:75ch}
.adnote code{font-size:11px;background:var(--tint);color:var(--brand);padding:1px 5px;border-radius:4px}
.adnote a{color:var(--muted)}

/* cited sources box */
.sources{background:var(--panelC);border:1px solid var(--line);border-left:3px solid var(--ok);
  border-radius:12px;padding:18px 22px;margin:8px 0 6px}
.sources h2{font-size:15px;margin:0 0 6px;text-transform:uppercase;letter-spacing:.7px;color:var(--ok)}
.sources p{font-size:13.5px;color:var(--dim);margin:0 0 8px}
.sources ul{margin:0;padding-left:18px}
.sources li{font-size:14px;margin-bottom:5px}
.sources a{color:var(--muted)}
.sources a:hover{color:var(--brand2)}
