@font-face{
    font-family:'Space';
    src:url('../fonts/space-bold.otf') format('opentype');
    font-weight:700;
    font-style:normal;
    font-display:swap;
}

:root{
    --container-inset:calc(max((100vw - 1400px) / 2, 0px) + 32px);
}

html{
    background:#fbfdfd;
    overflow-x:hidden;
}

html.site-loading,
html.site-loading body{
    height:100%;
    overflow:hidden !important;
    overscroll-behavior:none;
}

body{
    margin:0;
    font-family:Arial,sans-serif;
    min-height:100vh;
    background:transparent;
    color:#111111;
    isolation:isolate;
}

.site-architectural-background{
    position:fixed;
    inset:0;
    z-index:-1;
    overflow:hidden;
    pointer-events:none;
    opacity:.5;
    background:#fcfcfc;
}

.site-honeycomb{
    position:absolute;
    top:-7%;
    left:-5%;
    width:110%;
    height:114%;
    overflow:visible;
    will-change:transform;
    animation:cad-honeycomb-drift 30s ease-in-out infinite alternate;
}

.site-honeycomb__grid{
    opacity:.24;
}

.site-honeycomb__grid-line{
    fill:none;
    stroke:#111111;
    stroke-width:1;
    opacity:.52;
    vector-effect:non-scaling-stroke;
}

.site-honeycomb__cell{
    opacity:.65;
    --honey-delay:0s;
    --honey-duration:7.2s;
}

.site-honeycomb__cell-shadow{
    fill:#111111;
    opacity:.12;
    transform-box:fill-box;
    transform-origin:center;
}

.site-honeycomb__cell-face{
    fill:#ffffff;
    stroke:#111111;
    stroke-width:1.1;
    opacity:.38;
    vector-effect:non-scaling-stroke;
    transform-box:fill-box;
    transform-origin:center;
    will-change:transform, opacity;
}

.site-honeycomb__cell--raised .site-honeycomb__cell-face{
    animation:cad-honeycomb-rise var(--honey-duration) ease-in-out var(--honey-delay) infinite;
}

.site-honeycomb__cell--raised .site-honeycomb__cell-shadow{
    animation:cad-honeycomb-shadow var(--honey-duration) ease-in-out var(--honey-delay) infinite;
}

.site-honeycomb__cell--inset .site-honeycomb__cell-face{
    fill:#f7f7f7;
    animation:cad-honeycomb-recess var(--honey-duration) ease-in-out var(--honey-delay) infinite;
}

.site-honeycomb__cell--inset .site-honeycomb__cell-shadow{
    animation:cad-honeycomb-recess-shadow var(--honey-duration) ease-in-out var(--honey-delay) infinite;
}

.site-honeycomb__cell--one{--honey-delay:-1.4s;--honey-duration:6.5s;}
.site-honeycomb__cell--two{--honey-delay:-5.7s;--honey-duration:8.8s;}
.site-honeycomb__cell--three{--honey-delay:-3.2s;--honey-duration:7.1s;}
.site-honeycomb__cell--four{--honey-delay:-7.1s;--honey-duration:9.4s;}
.site-honeycomb__cell--five{--honey-delay:-4.8s;--honey-duration:8.2s;}
.site-honeycomb__cell--six{--honey-delay:-2.2s;--honey-duration:6.8s;}
.site-honeycomb__cell--seven{--honey-delay:-6.4s;--honey-duration:9.1s;}
.site-honeycomb__cell--eight{--honey-delay:-1.1s;--honey-duration:7.5s;}
.site-honeycomb__cell--nine{--honey-delay:-5.1s;--honey-duration:6.3s;}
.site-honeycomb__cell--ten{--honey-delay:-3.8s;--honey-duration:8.7s;}
.site-honeycomb__cell--eleven{--honey-delay:-6.9s;--honey-duration:7.2s;}
.site-honeycomb__cell--twelve{--honey-delay:-2.7s;--honey-duration:9.3s;}
.site-honeycomb__cell--thirteen{--honey-delay:-4.2s;--honey-duration:6.9s;}
.site-honeycomb__cell--fourteen{--honey-delay:-7.8s;--honey-duration:8.5s;}
.site-honeycomb__cell--fifteen{--honey-delay:-1.9s;--honey-duration:7.7s;}
.site-honeycomb__cell--sixteen{--honey-delay:-5.5s;--honey-duration:9s;}
.site-honeycomb__cell--seventeen{--honey-delay:-3.4s;--honey-duration:6.6s;}
.site-honeycomb__cell--eighteen{--honey-delay:-8.1s;--honey-duration:8s;}

@keyframes cad-honeycomb-drift{
    from{transform:translate3d(-.8%, -.5%, 0) scale(1);}
    to{transform:translate3d(.9%, .65%, 0) scale(1.012);}
}

