:root{
    --void:#08090a;
    --charcoal:#14161a;
    --panel:#1c1a22;
    --cream:#d8d0ae;
    --green:#8fd145;
    --green-hi:#b5f36a;
    --purple:#7540a8;
    --purple-hi:#a167db;
    --muted:#7e7a69;
    --red:#d95757;
    --display:"Bebas Neue","Arial Narrow",Arial,sans-serif;
    --mono:"Courier New",Courier,monospace;
    --max:1200px
}

*{
    box-sizing:border-box
}

html{
    scroll-behavior:smooth
}

body{
    margin:0;
    background:var(--void);
    color:var(--cream);
    font-family:Arial,sans-serif;
    line-height:1.6;
    background-image:
        linear-gradient(rgba(117,64,168,.07) 1px,transparent 1px),
        linear-gradient(90deg,rgba(117,64,168,.07) 1px,transparent 1px);
    background-size:32px 32px
}

a{
    color:inherit
}

.skip-link{
    position:absolute;
    left:-9999px
}

.skip-link:focus{
    left:1rem;
    top:1rem;
    background:var(--green);
    color:var(--void);
    padding:.8rem;
    z-index:99
}

.site-header{
    position:sticky;
    top:0;
    z-index:20;
    display:flex;
    align-items:center;
    gap:2rem;
    justify-content:space-between;
    padding:1rem max(1.25rem,calc((100vw - var(--max))/2));
    background:rgba(8,9,10,.92);
    border-bottom:1px solid var(--purple);
    backdrop-filter:blur(12px)
}

.brand{
    font-family:var(--display);
    font-size:1.4rem;
    text-decoration:none;
    letter-spacing:-.02em
}

.brand-header,
.brand-footer{
    display:inline-flex;
    flex-direction:column;
    align-items:center;
    line-height:1;
    text-decoration:none
}

.brand-title{
    display:block;
    color:var(--cream);
    white-space:nowrap
}

.brand-title span{
    color:var(--purple-hi)
}

.brand-meeting{
    display:block;
    margin-top:0;
    padding-left:.22em;
    color:var(--green) !important;
    font-family:var(--display);
    font-size:.52rem;
    line-height:1;
    letter-spacing:.22em;
    text-align:center
}

nav{
    display:flex;
    gap:1.6rem
}

nav a,
.text-link{
    font-family:var(--mono);
    font-size:.78rem;
    font-weight:700;
    text-transform:uppercase;
    text-decoration:none;
    letter-spacing:.06em
}

nav a:hover,
.text-link:hover{
    color:var(--green)
}

.button{
    display:inline-block;
    padding:.95rem 1.2rem;
    background:var(--green);
    color:var(--void);
    border:1px solid var(--green-hi);
    font-family:var(--mono);
    font-weight:700;
    text-transform:uppercase;
    text-decoration:none;
    box-shadow:5px 5px 0 var(--purple)
}

.button:hover{
    transform:translate(2px,2px);
    box-shadow:3px 3px 0 var(--purple)
}

.button-small{
    padding:.55rem .8rem;
    font-size:.75rem
}

.hero{
    max-width:var(--max);
    margin:auto;
    min-height:78vh;
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:4rem;
    align-items:center;
    padding:7rem 1.25rem
}

.hero-copy,
.terminal{
    min-width:0
}

.eyebrow{
    font-family:var(--mono);
    font-size:.78rem;
    font-weight:700;
    color:var(--green);
    letter-spacing:.09em;
    text-transform:uppercase
}

.hero h1{
    font-family:var(--display);
    font-weight:400;
    font-size:clamp(4.5rem,11vw,9rem);
    line-height:.8;
    letter-spacing:-.02em;
    margin:.5rem 0;
    color:var(--purple-hi);
}

.hero h1 span{
    display:block;
    color:var(--cream)
}

.hero h1 .hero-meeting{
    color:var(--cream);
}

.actions{
    display:flex;
    align-items:center;
    gap:1.5rem;
    margin-top:2rem
}

.terminal{
    background:#0e1110;
    border:1px solid var(--green);
    box-shadow:12px 12px 0 rgba(117,64,168,.45);
    font-family:var(--mono);
    transform:rotate(1deg)
}

.terminal-bar{
    display:flex;
    align-items:center;
    gap:.4rem;
    padding:.65rem;
    background:var(--panel);
    border-bottom:1px solid var(--green)
}

.terminal-bar i{
    width:.55rem;
    height:.55rem;
    border:1px solid var(--purple-hi);
    border-radius:50%
}

.terminal-bar span{
    margin-left:auto;
    font-size:.72rem;
    color:var(--muted)
}

.terminal-body{
    padding:2rem;
    color:var(--green);
    text-shadow:0 0 8px rgba(143,209,69,.5);
    overflow-wrap:anywhere
}

.terminal-logo{
    min-height:320px;
    display:grid;
    place-items:center;
    overflow:hidden
}

