
/* 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;
}


/* 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-1);
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;
}
}

#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;
}

.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%);
}
}

.slow-blink {
  animation: blink 4s infinite ease-in-out;
}

@keyframes blink {
0%, 100% {
opacity: 1;
}

50% {
opacity: 0;
}
}


/* ========================================================================== */
/* SHOWCASE LAYOUT WITH UNDER-CONTROLS                                        */
/* ========================================================================== */
.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%;
/* Matches the thick card styling from Doron's site layout */
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;
}
/* Controls Row Style */
.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;
}
/* ========================================================================== */
/* SIGNAL SANDBOX                                                             */
/* ========================================================================== */
#signal-sandbox{
background-color:var(--color-accent-dark);
color:var(--color-light);
font-family:var(--font-mono);
padding:24px;
max-width:448px;
box-sizing:border-box;
}
#signal-canvas{
background-color:var(--bg);
display:block;
width:100%;
height:auto;
margin-bottom:24px;
border:1px solid var(--color-dark);
}
.controls label{
display:block;
text-transform:uppercase;
font-size:11px;
letter-spacing:0.05em;
margin-bottom:8px;
}
.controls input[type=range]{
width:100%;
margin-bottom:20px;
accent-color:var(--color-highlight);
}
/* ========================================================================== */
/* SIGNAL COMPARE CARD                                                        */
/* ========================================================================== */
.signal-compare{
position:relative;
width:100%;
aspect-ratio:4/5;
overflow:hidden;
cursor:ew-resize;
background:var(--color-dark);
--percent:50%;
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:2px;
height:100%;
background:var(--color-light);
transform:translateX(-50%);
pointer-events:none;
z-index:5;
}
.handle{
position:absolute;
top:50%;
left:var(--percent);
transform:translate(-50%,-50%);
width:24px;
height:24px;
border-radius:50%;
background:var(--color-light);
box-shadow:none;
pointer-events:none;
z-index:6;
transition:transform .18s ease;
}
.signal-compare:hover .handle{
transform:translate(-50%,-50%) scale(1.08);
}