/*! © 2026 Dastan Invites, dastaninvites.com. All rights reserved. This invitation's design, code, artwork and music may not be copied, reused or resold. */

.countdown {
    --gold-deep: #86662a;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    min-height: 100svh;
    padding: 56px 16px 60px;
    overflow: hidden;
    background: url(../assets/countdown/ceiling.webp) center / cover, var(--emerald-night);
    color: var(--ivory);
    text-align: center;
    container: countdown / inline-size;
    -webkit-tap-highlight-color: transparent
}

.countdown:before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 85% 70% at 50% 42%, #03170f61, #03170fe0);
    pointer-events: none
}

.cd-sky {
    position: absolute;
    inset: 0;
    -webkit-mask: url(../assets/countdown/ceiling-mirrors.webp) center / cover;
    mask: url(../assets/countdown/ceiling-mirrors.webp) center / cover;
    mix-blend-mode: screen;
    opacity: .75;
    pointer-events: none
}

.cd-sky:before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 75%;
    height: 55%;
    background: radial-gradient(closest-side, rgba(255, 238, 196, .95), rgba(255, 214, 150, .3) 45%, transparent);
    transform: translate(6.6667%, 16.3636%);
    animation: cd-candle 26s ease-in-out infinite
}

@keyframes cd-candle {
    0%,
    to {
        transform: translate(5%, 9.8182%)
    }
    30% {
        transform: translate(28.3333%, 31.0909%)
    }
    62% {
        transform: translate(10%, 72%)
    }
    82% {
        transform: translate(25%, 57.2727%)
    }
}

.countdown>:not(.cd-sky) {
    position: relative
}

.cd-head {
    grid-area: head
}

.cd-head>* {
    margin: 0
}

.cd-kicker {
    font: 600 clamp(11px, 3cqi, 14px)/1.3 "Cormorant Garamond", Georgia, serif;
    letter-spacing: .28em;
    padding-left: .28em;
    text-transform: uppercase;
    color: var(--gold)
}

.cd-title {
    font: 400 clamp(40px, 11cqi, 64px)/1.15 "Alex Brush", cursive;
    padding: 0 .3em .06em;
    background: url(../assets/hero/gold.webp) 0 0 / 4em 4em;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 .03em .03em rgba(0, 0, 0, .6))
}

.cd-stage {
    grid-area: astro;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%
}

.cd-astro {
    position: relative;
    width: min(100%, 470px, calc(52svh * var(--astro-r)));
    aspect-ratio: var(--astro-r);
    margin-top: 8px;
    outline: none
}

.cd-astro>* {
    position: absolute
}

.cd-glow {
    left: calc(var(--ax) - 60%);
    top: calc(var(--ay) - 44%);
    width: 120%;
    height: 88%;
    background: radial-gradient(closest-side, rgba(255, 222, 150, .5), rgba(255, 200, 120, .16) 55%, transparent);
    opacity: 0;
    pointer-events: none
}

.cd-frame {
    inset: 0;
    background: url(../assets/countdown/frame.webp) 0 0 / 100% 100% no-repeat;
    filter: drop-shadow(0 12px 18px rgba(0, 0, 0, .55))
}

.cd-ring,
.cd-rete {
    aspect-ratio: 1;
    background: center / 100% 100% no-repeat;
    will-change: transform
}

.cd-ring svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    font-family: Cormorant Garamond, Georgia, serif;
    font-weight: 700;
    font-variant-numeric: lining-nums;
    fill: #123f32
}

.cd-ring .cd-dot {
    fill: #9a7a3a
}

.cd-ring text {
    transition: opacity .8s ease, fill .8s ease
}

.cd-ring1 {
    left: var(--ring1-l);
    top: var(--ring1-t);
    width: var(--ring1-w);
    background-image: url(../assets/countdown/ring1.webp)
}

