/* gamelicensor.info - Pixel-Art Pastoral Aurora Theme */

/* Custom Properties */
:root {
    --bg-deep: #0b0e1a;
    --bg-mid: #121a2e;
    --aurora-green: #7dffc2;
    --aurora-cyan: #4ecdc4;
    --aurora-pink: #ffb8d4;
    --aurora-violet: #c77dff;
    --parchment: #e8dfd4;
    --gold-ember: #f0c36d;
    --aurora-hue: 160;
    --aurora-saturation: 80%;
}

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

/* Base */
html {
    scroll-behavior: smooth;
}

body {
    background-color: var(--bg-deep);
    color: var(--parchment);
    font-family: 'Lora', Georgia, serif;
    font-size: 1.125rem;
    line-height: 1.8;
    overflow-x: hidden;
}

/* CRT Scanline Overlay */
#scanline-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 9999;
    background: repeating-linear-gradient(
        to bottom,
        transparent 0px,
        transparent 1px,
        rgba(0, 0, 0, 0.06) 1px,
        rgba(0, 0, 0, 0.06) 2px
    );
}

/* Column */
.column {
    max-width: 640px;
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
}

/* Regions */
.region {
    position: relative;
    padding: clamp(80px, 12vh, 160px) 0;
    overflow: hidden;
}

.region-aurora {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    opacity: 0.6;
    transition: opacity 0.3s ease-out;
}

/* Region-specific aurora gradients */
.region-foothills .region-aurora {
    background: radial-gradient(ellipse at 30% 20%, rgba(199, 125, 255, 0.08), rgba(78, 205, 196, 0.04), transparent 70%),
                radial-gradient(ellipse at 70% 60%, rgba(125, 255, 194, 0.06), transparent 60%);
}

.region-meadow .region-aurora {
    background: radial-gradient(ellipse at 50% 30%, rgba(125, 255, 194, 0.1), rgba(78, 205, 196, 0.06), transparent 70%),
                radial-gradient(ellipse at 20% 70%, rgba(78, 205, 196, 0.05), transparent 50%);
}

.region-river .region-aurora {
    background: radial-gradient(ellipse at 40% 40%, rgba(78, 205, 196, 0.08), rgba(199, 125, 255, 0.04), transparent 70%),
                radial-gradient(ellipse at 70% 20%, rgba(199, 125, 255, 0.06), transparent 50%);
}

.region-village .region-aurora {
    background: radial-gradient(ellipse at 60% 30%, rgba(240, 195, 109, 0.08), rgba(255, 184, 212, 0.06), transparent 70%),
                radial-gradient(ellipse at 30% 60%, rgba(255, 184, 212, 0.05), transparent 50%);
}

.region-horizon .region-aurora {
    background: radial-gradient(ellipse at 50% 50%, rgba(11, 14, 26, 0.5), transparent 80%),
                radial-gradient(ellipse at 80% 20%, rgba(199, 125, 255, 0.04), transparent 50%);
}

/* Region Labels */
.region-label {
    display: block;
    font-family: 'Press Start 2P', monospace;
    font-size: 0.625rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--aurora-pink);
    margin-bottom: 1.5rem;
    -webkit-font-smoothing: none;
    -moz-osx-font-smoothing: unset;
    image-rendering: pixelated;
}

/* Typography */
h1, h2 {
    font-family: 'Libre Baskerville', 'Georgia', serif;
    font-weight: 700;
    letter-spacing: -0.015em;
    margin-bottom: 1.5rem;
    position: relative;
}

h1 {
    font-size: clamp(2.2rem, 5vw, 4rem);
    color: var(--parchment);
    text-shadow: 0 0 30px rgba(125, 255, 194, 0.15), 0 0 60px rgba(78, 205, 196, 0.08);
}

h2 {
    font-size: clamp(1.6rem, 3.5vw, 2.8rem);
    color: var(--parchment);
    text-shadow: 0 0 20px rgba(125, 255, 194, 0.1), 0 0 40px rgba(78, 205, 196, 0.05);
}

