/* ============================================================
 ACTiQLand — style.css
 Style profile: mr-robot-terminal (TERMINAL / STATUS MONITOR / OS)
 Single accent system: --phosphor (#8FC8E0), rare secondary #465BE7
 ============================================================ */

/* ---------- 1. RESET ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
 font-size: 100%;
 background: var(--bg);
 -webkit-text-size-adjust: 100%;
 scroll-behavior: smooth;
}

body {
 overflow-x: clip;
 min-height: 100vh;
 display: flex;
 flex-direction: column;
 font-family: var(--font-body);
 font-size: 1rem;
 line-height: 1.65;
 color: var(--text);
 background: transparent;
 -webkit-font-smoothing: antialiased;
}

main { flex: 1; position: relative; z-index: 1; }

img, svg { max-width: 100%; }
ul { list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }

/* ---------- 2. TOKENS ---------- */
:root {
 --font-display: 'VT323', 'IBM Plex Mono', 'Courier New', monospace;
 --font-body: 'IBM Plex Mono', 'Courier New', monospace;
 --header-h: 60px;
 --container: 1280px;
 --gutter: 24px;
 --step: 0ms;
 --radius: 0px;
 --shadow-hard: 4px 4px 0 rgba(143, 200, 224, 0.35);
}

[data-theme='dark'] {
 --bg: #0F072D;
 --bg-2: #150B3A;
 --text: #E6F4FF;
 --text-muted: rgba(230, 244, 255, 0.78);
 --accent: #8FC8E0;
 --accent-2: #465BE7;
 --border: #3A3585;
 --header-bg: #2A1F63;
 --panel-bg: rgba(15, 7, 45, 0.72);
 --phosphor: #8FC8E0;
 --scanline: rgba(143, 200, 224, 0.06);
 --overlay: rgba(15, 7, 45, 0.62);
 --btn-fg: #0F072D;
 --hamburger-filter: brightness(0) invert(1);
}

[data-theme='cozy-earth'] {
 --bg: #F6DEB8;
 --bg-2: #EDC49B;
 --text: #2B1A2E;
 --text-muted: rgba(43, 26, 46, 0.82);
 --accent: #1D2E8C;
 --accent-2: #7A4A5C;
 --border: #B98C86;
 --header-bg: #D5AE85;
 --panel-bg: rgba(255, 250, 240, 0.62);
 --phosphor: #1D2E8C;
 --scanline: rgba(29, 46, 140, 0.05);
 --overlay: rgba(246, 222, 184, 0.55);
 --btn-fg: #F6DEB8;
 --hamburger-filter: brightness(0);
}

/* @property phosphor — animated colour channel (fallback: plain custom property) */
@property --phosphor {
 syntax: '<color>';
 inherits: true;
 initial-value: #8FC8E0;
}
@property --glitch-offset {
 syntax: '<length>';
 inherits: false;
 initial-value: 0px;
}
@property --glitch-alpha {
 syntax: '<number>';
 inherits: false;
 initial-value: 1;
}

/* ---------- 3. TYPOGRAPHY ---------- */
h1, h2, h3, h4 {
 font-family: var(--font-display);
 font-weight: 400;
 text-transform: uppercase;
 letter-spacing: 0.04em;
 line-height: 1.02;
 overflow-wrap: break-word;
 max-width: 100%;
 text-shadow: 0 0 1px currentColor;
}

h1 { font-size: clamp(3rem, 11vw, 7rem); letter-spacing: 0.02em; }
h2 { font-size: clamp(2rem, 5.2vw, 3.4rem); }
h3 { font-size: clamp(1.35rem, 2.6vw, 1.9rem); }

p { max-width: 72ch; }

.section-title { text-align: center; margin: 0 auto 1rem; }
.section-intro {
 text-align: center;
 margin: 0 auto 3rem;
 max-width: 68ch;
 color: var(--text-muted);
 font-size: 1rem;
}
.section-prompt {
 font-family: var(--font-display);
 font-size: 1.15rem;
 letter-spacing: 0.06em;
 color: var(--accent);
 text-align: center;
 margin: 0 auto 0.5rem;
 max-width: 100%;
}

.visually-hidden {
 position: absolute; width: 1px; height: 1px; overflow: hidden;
 clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

.skip-link {
 position: absolute; left: -9999px; top: 0; z-index: 2000;
 background: var(--accent); color: var(--btn-fg);
 padding: 0.6rem 1rem; font-family: var(--font-display);
}
.skip-link:focus { left: 8px; top: 8px; }

/* ---------- 4. FOCUS ---------- */
:focus-visible {
 outline: 2px solid var(--accent);
 outline-offset: 3px;
}

/* ---------- 5. HEADER ---------- */
#siteHeader {
 position: fixed;
 top: 0; left: 0; width: 100%;
 z-index: 100;
 height: var(--header-h);
 background: var(--header-bg);
 backdrop-filter: blur(14px) saturate(160%);
 -webkit-backdrop-filter: blur(14px) saturate(160%);
 border: none;
 box-shadow: none;
 overflow: visible;
 contain: none;
 will-change: transform;
 transform: translateZ(0);
 backface-visibility: hidden;
}

.header-inner {
 display: flex;
 align-items: center;
 justify-content: space-between;
 padding: 0 20px;
 height: 100%;
 max-width: none;
 overflow: visible;
 contain: none;
}

.logo-container {
 display: inline-flex;
 align-items: center;
 color: var(--text);
 flex-shrink: 0;
}
.logo-container svg {
 display: block;
 width: auto;
 height: clamp(28px, 5vw, 50px);
 max-width: min(200px, 45vw);
 max-height: calc(var(--header-h, 56px) - 8px);
}
.logo-container img {
 width: auto; height: auto;
 max-width: min(200px, 45vw);
 max-height: calc(var(--header-h, 56px) - 8px);
 object-fit: contain;
}
.logo-text {
 font-family: var(--font-display);
 font-size: 1.7rem;
 letter-spacing: 0.04em;
 color: var(--text);
}

