/* ======================================================================
   R3AP3R PRODUCTIONS - RESPONSIVE LOCK / ANTI-DEFORMATION LAYER
   Purpose: stable page geometry from wide desktop to phone without scale hacks.
   ====================================================================== */

:root{
    --r3-home-max:1660px;
    --r3-page-max:1450px;
    --r3-page-gutter:clamp(12px,2vw,28px);
    --r3-section-gap:clamp(14px,1.35vw,22px);
}

html{
    width:100%;
    min-width:320px;
    max-width:100%;
    overflow-x:hidden;
}

body{
    width:100%;
    min-width:0;
    max-width:100%;
    overflow-x:hidden!important;
}

*,*::before,*::after{box-sizing:border-box}

img,video,svg,canvas,iframe{
    max-width:100%;
}

img,video,svg{height:auto}

/* ----- SITE SHELL LOCK ----- */
.r3-shell{
    width:min(calc(100% - (var(--r3-page-gutter) * 2)),var(--r3-home-max))!important;
    max-width:var(--r3-home-max)!important;
    min-width:0!important;
    margin-left:auto!important;
    margin-right:auto!important;
}

.r3-wrap,
.r3-auto-shell{
    width:min(calc(100% - (var(--r3-page-gutter) * 2)),var(--r3-page-max))!important;
    max-width:var(--r3-page-max)!important;
    min-width:0!important;
    margin-left:auto!important;
    margin-right:auto!important;
}

.r3-grid,
.r3-layout{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    align-items:start!important;
}

.r3-grid{
    grid-template-columns:clamp(220px,15vw,250px) minmax(0,1fr)!important;
    gap:var(--r3-section-gap)!important;
}

.r3-layout{
    grid-template-columns:clamp(220px,17vw,250px) minmax(0,1fr)!important;
    gap:18px!important;
}

.r3-grid>*,
.r3-layout>*,
.r3-main,
.r3-sidebar,
.r3-side{
    min-width:0!important;
    max-width:100%!important;
}

.r3-main{
    width:100%!important;
    overflow:visible!important;
}

.r3-sidebar,
.r3-side{
    width:100%!important;
}

/* ----- GENERIC PAGE CONTENT SAFETY ----- */
.r3-main>* ,
.hero-panel,
.r3-card,
.forum-card,
.topic-card,
.post-card,
.form-panel,
.notice,
.empty{
    min-width:0;
    max-width:100%;
}

.r3-main p,
.r3-main li,
.r3-main h1,
.r3-main h2,
.r3-main h3,
.r3-card,
.panel,
.feature-card,
.side-link,
.r3-account-host,
.r3-topbar{
    overflow-wrap:anywhere;
}

.r3-main input,
.r3-main textarea,
.r3-main select,
.r3-main button{
    max-width:100%;
}

.r3-main table{
    width:100%;
    max-width:100%;
}

.grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

.forum-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
}

.topic-card{
    grid-template-columns:minmax(0,1fr) auto!important;
}

/* ----- HEADER / ACCOUNT CONTROL ----- */
.r3-top-inner,
.r3-account,
.account-top-actions,
.r3-home-account-row{
    min-width:0;
    max-width:100%;
}

.r3-top-inner{
    flex-wrap:wrap!important;
}

.r3-home-account-row{
    width:100%!important;
    justify-content:flex-end!important;
    overflow:visible!important;
}

.r3-account-host{
    transform:none!important;
    transform-origin:center!important;
    max-width:100%!important;
}

.r3-account-summary{
    min-width:0!important;
    max-width:100%!important;
}

.r3-account-name{
    min-width:0!important;
}

/* ----- HOME PAGE PRO GEOMETRY ----- */
.r3-shell{
    padding-top:14px!important;
    padding-bottom:56px!important;
}

.r3-hero{
    width:100%!important;
    max-width:100%!important;
    border-radius:20px!important;
    overflow:hidden!important;
}

.r3-hero img{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    object-fit:contain!important;
    object-position:center!important;
}

.r3-sidebar{
    position:sticky;
    top:16px;
    align-self:start;
    border-radius:18px!important;
}

.rcz-launch-board{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0 0 18px!important;
    padding:clamp(24px,2.4vw,38px)!important;
    border-radius:26px!important;
}

