@import '@fontsource/fraunces/400.css'; @import '@fontsource/fraunces/600.css'; @import '@fontsource/public-sans/400.css'; @import '@fontsource/public-sans/500.css'; @import '@fontsource/public-sans/600.css'; :root{ --petrol: oklch(0.46 0.066 207); --petrol-deep: oklch(0.36 0.06 210); --petrol-soft: oklch(0.95 0.018 200); --ink: oklch(0.24 0.02 250); --slate: oklch(0.52 0.02 250); --light: oklch(0.985 0.006 230); --card: oklch(1 0 0); --line: oklch(0.9 0.01 240); --warm: oklch(0.68 0.15 47); --warm-bg: oklch(0.96 0.035 60); --danger: oklch(0.55 0.18 25); --danger-bg: oklch(0.95 0.04 30); --ok: oklch(0.55 0.11 155); --ok-bg: oklch(0.95 0.04 160); --radius: 12px; --maxw: 1100px; --font-head: 'Fraunces', Georgia, serif; --font-body: 'Public Sans', system-ui, sans-serif; } *{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--light);line-height:1.6;-webkit-font-smoothing:antialiased} h1,h2,h3{font-family:var(--font-head);font-weight:600;line-height:1.15;margin:0 0 .5em} h1{font-size:clamp(2rem,5vw,3.1rem);letter-spacing:-.01em} h2{font-size:clamp(1.5rem,3vw,2.1rem)} h3{font-size:1.2rem} p{margin:0 0 1rem} a{color:var(--petrol);text-underline-offset:3px} .wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.2rem} .u{display:inline-block;height:.18em;width:2.2rem;background:var(--warm);vertical-align:middle;margin-right:.5rem;border-radius:2px} .btn{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-family:var(--font-body);padding:.8rem 1.3rem;border-radius:999px;border:1.5px solid var(--petrol);background:var(--petrol);color:#fff;text-decoration:none;cursor:pointer;transition:transform .08s ease,background .2s} .btn:hover{background:var(--petrol-deep);border-color:var(--petrol-deep)} .btn:active{transform:scale(.98)} .btn.ghost{background:transparent;color:var(--petrol)} .btn.ghost:hover{background:var(--petrol-soft)} .btn.sm{padding:.5rem .9rem;font-size:.9rem} .card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem} .badge{display:inline-block;font-size:.78rem;font-weight:600;padding:.2rem .6rem;border-radius:999px;background:var(--petrol-soft);color:var(--petrol-deep)} .tag-ok{background:var(--ok-bg);color:var(--ok)} .tag-warn{background:var(--warm-bg);color:oklch(0.45 0.12 47)} .tag-danger{background:var(--danger-bg);color:var(--danger)} .muted{color:var(--slate)} .grid{display:grid;gap:1rem} .note{font-size:.85rem;color:var(--slate)} header.site{position:sticky;top:0;z-index:50;background:oklch(0.985 0.006 230 / .92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)} header.site .bar{display:flex;align-items:center;justify-content:space-between;height:62px} header.site nav a{margin-left:1.2rem;text-decoration:none;color:var(--ink);font-weight:500;font-size:.95rem} header.site nav a:hover{color:var(--petrol)} .brand{font-family:var(--font-head);font-weight:600;font-size:1.25rem;color:var(--ink);text-decoration:none} .brand b{color:var(--petrol)} footer.site{margin-top:4rem;border-top:1px solid var(--line);background:var(--petrol-soft)} footer.site .wrap{padding-top:2rem;padding-bottom:2rem} @media(max-width:720px){ header.site .bar{gap:.6rem} .brand{flex:0 0 auto;font-size:1.15rem} header.site nav{display:flex;align-items:center;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)} header.site nav::-webkit-scrollbar{display:none} header.site nav a{margin-left:0;margin-right:.95rem;font-size:.9rem;white-space:nowrap;flex:0 0 auto} header.site nav a:last-child{margin-right:0} } /* --- v2 additions: data-monitor craft (ui-ux-design-pro + design-taste-frontend) --- */ :root{ --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; --ok-dot:oklch(0.62 0.13 155); --low-dot:oklch(0.78 0.15 75); --off-dot:oklch(0.80 0.01 240); --ink-2:oklch(0.34 0.02 250); --surface-2:oklch(0.975 0.006 230); --shadow-sm:0 1px 2px oklch(0.4 0.03 250 / .06); --shadow-md:0 6px 20px oklch(0.4 0.05 250 / .08),0 1px 3px oklch(0.4 0.05 250 / .05); } .num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em} :focus-visible{outline:2px solid var(--petrol);outline-offset:2px;border-radius:4px} .dot{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle} .dot.ok{background:var(--ok-dot)}.dot.low{background:var(--low-dot)}.dot.off{background:var(--off-dot)} .skel{background:linear-gradient(90deg,var(--line),var(--surface-2),var(--line));background-size:200% 100%;animation:sh 1.2s infinite;border-radius:6px} @keyframes sh{0%{background-position:200% 0}100%{background-position:-200% 0}} @media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}} /* --- v3 SaaS polish --- */ :root{ --shadow-card:0 1px 2px oklch(0.45 0.03 250 / .05), 0 8px 24px oklch(0.45 0.05 250 / .06); --shadow-pop:0 12px 40px oklch(0.4 0.06 250 / .14); --grad-hero:radial-gradient(900px 420px at 80% -10%, oklch(0.93 0.05 200 / .9), transparent 60%), linear-gradient(180deg, var(--petrol-soft), var(--light)); } body{background:var(--light)} .card{box-shadow:var(--shadow-card);border-color:oklch(0.92 0.008 240)} .card.flat{box-shadow:none} .btn{box-shadow:0 1px 2px oklch(0.3 0.05 230 / .12)} .btn:hover{transform:translateY(-1px)} header.site{box-shadow:0 1px 0 oklch(0.9 0.01 240)} header.site .brand{letter-spacing:-.02em} .nav-cta{background:var(--petrol);color:#fff!important;padding:.5rem .9rem;border-radius:999px;font-weight:600!important} .nav-cta:hover{background:var(--petrol-deep)} .eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--petrol-deep);background:oklch(1 0 0 / .6);border:1px solid var(--line);padding:.3rem .7rem;border-radius:999px} .feature{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.4rem;box-shadow:var(--shadow-card);transition:transform .15s,box-shadow .15s} .feature:hover{transform:translateY(-3px);box-shadow:var(--shadow-pop)} .feature .ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--petrol-soft);color:var(--petrol-deep);font-size:1.2rem;margin-bottom:.7rem} .pill-stat{display:inline-flex;align-items:center;gap:.5rem;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:.45rem .9rem;box-shadow:var(--shadow-card);font-size:.9rem} .pill-stat b{font-family:var(--mono);color:var(--petrol-deep)} .section-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem} /* --- v4 animations + polish --- */ @keyframes kf-pulse{0%{box-shadow:0 0 0 0 oklch(0.62 0.13 155 / .5)}70%{box-shadow:0 0 0 8px oklch(0.62 0.13 155 / 0)}100%{box-shadow:0 0 0 0 oklch(0.62 0.13 155 / 0)}} .dot.live{animation:kf-pulse 2.2s infinite} .reveal{opacity:0;transform:translateY(16px)} .reveal.in{opacity:1;transform:none;transition:opacity .6s var(--ease,cubic-bezier(.16,1,.3,1)),transform .6s var(--ease,cubic-bezier(.16,1,.3,1))} .reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}.reveal[data-d="3"]{transition-delay:.24s} @keyframes kf-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}} .anim-in{animation:kf-in .45s cubic-bezier(.16,1,.3,1) both} .flag{font-size:1.05em;line-height:1} @media (prefers-reduced-motion: reduce){.reveal{opacity:1!important;transform:none!important}.dot.live{animation:none}} /* --- Offer-Cards (Live-Angebote): Quelle/Preis/Name/Status sauber getrennt, ganze Karte klickbar --- */ .offer-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem .9rem;align-content:start;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem;background:var(--card);box-shadow:var(--shadow-card);transition:border-color .15s,transform .1s} .offer-card:hover{border-color:var(--petrol);transform:translateY(-1px)} .offer-card:focus-visible{outline:2px solid var(--petrol);outline-offset:2px} .offer-source{font-weight:600;min-width:0;overflow-wrap:anywhere} .offer-price{font-family:var(--mono);font-weight:700;white-space:nowrap;text-align:right;color:var(--petrol-deep)} .offer-title{grid-column:1 / -1;color:var(--ink-2);font-size:.82rem;line-height:1.35;overflow-wrap:anywhere} .offer-meta{grid-column:1 / -1;color:var(--slate);font-size:.74rem;display:inline-flex;gap:.4rem;align-items:center} .offer-card:hover .offer-source{text-decoration:underline} .offer-card.is-alert{border-color:var(--danger)}.offer-card.is-alert .offer-price{color:var(--danger)} .status-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;display:inline-block} .status-ok{background:var(--ok-dot)}.status-warn{background:var(--warm)}.status-bad{background:var(--danger)}.status-mut{background:var(--slate)} .market-link{font-weight:600;font-size:.92rem;color:var(--petrol-deep);text-decoration:none} .market-link:hover{text-decoration:underline} .empty-note{color:var(--slate);font-size:.85rem;padding:.6rem .2rem}