#mainNav { display: flex; }
#mainNav ul { display: flex; align-items: center; gap: 1.6rem; }
#mainNav a {
 font-family: var(--font-display);
 font-size: 1.25rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: var(--text);
 opacity: 0.8;
 padding: 0.35rem 0.2rem;
 border-bottom: 2px solid transparent;
 transition: opacity var(--step), border-color var(--step);
}
#mainNav a:hover,
#mainNav a:focus-visible,
#mainNav a[aria-current='page'] {
 opacity: 1;
 border-bottom-color: var(--accent);
}

.header-actions {
 display: flex;
 flex-wrap: nowrap;
 align-items: center;
 justify-content: flex-end;
 gap: 0.5rem;
 height: 100%;
 overflow: visible;
 contain: none;
}

#hamburgerBtn, #themeToggle, #langSelect, .header-actions button, .header-actions a {
 background: transparent;
 border: none;
 box-shadow: none;
 padding: 0;
 outline: none;
}

#themeToggle, #hamburgerBtn {
 width: 36px; height: 36px; min-width: 36px;
 display: inline-flex; align-items: center; justify-content: center;
 color: var(--text);
 cursor: pointer;
 transition: color var(--step);
}
#themeToggle:hover, #hamburgerBtn:hover { color: var(--accent); }

.theme-icon-sun, .theme-icon-moon { display: inline-block; }
[data-theme='dark'] #themeToggle .theme-icon-sun { display: none; }
[data-theme='cozy-earth'] #themeToggle .theme-icon-moon { display: none; }

.hamburger-icon { display: block; width: 24px; height: 24px; filter: var(--hamburger-filter); }

#hamburgerBtn { display: none; }

/* ---------- 6. DRAWER + SCRIM ---------- */
#navScrim {
 position: fixed; inset: 0; z-index: 150;
 background: rgba(0, 0, 0, 0.5);
 opacity: 0; pointer-events: none; visibility: hidden;
 transition: opacity 0.25s ease;
}
#navScrim.active { opacity: 1; pointer-events: auto; visibility: visible; }

#mobileDrawer {
 position: fixed;
 inset: 0;
 z-index: 160;
 background: var(--bg);
 display: flex;
 flex-direction: column;
 padding: 1rem 1.25rem 2rem;
 overflow-y: auto;
 opacity: 0; pointer-events: none; visibility: hidden;
 transform: translateY(-8px);
 transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
}
#mobileDrawer.active { opacity: 1; pointer-events: auto; visibility: visible; transform: translateY(0); }

.drawer-head {
 display: flex; align-items: center; justify-content: space-between;
 border-bottom: 1px solid var(--border);
 padding-bottom: 0.75rem;
}
.drawer-title {
 font-family: var(--font-display);
 font-size: 1.3rem;
 letter-spacing: 0.08em;
 color: var(--accent);
}
#navCloseBtn {
 appearance: none; -webkit-appearance: none;
 background: transparent; color: var(--text); border: 0;
 padding: 0.5rem; min-width: 44px; min-height: 44px;
 cursor: pointer;
 display: inline-flex; align-items: center; justify-content: center;
 transition: background var(--step), color var(--step);
}
#navCloseBtn:hover { background: color-mix(in srgb, var(--accent) 10%, transparent); color: var(--accent); }

.drawer-links { display: flex; flex-direction: column; gap: 0.25rem; margin-top: 1.5rem; }
.drawer-links a {
 font-family: var(--font-display);
 font-size: 2rem;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 color: var(--text);
 opacity: 1;
 transform: none;
 padding: 0.5rem 0;
 border-bottom: 1px solid var(--border);
 display: block;
}
.drawer-links a:hover, .drawer-links a:focus-visible { color: var(--accent); }
.drawer-foot {
 margin-top: auto; padding-top: 1.5rem;
 font-family: var(--font-display);
 color: var(--accent);
 letter-spacing: 0.06em;
}

/* ---------- 7. LAYOUT ---------- */
.container {
 width: 100%;
 max-width: var(--container);
 margin: 0 auto;
 padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
 padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
}

.section {
 padding-top: 56px;
 padding-bottom: 56px;
 padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
 padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
 position: relative;
}
.section> .container { padding-left: 0; padding-right: 0; }

/* ---------- 8. BUTTONS ---------- */
.btn {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 0.5rem;
 font-family: var(--font-display);
 font-size: 1.15rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 padding: 0.7rem 1.4rem;
 border: 2px solid var(--accent);
 border-radius: var(--radius);
 background: transparent;
 color: var(--accent);
 cursor: pointer;
 transition: background var(--step), color var(--step), box-shadow var(--step), transform var(--step);
}
.btn:hover, .btn:focus-visible {
 background: var(--accent);
 color: var(--btn-fg);
 box-shadow: var(--shadow-hard);
 transform: translate(-2px, -2px);
}
.btn-primary { background: var(--accent); color: var(--btn-fg); }
.btn-primary:hover, .btn-primary:focus-visible { background: transparent; color: var(--accent); }
.btn-ghost { border-color: var(--text); color: var(--text); }
.btn-ghost:hover, .btn-ghost:focus-visible { background: var(--text); color: var(--bg); }
.btn-tile { font-size: 1rem; padding: 0.5rem 1rem; }

.center-cta { text-align: center; margin-top: 2.5rem; }

/* ---------- 9. HERO ---------- */
.hero {
 position: relative;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 text-align: center;
 min-height: 100svh;
 padding-top: calc(var(--header-h, 56px) + 2rem);
 padding-bottom: 3rem;
 padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
 padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
 overflow: clip;
}

.hero-media {
 position: absolute;
 inset: 0;
 z-index: 0;
 overflow: clip;
}
.hero-img-wrapper {
 width: 100%;
 height: 100%;
 padding: 0;
 display: block;
}
.hero-img-wrapper img {
 display: block;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center 40%;
 will-change: transform;
}
[data-theme='dark'] .hero-img-wrapper img { filter: brightness(0.5) saturate(0.7); }
[data-theme='cozy-earth'] .hero-img-wrapper img { filter: brightness(0.85) sepia(0.18); }

