/* WOX Feature 14 · Public Experience Integration v1.0
   Global public UX polish only. Loaded after the page/feature stylesheets. */

:root{
    --wox-ink:#071008;
    --wox-panel:#0c1510;
    --wox-paper:#f2f6f1;
    --wox-lime:#aaff20;
    --wox-muted:#7e8c82;
    --wox-line:rgba(255,255,255,.10);
    --wox-radius:22px;
    --wox-ease:cubic-bezier(.22,1,.36,1);
}

html{
    scroll-behavior:smooth;
    text-size-adjust:100%;
    -webkit-text-size-adjust:100%;
}

body{
    min-width:320px;
    overflow-x:hidden;
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
}

body.wox-nav-open{
    overflow:hidden;
}

::selection{
    background:var(--wox-lime);
    color:var(--wox-ink);
}

/* Typography ------------------------------------------------------------- */
main p,
main li,
footer,
input,
select,
textarea,
button{
    font-size:max(15px,1rem);
}

main p,
main li{
    line-height:1.68;
}

small{
    line-height:1.45;
}

/* Accessibility ---------------------------------------------------------- */
.skip-link{
    position:fixed;
    z-index:99999;
    top:12px;
    left:12px;
    transform:translateY(-160%);
    background:var(--wox-lime);
    color:var(--wox-ink);
    border-radius:999px;
    padding:10px 14px;
    font-weight:900;
    text-decoration:none;
    transition:transform .2s ease;
}

.skip-link:focus{
    transform:translateY(0);
}

:is(a,button,input,select,textarea,summary):focus-visible{
    outline:3px solid var(--wox-lime);
    outline-offset:3px;
}

a,
button{
    -webkit-tap-highlight-color:transparent;
}

button,
input,
select,
textarea{
    font:inherit;
}

/* Header / navigation ---------------------------------------------------- */
.site-head{
    position:sticky;
    top:0;
    z-index:900;
    transition:
        background-color .25s ease,
        border-color .25s ease,
        box-shadow .25s ease,
        backdrop-filter .25s ease;
}

.site-head.wox-head-scrolled{
    background:rgba(5,12,8,.88);
    border-bottom-color:rgba(255,255,255,.10);
    box-shadow:0 14px 42px rgba(0,0,0,.14);
    backdrop-filter:blur(18px) saturate(125%);
    -webkit-backdrop-filter:blur(18px) saturate(125%);
}

.site-head .nav a{
    position:relative;
}

.site-head .nav a::after{
    content:"";
    position:absolute;
    left:50%;
    right:50%;
    bottom:-8px;
    height:2px;
    background:var(--wox-lime);
    border-radius:999px;
    transition:left .25s var(--wox-ease),right .25s var(--wox-ease);
}

.site-head .nav a:hover::after,
.site-head .nav a:focus-visible::after,
.site-head .nav a.active::after{
    left:0;
    right:0;
}

/* Mobile menu ------------------------------------------------------------ */
.mobile-nav{
    max-height:0;
    opacity:0;
    visibility:hidden;
    overflow:hidden;
    pointer-events:none;
    transition:
        max-height .35s var(--wox-ease),
        opacity .2s ease,
        visibility .2s ease;
}

.mobile-nav.is-open{
    max-height:calc(100dvh - 72px);
    opacity:1;
    visibility:visible;
    overflow:auto;
    pointer-events:auto;
}

