/* Gift-wrap composer ("Wrap it up · refined", design handoff gift_wrap_2a).
   The sender wraps a real gift box across four steps: choose paper, write the card, add trimmings,
   preview the recipient's reveal. Global (like reveal.css) so both the composer and the recipient
   Accept page share one box + paper system.

   Structure: each paper's palette tokens (--ra accent / --ra-soft / --rb room / --ra-dk dark ribbon), the six paper
   patterns, the ambient loops and the topper tint filters and the layered silhouette discs are GENERATED (see
   docs/design/gift-wrap/gen-gift-wrap-css.js) and live in the block at the foot of this file — regenerate
   them, don't hand-edit. Everything above is the
   hand-authored geometry (the flat wrap box, the faux-3D dimetric reveal box) and the animation keyframes,
   ported from the prototype's gift3dScene / buildBox2 / buildReveal. */

/* ============================ Composer layout ============================ */
.gw {
    --gw-ink: #322028;
    --gw-muted: #7f6b74;
    --gw-faint: #8C8A9C;
    --gw-line: #ecdce3;
    --gw-pill-line: #ECE7EF;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
    max-width: 1068px;
    margin: 0 auto;
    padding: 8px 0 40px;
}

@media (min-width: 900px) {
    .gw {
        grid-template-columns: minmax(0, 460px) minmax(0, 560px);
        justify-content: center;
        gap: 48px;
    }
    .gw-scene-col { position: sticky; top: 24px; align-self: start; }
}

.gw-scene-col { min-width: 0; }
.gw-scene-wrap { position: relative; }

.gw-scene-label {
    position: absolute;
    top: 14px;
    left: 16px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--gw-ink);
    z-index: 10;
    pointer-events: none;
}

/* "Sneak peek only" chip under the box, and the note that explains what the recipient actually gets:
   a digital notification they open, with the real gift shipped by the supplier. */
.gw-scene-badge {
    display: inline-flex; align-items: center; gap: 6px; margin: 12px auto 0; padding: 5px 12px;
    border-radius: 999px; background: #fff; border: 0.5px solid var(--gw-pill-line);
    font-size: 11.5px; font-weight: 700; color: var(--gw-muted);
}
.gw-scene-badgerow { display: flex; justify-content: center; }
.gw-scene-note { margin: 14px 2px 0; font-size: 13px; line-height: 1.55; color: var(--gw-muted); }

.gw-card {
    background: #fff;
    border: 1px solid var(--gw-line);
    border-radius: 22px;
    box-shadow: 0 22px 46px -38px rgba(95, 15, 60, 0.5);
    padding: 24px;
    min-width: 0;
}