@keyframes cad-honeycomb-rise{
    0%, 100%{transform:translateY(0) scale(1); opacity:.34;}
    50%{transform:translateY(-12px) scale(1.03); opacity:.56;}
}

@keyframes cad-honeycomb-shadow{
    0%, 100%{transform:translateY(0); opacity:.08;}
    50%{transform:translateY(3px) scale(.97); opacity:.22;}
}

@keyframes cad-honeycomb-recess{
    0%, 100%{transform:translateY(0) scale(1); opacity:.36;}
    50%{transform:translateY(7px) scale(.965); opacity:.2;}
}

@keyframes cad-honeycomb-recess-shadow{
    0%, 100%{opacity:.08;}
    50%{opacity:.16;}
}

body.cad-cursor-active,
body.cad-cursor-active *{
    cursor:none !important;
}

.cad-cursor{
    position:fixed;
    inset:0;
    z-index:9000;
    pointer-events:none;
    opacity:0;
    transition:opacity .12s linear;
}

.cad-cursor.is-visible{
    opacity:1;
}

.cad-cursor-axis{
    position:absolute;
    background:rgba(0, 0, 0, .55);
    box-shadow:0 0 6px rgba(0, 0, 0, .18);
    transition:background .16s ease, box-shadow .16s ease;
}

.cad-cursor-axis-x{
    top:0;
    left:0;
    width:100vw;
    height:1px;
    transform:translateY(-9999px);
}

.cad-cursor-axis-y{
    top:0;
    left:0;
    width:1px;
    height:100vh;
    transform:translateX(-9999px);
}

.cad-cursor-center{
    position:absolute;
    top:0;
    left:0;
    width:10px;
    height:10px;
    border:1px solid rgba(0, 0, 0, .9);
    border-radius:0;
    /* base position/centering is applied via JS transform on mousemove to avoid layout reflow */
    transform:translate(-50%, -50%);
    box-shadow:0 0 8px rgba(0, 0, 0, .2);
    transition:width .16s ease, height .16s ease, border-color .16s ease, border-radius .16s ease, background .16s ease, box-shadow .16s ease;
}

.cad-cursor.is-interactive .cad-cursor-axis{
    background:rgba(188, 17, 22, .72);
    box-shadow:0 0 8px rgba(188, 17, 22, .3);
}

.cad-cursor.is-interactive .cad-cursor-center{
    width:24px;
    height:24px;
    border:2px solid #bc1116;
    border-radius:50%;
    background:rgba(188, 17, 22, .15);
    box-shadow:0 0 0 5px rgba(188, 17, 22, .1), 0 0 13px rgba(188, 17, 22, .34);
}

.cad-cursor.is-pressed .cad-cursor-center{
    width:17px;
    height:17px;
    background:rgba(188, 17, 22, .34);
}

.site-loader{
    position:fixed;
    inset:0;
    z-index:99999;
    background:#ffffff;
    display:grid;
    place-items:center;
    transition:opacity .35s ease, visibility .35s ease;
}

.site-loader.is-done{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
}

.site-loader-brand{
    position:relative;
    font-family:'Space','Space Grotesk',Arial,sans-serif;
    font-weight:700;
    font-size:clamp(3rem, 7vw, 6.8rem);
    line-height:1;
    letter-spacing:.04em;
    font-synthesis:none;
    opacity:0;
    transition:opacity .12s linear;
}

.site-loader.is-ready .site-loader-brand{
    opacity:1;
}

.site-loader.is-font-fallback .site-loader-brand{
    font-family:Arial,sans-serif;
    letter-spacing:.025em;
}

.site-loader-base,
.site-loader-fill,
.site-loader-fill-mask{
    display:block;
    user-select:none;
}

.site-loader-base{
    color:#ffffff;
}

.site-loader-fill-mask{
    position:absolute;
    inset:0;
    overflow:hidden;
    contain:paint;
    pointer-events:none;
}

.site-loader-fill{
    position:absolute;
    inset:0;
    color:#BC1116;
    transform:translate3d(0, 100%, 0);
    backface-visibility:hidden;
    will-change:transform;
}

.site-loader.is-ready .site-loader-fill{
    animation:site-loader-fill 1.5s cubic-bezier(.22,.61,.36,1) both;
}

@keyframes site-loader-fill{
    to{transform:translate3d(0, 0, 0);}
}

.container{
    width:100%;
    max-width:1400px;
    margin:auto;
    padding:0 32px;
    box-sizing:border-box;
}

.site-header{
    position:sticky;
    top:0;
    z-index:1000;
    padding:14px 0;
    background:#ffffff;
}

.header-top{
    display:flex;
    align-items:center;
    gap:32px;
    padding-bottom:10px;
}

