
#countdown-container {
background-color: var(--bg);
font-family: var(--font-typewriter);
padding: var(--gap-2);
border: var(--border-raw);
border-radius: var(--radius);
text-align: center;
text-transform: uppercase;
width: fit-content;
margin: 0 auto;
}
.countdown-label {
font-size: var(--step-0);
color: var(--color-medium);
letter-spacing: 0.15rem;
margin-bottom: var(--gap-2);
border-bottom: 1px dotted var(--color-dark);
padding-bottom: var(--gap-1);
}
#countdown-timer {
font-size: var(--step-2);
color: var(--color-light);
font-weight: thin;
letter-spacing: 0.1rem;
}

/* VIDEO */
video {
max-width: 100%;
height: auto;
object-fit: cover;
}

/* CONTACT ============================================================= */
form {
margin-bottom: 30px;
}
.form-group {
margin-bottom: 12px;
}
label {
display: block;
margin-bottom: 4px;
font-weight: bold;
color: var(--color-medium);
}

input[type="text"],
input[type="email"],
textarea {
appearance: none;
-webkit-appearance: none;
width: 100%;
padding: 10px;
background-color: var(--color-dark);
color: var(--color-light);
border: 1px dotted var(--color-medium);
border-radius: 4px;
font-family: monospace;
letter-spacing: 1px;
transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
input[type="text"]:focus,
input[type="email"]:focus,
textarea:focus,
input[type="text"]:focus-visible,
input[type="email"]:focus-visible,
textarea:focus-visible {
outline: none !important;
border-color: var(--color-highlight);
box-shadow: 0 0 8px var(--color-highlight);
}

button {
width: 100%;
padding: 12px;
background-color: var(--color-dark);
color: var(--color-light);
border: 1px dotted var(--color-medium);
border-radius: 4px;
cursor: pointer;
font-size: 16px;
}
button:hover {
background-color: var(--color-accent-1);
color: var(--color-light);
border-color: var(--color-highlight);
box-shadow: 0 0 8px var(--color-highlight);
}

.alert-success {
color: var(--bg);
background-color: var(--color-medium);
border: 1px solid var(--color-highlight);
padding: 15px;
margin-bottom: 20px;
border-radius: 4px;
}
.alert-danger {
color: #ffb3b3;
background-color: #4a0000;
border: 1px solid #ff4d4d;
padding: 15px;
margin-bottom: 20px;
border-radius: 4px;
}
/* SUCCESS*/
.line { color: #848484;
margin-bottom: 0.8rem;
font-size: 1.1rem;
letter-spacing: 1px;
opacity: 0;
animation: fadeIn 0.1s forwards;
}
.line:nth-child(1) { animation-delay: 0.3s; }
.line:nth-child(2) { animation-delay: 1.0s; }
.line:nth-child(3) { animation-delay: 1.5s; }
.line:nth-child(4) { animation-delay: 2.4s; }
.line:nth-child(5) { animation-delay: 2.8s; color: #ffffff; }
.line:nth-child(6) { animation-delay: 3.8s; }
.line:nth-child(8) { animation-delay: 4.5s; }
  
.cursor {
display: inline-block;
width: 4px;
height: 2rem;
background-color: #4af626;
animation: blink 1s step-end infinite;
vertical-align: middle;
margin-left: 8px;
}
.highlight {
color: #ffffff;
font-weight: 200;
}
a.return-link {
color: #4af626;
text-decoration: none;
border-bottom: 1px dashed #4af626;
transition: all 0.2s ease;
}
a.return-link:hover {
background-color: #4af626;
color: #0a0a0a;
}
@keyframes fadeIn {
to { opacity: 1; }
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}


.dot {
width: 0.75em;
height: 0.75em;
border-radius: 50%;
display: inline-block;transform: scale(1.1);
box-shadow:
0 0 6px white,
0 0 12px gray,
0 0 18px white,
0 0 24px gray;
opacity: 1;
}

.glow {
background-color: black;
animation: pulse-glow 8.0s infinite ease-in-out;
}
@keyframes pulse-glow {
0%, 100% {
transform: scale(1.0);
box-shadow:
0 0 2px #444,
0 0 6px #444,
0 0 10px #444;
opacity: 0.75;
}
50% {
transform: scale(1.1);
box-shadow:
0 0 6px white,
0 0 12px gray,
0 0 18px white,
0 0 24px gray;
opacity: 1;
}
}

                                  
/* ====== Glow-Blink ========================================================== */
.slow-blink {
  animation: blink 8s infinite ease-in-out;
}
@keyframes blink {
0%, 100% {
opacity: 1;
}
50% {
opacity: 0;
}
}



/* ACCORDION */
.accordion {
width: 100%;
max-width: 100%;
margin: 0 auto;
font-family: var(--font-typewriter);
display: flex;
flex-direction: column;
gap: 16px; padding-bottom: 24px; 
}
.accordion-item {
border-radius: var(--radius);
overflow: hidden;
}
.accordion-item:last-child {
}

.accordion-toggle {
position: absolute;
opacity: 0;
width: 1px;
height: 1px;
pointer-events: none;
}

.accordion-overflow {
overflow: hidden;
min-height: 0;
}

.accordion-inner {
padding: var(--card-pad);
}
.accordion-header {
display: flex;
align-items: center;
gap: var(--gap-1);
padding: var(--card-pad);
background-color: rgba(24, 24, 24, 0.36);
background-image: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(255, 255, 255, 0.03) 2px, rgba(255, 255, 255, 0.03) 4px);
cursor: zoom-in;
font-weight: normal;
color: var(--color-light);
border: 1px dotted var(--color-medium);
border-bottom: 1px dotted gray;
transition: color 0.3s ease;
}
.accordion-header::before {
content: "+";
font-family: var(--font-mono);
color: var(--color-medium);
width: 1ch;
text-align: center;
transition: color 0.3s ease;
}
.accordion-header:hover {
color: rgba(255, 255, 255, 0.24);
}
.accordion-header:hover::before {
color: rgba(255, 255, 255, 0.24);
}

.accordion-content {
display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows 420ms cubic-bezier(.4,0,.2,1);
background: var(--bg);
border-left: 1px dotted var(--color-medium);
border-right: 1px dotted var(--color-medium);
border-bottom: 1px dotted var(--color-medium);
border-radius: 0 0 var(--radius) var(--radius);
}
.accordion-overflow {
overflow: hidden;
}
.accordion-content p {
padding: var(--card-pad);
margin: 0;
color: var(--color-light);
font-size: var(--step--1);
}
.accordion-toggle:checked ~ .accordion-content {
grid-template-rows: 1fr;
}
.accordion-toggle:checked ~ .accordion-header {
cursor: zoom-out;
}
.accordion-toggle:checked ~ .accordion-header::before {
content: "-";
color: var(--color-light);
}
.accordion-footer-close {
display: flex;
justify-content: center;
align-items: center;
text-align: center;
width: 100%;
color: var(--color-medium);
font-size: var(--step-0);
cursor: zoom-out;
transition: color 0.2s ease-in-out;
}
.accordion-footer-close:hover {
color: var(--color-light);
}

@media (prefers-reduced-motion: reduce) {
.accordion-content {
transition: none;
}
}

/* ======= Ticker ==========================================================   */

.ticker-wrap {
width: 100%;
overflow: hidden;
background: transparent;
color: var(--color-light);
border: 1px dotted var(--bg);
padding: calc(var(--gap-1) * 0.9) 0;
margin-top: 24px;
-webkit-mask-image: linear-gradient(to right, transparent 0%, black 15%, black 85%, transparent 100%);
mask-image: linear-gradient(to right, transparent 0%, black 15%, black 85%, transparent 100%);
}
.ticker {
display: flex;
white-space: nowrap;
width: max-content;
animation: ticker-move 30s linear infinite;
}
.ticker-group {
display: flex;
flex-shrink: 0;
min-width: 100vw;
justify-content: space-around;
}
.ticker__item {
padding: 0 2rem;
font-family: var(--font-mono);
color: var(--color-light);
text-decoration: none;
cursor: pointer !important;
pointer-events: auto !important;
transition: color 0.3s;
display: inline-block;
}
.ticker__item::after {
content: none !important;
display: none !important;
}
.ticker__item:hover {
color: var(--color-medium);
}
.ticker-wrap:hover .ticker {
animation-play-state: paused;
}
@keyframes ticker-move {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-50%);
}
}


                                 
/* ========================================================================== */
.showcase-section{
width:100%;
max-width:1200px;
margin:0 auto;
display:flex;
flex-direction:column;
gap:var(--display-gap, 20px);
}
.manual-carousels-container{
display:grid;
grid-template-columns:1fr 1fr;
gap:var(--display-gap, 20px);
width:100%;
}
.manual-carousel-unit{
display:flex;
flex-direction:column;
width:100%;

border:1px solid rgba(255, 255, 255, 0.15);
border-radius:8px;
background:var(--color-light);
overflow:hidden;
padding:16px;
box-sizing:border-box;
}
.manual-carousel{
position:relative;
width:100%;
aspect-ratio:1/1;
overflow:hidden;
background:#000;
border-radius:4px;
}
.carousel-track{
position:relative;
width:100%;
height:100%;
}
.carousel-track img{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
object-fit:cover;
opacity:0;
transition:opacity 0.2s ease-in-out;
display:block;
}
.carousel-track img.active{
opacity:1;
}

