<script setup lang="ts">
withDefaults(defineProps<{
    title?: string,
    wide?: boolean,
    blurb?: string
}>(), { wide: false })
</script>

<template>
    <div class="glass glass-border glass-box" :class="{ 'glass-box--wide': wide }">
        <h2 v-if="title">{{ title }}</h2>
        <p v-if="blurb">{{ blurb }}</p>
        <slot />
    </div>
</template>

<style scoped>
.glass-box {
    width: clamp(280px, 100%, 700px);
    gap: 1em;
    padding: 2em;
    margin: 2em;
}

.glass-box--wide {
    width: clamp(280px, 100%, 960px);
}

h2 {
    font-size: 2rem;
    text-align: center;
}

p {
    text-align: center;
    width: 100%;
    opacity: 0.7;
    margin-bottom: 1rem;
}

@media (max-width: 600px) {
    .glass-box {
        padding: 1.25em;
        min-height: unset;
    }
}
</style>