.hero-overlay {
 position: absolute; inset: 0; z-index: 0;
 background: linear-gradient(180deg, rgba(15, 7, 45, 0.72) 0%, rgba(15, 7, 45, 0.42) 45%, rgba(15, 7, 45, 0.86) 100%);
}
[data-theme='cozy-earth'] .hero-overlay {
 background: linear-gradient(180deg, rgba(246, 222, 184, 0.72) 0%, rgba(246, 222, 184, 0.45) 45%, rgba(246, 222, 184, 0.88) 100%);
}

.hero-scan {
 position: absolute; inset: 0; z-index: 0;
 pointer-events: none;
 background: repeating-linear-gradient(0deg, var(--scanline) 0 1px, transparent 1px 3px);
}

.hero-content {
 position: relative;
 z-index: 2;
 max-width: 720px;
 margin: 0 auto;
 display: flex;
 flex-direction: column;
 align-items: center;
 gap: 1rem;
}
.hero-content> * { max-width: 100%; }

.prompt-line {
 font-family: var(--font-display);
 font-size: 1.2rem;
 letter-spacing: 0.08em;
 color: var(--accent);
 text-align: center;
}
.hero-sub {
 font-family: var(--font-display);
 font-size: clamp(1.3rem, 3.4vw, 2rem);
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: var(--text);
 text-align: center;
}
.hero-ctas {
 display: flex;
 flex-wrap: wrap;
 gap: 0.9rem;
 justify-content: center;
 margin-top: 0.75rem;
}
.hero-status {
 font-size: 0.85rem;
 letter-spacing: 0.06em;
 color: var(--text-muted);
 text-align: center;
}
.hero-status .ok { color: var(--accent); }

/* typed cursor */
.typed::after {
 content: '_';
 display: inline-block;
 margin-left: 0.06em;
 color: var(--accent);
 animation: blink 1s steps(1, end) infinite;
}
.typed.is-done::after { animation: blink 1s steps(1, end) infinite; }
@keyframes blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }

/* glitch */
.glitch { position: relative; }
.glitch.is-glitching {
 animation: glitchShift 0.42s steps(2, end) 1;
}
@keyframes glitchShift {
 0% { --glitch-offset: 0px; --glitch-alpha: 1; transform: translateX(0); text-shadow: 0 0 1px currentColor; }
 20% { --glitch-offset: -4px; --glitch-alpha: 0.55; transform: translateX(-3px); text-shadow: 3px 0 0 var(--accent-2), -3px 0 0 var(--accent); }
 40% { --glitch-offset: 3px; --glitch-alpha: 1; transform: translateX(2px); text-shadow: -3px 0 0 var(--accent-2), 3px 0 0 var(--accent); }
 60% { --glitch-offset: -2px; --glitch-alpha: 0.7; transform: translateX(-1px); text-shadow: 2px 0 0 var(--accent); }
 100% { --glitch-offset: 0px; --glitch-alpha: 1; transform: translateX(0); text-shadow: 0 0 1px currentColor; }
}

/* ---------- 10. MARQUEE ---------- */
.marquee-band {
 border-top: 4px solid var(--accent);
 border-bottom: 4px solid var(--accent);
 background: var(--bg-2);
 overflow: clip;
 padding: 0.6rem 0;
}
.marquee { display: flex; width: 100%; overflow: clip; }
.marquee-track {
 display: flex;
 align-items: center;
 gap: 1.5rem;
 padding-right: 1.5rem;
 flex-shrink: 0;
 min-width: 100%;
 animation: marqueeScroll 26s linear infinite;
}
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-item {
 font-family: var(--font-display);
 font-size: clamp(1.6rem, 4vw, 2.6rem);
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: var(--text);
 white-space: nowrap;
}
.marquee-sep { color: var(--accent); font-family: var(--font-display); font-size: clamp(1.6rem, 4vw, 2.6rem); }
@keyframes marqueeScroll {
 from { transform: translateX(0); }
 to { transform: translateX(-100%); }
}

/* ---------- 11. WORLD GALLERY ---------- */
.world-grid {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
 gap: 1.25rem;
 align-items: start;
}
.world-tile {
 border: 1px solid var(--border);
 background: var(--panel-bg);
 display: flex;
 flex-direction: column;
 min-width: 0;
 transition: transform 0.12s steps(4, end), border-color var(--step), box-shadow var(--step);
}
.world-tile:hover, .world-tile:focus-within {
 transform: scale(1.02);
 border-color: var(--accent);
 box-shadow: var(--shadow-hard);
}
.world-art {
 border-bottom: 1px solid var(--border);
 background: linear-gradient(160deg, rgba(70, 91, 231, 0.16), transparent 70%);
 color: var(--text);
 padding: 0.5rem;
}
.world-art svg { display: block; width: 100%; height: auto; }
.world-body {
 padding: 1rem 1.1rem 1.25rem;
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
 align-items: flex-start;
}
.world-caption {
 font-size: 0.82rem;
 letter-spacing: 0.04em;
 color: var(--text-muted);
 max-width: 100%;
 overflow-wrap: break-word;
}
@media (min-width: 768px) {
 .world-tile--tall { grid-row: span 2; }
}

/* ---------- 12. ACT CARDS ---------- */
.act-grid {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
 gap: 1.25rem;
}
.act-card {
 border: 1px solid var(--border);
 background: var(--panel-bg);
 padding: 1rem 1.1rem 1.2rem;
 display: flex;
 flex-direction: column;
 gap: 0.6rem;
 min-width: 0;
 transition: background var(--step), color var(--step), border-color var(--step);
}
.act-card:hover {
 background: var(--accent);
 color: var(--btn-fg);
 border-color: var(--accent);
}
.act-card:hover .act-ascii,
.act-card:hover .act-meta { color: var(--btn-fg); }
.act-ascii {
 font-family: var(--font-body);
 font-size: 0.68rem;
 line-height: 1.15;
 white-space: pre;
 color: var(--accent);
 overflow-x: auto;
 letter-spacing: 0;
}
.act-name {
 font-family: var(--font-display);
 font-size: 1.6rem;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 overflow-wrap: break-word;
}
.act-meta {
 font-size: 0.82rem;
 letter-spacing: 0.05em;
 color: var(--text-muted);
 text-transform: uppercase;
}
.act-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.tag {
 font-size: 0.72rem;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 border: 1px solid currentColor;
 border-radius: 2px;
 padding: 0.1rem 0.45rem;
}