.cd-ring2 {
    left: var(--ring2-l);
    top: var(--ring2-t);
    width: var(--ring2-w);
    background-image: url(../assets/countdown/ring2.webp)
}

.cd-ring3 {
    left: var(--ring3-l);
    top: var(--ring3-t);
    width: var(--ring3-w);
    background-image: url(../assets/countdown/ring3.webp)
}

.cd-rete {
    left: var(--rete-l);
    top: var(--rete-t);
    width: var(--rete-w);
    background-image: url(../assets/countdown/rete.webp)
}

.cd-ring3 {
    z-index: 1
}

.cd-ring2 {
    z-index: 2
}

.cd-ring1 {
    z-index: 3
}

.cd-rete {
    z-index: 4
}

.cd-index {
    z-index: 5;
    left: calc(var(--ax) - 11%);
    top: var(--index-t);
    width: 22%;
    height: var(--index-h);
    border: 1.5px solid rgba(236, 212, 150, .95);
    border-radius: 14px 14px 22px 22px;
    background: linear-gradient(180deg, #fffae833, #fffae80d 60%, #fffae81f);
    box-shadow: 0 0 0 1px #46300c73, 0 3px 10px #00000059, inset 0 0 10px #fff0c859;
    pointer-events: none
}

.cd-index:before {
    content: "";
    position: absolute;
    left: 50%;
    top: -7px;
    width: 11px;
    height: 11px;
    translate: -50% 0;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #d9ffe9, #1f8a66 40%, #06402d);
    box-shadow: 0 0 0 1.5px #c9a45c, 0 1px 3px #00000080
}

.cd-dial {
    z-index: 6;
    left: var(--dial-l);
    top: var(--dial-t);
    width: var(--dial-w);
    height: var(--dial-h);
    border-radius: 50%;
    touch-action: none;
    cursor: grab
}

.cd-dial:active {
    cursor: grabbing
}

.cd-astro:focus-visible .cd-dial {
    outline: 2px solid var(--gold-soft);
    outline-offset: 5px
}

.countdown.is-found .cd-dial {
    touch-action: auto;
    cursor: default;
    pointer-events: none
}

.countdown.is-found .cd-ring text:not(.cd-mark) {
    opacity: .28
}

.countdown.is-found .cd-ring .cd-mark {
    fill: #0b4a3b
}

.countdown.is-found .cd-glow {
    opacity: .75
}

.cd-hint {
    margin: 14px 0 0;
    font: italic 500 clamp(15px, 4.4cqi, 19px)/1.3 "Cormorant Garamond", Georgia, serif;
    color: var(--gold-soft);
    animation: cd-hint 2.8s ease-in-out infinite;
    transition: opacity .6s ease
}

@keyframes cd-hint {
    0%,
    to {
        opacity: .5
    }
    50% {
        opacity: 1
    }
}

.cd-hint {
    display: none !important
}

.countdown:not(.is-ready) .cd-hint,
.countdown.is-found .cd-hint {
    opacity: 0 !important;
    animation: none;
    visibility: hidden
}

.cd-found {
    grid-area: found;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 820px;
    container-type: inline-size
}

.cd-found>* {
    margin: 0
}

.cd-date {
    margin-top: 10px !important;
    font-variant-numeric: lining-nums
}

.cd-date>span {
    display: block
}

.cd-day {
    font: 600 clamp(11px, 3.2cqi, 14px)/1.4 "Cormorant Garamond", Georgia, serif;
    letter-spacing: .28em;
    padding-left: .28em;
    text-transform: uppercase;
    color: var(--gold)
}

.cd-dmy {
    font: 600 clamp(28px, 8.4cqi, 42px)/1.15 "Cormorant Garamond", Georgia, serif;
    background: linear-gradient(180deg, rgba(255, 246, 220, .35), transparent 50%), url(../assets/hero/gold.webp) 0 0 / 4em 4em;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .6))
}

