:root {
    --be-bg: #F7F3EE;
    --be-card: #FCFAF7;
    --be-card-strong: #FFFDF9;
    --be-text: #5B4A42;
    --be-text-soft: #8B7A72;
    --be-text-faint: #AA9C94;
    --be-border: #E7DED4;
    --be-border-strong: #D9CEC2;

    --be-daisy: #DDBB58;
    --be-daisy-soft: #F4E8BA;
    --be-leaf: #9BA37A;
    --be-leaf-soft: #E8EAD9;
    --be-blue: #90A9D6;
    --be-blue-soft: #E8EEF8;
    --be-lavender: #9A86B8;
    --be-lavender-soft: #EEE9F4;
    --be-ladybug: #C95A4A;

    --be-success: #7FA27D;
    --be-warning: #D5A958;
    --be-danger: #C97A72;
    --be-info: #8EA8C8;

    --be-radius-sm: 10px;
    --be-radius-md: 14px;
    --be-radius-lg: 20px;
    --be-radius-xl: 28px;

    --be-shadow-soft: 0 10px 30px rgba(91, 74, 66, 0.07);
    --be-shadow-card: 0 14px 38px rgba(91, 74, 66, 0.08);
    --be-shadow-hover: 0 18px 42px rgba(91, 74, 66, 0.12);

    --be-font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
    --be-font-body: Inter, "Noto Sans Thai", "Segoe UI", Arial, sans-serif;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-height: 100vh;
    font-family: var(--be-font-body);
    background:
        radial-gradient(circle at 8% 2%, rgba(221, 187, 88, 0.10), transparent 22rem),
        radial-gradient(circle at 96% 18%, rgba(144, 169, 214, 0.10), transparent 24rem),
        var(--be-bg);
    color: var(--be-text);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3 {
    margin-top: 0;
    color: var(--be-text);
    font-family: var(--be-font-display);
    font-weight: 600;
    letter-spacing: 0.012em;
    line-height: 1.18;
}

h1 {
    font-size: clamp(2.05rem, 3vw, 2.85rem);
}

h2 {
    font-size: clamp(1.55rem, 2.2vw, 1.95rem);
}

h3 {
    font-size: 1.34rem;
}

p {
    margin-top: 0;
}

a {
    color: inherit;
}

button,
input,
select,
textarea {
    font: inherit;
}

::selection {
    background: var(--be-daisy-soft);
    color: var(--be-text);
}

:focus-visible {
    outline: 3px solid rgba(144, 169, 214, 0.38);
    outline-offset: 2px;
}