/* ---------- 13. WINDOW PANELS ---------- */
.panel-grid {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
 gap: 1.25rem;
}
.win-panel {
 display: flex;
 flex-direction: column;
 border: 1px solid var(--border);
 background: var(--panel-bg);
 min-width: 0;
 transition: border-color var(--step), box-shadow var(--step), transform 0.12s steps(4, end);
}
.win-panel:hover, .win-panel:focus-visible {
 border-color: var(--accent);
 box-shadow: var(--shadow-hard);
 transform: translate(-2px, -2px);
}
.win-bar {
 display: flex;
 align-items: center;
 gap: 0.35rem;
 padding: 0.45rem 0.6rem;
 border-bottom: 1px solid var(--border);
 background: rgba(70, 91, 231, 0.14);
 transition: background var(--step);
}
.win-panel:hover .win-bar { background: var(--accent); }
.win-dot { width: 9px; height: 9px; border: 1px solid var(--accent); display: inline-block; }
.win-dot:nth-child(2) { border-color: var(--accent-2); }
.win-name {
 margin-left: auto;
 font-size: 0.72rem;
 letter-spacing: 0.08em;
 color: var(--text-muted);
}
.win-panel:hover .win-name { color: var(--btn-fg); }
.win-body {
 padding: 1.1rem;
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
 align-items: flex-start;
}
.win-icon { color: var(--text); display: block; }
.win-label {
 font-family: var(--font-display);
 font-size: 1.5rem;
 letter-spacing: 0.05em;
 color: var(--accent);
}
.win-desc { font-size: 0.85rem; color: var(--text-muted); }
.win-status { font-size: 0.78rem; letter-spacing: 0.06em; color: var(--text-muted); }

