/* =========================================================
   FULLHOUSE.NET — EDITORIAL PROGRAM HUB
   Scoped to body.page-fullhouse so it cannot bleed elsewhere.
   ========================================================= */

.page-fullhouse{
    --fh-ink:#0b0b0d;
    --fh-paper:#f2efe6;
    --fh-paper-2:#e9e4d8;
    --fh-white:#fffdf8;
    --fh-blue:#2448e8;
    --fh-red:#ff4147;
    --fh-violet:#8157ff;
    --fh-amber:#f6a91b;
    --fh-line:rgba(11,11,13,.16);
    --fh-muted:#686761;
    --fh-shadow:0 26px 70px rgba(11,11,13,.12);
    background:var(--fh-paper);
    color:var(--fh-ink);
}


/* FullHouse pages use their own identity in the shared sidebar/header. */
.page-fullhouse .brand{
    justify-content:flex-start;
}

.page-fullhouse .brand img{
    width:184px;
    height:96px;
    object-fit:contain;
    object-position:left center;
}

.page-fullhouse .sidebar-nav{
    overflow-y:auto;
    scrollbar-width:none;
}

.page-fullhouse .sidebar-nav::-webkit-scrollbar{display:none}

.page-fullhouse .nav-item{
    min-height:48px;
}

.page-fullhouse .nav-text{
    font-size:12px;
}

.page-fullhouse :where(#fullhouse-top,#fh-fair,#production-course,#sandbox-session,#jam-sessions,#concerts,#film){
    scroll-margin-top:92px;
}

.page-fullhouse .fh-main{
    position:relative;
    margin-left:var(--sidebar-width);
    min-height:100vh;
    overflow:hidden;
    background:
        linear-gradient(90deg, rgba(11,11,13,.035) 1px, transparent 1px),
        linear-gradient(rgba(11,11,13,.035) 1px, transparent 1px),
        var(--fh-paper);
    background-size:56px 56px;
}

.page-fullhouse .fh-main::before{
    content:"";
    position:absolute;
    z-index:0;
    width:56vw;
    height:56vw;
    min-width:620px;
    min-height:620px;
    right:-28vw;
    top:-27vw;
    border:1px solid rgba(36,72,232,.25);
    border-radius:50%;
    box-shadow:0 0 0 7vw rgba(36,72,232,.035),0 0 0 14vw rgba(255,65,71,.025);
    pointer-events:none;
}

.page-fullhouse .fh-hero,
.page-fullhouse .fh-programs{
    position:relative;
    z-index:1;
}

.page-fullhouse .fh-hero{
    padding:74px clamp(28px,5vw,76px) 40px;
}

.page-fullhouse .fh-hero-inner{
    position:relative;
    max-width:1240px;
    min-height:280px;
    display:flex;
    align-items:flex-end;
    border-bottom:1px solid var(--fh-ink);
}

.page-fullhouse .fh-hero-inner::before{
    content:"FH / PROGRAM HUB";
    position:absolute;
    left:0;
    top:0;
    font:900 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
    letter-spacing:1.55px;
    text-transform:uppercase;
}


.page-fullhouse .fh-title{
    position:relative;
    max-width:1080px;
    margin:0;
    padding:56px 0 28px;
    font-size:clamp(62px,9vw,154px);
    line-height:.72;
    letter-spacing:-.082em;
    font-weight:1000;
    text-transform:uppercase;
    text-wrap:balance;
}

.page-fullhouse .fh-title .accent{
    color:var(--fh-red);
}

.page-fullhouse .fh-programs{
    padding:18px clamp(28px,5vw,76px) 104px;
}

.page-fullhouse .fh-grid{
    max-width:1240px;
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    gap:18px;
}

.page-fullhouse .fh-card{
    --card-accent:var(--fh-blue);
    --card-bg:var(--fh-white);
    --card-fg:var(--fh-ink);
    position:relative;
    isolation:isolate;
    min-height:390px;
    padding:28px;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    color:var(--card-fg);
    background:var(--card-bg);
    border:1px solid var(--fh-ink);
    border-radius:0;
    box-shadow:12px 12px 0 var(--fh-ink);
    transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease;
}

.page-fullhouse .fh-card::before{
    content:"";
    position:absolute;
    z-index:-1;
    width:260px;
    height:260px;
    right:-155px;
    top:-145px;
    border-radius:50%;
    background:var(--card-accent);
    opacity:.16;
    transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s ease;
}