.cd-time {
    font: italic 500 clamp(15px, 4.4cqi, 19px)/1.3 "Cormorant Garamond", Georgia, serif;
    color: var(--gold-soft)
}

.cd-count {
    --pitch: min(3.5cqi, 17px);
    display: grid;
    grid-template-columns: repeat(2, auto);
    justify-content: center;
    column-gap: calc(var(--pitch) * 3);
    row-gap: 16px;
    margin-top: 22px !important
}

@container (min-width: 640px) {
    .cd-count {
        --pitch: min(1.75cqi, 17px);
        grid-template-columns: repeat(4, auto)
    }
}

.cd-unit {
    --cols: 11;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px
}

.cd-unit canvas {
    display: block;
    width: calc(var(--pitch) * var(--cols));
    height: calc(var(--pitch) * 7)
}

.cd-label {
    font: 600 clamp(10px, 2.8cqi, 13px)/1.3 "Cormorant Garamond", Georgia, serif;
    letter-spacing: .24em;
    padding-left: .24em;
    text-transform: uppercase;
    color: var(--gold)
}

.cd-line {
    margin-top: 22px !important;
    max-width: 24em;
    font: italic 500 clamp(16px, 4.6cqi, 21px)/1.4 "Cormorant Garamond", Georgia, serif;
    color: #f5efe2e6;
    text-wrap: balance
}

.cd-save-wrap {
    position: relative;
    margin-top: 18px !important
}

.cd-save.ev-btn {
    --tone-ink: var(--gold-soft);
    min-width: 190px;
    border-color: #e6cf9899;
    background: #062a21b3;
    color: var(--gold-soft);
    box-shadow: 0 2px 10px #00000059
}

.cd-save.ev-btn:hover {
    background: #0b4a3bd9;
    border-color: var(--gold-soft)
}

.cd-sr {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap
}

.cd-date,
.cd-line,
.cd-save-wrap {
    transition: opacity 1s ease, translate 1.2s cubic-bezier(.2, .7, .2, 1), visibility 0s
}

.cd-line {
    transition-delay: .9s
}

.cd-save-wrap {
    transition-delay: 1.15s
}

.countdown.is-ready:not(.is-revealed) .cd-date,
.countdown.is-ready:not(.is-revealed) .cd-line,
.countdown.is-ready:not(.is-revealed) .cd-save-wrap {
    opacity: 0;
    translate: 0 10px;
    visibility: hidden
}

.countdown:not(.is-ready) .cd-count,
.countdown:not(.is-ready) .cd-dial {
    display: none
}

.cd-head,
.cd-stage {
    transition: opacity 1s ease, translate 1.4s cubic-bezier(.2, .7, .2, 1)
}

.cd-stage {
    transition-delay: .15s
}

.countdown.is-ready:not(.is-seen) .cd-head {
    opacity: 0
}

.countdown.is-ready:not(.is-seen) .cd-stage {
    opacity: 0;
    translate: 0 26px
}

@media(min-aspect-ratio:6/5) {
    html.is-tablet .countdown {
        display: grid;
        grid-template-columns: minmax(0, auto) minmax(0, 1fr);
        grid-template-areas: "astro head" "astro found";
        grid-template-rows: auto 1fr;
        align-content: center;
        align-items: start;
        column-gap: clamp(20px, 4cqi, 60px);
        padding: 36px clamp(20px, 4cqi, 56px) 40px
    }
    html.is-tablet .cd-head {
        align-self: end
    }
    html.is-tablet .cd-stage {
        align-self: center
    }
    html.is-tablet .cd-astro {
        width: min(46cqi, calc(84svh * var(--astro-r)))
    }
    html.is-tablet .cd-found {
        max-width: none
    }
}

@media(prefers-reduced-motion:reduce) {
    .cd-sky:before,
    .cd-hint {
        animation: none
    }
    .cd-head,
    .cd-stage,
    .cd-date,
    .cd-line,
    .cd-save-wrap {
        transition: none
    }
}