@import "tailwindcss";
@source "../templates/**/*.html";

/* Custom styles for Mehr Nebel */
:root {
    --color-bg: #000;
    --color-surface: #0d0d0d;
    --color-border: #1a1a1a;
    --color-text: #e8e8e8;
    --color-muted: #555;
    --color-accent: #fff;
}

body {
    background: #000;
    color: #fff;
    font-family: 'Space Grotesk', system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Bebas Neue', sans-serif;
    letter-spacing: 0.04em;
}

/* ── Hero Title hover — Chromatic Aberration ── */
.hero-title {
    display: inline-block;
    cursor: default;
    transition: filter 0.1s ease;
}
.hero-title:hover {
    filter: drop-shadow(-3px 0 #ff0000) drop-shadow(3px 0 #00ffff);
}

/* ── Grain-Overlay (weiße Körner über schwarzem Hintergrund) ── */
@keyframes grain {
    0%,100% { transform: translate(0,0); }
    10%  { transform: translate(-2%,-1%); }
    20%  { transform: translate(1%,2%); }
    30%  { transform: translate(-1%,1%); }
    40%  { transform: translate(2%,-2%); }
    50%  { transform: translate(-2%,2%); }
    60%  { transform: translate(1%,-1%); }
    70%  { transform: translate(-1%,2%); }
    80%  { transform: translate(2%,1%); }
    90%  { transform: translate(-2%,-1%); }
}
.grain {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    z-index: 1;
    pointer-events: none;
}
.grain::after {
    content: '';
    position: fixed;
    top: -50%; left: -50%;
    width: 200%; height: 200%;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
    opacity: 0.07;
    mix-blend-mode: screen;
    pointer-events: none;
    z-index: 9999;
    animation: grain 0.5s steps(1) infinite;
}

/* ── Logo hover — Chromatic Aberration ── */
.logo-link { display: flex; flex-direction: column; text-decoration: none; }
.logo-link img { transition: filter 0.1s ease; }
.logo-link:hover img {
    filter: drop-shadow(-3px 0 #ff0000) drop-shadow(3px 0 #00ffff);
}

/* ── Cart Icon hover — Chromatic Aberration (icon + badge together) ── */
.cart-icon-link { transition: filter 0.1s ease; }
.cart-icon-link:hover {
    filter: drop-shadow(-2px 0 #ff0000) drop-shadow(2px 0 #00ffff);
}

/* ── Nav-Link Underline-Animation ── */
.nav-underline {
    position: relative;
    padding-bottom: 2px;
}
.nav-underline::after {
    content: '';
    position: absolute;
    bottom: -2px; left: 0;
    width: 0; height: 2px;
    background: #fff;
    transition: width 0.2s ease;
}
.nav-underline:hover::after { width: 100%; }

.nebel-bg {
    background-color: var(--color-bg);
}

.nebel-card {
    background-color: var(--color-surface);
    border: 1px solid var(--color-border);
}

.nebel-btn-primary {
    background: #fff;
    color: #000;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    transition: opacity 0.15s;
}

.nebel-btn-primary:hover {
    opacity: 0.75;
}

.nebel-btn-bitcoin {
    background: #f7931a;
    color: #000;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    transition: opacity 0.15s;
}

.nebel-btn-bitcoin:hover {
    opacity: 0.8;
}

/* Smooth HTMX transitions */
.htmx-settling,
.htmx-swapping {
    opacity: 0.6;
    transition: opacity 0.15s ease;
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 6px;
}
::-webkit-scrollbar-track {
    background: var(--color-bg);
}
::-webkit-scrollbar-thumb {
    background: var(--color-border);
    border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
    background: #333;
}

/* Form inputs */
input[type="email"],
input[type="text"],
input[type="number"],
select,
textarea {
    background-color: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--color-border);
    color: var(--color-text);
    transition: border-color 0.15s;
}

input[type="email"]:focus,
input[type="text"]:focus,
input[type="number"]:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: #555;
    box-shadow: none;
}

select option {
    background-color: #111;
    color: var(--color-text);
}

/* ── Cart Drawer ── */
#cart-drawer-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.65);
    z-index: 100;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}
#cart-drawer {
    position: fixed;
    top: 0;
    right: 0;
    height: 100%;
    width: 400px;
    max-width: 100vw;
    z-index: 101;
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    background: #0a0a0a;
    border-left: 1px solid #1a1a1a;
    display: flex;
    flex-direction: column;
}
#cart-drawer.open {
    transform: translateX(0);
}

/* Line clamp utility */
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