.page-fullhouse .fh-card::after{
    content:"";
    position:absolute;
    z-index:-1;
    inset:auto 0 0;
    height:7px;
    background:var(--card-accent);
}

.page-fullhouse .fh-card:hover{
    transform:translate(-4px,-4px);
    box-shadow:18px 18px 0 var(--fh-ink);
}

.page-fullhouse .fh-card:hover::before{
    transform:scale(1.18);
    opacity:.23;
}

.page-fullhouse .fh-card--fair{
    --card-accent:var(--fh-red);
    --card-bg:#ff5a55;
    --card-fg:#0b0b0d;
    grid-column:span 7;
    min-height:460px;
}

.page-fullhouse .fh-card--fair::before{
    width:410px;
    height:410px;
    right:-205px;
    top:-175px;
    border:55px solid #0b0b0d;
    background:transparent;
    opacity:.1;
}

.page-fullhouse .fh-card--course{
    --card-accent:var(--fh-blue);
    --card-bg:#e7ecff;
    grid-column:span 5;
}

.page-fullhouse .fh-card--sandbox{
    --card-accent:var(--fh-violet);
    --card-bg:#ece4ff;
    grid-column:span 5;
}

.page-fullhouse .fh-card--jam{
    --card-accent:var(--fh-amber);
    --card-bg:#fff0c9;
    grid-column:span 7;
}

.page-fullhouse .fh-card--concerts{
    --card-accent:#ff3c3f;
    --card-bg:#111114;
    --card-fg:#fff;
    grid-column:span 7;
}

.page-fullhouse .fh-card--film{
    --card-accent:#111114;
    --card-bg:#d9ff66;
    grid-column:span 5;
}

.page-fullhouse .fh-card-top{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:52px;
}

.page-fullhouse .fh-icon{
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    border:1px solid currentColor;
    border-radius:50%;
    color:var(--card-fg);
    background:transparent;
    font-size:20px;
}

.page-fullhouse .fh-instagram{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    border:1px solid currentColor;
    border-radius:50%;
    color:var(--card-fg);
    background:transparent;
    text-decoration:none;
    font-size:18px;
    transition:transform .2s ease,background .2s ease,color .2s ease;
}

.page-fullhouse .fh-instagram:hover{
    transform:rotate(8deg) scale(1.05);
    color:var(--card-bg);
    background:var(--card-fg);
}

.page-fullhouse .fh-kicker{
    position:relative;
    z-index:2;
    display:inline-block;
    width:max-content;
    margin-bottom:10px;
    padding:7px 9px 6px;
    color:var(--card-bg);
    background:var(--card-fg);
    font:900 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
    letter-spacing:1.15px;
    text-transform:uppercase;
}

.page-fullhouse .fh-card h3{
    position:relative;
    z-index:2;
    max-width:760px;
    margin:0 0 16px;
    font-size:clamp(34px,4vw,64px);
    line-height:.88;
    letter-spacing:-.055em;
    font-weight:1000;
    text-wrap:balance;
}

.page-fullhouse .fh-card p{
    position:relative;
    z-index:2;
    max-width:640px;
    margin:0 0 32px;
    color:color-mix(in srgb,var(--card-fg) 72%,transparent);
    font-size:15px;
    line-height:1.62;
}

.page-fullhouse .fh-card--concerts p{
    color:rgba(255,255,255,.66);
}

.page-fullhouse .fh-card-actions{
    position:relative;
    z-index:2;
    margin-top:auto;
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}

.page-fullhouse .fh-button{
    min-height:50px;
    padding:0 17px 0 19px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:16px;
    border:1px solid var(--card-fg);
    border-radius:0;
    color:var(--card-bg);
    background:var(--card-fg);
    text-decoration:none;
    font:900 11px/1 Arial,Helvetica,sans-serif;
    text-transform:uppercase;
    letter-spacing:.6px;
    cursor:pointer;
    box-shadow:none;
    transition:transform .2s ease,background .2s ease,color .2s ease;
}

.page-fullhouse .fh-button:hover{
    transform:translateX(4px);
    color:var(--card-fg);
    background:transparent;
}

.page-fullhouse .fh-button i{
    font-size:10px;
}

.page-fullhouse .fh-card--concerts .fh-button{
    color:#111114;
    background:#fff;
    border-color:#fff;
}

