/* Jump The Fence — Art Collective */

@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Bebas+Neue&family=Space+Mono:ital,wght@0,400;0,700;1,400&display=swap');

/* RESET */
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}
body{line-height:1}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}
nav ul{list-style:none}
blockquote,q{quotes:none}
table{border-collapse:collapse;border-spacing:0}
input,select{vertical-align:middle}

/* CSS VARIABLES */
:root {
    --bg:        #0a0a0a;
    --surface:   #111111;
    --border:    #2a2a2a;
    --accent:    #c8ff00;        /* acid green */
    --accent2:   #ff3c00;        /* hot red */
    --text:      #e0e0d0;
    --text-dim:  #666660;
    --header-bg: #1a1a1a;
    --header-active: #1f2e00;
    --font-mono: 'Share Tech Mono', monospace;
    --font-display: 'Bebas Neue', sans-serif;
    --font-body: 'Space Mono', monospace;
}

/* DESKTOP */
#desktop {
font-family: var(--font-mono);
position: fixed;
height: 100%;
width: 100%;
background: var(--bg);
background-image: url('Anarchist.png');
background-size: auto;
background-repeat: no-repeat;
radial-gradient(ellipse at 20% 50%, rgba(200,255,0,0.03) 0%, transparent 60%),
radial-gradient(ellipse at 80% 20%, rgba(255,60,0,0.04) 0%, transparent 50%),
repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(255,255,255,0.012) 2px,
                          rgba(255,255,255,0.012) 4px
);
overflow: hidden;
top: 0; bottom: 0; left: 0; right: 0;
color: var(--text);
}

/* SCANLINES */
#scanlines {
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
pointer-events: none;
z-index: 9999;
background: repeating-linear-gradient(
    to bottom,
    transparent 0px,
    transparent 3px,
    rgba(0,0,0,0.18) 3px,
                                      rgba(0,0,0,0.18) 4px
);
}

/* WINDOWS */
.window {
    position: absolute;
    border: 1px solid var(--border);
    background: var(--surface);
    border-radius: 0;
    z-index: 1000;
    box-shadow: 0 0 0 1px rgba(200,255,0,0.06), 4px 4px 24px rgba(0,0,0,0.8);
}
.window.closed,
.window.minimizedWindow {
    display: none;
}
.window.fullSizeWindow {
    top: 0 !important;
    right: 0 !important;
    left: 0 !important;
    border-radius: 0;
    bottom: 36px !important;
}
.fullSizeWindow .ui-resizable-handle {
    display: none;
}

/* WINDOW HEADER */
.windowHeader {
    background-color: var(--header-bg);
    text-align: right;
    border-bottom: 1px solid var(--border);
    padding: 0 6px;
    cursor: move;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    user-select: none;
}
.activeWindow .windowHeader {
    background-color: var(--header-active);
    border-bottom-color: var(--accent);
}
.activeWindow {
    border-color: rgba(200,255,0,0.3);
    box-shadow: 0 0 0 1px rgba(200,255,0,0.15), 0 0 32px rgba(200,255,0,0.06), 4px 4px 24px rgba(0,0,0,0.9);
}
.windowHeader > strong {
    float: left;
    margin-right: auto;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: normal;
    letter-spacing: 0.12em;
    color: var(--accent);
    text-transform: uppercase;
    line-height: 30px;
}
/* Override jQuery UI draggable default that breaks the flex layout */
.windowHeader { overflow: visible; }

/* Window buttons */
.windowHeader > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border: 1px solid var(--border);
    font-size: 10px;
    font-family: var(--font-mono);
    border-radius: 0;
    width: 22px;
    height: 18px;
    position: relative;
    overflow: hidden;
    background: #1a1a1a;
    color: var(--text-dim);
    transition: all 0.12s;
    flex-shrink: 0;
}
.windowHeader > span:hover {
    background: rgba(200,255,0,0.12);
    border-color: var(--accent);
    color: var(--accent);
}
.windowHeader > span.winclose:hover {
    background: rgba(255,60,0,0.2);
    border-color: var(--accent2);
    color: var(--accent2);
}

/* Minimize bar glyph */
.winminimize > span {
    display: block;
    width: 10px;
    height: 2px;
    background: currentColor;
    position: absolute;
    bottom: 4px;
    left: 50%;
    transform: translateX(-50%);
}

/* Maximize box glyphs */
.winmaximize > span {
    display: block;
    width: 8px;
    height: 7px;
    border: 1.5px solid currentColor;
    border-top-width: 2.5px;
    position: absolute;
}
.winmaximize > span:nth-child(2) { display: none; }
.fullSizeWindow .winmaximize > span:nth-child(1) { margin: 2px 0 0 -3px; }
.fullSizeWindow .winmaximize > span:nth-child(2) {
    display: block;
    top: 3px; left: 12px;
}