.mobile-nav a{
    min-height:48px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.menu[aria-expanded="true"] span:first-child{
    transform:translateY(6px) rotate(45deg);
}
.menu[aria-expanded="true"] span:nth-child(2){
    opacity:0;
}
.menu[aria-expanded="true"] span:last-child{
    transform:translateY(-6px) rotate(-45deg);
}
.menu span{
    transition:transform .2s ease,opacity .2s ease;
}

/* Global image safety ---------------------------------------------------- */
img,
video,
svg{
    max-width:100%;
}

img{
    height:auto;
}

picture{
    display:block;
}

img[loading="lazy"]{
    content-visibility:auto;
}

/* Forms ------------------------------------------------------------------ */
main input:not([type="checkbox"]):not([type="radio"]),
main select,
main textarea{
    min-height:48px;
}

main textarea{
    min-height:120px;
    resize:vertical;
}

main input::placeholder,
main textarea::placeholder{
    opacity:.72;
}

main button,
main a[class*="primary"],
main a[class*="cta"],
main a[class*="button"]{
    min-height:44px;
}

/* Public-page rhythm ----------------------------------------------------- */
main > section{
    isolation:isolate;
}

main > section[id]{
    scroll-margin-top:88px;
}

/* Progressive reveal: JS only adds .wox-reveal-ready after setup, so content
   never becomes invisible if JS fails. */
.wox-reveal-ready main > section[data-wox-reveal]{
    opacity:0;
    transform:translateY(22px);
    transition:
        opacity .7s var(--wox-ease),
        transform .8s var(--wox-ease);
}

.wox-reveal-ready main > section[data-wox-reveal].is-visible{
    opacity:1;
    transform:none;
}

/* Scroll progress -------------------------------------------------------- */
.wox-scroll-progress{
    position:fixed;
    z-index:1200;
    top:0;
    left:0;
    width:100%;
    height:2px;
    pointer-events:none;
    transform-origin:left center;
    transform:scaleX(0);
    background:var(--wox-lime);
    box-shadow:0 0 18px rgba(170,255,32,.42);
}

/* Back-to-top ------------------------------------------------------------ */
.wox-backtop{
    position:fixed;
    z-index:850;
    right:18px;
    bottom:18px;
    width:46px;
    height:46px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;
    display:grid;
    place-items:center;
    background:rgba(5,12,8,.88);
    color:#fff;
    box-shadow:0 12px 30px rgba(0,0,0,.20);
    cursor:pointer;
    opacity:0;
    transform:translateY(12px);
    visibility:hidden;
    transition:.25s ease;
}

.wox-backtop.is-visible{
    opacity:1;
    transform:none;
    visibility:visible;
}

.wox-backtop:hover{
    background:var(--wox-lime);
    color:var(--wox-ink);
}

/* Network/offline signal ------------------------------------------------- */
.wox-network-status{
    position:fixed;
    z-index:1250;
    left:50%;
    bottom:18px;
    transform:translate(-50%,18px);
    padding:9px 12px;
    border-radius:999px;
    background:#151b17;
    color:#fff;
    border:1px solid rgba(255,255,255,.12);
    font-size:12px;
    font-weight:800;
    opacity:0;
    visibility:hidden;
    transition:.25s ease;
    box-shadow:0 12px 32px rgba(0,0,0,.22);
}

.wox-network-status.is-visible{
    opacity:1;
    visibility:visible;
    transform:translate(-50%,0);
}

.wox-network-status.is-online{
    background:var(--wox-lime);
    color:var(--wox-ink);
}

/* Footer ----------------------------------------------------------------- */
footer a{
    text-underline-offset:3px;
}

footer a:hover{
    color:var(--wox-lime);
}

/* Error pages ------------------------------------------------------------ */
.wox-error-page{
    min-height:100vh;
    display:grid;
    place-items:center;
    background:
        radial-gradient(circle at 78% 18%,rgba(170,255,32,.14),transparent 25%),
        #061009;
    color:#eef5ef;
    padding:24px;
}

.wox-error-shell{
    width:min(980px,100%);
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:34px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:30px;
    background:#0b1710;
    overflow:hidden;
}

.wox-error-copy{
    padding:42px;
}

.wox-error-brand{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-bottom:56px;
}

.wox-error-brand img{
    width:66px;
}

.wox-error-code{
    color:var(--wox-lime);
    font-size:11px;
    font-weight:900;
    letter-spacing:.14em;
}

.wox-error-copy h1{
    margin:12px 0 18px;
    font-size:clamp(48px,7vw,92px);
    line-height:.90;
    letter-spacing:-.06em;
}

.wox-error-copy p{
    color:#9aa79e;
    max-width:620px;
}

.wox-error-actions{
    display:flex;
    gap:9px;
    flex-wrap:wrap;
    margin-top:24px;
}

.wox-error-actions a{
    border-radius:999px;
    padding:12px 16px;
    text-decoration:none;
    font-weight:900;
}

.wox-error-actions a:first-child{
    background:var(--wox-lime);
    color:var(--wox-ink);
}

.wox-error-actions a:last-child{
    border:1px solid rgba(255,255,255,.12);
    color:#fff;
}

.wox-error-visual{
    position:relative;
    min-height:500px;
    background:
        radial-gradient(circle at center,rgba(170,255,32,.12),transparent 42%),
        #07100b;
}

.wox-error-ring{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    border:1px solid rgba(170,255,32,.12);
    border-radius:50%;
}

.wox-error-ring.one{width:160px;height:160px}
.wox-error-ring.two{width:260px;height:260px}
.wox-error-ring.three{width:380px;height:380px}

.wox-error-core{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    width:82px;
    height:82px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--wox-lime);
    color:var(--wox-ink);
    font-weight:950;
}

/* Mobile ----------------------------------------------------------------- */
@media (max-width: 860px){
    .wox-error-shell{
        grid-template-columns:1fr;
    }

    .wox-error-visual{
        min-height:280px;
    }
}

@media (max-width: 760px){
    main p,
    main li,
    footer,
    input,
    select,
    textarea,
    button{
        font-size:16px;
    }

    .site-head{
        backdrop-filter:none;
        -webkit-backdrop-filter:none;
    }

    .site-head.wox-head-scrolled{
        backdrop-filter:blur(14px);
        -webkit-backdrop-filter:blur(14px);
    }

    main > section[id]{
        scroll-margin-top:74px;
    }

    .wox-backtop{
        right:12px;
        bottom:12px;
        width:44px;
        height:44px;
    }

    .wox-network-status{
        bottom:12px;
        max-width:calc(100vw - 88px);
        text-align:center;
    }

    .wox-error-copy{
        padding:28px;
    }

    .wox-error-brand{
        margin-bottom:36px;
    }

    .wox-error-visual{
        min-height:240px;
    }

    .wox-error-ring.three{
        width:280px;
        height:280px;
    }
}

/* Respect user accessibility settings ----------------------------------- */
@media (prefers-reduced-motion: reduce){
    html{
        scroll-behavior:auto;
    }

    *,
    *::before,
    *::after{
        scroll-behavior:auto!important;
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        transition-duration:.01ms!important;
    }

    .wox-reveal-ready main > section[data-wox-reveal]{
        opacity:1;
        transform:none;
    }
}