/* ---------- 14. CTA BAND ---------- */
.cta-band { background: var(--bg-2); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.ascii-divider {
 font-family: var(--font-body);
 font-size: 0.8rem;
 line-height: 1.2;
 color: var(--accent);
 text-align: center;
 overflow-x: auto;
 margin: 0 auto 2rem;
 max-width: 100%;
}
.cta-split {
 display: flex;
 flex-wrap: wrap;
 gap: 2rem;
 align-items: flex-start;
 justify-content: space-between;
}
.cta-copy { flex: 1 1 320px; min-width: 0; }
.cta-copy .section-title { text-align: left; margin-left: 0; }
.cta-form { flex: 1 1 320px; min-width: 0; display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: flex-start; }
.cta-form input {
 flex: 1 1 220px;
 min-width: 0;
 font-family: var(--font-body);
 font-size: 1rem;
 padding: 0.7rem 0.9rem;
 background: transparent;
 color: var(--text);
 border: 2px solid var(--border);
 border-radius: var(--radius);
}
.cta-form input::placeholder { color: var(--text-muted); }
.cta-form input:focus-visible { border-color: var(--accent); }
.form-output {
 flex: 1 1 100%;
 font-family: var(--font-display);
 font-size: 1.1rem;
 letter-spacing: 0.05em;
 color: var(--accent);
 min-height: 1.4em;
 max-width: 100%;
}

/* ---------- 15. PAGE HEADER PANEL ---------- */
.page-head {
 padding-top: calc(var(--header-h, 56px) + 2rem);
 padding-bottom: 56px;
 padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
 padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
}
.page-head-panel {
 border: 1px solid var(--border);
 background: var(--panel-bg);
 padding: 2rem 1.5rem;
 position: relative;
 overflow: clip;
}
.page-head-panel::after {
 content: '';
 position: absolute; inset: 0;
 pointer-events: none;
 background: repeating-linear-gradient(0deg, var(--scanline) 0 1px, transparent 1px 3px);
}
.page-head-panel> * { position: relative; z-index: 1; }
.page-head h1 { font-size: clamp(2.4rem, 8vw, 5rem); }
.page-head .section-intro { text-align: left; margin-left: 0; }

/* split hero (lineup / info) */
.hero-split {
 display: flex;
 flex-wrap: wrap;
 gap: 2rem;
 align-items: center;
 padding-top: calc(var(--header-h, 56px) + 2rem);
 padding-bottom: 56px;
 padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
 padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
 position: relative;
}
.hero-split-text { flex: 1 1 340px; min-width: 0; }
.hero-split-text h1 { font-size: clamp(2.6rem, 8vw, 5.5rem); }
.hero-split-text .section-intro { text-align: left; margin-left: 0; margin-bottom: 1.5rem; }
.hero-split-media { flex: 1 1 340px; min-width: 0; }
.hero-split-media .img-wrapper {
 border: 1px solid var(--border);
 padding: 0.5rem;
 background: var(--panel-bg);
 position: relative;
}
.hero-split-media .img-wrapper::after {
 content: '';
 position: absolute; inset: 0.5rem;
 pointer-events: none;
 background: repeating-linear-gradient(0deg, var(--scanline) 0 1px, transparent 1px 3px);
}
/* Colour overlay: tints office photos into the ACTiQLAND palette */
.hero-split-media .img-wrapper::before {
 content: '';
 position: absolute; inset: 0.5rem;
 pointer-events: none;
 background: linear-gradient(135deg, #465BE7 0%, #8FC8E0 100%);
 mix-blend-mode: color;
 opacity: 0.45;
 z-index: 1;
}
.hero-split-media img {
 display: block;
 width: 100%;
 height: auto;
 object-fit: contain;
}

/* ---------- 16. IMG WRAPPER (global) ---------- */
.img-wrapper {
 padding: max(0.5rem, env(safe-area-inset-left, 0px));
 max-width: 100%;
}
.img-wrapper img {
 display: block;
 width: 100%;
 height: auto;
 object-fit: contain;
}

/* ---------- 17. FILTER BAR ---------- */
.filter-bar {
 display: flex;
 flex-wrap: wrap;
 gap: 0.6rem;
 align-items: center;
 margin-bottom: 2rem;
}
.filter-label {
 font-family: var(--font-display);
 font-size: 1.2rem;
 letter-spacing: 0.06em;
 color: var(--accent);
 margin-right: 0.4rem;
}
.filter-btn {
 font-family: var(--font-display);
 font-size: 1.05rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 padding: 0.45rem 0.9rem;
 border: 2px solid var(--border);
 background: transparent;
 color: var(--text);
 cursor: pointer;
 border-radius: var(--radius);
 transition: background var(--step), color var(--step), border-color var(--step);
}
.filter-btn:hover { border-color: var(--accent); color: var(--accent); }
.filter-btn[aria-pressed='true'] {
 background: var(--accent);
 border-color: var(--accent);
 color: var(--btn-fg);
}
.filter-empty {
 font-family: var(--font-display);
 font-size: 1.2rem;
 color: var(--accent);
 padding: 1rem 0;
}

/* ---------- 18. STATUS CARDS ---------- */
.status-grid {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
 gap: 1.25rem;
}
.status-card {
 border: 1px solid var(--border);
 background: var(--panel-bg);
 padding: 1rem 1.1rem 1.2rem;
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
 min-width: 0;
}
.status-row { display: flex; align-items: center; gap: 0.5rem; }
.status-dot { width: 10px; height: 10px; display: inline-block; background: var(--accent); flex-shrink: 0; }
.status-dot--warn { background: var(--accent-2); }
.status-dot--idle { background: transparent; border: 1px solid var(--accent); }
.status-label {
 font-family: var(--font-display);
 font-size: 1.3rem;
 letter-spacing: 0.05em;
 text-transform: uppercase;
 overflow-wrap: break-word;
}
.status-value { font-size: 0.9rem; color: var(--text-muted); }
.status-link { font-size: 0.82rem; letter-spacing: 0.06em; color: var(--accent); text-transform: uppercase; }
.status-link:hover { text-decoration: underline; }

/* ---------- 19. DAY TABS ---------- */
.day-tabs {
 display: flex;
 flex-wrap: wrap;
 gap: 0.5rem;
 margin-bottom: 1.75rem;
}
.day-tab {
 flex: 1 1 120px;
 font-family: var(--font-display);
 font-size: 1.2rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 padding: 0.6rem 0.8rem;
 border: 2px solid var(--border);
 background: transparent;
 color: var(--text);
 cursor: pointer;
 border-radius: var(--radius);
 transition: background var(--step), color var(--step), border-color var(--step);
}
.day-tab:hover { border-color: var(--accent); color: var(--accent); }
.day-tab[aria-selected='true'] { background: var(--accent); border-color: var(--accent); color: var(--btn-fg); }

/* ---------- 20. TIMETABLE ---------- */
.tt-scroll {
 overflow-x: auto;
 border: 1px solid var(--border);
 background: var(--panel-bg);
}
.tt-table {
 border-collapse: collapse;
 width: 100%;
 min-width: 720px;
 font-size: 0.88rem;
}
.tt-table th, .tt-table td {
 border: 1px solid var(--border);
 padding: 0.5rem 0.6rem;
 text-align: left;
 vertical-align: top;
 min-width: 0;
}
.tt-table thead th {
 font-family: var(--font-display);
 font-size: 1.05rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: var(--accent);
 background: rgba(70, 91, 231, 0.14);
 position: sticky;
 top: 0;
 z-index: 2;
}
.tt-time {
 font-family: var(--font-body);
 font-variant-numeric: tabular-nums;
 white-space: nowrap;
 color: var(--text-muted);
 position: sticky;
 left: 0;
 background: var(--bg-2);
 z-index: 1;
}
.tt-table tbody tr:hover td { background: rgba(143, 200, 224, 0.12); }
.tt-block {
 display: block;
 width: 100%;
 text-align: left;
 border: 0;
 background: transparent;
 color: inherit;
 cursor: pointer;
 font: inherit;
 padding: 0;
}
.tt-block:hover { color: var(--accent); }
.tt-block-name { font-family: var(--font-display); font-size: 1.05rem; letter-spacing: 0.03em; display: block; }
.tt-block-stage { font-size: 0.72rem; letter-spacing: 0.06em; color: var(--text-muted); text-transform: uppercase; }
.tt-empty { color: var(--text-muted); }

.tt-detail {
 margin-top: 1.25rem;
 border: 1px solid var(--accent);
 background: var(--panel-bg);
 padding: 1rem 1.1rem;
 font-family: var(--font-body);
 font-size: 0.9rem;
}
.tt-detail[hidden] { display: none; }
.tt-detail-title { font-family: var(--font-display); font-size: 1.3rem; color: var(--accent); letter-spacing: 0.05em; }

/* ---------- 21. WINDOWED PANEL (OS) ---------- */
.os-panel {
 border: 1px solid var(--border);
 background: var(--panel-bg);
 display: flex;
 flex-direction: column;
 min-width: 0;
}
.os-bar {
 display: flex; align-items: center; gap: 0.35rem;
 padding: 0.5rem 0.7rem;
 border-bottom: 1px solid var(--border);
 background: rgba(70, 91, 231, 0.14);
}
.os-title { margin-left: auto; font-size: 0.75rem; letter-spacing: 0.08em; color: var(--text-muted); }
.os-body {
 max-height: 340px;
 overflow-y: auto;
 padding: 0.5rem;
}
.area-row {
 display: flex;
 align-items: center;
 gap: 0.85rem;
 padding: 0.7rem 0.6rem;
 border-bottom: 1px solid var(--border);
 min-width: 0;
 transition: background var(--step), color var(--step);
}
.area-row:last-child { border-bottom: 0; }
.area-row:hover { background: rgba(143, 200, 224, 0.14); }
.area-row:hover .area-name { color: var(--accent); }
.area-marker { flex-shrink: 0; color: var(--text); display: block; }
.area-text { min-width: 0; }
.area-name {
 font-family: var(--font-display);
 font-size: 1.2rem;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 overflow-wrap: break-word;
}
.area-desc { font-size: 0.82rem; color: var(--text-muted); }

/* ---------- 22. CONTACT BAND ---------- */
.contact-split {
 display: flex;
 flex-wrap: wrap;
 gap: 2rem;
 align-items: flex-start;
 justify-content: space-between;
}
.contact-lines { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.contact-line { font-size: 0.95rem; color: var(--text-muted); }
.contact-line strong { color: var(--text); font-weight: 600; }
.contact-actions { flex: 0 1 auto; display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* ---------- 23. FAQ ACCORDION ---------- */
.faq-list { max-width: 900px; margin: 0 auto; display: flex; flex-direction: column; gap: 0.6rem; }
.faq-item { border: 1px solid var(--border); background: var(--panel-bg); min-width: 0; }
.faq-q {
 width: 100%;
 display: flex;
 align-items: flex-start;
 gap: 0.75rem;
 text-align: left;
 background: transparent;
 border: 0;
 color: var(--text);
 cursor: pointer;
 padding: 0.9rem 1rem;
 font-family: var(--font-display);
 font-size: 1.25rem;
 letter-spacing: 0.04em;
 text-transform: uppercase;
 transition: background var(--step), color var(--step);
}
.faq-q:hover { color: var(--accent); }
.faq-item.open .faq-q { color: var(--accent); background: rgba(143, 200, 224, 0.1); }
.faq-prefix { color: var(--accent); flex-shrink: 0; }
.faq-sign { margin-left: auto; flex-shrink: 0; color: var(--accent); }
.faq-a {
 padding: 0 1rem 1.1rem 2.4rem;
 font-size: 0.95rem;
 color: var(--text-muted);
 max-width: 100%;
}
.faq-a[hidden] { display: none; }

/* ---------- 24. FOOTER ---------- */
#siteFooter {
 background: var(--header-bg);
 position: relative;
 z-index: 1;
 will-change: transform;
 transform: translateZ(0);
 backface-visibility: hidden;
 padding-left: max(1.25rem, env(safe-area-inset-left, 0px));
 padding-right: max(1.25rem, env(safe-area-inset-right, 0px));
}
.footer-inner {
 display: flex;
 flex-wrap: wrap;
 gap: 2rem;
 max-width: var(--container);
 margin: 0 auto;
 padding: 2.5rem 0 1.5rem;
}
.footer-brand { flex: 1 1 240px; min-width: 0; }
.footer-wordmark {
 font-family: var(--font-display);
 font-size: 1.8rem;
 letter-spacing: 0.05em;
 color: var(--text);
 text-transform: uppercase;
}
.footer-tag { font-size: 0.85rem; color: var(--text-muted); letter-spacing: 0.06em; }
.footer-status { font-family: var(--font-display); font-size: 1rem; color: var(--accent); margin-top: 0.4rem; }
.footer-col { flex: 0 1 auto; min-width: 0; }
.footer-col-title {
 font-family: var(--font-display);
 font-size: 1.1rem;
 letter-spacing: 0.1em;
 color: var(--accent);
 margin-bottom: 0.5rem;
}
.footer-col ul { display: flex; flex-direction: column; gap: 0.3rem; }
.footer-col a { font-size: 0.9rem; color: var(--text); opacity: 0.85; }
.footer-col a:hover, .footer-col a:focus-visible { opacity: 1; color: var(--accent); }
.footer-base {
 max-width: var(--container);
 margin: 0 auto;
 border-top: 1px solid var(--border);
 padding: 1rem 0 1.5rem;
 display: flex;
 flex-wrap: wrap;
 gap: 0.5rem 1.5rem;
 justify-content: space-between;
 font-size: 0.8rem;
 color: var(--text-muted);
}
.footer-base a { color: var(--accent); }
.footer-base a:hover { text-decoration: underline; }

/* ---------- 25. LIGHTBOX ---------- */
.lightbox {
 position: fixed; inset: 0; z-index: 300;
 background: rgba(15, 7, 45, 0.9);
 display: flex; align-items: center; justify-content: center;
 padding: 1.25rem;
 opacity: 0; pointer-events: none; visibility: hidden;
 transition: opacity 0.2s ease, visibility 0.2s ease;
}
.lightbox.active { opacity: 1; pointer-events: auto; visibility: visible; }
.lightbox-inner {
 position: relative;
 background: var(--bg);
 border: 1px solid var(--accent);
 max-width: 720px;
 width: 100%;
 max-height: 90svh;
 overflow-y: auto;
 padding: 1.5rem;
}
.lightbox-close {
 position: absolute; top: 0.5rem; right: 0.5rem;
 appearance: none; -webkit-appearance: none;
 background: transparent; border: 0; color: var(--text);
 padding: 0.5rem; min-width: 44px; min-height: 44px;
 cursor: pointer;
 display: inline-flex; align-items: center; justify-content: center;
}
.lightbox-close:hover { color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, transparent); }
.lightbox-art { color: var(--text); }
.lightbox-art svg { display: block; width: 100%; height: auto; }
.lightbox-title { font-size: 2rem; margin-top: 1rem; }
.lightbox-caption { font-size: 0.85rem; color: var(--text-muted); }

/* ---------- 26. REVEAL ---------- */
.reveal { transition: opacity 0.35s steps(4, end), transform 0.35s steps(4, end); }
.reveal-hidden { opacity: 0; transform: translateY(14px); }
.reveal-in { opacity: 1; transform: none; }

/* ---------- 27. MOBILE ---------- */
@media (max-width: 767px) {
 #hamburgerBtn { display: inline-flex; }
 #mainNav { display: none; }
 .logo-container svg { max-width: min(120px, 30vw); }
 .logo-container img { max-width: min(120px, 30vw); }
 .section { padding-top: 56px; padding-bottom: 56px; }
 .cta-copy .section-title { text-align: left; }
 .footer-inner { gap: 1.5rem; }
 .footer-base { flex-direction: column; }
 .hero { min-height: auto; padding-top: calc(var(--header-h, 56px) + 2.5rem); padding-bottom: 3rem; }
 .hero-ctas { width: 100%; flex-direction: column; align-items: stretch; }
 .hero-ctas .btn { width: 100%; }
 .cta-form { flex-direction: column; align-items: stretch; }
 .cta-form .btn { width: 100%; }
 .contact-actions { width: 100%; }
 .contact-actions .btn { flex: 1 1 auto; }
}

@media (max-width: 640px) {
 h1 { font-size: clamp(1.9rem, 8vw, 2.6rem); letter-spacing: 0.02em; }
 h2 { font-size: clamp(1.6rem, 7vw, 2.2rem); letter-spacing: 0.02em; }
 .hero-sub { font-size: clamp(1.1rem, 5vw, 1.5rem); letter-spacing: 0.06em; }
 .page-head h1 { font-size: clamp(1.9rem, 8vw, 2.6rem); }
 .hero-split-text h1 { font-size: clamp(1.9rem, 8vw, 2.6rem); }
 .marquee-item, .marquee-sep { font-size: 1.5rem; }
}

@media (min-width: 768px) {
 .section { padding-top: 96px; padding-bottom: 96px; }
 .page-head { padding-bottom: 96px; }
 .hero-split { padding-bottom: 96px; }
}

/* ---------- 28. REDUCED MOTION ---------- */
@media (prefers-reduced-motion: reduce) {
 *, *::before, *::after {
 animation-duration: 0.001ms !important;
 animation-iteration-count: 1 !important;
 transition-duration: 0.001ms !important;
 scroll-behavior: auto !important;
 }
 .marquee-track { animation: none !important; }
 .typed::after { animation: none !important; opacity: 1; }
 .reveal-hidden { opacity: 1; transform: none; }
 .hero-img-wrapper img { transform: none !important; }
}

/* ---------- 29. FALLBACKS ---------- */
@supports not (backdrop-filter: blur(4px)) {
 #siteHeader { background: var(--header-bg); }
}
@supports not (overflow: clip) {
 body { overflow-x: hidden; }
 .hero, .marquee-band, .marquee { overflow: hidden; }
}
@supports not (color: color-mix(in srgb, red 10%, transparent)) {
 #navCloseBtn:hover, .lightbox-close:hover { background: rgba(143, 200, 224, 0.12); }
}
@supports not (height: 100svh) {
 .hero { min-height: 100vh; }
 .lightbox-inner { max-height: 90vh; }
}

#bgCanvas { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; transition: opacity 0.9s ease; }

/* Misty white light: semi-random bursts, kept faint so white text stays readable */
.bg-mist { position: fixed; inset: 0; pointer-events: none; z-index: 0; opacity: 0; transition: opacity 1.6s ease; }
.bg-mist.is-on { opacity: 1; }
.bg-mist::before {
 content: '';
 position: absolute; inset: 0;
 background: radial-gradient(ellipse var(--mist-w, 40%) var(--mist-h, 34%) at var(--mist-x, 50%) var(--mist-y, 40%), rgba(255, 255, 255, 0.13) 0%, rgba(255, 255, 255, 0.06) 55%, transparent 100%);
 animation: mistKick 0.4615s cubic-bezier(0.2, 0.6, 0.4, 1) infinite;
}
/* ~130 BPM four-on-the-floor: a sharp kick flash, then a quick decay back down */
@keyframes mistKick {
 0% { opacity: 0.3; transform: scale(1); }
 6% { opacity: 1; transform: scale(1.05); }
 22% { opacity: 0.45; transform: scale(1.01); }
 100% { opacity: 0.3; transform: scale(1); }
}
/* Home page: particles and mist only once the title screen has been scrolled past */
html.fx-hidden #bgCanvas, html.fx-hidden .bg-mist { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
 .bg-mist::before { animation: none; }
}
[data-theme='dark'] .hamburger-icon { filter: brightness(0) invert(1) !important; }

[data-theme='cozy-earth'] .hamburger-icon { filter: brightness(0) !important; }

/* ikuumba-header-theme */
[data-theme="cozy-earth"] { --header-bg: #d5ae85; }

[data-theme="cozy-earth"] #siteHeader {
  background: #d5ae85 !important;
  color: #111111 !important;
}
[data-theme="cozy-earth"] #siteHeader nav a,
[data-theme="cozy-earth"] #siteHeader .nav-list a,
[data-theme="cozy-earth"] #siteHeader .nav-link {
  color: rgba(17,17,17,0.82) !important;
}
[data-theme="cozy-earth"] #siteHeader nav a:hover,
[data-theme="cozy-earth"] #siteHeader nav a:focus-visible,
[data-theme="cozy-earth"] #siteHeader nav a.active {
  color: #111111 !important;
}
[data-theme="cozy-earth"] #siteHeader .logo-name,
[data-theme="cozy-earth"] #siteHeader .logo-sub,
[data-theme="cozy-earth"] #siteHeader .logo-text,
[data-theme="cozy-earth"] #siteHeader #langSelect,
[data-theme="cozy-earth"] #siteHeader .lang-current .lang-code,
[data-theme="cozy-earth"] #siteHeader .lang-current .lang-code-current {
  color: #111111 !important;
}
[data-theme="cozy-earth"] #siteHeader .hamburger-icon path,
[data-theme="cozy-earth"] #siteHeader .icon-btn svg *,
[data-theme="cozy-earth"] #siteHeader #themeToggle svg *,
[data-theme="cozy-earth"] #siteHeader .lang-chevron path {
  stroke: #111111 !important;
}