.header-logo,
.mobile-logo{
    position:relative;
    display:inline-flex;
    line-height:0;
    text-decoration:none;
}

.header-logo img,
.mobile-logo img{
    display:block;
    width:auto;
    transform-origin:left center;
    transition:transform .28s cubic-bezier(.22,.61,.36,1), filter .28s ease;
}

.header-logo img{
    height:28px;
}

.header-logo::after,
.mobile-logo::after{
    content:"";
    position:absolute;
    right:0;
    bottom:-5px;
    left:0;
    height:2px;
    background:#bc1116;
    transform:scaleX(0);
    transform-origin:left center;
    transition:transform .28s cubic-bezier(.22,.61,.36,1);
}

.header-logo:hover img,
.header-logo:focus-visible img,
.mobile-logo:hover img,
.mobile-logo:focus-visible img{
    filter:drop-shadow(0 5px 7px rgba(188,17,22,.25));
    transform:translateY(-1px) scale(1.045);
}

.header-logo:hover::after,
.header-logo:focus-visible::after,
.mobile-logo:hover::after,
.mobile-logo:focus-visible::after{
    transform:scaleX(1);
}

.header-logo:focus-visible,
.mobile-logo:focus-visible{
    outline:2px solid #bc1116;
    outline-offset:5px;
}

@media (prefers-reduced-motion: reduce){
    .site-architectural-background,
    .site-architectural-background *,
    .site-loader-brand,
    .site-loader-fill,
    .header-logo img,
    .mobile-logo img,
    .header-logo::after,
    .mobile-logo::after{
        transition:none;
        animation:none !important;
    }

    .site-loader-fill{
        transform:translate3d(0, 0, 0);
        will-change:auto;
    }

    .header-logo:hover img,
    .header-logo:focus-visible img,
    .mobile-logo:hover img,
    .mobile-logo:focus-visible img{
        filter:none;
        transform:none;
    }
}

.header-search{
    flex:1;
    max-width:640px;
    display:flex;
    align-items:center;
    gap:10px;
    background:#f3f3f3;
    border:1px solid #cfcfcf;
    border-radius:6px;
    padding:10px 14px;
}

.header-search .search-icon{
    color:#666;
    flex-shrink:0;
}

.header-search input{
    flex:1;
    background:transparent;
    border:none;
    outline:none;
    color:#111;
    font-size:14px;
}

.header-search input::placeholder{
    color:#777;
}

.header-actions{
    display:flex;
    align-items:center;
    gap:22px;
    margin-left:auto;
}

.header-cart{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    padding:0;
    border:0;
    color:#111;
    background:transparent;
    cursor:pointer;
}

.header-cart svg{
    display:block;
}

.header-cart-count{
    position:absolute;
    top:-10px;
    right:-11px;
    display:grid;
    place-items:center;
    min-width:18px;
    height:18px;
    padding:0 5px;
    border:2px solid #fff;
    border-radius:999px;
    color:#fff;
    background:#bc1116;
    font-size:10px;
    font-weight:700;
    line-height:1;
}

.header-cart-count[hidden]{
    display:none;
}

.header-cart-count.is-bumping{
    animation:cartCountBump .38s cubic-bezier(.2,.85,.35,1.35);
}

.header-cart:hover,
.header-cart:focus-visible{
    color:#bc1116;
}

.header-cart:focus-visible{
    outline:2px solid rgba(188,17,22,.35);
    outline-offset:6px;
}

@keyframes cartCountBump{
    0%{transform:scale(.6)}
    55%{transform:scale(1.35)}
    100%{transform:scale(1)}
}

.header-signin{
    display:flex;
    align-items:center;
    gap:6px;
    position:relative;
    color:#111;
    text-decoration:none;
    font-size:14px;
    font-weight:bold;
}

.header-nav{
    border-top:1px solid #e0e0e0;
    padding-top:8px;
}

.header-nav-row{
    display:flex;
    align-items:center;
    gap:32px;
}

.header-nav-row a{
    display:flex;
    align-items:center;
    gap:4px;
    position:relative;
    color:#111;
    text-decoration:none;
    font-size:14px;
    font-weight:bold;
}

.header-signin::after,
.header-nav-row a::after{
    content:"";
    position:absolute;
    pointer-events:none;
    border:1px solid #BC1116;
    box-shadow:
        0 0 5px rgba(188,17,22,.75),
        0 0 12px rgba(188,17,22,.5),
        0 0 22px rgba(188,17,22,.28),
        inset 0 0 7px rgba(188,17,22,.12);
    opacity:0;
    transition:opacity .25s ease;
}

.header-signin::after{
    inset:-10px -14px;
    border-radius:12px;
}

.header-nav-row a::after{
    inset:-7px -10px;
    border-radius:8px;
}