.rcz-launch-layout{
    grid-template-columns:minmax(0,1.45fr) minmax(270px,.8fr)!important;
    min-width:0!important;
}

.rcz-launch-layout>*,
.rcz-launch-features>*,
.rcz-launch-status>*{
    min-width:0!important;
}

.rcz-launch-title{
    font-size:clamp(34px,4.1vw,62px)!important;
    line-height:.98!important;
}

.rcz-launch-copy{
    max-width:780px!important;
}

.rcz-launch-btn{
    min-width:0!important;
    max-width:100%!important;
    text-align:center!important;
    white-space:normal!important;
}

.ticker-panel{
    width:100%!important;
    grid-template-columns:minmax(220px,340px) minmax(0,1fr)!important;
    gap:16px!important;
}

.ticker,
.ticker-track{
    min-width:0!important;
}

.top-panels{
    width:100%!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:16px!important;
}

.panel{
    width:100%!important;
    min-width:0!important;
    min-height:270px!important;
    padding:22px!important;
    border-radius:18px!important;
}

.program-flex{
    grid-template-columns:minmax(0,1fr) 118px!important;
    min-width:0!important;
}

.featured{
    width:100%!important;
    min-width:0!important;
    padding:22px!important;
    border-radius:18px!important;
}

.featured-head{
    min-width:0!important;
    gap:12px!important;
}

/* The feature area is a responsive grid, not a fake horizontal carousel. */
.mini-controls{display:none!important}

.cards{
    width:100%!important;
    min-width:0!important;
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(205px,1fr))!important;
    gap:16px!important;
    overflow:visible!important;
}

.feature-card{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:390px!important;
    border-radius:16px!important;
}

.feature-card img{
    width:100%!important;
    height:auto!important;
    aspect-ratio:16/9!important;
    object-fit:cover!important;
}

.feature-card h3{
    font-size:clamp(18px,1.35vw,22px)!important;
}

.feature-card span{
    min-width:0!important;
    text-align:center!important;
    white-space:normal!important;
}

/* ----- TABLET / NARROW LAPTOP ----- */
@media(max-width:1100px){
    .r3-grid,
    .r3-layout{
        grid-template-columns:1fr!important;
    }

    .r3-sidebar,
    .r3-side{
        position:relative!important;
        top:auto!important;
    }

    .top-panels{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }

    .rcz-launch-layout{
        grid-template-columns:1fr!important;
    }

    .ticker-panel{
        grid-template-columns:1fr!important;
    }

    .program-flex{
        grid-template-columns:minmax(0,1fr) 110px!important;
    }

    .grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}

/* ----- TABLET / MOBILE ----- */
@media(max-width:760px){
    :root{--r3-page-gutter:12px}

    .r3-shell,
    .r3-wrap,
    .r3-auto-shell{
        width:calc(100% - 24px)!important;
    }

    .r3-home-account-row{
        justify-content:center!important;
    }

    .r3-account-host{
        max-width:100%!important;
    }

    .r3-account-summary{
        flex-wrap:wrap!important;
        justify-content:center!important;
        height:auto!important;
        min-height:42px!important;
    }

    .top-panels,
    .grid,
    .forum-grid{
        grid-template-columns:1fr!important;
    }

    .topic-card{
        grid-template-columns:1fr!important;
    }

    .program-flex{
        grid-template-columns:1fr!important;
    }

    .program-orb{display:none!important}

    .rcz-launch-board{
        padding:22px 18px!important;
    }

    .rcz-launch-features,
    .rcz-launch-status{
        grid-template-columns:1fr!important;
    }

    .rcz-launch-actions{
        flex-direction:column!important;
        align-items:stretch!important;
    }

    .rcz-launch-btn{
        width:100%!important;
    }

    .featured{
        padding:16px!important;
    }

    .cards{
        grid-template-columns:1fr!important;
    }

    .feature-card{
        min-height:365px!important;
    }
}

@media(max-width:420px){
    html{min-width:280px}

    .r3-shell,
    .r3-wrap,
    .r3-auto-shell{
        width:calc(100% - 16px)!important;
    }

    .panel,
    .hero-panel,
    .r3-card,
    .forum-card,
    .topic-card,
    .post-card,
    .form-panel{
        padding-left:16px!important;
        padding-right:16px!important;
    }
}
