
:root {
    /* Base palette */
    --color-base:        #F2F0F7;
    --color-base-alt:    #EAE6F5;
    --color-ink:         #1C1820;
    --color-ink-muted:   #5A5265;

    /* Accents */
    --color-accent:      #4B3A8C;
    --color-accent-soft: #7B6BAD;
    --color-magenta:     #8C2D6B;
    --color-magenta-soft:#B85990;

    /* Typography */
    --font-display: 'Caveat', cursive;
    --font-body:    'Nunito', sans-serif;

    /* Type scale */
    --text-xs:   0.75rem;
    --text-sm:   0.875rem;
    --text-base: 1rem;
    --text-lg:   1.25rem;
    --text-xl:   1.5rem;
    --text-2xl:  2rem;
    --text-3xl:  3rem;
    --text-4xl:  4.5rem;
    --text-5xl:  6.5rem;

    /* Spacing (8pt scale) */
    --space-1:  8px;
    --space-2:  16px;
    --space-3:  24px;
    --space-4:  32px;
    --space-6:  48px;
    --space-8:  64px;
    --space-12: 96px;

    /* Misc */
    --radius-chip:  999px;
    --radius-card:  12px;
    --transition:   0.35s cubic-bezier(0.65, 0, 0.35, 1);
}

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

html {
    scroll-snap-type: y mandatory;
    overflow-y: scroll;
    height: 100%;
}

body {
    background-color: var(--color-base);
    color: var(--color-ink);
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-height: 1.6;
    height: 100%;
}

/* ── Slides ── */

.slide {
    scroll-snap-align: start;
    scroll-snap-stop: always;
    min-height: 100dvh;
    width: 100%;
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.slide-inner {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--space-8) var(--space-6);
}

.scroll-hint {
    position: absolute;
    bottom: var(--space-4);
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    opacity: 0.4;
    animation: bounce 2s ease-in-out infinite;
    pointer-events: none;
}

.scroll-hint span {
    font-size: var(--text-xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 500;
}

.scroll-hint-arrow {
    width: 20px;
    height: 20px;
    border-right: 2px solid var(--color-ink);
    border-bottom: 2px solid var(--color-ink);
    transform: rotate(45deg);
}

@keyframes bounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50%       { transform: translateX(-50%) translateY(6px); }
}

/* ── Responsive ── */

@media (max-width: 700px) {
    #drawings .slide-inner {
        grid-template-columns: 1fr;
    }

    .drawings-image {
        order: -1;
    }

    .sketch-frame {
        max-width: 100%;
        aspect-ratio: 4/3;
    }

    .slide-inner {
        padding: var(--space-6) var(--space-3);
    }
}

@media (prefers-reduced-motion: reduce) {
    .scroll-hint { animation: none; }
    * { transition: none !important; }
}