.hero-title {
    font-size: clamp(2.8rem, 6vw, 5rem);
    background: linear-gradient(135deg, var(--parchment), var(--aurora-green), var(--aurora-cyan));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.hero-subtitle {
    font-family: 'Lora', Georgia, serif;
    font-weight: 400;
    font-size: 1.2rem;
    line-height: 1.9;
    color: var(--parchment);
    opacity: 0.8;
    max-width: 500px;
}

p {
    margin-bottom: 1.8rem;
    color: var(--parchment);
    font-weight: 400;
}

/* Pixel Scenes */
.pixel-scene {
    display: block;
    width: 100%;
    max-width: 640px;
    margin: 2.5rem auto;
    image-rendering: pixelated;
    image-rendering: -webkit-optimize-contrast;
    border-radius: 2px;
}

/* Shepherd */
.shepherd-container {
    display: flex;
    justify-content: center;
    margin: 1.5rem 0;
}

.pixel-shepherd {
    width: 64px;
    height: 96px;
    image-rendering: pixelated;
    image-rendering: -webkit-optimize-contrast;
    animation: shepherd-walk 0.8s steps(2) infinite;
}

@keyframes shepherd-walk {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}

/* Quill */
.quill-container {
    display: flex;
    justify-content: center;
    margin: 2rem 0;
}

.pixel-quill {
    width: 96px;
    height: 96px;
    image-rendering: pixelated;
    image-rendering: -webkit-optimize-contrast;
    animation: quill-write 3s ease-in-out infinite;
}

@keyframes quill-write {
    0%, 100% { transform: rotate(0deg) translateX(0); }
    25% { transform: rotate(-5deg) translateX(-4px); }
    50% { transform: rotate(0deg) translateX(0); }
    75% { transform: rotate(5deg) translateX(4px); }
}

.ink-drop {
    animation: ink-spread 3s ease-in-out infinite;
}

.ink-drop-1 { animation-delay: 0.3s; }
.ink-drop-2 { animation-delay: 0.6s; }
.ink-drop-3 { animation-delay: 0.9s; }

@keyframes ink-spread {
    0%, 30% { opacity: 0; }
    50% { opacity: 0.8; }
    70%, 100% { opacity: 0; }
}

/* Wave Dividers */
.wave-divider {
    display: block;
    width: 100%;
    height: 40px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.wave-path {
    animation: wave-flow 8s linear infinite;
}

.wave-path-2 {
    animation: wave-flow-reverse 10s linear infinite;
}

@keyframes wave-flow {
    0% { transform: translateX(0); }
    100% { transform: translateX(-100px); }
}

@keyframes wave-flow-reverse {
    0% { transform: translateX(0); }
    100% { transform: translateX(100px); }
}

/* Data Counters */
.data-counter-row {
    display: flex;
    justify-content: center;
    gap: 2.5rem;
    margin: 2rem 0;
    flex-wrap: wrap;
}

.data-counter {
    text-align: center;
}

.counter-value {
    display: block;
    font-family: 'Press Start 2P', monospace;
    font-size: 1.2rem;
    color: var(--aurora-green);
    margin-bottom: 0.5rem;
    -webkit-font-smoothing: none;
    -moz-osx-font-smoothing: unset;
}

.counter-label {
    display: block;
    font-family: 'Press Start 2P', monospace;
    font-size: 0.5rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--aurora-pink);
    -webkit-font-smoothing: none;
    -moz-osx-font-smoothing: unset;
}

/* Data Flowers */
.data-flower {
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.data-flower:hover {
    opacity: 1;
}

/* Flow Bars */
.flow-bar {
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.flow-bar:hover {
    opacity: 1;
}

/* Data Tooltips */
.data-tooltip {
    font-family: 'Press Start 2P', monospace;
    font-size: 8px;
    fill: var(--aurora-green);
    -webkit-font-smoothing: none;
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
}

.data-tooltip.visible {
    opacity: 1;
}

/* Village Cottages */
.village-cottage {
    cursor: pointer;
}

.cottage-window {
    animation: window-flicker 4s ease-in-out infinite;
}

.village-cottage:nth-child(2) .cottage-window { animation-delay: 1s; }
.village-cottage:nth-child(3) .cottage-window { animation-delay: 2s; }
.village-cottage:nth-child(4) .cottage-window { animation-delay: 3s; }

@keyframes window-flicker {
    0%, 100% { opacity: 0.7; }
    50% { opacity: 0.9; }
    75% { opacity: 0.6; }
}

.cottage-glow {
    animation: glow-pulse 4s ease-in-out infinite;
}

.village-cottage:nth-child(2) .cottage-glow { animation-delay: 1s; }
.village-cottage:nth-child(3) .cottage-glow { animation-delay: 2s; }
.village-cottage:nth-child(4) .cottage-glow { animation-delay: 3s; }

@keyframes glow-pulse {
    0%, 100% { opacity: 0.3; }
    50% { opacity: 0.6; }
    75% { opacity: 0.2; }
}

/* Cottage Label */
.cottage-label {
    font-family: 'Press Start 2P', monospace;
    font-size: 7px;
    fill: var(--gold-ember);
    -webkit-font-smoothing: none;
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
}

.cottage-label.visible {
    opacity: 1;
}

/* Closing Text */
.closing-text {
    font-family: 'Libre Baskerville', 'Georgia', serif;
    font-style: italic;
    font-size: 1.1rem;
    color: var(--aurora-cyan);
    text-align: center;
    opacity: 0.8;
    margin-top: 2rem;
}

/* Horizon Footer */
.horizon-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 4rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(125, 255, 194, 0.1);
}

.pixel-label {
    font-family: 'Press Start 2P', monospace;
    font-size: 0.5rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--aurora-green);
    -webkit-font-smoothing: none;
    -moz-osx-font-smoothing: unset;
}

.pixel-label-dim {
    color: var(--parchment);
    opacity: 0.3;
}

/* Scroll-triggered animations */
.region {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.region.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Star twinkle animation */
@keyframes twinkle {
    0%, 100% { opacity: 0.3; }
    50% { opacity: 1; }
}

.pixel-scene-horizon rect[fill='#e8dfd4'],
.pixel-scene-horizon rect[fill='#7dffc2'],
.pixel-scene-horizon rect[fill='#c77dff'],
.pixel-scene-horizon rect[fill='#ffb8d4'],
.pixel-scene-horizon rect[fill='#4ecdc4'],
.pixel-scene-horizon rect[fill='#f0c36d'] {
    animation: twinkle 3s ease-in-out infinite;
}

.pixel-scene-horizon rect:nth-child(2n) { animation-delay: 0.5s; }
.pixel-scene-horizon rect:nth-child(3n) { animation-delay: 1s; }
.pixel-scene-horizon rect:nth-child(5n) { animation-delay: 1.5s; }
.pixel-scene-horizon rect:nth-child(7n) { animation-delay: 2s; }

/* Data flower grow animation */
.data-flower rect:first-child {
    transform-origin: bottom;
    transform: scaleY(0);
    transition: transform 0.8s ease-out;
}

.data-flower.grown rect:first-child {
    transform: scaleY(1);
}

/* Flow bar reveal */
.flow-bar {
    opacity: 0;
    transform: translateX(-20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.flow-bar.revealed {
    opacity: 1;
    transform: translateX(0);
}

/* Mobile responsive */
@media (max-width: 768px) {
    .column {
        max-width: 100%;
        padding: 0 20px;
    }

    .region {
        padding: clamp(60px, 10vh, 120px) 0;
    }

    .data-counter-row {
        gap: 1.5rem;
    }

    .counter-value {
        font-size: 1rem;
    }

    .counter-label {
        font-size: 0.4rem;
    }

    .hero-title {
        font-size: clamp(2rem, 8vw, 3.5rem);
    }
}

@media (max-width: 480px) {
    .data-counter-row {
        flex-direction: column;
        align-items: center;
        gap: 1.5rem;
    }

    .horizon-footer {
        flex-direction: column;
        gap: 1rem;
        text-align: center;
    }
}