/* WINDOW CONTENT */
.wincontent {
    padding: 16px;
    min-width: 220px;
    min-height: 140px;
    margin: 0;
    border-radius: 0;
    font-family: var(--font-body);
    font-size: 12px;
    line-height: 1.7;
    color: var(--text);
    border: none;
}

/* TYPOGRAPHY IN WINDOWS */
h2 {
    font-family: var(--font-display);
    font-size: 42px;
    letter-spacing: 0.05em;
    color: var(--accent);
    line-height: 1;
    margin-bottom: 4px;
}
.tagline {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.2em;
    color: var(--text-dim);
    margin-bottom: 14px;
}
p { margin-bottom: 10px; font-size: 12px; }
.win-hr {
    border: none;
    border-top: 1px solid var(--border);
    margin: 12px 0;
}
.small-text {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-dim);
    letter-spacing: 0.15em;
}

/* RELEASE LIST */
.release-list { display: flex; flex-direction: column; gap: 4px; }
.release-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 10px;
    border: 1px solid transparent;
    transition: all 0.1s;
    cursor: default;
}
.release-item:hover {
    border-color: var(--border);
    background: rgba(255,255,255,0.03);
}
.release-item.active-rel {
    border-color: rgba(200,255,0,0.25);
    background: rgba(200,255,0,0.04);
}
.rel-num {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-dim);
    min-width: 24px;
}
.rel-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.rel-title {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: bold;
    letter-spacing: 0.1em;
    color: var(--text);
}
.active-rel .rel-title { color: var(--accent); }
.rel-artist {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-dim);
}
.rel-format {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.15em;
    color: var(--accent2);
    border: 1px solid rgba(255,60,0,0.3);
    padding: 1px 5px;
    min-width: 46px;
    text-align: center;
}

/* EVENT LIST */
.event-list { display: flex; flex-direction: column; gap: 2px; }
.event-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 10px 8px;
    border-bottom: 1px solid var(--border);
}
.event-item:last-child { border-bottom: none; }
.ev-date {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--accent);
    letter-spacing: 0.1em;
    min-width: 46px;
}
.ev-info { display: flex; flex-direction: column; gap: 3px; }
.ev-title {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: bold;
    letter-spacing: 0.05em;
    color: var(--text);
}
.ev-venue {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-dim);
    letter-spacing: 0.08em;
}

/* RADIO */
.radio-container { display: flex; flex-direction: column; gap: 12px; }
.radio-header {
    display: flex;
    align-items: center;
    gap: 12px;
}
.radio-live {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--accent2);
    letter-spacing: 0.1em;
    animation: blink-live 1.4s step-end infinite;
}
@keyframes blink-live {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.2; }
}
.radio-show {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.1em;
    color: var(--text-dim);
}
.waveform {
    height: 48px;
    background: rgba(200,255,0,0.04);
    border: 1px solid rgba(200,255,0,0.1);
    display: flex;
    align-items: flex-end;
    padding: 4px 8px;
    overflow: hidden;
}
.wave-bars {
    display: flex;
    align-items: flex-end;
    gap: 3px;
    width: 100%;
    height: 100%;
}
.wave-bars span {
    flex: 1;
    background: var(--accent);
    opacity: 0.7;
    animation: wave-anim 0.8s ease-in-out infinite alternate;
}
.wave-bars span:nth-child(1)  { animation-delay: 0.00s; height: 40%; }
.wave-bars span:nth-child(2)  { animation-delay: 0.05s; height: 70%; }
.wave-bars span:nth-child(3)  { animation-delay: 0.10s; height: 55%; }
.wave-bars span:nth-child(4)  { animation-delay: 0.15s; height: 90%; }
.wave-bars span:nth-child(5)  { animation-delay: 0.20s; height: 45%; }
.wave-bars span:nth-child(6)  { animation-delay: 0.25s; height: 75%; }
.wave-bars span:nth-child(7)  { animation-delay: 0.30s; height: 60%; }
.wave-bars span:nth-child(8)  { animation-delay: 0.35s; height: 85%; }
.wave-bars span:nth-child(9)  { animation-delay: 0.40s; height: 50%; }
.wave-bars span:nth-child(10) { animation-delay: 0.45s; height: 95%; }
.wave-bars span:nth-child(11) { animation-delay: 0.50s; height: 40%; }
.wave-bars span:nth-child(12) { animation-delay: 0.55s; height: 65%; }
.wave-bars span:nth-child(13) { animation-delay: 0.60s; height: 80%; }
.wave-bars span:nth-child(14) { animation-delay: 0.65s; height: 50%; }
.wave-bars span:nth-child(15) { animation-delay: 0.70s; height: 35%; }
.wave-bars span:nth-child(16) { animation-delay: 0.75s; height: 70%; }
.wave-bars span:nth-child(17) { animation-delay: 0.80s; height: 55%; }
.wave-bars span:nth-child(18) { animation-delay: 0.85s; height: 88%; }
.wave-bars span:nth-child(19) { animation-delay: 0.90s; height: 45%; }
.wave-bars span:nth-child(20) { animation-delay: 0.95s; height: 62%; }
@keyframes wave-anim {
    from { transform: scaleY(0.4); }
    to   { transform: scaleY(1.0); }
}

