/*
Theme Name: Live From The Floop
Author: Floop Transmission System
Description: Independent video broadcasting and DJ set archive with a clean, editorial visual system and contact page.
Version: 6.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: live-from-the-floop
*/
:root{color-scheme:dark;--bg:#0c0d0f;--panel:#141517;--panel-alt:#18191b;--text:#f0f0f0;--muted:#989b9e;--line:#343639;--accent:#d8e875;--floop-dim:.82}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:20px}
body{min-width:300px;min-height:100vh;margin:0;overflow-x:hidden;background-color:#101116;color:var(--text);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
body::before{content:'';position:fixed;inset:0;z-index:0;background:rgba(6,7,10,var(--floop-dim));pointer-events:none}
body::after{content:'';position:fixed;inset:0;z-index:2;pointer-events:none;background-image:url('assets/grit.png');background-size:256px 256px;opacity:.045;mix-blend-mode:screen}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
a{color:inherit;text-decoration:none}
a:hover{color:#fff}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
::selection{background:var(--accent);color:#101112}
.screen-reader-text{position:absolute;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden;white-space:nowrap}
.screen-reader-text:focus{clip:auto;z-index:99;width:auto;height:auto;left:15px;top:15px;background:#151515;color:#fff;padding:15px}
.floop-shell{position:relative;z-index:1;width:min(100% - 68px,1260px);margin:auto;min-height:100vh;display:flex;flex-direction:column}

/* Restrained studio masthead */
.site-header{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:28px;border-bottom:1px solid #505156}
.site-brand{display:flex;align-items:center;flex:0 1 270px;min-width:140px;max-width:42%;align-self:stretch}
.site-logo{display:block;width:100%;height:auto;max-height:94px;object-fit:contain;object-position:left center;filter:drop-shadow(0 3px 4px rgba(0,0,0,.24))}
.site-nav{display:flex;align-items:center;gap:34px;font:700 11px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.site-nav a{position:relative;display:inline-flex;align-items:center;padding:15px 0;color:#bbbbbd;transition:color .16s ease}
.site-nav a:hover,.site-nav a[aria-current="page"]{color:#fff}
.site-nav a[aria-current="page"]::after,.site-nav a:hover::after{content:'';height:2px;background:var(--accent);position:absolute;left:0;right:0;bottom:5px}
.site-main{padding:40px 0 85px;flex:1}

/* A strong, simple video presentation */
.section-line{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:0 0 21px}
.section-line__head{display:flex;align-items:baseline;gap:17px;min-width:0}
.section-index{font:700 11px/1 'Courier New',monospace;color:var(--accent);letter-spacing:.06em}
.section-line h1,.section-line h2{font-size:clamp(30px,3.45vw,49px);line-height:.95;font-weight:800;letter-spacing:-.055em;margin:0;text-transform:uppercase}
.live-status{display:flex;gap:9px;align-items:center;color:#ddd;font:700 11px/1 'Courier New',monospace;letter-spacing:.09em;white-space:nowrap}
.live-status__dot{width:8px;height:8px;border-radius:50%;background:#7a7c80}
.live-status[data-status="on-air"] .live-status__dot{background:var(--accent);box-shadow:0 0 8px #d8e87555}
.live-status[data-status="standby"] .live-status__dot{background:#c9aa72}
.live-layout{display:block}
.live-aside{display:none}
.live-player{padding:8px;border:1px solid #47494b;background:#0c0d0f}
.video-stage{position:relative;width:100%;aspect-ratio:16/9;background:linear-gradient(165deg,#151920,#07080b 55%,#111315);overflow:hidden}
.video-stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.signal-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;text-align:center;color:#9da2a9;font:700 clamp(11px,1.1vw,13px)/1.2 'Courier New',monospace;letter-spacing:.12em}
.signal-placeholder__square{font-family:Arial,Helvetica,sans-serif;font-size:clamp(52px,8vw,102px);font-weight:800;letter-spacing:-.09em;line-height:1;color:#e3e6eb;opacity:.83}
.sets-section{margin-top:73px}
.section-line--sets{margin:0 0 20px}
.all-sets-link{font-size:11px;line-height:1;letter-spacing:.09em;font-weight:700;text-transform:uppercase;color:#bec1c5;white-space:nowrap}
.all-sets-link:hover{color:var(--accent)}
.all-sets-link span{font-size:17px;vertical-align:-1px;margin-left:6px}

/* Archive: image-led, neutral, editorial */
.set-filters{display:grid;grid-template-columns:minmax(180px,1fr) minmax(148px,185px) minmax(144px,172px) 72px;gap:9px;margin-bottom:22px}
.set-filters input,.set-filters select,.set-filters button{height:40px;min-width:0;max-width:100%;border:1px solid #393b3d;border-radius:0;background:rgba(13,14,16,.94);padding:0 13px;color:#d6d7da;font:700 11px/1 'Courier New',monospace;letter-spacing:.03em}
.set-filters input::placeholder{color:#888a8f;opacity:1}
.set-filters select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='7'%3E%3Cpath d='M1 1l5.5 5L12 1' fill='none' stroke='%23bcbec2' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;cursor:pointer}
.set-filters button{background:#d4d6d9;color:#111214;border-color:#d4d6d9;font-family:Arial,Helvetica,sans-serif;letter-spacing:.07em}
.set-filters button:hover{background:var(--accent);border-color:var(--accent)}
.set-filters button span{font-size:15px}
.sets-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:27px 17px}
.set-card{min-width:0}
.set-card__link{display:block;height:100%}
.set-card__media{position:relative;aspect-ratio:16 / 9;background:#1d1e22;overflow:hidden}
.set-card__image{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.77) brightness(.96);transition:transform .22s ease,filter .22s ease}
.set-card__link:hover .set-card__image{transform:scale(1.018);filter:saturate(1) brightness(1.05)}
.set-card__fallback{display:flex;width:100%;height:100%;align-items:center;justify-content:center;background:linear-gradient(120deg,#34353a,#0f1012);color:#9a9ba0;font:800 96px/.8 Arial,sans-serif}
.set-card__play{display:grid;place-items:center;position:absolute;right:12px;bottom:12px;width:32px;height:32px;padding-left:2px;background:#0c0d0dcc;color:#f0f0f0;font-size:11px;opacity:.87}
.set-card__link:hover .set-card__play{background:var(--accent);color:#111}
.set-card__copy{padding:11px 0 0}
.set-card h3{font-size:clamp(16px,1.7vw,20px);line-height:1.18;letter-spacing:-.015em;font-weight:700;margin:0 0 8px;overflow-wrap:anywhere;color:#f4f4f4}
.set-card__meta{display:flex;flex-wrap:wrap;column-gap:12px;row-gap:5px;color:#a5a7aa;font:500 11px/1.2 'Courier New',monospace;letter-spacing:.01em;text-transform:uppercase}
.set-card__genre{color:#c5c7c9}
.sets-empty{border-top:1px solid #424345;padding:36px 0;color:#aaadb1;font-size:12px;letter-spacing:.06em}
.sets-empty a{color:var(--accent)}
.set-pagination{display:flex;align-items:center;justify-content:center;gap:24px;padding:39px 0 0;font:700 11px/1 'Courier New',monospace}
.set-pagination span{color:var(--muted)}
.set-pagination a{padding:10px 14px;border:1px solid #4a4b4c}
.set-pagination a:hover{border-color:#d7daeb}

/* Individual recorded sets */
.single-page{padding-top:32px}
.back-nav{margin:0 0 37px;font:700 11px/1 Arial,Helvetica,sans-serif;letter-spacing:.07em}
.back-nav a{color:#acafb1}
.back-nav a:hover{color:var(--accent)}
.micro-label,.eyebrow{font:700 11px/1.2 'Courier New',monospace;letter-spacing:.1em;color:#a8abb0}
.single-set__head{margin:0 0 24px}
.single-set__head h1{max-width:1050px;margin:12px 0 13px;line-height:.98;letter-spacing:-.045em;font-size:clamp(44px,6.3vw,84px);font-weight:800;overflow-wrap:anywhere}
.single-set__meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 15px;color:#b4b6b9;font:700 11px/1.2 'Courier New',monospace;text-transform:uppercase}
.single-set__meta span::before{content:'·';margin-right:15px;color:var(--accent)}
.single-set__player{background:#0b0b0d;border:1px solid #494a4e;padding:8px}
.single-set__description{max-width:760px;margin:30px 0 0;color:#b8bbbf;font:normal 15px/1.7 Arial,Helvetica,sans-serif}
.single-set__description a{text-decoration:underline;text-underline-offset:4px}
.related-sets{margin-top:86px}
.sets-archive{padding-top:43px}
.simple-article{max-width:880px;margin:20px 0 90px;line-height:1.7}
.simple-article h1{font-size:clamp(44px,7vw,86px);letter-spacing:-.045em;line-height:1;font-weight:800}
.simple-article img{max-width:100%;height:auto}

/* Contact page: small editorial introduction alongside a real working form. */
.contact-page{padding-top:64px}
.contact-heading{margin:0 0 46px;border-bottom:1px solid #515257;padding-bottom:34px}
.contact-heading .eyebrow{display:block;margin-bottom:15px}
.contact-heading h1{font-size:clamp(64px,10.3vw,142px);letter-spacing:-.075em;line-height:.85;font-weight:800;margin:0}
.accent-mark{color:var(--accent)}
.contact-layout{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr);gap:clamp(32px,7vw,100px);align-items:start}
.contact-intro{min-height:445px;display:flex;flex-direction:column;justify-content:space-between;border-top:2px solid #d5d5d8;padding:22px 0 0}
.contact-intro p{margin:0;color:#dcdddf;line-height:1.32;font-size:clamp(20px,2.65vw,33px);font-weight:500;letter-spacing:-.035em}
.contact-intro__bottom{display:flex;gap:13px;justify-content:space-between;color:#95999d;font:700 10px/1.4 'Courier New',monospace;letter-spacing:.08em}
.contact-form-wrap{padding-top:2px}
.contact-form{display:flex;flex-direction:column;gap:23px}
.contact-fields-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-field{display:flex;flex-direction:column;gap:10px;min-width:0}
.contact-field label{font:700 11px/1 'Courier New',monospace;color:#cccdd0;letter-spacing:.09em}
.contact-field label span{color:var(--accent)}
.contact-field input,.contact-field textarea{width:100%;border:1px solid #4a4b4e;border-radius:0;background:rgba(17,18,20,.96);color:#f7f7f7;font:normal 16px/1.45 Arial,sans-serif;padding:11px 14px;outline:none;transition:border-color .14s}
.contact-field input{height:50px}
.contact-field textarea{min-height:185px;resize:vertical}
.contact-field input:focus,.contact-field textarea:focus{border-color:#e1e2e4;outline:1px solid #e1e2e4}
.contact-submit{height:52px;border:0;background:var(--text);color:#111214;font-size:12px;font-weight:800;letter-spacing:.09em;text-align:left;padding:0 18px;display:flex;align-items:center;justify-content:space-between;transition:background .12s}
.contact-submit span{font-size:23px;font-weight:400}
.contact-submit:hover{background:var(--accent)}
.contact-honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-alert{padding:16px 18px;margin:0 0 22px;border:1px solid #5b5d60;font-size:14px;color:#e3e3e3}
.contact-alert--success{border-color:var(--accent)}
.contact-alert--error{border-color:#c88b85}

.site-footer{margin-top:auto;padding:22px 0 32px;display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid #414246;font:700 10px/1.2 'Courier New',monospace;letter-spacing:.04em;color:#909297}
.site-footer div{display:flex;align-items:center;gap:26px;color:#b8b9bb}
.site-footer a:hover{color:#fff}

@media(max-width:940px){.contact-layout{grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);gap:38px}.set-filters{grid-template-columns:minmax(140px,1fr) 165px 151px 67px}}
@media(max-width:760px){
.floop-shell{width:calc(100% - 36px)}
.site-header{min-height:92px;gap:12px}
.site-brand{flex-basis:220px;max-width:48%}
.site-logo{max-height:83px}
.site-nav{gap:17px;font-size:10px}
.site-main{padding-top:31px}
.section-line h1,.section-line h2{font-size:37px}
.sets-section{margin-top:55px}
.set-filters{grid-template-columns:1fr 1fr 64px;gap:8px}
.set-filters input{grid-column:1 / -1}
.set-filters input,.set-filters select,.set-filters button{height:40px;font-size:10px;padding:0 9px}
.set-filters select{padding-right:22px;background-position:right 7px center;background-size:10px}
.sets-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 12px}
.set-card h3{font-size:16px}
.contact-page{padding-top:44px}
.contact-heading{padding-bottom:26px;margin-bottom:36px}
.contact-heading h1{font-size:clamp(60px,13vw,96px)}
.contact-layout{display:block}
.contact-intro{min-height:0;border:0;padding:0 0 30px}
.contact-intro p{font-size:24px}
.contact-intro__bottom{display:none}
.contact-fields-row{gap:12px}
}
@media(max-width:480px){
.floop-shell{width:calc(100% - 28px)}
.site-header{min-height:78px}
.site-brand{flex-basis:170px;max-width:49%}
.site-logo{max-height:69px}
.site-nav{gap:12px;font-size:9px;letter-spacing:.03em}
.site-main{padding-bottom:55px}
.section-line{margin-bottom:15px}
.section-line__head{gap:10px}
.section-index{font-size:10px}
.section-line h1,.section-line h2{font-size:32px}
.live-player,.single-set__player{padding:4px}
.live-status{font-size:9px}
.sets-section{margin-top:47px}
.set-filters{grid-template-columns:1fr 1fr 58px}
.set-filters select,.set-filters button{font-size:9px}
.sets-grid{grid-template-columns:1fr;gap:27px}
.set-card h3{font-size:19px}
.set-card__meta{font-size:11px}
.single-set__head h1{font-size:43px}
.related-sets{margin-top:59px}
.contact-page{padding-top:38px}
.contact-heading h1{font-size:clamp(61px,16vw,85px)}
.contact-fields-row{grid-template-columns:1fr;gap:23px}
.contact-form{gap:23px}
.contact-intro p{font-size:22px}
.site-footer{flex-wrap:wrap;gap:16px;font-size:9px;padding-bottom:25px}
.site-footer div{gap:17px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.set-card__image{transition:none}}
