@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@500;600;700&family=Nunito+Sans:wght@400;600;700;800;900&display=swap');

/* Chosen playground recipe: splash / soft / pop / pill / segmented / circles / bright. */
:root {
  --ink:#48213f; --muted:#756172; --rose:#c32678; --aqua:#88409e;
  --pink:#ffe7f2; --lilac:#f2e6fb; --yellow:#ffed9f; --paper:#fff; --line:#eddfeb;
  --font:'Nunito Sans',sans-serif; --heading:'Quicksand',sans-serif;
}
body {font-size:15px;letter-spacing:0}
h1,h2,h3 {font-weight:700;letter-spacing:-.04em}
h2 {font-size:clamp(34px,3.8vw,54px);line-height:1.18}
.announcement {background:var(--aqua);font-size:11px;letter-spacing:.03em;font-weight:800;text-transform:none;height:35px}
.header {height:94px;border-bottom-color:var(--line)}
.brand-word {font-family:var(--heading);font-weight:700;letter-spacing:-3px}
.brand-word i:nth-child(n),.footer-logo {color:var(--rose)}
.brand-word sup {color:var(--aqua)}
/* Display the supplied artwork; keep the previous wordmark styles for the saved template. */
.header a.brand {width:148px;aspect-ratio:1.75;align-items:flex-start;justify-content:center}
.original-logo {display:block;width:100%;aspect-ratio:1.75;overflow:hidden;position:relative}
.original-logo img {position:absolute;width:115%;max-width:none;height:auto;left:-7.5%;top:-18%}
.footer-logo.original-brand {display:block;width:190px}
.footer-logo.original-brand .original-logo {margin:0}
.footer-logo.original-brand.logo-wordmark {min-height:109px;display:flex;align-items:center}
.logo-review {display:flex;align-items:center;justify-content:center;gap:24px;padding:10px 20px;border-bottom:1px solid var(--line);background:#fff9fc;color:var(--ink)}
.logo-review>span:first-child {display:flex;flex-direction:column;gap:3px}
.logo-review strong {font-size:11px;font-weight:900}
.logo-review small {font-size:10px;color:var(--muted)}
.logo-review-options {display:flex;gap:4px;padding:3px;border:1px solid var(--line);border-radius:12px;background:white}
.logo-review-options button {min-height:38px;padding:8px 13px;border-radius:8px;font-size:11px;font-weight:800}
.logo-review-options button[aria-pressed="true"] {background:var(--ink);color:white}
.logo-review-options button:hover {box-shadow:inset 0 0 0 1px var(--rose)}
@media(max-width:760px) {
  .logo-review {gap:8px;flex-direction:column;padding:10px 12px}
  .logo-review>span:first-child {flex-direction:row;align-items:center;gap:8px}
  .logo-review small {font-size:9px}
  .logo-review-options {width:100%;max-width:340px}
  .logo-review-options button {flex:1;min-height:40px}
}
@media(max-width:760px) {
  .header {justify-content:flex-start;gap:6px}
  .header a.brand {position:static;left:auto;transform:none;width:120px;order:0;margin-right:auto}
  .header .header-tools {order:1;flex-shrink:0}
  .header .mobile-menu {order:2;flex-shrink:0;margin-left:2px}
}
@media(max-width:360px) {
  .header {padding-inline:12px;gap:3px}
  .header a.brand {width:105px}
}
.desktop-nav {font-size:13px;font-weight:800;gap:26px}
.desktop-nav a:after {background:var(--rose);height:2px;border-radius:2px}
.bag-label {font-size:12px;font-weight:800}
#bag-count {border-radius:50%;background:var(--pink);font-weight:900}
.icon-button {color:var(--ink)}
.eyebrow,.section-head .eyebrow {font-size:11px;letter-spacing:.03em;text-transform:none;font-weight:900;color:var(--aqua)}
.hero {grid-template-columns:47% 53%;background:var(--pink);border-radius:20px;margin:22px 22px 0;min-height:610px}
.hero-copy {background:var(--pink);padding:55px 35px 40px 5vw}
.hero .eyebrow {background:var(--rose);color:white;border-radius:30px;padding:9px 15px;margin-bottom:25px;font-size:11px}
.hero h1 {font-size:clamp(48px,5.3vw,80px);font-weight:700;line-height:1.08;letter-spacing:-.055em}
.hero h1 em {font-family:var(--heading);font-style:normal;font-weight:700;color:var(--rose)}
.hero-copy>p {font-size:15px;font-weight:600;max-width:355px;color:var(--ink);line-height:1.75;margin-top:22px}
.hero-photo {min-height:610px}
.hero-footnote {font-size:11px;font-weight:800;color:var(--ink);padding-top:32px}
.hero-edition {display:none}
.photo-caption {background:var(--yellow);color:var(--ink);border:3px solid white;border-radius:18px;font-family:var(--heading);font-weight:700;font-size:23px;line-height:1.15;padding:18px 24px;transform:rotate(7deg);bottom:28px;right:30px;max-width:195px;box-shadow:0 4px 0 #46203a20}
.button,.button.rose {background:var(--rose);color:white;border:2px solid var(--ink);border-radius:11px;box-shadow:3px 4px 0 var(--ink);font-size:13px;font-weight:900;letter-spacing:0;text-transform:none;min-height:48px;padding:14px 21px;gap:22px}
.button:hover,.button.rose:hover {background:var(--rose);border-color:var(--ink);filter:brightness(.95);transform:translateY(-2px)}
.button:active {transform:translate(2px,3px);box-shadow:1px 1px 0 var(--ink)}
.button.outline,.button.light {background:white;color:var(--aqua);border:2px solid var(--ink)}
.button.outline:hover,.button.light:hover {background:var(--lilac)}
.hero-ctas .underlink {background:#fff;border:2px solid var(--ink);border-radius:11px;box-shadow:3px 4px 0 var(--ink);padding:14px 19px;color:var(--aqua);font-size:13px;font-weight:900;text-transform:none;letter-spacing:0}
.text-link,.underlink {font-size:12px;font-weight:900;color:var(--aqua);text-transform:none;letter-spacing:0;border-color:var(--aqua)}
.benefits {background:var(--yellow);border:0;margin-top:22px;padding:20px 5%;gap:15px}
.benefit {font-size:12px;font-weight:900;color:var(--ink);border:0}
.benefit svg {display:block;color:var(--aqua);width:20px}
.section-head p {font-size:14px;color:var(--muted)}
.section {padding-top:70px;padding-bottom:70px}
.browse-label {font-size:11px;color:var(--aqua);font-weight:900;letter-spacing:0;text-transform:none}
.all-themes {font-size:12px;font-weight:800;min-height:36px}
.theme-tile {border:2px solid var(--line);border-radius:13px;padding:9px;gap:10px}
.theme-tile.selected {border-color:var(--aqua);background:var(--lilac)}
.theme-tile:hover {border-color:var(--aqua)}
.theme-thumb {border-radius:8px}
.theme-tile strong {font-size:12px;font-weight:900}
.theme-tile small {font-size:10px;color:var(--muted)}
.apparel-browser {gap:22px;flex-wrap:wrap}
.category-tabs {padding:6px;background:var(--lilac);border-radius:14px;gap:4px;width:fit-content;margin:0}
.pill {border:0;border-radius:9px;padding:12px 17px;margin:0;font-size:12px;font-weight:900;min-height:44px;color:var(--ink)}
.pill.active,.pill:hover {background:var(--aqua);color:white;border:0}
.sort-select {border:1px solid var(--line);border-radius:9px;font-size:12px;color:var(--ink);min-height:44px}
.product-visual {background:white;border:1px solid #f0e9ee;border-radius:16px;aspect-ratio:1/1.12}
.product-badge {background:var(--rose);color:#fff;border-radius:30px;top:12px;left:10px;font-size:10px;letter-spacing:0;font-weight:900;padding:7px 11px;max-width:calc(100% - 55px)}
.product-card:nth-child(even) .product-badge {background:var(--aqua)}
.favourite {border:1px solid var(--line);border-radius:50%;top:10px;right:8px;width:34px;height:34px;color:var(--rose)}
.favourite.saved {background:var(--pink)}
.favourite.saved svg {fill:var(--rose)}
.product-card .quick-add {background:white;color:var(--aqua);border:2px solid var(--ink);border-radius:10px;bottom:12px;left:12px;right:16px;box-shadow:3px 4px 0 var(--ink);text-transform:none;font-size:12px;font-weight:900;letter-spacing:0}
.product-meta {font-size:10px;color:var(--aqua);letter-spacing:.02em;font-weight:800}
.product-title-row h3 {font-size:15px;font-weight:900;line-height:1.4}
.price {font-size:13px;font-weight:800}
.product-description {font-size:12px;color:var(--muted);line-height:1.65}
.swatches {gap:8px;flex-wrap:wrap}
.swatch {width:18px;height:18px;border:1px solid #0002}
.swatch.selected {outline:2px solid var(--aqua);outline-offset:3px}
.swatch-label {font-size:10px}
.story-strip {background:var(--lilac);border-radius:20px}
.story-content h2,.joy-copy h2 {font-size:46px;line-height:1.15}
.story-sticker {background:var(--yellow);border-radius:30px;text-transform:none;font-size:12px;font-weight:900;letter-spacing:0}
.step {border-bottom-color:#abd9e2}
.step-number {background:var(--aqua);color:#fff;border-radius:50%;min-width:28px;height:28px;display:grid;place-items:center;font-weight:900;margin-top:0}
.step h3 {font-size:15px;font-weight:900}
.step p,.joy-copy p,.club p {font-size:14px;color:var(--muted)}
.collection-card h3 {font-size:29px;line-height:1.18}
.collection-card p {font-size:13px}
.collection-card .eyebrow {font-size:10px;color:var(--aqua);font-weight:900}
.collection-card .product-picture {border-radius:16px;border:1px solid var(--line)}
.joy-banner {background:var(--pink)}
.club {background:var(--lilac)}
.club h2 {font-size:46px}
.club .eyebrow {color:var(--aqua)}
.club form {background:#fff;border:2px solid var(--aqua);border-radius:12px;padding:4px 13px;max-width:500px}
.club input {font-size:14px}
.club button {font-size:12px;color:var(--aqua);font-weight:900;text-transform:none;letter-spacing:0}
.club small {font-size:11px;color:var(--muted)}
.footer-logo {font-family:var(--heading);font-weight:700}
.footer-logo span {color:var(--aqua)}
.footer-top h3 {font-size:12px;font-weight:900;text-transform:none;letter-spacing:0}
.footer-top p,.footer-top>div>a:not(.footer-logo),.footer-top .text-button {font-size:12px;color:var(--muted)}
.footer-note p {font-family:var(--heading);color:var(--rose);font-weight:700}
.footer-bottom small {font-size:10px}
.page-heading {background:var(--pink)}
.page-heading h1 {font-size:58px;font-weight:700;letter-spacing:-.04em}
.page-heading p {font-size:14px}
.breadcrumbs {font-size:11px}
.detail-info h1 {font-size:43px;font-weight:700;letter-spacing:-.04em}
.detail-info .eyebrow {font-size:12px;color:var(--aqua)}
.detail-intro {font-size:14px}
.product-main-image {border-radius:18px}
.product-main-image .product-badge {border:0;font-size:11px}
.thumbnail {border-radius:10px}
.thumbnail.selected {border:2px solid var(--aqua)}
.included {background:var(--lilac);border:0;border-radius:14px;font-size:13px}
.option-group legend {font-size:13px;font-weight:900}
.colour-options {gap:14px}
.colour-choice {width:44px;height:44px;border:5px solid white;outline:1px solid var(--line);border-radius:50%;position:relative}
.colour-choice.selected {outline:2px solid var(--aqua)}
.colour-choice.selected:after {content:'✓';font-size:20px;font-weight:900;color:var(--ink);text-shadow:0 0 3px #fff;position:absolute;inset:0;display:grid;place-items:center}
.size-option,.tone-option {border-radius:9px;font-size:12px;min-height:44px;font-weight:800}
.size-option.selected {background:var(--aqua);border-color:var(--aqua);color:white}
.tone-option.selected {background:var(--lilac);border-color:var(--aqua)}
.fixed-theme {border-color:var(--line)}
.fixed-theme strong {font-size:13px;font-weight:900}
.fixed-theme li,.fixed-theme p,.option-note {font-size:12px;color:var(--muted)}
.quantity {border-radius:10px}
.add-row .button {font-size:14px}
.detail-assurance,.image-note {font-size:11px}
.look-preview {background:var(--lilac);border-radius:12px;font-size:12px}
summary {font-size:13px;font-weight:900}
details p,details li {font-size:13px}
dialog {border-radius:18px}
dialog.drawer {border-radius:18px 0 0 18px}
.modal-header h2 {font-size:30px;font-weight:700}
.search-input {font-size:14px;border:2px solid var(--aqua);border-radius:10px;padding:13px}
.search-result h3,.cart-item h3 {font-size:14px;font-weight:900}
.cart-item p,.modal-copy {font-size:12px}
.cart-item>.product-picture,.search-result .product-picture {border-radius:10px}
.remove-item {font-size:12px;color:var(--aqua)}
.inline-notice {background:var(--lilac);color:var(--ink);border-radius:12px}
.size-table th {background:var(--lilac)}
.mobile-links a {font-weight:700;font-size:26px}
#toast {background:var(--ink);border-radius:12px;font-size:13px}
@media(max-width:1100px) {
  .desktop-nav {gap:18px;font-size:12px}
  .hero h1 {font-size:58px}
  .hero-ctas {gap:16px}
  .hero-ctas .button {font-size:12px}
  .theme-tile {gap:7px;padding:7px}
  .theme-tile strong {font-size:11px}
  .theme-tile small {font-size:9px}
  .story-content h2,.joy-copy h2 {font-size:39px}
}
@media(max-width:900px) and (min-width:761px) {
  .desktop-nav {gap:11px;font-size:11px}
  .header-tools {gap:6px}
  .hero-copy {padding-left:30px}
  .hero h1 {font-size:49px}
}
@media(max-width:760px) {
  .header {height:76px}
  .announcement {font-size:10px;height:29px}
  .hero {margin:12px 12px 0;border-radius:16px}
  .hero-copy {padding:32px 24px}
  .hero .eyebrow {font-size:10px;padding:8px 12px;margin-bottom:22px}
  .hero h1 {font-size:48px;line-height:1.08}
  .hero-copy>p {font-size:13px;max-width:330px}
  .hero-ctas {gap:13px}
  .hero-ctas .button,.hero-ctas .underlink {font-size:12px;padding:12px 15px;min-height:46px}
  .hero-photo {min-height:370px}
  .photo-caption {font-size:20px;max-width:165px;right:20px;bottom:22px}
  .benefits {margin-top:12px;padding:20px;gap:17px}
  .benefit {font-size:10px}
  .section {padding:48px 22px}
  .section-head h2 {font-size:34px;max-width:340px}
  .section-head .eyebrow,.section-head>.text-link {font-size:11px}
  .section-head p {font-size:13px}
  .theme-tile {padding:7px;gap:8px}
  .theme-tile strong {font-size:11px}
  .theme-tile small {font-size:9px}
  .browse-label,.all-themes {font-size:11px}
  .category-tabs {width:100%;gap:3px;padding:5px}
  .pill {padding:11px 12px;font-size:11px;margin:0}
  .product-grid {gap:26px 15px}
  .product-badge {font-size:8px;left:6px;top:8px;padding:6px 8px;max-width:calc(100% - 40px)}
  .favourite {right:6px;top:7px;width:28px;height:28px}
  .product-meta {font-size:8px}
  .product-title-row {flex-direction:column;gap:5px}
  .product-title-row h3 {font-size:13px}
  .price {font-size:12px}
  .product-description {font-size:11px}
  .swatches {gap:6px}
  .swatch {width:16px;height:16px}
  .swatch-label {font-size:9px;margin-left:0}
  .story-content h2,.joy-copy h2,.club h2 {font-size:35px}
  .story-sticker {font-size:10px;max-width:calc(100% - 26px)}
  .collection-card h3 {font-size:23px}
  .collection-card p {font-size:11px}
  .collection-card .eyebrow {font-size:9px}
  .collection-card .text-link {font-size:11px}
  .club button {font-size:11px}
  .page-heading h1 {font-size:38px}
  .page-heading p {font-size:13px}
  .detail-info h1 {font-size:35px}
  .detail-intro {font-size:13px}
  .size-row {flex-wrap:wrap}
  .size-row .text-button {padding-top:0;font-size:12px}
  .size-option {min-width:48px;font-size:11px}
  .colour-choice {width:44px;height:44px}
  .add-row .button {font-size:13px;padding:13px}
  .image-note,.detail-assurance {font-size:10px}
  .cart-item h3 {font-size:13px}
  .footer-top h3,.footer-top>div>a:not(.footer-logo),.footer-top .text-button {font-size:12px}
}
@media(max-width:370px) {.hero h1 {font-size:42px}.hero-copy {padding:28px 20px}.hero-ctas {gap:12px}.hero-ctas .button,.hero-ctas .underlink {font-size:11px;padding:12px}.swatches {gap:5px}.swatch {width:15px;height:15px}}

/* Shoppable cards: controls are siblings of the product link. */
.visually-hidden {position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.card-gallery {position:relative}
.card-image {display:block;width:100%;height:100%;overflow:hidden}
.card-image .product-picture {transition:transform .3s ease}
.product-visual:hover .product-picture {transform:none}
.card-image.detail-view .product-picture {transform:scale(1.65);transform-origin:38% 57%}
.card-gallery[aria-busy=true] .product-visual {opacity:.65}
.theme-label {display:inline-flex;align-items:center;gap:7px;width:fit-content;margin-bottom:9px;color:var(--theme-colour);font-size:11px;line-height:1.4;font-weight:800;letter-spacing:.01em}
.theme-dot {width:7px;height:7px;flex-shrink:0;border-radius:50%;background:var(--theme-colour)}
.theme-princess {--theme-colour:#a72161}
.theme-mermaid {--theme-colour:#087a8b}
.theme-fairy {--theme-colour:#7442a8}
.theme-ballet {--theme-colour:#914627}
.theme-garden {--theme-colour:#226b47}
.theme-space {--theme-colour:#204f9a}
.theme-tiles {grid-template-columns:repeat(6,minmax(0,1fr))}
@media(min-width:761px) and (max-width:1100px) {.theme-tiles {grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px) {.theme-tiles {grid-template-columns:repeat(2,minmax(0,1fr))}}
.gallery-arrow {position:absolute;top:47%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;background:white;border:1px solid var(--line);border-radius:50%;box-shadow:0 2px 8px #46203a14;font:26px/1 var(--font);z-index:2;opacity:0;transition:opacity .2s,background .2s}
.gallery-arrow.previous {left:9px}
.gallery-arrow.next {right:9px}
.gallery-arrow:hover {background:var(--lilac)}
.card-gallery:hover .gallery-arrow,.card-gallery:focus-within .gallery-arrow {opacity:1}
.card-gallery-footer {position:absolute;left:10px;bottom:10px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;pointer-events:none}
.card-view-label {font-size:9px;font-weight:800;background:#fffffff2;padding:4px 7px;border-radius:4px}
.gallery-dots {display:flex;background:#fffffff2;border-radius:30px;pointer-events:auto}
.gallery-dots button {width:28px;height:28px;display:grid;place-items:center;padding:0}
.gallery-dots button span {width:6px;height:6px;border-radius:50%;background:#c8bec5}
.gallery-dots button[aria-pressed=true] span {background:var(--aqua);width:15px;border-radius:5px}
.product-card .favourite {transition:background .2s,box-shadow .2s,transform .2s}
.product-card .favourite svg {transition:transform .25s,fill .25s;transform-origin:center}
.product-card .favourite:hover,.product-card .favourite:focus-visible {background:var(--pink);box-shadow:0 0 0 4px #bd246d18;transform:translateY(-2px)}
.product-card .favourite:hover svg,.product-card .favourite:focus-visible svg {transform:scale(1.17) rotate(-10deg);fill:#bd246d24}
.product-card .favourite.saved:hover svg {fill:var(--rose)}
.product-card .favourite:active {transform:scale(.92)}
.product-card {display:flex;flex-direction:column}
.product-card .product-info {display:flex;flex-direction:column;flex:1}
.product-card .product-description {flex:1}
.product-card .swatches {gap:2px;margin:12px -6px 3px;flex-wrap:nowrap}
.product-card button.swatch {width:34px;height:34px;flex-shrink:0;border:0;background:transparent;display:grid;place-items:center;outline:none;padding:0;border-radius:50%}
.product-card button.swatch span {display:block;background:var(--swatch);width:21px;height:21px;border:1px solid #0002;border-radius:50%;transition:transform .15s}
.product-card button.swatch.selected span {outline:2px solid var(--aqua);outline-offset:3px}
.product-card button.swatch:hover span {transform:scale(1.12)}
.product-card button.swatch:focus-visible {outline:2px solid var(--aqua);outline-offset:1px}
.card-colour-name {font-size:11px;color:var(--muted);margin:3px 0 14px}
.card-add {position:absolute;right:10px;bottom:10px;width:44px;height:44px;display:grid;place-items:center;padding:10px;background:white;color:var(--aqua);border:1px solid #d5e6e9;border-radius:12px;box-shadow:0 3px 9px #46203a12;transition:background .2s,transform .2s,box-shadow .2s}
.card-add svg {width:23px;height:23px;stroke-width:1.7}
.card-add:hover,.card-add:focus-visible {background:var(--aqua);color:white;transform:translateY(-2px);box-shadow:0 4px 12px #087a8b25}
.card-add:active {transform:scale(.95)}
.quick-shop-dialog {width:min(730px,calc(100vw - 32px));max-width:730px}
.quick-shop {display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:25px;align-items:start}
.quick-shop-image {aspect-ratio:1/1.15;background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.quick-shop h3 {font-family:var(--font);font-size:19px;letter-spacing:0;font-weight:900}
.quick-shop .eyebrow {margin-bottom:8px}
.quick-shop-price {font-weight:900;margin:12px 0}
.quick-shop-colour {font-size:13px;margin-top:15px}
.quick-shop .option-group {margin:19px 0}
.quick-shop .sizes {flex-wrap:wrap;gap:7px}
.quick-shop .size-option {min-width:48px;padding:9px;font-size:11px}
.quick-shop .button {width:calc(100% - 4px)}
.quick-details {display:flex;margin-top:20px;width:fit-content}
#quick-error {font-size:12px;font-weight:800;color:var(--rose);margin-bottom:12px;min-height:16px}
@media(hover:none),(pointer:coarse) {.gallery-arrow {opacity:1}.gallery-arrow {width:38px;height:38px}.product-card button.swatch {min-height:44px}}
@media(max-width:760px) {
 .theme-label {font-size:10px;gap:6px;margin-bottom:7px}
 .theme-dot {width:6px;height:6px}
 .gallery-arrow {opacity:1;width:30px;height:34px;font-size:23px}
 .gallery-arrow.previous {left:5px}.gallery-arrow.next {right:5px}
 .card-view-label {font-size:8px;padding:4px 6px}
 .card-gallery-footer {left:6px;bottom:6px}
 .gallery-dots button {width:22px;height:26px}
 .product-card .swatches {gap:0;margin-left:-3px;margin-right:-3px}
 .product-card button.swatch {width:20%;min-width:0;height:38px}
 .product-card button.swatch span {width:18px;height:18px}
 .card-add {right:6px;bottom:6px;width:40px;height:40px;padding:9px;border-radius:10px}
 .card-colour-name {font-size:10px;margin-bottom:12px}
 .quick-shop {grid-template-columns:1fr;gap:18px}
 .quick-shop-image {width:105px;aspect-ratio:1;margin:auto}
 .quick-shop-dialog {padding:22px;max-height:calc(100dvh - 24px)}
 .quick-shop .option-group {margin:15px 0}
 .quick-shop .size-option {min-width:43px}
}
@media(prefers-reduced-motion:reduce) {.card-image .product-picture,.gallery-arrow,.product-card .favourite,.product-card .favourite svg,.product-card button.swatch span,.card-add {transition:none}.product-card .favourite:hover,.product-card .favourite:hover svg,.product-card button.swatch:hover span,.card-add:hover,.card-add:active {transform:none}}

/* Keep shoppers browsing while their selected outfit travels to the bag. */
.bag-flight {position:fixed;width:88px;height:88px;z-index:40;pointer-events:none;background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 8px 24px #41173125;will-change:transform,opacity}
.bag-flight .product-picture {display:block;position:relative;width:100%;height:100%;margin:0;border-radius:0}
.bag-button {position:relative}
.bag-button.bag-received {background:var(--pink);color:var(--rose);box-shadow:0 0 0 5px #ffe7f280;animation:bag-glow 1.1s ease 2}
.bag-button.bag-received .bag-icon {animation:bag-catch .85s ease 2}
.bag-button.bag-received #bag-count {background:var(--rose);color:white;animation:bag-count-pop .65s ease}
@keyframes bag-catch {0%,100%{transform:rotate(0) scale(1)}25%{transform:translateY(-5px) rotate(-14deg) scale(1.35)}50%{transform:rotate(12deg) scale(1.25)}75%{transform:rotate(-6deg) scale(1.12)}}
@keyframes bag-glow {0%,100%{box-shadow:0 0 0 4px #c3267800}45%{box-shadow:0 0 0 10px #c3267825}}
@keyframes bag-count-pop {0%,100%{transform:scale(1)}45%{transform:scale(1.45)}}
@media(prefers-reduced-motion:reduce){.bag-button.bag-received,.bag-button.bag-received .bag-icon,.bag-button.bag-received #bag-count{animation:none}}

/* Raspberry, lilac and little playful details; product photography stays white. */
.announcement {background:var(--rose);color:#fff}
.brand-word sup {color:var(--rose)}
.bag-button {border-radius:16px;padding:7px;transition:background .2s,color .2s,box-shadow .2s}
.bag-button:hover {background:var(--pink);color:var(--rose)}
.page-heading {background:radial-gradient(circle at 88% 24%,#fff9 0 8px,transparent 9px),radial-gradient(circle at 92% 65%,#d8b5ef80 0 17px,transparent 18px),linear-gradient(110deg,#fff0f7 10%,#f4e8fc 100%);border-bottom:1px solid var(--line)}
.page-heading .eyebrow {color:var(--rose)}
.category-tabs {background:var(--lilac);border:1px solid #e7d4f1;border-radius:22px;padding:6px}
.pill {border-radius:16px}
.pill.active,.pill:hover {background:var(--rose);color:#fff}
.theme-tile.selected {border-color:var(--rose);background:var(--pink)}
.theme-tile:hover {border-color:var(--rose)}
.button,.button.rose,.hero-ctas .underlink {border-radius:18px;border-color:#a32469;box-shadow:0 4px 0 #a32469}
.button:hover,.button.rose:hover {border-color:#a32469}
.button.outline,.button.light {border-color:#cfacd8;box-shadow:0 4px 0 #e8d4ed}
.hero-copy {background:linear-gradient(145deg,#ffe7f2,#f4e8fc)}
.hero .eyebrow {background:#fff;color:var(--rose);border:1px solid #f1c4dc}
.benefits {background:#fff0f7;border-block:1px solid #f4d6e7}
.benefit svg {color:var(--rose)}
.step {border-bottom-color:#e1c9ed}
.card-add {color:var(--rose);border-color:#efc8dd;box-shadow:0 3px 9px #a3246912}
.card-add:hover,.card-add:focus-visible {background:var(--pink);color:var(--rose);border-color:var(--rose);box-shadow:0 4px 12px #c3267820}
.gallery-dots button[aria-pressed="true"] span {background:var(--rose)}
.club {background:linear-gradient(120deg,#f2e6fb,#ffe7f2)}
footer {background:#fff9fc;border-top:1px solid var(--line)}
@media(max-width:760px){.header .bag-button{padding:5px;gap:5px;border-radius:12px}.category-tabs{border-radius:18px}.pill{border-radius:12px}}

/* A handful of little doodles, only in the homepage editorial sections. */
.home-doodle,.heading-doodle {display:inline-flex;pointer-events:none;user-select:none;color:var(--rose)}
.home-doodle {position:absolute}
.home-doodle svg.phosphor-icon,.heading-doodle svg.phosphor-icon {width:100%;height:100%}
.hero-heart {width:34px;height:34px;right:30px;top:38px;transform:rotate(16deg);color:#cc5894}
.hero-flower {width:62px;height:62px;right:28px;bottom:35px;transform:rotate(-14deg);color:#aa73c3;opacity:.75}
.hero h1 em {text-decoration:underline;text-decoration-style:wavy;text-decoration-color:#e9a8cd;text-decoration-thickness:2px;text-underline-offset:10px}
.home-heading-flower {position:relative;width:fit-content;padding-right:40px}
.heading-doodle {position:absolute;right:0;top:-7px;width:29px;height:29px;transform:rotate(12deg);color:#b66bc0}
.story-content {position:relative}
.story-heart {width:25px;height:25px;right:25px;top:25px;transform:rotate(16deg);color:#d66fa7;opacity:.8}
@media(max-width:1100px){.hero-flower{width:43px;height:43px;right:15px;bottom:22px}.hero-heart{width:25px;height:25px;right:17px;top:18px}}
@media(max-width:760px){.hero-heart{width:23px;height:23px;top:16px;right:14px}.hero-flower{width:35px;height:35px;bottom:19px;right:15px;opacity:.6}.hero-footnote{padding-right:28px}.home-heading-flower{padding-right:26px}.heading-doodle{width:22px;height:22px;top:-8px}.story-heart{width:21px;height:21px;right:17px;top:16px}}
@media(max-width:760px){.hero-copy{padding-bottom:54px}.hero-flower{width:28px;height:28px;bottom:12px;right:22px}}

/* A bag-aware collection checklist, one slot for each theme. */
.collect-all {margin:42px 5% 0;padding:32px;border:1px solid #ebd6ee;border-radius:24px;background:linear-gradient(120deg,#fff4f9,#f7effc)}
.collect-heading {display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:24px}
.collect-heading .eyebrow {margin-bottom:10px}
.collect-heading h2 {font-size:38px;margin-bottom:10px}
.collect-heading p,.collect-note {font-size:12px;line-height:1.6;color:var(--muted)}
.collect-progress {display:grid;gap:10px;min-width:205px;font-size:13px;color:var(--rose)}
.collect-progress progress {appearance:none;width:100%;height:8px;border:0;border-radius:20px;overflow:hidden;background:#e8d7ed}
.collect-progress progress::-webkit-progress-bar {background:#e8d7ed;border-radius:20px}
.collect-progress progress::-webkit-progress-value {background:var(--rose);border-radius:20px}
.collect-progress progress::-moz-progress-bar {background:var(--rose);border-radius:20px}
.collect-progress .text-link {justify-self:start}
.collect-grid {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.collect-card {min-width:0;padding:12px;background:white;border:1px solid var(--line);border-radius:17px;display:flex;flex-direction:column}
.collect-card.in-bag {border-color:#ca76a4;box-shadow:0 0 0 1px #ca76a440}
.collect-picture {height:145px;overflow:hidden;border-radius:10px;background:white;margin-bottom:12px}
.collect-picture .product-picture {position:relative;display:block;width:100%;height:100%}
.collect-card h3 {font-size:15px;letter-spacing:-.02em}
.collect-card>p {font-size:10px;color:var(--muted);margin:5px 0 10px}
.collect-state {font-size:11px;font-weight:800;color:var(--rose);display:flex;align-items:center;gap:5px;margin-top:auto;min-height:22px}
.collect-state svg.phosphor-icon {width:15px;height:15px}
.collect-choose {display:flex;align-items:center;justify-content:space-between;gap:5px;border:1px solid #e5bfd6;border-radius:10px;background:#fff2f8;color:var(--rose);padding:10px 8px;font-size:11px;font-weight:900;margin-top:10px;min-height:44px}
.collect-choose svg.phosphor-icon {width:17px;height:17px}
.collect-choose:hover {background:var(--pink);border-color:var(--rose)}
.collect-choose:disabled {opacity:.5;cursor:not-allowed}
.collect-card.in-bag .collect-choose {background:white;color:var(--aqua);border-color:var(--line)}
.collect-note {margin-top:18px;font-size:11px}
.collect-options {display:grid;gap:10px;margin-top:15px}
.collect-options label {font-size:12px;font-weight:800;display:grid;gap:5px}
.collect-options select {width:100%;min-height:42px;padding:8px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);font:inherit}
/* The item list scrolls; checkout and continue shopping always remain in view. */
dialog.drawer.bag-drawer[open] {display:flex;flex-direction:column;overflow:hidden;padding:0;height:100dvh;max-height:100dvh}
.bag-drawer .modal-header {flex:none;margin:0;padding:24px 26px 18px;border-bottom:1px solid var(--line)}
.bag-drawer .modal-header h2 {font-size:29px}
.bag-drawer .cart-items {flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 26px;scrollbar-gutter:stable}
.bag-drawer .cart-summary {flex:none;margin:0;padding:18px 26px max(15px,env(safe-area-inset-bottom));border-top:1px solid var(--line);box-shadow:0 -6px 20px #48213f06;background:white}
.bag-drawer .cart-summary p {margin:8px 0 12px;font-size:10px;line-height:1.5}
.bag-drawer .cart-summary .mini-note {margin:9px 0 0}
.bag-drawer .cart-summary>.button {width:100%;min-height:46px;padding:11px 15px}
.cart-continue {display:block;width:100%;min-height:40px;font-size:12px;font-weight:800;color:var(--aqua);text-decoration:underline;text-underline-offset:4px;margin-top:3px}
.bag-drawer>.empty-state {overflow:auto;padding:28px}
@media(max-width:1100px){.collect-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.collect-picture{height:165px}}
@media(max-width:760px){.collect-all{margin:28px 16px 0;padding:22px 14px;border-radius:19px}.collect-heading{display:block;margin-bottom:20px}.collect-heading h2{font-size:32px}.collect-progress{margin-top:20px;min-width:0;max-width:280px}.collect-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.collect-picture{height:140px}.collect-card{padding:10px}.collect-card h3{font-size:14px}.bag-drawer .modal-header{padding:19px 20px 14px}.bag-drawer .cart-items{padding:0 20px}.bag-drawer .cart-summary{padding:14px 20px max(12px,env(safe-area-inset-bottom))}}
@media(max-height:600px){.bag-drawer .modal-header{padding-block:10px}.bag-drawer .modal-header h2{font-size:23px}.bag-drawer .cart-summary{padding-block:10px}.bag-drawer .cart-summary .mini-note{display:none}}

.quick-gallery {min-width:0}
.quick-photo-nav {display:flex;align-items:center;justify-content:space-between;margin:9px 0;font-size:12px;font-weight:800;color:var(--muted)}
.quick-photo-nav button {width:38px;height:38px;border:1px solid var(--line);border-radius:50%;color:var(--rose)}
.quick-photo-nav button:hover {background:var(--pink)}
.quick-photo-tabs {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
.quick-photo-tabs button {min-height:36px;border:1px solid var(--line);border-radius:8px;font-size:11px;font-weight:800;background:white}
.quick-photo-tabs button[aria-pressed="true"] {background:var(--pink);border-color:var(--rose);color:var(--rose)}
.quick-photo-brief {font-size:11px;line-height:1.6;color:var(--muted);margin-top:12px}
.quick-colours .colour-options {gap:10px;flex-wrap:wrap}
.quick-gallery .photo-placeholder.compact {padding:20px 12px;gap:12px}
.quick-gallery .photo-placeholder.compact strong {font-size:19px}
@media(max-width:760px){.quick-gallery{width:100%;max-width:290px;margin:auto}.quick-gallery .quick-shop-image{width:100%;height:230px;aspect-ratio:auto}.quick-gallery .quick-shop-image>.product-picture{height:100%;width:100%}.quick-photo-tabs button{min-height:40px}.quick-gallery .photo-placeholder.compact em{display:block}}

.apparel-choices {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.apparel-choice {display:flex;flex-direction:column;align-items:center;gap:8px;padding:4px 0;font-size:10px;font-weight:800;text-align:center;color:var(--muted)}
.apparel-choice-dot {display:grid;place-items:center;width:49px;height:49px;border:1px solid #e6d5e6;border-radius:50%;background:#fff;color:var(--aqua);transition:background .18s,border-color .18s,transform .18s}
.apparel-choice-dot svg.phosphor-icon {width:25px;height:25px}
.apparel-choice[aria-pressed="true"] {color:var(--rose)}
.apparel-choice[aria-pressed="true"] .apparel-choice-dot {background:var(--pink);color:var(--rose);border-color:var(--rose);outline:2px solid var(--rose);outline-offset:3px}
.apparel-choice:hover:not(:disabled) .apparel-choice-dot {background:var(--pink);transform:translateY(-2px)}
.apparel-choice:disabled {opacity:.4;cursor:not-allowed}

/* Keep the purchase action in view while the quick-shop contents scroll. */
dialog.quick-shop-dialog[open] {display:flex;flex-direction:column;overflow:hidden;padding:0;max-height:calc(100dvh - 40px)}
.quick-shop-dialog .modal-header {flex:none;margin:0;padding:24px 32px 20px;border-bottom:1px solid var(--line)}
.quick-shop-scroll {flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:24px 32px;scrollbar-gutter:stable}
.quick-shop-footer {flex:none;padding:16px 32px max(20px,env(safe-area-inset-bottom));background:white;border-top:1px solid var(--line);box-shadow:0 -6px 20px #48213f08}
.quick-shop-footer>.button {width:100%;min-height:48px}
.quick-shop-footer #quick-error {min-height:0;margin:0 0 10px}
.quick-shop-footer #quick-error:empty {display:none}
@media(max-width:760px){dialog.quick-shop-dialog[open]{max-height:calc(100dvh - 24px)}.quick-shop-dialog .modal-header{padding:18px 22px 16px}.quick-shop-dialog .modal-header h2{font-size:27px}.quick-shop-scroll{padding:20px 22px}.quick-shop-footer{padding:14px 22px max(18px,env(safe-area-inset-bottom))}}
@media(max-height:500px){.quick-shop-dialog .modal-header{padding-block:10px}.quick-shop-dialog .modal-header h2{font-size:23px}.quick-shop-footer{padding-block:10px}}

/* Keep the preview beside the options on desktop; mobile stays stacked. */
@media(min-width:761px){
 .quick-gallery {position:sticky;top:0;align-self:start;max-height:calc(100dvh - 270px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
}
@media(min-width:761px) and (max-height:600px){.quick-gallery{max-height:calc(100dvh - 240px)}}

.quick-shop-dialog .modal-header {align-items:flex-start;padding-block:19px}
.quick-shop-dialog .modal-header h2 {font-size:23px;line-height:1.3;letter-spacing:-.025em}
.quick-header-price {display:block;margin-top:6px;font-family:var(--font);font-size:16px;font-weight:900;letter-spacing:0;color:var(--rose)}
.quick-shop-dialog .modal-header .icon-button {flex-shrink:0;min-width:36px;min-height:36px}
@media(max-width:760px){.quick-shop-dialog .modal-header{padding-block:15px}.quick-shop-dialog .modal-header h2{font-size:19px}.quick-header-price{font-size:15px;margin-top:5px}}
@media(max-height:500px){.quick-shop-dialog .modal-header{padding-block:10px}.quick-shop-dialog .modal-header h2{font-size:18px}.quick-header-price{margin-top:3px;font-size:14px}}