.terminal-logo pre{
    margin:0;
    color:var(--green-hi);
    font:700 clamp(.42rem,.72vw,.58rem)/1 var(--mono);
    white-space:pre;
    text-shadow:0 0 10px rgba(143,209,69,.7)
}

.event-date{
    max-width:var(--max);
    margin:0 auto 5rem;
    padding:3rem 1.25rem;
    border-top:1px solid var(--purple);
    border-bottom:1px solid var(--purple);
    text-align:center;
    background:linear-gradient(90deg,transparent,rgba(117,64,168,.15),transparent)
}

.date-day,
.date-note{
    margin:.25rem 0;
    font-family:var(--mono);
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase
}

.event-date h2{
    margin:0;
    color:var(--cream);
    font-family:var(--display);
    font-size:clamp(5rem,16vw,12rem);
    font-weight:400;
    line-height:.9;
    letter-spacing:.01em;
    text-shadow:6px 6px 0 var(--purple)
}

.date-note{
    color:var(--green-hi)
}

[hidden]{
    display:none !important
}

.section{
    max-width:var(--max);
    margin:auto;
    padding:6rem 1.25rem
}

.couch-gaming{
    display:grid;
    grid-template-columns:1fr .8fr;
    gap:5rem;
    align-items:center;
    padding-bottom:8rem
}

.couch-copy h2{
    margin:.5rem 0 1.5rem;
    color:var(--cream);
    font-family:var(--display);
    font-size:clamp(4rem,9vw,7rem);
    font-weight:400;
    line-height:.78;
    text-transform:uppercase
}

.couch-lede{
    max-width:38rem;
    color:var(--green-hi);
    font-size:1.35rem;
    font-weight:700
}

.couch-copy > p:last-child{
    max-width:36rem
}

.arcade-screen{
    position:relative;
    min-height:390px;
    display:grid;
    place-items:center;
    overflow:hidden;
    border:1px solid var(--green);
    background:#0e1110;
    box-shadow:12px 12px 0 rgba(117,64,168,.6)
}

.arcade-screen p{
    position:relative;
    z-index:2;
    margin:0;
    color:var(--purple-hi);
    font-family:var(--display);
    font-size:clamp(4rem,8vw,6.5rem);
    line-height:.62;
    text-align:center;
    text-shadow:4px 4px 0 rgba(143,209,69,.2)
}

.arcade-screen strong{
    color:var(--green);
    font-size:.7em
}

.scanlines{
    position:absolute;
    inset:0;
    z-index:3;
    pointer-events:none;
    background:repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0,rgba(0,0,0,.28) 1px,transparent 1px,transparent 4px)
}

.pixel{
    position:absolute;
    width:18px;
    height:18px;
    background:var(--green);
    box-shadow:18px 0 var(--green),36px 0 var(--green),0 18px var(--green),36px 18px var(--green),0 36px var(--green),18px 36px var(--green),36px 36px var(--green)
}

.pixel-one{top:2rem;left:2rem}
.pixel-two{right:3.5rem;bottom:4rem;transform:scale(.65);background:var(--purple-hi)}
.pixel-three{right:5rem;top:3rem;transform:scale(.35)}

.section-heading{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1rem;
    align-items:end;
    margin-bottom:2rem
}

.section-heading .eyebrow{
    grid-column:1/-1
}

.section-heading h2,
.register h2{
    font-family:var(--display);
    font-size:clamp(2.7rem,7vw,5rem);
    line-height:.9;
    text-transform:uppercase;
    margin:0;
    color:var(--cream)
}

.section-heading > p:last-child{
    margin:0
}

.participant-info{
    padding-top:5rem;
    padding-bottom:7rem
}

.info-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1rem;
    margin-top:3rem
}

.info-card{
    position:relative;
    min-height:360px;
    padding:1.75rem;
    border:1px solid var(--purple);
    background:rgba(28,26,34,.9);
    overflow:hidden
}

.info-card:after{
    content:"";
    position:absolute;
    right:-2rem;
    top:-2rem;
    width:6rem;
    height:6rem;
    border:1px solid var(--green);
    transform:rotate(45deg)
}

.info-card h3,
.faq h3{
    margin:.8rem 0 1rem;
    font-family:var(--display);
    font-size:2rem;
    font-weight:400;
    line-height:1;
    text-transform:uppercase
}

.info-card p{
    font-size:.96rem
}

.faq{
    margin-top:4rem;
    padding:2rem;
    border:1px solid var(--green);
    background:rgba(14,17,16,.94);
    box-shadow:8px 8px 0 var(--purple)
}

.faq-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.75rem
}

.faq details{
    border:1px solid #3b3543;
    background:var(--panel)
}

.faq summary{
    padding:1rem 3rem 1rem 1rem;
    color:var(--cream);
    cursor:pointer;
    font-family:var(--mono);
    font-size:.82rem;
    font-weight:700;
    text-transform:uppercase
}

.faq summary:hover,
.faq details[open] summary{
    color:var(--green-hi)
}

.faq details p{
    margin:0;
    padding:0 1rem 1rem;
    font-size:.9rem
}