[data-theme="dark"] { --header-bg: #4a417a; }

[data-theme="dark"] #siteHeader {
  background: #4a417a !important;
  color: #ffffff !important;
}
[data-theme="dark"] #siteHeader nav a,
[data-theme="dark"] #siteHeader .nav-list a,
[data-theme="dark"] #siteHeader .nav-link {
  color: rgba(255,255,255,0.82) !important;
}
[data-theme="dark"] #siteHeader nav a:hover,
[data-theme="dark"] #siteHeader nav a:focus-visible,
[data-theme="dark"] #siteHeader nav a.active {
  color: #ffffff !important;
}
[data-theme="dark"] #siteHeader .logo-name,
[data-theme="dark"] #siteHeader .logo-sub,
[data-theme="dark"] #siteHeader .logo-text,
[data-theme="dark"] #siteHeader #langSelect,
[data-theme="dark"] #siteHeader .lang-current .lang-code,
[data-theme="dark"] #siteHeader .lang-current .lang-code-current {
  color: #ffffff !important;
}
[data-theme="dark"] #siteHeader .hamburger-icon path,
[data-theme="dark"] #siteHeader .icon-btn svg *,
[data-theme="dark"] #siteHeader #themeToggle svg *,
[data-theme="dark"] #siteHeader .lang-chevron path {
  stroke: #ffffff !important;
}

