@import 'root.css';
@import 'basket.css';
@import 'basket_bar.css';
@import 'button.css';
@import 'card.css';
@import 'footer.css';
@import 'header.css';
@import 'home.css';
@import 'modal.css';
@import 'rates.css';
@import 'product_modal.css';


* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border-radius: 0 !important;
}

body {
    font-family: var(--text_font);
    background-color: var(--background_main);
    color: var(--text_primary);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    background-image: 
        linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.65) 50%), 
        linear-gradient(90deg, rgba(255, 0, 0, 0.03), rgba(0, 255, 0, 0.01), rgba(0, 0, 255, 0.03));
    background-size: 100% 3px, 3px 100%;
}

h1, h2, h3, h4, h5, h6,
.site_title, .card_title, .nav_label, .status_badge {
    font-family: var(--header_font);
    font-size: 0.5rem;
}

#ui_container {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#content_section {
    flex: 1;
    padding: 1rem;
    padding-bottom: calc(var(--footer_height) + 2rem);
    width: 100%;
    margin: 0 auto;
}

.tab_panel {
    display: none;
    opacity: 0;
    transition: opacity 0.2s ease-in-out;
}

.tab_panel.active_panel {
    display: block;
    opacity: 1;
}

.grid_container {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

.pixel_card {
    position: relative;
    isolation: isolate;
    background-color: var(--card-bg, #090909);
    margin: 16px;
    padding: 16px;
}

.pixel_frame {
    position: absolute;
    inset: -8px;
    z-index: 1;
    pointer-events: none;
    image-rendering: pixelated;
}

.frame_piece {
    position: absolute;
    background-image: var(--frame-image);
    background-repeat: var(--frame-repeat);
    background-position: var(--frame-position);
    background-size: auto;
    image-rendering: pixelated;
    pointer-events: none;
}

.frame_piece::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--frame-tint, transparent);
    -webkit-mask-image: var(--frame-image);
    mask-image: var(--frame-image);
    -webkit-mask-repeat: var(--frame-repeat);
    mask-repeat: var(--frame-repeat);
    -webkit-mask-position: var(--frame-position);
    mask-position: var(--frame-position);
    -webkit-mask-size: auto;
    mask-size: auto;
    mix-blend-mode: multiply;
    pointer-events: none;
}

.frame_corner::after {
    display: none;
}

.frame_top,
.frame_bottom {
    left: 0;
    right: 0;
    height: 32px;
    --frame-image: url("../assets/frame_edge_horiz.png");
    --frame-repeat: repeat-x;
}

.frame_top {
    top: 0;
    --frame-position: left top;
}

.frame_bottom {
    bottom: 0;
    --frame-position: left bottom;
}

.frame_left,
.frame_right {
    top: 0;
    bottom: 0;
    width: 32px;
    --frame-image: url("../assets/frame_edge_vert.png");
    --frame-repeat: repeat-y;
}

.frame_left {
    left: 0;
    --frame-position: left top;
}

.frame_right {
    right: 0;
    --frame-position: right top;
}

.frame_corner {
    width: 32px;
    height: 32px;
    z-index: 2;
    transform: scale(1.05);
    --frame-image: url("../assets/frame_corner.png");
    --frame-repeat: no-repeat;
}

.frame_top_left {
    top: 0;
    left: 0;
    --frame-position: top left;
}

.frame_top_right {
    top: 0;
    right: 0;
    --frame-position: top right;
}

.frame_bottom_left {
    bottom: 0;
    left: 0;
    --frame-position: bottom left;
}

.frame_bottom_right {
    bottom: 0;
    right: 0;
    --frame-position: bottom right;
}

.theme_blue {
    --frame-tint: #3b82f6;
    --card-bg: #080f1a;
}

.theme_brown {
    --frame-tint: #b45309;
    --card-bg: #140d09;
}

.theme_yellow {
    --frame-tint: #eab308;
    --card-bg: #141208;
}

.theme_purple {
    --frame-tint: #a855f7;
    --card-bg: #11081a;
}

@media (min-width: 640px) {
    .grid_container {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 900px) {
    .grid_container {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 1200px) {
    .grid_container {
        grid-template-columns: repeat(4, 1fr);
    }

    .grid_container.rates {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
    }

    .card_featured {
        grid-column: span 2;
    }

    #content_section {
        width: 90%;
    }
}