.score-wrap{
    overflow:auto;
    border:1px solid var(--green);
    box-shadow:8px 8px 0 var(--purple)
}

table{
    width:100%;
    border-collapse:collapse;
    background:rgba(14,17,16,.94);
    font-family:var(--mono);
    min-width:720px
}

th,
td{
    padding:1rem;
    text-align:left;
    border-bottom:1px solid #30342f
}

th{
    font-size:.72rem;
    text-transform:uppercase;
    color:var(--green);
    background:var(--panel)
}

td:nth-child(n+3),
th:nth-child(n+3){
    text-align:center
}

.top{
    background:rgba(143,209,69,.1)
}

.top td:first-child{
    color:var(--green-hi);
    font-weight:700
}

.status{
    display:inline-block;
    padding:.2rem .45rem;
    border:1px solid currentColor;
    font-size:.68rem
}

.online{
    color:var(--green)
}

.match{
    color:var(--purple-hi)
}

.break{
    color:var(--cream)
}

.offline{
    color:var(--red)
}

.game-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1rem
}

.game-card{
    position:relative;
    min-height:300px;
    padding:1.5rem;
    background:rgba(28,26,34,.92);
    border:1px solid var(--purple);
    overflow:hidden
}

.game-card:before{
    content:"";
    position:absolute;
    right:-30px;
    top:-30px;
    width:100px;
    height:100px;
    border:1px solid var(--green);
    transform:rotate(45deg)
}

.game-card:hover{
    border-color:var(--green);
    transform:translateY(-3px)
}

.game-card h3{
    font-family:var(--display);
    font-size:1.55rem;
    text-transform:uppercase;
    line-height:1.05
}

.game-card dl{
    position:absolute;
    left:1.5rem;
    right:1.5rem;
    bottom:1rem;
    display:flex;
    gap:2rem;
    margin:0;
    padding-top:1rem;
    border-top:1px solid #3b3543
}

.game-card dl div{
    display:grid
}

.game-card dt{
    font-family:var(--mono);
    font-size:.65rem;
    color:var(--green);
    text-transform:uppercase
}

.game-card dd{
    margin:0;
    font-family:var(--mono);
    font-weight:700
}

.register{
    max-width:calc(var(--max) - 2.5rem);
    margin:5rem auto;
    padding:4rem;
    background:var(--panel);
    border:1px solid var(--green);
    box-shadow:12px 12px 0 var(--purple);
    text-align:center
}

.register p:not(.eyebrow){
    max-width:45rem;
    margin:1.5rem auto 2rem
}

.button-register{
    margin-top:2.5rem;
    padding:1.35rem 2.5rem;
    font-size:clamp(1rem,2.2vw,1.4rem);
    box-shadow:9px 9px 0 var(--purple)
}

.button-register:hover{
    box-shadow:6px 6px 0 var(--purple)
}

footer{
    max-width:var(--max);
    margin:auto;
    padding:2rem 1.25rem;
    border-top:1px solid var(--purple);
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-family:var(--mono);
    font-size:.72rem;
    color:var(--muted)
}

footer .brand{
    font-size:1.4rem;
    color:var(--cream)
}

footer .brand-meeting{
    color:var(--green) !important
}

.footer-credit span{
    color:var(--green-hi);
    font-size:1.15em
}

@media(max-width:850px){
    nav{
        display:none
    }

    .hero{
        grid-template-columns:1fr;
        padding-top:4rem
    }

    .terminal{
        transform:none
    }

    .game-grid{
        grid-template-columns:1fr 1fr
    }

    .info-grid{
        grid-template-columns:1fr
    }

    .info-card{
        min-height:auto
    }

    .couch-gaming{
        grid-template-columns:1fr;
        gap:3rem
    }

    .section-heading{
        grid-template-columns:1fr
    }

    .section-heading .eyebrow{
        grid-column:auto
    }
}

@media(max-width:560px){
    .site-header{
        gap:.5rem
    }

    .button-small{
        display:none
    }

    .hero h1{
        font-size:clamp(3.6rem,17vw,4.2rem)
    }

    .hero{
        overflow:hidden
    }

    .terminal-body{
        padding:1.25rem;
        font-size:.78rem
    }

    .terminal-logo{
        min-height:240px
    }

    .terminal-logo pre{
        font-size:clamp(.36rem,1.7vw,.46rem)
    }

    .actions{
        align-items:flex-start;
        flex-direction:column
    }

    .game-grid{
        grid-template-columns:1fr
    }

    .faq{
        padding:1.25rem
    }

    .faq-grid{
        grid-template-columns:1fr
    }

    .event-date h2{
        font-size:clamp(3.3rem,15vw,6rem)
    }

    .arcade-screen{
        min-height:300px
    }

    .register{
        padding:2rem 1.2rem;
        margin-left:1.25rem;
        margin-right:1.25rem
    }

    footer{
        align-items:flex-start;
        flex-direction:column;
        gap:.8rem
    }
}

@media(prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto
    }

    *{
        transition:none !important
    }
}