.carousel-controls{
display:flex;
align-items:center;
justify-content:space-between;
margin-top:14px;
border:1px dashed var(--color-dark);
border-radius:4px;
background:rgba(255, 255, 255, 0.03);
overflow:hidden;
}
.ctrl-btn{
background:transparent;
color:var(--color-dark);
border:none;
padding:12px;
cursor:pointer;
font-size:var(--step-2);
transition:background 0.2s, color 0.2s;
}
.ctrl-btn:hover{
background:var(--color-light);
color:var(--color-dark);
}
.ctrl-label{
color:var(--color-dark);
font-family:var(--font-typewriter);
font-size: var(--step-1);
letter-spacing:0.1em;
font-weight:400;
text-transform:uppercase;
}

.fast-loop-container{
display:flex;
justify-content:center;
width:100%;
margin-top:10px;
}
.square-loop-box{
width:100%;
max-width:450px;
aspect-ratio:1/1;
position:relative;
overflow:hidden;
border:2px dotted var(--color-light);
border-radius:4px;
background:#000;
}
#fast-active-frame{
width:100%;
height:100%;
object-fit:cover;
display:block;
}
@media (max-width: 768px){
.manual-carousels-container{
grid-template-columns:1fr;
}
}

/* ========================================================================== */
/* MAGNIFIER EFFECT                                                           */
/* ========================================================================== */
.magnifier-container{
position:relative;
display:inline-block;
cursor:none !important;
}
.magnifier-lens{
position:absolute;
border:2px dotted var(--color-light);
border-radius:50%;
width:150px;
height:150px;
pointer-events:none;
opacity:0;
transition:opacity 0.2s ease;
background-repeat:no-repeat;
z-index:10;
}
.magnifier-container:hover .magnifier-lens,
.magnifier-container:active .magnifier-lens{
opacity:1;
}
#artwork{
width:100%;
max-width:800px;
height:auto;
display:block;
}
/* ========================================================================== */
/* SLIDER SIGNAL COMPARE CARD                                                 */
/* ========================================================================== */
.signal-compare{
position:relative;
width:100%;
aspect-ratio:1/1;
overflow:hidden;
cursor:ew-resize;
background:var(--color-dark);
--percent:50%;
--handle-size:24px;
touch-action:pan-y;
user-select:none;
-webkit-user-select:none;
}
.compare-img{
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:contain;
background:var(--bg);
user-select:none;
pointer-events:none;
}
.compare-img.after{
clip-path:inset(0 calc(100% - var(--percent)) 0 0);
}
.divider{
position:absolute;
top:0;
left:var(--percent);
width:40px;
height:100%;
transform:translateX(-50%);
z-index:5;
}
.divider::before{
content:"";
position:absolute;
top:0;
left:50%;
transform:translateX(-50%);
width:2px;
height:100%;
background:var(--color-light);
}
.handle{
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
width:var(--handle-size);
height:var(--handle-size);
border-radius:50%;
background:var(--color-light);
box-shadow:none;
pointer-events:none;
z-index:8;
transition:transform .18s ease;
}
.divider:hover .handle{
transform:translate(-50%,-50%) scale(1.08);
}