.gw-titlerow { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.gw-title { margin: 0; font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-weight: 800; font-size: 22px; letter-spacing: -0.02em; color: var(--gw-ink); }
.gw-restart { flex: none; border: 1px solid var(--gw-line); background: #fff; color: var(--gw-muted); font-size: 12px; font-weight: 700; padding: 6px 12px; border-radius: 999px; cursor: pointer; }
.gw-restart:hover { border-color: #db338a; color: #be0076; }
.gw-subline { margin: 6px 0 0; font-size: 14.5px; color: var(--gw-muted); }

/* "Start again" asks first; the same strip's quieter sibling notes a restored draft. */
.gw-reset {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px;
    margin: 14px 0 0; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--ra); background: var(--ra-soft);
}
.gw-reset-text { font-size: 13px; font-weight: 700; color: var(--gw-ink); }
.gw-reset-actions { display: flex; gap: 8px; }
.gw-reset-yes, .gw-reset-no { border-radius: 999px; font-size: 12px; font-weight: 700; padding: 6px 12px; cursor: pointer; }
.gw-reset-yes { border: 1px solid var(--ra); background: var(--ra); color: #fff; }
.gw-reset-no { border: 1px solid var(--gw-line); background: #fff; color: var(--gw-muted); }
.gw-reset-no:hover { border-color: var(--ra); color: var(--ra); }
.gw-draft-note { margin: 10px 0 0; font-size: 12.5px; color: var(--gw-muted); }
.gw-draft-fresh { border: 0; background: none; padding: 0; margin-left: 4px; font: inherit; font-weight: 700; color: var(--ra); text-decoration: underline; cursor: pointer; }

.gw-tabs { display: flex; gap: 8px; margin: 18px 0 4px; }
.gw-tab {
    flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px;
    padding: 10px 6px; border-radius: 12px; border: 1px solid var(--gw-line); background: #fff; color: var(--gw-muted);
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-weight: 700; font-size: 12.5px; cursor: pointer;
}
.gw-tab.is-active { border-color: var(--ra); background: var(--ra-soft); color: var(--ra); }

.gw-label { display: block; font-size: 13px; font-weight: 700; color: var(--gw-ink); margin: 16px 0 4px; }
.gw-help { margin: 0 0 10px; font-size: 12px; color: var(--gw-faint); }
.gw-help--intro { margin: 16px 0 12px; font-size: 13px; line-height: 1.5; color: var(--gw-muted); }
.gw-sublabel { display: block; font-size: 11px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gw-muted); margin-bottom: 5px; }

.gw-input, .gw-textarea {
    width: 100%; font-family: 'Nunito', system-ui, sans-serif; font-size: 14px; font-weight: 600; color: var(--gw-ink);
    background: #fff; border: 1px solid var(--gw-line); border-radius: 11px; padding: 10px 13px; outline: none;
}
.gw-textarea { font-size: 15px; font-weight: 400; border-radius: 13px; padding: 13px 15px; line-height: 1.5; resize: vertical; }
.gw-input:focus, .gw-textarea:focus { border-color: var(--ra); }

.gw-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.gw-mt10 { margin-top: 10px; }

/* Primary step CTA, painted in the mood accent. */
.gw-cta {
    display: flex; align-items: center; justify-content: center; width: 100%; margin-top: 16px;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-weight: 800; font-size: 15px; color: #fff;
    background: var(--ra); border: none; padding: 14px; border-radius: 999px; cursor: pointer;
}
.gw-cta:hover { filter: brightness(1.05); }

/* Add-to-basket, the brand-pink finish button. */
.gw-buy {
    display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin-top: 8px;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-weight: 800; font-size: 16px; color: #fff;
    background: #db338a; border: none; padding: 15px; border-radius: 999px; cursor: pointer;
    box-shadow: 0 16px 32px -16px rgba(190, 0, 118, 0.9);
}
.gw-buy:hover { background: #be0076; }
.gw-buy-secondary {
    display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin-top: 10px;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-weight: 700; font-size: 15px; color: var(--gw-ink);
    background: #fff; border: 1px solid var(--gw-line); padding: 14px; border-radius: 999px; cursor: pointer;
}
.gw-buy-secondary:hover { border-color: #db338a; color: #be0076; background: #fff0f6; }

/* Paper swatches (step 1) */
.gw-papers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.gw-paper {
    padding: 0; border: 2px solid var(--gw-line); border-radius: 14px; background: #fff; cursor: pointer;
    overflow: hidden; text-align: left; font-family: 'Nunito', system-ui, sans-serif;
}
.gw-paper:hover { transform: translateY(-2px); }
.gw-paper.is-active { border-color: var(--ra); }
.gw-paper-band { display: block; height: 58px; }
.gw-paper-foot { display: flex; align-items: center; gap: 6px; padding: 8px 10px; font-size: 12.5px; font-weight: 700; color: var(--gw-ink); }

/* Reveal-or-surprise choice (step 1): two option cards, the picked one in the paper's accent. */
.gw-choices { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.gw-choice {
    display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; text-align: left; cursor: pointer;
    border: 2px solid var(--gw-line); border-radius: 14px; background: #fff; font-family: 'Nunito', system-ui, sans-serif;
}
.gw-choice:hover { border-color: #F5C6DC; }
.gw-choice.is-active { border-color: var(--ra); background: var(--ra-soft); }
.gw-choice-title { font-size: 13px; font-weight: 800; color: var(--gw-ink); }
.gw-choice-hint { font-size: 11.5px; line-height: 1.4; color: var(--gw-muted); }

/* Starters + sign-offs + tag emojis (step 2 + 3) */
.gw-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.gw-pill {
    border: 0.5px solid var(--gw-pill-line); background: #fff; color: #1C1B2E; font-size: 12px; padding: 6px 11px;
    border-radius: 999px; cursor: pointer; font-family: 'Nunito', system-ui, sans-serif;
}
.gw-pill:hover { background: #FFF7FB; border-color: #F5C6DC; }
.gw-pill.is-active { border-color: var(--ra); background: var(--ra-soft); font-weight: 600; }

/* Starter picker (step 2). The reason chips only swap the lines below them, so both rows sit inside one panel
   and the list is a stack of tappable lines (each with a + affordance) rather than another row of pills. */
.gw-starters {
    margin-top: 2px; padding: 10px 12px 12px; border: 1px solid var(--gw-line); border-radius: 14px; background: #FFFBFC;
}
.gw-starters-list {
    display: flex; flex-direction: column; gap: 6px;
    margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--gw-line);
}
.gw-starter {
    display: flex; align-items: flex-start; gap: 8px; width: 100%; text-align: left;
    border: 0.5px solid var(--gw-pill-line); background: #fff; color: #1C1B2E; font-size: 12.5px; line-height: 1.45;
    padding: 8px 12px; border-radius: 12px; cursor: pointer; font-family: 'Nunito', system-ui, sans-serif;
}
.gw-starter:hover { border-color: var(--ra); background: var(--ra-soft); }
.gw-starter-add {
    flex: none; display: inline-flex; align-items: center; justify-content: center;
    width: 16px; height: 16px; margin-top: 1px; border-radius: 999px;
    background: var(--ra-soft); color: var(--ra); font-size: 12px; font-weight: 800; line-height: 1;
}
.gw-starter:hover .gw-starter-add { background: #fff; }

.gw-emojis { display: flex; flex-wrap: wrap; gap: 8px; }
.gw-emoji {
    display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 8px;
    border: 0.5px solid var(--gw-pill-line); border-radius: 999px; font-size: 18px; color: #1C1B2E; background: #fff; cursor: pointer;
    font-family: 'Nunito', system-ui, sans-serif;
}
.gw-emoji.is-active { border-color: var(--ra); background: var(--ra-soft); }
.gw-emoji-none { font-size: 12px; color: var(--gw-faint); }

/* Topper picker (step 3) */
.gw-toppers { display: flex; gap: 8px; flex-wrap: wrap; }
.gw-topper-pick {
    display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 8px 12px;
    border: 1px solid var(--gw-line); border-radius: 12px; background: #fff; cursor: pointer; font-family: 'Nunito', system-ui, sans-serif;
}
.gw-topper-pick:hover { transform: translateY(-2px); }
.gw-topper-pick.is-active { border-color: var(--ra); background: var(--ra-soft); }
.gw-topper-glyph { font-size: 22px; line-height: 1; }
.gw-topper-label { font-size: 11px; font-weight: 700; color: var(--gw-ink); }

/* Tint swatches (step 3) */
/* Each swatch carries the chosen topper's glyph under the same .gw-topper--x.gw-tint--y filter the box
   uses, so the row shows the real resulting colours rather than the nominal hexes behind them. */
.gw-tints { display: flex; gap: 8px; flex-wrap: wrap; }
.gw-swatch { width: 38px; height: 38px; border-radius: 999px; border: 2px solid var(--gw-line); background: #fff; cursor: pointer; padding: 0; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
.gw-swatch:hover { transform: scale(1.1); }
.gw-swatch.is-active { border-color: #322028; background: var(--gw-line); }
.gw-swatch-glyph { font-size: 20px; line-height: 1; }

.gw-confirm { margin-top: 18px; text-align: center; background: var(--ra-soft); border-radius: 16px; padding: 16px; }
.gw-confirm-title { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-weight: 800; font-size: 16px; color: var(--ra); }

/* Itemised finish lines (step 4): the size the gifter chose, then every extra they ticked. */
.gw-lines { display: flex; flex-direction: column; gap: 9px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--gw-line); }
.gw-line { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-size: 13.5px; line-height: 1.35; color: var(--gw-muted); }
.gw-line-name { font-weight: 600; }
.gw-line-amount { font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.gw-line--base { color: var(--gw-ink); }

/* Finish price row (step 4) */
.gw-priced { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; border-top: 1px solid var(--gw-line); margin-top: 16px; }
.gw-lines + .gw-priced { margin-top: 13px; }
.gw-price-label { font-size: 14px; font-weight: 600; color: var(--gw-muted); }
.gw-price-note { font-size: 12px; font-weight: 500; color: var(--gw-muted); }
.gw-price { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-weight: 800; font-size: 20px; color: var(--gw-ink); }
.gw-error { margin: 10px 0 0; color: #be0076; font-size: 13px; }
.gw-footnote { text-align: center; font-size: 12.5px; color: var(--gw-muted); margin: 14px 0 0; line-height: 1.4; }

/* ============================ The scene stage ============================ */
.gw-stage {
    position: relative; border-radius: 18px; border: 0.5px solid var(--gw-pill-line); background: var(--rb);
    overflow: hidden; display: flex; align-items: center; justify-content: center; box-shadow: 0 1px 2px rgba(28, 27, 46, 0.05);
}
/* Grows past its resting height when a long card needs the room; the top padding clears .gw-scene-label. */
.gw-stage--wrap { min-height: 460px; padding: 44px 16px 28px; }
.gw-stage--reveal { height: 500px; }
.gw-amb { position: absolute; inset: 0; pointer-events: none; }

/* Optimistic pick feedback (js/wrap-pick.js): the instant a paper/topper/tint is pressed, the
   current scene dims and a ring spins over the box until the server's re-render lands. The class
   rides the outgoing stage node (each pick re-keys the scene), so the swap clears it by itself.
   Both effects fade in late enough that a fast round-trip never flashes. */
.gw-stage.gw-pending .gw-wrapbox, .gw-stage.gw-pending .gw-reveal { animation: gw-pend-dim 0.2s ease 0.12s both; }
.gw-stage.gw-pending::after {
    content: ""; position: absolute; left: 50%; top: 50%; width: 30px; height: 30px; margin: -15px 0 0 -15px;
    border: 3px solid var(--ra); border-right-color: transparent; border-radius: 999px; z-index: 8;
    animation: gw-pend-spin 0.55s linear infinite, gw-pend-in 0.2s ease 0.12s both;
}

/* ---- The flat wrap box (steps 1–3), ported from buildBox2 ---- */
/* Card above, box below, never overlapping: the stage grows with the card rather than letting the box
   or its topper cover any of the words. */
.gw-wrapbox { position: relative; width: 100%; display: flex; flex-direction: column; align-items: center; gap: 18px; }

/* The card carries the whole message as written. A long one widens to the stage and steps the type down
   (.gw-wcard--long) so it still reads in full; only a pathological run of line breaks hits max-height
   and scrolls inside the card. It stacks over the box so entrance animations pass behind it. */
.gw-wcard {
    position: relative; width: fit-content; min-width: min(100%, 240px); max-width: min(100%, 340px); max-height: 380px; overflow-y: auto;
    background: #fff; border: 1px solid var(--gw-pill-line);
    border-radius: 10px; padding: 11px 13px; box-shadow: 0 10px 24px -14px rgba(95, 15, 60, 0.45); text-align: left; z-index: 3;
    animation: gw-tuck 0.5s ease both;
}
.gw-wcard--long { max-width: 100%; }
.gw-wcard--long .gw-wcard-msg { font-size: 14px; line-height: 1.3; }
.gw-wcard-to { font-size: 10px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ra); }
/* Caveat has no italic cut, so no font-style here: a synthesised slant is what made the old script
   face hard to read. It also runs small for its point size, hence the bump. */
.gw-wcard-msg { margin-top: 4px; font-size: 15px; line-height: 1.35; color: #4A4860; font-family: 'Caveat', 'Bradley Hand', cursive; white-space: pre-wrap; overflow-wrap: break-word; }
.gw-wcard-sign { margin-top: 4px; font-size: 11px; font-weight: 700; color: var(--gw-muted); }

/* Height runs from the topper's crown to the box's base; the space is held on every step so the box
   doesn't jump when a topper is added. */
.gw-wbox { position: relative; flex: none; width: 300px; height: 228px; z-index: 2; }
.gw-wbox.gw-anim--bc { animation: gw-drift 1.15s ease both; }
.gw-wbox.gw-anim--ph { animation: gw-bounce 0.75s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
.gw-wbox.gw-anim--ys { animation: gw-tilt 1s ease both; }
.gw-wbox.gw-anim--ps { animation: gw-inflate 1.25s ease both; }
.gw-wbox.gw-anim--ss { animation: gw-flipy 0.9s ease both; }
.gw-wbox.gw-anim--pd { animation: gw-jump 0.95s ease both; }

.gw-wfront { position: absolute; left: 30px; top: 58px; width: 240px; height: 170px; border-radius: 6px; box-shadow: 0 24px 40px -22px rgba(95, 15, 60, 0.5); }
.gw-wrib-v { position: absolute; left: 50%; top: 0; bottom: 0; width: 26px; transform: translateX(-50%); background: var(--ra); opacity: 0.92; }
.gw-wrib-h { position: absolute; top: 50%; left: 0; right: 0; height: 26px; transform: translateY(-50%); background: var(--ra); opacity: 0.85; }
.gw-wsheen { position: absolute; inset: 0; background-image: linear-gradient(115deg, transparent 40%, rgba(255, 255, 255, 0.7) 50%, transparent 60%); background-size: 220% 100%; animation: gw-sheen 1.5s ease 0.3s 1 both; }

.gw-wlid { position: absolute; left: 18px; top: 34px; width: 264px; height: 34px; border-radius: 6px; box-shadow: 0 8px 16px -8px rgba(95, 15, 60, 0.4); filter: brightness(0.96); }
.gw-wlid-rib { position: absolute; left: 50%; top: 0; bottom: 0; width: 26px; transform: translateX(-50%); background: var(--ra); }

/* Centred on the ribbon with translateX(-50%) (emoji advance widths vary by platform, so fixed
   margins drift); the pop-in animation lives on the inner glyph so its transform can't fight this. */
.gw-wtopper { position: absolute; left: 50%; top: 0; display: flex; flex-direction: column; align-items: center; transform: translateX(-50%); }
.gw-glyph { line-height: 1; text-align: center; }
.gw-glyph--wrap { font-size: 57px; animation: gw-bow 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
.gw-shadowed { filter: drop-shadow(0 6px 10px rgba(50, 16, 38, 0.35)); }

.gw-wtag {
    position: absolute; left: 196px; top: 188px; background: #fff; border: 1px solid var(--gw-pill-line); border-radius: 8px;
    padding: 6px 10px; font-size: 11px; font-weight: 700; color: var(--gw-ink); transform: rotate(8deg);
    box-shadow: 0 6px 12px -8px rgba(95, 15, 60, 0.5); animation: gw-pop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
/* Picking a sign re-keys the tag into this momentary enlarge, so the change can't be missed. */
.gw-wtag--pulse { animation: gw-tagpop 0.55s cubic-bezier(0.34, 1.56, 0.64, 1) both; }

/* ---- The faux-3D dimetric reveal box (step 4), ported from gift3dScene ---- */
.gw-reveal { position: absolute; inset: 0; }
.gw-reveal-head { position: absolute; top: 44px; left: 0; right: 0; text-align: center; z-index: 3; }
.gw-reveal.is-open .gw-reveal-head { animation: gw-out-up 0.4s ease both; }
.gw-reveal-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ra); }
.gw-reveal-from { margin-top: 6px; font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-weight: 800; font-size: 22px; color: #1C1B2E; }

.gw-glow { position: absolute; left: calc(50% - 140px); bottom: 10px; width: 280px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 232, 170, 0.9), rgba(255, 232, 170, 0) 68%); opacity: 0; pointer-events: none; z-index: 5; }
:is(.gw-reveal.is-open, .gw-open-toggle:checked ~ .gw-boxslot .gw-reveal) .gw-glow { animation: gw-glow 1.25s ease 1.1s both; }

.gw-boxwrap { position: absolute; left: calc(50% - 135px); top: 118px; z-index: 4; transform: translateY(0); transition: transform 0.75s cubic-bezier(0.5, 0.05, 0.3, 1) 0.05s; }
.gw-reveal.is-open .gw-boxwrap { transform: translateY(128px); z-index: 7; }
.gw-boxsettle { }
:is(.gw-reveal.is-open, .gw-open-toggle:checked ~ .gw-boxslot .gw-reveal) .gw-boxsettle { animation: gw-boxsettle 0.9s ease 1.25s both; }

/* The 270×240 box canvas: every face is a flat clip-path polygon (a dimetric projection). */
.gw-box3d { position: relative; width: 270px; height: 240px; }
.gw-box3d-bob { position: absolute; inset: 0; animation: gw-bob 3.6s ease-in-out infinite; }
:is(.gw-reveal.is-open, .gw-open-toggle:checked ~ .gw-boxslot .gw-reveal) .gw-box3d-bob { animation: gw-shake 0.5s ease both; }
.gw-box-shadow { position: absolute; left: 50%; bottom: 2px; width: 210px; height: 38px; margin-left: -105px; border-radius: 50%; background: radial-gradient(ellipse, rgba(50, 16, 38, 0.4), transparent 70%); filter: blur(6px); animation: gw-shadow 3.6s ease-in-out infinite; }
:is(.gw-reveal.is-open, .gw-open-toggle:checked ~ .gw-boxslot .gw-reveal) .gw-box-shadow { animation: none; }

.gw-face { position: absolute; inset: 0; }
.gw-face-lx { position: absolute; inset: 0; } /* lighting overlay child */

/* body faces */
.gw-f-interior { clip-path: polygon(58px 100px, 186px 100px, 238px 58px, 110px 58px); background: #2c1420; }
:is(.gw-reveal.is-open, .gw-open-toggle:checked ~ .gw-boxslot .gw-reveal) .gw-f-interior { background: radial-gradient(circle at 50% 46%, rgba(255, 214, 148, 0.92), #2a1220 60%, #1c0b14 100%); }
.gw-f-top { clip-path: polygon(58px 100px, 186px 100px, 238px 58px, 110px 58px); }
.gw-f-top .gw-face-lx { background: rgba(255, 255, 255, 0.16); }
.gw-f-right { clip-path: polygon(186px 100px, 238px 58px, 238px 176px, 186px 218px); }
.gw-f-right .gw-face-lx { background: rgba(50, 16, 38, 0.24); }
.gw-f-front { clip-path: polygon(58px 100px, 186px 100px, 186px 218px, 58px 218px); }
.gw-f-front .gw-face-lx { background: rgba(50, 16, 38, 0.03); }
:is(.gw-reveal.is-open, .gw-open-toggle:checked ~ .gw-boxslot .gw-reveal) .gw-f-top { display: none; }

/* body ribbons */
.gw-rib { position: absolute; inset: 0; background: var(--ra); }
.gw-rib--dk { background: var(--ra-dk); }
.gw-rib-topv { clip-path: polygon(109px 100px, 135px 100px, 187px 58px, 161px 58px); }
.gw-rib-topv-hi { position: absolute; inset: 0; clip-path: polygon(109px 100px, 135px 100px, 187px 58px, 161px 58px); background: rgba(255, 255, 255, 0.14); }
.gw-rib-rightv { clip-path: polygon(186px 100px, 238px 58px, 238px 74px, 186px 116px); }
.gw-rib-frontv { clip-path: polygon(109px 100px, 135px 100px, 135px 218px, 109px 218px); }
.gw-rib-fronth { clip-path: polygon(58px 152px, 186px 152px, 186px 176px, 58px 176px); }
.gw-rib-front-hi { position: absolute; left: 0; top: 150px; width: 100%; height: 3px; background: rgba(255, 255, 255, 0.22); }

/* lid faces */
.gw-lid { position: absolute; inset: 0; z-index: 4; transform-origin: 50% 88%; filter: drop-shadow(0 8px 7px rgba(50, 16, 38, 0.22)); }
:is(.gw-reveal.is-open, .gw-open-toggle:checked ~ .gw-boxslot .gw-reveal) .gw-lid { filter: none; animation: gw-lidoff 1.05s cubic-bezier(0.4, 0, 0.28, 1) 0.3s both; }
.gw-l-front { clip-path: polygon(48px 96px, 192px 96px, 192px 118px, 48px 118px); }
.gw-l-front .gw-face-lx { background: rgba(50, 16, 38, 0.03); }
.gw-l-right { clip-path: polygon(192px 96px, 254px 46px, 254px 68px, 192px 118px); }
.gw-l-right .gw-face-lx { background: rgba(50, 16, 38, 0.24); }
.gw-l-top { clip-path: polygon(48px 96px, 192px 96px, 254px 46px, 106px 46px); }
.gw-l-top .gw-face-lx { background: rgba(255, 255, 255, 0.18); }
.gw-l-ribtopv { clip-path: polygon(109px 96px, 135px 96px, 193px 46px, 167px 46px); }
.gw-l-ribfrontv { clip-path: polygon(109px 96px, 135px 96px, 135px 118px, 109px 118px); }
.gw-l-seamf { clip-path: polygon(48px 114px, 192px 114px, 192px 118px, 48px 118px); background: rgba(50, 16, 38, 0.26); }
.gw-l-seamr { clip-path: polygon(192px 114px, 254px 64px, 254px 68px, 192px 118px); background: rgba(50, 16, 38, 0.34); }

/* ---- Ribbon imprint (both boxes): the gifthappy logo printed along the ribbon ---- */
/* Branded gift ribbon carries the maker's logo repeated down its length, so ours does too: the logo file
   masked out of a white wash, which prints over whatever accent the paper carries - one rule covers all six
   papers. `space` lays whole logos end to end and shares the slack between them, so a repeat is never cut
   mid-word. The vertical bands reuse the same left-to-right strip turned a quarter turn (their pseudo-element
   is sized as the horizontal strip it is BEFORE rotation), which is why one asset serves every ribbon.
   Front-facing bands only: on the reveal box's skewed top and right planes an axis-aligned wordmark would
   read as noise rather than as print. */
:is(.gw-wrib-v, .gw-wrib-h, .gw-wlid-rib, .gw-rib-frontv, .gw-rib-fronth, .gw-l-ribfrontv)::after {
    content: "";
    position: absolute;
    background-color: rgba(255, 255, 255, 0.3);
    -webkit-mask: url('/img/logo/gifthappy-logo.svg') center / auto 13px;
    mask: url('/img/logo/gifthappy-logo.svg') center / auto 13px;
    /* after the shorthand, which resets it */
    -webkit-mask-repeat: space no-repeat;
    mask-repeat: space no-repeat;
    pointer-events: none;
}

/* the horizontal bands print straight along their length */
.gw-wrib-h::after { inset: 0; }
.gw-rib-fronth::after { left: 58px; top: 152px; width: 128px; height: 24px; }

/* the long vertical bands: sized as a horizontal strip (band length x band width), then turned a quarter
   turn about their centre, so the print runs top-to-bottom over the band it sits in. */
:is(.gw-wrib-v, .gw-rib-frontv)::after { transform: rotate(90deg); }
.gw-wrib-v::after { left: 50%; top: 50%; width: 170px; height: 26px; margin: -13px 0 0 -85px; }
.gw-rib-frontv::after { left: 63px; top: 146px; width: 118px; height: 26px; }

/* Both lid bands are far too short for a whole wordmark, so they print the mark on its own rather than a
   slice of the word: the ribbon still reads as branded where it crosses the lid. A lone mark has no reading
   direction to follow, so these aren't turned - the little gift stands upright. */
:is(.gw-wlid-rib, .gw-l-ribfrontv)::after {
    -webkit-mask-image: url('/img/logo/gifthappy-mark.svg');
    mask-image: url('/img/logo/gifthappy-mark.svg');
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}
.gw-wlid-rib::after { inset: 0; }
.gw-l-ribfrontv::after { left: 109px; top: 96px; width: 26px; height: 22px; }

/* lid topper: the glyph laid into the lid-top plane (matrix flatten), with a stepped-down shadow copy for depth */
.gw-lid-topper { position: absolute; left: 106px; top: 37px; }
.gw-lid-topper--sprig { left: 118px; top: 26px; } /* the sprig stands upright */
/* ext (dark side wall) and flat (lit top) must share identical box geometry: the plane
   matrix acts about each element's own origin, so a size mismatch (e.g. inset:0 collapsing
   flat to 0x0) rotates the copies about different points and splits them apart on the lid. */
.gw-lid-topper-flat { position: absolute; left: 0; top: 0; transform: matrix(1, 0, -0.403, 0.347, 0, 0); filter: drop-shadow(0 4px 3px rgba(50, 16, 38, 0.25)); }
.gw-lid-topper--sprig .gw-lid-topper-flat { transform: none; }
.gw-lid-topper-ext { position: absolute; left: 0; top: 3px; transform: matrix(1, 0, -0.403, 0.347, 0, 0); filter: brightness(0.52) saturate(1.15); }
.gw-lid-topper--sprig .gw-lid-topper-ext { display: none; }
.gw-glyph--lid { font-size: 64px; }
.gw-glyph--lid-sprig { font-size: 50px; }
.gw-lid-tshadow { position: absolute; left: 102px; top: 63px; width: 96px; height: 26px; border-radius: 50%; background: radial-gradient(closest-side, rgba(50, 16, 38, 0.3), transparent 72%); transform: rotate(-8deg); }
.gw-lid-tshadow--heart { left: 128px; top: 70px; width: 56px; height: 13px; background: radial-gradient(closest-side, rgba(50, 16, 38, 0.32), transparent 72%); }
.gw-lid-tshadow--sprig { left: 114px; top: 70px; width: 70px; height: 16px; background: radial-gradient(closest-side, rgba(50, 16, 38, 0.28), transparent 72%); }

/* hanging gift tag (closed, signed) */
.gw-tag3d { position: absolute; left: 145px; top: 177.5px; transform: rotate(9deg); transform-origin: 0 50%; z-index: 3; }
.gw-tag3d-string { position: absolute; left: -7px; top: 4px; width: 17px; height: 2px; border-radius: 1px; background: rgba(50, 16, 38, 0.5); transform: rotate(44deg); }
.gw-tag3d-body { position: relative; background: #FFFDF8; border: 1px solid #E5DACB; border-radius: 7px; padding: 4px 9px 4px 15px; font-size: 10.5px; font-weight: 700; color: var(--gw-ink); box-shadow: 0 5px 9px rgba(50, 16, 38, 0.3); max-width: 104px; line-height: 1.3; }
.gw-tag3d-hole { position: absolute; left: 5px; top: 50%; margin-top: -2.5px; width: 5px; height: 5px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1.5px #C9BBA8; }

/* the openable content that rises out of the box */
.gw-reveal-content { position: absolute; inset: 0; z-index: 8; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 13px; padding: 20px 20px 96px; pointer-events: none; }
.gw-rc-card { width: 320px; background: #fff; border: 1px solid var(--gw-pill-line); border-radius: 14px; padding: 15px 20px; box-shadow: 0 18px 40px -20px rgba(95, 15, 60, 0.5); text-align: left; pointer-events: auto; animation: gw-cardrise 0.85s cubic-bezier(0.16, 0.9, 0.3, 1.04) 1.35s both; }
.gw-rc-to { font-size: 10px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ra); }
.gw-rc-msg { margin-top: 7px; font-size: 16.5px; line-height: 1.35; color: #1C1B2E; font-family: 'Caveat', 'Bradley Hand', cursive; white-space: pre-wrap; overflow-wrap: break-word; max-height: 88px; overflow-y: auto; }
.gw-rc-sign { margin-top: 10px; font-size: 13px; font-weight: 700; color: #4A4860; }
.gw-rc-gift { width: 230px; text-align: center; animation: gw-reveal 0.65s cubic-bezier(0.34, 1.56, 0.64, 1) 2.05s both; }
.gw-rc-gift-img { position: relative; border-radius: 14px; overflow: hidden; height: 132px; box-shadow: 0 18px 36px -18px rgba(95, 15, 60, 0.6); }
.gw-rc-gift-img img { width: 100%; height: 100%; object-fit: cover; }
.gw-rc-gift-empty { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 56px; background: var(--ra-soft); }
/* Name plus the brand that makes it, over the photo: the recipient should see whose gift this is. */
.gw-rc-gift-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 12px 9px; background: linear-gradient(to top, rgba(28, 15, 24, 0.78), rgba(28, 15, 24, 0)); text-align: left; }
.gw-rc-gift-brand { font-size: 10px; font-weight: 800; letter-spacing: 0.09em; text-transform: uppercase; color: rgba(255, 255, 255, 0.82); }
.gw-rc-gift-name { font-size: 14px; font-weight: 700; color: #fff; }
/* The size and extras, under the name: two lines at most, because the caption sits over the photo. */
.gw-rc-gift-opts {
    margin-top: 2px; font-size: 11px; line-height: 1.35; color: rgba(255, 255, 255, 0.86);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.gw-replay { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-weight: 700; font-size: 13px; color: var(--ra); background: #fff; border: 1px solid var(--ra); padding: 8px 18px; border-radius: 999px; cursor: pointer; white-space: nowrap; pointer-events: auto; animation: gw-pop 0.45s ease 2.6s both; }

/* Surprise reveal: when the sender keeps the gift a secret, this confetti burst takes the product's
   place in the risen content, on the same beat the gift would have appeared. */
/* The burst sits on its own white card (like the message card above it) so the title and note stay
   readable against whatever the box below happens to be: paper pattern, ribbon or shadow. */
.gw-rc-surprise { position: relative; width: 250px; text-align: center; background: #fff; border: 1px solid var(--gw-pill-line); border-radius: 16px; padding: 12px 14px 14px; box-shadow: 0 18px 40px -20px rgba(95, 15, 60, 0.5); animation: gw-reveal 0.65s cubic-bezier(0.34, 1.56, 0.64, 1) 2.05s both; }
.gw-rc-surprise-face { display: flex; align-items: center; justify-content: center; height: 84px; border-radius: 11px; background: var(--ra-soft); font-size: 44px; }
.gw-rc-surprise-title { margin-top: 8px; font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-weight: 800; font-size: 16px; color: var(--ra); }
.gw-rc-surprise-note { margin-top: 2px; font-size: 12px; line-height: 1.4; color: #4A4860; }

/* Twelve pieces flung from the middle of the burst; each class carries its own trajectory so the
   markup stays style-free (no inline styles). */
.gw-cf { position: absolute; left: 50%; top: 54px; width: 8px; height: 12px; border-radius: 2px; opacity: 0; }
.gw-cf--1 { background: #E8186D; animation: gw-cf-1 1.5s cubic-bezier(0.2, 0.7, 0.4, 1) 2.1s both; }
.gw-cf--2 { background: #2F7DD1; animation: gw-cf-2 1.6s cubic-bezier(0.2, 0.7, 0.4, 1) 2.16s both; }
.gw-cf--3 { background: #D9A62E; animation: gw-cf-3 1.7s cubic-bezier(0.2, 0.7, 0.4, 1) 2.22s both; }
.gw-cf--4 { background: #1FA39C; animation: gw-cf-4 1.5s cubic-bezier(0.2, 0.7, 0.4, 1) 2.28s both; }
.gw-cf--5 { background: #7C4DFF; animation: gw-cf-5 1.65s cubic-bezier(0.2, 0.7, 0.4, 1) 2.12s both; }
.gw-cf--6 { background: #DB338A; animation: gw-cf-6 1.55s cubic-bezier(0.2, 0.7, 0.4, 1) 2.2s both; }
.gw-cf--7 { background: #D95A38; animation: gw-cf-1 1.75s cubic-bezier(0.2, 0.7, 0.4, 1) 2.34s both; }
.gw-cf--8 { background: #2F7DD1; animation: gw-cf-4 1.6s cubic-bezier(0.2, 0.7, 0.4, 1) 2.4s both; }
.gw-cf--9 { background: #E8186D; animation: gw-cf-3 1.5s cubic-bezier(0.2, 0.7, 0.4, 1) 2.46s both; }
.gw-cf--10 { background: #D9A62E; animation: gw-cf-2 1.7s cubic-bezier(0.2, 0.7, 0.4, 1) 2.3s both; }
.gw-cf--11 { background: #1FA39C; animation: gw-cf-5 1.55s cubic-bezier(0.2, 0.7, 0.4, 1) 2.42s both; }
.gw-cf--12 { background: #7C4DFF; animation: gw-cf-6 1.65s cubic-bezier(0.2, 0.7, 0.4, 1) 2.5s both; }

.gw-openbtn-row { position: absolute; left: 0; right: 0; bottom: 38px; display: flex; justify-content: center; z-index: 9; }
.gw-reveal.is-open .gw-openbtn-row { opacity: 0; pointer-events: none; animation: gw-out-down 0.35s ease both; }
.gw-openbtn { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-weight: 800; font-size: 16px; color: #fff; background: var(--ra); border: none; padding: 14px 34px; border-radius: 999px; cursor: pointer; box-shadow: 0 16px 32px -14px var(--ra); }

/* ============================ Keyframes (ported) ============================ */
@keyframes gw-rise { to { background-position: 0 -220px; } }
@keyframes gw-fall { to { background-position: 0 220px; } }
@keyframes gw-sweep { 0% { background-position: 200% 0; } 100% { background-position: -120% 0; } }
@keyframes gw-cross { 0% { background-position: -25% 35%; } 100% { background-position: 125% 45%; } }
@keyframes gw-twinkle { 0%, 100% { opacity: 0.3; } 50% { opacity: 0.7; } }
@keyframes gw-breathe { 0%, 100% { background-size: 95% 95%; opacity: 0.7; } 50% { background-size: 125% 125%; opacity: 1; } }
@keyframes gw-bounce { 0% { transform: scale(0.5) rotate(-6deg); opacity: 0; } 55% { transform: scale(1.09) rotate(2deg); opacity: 1; } 75% { transform: scale(0.96) rotate(-1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes gw-jump { 0% { transform: translateY(0) scale(1, 1); } 18% { transform: translateY(5px) scale(1.08, 0.88); } 45% { transform: translateY(-34px) scale(0.94, 1.1); } 70% { transform: translateY(0) scale(1.06, 0.9); } 85% { transform: translateY(-9px) scale(0.98, 1.04); } 100% { transform: translateY(0) scale(1, 1); } }
@keyframes gw-tilt { 0% { transform: rotate(0deg); filter: brightness(1); } 30% { transform: rotate(-4deg); } 55% { transform: rotate(3deg); filter: brightness(1.18); } 100% { transform: rotate(0deg); filter: brightness(1); } }
@keyframes gw-drift { 0% { transform: translateY(-100px) rotate(-6deg); opacity: 0; } 45% { transform: translateY(10px) rotate(3deg); opacity: 1; } 70% { transform: translateY(-5px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gw-inflate { 0% { transform: scale(0.88); opacity: 0.6; } 55% { transform: scale(1.06); opacity: 1; } 80% { transform: scale(0.99); } 100% { transform: scale(1); } }
@keyframes gw-flipy { 0% { transform: perspective(700px) rotateY(95deg); opacity: 0; } 55% { transform: perspective(700px) rotateY(-14deg); opacity: 1; } 78% { transform: perspective(700px) rotateY(7deg); } 100% { transform: perspective(700px) rotateY(0deg); } }
@keyframes gw-sheen { 0% { background-position: 220% 0; } 100% { background-position: -120% 0; } }
@keyframes gw-bow { 0% { transform: scale(0) rotate(-30deg); } 60% { transform: scale(1.25) rotate(8deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes gw-pend-spin { to { transform: rotate(360deg); } }
@keyframes gw-pend-dim { from { opacity: 1; } to { opacity: 0.55; } }
@keyframes gw-pend-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes gw-pop { 0% { transform: scale(0.3); opacity: 0; } 70% { transform: scale(1.12); opacity: 1; } 100% { transform: scale(1); opacity: 1; } }
@keyframes gw-tagpop { 0% { transform: rotate(8deg) scale(1); } 45% { transform: rotate(8deg) scale(1.45); } 100% { transform: rotate(8deg) scale(1); } }
@keyframes gw-tuck { 0% { transform: translateY(46px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } }
@keyframes gw-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes gw-shake { 0% { transform: translateY(0) scale(1); } 38% { transform: translateY(2px) scale(0.986); } 100% { transform: translateY(0) scale(1); } }
@keyframes gw-lidoff { 0% { transform: translate(0, 0) rotate(0deg) scale(1); opacity: 1; } 50% { transform: translate(30px, -140px) rotate(-6deg) scale(0.97); opacity: 1; } 100% { transform: translate(126px, -208px) rotate(-15deg) scale(0.88); opacity: 0; } }
@keyframes gw-boxsettle { 0% { opacity: 1; transform: translateY(0) scale(1); } 100% { opacity: 0.45; transform: translateY(22px) scale(0.96); } }
@keyframes gw-shadow { 0%, 100% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(0.86); opacity: 0.26; } }
@keyframes gw-glow { 0% { opacity: 0; transform: scale(0.2); } 40% { opacity: 0.95; transform: scale(1.1); } 100% { opacity: 0; transform: scale(1.8); } }
@keyframes gw-out-up { 0% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(-16px); } }
@keyframes gw-out-down { 0% { opacity: 1; transform: translateY(0) scale(1); } 100% { opacity: 0; transform: translateY(14px) scale(0.95); } }
@keyframes gw-cardrise { 0% { transform: translateY(190px) scale(0.5); opacity: 0; } 50% { opacity: 1; } 76% { transform: translateY(-10px) scale(1.03); } 100% { transform: translateY(0) scale(1); opacity: 1; } }
@keyframes gw-reveal { 0% { transform: scale(0.3) rotate(-6deg); opacity: 0; } 60% { transform: scale(1.09) rotate(2deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); } }

/* Confetti trajectories: out and up from the centre, then down past the burst, tumbling as they go. */
@keyframes gw-cf-1 { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 12% { opacity: 1; } 45% { transform: translate(-74px, -58px) rotate(150deg); opacity: 1; } 100% { transform: translate(-104px, 96px) rotate(430deg); opacity: 0; } }
@keyframes gw-cf-2 { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 12% { opacity: 1; } 45% { transform: translate(66px, -66px) rotate(-140deg); opacity: 1; } 100% { transform: translate(98px, 90px) rotate(-410deg); opacity: 0; } }
@keyframes gw-cf-3 { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 12% { opacity: 1; } 45% { transform: translate(-32px, -84px) rotate(120deg); opacity: 1; } 100% { transform: translate(-46px, 104px) rotate(390deg); opacity: 0; } }
@keyframes gw-cf-4 { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 12% { opacity: 1; } 45% { transform: translate(30px, -88px) rotate(-118deg); opacity: 1; } 100% { transform: translate(44px, 100px) rotate(-380deg); opacity: 0; } }
@keyframes gw-cf-5 { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 12% { opacity: 1; } 45% { transform: translate(-96px, -22px) rotate(165deg); opacity: 1; } 100% { transform: translate(-118px, 82px) rotate(450deg); opacity: 0; } }
@keyframes gw-cf-6 { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 12% { opacity: 1; } 45% { transform: translate(92px, -28px) rotate(-160deg); opacity: 1; } 100% { transform: translate(114px, 86px) rotate(-440deg); opacity: 0; } }

/* ---- Box-only reveal (recipient Accept page) ----
   The same faux-3D box, embedded in the accept card with no JS: the scene sits inside a <label>
   (.gw-boxslot) for the page's reveal checkbox (.gw-open-toggle), so tapping the box (or "Open it")
   checks the box and the :is() companions above run the exact open choreography that .is-open drives
   in the interactive composer. */
.gw-stage--box { height: 300px; }
.gw-stage--box .gw-boxwrap { top: 28px; }
.gw-boxslot { display: block; cursor: pointer; margin-top: 16px; }
/* Once opened the label must not re-toggle (a stray tap would wrap the gift back up). */
.gw-open-toggle:checked ~ .gw-boxslot { pointer-events: none; }
/* The hanging tag rides the box body, not the lid; interactive mode re-renders it away on open. */
.gw-open-toggle:checked ~ .gw-boxslot .gw-tag3d { opacity: 0; transition: opacity 0.3s ease 0.6s; }

/* Box-only + RevealContent (Accept page): the composer preview's rising card + gift, checkbox-driven.
   The content is in the DOM from first paint (static SSR), so hold it invisible and only start the rise
   animations once the toggle opens the box; the stage grows and the box settles low, exactly like the
   interactive .is-open choreography above. */
.gw-stage--box .gw-reveal-content { opacity: 0; }
.gw-stage--box :is(.gw-rc-card, .gw-rc-gift) { animation: none; }
.gw-open-toggle:checked ~ .gw-boxslot .gw-stage--box { height: 500px; transition: height 0.75s cubic-bezier(0.5, 0.05, 0.3, 1); }
.gw-open-toggle:checked ~ .gw-boxslot .gw-boxwrap { transform: translateY(218px); z-index: 7; }
.gw-open-toggle:checked ~ .gw-boxslot .gw-reveal-content { opacity: 1; }
.gw-open-toggle:checked ~ .gw-boxslot .gw-rc-card { animation: gw-cardrise 0.85s cubic-bezier(0.16, 0.9, 0.3, 1.04) 1.35s both; }
.gw-open-toggle:checked ~ .gw-boxslot .gw-rc-gift { animation: gw-reveal 0.65s cubic-bezier(0.34, 1.56, 0.64, 1) 2.05s both; }
/* The surprise burst keeps its own per-piece animations (twelve trajectories); holding them paused
   until the toggle opens is simpler than re-declaring each one here. */
.gw-stage--box :is(.gw-rc-surprise, .gw-cf) { animation-play-state: paused; }
.gw-open-toggle:checked ~ .gw-boxslot :is(.gw-rc-surprise, .gw-cf) { animation-play-state: running; }

/* ---- Open / replay controls for a box-only reveal (dashboard detail pages) ----
   The gifter (and the recipient, coming back to it) can play the reveal as many times as they like:
   "Reveal" is a label for the toggle, "Replay the reveal" takes its place once the box is open and
   js/reveal.js re-arms it by unchecking, flushing and re-checking that same toggle. */
.gw-open-toggle { position: absolute; opacity: 0; width: 0; height: 0; }
.gw-boxctl { display: flex; justify-content: center; margin-top: 14px; }
.gw-boxctl--replay { display: none; }
.gw-open-toggle:checked ~ .gw-boxctl--open { display: none; }
.gw-open-toggle:checked ~ .gw-boxctl--replay { display: flex; }
/* Replay reset (js/reveal.js): the box settling low and the stage growing are transitions, not
   animations, so they would hold their opened values across the uncheck/re-check. Killing their
   transitions for that one flush snaps the scene back to closed, and the replay plays in full. */
.gw-noanim :is(.gw-boxwrap, .gw-stage--box, .gw-tag3d) { transition: none !important; }

/* Reduced motion: keep the box readable, drop the looping/entrance motion. */
@media (prefers-reduced-motion: reduce) {
    .gw-amb, .gw-wbox, .gw-box3d-bob, .gw-box-shadow, .gw-glyph--wrap, .gw-wcard, .gw-wtag,
    :is(.gw-reveal.is-open, .gw-open-toggle:checked ~ .gw-boxslot .gw-reveal) :is(.gw-lid, .gw-boxsettle, .gw-glow, .gw-box3d-bob),
    .gw-rc-card, .gw-rc-gift, .gw-rc-surprise, .gw-replay { animation: none !important; }
    .gw-boxwrap, .gw-stage--box { transition: none; }
    /* The confetti is pure motion; with motion off there is nothing left to show. */
    .gw-cf { display: none; }
}
/* ==== GENERATED by docs/design/gift-wrap/gen-gift-wrap-css.js — paper tokens, paper patterns, ambient
   loops, topper tint filters (Technique B, wrap box) and layered silhouette discs (Technique A, reveal box). */
/* Regenerate rather than hand-editing this block. Static geometry + keyframes live above/below. */

/* Paper palette tokens: accent (--ra), soft bg (--ra-soft), room bg (--rb), dark ribbon (--ra-dk) */
.gw-pal--bc{--ra:#2F7DD1;--ra-soft:#E8F2FC;--rb:#F4F9FE;--ra-dk:#355896;}
.gw-pal--ph{--ra:#E8186D;--ra-soft:#FFF0F6;--rb:#FFF7FB;--ra-dk:#af1554;}
.gw-pal--ys{--ra:#B07A12;--ra-soft:#FDF4DC;--rb:#FDFAF0;--ra-dk:#8a5618;}
.gw-pal--ps{--ra:#DB338A;--ra-soft:#FFF1F7;--rb:#FFF8FB;--ra-dk:#a62767;}
.gw-pal--ss{--ra:#8C93A3;--ra-soft:#F1F2F5;--rb:#F9FAFB;--ra-dk:#726678;}
.gw-pal--pd{--ra:#7C4DFF;--ra-soft:#FBFAFE;--rb:#FCFBFF;--ra-dk:#6838b5;}

/* Wrapping paper patterns (paperStyle) */
.gw-paper--bc{background-color:#E8F2FC;background-image:radial-gradient(circle, rgba(47,125,209,0.55) 5.5px, transparent 6.5px);background-size:24px 24px;}
.gw-paper--ph{background-color:#FFF0F6;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Cpath d='M13 21.6C13 21.6 3.4 15.2 3.4 9.5C3.4 6.2 5.9 4 8.6 4C10.5 4 12.2 5.1 13 6.8C13.8 5.1 15.5 4 17.4 4C20.1 4 22.6 6.2 22.6 9.5C22.6 15.2 13 21.6 13 21.6Z' fill='%23E8186D' fill-opacity='0.55'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Cpath d='M13 21.6C13 21.6 3.4 15.2 3.4 9.5C3.4 6.2 5.9 4 8.6 4C10.5 4 12.2 5.1 13 6.8C13.8 5.1 15.5 4 17.4 4C20.1 4 22.6 6.2 22.6 9.5C22.6 15.2 13 21.6 13 21.6Z' fill='%23E8186D' fill-opacity='0.28'/%3E%3C/svg%3E");background-size:26px 26px, 18px 18px;background-position:0 0, 13px 13px;}
.gw-paper--ys{background-color:#FDF4DC;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3E%3Cpolygon points='15,5.5 17.35,11.77 24.04,12.06 18.79,16.23 20.58,22.69 15,18.99 9.42,22.69 11.21,16.23 5.96,12.06 12.65,11.77' fill='%23E8B21F' fill-opacity='0.85'/%3E%3Cpolygon points='4,22.8 4.79,24.91 7.04,25.01 5.28,26.42 5.88,28.59 4,27.34 2.12,28.59 2.72,26.42 0.96,25.01 3.21,24.91' fill='%23E8B21F' fill-opacity='0.5'/%3E%3Cpolygon points='26,2.2 26.69,4.05 28.66,4.13 27.12,5.36 27.65,7.27 26,6.18 24.35,7.27 24.88,5.36 23.34,4.13 25.31,4.05' fill='%23E8B21F' fill-opacity='0.45'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 19 19'%3E%3Cpolygon points='9.5,6.1 10.34,8.34 12.73,8.45 10.86,9.94 11.5,12.25 9.5,10.93 7.5,12.25 8.14,9.94 6.27,8.45 8.66,8.34' fill='%23C98F14' fill-opacity='0.4'/%3E%3C/svg%3E");background-size:30px 30px, 19px 19px;background-position:0 0, 15px 9px;}
.gw-paper--ps{background-color:#fff;background-image:repeating-linear-gradient(90deg, rgba(219,51,138,0.9) 0 9px, rgba(219,51,138,0.55) 9px 11px, transparent 11px 22px);}
.gw-paper--ss{background-color:#F1F2F5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='34' viewBox='0 0 34 34'%3E%3Cpath d='M9 3.6C9.86 7.38 10.62 8.14 14.4 9C10.62 9.86 9.86 10.62 9 14.4C8.14 10.62 7.38 9.86 3.6 9C7.38 8.14 8.14 7.38 9 3.6Z' fill='%238C93A3' fill-opacity='0.55'/%3E%3Cpath d='M25 18.6C25.54 20.98 26.02 21.46 28.4 22C26.02 22.54 25.54 23.02 25 25.4C24.46 23.02 23.98 22.54 21.6 22C23.98 21.46 24.46 20.98 25 18.6Z' fill='%238C93A3' fill-opacity='0.4'/%3E%3Ccircle cx='28' cy='6' r='1.3' fill='%238C93A3' fill-opacity='0.45'/%3E%3Ccircle cx='6' cy='26' r='1.1' fill='%238C93A3' fill-opacity='0.35'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='21' height='21' viewBox='0 0 21 21'%3E%3Cpath d='M15 3.4C15.42 5.22 15.78 5.58 17.6 6C15.78 6.42 15.42 6.78 15 8.6C14.58 6.78 14.22 6.42 12.4 6C14.22 5.58 14.58 5.22 15 3.4Z' fill='%238C93A3' fill-opacity='0.3'/%3E%3Ccircle cx='5' cy='15' r='1' fill='%238C93A3' fill-opacity='0.28'/%3E%3C/svg%3E");background-size:34px 34px, 21px 21px;background-position:0 0, 11px 7px;}
.gw-paper--pd{background-color:#FBFAFE;background-image:radial-gradient(circle, rgba(232,24,109,0.6) 4px, transparent 5px), radial-gradient(circle, rgba(47,125,209,0.6) 3.4px, transparent 4.4px), radial-gradient(circle, rgba(217,166,46,0.6) 3.6px, transparent 4.6px), radial-gradient(circle, rgba(31,163,156,0.55) 3px, transparent 4px), radial-gradient(circle, rgba(124,77,255,0.5) 2.6px, transparent 3.6px);background-size:46px 46px, 38px 38px, 52px 52px, 34px 34px, 28px 28px;background-position:6px 8px, 24px 28px, 34px 12px, 2px 20px, 18px 2px;}

/* Ambient loops behind the box (loopStyle) */
.gw-amb--bc{background-image:radial-gradient(55% 45% at 35% 40%, rgba(47,125,209,0.12), transparent 70%);background-size:130% 130%;animation:gw-cross 12s linear infinite;}
.gw-amb--ph{background-image:radial-gradient(circle, rgba(232,24,109,0.14) 2.5px, transparent 3.5px);background-size:108px 108px;animation:gw-rise 8s linear infinite;}
.gw-amb--ys{background-image:linear-gradient(115deg, transparent 42%, rgba(176,122,18,0.12) 50%, transparent 58%);background-size:220% 100%;animation:gw-sweep 6s linear infinite;}
.gw-amb--ps{background-image:radial-gradient(70% 60% at 50% 100%, rgba(219,51,138,0.12), transparent 70%);animation:gw-breathe 6s ease-in-out infinite;}
.gw-amb--ss{background-image:radial-gradient(circle, rgba(140,147,163,0.16) 1.4px, transparent 2.4px);background-size:96px 96px;background-position:28px 24px;animation:gw-twinkle 3.2s ease-in-out infinite;}
.gw-amb--pd{background-image:radial-gradient(circle, rgba(124,77,255,0.16) 2.5px, transparent 3.5px),radial-gradient(circle, rgba(31,163,156,0.14) 2.5px, transparent 3.5px);background-size:100px 100px, 138px 138px;animation:gw-fall 8s linear infinite;}

/* Topper glyph tint filters per (topper, colour) — see bowEl. Used by the flat wrap box (buildBox2),
   which renders every topper as a tinted glyph. The faux-3D reveal box uses discs (Technique A) below. */
.gw-topper--bow.gw-tint--bc{filter:hue-rotate(226deg) saturate(1.05);}
.gw-topper--bow.gw-tint--ph{filter:hue-rotate(350deg) saturate(1.05);}
.gw-topper--bow.gw-tint--ys{filter:hue-rotate(54deg) saturate(1.05);}
.gw-topper--bow.gw-tint--ps{filter:hue-rotate(344deg) saturate(1.05);}
.gw-topper--bow.gw-tint--ss{filter:hue-rotate(237deg) saturate(1.05);}
.gw-topper--bow.gw-tint--pd{filter:hue-rotate(271deg) saturate(1.05);}
.gw-topper--bow.gw-tint--gold{filter:hue-rotate(57deg) saturate(1.05);}
.gw-topper--bow.gw-tint--terra{filter:hue-rotate(28deg) saturate(1.05);}
.gw-topper--bow.gw-tint--teal{filter:hue-rotate(192deg) saturate(1.05);}
.gw-topper--bow.gw-tint--violet{filter:hue-rotate(271deg) saturate(1.05);}
.gw-topper--bow.gw-tint--blue{filter:hue-rotate(230deg) saturate(1.05);}
.gw-topper--rosette.gw-tint--bc{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(166deg) brightness(1.12);}
.gw-topper--rosette.gw-tint--ph{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(290deg) brightness(1.12);}
.gw-topper--rosette.gw-tint--ys{filter:grayscale(1) sepia(1) saturate(1.9) hue-rotate(-13deg) brightness(1.02);}
.gw-topper--rosette.gw-tint--ps{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(284deg) brightness(1.12);}
.gw-topper--rosette.gw-tint--ss{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(177deg) brightness(1.12);}
.gw-topper--rosette.gw-tint--pd{filter:grayscale(1) sepia(1) saturate(3.6) hue-rotate(220deg) brightness(0.88);}
.gw-topper--rosette.gw-tint--gold{filter:grayscale(1) sepia(1) saturate(1.9) hue-rotate(-10deg) brightness(1.02);}
.gw-topper--rosette.gw-tint--terra{filter:grayscale(1) sepia(1) saturate(2.6) hue-rotate(-50deg) brightness(0.98);}
.gw-topper--rosette.gw-tint--teal{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(132deg) brightness(1.12);}
.gw-topper--rosette.gw-tint--violet{filter:grayscale(1) sepia(1) saturate(3.6) hue-rotate(220deg) brightness(0.88);}
.gw-topper--rosette.gw-tint--blue{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(170deg) brightness(1.12);}
.gw-topper--flower.gw-tint--bc{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(166deg) brightness(1.12);}
.gw-topper--flower.gw-tint--ph{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(290deg) brightness(1.12);}
.gw-topper--flower.gw-tint--ys{filter:grayscale(1) sepia(1) saturate(1.9) hue-rotate(-13deg) brightness(1.02);}
.gw-topper--flower.gw-tint--ps{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(284deg) brightness(1.12);}
.gw-topper--flower.gw-tint--ss{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(177deg) brightness(1.12);}
.gw-topper--flower.gw-tint--pd{filter:grayscale(1) sepia(1) saturate(3.6) hue-rotate(220deg) brightness(0.88);}
.gw-topper--flower.gw-tint--gold{filter:grayscale(1) sepia(1) saturate(1.9) hue-rotate(-10deg) brightness(1.02);}
.gw-topper--flower.gw-tint--terra{filter:grayscale(1) sepia(1) saturate(2.6) hue-rotate(-50deg) brightness(0.98);}
.gw-topper--flower.gw-tint--teal{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(132deg) brightness(1.12);}
.gw-topper--flower.gw-tint--violet{filter:grayscale(1) sepia(1) saturate(3.6) hue-rotate(220deg) brightness(0.88);}
.gw-topper--flower.gw-tint--blue{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(170deg) brightness(1.12);}
.gw-topper--star.gw-tint--bc{filter:hue-rotate(163deg) saturate(1.05);}
.gw-topper--star.gw-tint--ph{filter:hue-rotate(287deg) saturate(1.05);}
.gw-topper--star.gw-tint--ys{filter:hue-rotate(351deg) saturate(1.05);}
.gw-topper--star.gw-tint--ps{filter:hue-rotate(281deg) saturate(1.05);}
.gw-topper--star.gw-tint--ss{filter:hue-rotate(174deg) saturate(1.05);}
.gw-topper--star.gw-tint--pd{filter:hue-rotate(208deg) saturate(1.05);}
.gw-topper--star.gw-tint--gold{filter:none;}
.gw-topper--star.gw-tint--terra{filter:hue-rotate(325deg) saturate(1.05);}
.gw-topper--star.gw-tint--teal{filter:hue-rotate(129deg) saturate(1.05);}
.gw-topper--star.gw-tint--violet{filter:hue-rotate(208deg) saturate(1.05);}
.gw-topper--star.gw-tint--blue{filter:hue-rotate(167deg) saturate(1.05);}
.gw-topper--sprig.gw-tint--bc{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(166deg) brightness(1.12);}
.gw-topper--sprig.gw-tint--ph{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(290deg) brightness(1.12);}
.gw-topper--sprig.gw-tint--ys{filter:grayscale(1) sepia(1) saturate(1.9) hue-rotate(-13deg) brightness(1.02);}
.gw-topper--sprig.gw-tint--ps{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(284deg) brightness(1.12);}
.gw-topper--sprig.gw-tint--ss{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(177deg) brightness(1.12);}
.gw-topper--sprig.gw-tint--pd{filter:grayscale(1) sepia(1) saturate(3.6) hue-rotate(220deg) brightness(0.88);}
.gw-topper--sprig.gw-tint--gold{filter:grayscale(1) sepia(1) saturate(1.9) hue-rotate(-10deg) brightness(1.02);}
.gw-topper--sprig.gw-tint--terra{filter:grayscale(1) sepia(1) saturate(2.6) hue-rotate(-50deg) brightness(0.98);}
.gw-topper--sprig.gw-tint--teal{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(132deg) brightness(1.12);}
.gw-topper--sprig.gw-tint--violet{filter:grayscale(1) sepia(1) saturate(3.6) hue-rotate(220deg) brightness(0.88);}
.gw-topper--sprig.gw-tint--blue{filter:grayscale(1) sepia(1) saturate(3) hue-rotate(170deg) brightness(1.12);}
.gw-topper--heart.gw-tint--bc{filter:hue-rotate(211deg) saturate(1.05);}
.gw-topper--heart.gw-tint--ph{filter:hue-rotate(335deg) saturate(1.05);}
.gw-topper--heart.gw-tint--ys{filter:hue-rotate(39deg) saturate(1.05);}
.gw-topper--heart.gw-tint--ps{filter:hue-rotate(329deg) saturate(1.05);}
.gw-topper--heart.gw-tint--ss{filter:hue-rotate(222deg) saturate(1.05);}
.gw-topper--heart.gw-tint--pd{filter:hue-rotate(256deg) saturate(1.05);}
.gw-topper--heart.gw-tint--gold{filter:hue-rotate(42deg) saturate(1.05);}
.gw-topper--heart.gw-tint--terra{filter:hue-rotate(13deg) saturate(1.05);}
.gw-topper--heart.gw-tint--teal{filter:hue-rotate(177deg) saturate(1.05);}
.gw-topper--heart.gw-tint--violet{filter:hue-rotate(256deg) saturate(1.05);}
.gw-topper--heart.gw-tint--blue{filter:hue-rotate(215deg) saturate(1.05);}

/* Tint as a custom property, so the disc fills below can color-mix() against it. */
.gw-tint--bc{--tint:#2F7DD1;}
.gw-tint--ph{--tint:#E8186D;}
.gw-tint--ys{--tint:#B07A12;}
.gw-tint--ps{--tint:#DB338A;}
.gw-tint--ss{--tint:#8C93A3;}
.gw-tint--pd{--tint:#7C4DFF;}
.gw-tint--gold{--tint:#D9A62E;}
.gw-tint--terra{--tint:#D95A38;}
.gw-tint--teal{--tint:#1FA39C;}
.gw-tint--violet{--tint:#7C4DFF;}
.gw-tint--blue{--tint:#5B7FB0;}

/* Disc wrapper: spans the box (like the lid) so layers sit in the same 270×240 coordinate space. */
.gw-discsA{position:absolute;inset:0;}
.gw-discsA--heart{transform:translateX(6px);}
.gw-discsA > div{position:absolute;}
.gw-discsA > div > div{position:absolute;inset:0;}

/* bow — 3 layer(s) of extruded silhouette */
.gw-dL--bow-0{left:126.3px;top:62.6px;width:47.4px;height:26.3px;}
.gw-dw--bow-0-3{clip-path:polygon(36.3px 13.9px,36.9px 13.5px,37.7px 13.1px,38.6px 12.6px,39.6px 12.2px,40.2px 11.6px,40.6px 11.2px,40.5px 10.7px,40.0px 10.4px,39.1px 10.1px,38.0px 9.9px,36.6px 9.8px,35.1px 9.9px,33.5px 10.0px,31.9px 10.2px,30.2px 10.6px,28.4px 11.1px,26.7px 11.8px,23.7px 13.9px,25.6px 11.8px,25.6px 11.1px,25.0px 10.6px,24.1px 10.2px,23.0px 10.0px,21.7px 9.9px,20.2px 9.8px,18.7px 9.9px,17.2px 10.1px,15.7px 10.4px,14.3px 10.7px,13.2px 11.2px,12.4px 11.6px,11.9px 12.2px,11.7px 12.6px,11.6px 13.1px,11.5px 13.5px,11.1px 13.9px,10.6px 14.3px,9.7px 14.7px,8.8px 15.2px,7.9px 15.6px,7.2px 16.2px,6.9px 16.6px,6.9px 17.1px,7.4px 17.4px,8.3px 17.7px,9.4px 17.9px,10.8px 18.0px,12.3px 17.9px,13.9px 17.8px,15.6px 17.6px,17.3px 17.2px,19.0px 16.7px,20.8px 16.0px,23.7px 13.9px,21.8px 16.0px,21.9px 16.7px,22.4px 17.2px,23.3px 17.6px,24.4px 17.8px,25.7px 17.9px,27.2px 18.0px,28.7px 17.9px,30.3px 17.7px,31.8px 17.4px,33.1px 17.1px,34.2px 16.6px,35.0px 16.2px,35.5px 15.6px,35.7px 15.2px,35.8px 14.7px,36.0px 14.3px);background:color-mix(in srgb, #2a0616 50.39%, var(--tint));}
.gw-dw--bow-0-2{clip-path:polygon(36.3px 12.7px,36.9px 12.3px,37.7px 11.9px,38.6px 11.5px,39.6px 11.0px,40.2px 10.5px,40.6px 10.0px,40.5px 9.6px,40.0px 9.2px,39.1px 8.9px,38.0px 8.7px,36.6px 8.7px,35.1px 8.7px,33.5px 8.8px,31.9px 9.1px,30.2px 9.4px,28.4px 9.9px,26.7px 10.7px,23.7px 12.7px,25.6px 10.7px,25.6px 9.9px,25.0px 9.4px,24.1px 9.1px,23.0px 8.8px,21.7px 8.7px,20.2px 8.7px,18.7px 8.7px,17.2px 8.9px,15.7px 9.2px,14.3px 9.6px,13.2px 10.0px,12.4px 10.5px,11.9px 11.0px,11.7px 11.5px,11.6px 11.9px,11.5px 12.3px,11.1px 12.7px,10.6px 13.1px,9.7px 13.5px,8.8px 14.0px,7.9px 14.5px,7.2px 15.0px,6.9px 15.5px,6.9px 15.9px,7.4px 16.3px,8.3px 16.5px,9.4px 16.7px,10.8px 16.8px,12.3px 16.8px,13.9px 16.6px,15.6px 16.4px,17.3px 16.1px,19.0px 15.6px,20.8px 14.8px,23.7px 12.7px,21.8px 14.8px,21.9px 15.6px,22.4px 16.1px,23.3px 16.4px,24.4px 16.6px,25.7px 16.8px,27.2px 16.8px,28.7px 16.7px,30.3px 16.5px,31.8px 16.3px,33.1px 15.9px,34.2px 15.5px,35.0px 15.0px,35.5px 14.5px,35.7px 14.0px,35.8px 13.5px,36.0px 13.1px);background:color-mix(in srgb, #2a0616 45.73%, var(--tint));}
.gw-dw--bow-0-1{clip-path:polygon(36.3px 11.6px,36.9px 11.2px,37.7px 10.8px,38.6px 10.3px,39.6px 9.8px,40.2px 9.3px,40.6px 8.8px,40.5px 8.4px,40.0px 8.0px,39.1px 7.8px,38.0px 7.6px,36.6px 7.5px,35.1px 7.5px,33.5px 7.7px,31.9px 7.9px,30.2px 8.2px,28.4px 8.7px,26.7px 9.5px,23.7px 11.6px,25.6px 9.5px,25.6px 8.7px,25.0px 8.2px,24.1px 7.9px,23.0px 7.7px,21.7px 7.5px,20.2px 7.5px,18.7px 7.6px,17.2px 7.8px,15.7px 8.0px,14.3px 8.4px,13.2px 8.8px,12.4px 9.3px,11.9px 9.8px,11.7px 10.3px,11.6px 10.8px,11.5px 11.2px,11.1px 11.6px,10.6px 12.0px,9.7px 12.4px,8.8px 12.8px,7.9px 13.3px,7.2px 13.8px,6.9px 14.3px,6.9px 14.7px,7.4px 15.1px,8.3px 15.4px,9.4px 15.6px,10.8px 15.6px,12.3px 15.6px,13.9px 15.5px,15.6px 15.2px,17.3px 14.9px,19.0px 14.4px,20.8px 13.6px,23.7px 11.6px,21.8px 13.6px,21.9px 14.4px,22.4px 14.9px,23.3px 15.2px,24.4px 15.5px,25.7px 15.6px,27.2px 15.6px,28.7px 15.6px,30.3px 15.4px,31.8px 15.1px,33.1px 14.7px,34.2px 14.3px,35.0px 13.8px,35.5px 13.3px,35.7px 12.8px,35.8px 12.4px,36.0px 12.0px);background:color-mix(in srgb, #2a0616 41.06%, var(--tint));}
.gw-dt--bow-0{clip-path:polygon(36.3px 10.4px,36.9px 10.0px,37.7px 9.6px,38.6px 9.1px,39.6px 8.7px,40.2px 8.1px,40.6px 7.7px,40.5px 7.2px,40.0px 6.9px,39.1px 6.6px,38.0px 6.4px,36.6px 6.3px,35.1px 6.4px,33.5px 6.5px,31.9px 6.7px,30.2px 7.1px,28.4px 7.6px,26.7px 8.3px,23.7px 10.4px,25.6px 8.3px,25.6px 7.6px,25.0px 7.1px,24.1px 6.7px,23.0px 6.5px,21.7px 6.4px,20.2px 6.3px,18.7px 6.4px,17.2px 6.6px,15.7px 6.9px,14.3px 7.2px,13.2px 7.7px,12.4px 8.1px,11.9px 8.7px,11.7px 9.1px,11.6px 9.6px,11.5px 10.0px,11.1px 10.4px,10.6px 10.8px,9.7px 11.2px,8.8px 11.7px,7.9px 12.1px,7.2px 12.7px,6.9px 13.1px,6.9px 13.6px,7.4px 13.9px,8.3px 14.2px,9.4px 14.4px,10.8px 14.5px,12.3px 14.4px,13.9px 14.3px,15.6px 14.1px,17.3px 13.7px,19.0px 13.2px,20.8px 12.5px,23.7px 10.4px,21.8px 12.5px,21.9px 13.2px,22.4px 13.7px,23.3px 14.1px,24.4px 14.3px,25.7px 14.4px,27.2px 14.5px,28.7px 14.4px,30.3px 14.2px,31.8px 13.9px,33.1px 13.6px,34.2px 13.1px,35.0px 12.7px,35.5px 12.1px,35.7px 11.7px,35.8px 11.2px,36.0px 10.8px);background:linear-gradient(174deg, color-mix(in srgb, #ffffff 38.4%, var(--tint)) 10%, color-mix(in srgb, #ffffff 9.6%, var(--tint)) 55%, color-mix(in srgb, #2a0616 15.2%, var(--tint)) 96%);}
.gw-dL--bow-1{left:105.6px;top:45.7px;width:88.9px;height:44.6px;}
.gw-dw--bow-1-6{clip-path:polygon(69.7px 24.8px,71.2px 24.0px,73.0px 23.2px,75.1px 22.2px,76.8px 21.2px,78.1px 20.2px,78.5px 19.3px,78.1px 18.4px,77.0px 17.7px,75.1px 17.2px,72.7px 16.9px,69.9px 16.8px,66.9px 16.9px,63.6px 17.1px,60.2px 17.7px,56.8px 18.4px,53.2px 19.6px,49.2px 21.5px,48.1px 21.7px,49.1px 19.6px,48.6px 18.4px,47.3px 17.5px,45.3px 16.9px,42.9px 16.5px,40.2px 16.4px,37.2px 16.4px,34.2px 16.6px,31.1px 17.0px,28.2px 17.6px,25.6px 18.4px,23.6px 19.4px,22.2px 20.4px,21.4px 21.4px,21.0px 22.4px,20.7px 23.2px,20.2px 24.0px,19.2px 24.8px,17.7px 25.6px,15.8px 26.4px,13.8px 27.4px,12.0px 28.4px,10.8px 29.4px,10.3px 30.3px,10.7px 31.2px,11.9px 31.9px,13.8px 32.4px,16.2px 32.7px,19.0px 32.8px,22.0px 32.7px,25.3px 32.5px,28.6px 31.9px,32.1px 31.2px,35.7px 30.0px,39.7px 28.1px,40.8px 27.9px,39.8px 30.0px,40.3px 31.2px,41.6px 32.1px,43.6px 32.7px,45.9px 33.1px,48.7px 33.2px,51.6px 33.2px,54.7px 33.0px,57.8px 32.6px,60.7px 32.0px,63.2px 31.2px,65.3px 30.2px,66.7px 29.2px,67.5px 28.2px,67.9px 27.2px,68.2px 26.4px,68.7px 25.6px);background:color-mix(in srgb, #2a0616 39.04%, var(--tint));}
.gw-dw--bow-1-5{clip-path:polygon(69.7px 23.6px,71.2px 22.8px,73.0px 22.0px,75.1px 21.1px,76.8px 20.1px,78.1px 19.1px,78.5px 18.1px,78.1px 17.2px,77.0px 16.6px,75.1px 16.1px,72.7px 15.7px,69.9px 15.6px,66.9px 15.7px,63.6px 16.0px,60.2px 16.5px,56.8px 17.3px,53.2px 18.4px,49.2px 20.3px,48.1px 20.5px,49.1px 18.5px,48.6px 17.2px,47.3px 16.4px,45.3px 15.8px,42.9px 15.4px,40.2px 15.2px,37.2px 15.2px,34.2px 15.4px,31.1px 15.9px,28.2px 16.5px,25.6px 17.3px,23.6px 18.2px,22.2px 19.2px,21.4px 20.2px,21.0px 21.2px,20.7px 22.1px,20.2px 22.9px,19.2px 23.6px,17.7px 24.4px,15.8px 25.3px,13.8px 26.2px,12.0px 27.2px,10.8px 28.2px,10.3px 29.2px,10.7px 30.0px,11.9px 30.7px,13.8px 31.2px,16.2px 31.5px,19.0px 31.6px,22.0px 31.6px,25.3px 31.3px,28.6px 30.8px,32.1px 30.0px,35.7px 28.9px,39.7px 27.0px,40.8px 26.7px,39.8px 28.8px,40.3px 30.0px,41.6px 30.9px,43.6px 31.5px,45.9px 31.9px,48.7px 32.1px,51.6px 32.0px,54.7px 31.8px,57.8px 31.4px,60.7px 30.8px,63.2px 30.0px,65.3px 29.1px,66.7px 28.1px,67.5px 27.0px,67.9px 26.1px,68.2px 25.2px,68.7px 24.4px);background:color-mix(in srgb, #2a0616 36.17%, var(--tint));}
.gw-dw--bow-1-4{clip-path:polygon(69.7px 22.5px,71.2px 21.7px,73.0px 20.8px,75.1px 19.9px,76.8px 18.9px,78.1px 17.9px,78.5px 16.9px,78.1px 16.1px,77.0px 15.4px,75.1px 14.9px,72.7px 14.6px,69.9px 14.5px,66.9px 14.5px,63.6px 14.8px,60.2px 15.3px,56.8px 16.1px,53.2px 17.2px,49.2px 19.1px,48.1px 19.4px,49.1px 17.3px,48.6px 16.1px,47.3px 15.2px,45.3px 14.6px,42.9px 14.2px,40.2px 14.0px,37.2px 14.1px,34.2px 14.3px,31.1px 14.7px,28.2px 15.3px,25.6px 16.1px,23.6px 17.0px,22.2px 18.0px,21.4px 19.1px,21.0px 20.0px,20.7px 20.9px,20.2px 21.7px,19.2px 22.5px,17.7px 23.3px,15.8px 24.1px,13.8px 25.0px,12.0px 26.0px,10.8px 27.0px,10.3px 28.0px,10.7px 28.9px,11.9px 29.5px,13.8px 30.0px,16.2px 30.4px,19.0px 30.5px,22.0px 30.4px,25.3px 30.1px,28.6px 29.6px,32.1px 28.8px,35.7px 27.7px,39.7px 25.8px,40.8px 25.6px,39.8px 27.6px,40.3px 28.9px,41.6px 29.7px,43.6px 30.3px,45.9px 30.7px,48.7px 30.9px,51.6px 30.9px,54.7px 30.7px,57.8px 30.2px,60.7px 29.6px,63.2px 28.8px,65.3px 27.9px,66.7px 26.9px,67.5px 25.9px,67.9px 24.9px,68.2px 24.0px,68.7px 23.2px);background:color-mix(in srgb, #2a0616 33.3%, var(--tint));}
.gw-dw--bow-1-3{clip-path:polygon(69.7px 21.3px,71.2px 20.5px,73.0px 19.7px,75.1px 18.7px,76.8px 17.7px,78.1px 16.7px,78.5px 15.8px,78.1px 14.9px,77.0px 14.2px,75.1px 13.7px,72.7px 13.4px,69.9px 13.3px,66.9px 13.4px,63.6px 13.6px,60.2px 14.2px,56.8px 14.9px,53.2px 16.1px,49.2px 18.0px,48.1px 18.2px,49.1px 16.1px,48.6px 14.9px,47.3px 14.0px,45.3px 13.4px,42.9px 13.0px,40.2px 12.9px,37.2px 12.9px,34.2px 13.1px,31.1px 13.5px,28.2px 14.1px,25.6px 14.9px,23.6px 15.9px,22.2px 16.9px,21.4px 17.9px,21.0px 18.9px,20.7px 19.7px,20.2px 20.5px,19.2px 21.3px,17.7px 22.1px,15.8px 22.9px,13.8px 23.9px,12.0px 24.9px,10.8px 25.9px,10.3px 26.8px,10.7px 27.7px,11.9px 28.4px,13.8px 28.9px,16.2px 29.2px,19.0px 29.3px,22.0px 29.2px,25.3px 29.0px,28.6px 28.4px,32.1px 27.7px,35.7px 26.5px,39.7px 24.6px,40.8px 24.4px,39.8px 26.5px,40.3px 27.7px,41.6px 28.6px,43.6px 29.2px,45.9px 29.6px,48.7px 29.7px,51.6px 29.7px,54.7px 29.5px,57.8px 29.1px,60.7px 28.5px,63.2px 27.7px,65.3px 26.7px,66.7px 25.7px,67.5px 24.7px,67.9px 23.7px,68.2px 22.9px,68.7px 22.1px);background:color-mix(in srgb, #2a0616 30.44%, var(--tint));}
.gw-dw--bow-1-2{clip-path:polygon(69.7px 20.1px,71.2px 19.3px,73.0px 18.5px,75.1px 17.6px,76.8px 16.6px,78.1px 15.6px,78.5px 14.6px,78.1px 13.7px,77.0px 13.1px,75.1px 12.6px,72.7px 12.2px,69.9px 12.1px,66.9px 12.2px,63.6px 12.5px,60.2px 13.0px,56.8px 13.8px,53.2px 14.9px,49.2px 16.8px,48.1px 17.0px,49.1px 15.0px,48.6px 13.7px,47.3px 12.9px,45.3px 12.3px,42.9px 11.9px,40.2px 11.7px,37.2px 11.7px,34.2px 11.9px,31.1px 12.4px,28.2px 13.0px,25.6px 13.8px,23.6px 14.7px,22.2px 15.7px,21.4px 16.7px,21.0px 17.7px,20.7px 18.6px,20.2px 19.4px,19.2px 20.1px,17.7px 20.9px,15.8px 21.8px,13.8px 22.7px,12.0px 23.7px,10.8px 24.7px,10.3px 25.7px,10.7px 26.5px,11.9px 27.2px,13.8px 27.7px,16.2px 28.0px,19.0px 28.1px,22.0px 28.1px,25.3px 27.8px,28.6px 27.3px,32.1px 26.5px,35.7px 25.4px,39.7px 23.5px,40.8px 23.2px,39.8px 25.3px,40.3px 26.5px,41.6px 27.4px,43.6px 28.0px,45.9px 28.4px,48.7px 28.6px,51.6px 28.5px,54.7px 28.3px,57.8px 27.9px,60.7px 27.3px,63.2px 26.5px,65.3px 25.6px,66.7px 24.6px,67.5px 23.5px,67.9px 22.6px,68.2px 21.7px,68.7px 20.9px);background:color-mix(in srgb, #2a0616 27.57%, var(--tint));}
.gw-dw--bow-1-1{clip-path:polygon(69.7px 19.0px,71.2px 18.2px,73.0px 17.3px,75.1px 16.4px,76.8px 15.4px,78.1px 14.4px,78.5px 13.4px,78.1px 12.6px,77.0px 11.9px,75.1px 11.4px,72.7px 11.1px,69.9px 11.0px,66.9px 11.0px,63.6px 11.3px,60.2px 11.8px,56.8px 12.6px,53.2px 13.7px,49.2px 15.6px,48.1px 15.9px,49.1px 13.8px,48.6px 12.6px,47.3px 11.7px,45.3px 11.1px,42.9px 10.7px,40.2px 10.5px,37.2px 10.6px,34.2px 10.8px,31.1px 11.2px,28.2px 11.8px,25.6px 12.6px,23.6px 13.5px,22.2px 14.5px,21.4px 15.6px,21.0px 16.5px,20.7px 17.4px,20.2px 18.2px,19.2px 19.0px,17.7px 19.8px,15.8px 20.6px,13.8px 21.5px,12.0px 22.5px,10.8px 23.5px,10.3px 24.5px,10.7px 25.4px,11.9px 26.0px,13.8px 26.5px,16.2px 26.9px,19.0px 27.0px,22.0px 26.9px,25.3px 26.6px,28.6px 26.1px,32.1px 25.3px,35.7px 24.2px,39.7px 22.3px,40.8px 22.1px,39.8px 24.1px,40.3px 25.4px,41.6px 26.2px,43.6px 26.8px,45.9px 27.2px,48.7px 27.4px,51.6px 27.4px,54.7px 27.2px,57.8px 26.7px,60.7px 26.1px,63.2px 25.3px,65.3px 24.4px,66.7px 23.4px,67.5px 22.4px,67.9px 21.4px,68.2px 20.5px,68.7px 19.7px);background:color-mix(in srgb, #2a0616 24.71%, var(--tint));}
.gw-dt--bow-1{clip-path:polygon(69.7px 17.8px,71.2px 17.0px,73.0px 16.2px,75.1px 15.2px,76.8px 14.2px,78.1px 13.2px,78.5px 12.3px,78.1px 11.4px,77.0px 10.7px,75.1px 10.2px,72.7px 9.9px,69.9px 9.8px,66.9px 9.9px,63.6px 10.1px,60.2px 10.7px,56.8px 11.4px,53.2px 12.6px,49.2px 14.5px,48.1px 14.7px,49.1px 12.6px,48.6px 11.4px,47.3px 10.5px,45.3px 9.9px,42.9px 9.5px,40.2px 9.4px,37.2px 9.4px,34.2px 9.6px,31.1px 10.0px,28.2px 10.6px,25.6px 11.4px,23.6px 12.4px,22.2px 13.4px,21.4px 14.4px,21.0px 15.4px,20.7px 16.2px,20.2px 17.0px,19.2px 17.8px,17.7px 18.6px,15.8px 19.4px,13.8px 20.4px,12.0px 21.4px,10.8px 22.4px,10.3px 23.3px,10.7px 24.2px,11.9px 24.9px,13.8px 25.4px,16.2px 25.7px,19.0px 25.8px,22.0px 25.7px,25.3px 25.5px,28.6px 24.9px,32.1px 24.2px,35.7px 23.0px,39.7px 21.1px,40.8px 20.9px,39.8px 23.0px,40.3px 24.2px,41.6px 25.1px,43.6px 25.7px,45.9px 26.1px,48.7px 26.2px,51.6px 26.2px,54.7px 26.0px,57.8px 25.6px,60.7px 25.0px,63.2px 24.2px,65.3px 23.2px,66.7px 22.2px,67.5px 21.2px,67.9px 20.2px,68.2px 19.4px,68.7px 18.6px);background:linear-gradient(174deg, color-mix(in srgb, #ffffff 60.24%, var(--tint)) 10%, color-mix(in srgb, #ffffff 18.96%, var(--tint)) 55%, color-mix(in srgb, #2a0616 7.92%, var(--tint)) 96%);}
.gw-dL--bow-2{left:136.4px;top:52.7px;width:27.3px;height:17.2px;}
.gw-dw--bow-2-2{clip-path:polygon(23.1px 8.4px,23.4px 8.1px,23.7px 7.8px,23.8px 7.5px,23.9px 7.3px,23.9px 7.0px,23.8px 6.8px,23.6px 6.5px,23.4px 6.3px,23.1px 6.1px,22.7px 5.9px,22.2px 5.7px,21.7px 5.5px,21.1px 5.4px,20.5px 5.3px,19.8px 5.2px,19.1px 5.2px,18.3px 5.1px,17.5px 5.1px,16.6px 5.1px,15.8px 5.2px,14.9px 5.2px,14.0px 5.3px,13.1px 5.4px,12.2px 5.5px,11.3px 5.7px,10.5px 5.9px,9.6px 6.1px,8.8px 6.3px,8.1px 6.5px,7.3px 6.8px,6.6px 7.0px,6.0px 7.3px,5.5px 7.5px,4.9px 7.8px,4.5px 8.1px,4.1px 8.4px,3.8px 8.7px,3.6px 9.0px,3.5px 9.3px,3.4px 9.5px,3.4px 9.8px,3.5px 10.0px,3.7px 10.3px,3.9px 10.5px,4.2px 10.7px,4.6px 10.9px,5.1px 11.1px,5.6px 11.3px,6.2px 11.4px,6.8px 11.5px,7.5px 11.6px,8.2px 11.6px,9.0px 11.7px,9.8px 11.7px,10.7px 11.7px,11.5px 11.6px,12.4px 11.6px,13.3px 11.5px,14.2px 11.4px,15.1px 11.3px,16.0px 11.1px,16.8px 10.9px,17.7px 10.7px,18.5px 10.5px,19.2px 10.3px,20.0px 10.0px,20.6px 9.8px,21.3px 9.5px,21.8px 9.3px,22.3px 9.0px,22.8px 8.7px);background:color-mix(in srgb, #2a0616 32.92%, var(--tint));}
.gw-dw--bow-2-1{clip-path:polygon(23.1px 7.6px,23.4px 7.3px,23.7px 7.0px,23.8px 6.7px,23.9px 6.5px,23.9px 6.2px,23.8px 6.0px,23.6px 5.7px,23.4px 5.5px,23.1px 5.3px,22.7px 5.1px,22.2px 4.9px,21.7px 4.7px,21.1px 4.6px,20.5px 4.5px,19.8px 4.4px,19.1px 4.4px,18.3px 4.3px,17.5px 4.3px,16.6px 4.3px,15.8px 4.4px,14.9px 4.4px,14.0px 4.5px,13.1px 4.6px,12.2px 4.7px,11.3px 4.9px,10.5px 5.1px,9.6px 5.3px,8.8px 5.5px,8.1px 5.7px,7.3px 6.0px,6.6px 6.2px,6.0px 6.5px,5.5px 6.7px,4.9px 7.0px,4.5px 7.3px,4.1px 7.6px,3.8px 7.9px,3.6px 8.2px,3.5px 8.5px,3.4px 8.7px,3.4px 9.0px,3.5px 9.2px,3.7px 9.5px,3.9px 9.7px,4.2px 9.9px,4.6px 10.1px,5.1px 10.3px,5.6px 10.5px,6.2px 10.6px,6.8px 10.7px,7.5px 10.8px,8.2px 10.8px,9.0px 10.9px,9.8px 10.9px,10.7px 10.9px,11.5px 10.8px,12.4px 10.8px,13.3px 10.7px,14.2px 10.6px,15.1px 10.5px,16.0px 10.3px,16.8px 10.1px,17.7px 9.9px,18.5px 9.7px,19.2px 9.5px,20.0px 9.2px,20.6px 9.0px,21.3px 8.7px,21.8px 8.5px,22.3px 8.2px,22.8px 7.9px);background:color-mix(in srgb, #2a0616 23.46%, var(--tint));}
.gw-dt--bow-2{clip-path:polygon(23.1px 6.8px,23.4px 6.5px,23.7px 6.2px,23.8px 5.9px,23.9px 5.7px,23.9px 5.4px,23.8px 5.2px,23.6px 4.9px,23.4px 4.7px,23.1px 4.5px,22.7px 4.3px,22.2px 4.1px,21.7px 3.9px,21.1px 3.8px,20.5px 3.7px,19.8px 3.6px,19.1px 3.6px,18.3px 3.5px,17.5px 3.5px,16.6px 3.5px,15.8px 3.6px,14.9px 3.6px,14.0px 3.7px,13.1px 3.8px,12.2px 3.9px,11.3px 4.1px,10.5px 4.3px,9.6px 4.5px,8.8px 4.7px,8.1px 4.9px,7.3px 5.2px,6.6px 5.4px,6.0px 5.7px,5.5px 5.9px,4.9px 6.2px,4.5px 6.5px,4.1px 6.8px,3.8px 7.1px,3.6px 7.4px,3.5px 7.7px,3.4px 7.9px,3.4px 8.2px,3.5px 8.4px,3.7px 8.7px,3.9px 8.9px,4.2px 9.1px,4.6px 9.3px,5.1px 9.5px,5.6px 9.7px,6.2px 9.8px,6.8px 9.9px,7.5px 10.0px,8.2px 10.0px,9.0px 10.1px,9.8px 10.1px,10.7px 10.1px,11.5px 10.0px,12.4px 10.0px,13.3px 9.9px,14.2px 9.8px,15.1px 9.7px,16.0px 9.5px,16.8px 9.3px,17.7px 9.1px,18.5px 8.9px,19.2px 8.7px,20.0px 8.4px,20.6px 8.2px,21.3px 7.9px,21.8px 7.7px,22.3px 7.4px,22.8px 7.1px);background:linear-gradient(174deg, color-mix(in srgb, #ffffff 72%, var(--tint)) 10%, color-mix(in srgb, #ffffff 24%, var(--tint)) 55%, color-mix(in srgb, #2a0616 4%, var(--tint)) 96%);}

/* star — 2 layer(s) of extruded silhouette */
.gw-dL--star-0{left:135.6px;top:65.9px;width:28.8px;height:19.7px;}
.gw-dw--star-0-3{clip-path:polygon(24.6px 10.6px,24.9px 10.3px,25.2px 10.0px,25.3px 9.7px,25.4px 9.4px,25.4px 9.1px,25.3px 8.8px,25.1px 8.5px,24.9px 8.3px,24.5px 8.1px,24.1px 7.9px,23.6px 7.7px,23.1px 7.5px,22.5px 7.4px,21.8px 7.3px,21.0px 7.2px,20.2px 7.1px,19.4px 7.1px,18.5px 7.0px,17.6px 7.1px,16.7px 7.1px,15.8px 7.2px,14.8px 7.3px,13.8px 7.4px,12.9px 7.5px,11.9px 7.7px,11.0px 7.9px,10.1px 8.1px,9.3px 8.3px,8.4px 8.5px,7.6px 8.8px,6.9px 9.1px,6.2px 9.4px,5.6px 9.7px,5.1px 10.0px,4.6px 10.3px,4.2px 10.6px,3.9px 10.9px,3.7px 11.2px,3.5px 11.5px,3.4px 11.8px,3.4px 12.1px,3.5px 12.3px,3.7px 12.6px,4.0px 12.9px,4.3px 13.1px,4.7px 13.3px,5.2px 13.5px,5.8px 13.6px,6.4px 13.8px,7.1px 13.9px,7.8px 14.0px,8.6px 14.1px,9.4px 14.1px,10.3px 14.1px,11.2px 14.1px,12.1px 14.1px,13.1px 14.0px,14.0px 13.9px,15.0px 13.8px,16.0px 13.6px,16.9px 13.5px,17.8px 13.3px,18.7px 13.1px,19.6px 12.9px,20.4px 12.6px,21.2px 12.3px,21.9px 12.1px,22.6px 11.8px,23.2px 11.5px,23.8px 11.2px,24.2px 10.9px);background:color-mix(in srgb, #2a0616 50.39%, var(--tint));}
.gw-dw--star-0-2{clip-path:polygon(24.6px 9.4px,24.9px 9.1px,25.2px 8.8px,25.3px 8.5px,25.4px 8.2px,25.4px 7.9px,25.3px 7.6px,25.1px 7.4px,24.9px 7.1px,24.5px 6.9px,24.1px 6.7px,23.6px 6.5px,23.1px 6.3px,22.5px 6.2px,21.8px 6.1px,21.0px 6.0px,20.2px 5.9px,19.4px 5.9px,18.5px 5.9px,17.6px 5.9px,16.7px 5.9px,15.8px 6.0px,14.8px 6.1px,13.8px 6.2px,12.9px 6.3px,11.9px 6.5px,11.0px 6.7px,10.1px 6.9px,9.3px 7.1px,8.4px 7.4px,7.6px 7.6px,6.9px 7.9px,6.2px 8.2px,5.6px 8.5px,5.1px 8.8px,4.6px 9.1px,4.2px 9.4px,3.9px 9.7px,3.7px 10.0px,3.5px 10.3px,3.4px 10.6px,3.4px 10.9px,3.5px 11.2px,3.7px 11.4px,4.0px 11.7px,4.3px 11.9px,4.7px 12.1px,5.2px 12.3px,5.8px 12.5px,6.4px 12.6px,7.1px 12.7px,7.8px 12.8px,8.6px 12.9px,9.4px 12.9px,10.3px 13.0px,11.2px 12.9px,12.1px 12.9px,13.1px 12.8px,14.0px 12.7px,15.0px 12.6px,16.0px 12.5px,16.9px 12.3px,17.8px 12.1px,18.7px 11.9px,19.6px 11.7px,20.4px 11.4px,21.2px 11.2px,21.9px 10.9px,22.6px 10.6px,23.2px 10.3px,23.8px 10.0px,24.2px 9.7px);background:color-mix(in srgb, #2a0616 45.73%, var(--tint));}
.gw-dw--star-0-1{clip-path:polygon(24.6px 8.2px,24.9px 7.9px,25.2px 7.6px,25.3px 7.3px,25.4px 7.0px,25.4px 6.8px,25.3px 6.5px,25.1px 6.2px,24.9px 6.0px,24.5px 5.7px,24.1px 5.5px,23.6px 5.3px,23.1px 5.2px,22.5px 5.0px,21.8px 4.9px,21.0px 4.8px,20.2px 4.8px,19.4px 4.7px,18.5px 4.7px,17.6px 4.7px,16.7px 4.8px,15.8px 4.8px,14.8px 4.9px,13.8px 5.0px,12.9px 5.2px,11.9px 5.3px,11.0px 5.5px,10.1px 5.7px,9.3px 6.0px,8.4px 6.2px,7.6px 6.5px,6.9px 6.8px,6.2px 7.0px,5.6px 7.3px,5.1px 7.6px,4.6px 7.9px,4.2px 8.2px,3.9px 8.6px,3.7px 8.9px,3.5px 9.2px,3.4px 9.5px,3.4px 9.7px,3.5px 10.0px,3.7px 10.3px,4.0px 10.5px,4.3px 10.7px,4.7px 11.0px,5.2px 11.1px,5.8px 11.3px,6.4px 11.5px,7.1px 11.6px,7.8px 11.7px,8.6px 11.7px,9.4px 11.8px,10.3px 11.8px,11.2px 11.8px,12.1px 11.7px,13.1px 11.7px,14.0px 11.6px,15.0px 11.5px,16.0px 11.3px,16.9px 11.1px,17.8px 11.0px,18.7px 10.7px,19.6px 10.5px,20.4px 10.3px,21.2px 10.0px,21.9px 9.7px,22.6px 9.5px,23.2px 9.2px,23.8px 8.9px,24.2px 8.6px);background:color-mix(in srgb, #2a0616 41.06%, var(--tint));}
.gw-dt--star-0{clip-path:polygon(24.6px 7.1px,24.9px 6.8px,25.2px 6.5px,25.3px 6.2px,25.4px 5.9px,25.4px 5.6px,25.3px 5.3px,25.1px 5.0px,24.9px 4.8px,24.5px 4.6px,24.1px 4.4px,23.6px 4.2px,23.1px 4.0px,22.5px 3.9px,21.8px 3.8px,21.0px 3.7px,20.2px 3.6px,19.4px 3.6px,18.5px 3.5px,17.6px 3.6px,16.7px 3.6px,15.8px 3.7px,14.8px 3.8px,13.8px 3.9px,12.9px 4.0px,11.9px 4.2px,11.0px 4.4px,10.1px 4.6px,9.3px 4.8px,8.4px 5.0px,7.6px 5.3px,6.9px 5.6px,6.2px 5.9px,5.6px 6.2px,5.1px 6.5px,4.6px 6.8px,4.2px 7.1px,3.9px 7.4px,3.7px 7.7px,3.5px 8.0px,3.4px 8.3px,3.4px 8.6px,3.5px 8.8px,3.7px 9.1px,4.0px 9.4px,4.3px 9.6px,4.7px 9.8px,5.2px 10.0px,5.8px 10.1px,6.4px 10.3px,7.1px 10.4px,7.8px 10.5px,8.6px 10.6px,9.4px 10.6px,10.3px 10.6px,11.2px 10.6px,12.1px 10.6px,13.1px 10.5px,14.0px 10.4px,15.0px 10.3px,16.0px 10.1px,16.9px 10.0px,17.8px 9.8px,18.7px 9.6px,19.6px 9.4px,20.4px 9.1px,21.2px 8.8px,21.9px 8.6px,22.6px 8.3px,23.2px 8.0px,23.8px 7.7px,24.2px 7.4px);background:linear-gradient(174deg, color-mix(in srgb, #ffffff 38.4%, var(--tint)) 10%, color-mix(in srgb, #ffffff 9.6%, var(--tint)) 55%, color-mix(in srgb, #2a0616 15.2%, var(--tint)) 96%);}
.gw-dL--star-1{left:106.7px;top:46.1px;width:86.6px;height:43.8px;}
.gw-dw--star-1-6{clip-path:polygon(79.3px 24.4px,78.6px 23.4px,74.6px 22.6px,69.3px 22.2px,64.7px 22.0px,62.1px 21.8px,61.1px 21.5px,60.7px 21.1px,60.3px 20.7px,60.2px 20.2px,61.1px 19.4px,63.5px 18.1px,66.7px 16.1px,69.0px 14.1px,69.1px 12.8px,66.2px 12.6px,61.4px 13.6px,56.2px 15.3px,52.0px 17.0px,49.0px 18.1px,47.1px 18.7px,45.5px 18.8px,43.9px 19.0px,42.4px 19.1px,40.6px 19.1px,38.3px 18.5px,34.9px 17.7px,30.4px 16.9px,25.7px 16.6px,22.2px 17.2px,21.1px 18.6px,22.3px 20.2px,24.7px 21.6px,26.8px 22.7px,27.6px 23.4px,27.4px 23.9px,26.8px 24.4px,26.2px 24.9px,25.2px 25.4px,22.7px 26.1px,18.3px 27.2px,12.5px 28.6px,7.6px 30.2px,5.6px 31.6px,7.6px 32.2px,12.8px 31.9px,19.2px 31.1px,24.7px 30.3px,28.2px 29.7px,30.1px 29.7px,31.4px 29.8px,32.6px 30.0px,33.7px 30.1px,34.4px 30.7px,34.7px 31.8px,35.0px 33.5px,36.2px 35.2px,38.7px 36.2px,42.0px 36.0px,45.2px 34.7px,47.5px 32.7px,48.8px 30.7px,49.6px 29.4px,50.5px 28.6px,51.7px 28.1px,53.1px 27.7px,54.4px 27.3px,56.2px 27.0px,59.3px 26.8px,64.2px 26.6px,70.5px 26.2px,76.2px 25.4px);background:color-mix(in srgb, #2a0616 39.04%, var(--tint));}
.gw-dw--star-1-5{clip-path:polygon(79.3px 23.2px,78.6px 22.2px,74.6px 21.4px,69.3px 21.1px,64.7px 20.9px,62.1px 20.7px,61.1px 20.3px,60.7px 19.9px,60.3px 19.5px,60.2px 19.1px,61.1px 18.3px,63.5px 16.9px,66.7px 15.0px,69.0px 13.0px,69.1px 11.6px,66.2px 11.4px,61.4px 12.4px,56.2px 14.1px,52.0px 15.8px,49.0px 16.9px,47.1px 17.5px,45.5px 17.7px,43.9px 17.8px,42.4px 18.0px,40.6px 17.9px,38.3px 17.4px,34.9px 16.5px,30.4px 15.7px,25.7px 15.5px,22.2px 16.1px,21.1px 17.4px,22.3px 19.0px,24.7px 20.5px,26.8px 21.5px,27.6px 22.2px,27.4px 22.7px,26.8px 23.2px,26.2px 23.7px,25.2px 24.3px,22.7px 25.0px,18.3px 26.0px,12.5px 27.4px,7.6px 29.0px,5.6px 30.4px,7.6px 31.0px,12.8px 30.8px,19.2px 30.0px,24.7px 29.1px,28.2px 28.6px,30.1px 28.5px,31.4px 28.6px,32.6px 28.8px,33.7px 29.0px,34.4px 29.5px,34.7px 30.7px,35.0px 32.4px,36.2px 34.1px,38.7px 35.1px,42.0px 34.9px,45.2px 33.5px,47.5px 31.5px,48.8px 29.6px,49.6px 28.2px,50.5px 27.4px,51.7px 26.9px,53.1px 26.5px,54.4px 26.1px,56.2px 25.8px,59.3px 25.6px,64.2px 25.4px,70.5px 25.0px,76.2px 24.3px);background:color-mix(in srgb, #2a0616 36.17%, var(--tint));}
.gw-dw--star-1-4{clip-path:polygon(79.3px 22.1px,78.6px 21.0px,74.6px 20.3px,69.3px 19.9px,64.7px 19.7px,62.1px 19.5px,61.1px 19.2px,60.7px 18.8px,60.3px 18.4px,60.2px 17.9px,61.1px 17.1px,63.5px 15.7px,66.7px 13.8px,69.0px 11.8px,69.1px 10.4px,66.2px 10.2px,61.4px 11.2px,56.2px 12.9px,52.0px 14.6px,49.0px 15.8px,47.1px 16.3px,45.5px 16.5px,43.9px 16.7px,42.4px 16.8px,40.6px 16.7px,38.3px 16.2px,34.9px 15.3px,30.4px 14.5px,25.7px 14.3px,22.2px 14.9px,21.1px 16.3px,22.3px 17.9px,24.7px 19.3px,26.8px 20.3px,27.6px 21.0px,27.4px 21.6px,26.8px 22.1px,26.2px 22.6px,25.2px 23.1px,22.7px 23.8px,18.3px 24.8px,12.5px 26.3px,7.6px 27.9px,5.6px 29.2px,7.6px 29.8px,12.8px 29.6px,19.2px 28.8px,24.7px 27.9px,28.2px 27.4px,30.1px 27.3px,31.4px 27.5px,32.6px 27.6px,33.7px 27.8px,34.4px 28.4px,34.7px 29.5px,35.0px 31.2px,36.2px 32.9px,38.7px 33.9px,42.0px 33.7px,45.2px 32.3px,47.5px 30.3px,48.8px 28.4px,49.6px 27.0px,50.5px 26.2px,51.7px 25.8px,53.1px 25.4px,54.4px 25.0px,56.2px 24.6px,59.3px 24.4px,64.2px 24.2px,70.5px 23.9px,76.2px 23.1px);background:color-mix(in srgb, #2a0616 33.3%, var(--tint));}
.gw-dw--star-1-3{clip-path:polygon(79.3px 20.9px,78.6px 19.9px,74.6px 19.1px,69.3px 18.7px,64.7px 18.5px,62.1px 18.3px,61.1px 18.0px,60.7px 17.6px,60.3px 17.2px,60.2px 16.7px,61.1px 15.9px,63.5px 14.6px,66.7px 12.6px,69.0px 10.6px,69.1px 9.3px,66.2px 9.1px,61.4px 10.1px,56.2px 11.8px,52.0px 13.5px,49.0px 14.6px,47.1px 15.2px,45.5px 15.3px,43.9px 15.5px,42.4px 15.6px,40.6px 15.6px,38.3px 15.0px,34.9px 14.2px,30.4px 13.4px,25.7px 13.1px,22.2px 13.7px,21.1px 15.1px,22.3px 16.7px,24.7px 18.1px,26.8px 19.2px,27.6px 19.9px,27.4px 20.4px,26.8px 20.9px,26.2px 21.4px,25.2px 21.9px,22.7px 22.6px,18.3px 23.7px,12.5px 25.1px,7.6px 26.7px,5.6px 28.1px,7.6px 28.7px,12.8px 28.4px,19.2px 27.6px,24.7px 26.8px,28.2px 26.2px,30.1px 26.2px,31.4px 26.3px,32.6px 26.5px,33.7px 26.6px,34.4px 27.2px,34.7px 28.3px,35.0px 30.0px,36.2px 31.7px,38.7px 32.7px,42.0px 32.5px,45.2px 31.2px,47.5px 29.2px,48.8px 27.2px,49.6px 25.9px,50.5px 25.1px,51.7px 24.6px,53.1px 24.2px,54.4px 23.8px,56.2px 23.5px,59.3px 23.3px,64.2px 23.1px,70.5px 22.7px,76.2px 21.9px);background:color-mix(in srgb, #2a0616 30.44%, var(--tint));}
.gw-dw--star-1-2{clip-path:polygon(79.3px 19.7px,78.6px 18.7px,74.6px 17.9px,69.3px 17.6px,64.7px 17.4px,62.1px 17.2px,61.1px 16.8px,60.7px 16.4px,60.3px 16.0px,60.2px 15.6px,61.1px 14.8px,63.5px 13.4px,66.7px 11.5px,69.0px 9.5px,69.1px 8.1px,66.2px 7.9px,61.4px 8.9px,56.2px 10.6px,52.0px 12.3px,49.0px 13.4px,47.1px 14.0px,45.5px 14.2px,43.9px 14.3px,42.4px 14.5px,40.6px 14.4px,38.3px 13.9px,34.9px 13.0px,30.4px 12.2px,25.7px 12.0px,22.2px 12.6px,21.1px 13.9px,22.3px 15.5px,24.7px 17.0px,26.8px 18.0px,27.6px 18.7px,27.4px 19.2px,26.8px 19.7px,26.2px 20.2px,25.2px 20.8px,22.7px 21.5px,18.3px 22.5px,12.5px 23.9px,7.6px 25.5px,5.6px 26.9px,7.6px 27.5px,12.8px 27.3px,19.2px 26.5px,24.7px 25.6px,28.2px 25.1px,30.1px 25.0px,31.4px 25.1px,32.6px 25.3px,33.7px 25.5px,34.4px 26.0px,34.7px 27.2px,35.0px 28.9px,36.2px 30.6px,38.7px 31.6px,42.0px 31.4px,45.2px 30.0px,47.5px 28.0px,48.8px 26.1px,49.6px 24.7px,50.5px 23.9px,51.7px 23.4px,53.1px 23.0px,54.4px 22.6px,56.2px 22.3px,59.3px 22.1px,64.2px 21.9px,70.5px 21.5px,76.2px 20.8px);background:color-mix(in srgb, #2a0616 27.57%, var(--tint));}
.gw-dw--star-1-1{clip-path:polygon(79.3px 18.6px,78.6px 17.5px,74.6px 16.8px,69.3px 16.4px,64.7px 16.2px,62.1px 16.0px,61.1px 15.7px,60.7px 15.3px,60.3px 14.9px,60.2px 14.4px,61.1px 13.6px,63.5px 12.2px,66.7px 10.3px,69.0px 8.3px,69.1px 6.9px,66.2px 6.7px,61.4px 7.7px,56.2px 9.4px,52.0px 11.1px,49.0px 12.3px,47.1px 12.8px,45.5px 13.0px,43.9px 13.2px,42.4px 13.3px,40.6px 13.2px,38.3px 12.7px,34.9px 11.8px,30.4px 11.0px,25.7px 10.8px,22.2px 11.4px,21.1px 12.8px,22.3px 14.4px,24.7px 15.8px,26.8px 16.8px,27.6px 17.5px,27.4px 18.1px,26.8px 18.6px,26.2px 19.1px,25.2px 19.6px,22.7px 20.3px,18.3px 21.3px,12.5px 22.8px,7.6px 24.4px,5.6px 25.7px,7.6px 26.3px,12.8px 26.1px,19.2px 25.3px,24.7px 24.4px,28.2px 23.9px,30.1px 23.8px,31.4px 24.0px,32.6px 24.1px,33.7px 24.3px,34.4px 24.9px,34.7px 26.0px,35.0px 27.7px,36.2px 29.4px,38.7px 30.4px,42.0px 30.2px,45.2px 28.8px,47.5px 26.8px,48.8px 24.9px,49.6px 23.5px,50.5px 22.7px,51.7px 22.3px,53.1px 21.9px,54.4px 21.5px,56.2px 21.1px,59.3px 20.9px,64.2px 20.7px,70.5px 20.4px,76.2px 19.6px);background:color-mix(in srgb, #2a0616 24.71%, var(--tint));}
.gw-dt--star-1{clip-path:polygon(79.3px 17.4px,78.6px 16.4px,74.6px 15.6px,69.3px 15.2px,64.7px 15.0px,62.1px 14.8px,61.1px 14.5px,60.7px 14.1px,60.3px 13.7px,60.2px 13.2px,61.1px 12.4px,63.5px 11.1px,66.7px 9.1px,69.0px 7.1px,69.1px 5.8px,66.2px 5.6px,61.4px 6.6px,56.2px 8.3px,52.0px 10.0px,49.0px 11.1px,47.1px 11.7px,45.5px 11.8px,43.9px 12.0px,42.4px 12.1px,40.6px 12.1px,38.3px 11.5px,34.9px 10.7px,30.4px 9.9px,25.7px 9.6px,22.2px 10.2px,21.1px 11.6px,22.3px 13.2px,24.7px 14.6px,26.8px 15.7px,27.6px 16.4px,27.4px 16.9px,26.8px 17.4px,26.2px 17.9px,25.2px 18.4px,22.7px 19.1px,18.3px 20.2px,12.5px 21.6px,7.6px 23.2px,5.6px 24.6px,7.6px 25.2px,12.8px 24.9px,19.2px 24.1px,24.7px 23.3px,28.2px 22.7px,30.1px 22.7px,31.4px 22.8px,32.6px 23.0px,33.7px 23.1px,34.4px 23.7px,34.7px 24.8px,35.0px 26.5px,36.2px 28.2px,38.7px 29.2px,42.0px 29.0px,45.2px 27.7px,47.5px 25.7px,48.8px 23.7px,49.6px 22.4px,50.5px 21.6px,51.7px 21.1px,53.1px 20.7px,54.4px 20.3px,56.2px 20.0px,59.3px 19.8px,64.2px 19.6px,70.5px 19.2px,76.2px 18.4px);background:linear-gradient(174deg, color-mix(in srgb, #ffffff 60.24%, var(--tint)) 10%, color-mix(in srgb, #ffffff 18.96%, var(--tint)) 55%, color-mix(in srgb, #2a0616 7.92%, var(--tint)) 96%);}

/* heart — 2 layer(s) of extruded silhouette */
.gw-dL--heart-0{left:106.7px;top:44.6px;width:86.6px;height:40.3px;}
.gw-dw--heart-0-3{clip-path:polygon(61.3px 20.9px,60.8px 20.4px,60.0px 19.9px,59.1px 19.6px,57.9px 19.3px,56.6px 19.1px,55.3px 19.0px,53.9px 18.9px,52.5px 18.9px,51.1px 19.0px,49.8px 19.1px,48.5px 19.3px,47.4px 19.4px,46.5px 19.6px,45.6px 19.9px,44.9px 20.1px,44.4px 20.3px,43.9px 20.5px,43.3px 20.9px,43.7px 20.5px,43.7px 20.3px,43.6px 20.1px,43.4px 19.9px,43.1px 19.6px,42.6px 19.4px,41.9px 19.3px,41.1px 19.1px,40.0px 19.0px,38.8px 18.9px,37.4px 18.9px,35.9px 19.0px,34.2px 19.1px,32.4px 19.3px,30.6px 19.6px,28.8px 19.9px,27.0px 20.4px,25.3px 20.9px,23.8px 21.5px,22.4px 22.1px,21.2px 22.8px,20.3px 23.4px,19.7px 24.1px,19.5px 24.8px,19.5px 25.4px,19.9px 26.0px,20.5px 26.5px,21.4px 27.0px,22.4px 27.5px,23.6px 27.9px,24.7px 28.3px,25.9px 28.8px,27.0px 29.3px,28.0px 30.1px,29.0px 31.1px,28.8px 33.4px,34.1px 31.1px,37.3px 30.1px,40.0px 29.3px,42.4px 28.8px,44.7px 28.3px,46.8px 27.9px,49.0px 27.5px,51.0px 27.0px,53.0px 26.5px,54.9px 26.0px,56.7px 25.4px,58.2px 24.8px,59.4px 24.1px,60.4px 23.4px,61.1px 22.8px,61.5px 22.1px,61.6px 21.5px);background:color-mix(in srgb, #2a0616 50.39%, var(--tint));}
.gw-dw--heart-0-2{clip-path:polygon(61.3px 19.7px,60.8px 19.2px,60.0px 18.8px,59.1px 18.4px,57.9px 18.1px,56.6px 17.9px,55.3px 17.8px,53.9px 17.7px,52.5px 17.7px,51.1px 17.8px,49.8px 17.9px,48.5px 18.1px,47.4px 18.3px,46.5px 18.5px,45.6px 18.7px,44.9px 18.9px,44.4px 19.1px,43.9px 19.3px,43.3px 19.7px,43.7px 19.3px,43.7px 19.1px,43.6px 18.9px,43.4px 18.7px,43.1px 18.5px,42.6px 18.3px,41.9px 18.1px,41.1px 17.9px,40.0px 17.8px,38.8px 17.7px,37.4px 17.7px,35.9px 17.8px,34.2px 17.9px,32.4px 18.1px,30.6px 18.4px,28.8px 18.8px,27.0px 19.2px,25.3px 19.7px,23.8px 20.3px,22.4px 20.9px,21.2px 21.6px,20.3px 22.3px,19.7px 22.9px,19.5px 23.6px,19.5px 24.2px,19.9px 24.8px,20.5px 25.4px,21.4px 25.9px,22.4px 26.3px,23.6px 26.7px,24.7px 27.1px,25.9px 27.6px,27.0px 28.2px,28.0px 28.9px,29.0px 29.9px,28.8px 32.2px,34.1px 29.9px,37.3px 28.9px,40.0px 28.2px,42.4px 27.6px,44.7px 27.1px,46.8px 26.7px,49.0px 26.3px,51.0px 25.9px,53.0px 25.4px,54.9px 24.8px,56.7px 24.2px,58.2px 23.6px,59.4px 22.9px,60.4px 22.3px,61.1px 21.6px,61.5px 20.9px,61.6px 20.3px);background:color-mix(in srgb, #2a0616 45.73%, var(--tint));}
.gw-dw--heart-0-1{clip-path:polygon(61.3px 18.6px,60.8px 18.1px,60.0px 17.6px,59.1px 17.2px,57.9px 17.0px,56.6px 16.8px,55.3px 16.6px,53.9px 16.6px,52.5px 16.6px,51.1px 16.6px,49.8px 16.8px,48.5px 16.9px,47.4px 17.1px,46.5px 17.3px,45.6px 17.5px,44.9px 17.7px,44.4px 17.9px,43.9px 18.2px,43.3px 18.6px,43.7px 18.2px,43.7px 17.9px,43.6px 17.7px,43.4px 17.5px,43.1px 17.3px,42.6px 17.1px,41.9px 16.9px,41.1px 16.8px,40.0px 16.6px,38.8px 16.6px,37.4px 16.6px,35.9px 16.6px,34.2px 16.8px,32.4px 17.0px,30.6px 17.2px,28.8px 17.6px,27.0px 18.1px,25.3px 18.6px,23.8px 19.1px,22.4px 19.8px,21.2px 20.4px,20.3px 21.1px,19.7px 21.8px,19.5px 22.4px,19.5px 23.1px,19.9px 23.7px,20.5px 24.2px,21.4px 24.7px,22.4px 25.1px,23.6px 25.6px,24.7px 26.0px,25.9px 26.4px,27.0px 27.0px,28.0px 27.7px,29.0px 28.7px,28.8px 31.1px,34.1px 28.7px,37.3px 27.7px,40.0px 27.0px,42.4px 26.4px,44.7px 26.0px,46.8px 25.6px,49.0px 25.1px,51.0px 24.7px,53.0px 24.2px,54.9px 23.7px,56.7px 23.1px,58.2px 22.4px,59.4px 21.8px,60.4px 21.1px,61.1px 20.4px,61.5px 19.8px,61.6px 19.1px);background:color-mix(in srgb, #2a0616 41.06%, var(--tint));}
.gw-dt--heart-0{clip-path:polygon(61.3px 17.4px,60.8px 16.9px,60.0px 16.4px,59.1px 16.1px,57.9px 15.8px,56.6px 15.6px,55.3px 15.5px,53.9px 15.4px,52.5px 15.4px,51.1px 15.5px,49.8px 15.6px,48.5px 15.8px,47.4px 15.9px,46.5px 16.1px,45.6px 16.4px,44.9px 16.6px,44.4px 16.8px,43.9px 17.0px,43.3px 17.4px,43.7px 17.0px,43.7px 16.8px,43.6px 16.6px,43.4px 16.4px,43.1px 16.1px,42.6px 15.9px,41.9px 15.8px,41.1px 15.6px,40.0px 15.5px,38.8px 15.4px,37.4px 15.4px,35.9px 15.5px,34.2px 15.6px,32.4px 15.8px,30.6px 16.1px,28.8px 16.4px,27.0px 16.9px,25.3px 17.4px,23.8px 18.0px,22.4px 18.6px,21.2px 19.3px,20.3px 19.9px,19.7px 20.6px,19.5px 21.3px,19.5px 21.9px,19.9px 22.5px,20.5px 23.0px,21.4px 23.5px,22.4px 24.0px,23.6px 24.4px,24.7px 24.8px,25.9px 25.3px,27.0px 25.8px,28.0px 26.6px,29.0px 27.6px,28.8px 29.9px,34.1px 27.6px,37.3px 26.6px,40.0px 25.8px,42.4px 25.3px,44.7px 24.8px,46.8px 24.4px,49.0px 24.0px,51.0px 23.5px,53.0px 23.0px,54.9px 22.5px,56.7px 21.9px,58.2px 21.3px,59.4px 20.6px,60.4px 19.9px,61.1px 19.3px,61.5px 18.6px,61.6px 18.0px);background:linear-gradient(174deg, color-mix(in srgb, #ffffff 38.4%, var(--tint)) 10%, color-mix(in srgb, #ffffff 9.6%, var(--tint)) 55%, color-mix(in srgb, #2a0616 15.2%, var(--tint)) 96%);}
.gw-dL--heart-1{left:69.7px;top:21.9px;width:160.6px;height:70.2px;}
.gw-dw--heart-1-6{clip-path:polygon(114.8px 37.6px,113.8px 36.6px,112.3px 35.8px,110.5px 35.1px,108.3px 34.5px,105.8px 34.1px,103.2px 33.9px,100.5px 33.8px,97.8px 33.8px,95.1px 33.9px,92.6px 34.2px,90.3px 34.5px,88.2px 34.8px,86.3px 35.2px,84.7px 35.6px,83.4px 36.0px,82.3px 36.4px,81.4px 36.8px,80.3px 37.6px,81.0px 36.8px,81.1px 36.4px,80.9px 36.0px,80.5px 35.6px,79.8px 35.2px,78.9px 34.8px,77.6px 34.5px,75.9px 34.2px,74.0px 33.9px,71.6px 33.8px,69.0px 33.8px,66.0px 33.9px,62.8px 34.1px,59.4px 34.5px,56.0px 35.1px,52.5px 35.8px,49.0px 36.6px,45.8px 37.6px,42.8px 38.7px,40.1px 39.9px,37.9px 41.2px,36.2px 42.5px,35.1px 43.8px,34.6px 45.0px,34.6px 46.2px,35.3px 47.4px,36.5px 48.4px,38.2px 49.4px,40.2px 50.2px,42.4px 51.0px,44.7px 51.8px,46.9px 52.7px,49.0px 53.8px,50.9px 55.2px,52.8px 57.1px,52.5px 61.5px,62.6px 57.1px,68.8px 55.2px,74.0px 53.8px,78.6px 52.7px,82.9px 51.8px,87.0px 51.0px,91.1px 50.2px,95.1px 49.4px,98.9px 48.4px,102.5px 47.4px,105.8px 46.2px,108.7px 45.0px,111.2px 43.8px,113.1px 42.5px,114.4px 41.2px,115.1px 39.9px,115.2px 38.7px);background:color-mix(in srgb, #2a0616 39.04%, var(--tint));}
.gw-dw--heart-1-5{clip-path:polygon(114.8px 36.4px,113.8px 35.5px,112.3px 34.6px,110.5px 33.9px,108.3px 33.3px,105.8px 33.0px,103.2px 32.7px,100.5px 32.6px,97.8px 32.6px,95.1px 32.8px,92.6px 33.0px,90.3px 33.3px,88.2px 33.6px,86.3px 34.0px,84.7px 34.4px,83.4px 34.8px,82.3px 35.2px,81.4px 35.7px,80.3px 36.4px,81.0px 35.7px,81.1px 35.2px,80.9px 34.8px,80.5px 34.4px,79.8px 34.0px,78.9px 33.6px,77.6px 33.3px,75.9px 33.0px,74.0px 32.8px,71.6px 32.6px,69.0px 32.6px,66.0px 32.7px,62.8px 33.0px,59.4px 33.3px,56.0px 33.9px,52.5px 34.6px,49.0px 35.5px,45.8px 36.4px,42.8px 37.5px,40.1px 38.7px,37.9px 40.0px,36.2px 41.3px,35.1px 42.6px,34.6px 43.9px,34.6px 45.1px,35.3px 46.2px,36.5px 47.3px,38.2px 48.2px,40.2px 49.0px,42.4px 49.8px,44.7px 50.6px,46.9px 51.5px,49.0px 52.6px,50.9px 54.0px,52.8px 55.9px,52.5px 60.4px,62.6px 55.9px,68.8px 54.0px,74.0px 52.6px,78.6px 51.5px,82.9px 50.6px,87.0px 49.8px,91.1px 49.0px,95.1px 48.2px,98.9px 47.3px,102.5px 46.2px,105.8px 45.1px,108.7px 43.9px,111.2px 42.6px,113.1px 41.3px,114.4px 40.0px,115.1px 38.7px,115.2px 37.5px);background:color-mix(in srgb, #2a0616 36.17%, var(--tint));}
.gw-dw--heart-1-4{clip-path:polygon(114.8px 35.3px,113.8px 34.3px,112.3px 33.4px,110.5px 32.7px,108.3px 32.2px,105.8px 31.8px,103.2px 31.5px,100.5px 31.4px,97.8px 31.5px,95.1px 31.6px,92.6px 31.8px,90.3px 32.1px,88.2px 32.5px,86.3px 32.9px,84.7px 33.3px,83.4px 33.7px,82.3px 34.1px,81.4px 34.5px,80.3px 35.3px,81.0px 34.5px,81.1px 34.1px,80.9px 33.7px,80.5px 33.3px,79.8px 32.9px,78.9px 32.5px,77.6px 32.1px,75.9px 31.8px,74.0px 31.6px,71.6px 31.5px,69.0px 31.4px,66.0px 31.5px,62.8px 31.8px,59.4px 32.2px,56.0px 32.7px,52.5px 33.4px,49.0px 34.3px,45.8px 35.3px,42.8px 36.4px,40.1px 37.6px,37.9px 38.8px,36.2px 40.1px,35.1px 41.4px,34.6px 42.7px,34.6px 43.9px,35.3px 45.0px,36.5px 46.1px,38.2px 47.0px,40.2px 47.9px,42.4px 48.7px,44.7px 49.5px,46.9px 50.4px,49.0px 51.5px,50.9px 52.8px,52.8px 54.7px,52.5px 59.2px,62.6px 54.7px,68.8px 52.8px,74.0px 51.5px,78.6px 50.4px,82.9px 49.5px,87.0px 48.7px,91.1px 47.9px,95.1px 47.0px,98.9px 46.1px,102.5px 45.0px,105.8px 43.9px,108.7px 42.7px,111.2px 41.4px,113.1px 40.1px,114.4px 38.8px,115.1px 37.6px,115.2px 36.4px);background:color-mix(in srgb, #2a0616 33.3%, var(--tint));}
.gw-dw--heart-1-3{clip-path:polygon(114.8px 34.1px,113.8px 33.1px,112.3px 32.3px,110.5px 31.6px,108.3px 31.0px,105.8px 30.6px,103.2px 30.4px,100.5px 30.3px,97.8px 30.3px,95.1px 30.4px,92.6px 30.7px,90.3px 31.0px,88.2px 31.3px,86.3px 31.7px,84.7px 32.1px,83.4px 32.5px,82.3px 32.9px,81.4px 33.3px,80.3px 34.1px,81.0px 33.3px,81.1px 32.9px,80.9px 32.5px,80.5px 32.1px,79.8px 31.7px,78.9px 31.3px,77.6px 31.0px,75.9px 30.7px,74.0px 30.4px,71.6px 30.3px,69.0px 30.3px,66.0px 30.4px,62.8px 30.6px,59.4px 31.0px,56.0px 31.6px,52.5px 32.3px,49.0px 33.1px,45.8px 34.1px,42.8px 35.2px,40.1px 36.4px,37.9px 37.7px,36.2px 39.0px,35.1px 40.3px,34.6px 41.5px,34.6px 42.7px,35.3px 43.9px,36.5px 44.9px,38.2px 45.9px,40.2px 46.7px,42.4px 47.5px,44.7px 48.3px,46.9px 49.2px,49.0px 50.3px,50.9px 51.7px,52.8px 53.6px,52.5px 58.0px,62.6px 53.6px,68.8px 51.7px,74.0px 50.3px,78.6px 49.2px,82.9px 48.3px,87.0px 47.5px,91.1px 46.7px,95.1px 45.9px,98.9px 44.9px,102.5px 43.9px,105.8px 42.7px,108.7px 41.5px,111.2px 40.3px,113.1px 39.0px,114.4px 37.7px,115.1px 36.4px,115.2px 35.2px);background:color-mix(in srgb, #2a0616 30.44%, var(--tint));}
.gw-dw--heart-1-2{clip-path:polygon(114.8px 32.9px,113.8px 32.0px,112.3px 31.1px,110.5px 30.4px,108.3px 29.8px,105.8px 29.5px,103.2px 29.2px,100.5px 29.1px,97.8px 29.1px,95.1px 29.3px,92.6px 29.5px,90.3px 29.8px,88.2px 30.1px,86.3px 30.5px,84.7px 30.9px,83.4px 31.3px,82.3px 31.7px,81.4px 32.2px,80.3px 32.9px,81.0px 32.2px,81.1px 31.7px,80.9px 31.3px,80.5px 30.9px,79.8px 30.5px,78.9px 30.1px,77.6px 29.8px,75.9px 29.5px,74.0px 29.3px,71.6px 29.1px,69.0px 29.1px,66.0px 29.2px,62.8px 29.5px,59.4px 29.8px,56.0px 30.4px,52.5px 31.1px,49.0px 32.0px,45.8px 32.9px,42.8px 34.0px,40.1px 35.2px,37.9px 36.5px,36.2px 37.8px,35.1px 39.1px,34.6px 40.4px,34.6px 41.6px,35.3px 42.7px,36.5px 43.8px,38.2px 44.7px,40.2px 45.5px,42.4px 46.3px,44.7px 47.1px,46.9px 48.0px,49.0px 49.1px,50.9px 50.5px,52.8px 52.4px,52.5px 56.9px,62.6px 52.4px,68.8px 50.5px,74.0px 49.1px,78.6px 48.0px,82.9px 47.1px,87.0px 46.3px,91.1px 45.5px,95.1px 44.7px,98.9px 43.8px,102.5px 42.7px,105.8px 41.6px,108.7px 40.4px,111.2px 39.1px,113.1px 37.8px,114.4px 36.5px,115.1px 35.2px,115.2px 34.0px);background:color-mix(in srgb, #2a0616 27.57%, var(--tint));}
.gw-dw--heart-1-1{clip-path:polygon(114.8px 31.8px,113.8px 30.8px,112.3px 29.9px,110.5px 29.2px,108.3px 28.7px,105.8px 28.3px,103.2px 28.0px,100.5px 27.9px,97.8px 28.0px,95.1px 28.1px,92.6px 28.3px,90.3px 28.6px,88.2px 29.0px,86.3px 29.4px,84.7px 29.8px,83.4px 30.2px,82.3px 30.6px,81.4px 31.0px,80.3px 31.8px,81.0px 31.0px,81.1px 30.6px,80.9px 30.2px,80.5px 29.8px,79.8px 29.4px,78.9px 29.0px,77.6px 28.6px,75.9px 28.3px,74.0px 28.1px,71.6px 28.0px,69.0px 27.9px,66.0px 28.0px,62.8px 28.3px,59.4px 28.7px,56.0px 29.2px,52.5px 29.9px,49.0px 30.8px,45.8px 31.8px,42.8px 32.9px,40.1px 34.1px,37.9px 35.3px,36.2px 36.6px,35.1px 37.9px,34.6px 39.2px,34.6px 40.4px,35.3px 41.5px,36.5px 42.6px,38.2px 43.5px,40.2px 44.4px,42.4px 45.2px,44.7px 46.0px,46.9px 46.9px,49.0px 48.0px,50.9px 49.3px,52.8px 51.2px,52.5px 55.7px,62.6px 51.2px,68.8px 49.3px,74.0px 48.0px,78.6px 46.9px,82.9px 46.0px,87.0px 45.2px,91.1px 44.4px,95.1px 43.5px,98.9px 42.6px,102.5px 41.5px,105.8px 40.4px,108.7px 39.2px,111.2px 37.9px,113.1px 36.6px,114.4px 35.3px,115.1px 34.1px,115.2px 32.9px);background:color-mix(in srgb, #2a0616 24.71%, var(--tint));}
.gw-dt--heart-1{clip-path:polygon(114.8px 30.6px,113.8px 29.6px,112.3px 28.8px,110.5px 28.1px,108.3px 27.5px,105.8px 27.1px,103.2px 26.9px,100.5px 26.8px,97.8px 26.8px,95.1px 26.9px,92.6px 27.2px,90.3px 27.5px,88.2px 27.8px,86.3px 28.2px,84.7px 28.6px,83.4px 29.0px,82.3px 29.4px,81.4px 29.8px,80.3px 30.6px,81.0px 29.8px,81.1px 29.4px,80.9px 29.0px,80.5px 28.6px,79.8px 28.2px,78.9px 27.8px,77.6px 27.5px,75.9px 27.2px,74.0px 26.9px,71.6px 26.8px,69.0px 26.8px,66.0px 26.9px,62.8px 27.1px,59.4px 27.5px,56.0px 28.1px,52.5px 28.8px,49.0px 29.6px,45.8px 30.6px,42.8px 31.7px,40.1px 32.9px,37.9px 34.2px,36.2px 35.5px,35.1px 36.8px,34.6px 38.0px,34.6px 39.2px,35.3px 40.4px,36.5px 41.4px,38.2px 42.4px,40.2px 43.2px,42.4px 44.0px,44.7px 44.8px,46.9px 45.7px,49.0px 46.8px,50.9px 48.2px,52.8px 50.1px,52.5px 54.5px,62.6px 50.1px,68.8px 48.2px,74.0px 46.8px,78.6px 45.7px,82.9px 44.8px,87.0px 44.0px,91.1px 43.2px,95.1px 42.4px,98.9px 41.4px,102.5px 40.4px,105.8px 39.2px,108.7px 38.0px,111.2px 36.8px,113.1px 35.5px,114.4px 34.2px,115.1px 32.9px,115.2px 31.7px);background:linear-gradient(174deg, color-mix(in srgb, #ffffff 60.24%, var(--tint)) 10%, color-mix(in srgb, #ffffff 18.96%, var(--tint)) 55%, color-mix(in srgb, #2a0616 7.92%, var(--tint)) 96%);}