/* end-ikuumba-header-theme */

/* ikuumba-page-text */
html[data-theme="dark"] {
  --text: #ffffff !important;
  --muted: rgba(255,255,255,0.82) !important;
}

html[data-theme="cozy-earth"] {
  --text: #111111 !important;
  --muted: rgba(17,17,17,0.82) !important;
}

/* end-ikuumba-page-text */


/* ikuumba-logo-safety */
.logo-container svg,
.logo-container .logo-mark,
.logo-mark,
header svg.logo-mark {
  display: block;
  width: auto;
  height: clamp(28px, 5vw, 50px);
  max-width: min(200px, 45vw);
  max-height: calc(var(--header-h, 56px) - 8px);
}


/* ikuumba-header-cta-safety */
.header-actions > * { flex-shrink: 0; }
.header-actions > a,
.header-actions > .btn,
.header-actions > [class*='btn'] {
  flex-shrink: 1;
  min-width: 0;
  max-width: 40vw;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ikuumba-header-cta-label-contrast */
.header-actions .cta-label {
  color: inherit !important;
}
.header-actions a.btn,
.header-actions [class*='btn'] {
  color: var(--text, #ececff) !important;
}
.header-actions a.btn-primary,
.header-actions .btn-primary,
.header-actions [class*='btn-primary'] {
  color: var(--bg, #05060f) !important;
}

/* ikuumba-header-overflow-safety */
html, body {
  overflow-x: clip !important;
  max-width: 100vw !important;
  width: 100%;
}
#siteHeader { max-width: 100vw; }
.header-inner {
  min-width: 0;
  max-width: 100%;
}
.header-actions {
  min-width: 0;
  max-width: 100%;
}
.logo-container {
  min-width: 0;
  flex-shrink: 1;
}

/* ikuumba-header-cta-desktop */
@media (min-width: 768px) {
  .header-actions a.header-cta,
  .header-actions a.cta {
    width: auto;
    height: auto;
    min-width: 0;
    max-width: none;
    padding: 0 1.1rem;
    overflow: visible;
    text-overflow: clip;
  }
}


/* ikuumba-lang-align */
#langSelect,
.lang-wrap > button,
.lang-wrap button[id='langSelect'] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  height: var(--header-h, 56px);
  line-height: 1;
  vertical-align: middle;
}
#langSelect > *,
.lang-wrap button[id='langSelect'] > * {
  display: block;
  flex-shrink: 0;
  align-self: center;
}
.lang-wrap .lang-chevron,
#langSelect .lang-chevron {
  display: none !important;
}
.lang-wrap .lang-current,
#langSelect .lang-current {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  line-height: 1;
}