.header-signin:hover::after,
.header-signin:focus-visible::after,
.header-nav-row a:hover::after,
.header-nav-row a:focus-visible::after{
    opacity:1;
}

.header-signin:focus-visible,
.header-nav-row a:focus-visible{
    outline:none;
}

@media (prefers-reduced-motion: reduce){
    .header-signin::after,
    .header-nav-row a::after{
        transition:none;
    }
}

.site-footer{
    background:rgba(255,255,255,.84);
    backdrop-filter:blur(5px);
    border-top:1px solid #1a3346;
    border-bottom:2px solid #111111;
    color:#ed1c24;
}

.site-footer-row{
    min-height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:36px;
    padding-top:0;
    padding-bottom:0;
    font-size:14px;
    line-height:1.2;
}

.site-footer-link{
    color:#ed1c24;
    text-decoration:none;
}

.site-footer-link:hover,
.site-footer-link:focus-visible{
    color:#b80f16;
    text-decoration:underline;
    text-underline-offset:3px;
}

.site-footer-social{
    display:flex;
    align-items:center;
    gap:9px;
    white-space:nowrap;
}

.site-footer-social-link{
    width:17px;
    height:17px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#cf111a;
    border-radius:3px;
    transition:transform .18s ease, color .18s ease;
}

.site-footer-social-link:hover,
.site-footer-social-link:focus-visible{
    color:#9d0b12;
    transform:translateY(-1px);
}

.site-footer-social-link:focus-visible{
    outline:2px solid #9d0b12;
    outline-offset:3px;
}

.site-footer-social-link svg{
    display:block;
    width:100%;
    height:100%;
    fill:currentColor;
}

.site-footer-icon-mark{
    fill:#ffffff;
}

.site-footer-copyright{
    white-space:nowrap;
}

.mobile-header,
.mobile-menu-backdrop,
.mobile-nav-drawer{
    display:none;
}

@media (max-width: 920px){
    body,
    body *{
        cursor:auto !important;
    }

    .cad-cursor{
        display:none;
    }

    body.mobile-menu-open{
        overflow:hidden;
    }

    .site-header{
        padding:0;
        background:#ffffff;
        backdrop-filter:none;
        border-bottom:1px solid #e8e8e8;
    }

    .header-top,
    .header-nav{
        display:none;
    }

    .mobile-header{
        display:flex;
        align-items:center;
        gap:14px;
        min-height:72px;
    }

    .mobile-menu-toggle,
    .mobile-menu-close,
    .mobile-login,
    .mobile-cart{
        border:none;
        background:transparent;
        color:#111;
        padding:0;
        display:flex;
        align-items:center;
        justify-content:center;
        cursor:pointer;
    }

    .mobile-header-divider{
        width:1px;
        height:28px;
        background:#d0d0d0;
        flex-shrink:0;
    }

    .mobile-logo img{
        display:block;
        height:34px;
        width:auto;
    }

    .mobile-header-actions{
        margin-left:auto;
        display:flex;
        align-items:center;
        gap:12px;
    }

    .mobile-menu-backdrop{
        display:block;
        position:fixed;
        inset:0;
        background:rgba(255,255,255,.45);
        opacity:0;
        pointer-events:none;
        z-index:9997;
        transition:opacity .25s ease;
    }

    .mobile-menu-backdrop.is-open{
        opacity:1;
        pointer-events:auto;
    }

    .mobile-nav-drawer{
        display:block;
        position:fixed;
        top:0;
        left:0;
        width:min(88vw, 380px);
        height:100dvh;
        background:#fff;
        color:#111;
        z-index:9998;
        transform:translateX(-100%);
        transition:transform .26s ease;
    }

    .mobile-nav-drawer.is-open{
        transform:translateX(0);
    }

    .mobile-nav-top{
        display:flex;
        align-items:center;
        gap:14px;
        min-height:74px;
        padding:0 20px;
        border-bottom:1px solid #e9e9e9;
    }

    .mobile-nav-top .mobile-menu-close,
    .mobile-nav-top .mobile-logo{
        color:#111;
    }

    .mobile-nav-top .mobile-header-divider{
        background:#d0d0d0;
    }

    .mobile-nav-links{
        padding:14px 0;
    }

    .mobile-nav-links a{
        display:flex;
        align-items:center;
        justify-content:space-between;
        color:#111;
        text-decoration:none;
        font-size:42px;
        line-height:1.2;
        font-weight:600;
        padding:16px 22px;
        border-bottom:1px solid #f1f1f1;
    }

    .mobile-nav-chevron{
        font-size:46px;
        line-height:1;
        color:#111;
    }

    .site-footer-row{
        min-height:0;
        flex-wrap:wrap;
        gap:10px 22px;
        padding-top:12px;
        padding-bottom:12px;
        text-align:center;
    }
}