.page-fullhouse .fh-card--concerts .fh-button:hover{
    color:#fff;
    background:transparent;
}

.page-fullhouse .fh-card :focus-visible{
    outline:3px solid var(--card-fg);
    outline-offset:3px;
}

@keyframes fhCardIn{
    from{opacity:0;transform:translateY(20px)}
    to{opacity:1;transform:translateY(0)}
}

@media (prefers-reduced-motion:no-preference){
    .page-fullhouse .fh-card{
        animation:fhCardIn .55s both;
    }
    .page-fullhouse .fh-card:nth-child(2){animation-delay:.05s}
    .page-fullhouse .fh-card:nth-child(3){animation-delay:.10s}
    .page-fullhouse .fh-card:nth-child(4){animation-delay:.15s}
    .page-fullhouse .fh-card:nth-child(5){animation-delay:.20s}
    .page-fullhouse .fh-card:nth-child(6){animation-delay:.25s}
}

@media(max-width:1080px){
    .page-fullhouse .fh-card--fair,
    .page-fullhouse .fh-card--course,
    .page-fullhouse .fh-card--sandbox,
    .page-fullhouse .fh-card--jam,
    .page-fullhouse .fh-card--concerts,
    .page-fullhouse .fh-card--film{
        grid-column:span 6;
    }
}

@media(max-width:800px){
    .page-fullhouse .mobile-logo{
        display:flex;
        align-items:center;
        max-width:calc(100vw - 82px);
        overflow:visible;
    }

    .page-fullhouse .mobile-logo img{
        width:150px;
        height:48px;
        max-width:100%;
        object-fit:contain;
        object-position:left center;
    }

    .page-fullhouse .fh-main{
        margin-left:0;
        padding-top:72px;
        background-size:38px 38px;
    }

    .page-fullhouse .fh-main::before{
        min-width:420px;
        min-height:420px;
        right:-280px;
        top:-180px;
    }

    .page-fullhouse .fh-hero{
        padding:38px 20px 24px;
    }

    .page-fullhouse .fh-hero-inner{
        min-height:210px;
    }

    .page-fullhouse .fh-title{
        padding-top:52px;
        width:100%;
        max-width:100%;
        font-size:clamp(28px,10vw,50px);
        line-height:.82;
        letter-spacing:-.07em;
        white-space:nowrap;
    }

    .page-fullhouse .fh-programs{
        padding:10px 20px 72px;
    }

    .page-fullhouse .fh-grid{
        grid-template-columns:1fr;
        gap:18px;
    }

    .page-fullhouse .fh-card--fair,
    .page-fullhouse .fh-card--course,
    .page-fullhouse .fh-card--sandbox,
    .page-fullhouse .fh-card--jam,
    .page-fullhouse .fh-card--concerts,
    .page-fullhouse .fh-card--film{
        grid-column:auto;
    }

    .page-fullhouse .fh-card{
        min-height:360px;
        padding:24px;
        box-shadow:8px 8px 0 var(--fh-ink);
    }

    .page-fullhouse .fh-card:hover{
        transform:none;
        box-shadow:8px 8px 0 var(--fh-ink);
    }

    .page-fullhouse .fh-card-top{
        margin-bottom:42px;
    }

    .page-fullhouse .fh-card h3{
        font-size:clamp(38px,12vw,58px);
    }
}

@media(max-width:480px){
    .page-fullhouse .fh-hero{
        padding-left:16px;
        padding-right:16px;
    }

    .page-fullhouse .fh-programs{
        padding-left:16px;
        padding-right:16px;
    }

    .page-fullhouse .fh-hero-inner::before{
        font-size:8px;
    }

    .page-fullhouse .fh-title{
        font-size:clamp(28px,10vw,46px);
    }

    .page-fullhouse .fh-card{
        min-height:340px;
        padding:21px;
    }

    .page-fullhouse .fh-card-top{
        margin-bottom:34px;
    }

    .page-fullhouse .fh-icon{
        width:52px;
        height:52px;
    }

    .page-fullhouse .fh-card p{
        font-size:14.5px;
    }

    .page-fullhouse .fh-button{
        width:100%;
    }
}

@media(prefers-reduced-motion:reduce){
    .page-fullhouse *,
    .page-fullhouse *::before,
    .page-fullhouse *::after{
        scroll-behavior:auto !important;
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.01ms !important;
    }
}
