.wde {
    --ink: #1c2826;
    --muted: #5d6b68;
    --paper: #f4f1ea;
    --card: #fffcf7;
    --line: #e3dbd0;
    --water: #1d6468;
    --water-deep: #123f43;
    --gold: #9a7048;
    --rose: #b86d7e;
    --warn-bg: #fff6df;
    --warn: #7a5b12;
    --ok: #24644a;
    color: var(--ink);
    font-family: "PingFang TC", "Noto Sans CJK TC", "Microsoft JhengHei", sans-serif;
    line-height: 1.65;
    max-width: 760px;
    margin: 0 auto 2.5rem;
}

.wde * {
    box-sizing: border-box;
}

.wde h2,
.wde h3 {
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.35;
    margin: 0 0 0.4rem;
}

.wde h2 {
    font-size: 1.7rem;
}

.wde p {
    margin: 0 0 0.8rem;
}

.wde-kicker {
    color: var(--gold);
    font-size: 0.82rem;
    letter-spacing: 0.14em;
    margin-bottom: 0.35rem;
}

.wde-head {
    margin-bottom: 1.2rem;
}

.wde-muted,
.wde-note,
.wde-disclaimer {
    color: var(--muted);
    font-size: 0.92rem;
}

.wde-example,
.wde-pending {
    background: var(--warn-bg);
    border: 1px solid #efd48a;
    border-radius: 12px;
    color: var(--warn);
    margin: 0 0 1rem;
    padding: 0.8rem 1rem;
}

.wde-card,
.wde-option,
.wde-product,
.wde-panel {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 16px;
}

.wde-progress {
    color: var(--muted);
    font-size: 0.85rem;
    margin-bottom: 0.6rem;
}

.wde-options {
    display: grid;
    gap: 0.6rem;
}

.wde-option {
    color: inherit;
    cursor: pointer;
    font: inherit;
    min-height: 48px;
    padding: 0.85rem 1rem;
    text-align: left;
    width: 100%;
}

.wde-option:hover,
.wde-option:focus-visible,
.wde-button:hover,
.wde-button:focus-visible {
    border-color: var(--water);
    outline: 2px solid transparent;
    box-shadow: 0 0 0 3px rgba(29, 100, 104, 0.18);
}

.wde-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 1rem;
}

.wde-button,
.wde a.wde-button {
    background: var(--water-deep);
    border: 1px solid var(--water-deep);
    border-radius: 999px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font: inherit;
    min-height: 46px;
    padding: 0.55rem 1.1rem;
    text-decoration: none;
}

.wde-button-quiet {
    background: transparent;
    color: var(--water-deep);
}

.wde-button[disabled] {
    cursor: not-allowed;
    opacity: 0.55;
}

.wde-button-emphasis {
    background: var(--gold);
    border-color: var(--gold);
}

.wde-products {
    display: grid;
    gap: 0.8rem;
    margin-top: 0.6rem;
}

.wde-product {
    display: grid;
    gap: 0.2rem;
    padding: 0.9rem 1rem;
}

.wde-product a {
    color: var(--water-deep);
    font-weight: 600;
    text-decoration: none;
}

.wde-price {
    color: var(--gold);
}

.wde-stone {
    background: var(--paper);
    border-radius: 18px;
    padding: 1.1rem 1.15rem 0.4rem;
}

.wde-wheel-wrap {
    display: grid;
    justify-items: center;
    gap: 1rem;
}

.wde-wheel {
    border-radius: 50%;
    height: min(280px, 78vw);
    width: min(280px, 78vw);
    border: 8px solid #fff;
    box-shadow: 0 10px 30px rgba(18, 63, 67, 0.12);
    transition: transform 4s cubic-bezier(0.12, 0.7, 0.15, 1);
}

.wde-beads,
.wde-palette {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.wde-bead {
    border: 2px solid transparent;
    border-radius: 50%;
    height: 46px;
    width: 46px;
    cursor: pointer;
}

.wde-bead.is-empty {
    background: repeating-linear-gradient(45deg, #efe8dc, #efe8dc 6px, #f7f3ec 6px, #f7f3ec 12px);
    border-color: var(--line);
}

.wde-bead[data-color="rose"] { background: #e7b7c6; }
.wde-bead[data-color="citrine"] { background: #e2b657; }
.wde-bead[data-color="phantom"] { background: #7ea18a; }
.wde-bead[data-color="clear"] { background: #f4f1ea; border-color: #ddd4c6; }
.wde-bead[data-color="obsidian"] { background: #2a2e33; }
.wde-bead[data-color="aqua"] { background: #7ea0b8; }

.wde-sample {
    background: var(--paper);
    border-radius: 16px;
    padding: 0.8rem;
    margin-bottom: 0.8rem;
}

.wde-scratch {
    position: relative;
    height: 160px;
    border-radius: 16px;
    overflow: hidden;
    background: var(--paper);
}

.wde-scratch canvas,
.wde-scratch-prize {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.wde-scratch canvas {
    touch-action: none;
    cursor: crosshair;
}

.wde-scratch-prize {
    display: grid;
    place-items: center;
    text-align: center;
    padding: 1rem;
}

.wde-field {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0.6rem 0 1rem;
}

.wde-field input,
.wde-field select {
    font: inherit;
    min-height: 46px;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 0.4rem 0.7rem;
    background: #fff;
}

.wde-error {
    color: #8c3a3a;
}

.wde-prose h3 {
    margin-top: 1.4rem;
}

.wde-note-list,
.wde-wish-list {
    display: grid;
    gap: 0.7rem;
}

.wde-checkout {
    margin-bottom: 1rem;
}

@media (max-width: 640px) {
    .wde {
        padding: 0 0.2rem;
    }

    .wde h2 {
        font-size: 1.45rem;
    }
}
