/* scriptswirl.com - Maximalist Script Vortex */
* { margin: 0; padding: 0; box-sizing: border-box; }
:root {
    --dream-lavender: #F0E6FF;
    --swirl-pink: #FFE4F0;
    --deep-plum: #5B2C6F;
    --coral-swirl: #FF7979;
    --gold-script: #D4A843;
    --night-plum: #2C1338;
    --faded-rose: #8A6A7A;
}
body {
    background: var(--dream-lavender);
    color: var(--night-plum);
    font-family: 'Quicksand', sans-serif;
    font-size: 1rem;
    line-height: 1.75;
    font-weight: 400;
    overflow-x: hidden;
    position: relative;
}

/* Bokeh Background */
.bokeh-layer {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}
.bokeh {
    position: absolute;
    border-radius: 50%;
}
.b1 { width: 300px; height: 300px; background: radial-gradient(circle, rgba(100,200,200,0.08), transparent); top: 5%; left: 10%; }
.b2 { width: 200px; height: 200px; background: radial-gradient(circle, rgba(255,121,121,0.06), transparent); top: 30%; right: 5%; }
.b3 { width: 250px; height: 250px; background: radial-gradient(circle, rgba(212,168,67,0.06), transparent); bottom: 20%; left: 20%; }
.b4 { width: 180px; height: 180px; background: radial-gradient(circle, rgba(91,44,111,0.05), transparent); top: 60%; right: 25%; }
.b5 { width: 350px; height: 350px; background: radial-gradient(circle, rgba(100,200,200,0.06), transparent); bottom: 5%; right: 10%; }

/* Hero */
#hero {
    position: relative;
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
}
.spiral-svg {
    position: absolute;
    width: 60vh;
    height: 60vh;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0.3;
}
.spiral-path {
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    animation: drawSpiral 3s ease forwards;
}
@keyframes drawSpiral {
    to { stroke-dashoffset: 0; }
}

/* Spiral Text */
.spiral-text {
    position: absolute;
    font-family: 'Dancing Script', cursive;
    font-size: 1.2rem;
    color: var(--gold-script);
    opacity: 0;
    animation: fadeText 0.8s ease forwards;
}
.t1 { top: 25%; left: 55%; animation-delay: 1.5s; }
.t2 { top: 40%; right: 15%; animation-delay: 2s; }
.t3 { bottom: 30%; left: 15%; animation-delay: 2.5s; }
@keyframes fadeText {
    to { opacity: 0.7; }
}

/* Hero Center */
.hero-center {
    position: relative;
    z-index: 2;
    text-align: center;
}
.hero-title {
    font-family: 'Playfair Display', serif;
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 900;
    font-style: italic;
    color: var(--deep-plum);
}
.hero-subtitle {
    font-family: 'Quicksand', sans-serif;
    font-size: 1.1rem;
    color: var(--faded-rose);
    margin-top: 0.5rem;
}

/* Content */
#content {
    max-width: 1000px;
    margin: 0 auto;
    padding: 2rem;
    position: relative;
    z-index: 1;
}

/* Swirl Accents */
.swirl-accent {
    width: 40px;
    height: 40px;
    border: 2px solid var(--coral-swirl);
    border-radius: 50%;
    opacity: 0.3;
    margin: 2rem auto;
    animation: spin 8s linear infinite;
}
.sa1 { border-radius: 60% 40% 50% 50%; }
.sa2 { border-radius: 40% 60% 50% 50%; border-color: var(--gold-script); }
.sa3 { border-radius: 50% 50% 40% 60%; border-color: var(--deep-plum); }
@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Swirl Cards */
.swirl-card {
    background: var(--swirl-pink);
    border-radius: 12px;
    padding: 2.5rem;
    margin-bottom: 2rem;
    position: relative;
    max-width: 600px;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}
.swirl-card.visible {
    opacity: 1;
    transform: translateY(0);
}
.card-left { margin-right: auto; margin-left: 0; }
.card-right { margin-left: auto; margin-right: 0; }
.card-center { margin: 0 auto 2rem; }

/* Page Curl */
.card-curl {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, transparent 50%, var(--dream-lavender) 50%);
    border-radius: 0 0 12px 0;
}
.card-curl::before {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0;
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, transparent 45%, rgba(91,44,111,0.08) 50%);
}

.card-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.5rem;
    font-weight: 700;
    font-style: italic;
    color: var(--deep-plum);
    margin-bottom: 0.75rem;
}
.card-body {
    color: var(--night-plum);
    font-size: 0.95rem;
}

/* Section animation */
.section {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}
.section.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Footer */
#footer {
    text-align: center;
    padding: 3rem 2rem;
    position: relative;
    z-index: 1;
}
.footer-text {
    font-family: 'Dancing Script', cursive;
    font-size: 1.1rem;
    color: var(--faded-rose);
}

/* Responsive */
@media (max-width: 600px) {
    .swirl-card { max-width: 100%; }
}