.tracklist {
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 1.9;
    color: var(--text-dim);
}
.tl-header {
    color: var(--accent);
    font-size: 10px;
    letter-spacing: 0.2em;
    margin-bottom: 6px;
}
.radio-controls { display: flex; gap: 8px; flex-wrap: wrap; }
.radio-btn {
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-dim);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.1em;
    padding: 5px 10px;
    cursor: pointer;
    transition: all 0.12s;
}
.radio-btn:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: rgba(200,255,0,0.06);
}

/* CONTACT */
.contact-block { display: flex; flex-direction: column; gap: 6px; }
.contact-line {
    font-family: var(--font-mono);
    font-size: 12px;
    display: flex;
    gap: 12px;
    align-items: baseline;
    margin-bottom: 0;
}
.label {
    font-size: 9px;
    color: var(--accent);
    letter-spacing: 0.2em;
    min-width: 50px;
}
@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}
.blink { animation: blink 1.2s step-end infinite; }

/* TASKBAR */
#taskbar {
position: absolute;
height: 36px;
border-top: 1px solid var(--border);
bottom: 0;
left: 0;
right: 0;
background: #0d0d0d;
display: flex;
align-items: center;
padding-left: 0;
gap: 0;
}
#taskbar-logo {
width: 48px;
height: 36px;
background: var(--accent);
color: #0a0a0a;
font-family: var(--font-display);
font-size: 20px;
letter-spacing: 0.05em;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
border-right: 1px solid rgba(200,255,0,0.3);
}
.taskbarPanel {
    display: inline-flex;
    align-items: center;
    height: 36px;
    border-right: 1px solid var(--border);
    padding: 0 14px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.1em;
    color: var(--text-dim);
    cursor: pointer;
    background: transparent;
    transition: all 0.1s;
    text-transform: uppercase;
    white-space: nowrap;
}
.taskbarPanel:hover {
    background: rgba(255,255,255,0.05);
    color: var(--text);
}
.taskbarPanel.activeTab {
    background: rgba(200,255,0,0.08);
    color: var(--accent);
    border-bottom: 2px solid var(--accent);
}
.taskbarPanel.minimizedTab {
    color: #444;
}
.taskbarPanel.minimizedTab:hover {
    color: var(--text-dim);
    background: rgba(255,255,255,0.03);
}
.taskbarPanel.closed { display: none; }

/* DESKTOP ICONS */
#icons {
position: absolute;
z-index: 10;
top: 24px;
left: 20px;
display: flex;
flex-direction: column;
gap: 4px;
}
#icons a {
display: flex;
align-items: center;
gap: 10px;
cursor: pointer;
padding: 5px 10px 5px 8px;
font-family: var(--font-mono);
font-size: 11px;
color: var(--text-dim);
letter-spacing: 0.08em;
text-transform: uppercase;
text-decoration: none;
transition: all 0.1s;
border: 1px solid transparent;
}
#icons a:hover {
background: rgba(200,255,0,0.07);
color: var(--accent);
border-color: rgba(200,255,0,0.2);
}
.icon-glyph {
    font-size: 16px;
    line-height: 1;
    color: var(--accent);
    opacity: 0.6;
    transition: opacity 0.1s;
}
#icons a:hover .icon-glyph { opacity: 1; }
.icon-label { font-size: 11px; }

/* BOOT SCREEN  */
#boot-message {
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
background: #000;
z-index: 99999;
display: flex;
align-items: center;
justify-content: center;
animation: boot-fade 0.5s ease 2s forwards;
}
@keyframes boot-fade {
    to { opacity: 0; pointer-events: none; }
}
#boot-text {
font-family: var(--font-mono);
font-size: 14px;
color: var(--accent);
line-height: 2.2;
letter-spacing: 0.15em;
}
#boot-bar {
color: var(--accent);
animation: boot-bar-anim 1.8s ease forwards;
}
@keyframes boot-bar-anim {
    from { clip-path: inset(0 100% 0 0); }
    to   { clip-path: inset(0 0% 0 0); }
}