/* ikuumba-header-icon-align */
#themeToggle svg,
#themeToggle img,
#hamburgerBtn svg,
#hamburgerBtn img,
#hamburgerBtn .hamburger-icon,
.hamburger-icon {
  display: block;
  vertical-align: middle;
  flex-shrink: 0;
}
#themeToggle .theme-icon-sun,
#themeToggle .theme-icon-moon {
  display: block;
  vertical-align: middle;
}
/* Mirrors the theme-toggle convention documented in agents.py
   backstory — keep in sync. */
[data-theme='dark'] #themeToggle .theme-icon-sun,
[data-theme='cozy-earth'] #themeToggle .theme-icon-moon {
  display: none;
}
#themeToggle .theme-icon-sun > svg,
#themeToggle .theme-icon-moon > svg,
#themeToggle span > svg,
#themeToggle span > img,
#hamburgerBtn span > svg,
#hamburgerBtn span > img {
  display: block;
  vertical-align: middle;
}

/* Colour overlay for photos: tints a photo into the ACTiQLAND palette */
.tint-overlay { position: relative; }
.tint-overlay::before {
 content: '';
 position: absolute; inset: 0.5rem;
 pointer-events: none;
 background: linear-gradient(135deg, #465BE7 0%, #8FC8E0 100%);
 mix-blend-mode: color;
 opacity: 0.45;
 z-index: 1;
}
.tint-overlay img { display: block; width: 100%; height: auto; }

/* Camping rules list */
.camp-rules { max-width: 760px; margin: 1.5rem auto 0; padding-left: 0; list-style: none; counter-reset: rule; }
.camp-rules li { counter-increment: rule; position: relative; padding: 0.6rem 0 0.6rem 2.6rem; border-bottom: 1px solid var(--border); }
.camp-rules li::before { content: counter(rule, decimal-leading-zero); position: absolute; left: 0; top: 0.6rem; font-family: var(--font-mono, monospace); color: var(--accent); }
.camp-photo { margin: 2rem auto 0; max-width: 760px; }

/* Header call-to-action: solid high-contrast fill so "register your act" stands out */
#siteHeader .header-cta {
 background: #8FC8E0;
 color: #0F072D;
 border: 2px solid #8FC8E0;
 font-weight: 600;
 box-shadow: 0 0 0 3px rgba(143, 200, 224, 0.25);
}
#siteHeader .header-cta:hover, #siteHeader .header-cta:focus-visible {
 background: #465BE7;
 border-color: #465BE7;
 color: #FFFFFF;
}