/* JQUERY UI OVERRIDES  */
.ui-resizable-se {
    background: none;
    border-right: 2px solid var(--accent);
    border-bottom: 2px solid var(--accent);
    width: 10px;
    height: 10px;
    right: 0;
    bottom: 0;
    opacity: 0.3;
}
.ui-resizable-se:hover { opacity: 0.8; }
.ui-widget-content { border: none; background: none; }
.ui-state-default, .ui-widget-content .ui-state-default { border: none; background: none; }

/* WINDOW POSITIONS */
#window0 { top: 60px; left: 220px; }
#window1 { top: 30px; left: 520px; }
#window2 { top: 300px; left: 350px; }
#window3 { top: 200px; left: 700px; }
#window4 { top: 120px; left: 900px; }

.window {
    min-width: 260px;
    max-width: 90vw;

    min-height: 160px;
    max-height: 80vh;

    display: flex;
    flex-direction: column;
}

.wincontent {
    flex: 1;
    overflow: auto;

    padding: 16px;
    font-size: clamp(11px, 1.2vw, 13px);
}
.windowHeader {
    flex-shrink: 0;
}

.wincontent * {
    word-wrap: break-word;
    overflow-wrap: break-word;
}

@media screen and (max-width: 960px) {
    #window0 { left: 100px; }
    #window1 { left: 80px; top: 300px; }
    #window3 { left: 400px; top: 80px; }
    #window4 { left: 420px; top: 340px; }
}
@media screen and (max-width: 640px) {
    /* top/left intentionally omitted — mobile stacking handled in the 768px block */
    #window0 .wincontent { width: 280px; }
    #window1 .wincontent { width: 280px; }
}

/* MOBILE LAYOUT — class set by JS user-agent detection */

html.mobile #desktop {
    position: relative;
    height: auto;
    min-height: 100vh;
    overflow: visible;
    overflow-y: auto;
    padding: 16px 12px 72px 12px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

html.mobile #icons {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    order: -1;
    z-index: 10;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 0;
    margin-bottom: 36px;
}

html.mobile #icons .icon-glyph {
    display: none;
}

html.mobile #icons a {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 14px 8px;
    background: #1c1c1c;
    border: 1px solid #444;
    color: var(--text);
    font-size: 11px;
    letter-spacing: 0.1em;
    text-align: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.5);
    min-width: 0;
}

html.mobile #icons a::before {
    content: "/>";
    color: var(--accent);
    margin-right: 6px;
    opacity: 1;
    flex-shrink: 0;
}

html.mobile #icons a:active,
html.mobile #icons a:hover {
    background: rgba(200,255,0,0.08);
    border-color: var(--accent);
    color: var(--accent);
}

html.mobile .window,
html.mobile #window0,
html.mobile #window1,
html.mobile #window2,
html.mobile #window3,
html.mobile #window4 {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 16px 0 !important;
    min-height: 0 !important;
    z-index: 1 !important;
}

html.mobile .window.closed {
    display: none !important;
}

html.mobile .wincontent {
    min-height: 0 !important;
    min-width: 0 !important;
}

html.mobile .windowHeader {
    cursor: default;
}

html.mobile .ui-resizable-handle {
    display: none !important;
}

html.mobile #taskbar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 10000;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* RADIO INTEGRATION STYLE */
.now-playing-container {
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
    align-items: center;
}
.album-art-box {
    width: 48px;
    height: 48px;
    border: 1px solid var(--border);
    background: rgba(255,255,255,0.03);
    flex-shrink: 0;
    overflow: hidden;
}
.album-art-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.3s;
}
.track-info {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.track-title {
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--accent);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin: 0;
}
.track-artist {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text);
    margin: 0;
}
.track-count {
    margin: 0;
}
.progress-container {
    margin: 12px 0;
}
.progress-bar-bg {
    width: 100%;
    height: 6px;
    background: rgba(255,255,255,0.05);
    border: 1px solid var(--border);
    cursor: pointer;
    position: relative;
}
.progress-fill {
    height: 100%;
    width: 0%;
    background: var(--accent);
    pointer-events: none;
    transition: width 0.1s linear;
}
.time-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 4px;
    color: var(--text-dim);
}
.radio-controls {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.radio-btn.active {
    background: rgba(200,255,0,0.15);
    border-color: var(--accent);
    color: var(--accent);
}
.vol-control {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
}
.vol-control input[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 4px;
    background: rgba(255,255,255,0.05);
    border: 1px solid var(--border);
    outline: none;
}
.vol-control input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 10px;
    height: 14px;
    background: var(--text-dim);
    cursor: pointer;
    border-radius: 0;
    transition: background 0.2s;
}
.vol-control input[type="range"]:hover::-webkit-slider-thumb {
    background: var(--accent);
}

/* Ensure waveform starts paused */
.wave-bars span {
    animation-play-state: paused;
}

.download-link {
    text-decoration: none; /* Removes the underline */
    display: inline-block; /* Helps with spacing if needed */
}
