/* Extracted from editor.html inline base shell on 2026-10-13 for HTML size / cache. Keep before mobile-builder-hotfix.css. */
    :root {
      --ink: #212123;
      --ink-soft: #3a3a3d;
      --muted: #828183;
      --muted-light: #a8a7a9;
      --line: #e8e7e3;
      --line-light: #f0efeb;
      --paper: #f9f8f5;
      --paper-warm: #f5f1eb;
      --white: #ffffff;
      --moss: #3a6d4b;
      --moss-light: #5a8f6e;
      --jade: #2a5a3a;
      --sage: #bcc9b6;
      --sage-light: #e8efe4;
      --sage-pale: #e1e7b9;
      --gold: #d4a853;
      --gold-light: #e8cc80;
      --silver: #c8ced0;
      --silver-light: #e8ebec;
      --rose: #d4a1a8;
      --rose-light: #f6e3e6;
      --blush: #f3dde1;
      --footer-bg: #07130f;
      --footer-band: #173f2e;
      --shadow-sm: 0 8px 18px rgba(31, 40, 28, 0.06);
      --shadow: 0 18px 44px rgba(31, 40, 28, 0.09);
      --shadow-lg: 0 30px 76px rgba(31, 40, 28, 0.13);
      --radius-sm: 4px;
      --radius: 6px;
      --radius-lg: 8px;
      --radius-full: 999px;
      --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
      --ease-out: cubic-bezier(0, 0, 0.2, 1);
      --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
      --font-heading: "Playfair Display", "Cormorant Garamond", "Noto Serif SC", Georgia, serif;
    }

    *, *::before, *::after { box-sizing: border-box; }

    html { scroll-padding-top: 82px; scroll-behavior: smooth; touch-action: auto; }

    body {
      margin: 0;
      background: var(--paper);
      color: var(--ink);
      font-family: "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;
      letter-spacing: 0;
      line-height: 1.6;
      touch-action: auto;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    button, input, select { font: inherit; letter-spacing: inherit; }

    img { max-width: 100%; display: block; }

    .site-loading-screen {
      /* 2026-06-22 public loading material image lock:
         the first wait state should use approved loose-bead material imagery, not old campaign renders. */
      position: fixed;
      inset: 0;
      z-index: var(--z-modal);
      display: grid;
      place-items: center;
      padding: clamp(24px, 6vw, 64px);
      color: #123f2b;
      background:
        linear-gradient(90deg, rgba(253, 249, 240, 0.98) 0%, rgba(253, 249, 240, 0.9) 48%, rgba(242, 233, 216, 0.72) 100%),
        url("assets/generated/jewdiy-editor-silk-tray-bg-20260609.jpg") center / cover no-repeat,
        #f7f1e7;
      opacity: 1;
      visibility: visible;
      transition: opacity 420ms var(--ease), visibility 420ms var(--ease);
    }

    .site-loading-screen.is-hidden {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }

    .site-loading-card {
      width: min(260px, 58vw);
      margin-right: auto;
      display: grid;
      gap: 0;
      text-shadow: 0 1px 18px rgba(255, 255, 255, 0.5);
    }

    .site-loading-wordmark {
      width: 100%;
      height: auto;
      aspect-ratio: 560 / 175;
      object-fit: contain;
    }

    @media (max-width: 720px) {
      .site-loading-screen {
        place-items: start center;
        padding-top: max(42px, env(safe-area-inset-top));
        background:
          linear-gradient(180deg, rgba(253, 249, 240, 0.98) 0%, rgba(253, 249, 240, 0.88) 52%, rgba(242, 233, 216, 0.78) 100%),
          url("assets/generated/jewdiy-editor-silk-tray-bg-20260609.jpg") center / cover no-repeat,
          #f7f1e7;
      }

      .site-loading-card {
        width: min(168px, 48vw);
      }

      .site-loading-wordmark {
        width: 100%;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .site-loading-screen { transition: none; }
    }

    .site-shell {
      min-height: 100vh;
      display: flex;
      flex-direction: column;
    }

    /* ── Section dividers ── */
    .section-divider {
      height: 0;
      background: none;
      margin: 0;
    }

    .topbar {
      position: sticky;
      top: 0;
      z-index: var(--z-header);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
      padding: 14px clamp(20px, 5vw, 56px);
      background: rgba(245, 243, 240, 0.94);
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 8px;
      min-width: 150px;
      text-decoration: none;
      color: inherit;
    }

    .topbar > .brand .brand-mark {
      display: grid;
    }

    .brand-mark {
      width: 42px;
      height: 42px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      position: relative;
      flex-shrink: 0;
      background: transparent url("assets/brand/jewdiy-official-monogram-256.png?v=20260606-official") center / contain no-repeat;
      filter: none;
    }

    .brand-lockup {
      display: grid;
      gap: 2px;
      min-width: 0;
    }

    .brand-wordmark {
      width: 148px;
      max-width: 30vw;
      height: auto;
      aspect-ratio: 560 / 170;
      object-fit: contain;
      display: block;
    }

    .brand-wordmark-text {
      font-family: Georgia, "Times New Roman", Times, serif;
      font-size: 31px;
      font-weight: 700;
      line-height: 0.95;
      color: #07120d;
      white-space: nowrap;
    }

    .brand-wordmark-mobile {
      display: none;
      font-family: Georgia, "Times New Roman", Times, serif;
      font-size: 24px;
      font-weight: 800;
      line-height: 0.92;
      color: #07120d;
      white-space: nowrap;
    }

    .brand-mark::before,
    .brand-mark::after {
      display: none;
    }

    .brand strong {
      display: block;
      font-family: var(--font-heading);
      font-size: 26px;
      font-weight: 800;
      line-height: 1.15;
      letter-spacing: 0;
      color: #0f432e;
    }

    .brand span {
      color: rgba(15, 67, 46, 0.62);
      font-size: 10px;
      font-weight: 700;
      text-transform: none;
      letter-spacing: 0;
      white-space: nowrap;
    }

    .nav {
      display: flex;
      align-items: center;
      gap: clamp(18px, 3vw, 32px);
      color: var(--muted);
      font-size: 14px;
      font-weight: 500;
    }

    .nav a {
      /* 2026-06-22 homepage desktop recovery nav tap targets:
         desktop and touch-laptop shoppers need reliable first-screen recovery links back to Builder, styles and trust pages. */
      color: inherit;
      text-decoration: none;
      position: relative;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 44px;
      min-height: 44px;
      padding: 0;
      touch-action: manipulation;
      transition: color 0.2s ease;
    }

    .nav a::after {
      content: "";
      position: absolute;
      bottom: -2px;
      left: 0;
      width: 0;
      height: 2px;
      background: var(--moss);
      border-radius: 2px;
      transition: width 0.25s var(--ease);
    }

    .nav a:hover { color: var(--moss); }
    .nav a:hover::after { width: 100%; }

    .nav a.nav-story-link {
      min-height: 44px;
      padding: 0 13px;
      border: 1px solid rgba(35, 79, 55, 0.18);
      border-radius: 999px;
      background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(239, 246, 239, 0.9));
      color: var(--moss);
      font-weight: 800;
      box-shadow: 0 8px 18px rgba(31, 40, 28, 0.06);
    }

    .nav a.nav-story-link::before {
      content: "↗";
      margin-right: 5px;
      font-size: 11px;
      line-height: 1;
    }

    .nav a.nav-story-link::after {
      display: none;
    }

    .nav a.nav-story-link:hover {
      border-color: rgba(35, 79, 55, 0.36);
      transform: translateY(-1px);
      box-shadow: 0 12px 24px rgba(31, 40, 28, 0.10);
    }

    .quick-directory {
      position: fixed;
      left: max(14px, env(safe-area-inset-left));
      top: max(66px, calc(env(safe-area-inset-top) + 66px));
      z-index: var(--z-dropdown);
      display: grid;
      gap: 5px;
      width: 118px;
      padding: 8px;
      border: 1px solid rgba(221, 226, 216, 0.92);
      border-radius: 14px;
      background: rgba(255, 255, 255, 0.91);
      box-shadow: 0 18px 42px rgba(31, 40, 28, 0.13);
      backdrop-filter: blur(14px);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transform: translateY(-8px) scale(0.98);
      transform-origin: left top;
      transition: opacity 0.18s ease, visibility 0.18s ease, transform 0.18s var(--ease);
    }

    .quick-directory.is-open,
    body.quick-directory-open .quick-directory {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translateY(0) scale(1);
    }

    .quick-directory-title {
      display: flex;
      align-items: center;
      justify-content: space-between;
      min-height: 24px;
      padding: 0 3px 2px;
      color: var(--moss);
      font-size: 12px;
      font-weight: 900;
    }

    .quick-directory-title::after {
      content: "";
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--amber);
      box-shadow: 0 0 0 4px rgba(196, 148, 46, 0.14);
    }

    .quick-directory a {
      display: flex;
      align-items: center;
      justify-content: space-between;
      min-height: 45px;
      padding: 0 9px;
      border: 1px solid rgba(221, 226, 216, 0.86);
      border-radius: 999px;
      background: rgba(248, 250, 246, 0.86);
      color: var(--muted);
      text-decoration: none;
      font-size: 11px;
      font-weight: 850;
      line-height: 1.1;
      transition: transform 0.18s var(--ease), color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
    }

    .quick-directory a::after {
      content: "›";
      color: rgba(35, 79, 55, 0.48);
      font-size: 14px;
    }

    .quick-directory a:hover,
    .quick-directory a:focus-visible {
      color: var(--moss);
      border-color: rgba(35, 79, 55, 0.34);
      background: rgba(239, 246, 239, 0.96);
      transform: translateX(2px);
      outline: none;
    }

    body.mobile-builder-active .quick-directory,
    body.canvas-fullscreen-open .quick-directory,
    body.cart-open .quick-directory {
      display: none;
    }

    @media (max-width: 1180px) {
      .quick-directory {
        left: max(12px, env(safe-area-inset-left));
        right: auto;
        top: max(58px, calc(env(safe-area-inset-top) + 58px));
        width: min(208px, calc(100vw - 24px));
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 7px;
        transform-origin: left top;
      }

      .quick-directory-title {
        grid-column: 1 / -1;
        min-height: 20px;
        font-size: 11px;
      }

      .quick-directory a {
        min-height: 45px;
        padding: 0 8px;
        font-size: 10px;
      }

      .left-panel .material-taxonomy {
        gap: 6px;
        padding: 8px 10px;
      }

      .left-panel .taxonomy-row {
        grid-template-columns: 40px minmax(0, 1fr);
        gap: 6px;
      }

      .left-panel .taxonomy-label {
        padding-top: 6px;
        font-size: 10px;
      }

      .left-panel .taxonomy-pills {
        gap: 5px;
      }

      .left-panel .taxonomy-pills .filter {
        padding: 6px 7px;
        font-size: 11px;
      }
    }

    @media (max-width: 720px) {
      .quick-directory {
        left: max(10px, env(safe-area-inset-left));
        right: max(10px, env(safe-area-inset-right));
        top: max(52px, calc(env(safe-area-inset-top) + 52px));
        width: auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        padding: 8px;
        border-radius: 16px;
        background: rgba(255, 255, 255, 0.96);
      }

      .quick-directory-title {
        grid-column: 1 / -1;
        min-height: 18px;
        padding-inline: 4px;
        font-size: 11px;
      }

      .quick-directory a {
        min-height: 45px;
        justify-content: flex-start;
        padding: 0 10px;
        border-radius: 8px;
        font-size: 11px;
      }
    }

    @media (max-width: 380px) {
      .quick-directory {
        left: max(8px, env(safe-area-inset-left));
        right: max(8px, env(safe-area-inset-right));
        top: max(48px, calc(env(safe-area-inset-top) + 48px));
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px;
        padding: 7px;
        border-radius: 14px;
      }

      .quick-directory-title {
        grid-column: 1 / -1;
        min-height: 20px;
        padding: 0 4px;
        font-size: 10px;
      }

      .quick-directory-title::after {
        display: none;
      }

      .quick-directory a {
        min-height: 45px;
        padding: 0 8px;
        font-size: 10px;
      }
    }

    .top-actions {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .language-select {
      height: 38px;
      border: 1px solid var(--line);
      border-radius: var(--radius-full);
      background: var(--white);
      color: var(--ink);
      padding: 0 32px 0 12px;
      font-size: 13px;
      cursor: pointer;
      appearance: none;
      -webkit-appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b7267' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 12px center;
      transition: border-color 0.2s ease;
    }

    .language-select:focus {
      outline: none;
      border-color: var(--moss);
    }

    .icon-button {
      width: 38px;
      height: 38px;
      border: 1px solid var(--line);
      background: var(--white);
      color: var(--ink);
      border-radius: var(--radius-full);
      cursor: pointer;
      display: grid;
      place-items: center;
      font-size: 16px;
      transition: all 0.22s var(--ease);
    }

    .pill-button {
      height: 38px;
      padding: 0 18px;
      border: 1px solid var(--line);
      background: var(--white);
      color: var(--ink);
      border-radius: var(--radius);
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 7px;
      white-space: nowrap;
      font-size: 13px;
      font-weight: 500;
      transition: background 0.22s var(--ease), color 0.22s var(--ease);
    }

	    .pill-button.primary {
	      background: var(--moss);
	      border-color: var(--moss);
	      color: white;
	      font-weight: 500;
	    }

	    .pill-button.primary.is-cart-ready {
	      background: #245f3e;
	      border-color: #245f3e;
	      box-shadow: 0 8px 18px rgba(36, 95, 62, 0.16);
	      animation: none;
	    }

	    .pill-button.primary.needs-beads {
	      background: #f8f3e7;
	      border-color: rgba(184, 137, 36, 0.38);
	      color: #7f5b18;
	      box-shadow: none;
	    }

    .pill-button:hover {
      background: var(--paper-warm);
      border-color: var(--muted);
    }

    .pill-button.primary:hover {
      background: var(--moss-light);
      border-color: var(--moss-light);
    }

    .top-actions .language-select,
    .top-actions #wishlistButton,
    .top-actions #topCart {
      /* 2026-06-22 homepage desktop topbar transaction tap targets:
         the persistent language, wishlist and cart controls should not stay as 38px targets on touch laptops. */
      height: 44px;
      min-height: 44px;
      touch-action: manipulation;
    }

    .top-actions #wishlistButton {
      width: 44px;
      min-width: 44px;
    }

    .top-actions #topCart {
      min-width: 82px;
      padding-inline: 16px;
    }

    @media (min-width: 721px) and (max-width: 1100px) {
      /* 2026-06-22 homepage tablet topbar transaction tap targets:
         tablet shoppers still use touch for language, wishlist and cart recovery,
         so the persistent topbar controls cannot stay at the 38px desktop baseline. */
      .language-select,
      .top-actions #wishlistButton,
      .top-actions #topCart {
        height: 44px;
        min-height: 44px;
        touch-action: manipulation;
      }

      .top-actions #wishlistButton {
        width: 44px;
        min-width: 44px;
      }

      .top-actions #topCart {
        min-width: 82px;
        padding-inline: 16px;
      }
    }

    .builder {
      display: grid;
      grid-template-columns: minmax(248px, 300px) minmax(0, 1fr) minmax(260px, 318px);
      gap: 12px;
      padding: 16px clamp(12px, 1.6vw, 26px) 30px;
      flex: 1;
      scroll-margin-top: 86px;
      align-items: start;
    }

    .panel {
      background: var(--white);
      border: 1px solid var(--line-light);
      border-radius: var(--radius);
      box-shadow: 0 14px 40px rgba(31, 40, 28, 0.045);
    }

    .panel:focus { outline: none; }

    .left-panel,
    .right-panel {
      align-self: start;
      max-height: none;
      overflow: visible;
      scrollbar-width: thin;
      scrollbar-color: rgba(58, 109, 75, 0.35) transparent;
    }

    .left-panel {
      display: block;
      position: static;
      top: auto;
    }

    .right-panel {
      position: sticky;
      top: 82px;
    }

    .panel-header {
      padding: 16px 16px 11px;
      border-bottom: 1px solid var(--line-light);
    }

    .eyebrow {
      color: var(--muted);
      font-size: 11px;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.1em;
    }

    h1, h2, h3, p { margin: 0; }

    .panel-header h2,
    .summary h2 {
      margin-top: 5px;
      font-size: 22px;
      line-height: 1.12;
    }

    .panel-header p,
    .summary p,
    .tool-note {
      margin-top: 8px;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.5;
    }

    .tabs,
    .filters {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      padding: 12px 16px;
      border-bottom: 1px solid rgba(221, 226, 216, 0.8);
    }

    .tab,
    .filter {
      border: 1px solid var(--line);
      background: var(--white);
      color: var(--muted);
      border-radius: 999px;
      padding: 9px 12px;
      cursor: pointer;
      font-size: 13px;
    }

    .tab.active,
    .filter.active {
      background: var(--moss);
      border-color: var(--moss);
      color: white;
    }

    .material-taxonomy {
      display: grid;
      grid-template-columns: 1fr;
      gap: 8px;
      align-content: start;
      padding: 12px 14px;
      border-bottom: 1px solid rgba(221, 226, 216, 0.8);
      background:
        radial-gradient(circle at 38% -8%, rgba(255,255,255,0.18), transparent 38%),
        linear-gradient(180deg, #173a2e 0%, #214d3a 48%, #153428 100%);
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.16);
    }

    .taxonomy-row {
      display: grid;
      grid-template-columns: 1fr;
      gap: 6px;
      align-items: flex-start;
      min-width: 0;
    }

    .taxonomy-label {
      color: rgba(255,255,255,0.78);
      font-size: 11px;
      font-weight: 900;
      letter-spacing: 0.03em;
      white-space: nowrap;
    }

    .taxonomy-pills {
      display: flex;
      flex-direction: column;
      flex-wrap: nowrap;
      gap: 6px;
      min-width: 0;
      max-height: 196px;
      overflow-y: auto;
      padding: 1px 3px 1px 0;
      scrollbar-width: thin;
      overscroll-behavior: contain;
      -webkit-overflow-scrolling: touch;
    }

    .taxonomy-pills .filter {
      flex: 0 0 auto;
      width: 100%;
      padding: 7px 9px;
      font-size: 12px;
      line-height: 1.1;
      border-color: rgba(255,255,255,0.2);
      background: rgba(255,255,255,0.11);
      color: rgba(255,255,255,0.91);
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.08);
      text-align: left;
      position: relative;
    }

    .taxonomy-pills .filter.active {
      background: #fffdf7;
      border-color: #fffdf7;
      color: #173a2e;
      box-shadow: 0 10px 22px rgba(11, 35, 23, 0.22);
    }

    .taxonomy-pills .filter[data-filter-level="parent"][aria-expanded="true"]::after {
      content: "";
      position: absolute;
      right: 9px;
      top: 50%;
      width: 6px;
      height: 6px;
      border-right: 1.5px solid currentColor;
      border-bottom: 1.5px solid currentColor;
      transform: translateY(-58%) rotate(45deg);
      opacity: 0.82;
    }

    .taxonomy-pills .filter.is-expanded:not(.active) {
      border-color: rgba(255,255,255,0.44);
      background: rgba(255,255,255,0.22);
      color: #fff;
    }

    .taxonomy-pills .filter[hidden],
    .taxonomy-row[hidden] {
      display: none !important;
    }

	    .taxonomy-row[data-taxonomy-row="children"] {
	      width: 100%;
	      min-width: 0;
	      animation: taxonomyReveal 0.18s ease both;
	      margin: -1px 0 3px;
	      padding-left: 12px;
	      border-left: 1px solid rgba(255,255,255,0.28);
	      position: relative;
	    }

	    .taxonomy-row[data-taxonomy-row="children"] .taxonomy-label {
	      display: none;
	    }

	    .taxonomy-row[data-taxonomy-row="children"] .taxonomy-pills {
	      max-height: 162px;
	      overflow-y: auto;
	      flex-wrap: nowrap;
	      gap: 4px;
	    }

	    .taxonomy-row[data-taxonomy-row="children"] .taxonomy-pills .filter {
	      min-height: 28px;
	      padding: 5px 8px 5px 15px;
	      font-size: 10.8px;
	      font-weight: 760;
	      background: rgba(255,255,255,0.075);
	      border-color: rgba(255,255,255,0.14);
	      color: rgba(255,255,255,0.84);
	      position: relative;
	    }

	    .taxonomy-row[data-taxonomy-row="children"] .taxonomy-pills .filter::before {
	      content: "";
	      position: absolute;
	      left: 5px;
	      top: 50%;
	      width: 6px;
	      height: 1px;
	      background: rgba(255,255,255,0.46);
	    }

	    .taxonomy-row[data-taxonomy-row="children"] .taxonomy-pills .filter.active {
	      background: rgba(255,253,247,0.96);
	      color: var(--moss);
	      border-color: rgba(255,253,247,0.96);
	    }

    @keyframes taxonomyReveal {
      from { opacity: 0; transform: translateY(-4px); }
      to { opacity: 1; transform: translateY(0); }
    }

    .size-selector {
      display: grid;
      gap: 9px;
      padding: 12px 16px;
      border-bottom: 1px solid rgba(221, 226, 216, 0.8);
      background: rgba(255,255,255,0.42);
    }

    .size-selector-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      color: var(--muted);
      font-size: 12px;
      font-weight: 700;
    }

    .size-selector-head strong {
      color: var(--moss);
      font-size: 13px;
    }

    .size-options {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 6px;
    }

    .size-options button {
      height: 34px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: var(--white);
      color: var(--ink);
      cursor: pointer;
      font-size: 12px;
      font-weight: 800;
      transition: transform 0.18s var(--ease), border-color 0.18s var(--ease), background 0.18s var(--ease);
    }

    .size-options button:hover {
      transform: translateY(-1px);
      border-color: rgba(35, 79, 55, 0.38);
    }

    .size-options button.active {
      background: var(--moss);
      border-color: var(--moss);
      color: white;
    }

    .search-bar {
      display: flex;
      gap: 6px;
      align-items: center;
      padding: 8px 16px 12px;
      border-bottom: 1px solid rgba(221, 226, 216, 0.8);
    }

    .search-bar input {
      flex: 1;
      height: 38px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: var(--white);
      padding: 0 14px;
      color: var(--ink);
      font-size: 13px;
      outline: none;
      transition: border-color 0.2s ease;
    }

    .search-bar input:focus {
      border-color: var(--moss);
    }

    .search-bar input::placeholder {
      color: var(--muted);
      opacity: 0.7;
    }

	    .catalog {
	      display: grid;
	      grid-template-columns: 1fr;
	      gap: 8px;
	      padding: 12px;
	    }

	    .catalog-empty-state {
	      grid-column: 1 / -1;
	      min-height: 120px;
	      display: grid;
	      align-items: center;
	      padding: 18px;
	      border: 1px dashed rgba(35, 79, 55, 0.24);
	      border-radius: var(--radius);
	      background: rgba(255, 253, 247, 0.82);
	      color: var(--muted);
	    }

    .product-card {
      border: 1px solid var(--line);
      background: var(--white);
      border-radius: var(--radius);
      padding: 10px;
      cursor: grab;
      min-height: 100px;
      display: grid;
      grid-template-columns: minmax(64px, 70px) 1fr;
      align-items: center;
      gap: 8px;
      user-select: none;
      touch-action: pan-y;
      transition: transform 0.24s var(--ease), border-color 0.24s var(--ease), box-shadow 0.24s var(--ease);
      position: relative;
      -webkit-user-drag: none;
      overflow: hidden;
    }

    .product-card:hover {
      transform: translateY(-2px);
      border-color: rgba(35, 79, 55, 0.45);
      box-shadow: 0 16px 36px rgba(31, 40, 28, 0.12);
    }

    .product-card:active { cursor: grabbing; }

    .product-card.quality-hold {
      cursor: default;
      opacity: 0.78;
      touch-action: pan-y;
    }

    .product-card.quality-hold:hover {
      transform: none;
      border-color: var(--line);
      box-shadow: none;
    }

    .product-card.quality-hold:active {
      cursor: default;
    }

    .product-card.quality-hold .product-art {
      filter: grayscale(0.22) saturate(0.72) contrast(0.96);
      background:
        radial-gradient(circle at 31% 24%, rgba(255,255,255,0.70), transparent 16%),
        linear-gradient(145deg, #eee8dc, #d8d0c1 58%, #c4baa8);
      box-shadow:
        inset -9px -10px 16px rgba(87, 74, 55, 0.13),
        inset 8px 8px 15px rgba(255, 255, 255, 0.42),
        0 10px 18px rgba(31, 40, 28, 0.08);
    }

    .product-card.quality-hold .product-art::before,
    .tray-item.quality-hold .mini-bead::before {
      background: none;
      opacity: 0;
    }

    .product-card.quality-hold .product-card-price,
    .product-card.quality-hold .price-line strong {
      color: var(--muted);
    }

    .product-card.tap-added,
    .tray-item.tap-added {
      border-color: rgba(35, 79, 55, 0.58);
      box-shadow: 0 0 0 4px rgba(35, 79, 55, 0.10), 0 16px 34px rgba(31, 40, 28, 0.12);
      transform: translateY(-2px) scale(0.99);
    }

    .product-card.has-inline-detail {
      align-items: start;
      border-color: rgba(35, 79, 55, 0.38);
      box-shadow: 0 14px 34px rgba(31, 40, 28, 0.08);
    }

    .product-inline-detail {
      grid-column: 1 / -1;
      display: grid;
      gap: 8px;
      margin-top: 3px;
      padding: 9px;
      border: 1px solid rgba(221, 226, 216, 0.9);
      border-radius: 9px;
      background: linear-gradient(180deg, rgba(250, 250, 247, 0.94), rgba(255, 253, 247, 0.98));
      color: var(--muted);
      font-size: 11px;
      line-height: 1.42;
      cursor: default;
      user-select: text;
    }

    .product-inline-detail strong {
      color: var(--moss);
      font-size: 12px;
    }

    .product-inline-detail p {
      display: -webkit-box;
      -webkit-line-clamp: 4;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .product-inline-detail .product-trace-line {
      display: block;
      padding: 7px 8px;
      border: 1px solid rgba(35, 79, 55, 0.14);
      border-radius: 8px;
      background: rgba(35, 79, 55, 0.055);
      color: var(--moss);
      font-weight: 800;
      -webkit-line-clamp: unset;
    }

    .product-inline-detail .product-price-detail {
      display: block;
      padding: 7px 8px;
      border: 1px solid rgba(203, 160, 75, 0.22);
      border-radius: 8px;
      background: rgba(203, 160, 75, 0.08);
      color: #614a16;
      font-weight: 750;
      -webkit-line-clamp: unset;
    }

    .product-inline-meta {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 6px;
    }

    .product-inline-meta span {
      min-width: 0;
      padding: 7px;
      border: 1px solid rgba(221, 226, 216, 0.82);
      border-radius: 8px;
      background: rgba(255,255,255,0.72);
    }

    .product-inline-actions {
      display: flex;
      gap: 6px;
    }

    .product-inline-actions button {
      flex: 1;
      min-height: 30px;
      border-radius: 8px;
      border: 1px solid var(--line);
      background: #fff;
      color: var(--ink);
      font-size: 11px;
      font-weight: 900;
      cursor: pointer;
    }

    .product-inline-actions button.primary {
      border-color: var(--moss);
      background: var(--moss);
      color: #fff;
    }

    .product-size-badge {
      position: absolute;
      right: 10px;
      top: 10px;
      display: inline-flex;
      align-items: center;
      min-height: 22px;
      padding: 0 7px;
      border-radius: 999px;
      background: rgba(246, 250, 244, 0.86);
      border: 1px solid rgba(35, 79, 55, 0.14);
      color: var(--moss);
      font-size: 11px;
      font-weight: 900;
    }

    .product-top {
      display: grid;
      justify-items: center;
      gap: 6px;
      align-self: start;
      min-width: 64px;
      overflow: visible;
    }

    .product-top > div:last-child { text-align: center; }

    .product-art {
      width: 50px;
      height: 50px;
      aspect-ratio: 1 / 1;
      border-radius: 50%;
      display: grid;
      place-items: center;
      flex: 0 0 auto;
      position: relative;
      transform: scale(var(--bead-scale, 1));
      transform-origin: center;
      background:
        radial-gradient(circle at 29% 20%, rgba(255,255,255,0.86), transparent 12%),
        radial-gradient(circle at 70% 76%, rgba(0,0,0,0.25), transparent 38%),
        linear-gradient(145deg, rgba(255,255,255,0.22), transparent 42%, rgba(0,0,0,0.18)),
        var(--bead);
      overflow: hidden;
      box-shadow:
        inset -13px -14px 20px rgba(0, 0, 0, 0.26),
        inset 8px 8px 17px rgba(255, 255, 255, 0.38),
        0 12px 18px rgba(31, 40, 28, 0.15);
    }

    .product-art.charm,
    .product-art.finding {
      border-radius: 10px;
      background: rgba(255,255,255,0.92);
      box-shadow: 0 10px 18px rgba(31, 40, 28, 0.12);
    }

    .product-art.photo-backed,
    .mini-bead.photo-backed,
    .preview-bead.photo-backed {
      aspect-ratio: 1 / 1;
      background: var(--bead-photo) var(--bead-photo-position, center) / var(--bead-photo-size, 106%) no-repeat transparent !important;
      background-color: transparent !important;
      background-blend-mode: normal !important;
      clip-path: circle(50% at 50% 50%);
      border-radius: 50% !important;
      box-shadow:
        0 12px 18px rgba(31, 40, 28, 0.15),
        0 1px 0 rgba(255,255,255,0.36);
    }

    .product-art.photo-backed.natural-cutout,
    .mini-bead.photo-backed.natural-cutout,
    .preview-bead.photo-backed.natural-cutout {
      clip-path: none;
      border-radius: 0 !important;
      background-size: var(--bead-photo-size, 112%) !important;
      background-position: var(--bead-photo-position, center) !important;
      box-shadow: 0 10px 18px rgba(31, 40, 28, 0.12);
    }

    .product-art.photo-backed::before,
    .product-art.photo-backed::after,
    .mini-bead.photo-backed::before,
    .mini-bead.photo-backed::after,
    .preview-bead.photo-backed::before,
    .preview-bead.photo-backed::after {
      display: none !important;
      content: none !important;
    }

    .product-art.photo-backed,
    .mini-bead.photo-backed {
      opacity: 1 !important;
    }

    .product-art.photo-backed {
      background-size: var(--bead-photo-size, 106%) !important;
      background-position: var(--bead-photo-position, center) !important;
    }

    .mini-bead.photo-backed {
      background-size: var(--bead-photo-size, 106%) !important;
      background-position: var(--bead-photo-position, center) !important;
    }

    .product-art.photo-backed.source-photo {
      clip-path: none;
      border-radius: 4px !important;
      background-size: cover !important;
      background-position: center !important;
      background-color: #f4f4f1 !important;
      box-shadow: 0 8px 18px rgba(31, 40, 28, 0.13);
    }

    .mini-bead.photo-backed.source-photo,
    .preview-bead.photo-backed.source-photo {
      background-size: cover !important;
      background-position: center !important;
    }

    .product-art::before,
    .product-art::after {
      content: "";
      position: absolute;
      pointer-events: none;
    }

    .product-art::before {
      inset: 0;
      background: var(--texture, transparent);
      mix-blend-mode: soft-light;
      background-size: cover;
      background-position: center;
      opacity: 0.72;
    }

    .product-art::after {
      content: "";
      width: 15px;
      height: 8px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.78);
      position: absolute;
      top: 11px;
      left: 14px;
      transform: rotate(-24deg);
      filter: blur(0.15px);
    }

    .product-art.jade,
    .mini-bead.jade {
      background:
        radial-gradient(circle at 30% 22%, rgba(255,255,255,0.68), transparent 13%),
        radial-gradient(circle at 72% 70%, rgba(3, 42, 20, 0.34), transparent 38%),
        radial-gradient(circle at 55% 38%, rgba(255,255,255,0.18), transparent 22%),
        var(--bead);
    }

    .product-art.crystal,
    .mini-bead.crystal {
      opacity: 0.88;
      background:
        radial-gradient(circle at 27% 21%, rgba(255,255,255,0.96), transparent 14%),
        radial-gradient(circle at 62% 67%, rgba(255,255,255,0.30), transparent 33%),
        linear-gradient(135deg, rgba(255,255,255,0.52), transparent 34%, rgba(0,0,0,0.16) 76%),
        conic-gradient(from 20deg, rgba(255,255,255,0.22), transparent 18%, rgba(255,255,255,0.18) 40%, transparent 62%, rgba(255,255,255,0.16)),
        var(--bead);
      box-shadow:
        inset -12px -13px 18px rgba(0, 0, 0, 0.16),
        inset 10px 10px 18px rgba(255,255,255,0.46),
        inset 0 0 18px rgba(255,255,255,0.24),
        0 14px 20px rgba(31, 40, 28, 0.12);
    }

    .product-art.wood,
    .mini-bead.wood {
      background:
        repeating-radial-gradient(circle at 44% 46%, rgba(255,224,166,0.18) 0 2px, rgba(45,22,12,0.20) 3px 5px, transparent 6px 10px),
        linear-gradient(145deg, rgba(255,225,172,0.24), transparent 36%, rgba(31, 17, 10, 0.22)),
        var(--bead);
    }

    .product-art.pearl,
    .mini-bead.pearl {
      background:
        radial-gradient(circle at 30% 24%, rgba(255,255,255,0.96), transparent 17%),
        conic-gradient(from 120deg, rgba(255,215,235,0.46), rgba(210,240,255,0.38), rgba(255,246,212,0.42), rgba(255,215,235,0.46)),
        var(--bead);
    }

    .product-art.silver,
    .mini-bead.silver {
      background:
        linear-gradient(135deg, #ffffff, #aeb7ba 42%, #f4f7f6 62%, #778185),
        var(--bead);
    }

    .product-art.gold,
    .mini-bead.gold {
      background:
        linear-gradient(135deg, #fff2b7, #b67d12 42%, #ffe18c 62%, #8f5f0a),
        var(--bead);
    }

    .product-art.cap,
    .preview-bead.cap,
    .mini-bead.cap {
      background: linear-gradient(135deg, #f8faf9, #9da7a5 42%, #ffffff 64%, #707a78);
      box-shadow: 0 10px 20px rgba(31, 40, 28, 0.16);
    }

    .product-art.cap::before,
    .product-art.cap::after,
    .preview-bead.cap::before,
    .preview-bead.cap::after,
    .mini-bead.cap::before,
    .mini-bead.cap::after {
      display: none;
    }

    .product-art.charm::after,
    .product-art.finding::after { display: none; }

    .product-art.photo-backed::before,
    .product-art.photo-backed::after,
    .preview-bead.photo-backed::before,
    .preview-bead.photo-backed::after,
    .mini-bead.photo-backed::before,
    .mini-bead.photo-backed::after {
      display: none;
    }

    .product-card h3 {
      font-size: 14px;
      line-height: 1.2;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .product-meta {
      color: var(--muted);
      font-size: 12px;
      line-height: 1.35;
      display: -webkit-box;
      -webkit-line-clamp: 1;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .product-card-price {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      margin: 3px auto 0;
      min-height: 18px;
      max-width: 100%;
      padding: 1px 7px;
      border-radius: 999px;
      background: rgba(239, 246, 239, 0.88);
      color: var(--moss);
      font-size: 12px;
      line-height: 1.12;
      font-weight: 950;
      text-align: center;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .product-info {
      min-width: 0;
      width: 100%;
      display: grid;
      align-content: center;
      justify-items: center;
      gap: 3px;
    }

    .price-line {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 6px;
      margin-top: 4px;
      font-size: 12px;
      grid-column: 1 / -1;
    }

    .price-line strong { color: var(--moss); }

    .badge {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      border-radius: 999px;
      padding: 4px 7px;
      background: #fff4d6;
      color: #7a4f00;
      border: 1px solid rgba(217, 167, 58, 0.38);
      font-size: 10px;
      font-weight: 700;
      line-height: 1;
      white-space: nowrap;
    }

    .badge.recommended {
      background: #eaf3ec;
      color: var(--moss);
      border-color: rgba(35, 79, 55, 0.22);
    }

    .badge.premium {
      background: #f9e8e1;
      color: #81452c;
      border-color: rgba(129, 69, 44, 0.2);
    }

    .badge.new {
      background: #edf2ff;
      color: #244a8f;
      border-color: rgba(36, 74, 143, 0.2);
    }

    .center-stage {
      display: flex;
      flex-direction: column;
      gap: 16px;
      min-width: 0;
    }

    .canvas-card { order: 1; }
    .tryon-section { order: 2; }
    .quick-row { order: 3; }
    .bottom-tray { order: 4; }

    .hero {
      position: relative;
      display: grid;
      grid-template-columns: minmax(0, 0.96fr) minmax(320px, 1.04fr);
      gap: clamp(32px, 5vw, 64px);
      align-items: center;
      overflow: hidden;
      background:
        linear-gradient(90deg, rgba(249, 248, 245, 0.98) 0%, rgba(249, 248, 245, 0.88) 39%, rgba(249, 248, 245, 0.36) 66%, rgba(249, 248, 245, 0.08) 100%),
        linear-gradient(180deg, var(--paper-warm) 0%, var(--paper) 100%);
      color: var(--ink);
      min-height: clamp(320px, 45vh, 520px);
      padding: clamp(32px, 5vw, 64px) clamp(20px, 5vw, 56px);
    }

    .hero::after {
      content: none;
    }

    .hero-content {
      position: relative;
      z-index: var(--z-local-raised);
      max-width: 580px;
      animation: fadeInUp 0.8s var(--ease-out) both;
    }

    .hero-visual {
      position: relative;
      z-index: var(--z-local-raised);
      display: flex;
      align-items: center;
      justify-content: center;
      animation: fadeInUp 0.8s var(--ease-out) 0.2s both;
    }

    .hero-visual::after { content: none; }

    .hero-visual::before {
      content: "";
      position: absolute;
      inset: auto 10% -10% 10%;
      height: 26%;
      border-radius: 50%;
      background: rgba(30, 36, 25, 0.16);
      filter: blur(34px);
      z-index: var(--z-local-underlay);
    }

    .hero-gift-scene {
      position: relative;
      width: min(100%, 620px);
      min-height: clamp(300px, 35vw, 440px);
      display: grid;
      place-items: center;
    }

    .hero-gift-carousel {
      position: relative;
      width: min(96%, 590px);
      aspect-ratio: 16 / 10;
      border-radius: 18px;
      overflow: hidden;
      background: #f4ead9;
      filter: saturate(1.06) contrast(1.03);
      box-shadow: 0 26px 76px rgba(31, 40, 28, 0.18);
    }

    .hero-slide {
      position: absolute;
      inset: 0;
      margin: 0;
      opacity: 0;
      transform: translate3d(16px, 0, 0) scale(1.018);
      transition:
        opacity 0.82s cubic-bezier(0.22, 1, 0.36, 1),
        transform 1.05s cubic-bezier(0.22, 1, 0.36, 1);
      pointer-events: none;
      will-change: opacity, transform;
    }

    .hero-slide.active {
      opacity: 1;
      z-index: var(--z-local-content);
      transform: translate3d(0, 0, 0) scale(1);
      pointer-events: auto;
    }

    .hero-slide.is-exiting {
      opacity: 0;
      z-index: var(--z-local-base);
      transform: translate3d(-10px, 0, 0) scale(1.006);
    }

    .hero-slide img,
    .hero-slide video {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
      transform: scale(1.035);
      transition: transform 4.8s cubic-bezier(0.22, 1, 0.36, 1);
      will-change: transform;
    }

    .hero-slide.active img,
    .hero-slide.active video {
      animation: heroKenBurns 7.8s ease-in-out both;
    }

    @keyframes heroKenBurns {
      0% { transform: scale(1.035) translate3d(0, 0, 0); }
      54% { transform: scale(1.065) translate3d(-8px, -4px, 0); }
      100% { transform: scale(1.045) translate3d(6px, 2px, 0); }
    }

    .hero-slide::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(0,0,0,0) 48%, rgba(24, 20, 14, 0.28) 100%);
      pointer-events: none;
    }

    .hero-slide figcaption {
      position: absolute;
      left: 14px;
      bottom: 14px;
      z-index: var(--z-local-raised);
      max-width: 70%;
      padding: 7px 10px;
      border-radius: 999px;
      background: rgba(255,255,255,0.88);
      color: var(--moss);
      font-size: 12px;
      font-weight: 900;
      box-shadow: 0 10px 22px rgba(31, 40, 28, 0.12);
      backdrop-filter: blur(12px);
    }

    .hero-dots {
      position: absolute;
      left: 50%;
      bottom: 8px;
      z-index: var(--z-local-control);
      transform: translateX(-50%);
      display: flex;
      gap: 6px;
    }

    .hero-dot {
      /* 2026-06-24 homepage hero carousel dot touch target:
         keep the dot visually small while the phone tap area is App-safe. */
      position: relative;
      display: inline-grid;
      place-items: center;
      width: 44px;
      height: 44px;
      border-radius: 999px;
      border: 0;
      padding: 0;
      background: transparent;
      cursor: pointer;
      touch-action: manipulation;
    }

    .hero-dot::before {
      content: "";
      width: 7px;
      height: 7px;
      border-radius: 999px;
      background: rgba(255,255,255,0.64);
      box-shadow: 0 0 0 1px rgba(35, 79, 55, 0.14);
      transition: width 0.36s var(--ease), background 0.36s var(--ease), transform 0.36s var(--ease);
    }

    .hero-dot.active::before {
      width: 22px;
      background: var(--moss);
      transform: translateY(-1px);
    }

    .hero-gift-badge {
      position: absolute;
      right: 2%;
      bottom: 8%;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 9px 12px;
      border-radius: 999px;
      background: rgba(255,255,255,0.92);
      border: 1px solid rgba(226, 218, 198, 0.92);
      color: var(--moss);
      font-size: 12px;
      font-weight: 900;
      box-shadow: 0 14px 28px rgba(31, 40, 28, 0.12);
      backdrop-filter: blur(12px);
    }

    @keyframes fadeInUp {
      from { opacity: 0; transform: translateY(28px); }
      to { opacity: 1; transform: translateY(0); }
    }

    .hero-content .eyebrow {
      color: var(--muted);
      font-size: 12px;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.15em;
      margin-bottom: 20px;
      display: block;
    }

    .hero h1 {
      max-width: 680px;
      font-family: var(--font-heading);
      font-size: clamp(36px, 4.4vw, 60px);
      /* 2026-06-22 homepage desktop hero title no-clip:
         tablet and desktop shoppers should not meet a clipped first-screen promise before entering Builder. */
      line-height: 1.12;
      padding-bottom: 0.08em;
      font-weight: 700;
      letter-spacing: 0;
      margin: 0 0 24px;
      color: var(--ink);
      word-break: keep-all;
    }

    .hero h1 em,
    .hero h1 .gold-text {
      font-style: italic;
      color: var(--moss);
    }

    .hero p {
      color: var(--muted);
      max-width: 460px;
      line-height: 1.7;
      font-size: clamp(15px, 1.2vw, 17px);
      margin: 0 0 32px;
    }

    .hero-cta {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
    }

    .hero-cta .pill-button {
      height: 48px;
      padding: 0 28px;
      font-size: 14px;
      font-weight: 600;
      border-radius: var(--radius);
      letter-spacing: 0.01em;
      writing-mode: horizontal-tb;
      white-space: nowrap;
      word-break: keep-all;
    }

    .hero-cta .pill-button.primary {
      background: var(--moss);
      border-color: var(--moss);
      color: white;
      font-weight: 600;
    }

    .hero-cta .pill-button.primary:hover {
      background: var(--moss-light);
      border-color: var(--moss-light);
      box-shadow: none;
    }

    .hero-cta .pill-button.ghost {
      background: transparent;
      border-color: var(--line);
      color: var(--ink-soft);
    }

    .hero-cta .pill-button.ghost:hover {
      background: var(--paper-warm);
      border-color: var(--muted);
      color: var(--ink);
    }

    .hero-product-img {
      width: 100%;
      max-width: 520px;
      aspect-ratio: 4/3;
      object-fit: cover;
      border-radius: var(--radius);
      filter: saturate(1.08) contrast(1.04);
      box-shadow: 0 24px 68px rgba(31, 40, 28, 0.14);
    }

    .hero-stats {
      display: flex;
      gap: 0;
      margin-top: 40px;
      flex-wrap: wrap;
    }

    .hero-stat {
      display: flex;
      align-items: baseline;
      gap: 6px;
      padding: 0 24px 0 0;
      border-right: 1px solid var(--line);
      color: var(--muted);
      font-size: 13px;
    }
    .hero-stat:first-child { padding-left: 0; }
    .hero-stat:last-child { border-right: none; padding-right: 0; }

    .hero-stat strong {
      color: var(--moss);
      font-weight: 700;
      font-size: 15px;
    }

    .hero-stat span {
      color: var(--muted);
    }

    /* ── How It Works ── */
    .how-it-works {
      display: grid;
      grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
      gap: clamp(16px, 3vw, 34px);
      align-items: stretch;
      padding: 24px clamp(20px, 5vw, 56px);
      background:
        linear-gradient(90deg, rgba(255,255,255,0.86), rgba(250,248,243,0.96)),
        radial-gradient(circle at 8% 0%, rgba(212,168,83,0.10), transparent 34%);
      border-top: 1px solid rgba(226, 223, 213, 0.82);
      border-bottom: 1px solid rgba(226, 223, 213, 0.82);
      position: relative;
    }

    .how-header {
      text-align: left;
      margin: 0;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding-right: clamp(10px, 2vw, 24px);
      border-right: 1px solid rgba(226, 223, 213, 0.82);
    }

    .how-header .eyebrow {
      font-size: 11px;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.16em;
      color: var(--muted);
      display: block;
      margin-bottom: 8px;
    }

    .how-header h2 {
      font-family: var(--font-heading);
      font-size: clamp(25px, 2.6vw, 34px);
      font-weight: 700;
      margin: 0;
      letter-spacing: 0;
      line-height: 1.08;
    }

    .how-header p {
      margin: 10px 0 0;
      max-width: 320px;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.65;
    }

    .how-steps {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
      max-width: none;
      margin: 0;
      align-items: start;
    }

    .how-step {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      text-align: left;
      min-height: 116px;
      padding: 16px;
      border: 1px solid rgba(226, 223, 213, 0.92);
      border-radius: var(--radius-lg);
      background: rgba(255, 255, 255, 0.78);
      box-shadow: 0 14px 34px rgba(31, 40, 28, 0.06);
      transition: transform 0.24s var(--ease), box-shadow 0.24s var(--ease), border-color 0.24s var(--ease);
    }

    .how-step:hover {
      transform: translateY(-2px);
      border-color: rgba(58, 109, 75, 0.28);
      box-shadow: 0 18px 40px rgba(31, 40, 28, 0.09);
    }

    .how-step-icon {
      width: 38px;
      height: 38px;
      border-radius: 50%;
      background:
        radial-gradient(circle at 32% 24%, rgba(255,255,255,0.42), transparent 30%),
        linear-gradient(145deg, #3f7955, #1f5137);
      color: var(--white);
      display: grid;
      place-items: center;
      font-size: 0;
      font-weight: 800;
      flex-shrink: 0;
      margin: 0;
      box-shadow: 0 10px 22px rgba(31, 81, 55, 0.18);
    }

    .how-step-icon::before {
      content: attr(data-step);
      font-size: 13px;
      letter-spacing: 0.04em;
    }

    .how-step-body h3 {
      font-size: 15px;
      font-weight: 800;
      margin: 0 0 6px;
      line-height: 1.2;
    }

    .how-step-body p {
      color: var(--muted);
      font-size: 12px;
      line-height: 1.5;
      margin: 0;
      max-width: none;
    }

    .how-cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: fit-content;
      min-height: 44px;
      margin-top: 14px;
      padding: 0 18px;
      color: var(--moss);
      text-decoration: none;
      font-size: 13px;
      font-weight: 800;
      line-height: 1.15;
      border: 1px solid rgba(58,109,75,0.28);
      border-radius: 999px;
      background: rgba(255, 253, 247, 0.92);
      box-shadow: 0 12px 26px rgba(31, 81, 55, 0.10);
      touch-action: manipulation;
    }

    .how-cta:hover {
      border-color: rgba(58,109,75,0.48);
      background: #fffdf7;
      color: #254f37;
      transform: translateY(-1px);
    }

    .purchase-paths {
      padding: clamp(30px, 4vw, 52px) clamp(20px, 5vw, 56px);
      background: #fbfaf6;
      border-bottom: 1px solid rgba(226, 223, 213, 0.82);
    }

    .purchase-paths-inner {
      display: grid;
      grid-template-columns: minmax(240px, 0.62fr) minmax(0, 1.38fr);
      gap: clamp(18px, 3vw, 36px);
      align-items: start;
    }

    .purchase-path-copy {
      display: grid;
      gap: 12px;
      max-width: 520px;
    }

    .purchase-path-copy h2 {
      font-family: var(--font-heading);
      font-size: clamp(28px, 3.2vw, 44px);
      line-height: 1.08;
      letter-spacing: 0;
    }

    .purchase-path-copy p {
      color: var(--muted);
      font-size: 14px;
      line-height: 1.68;
    }

    .purchase-path-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
      min-width: 0;
    }

    .purchase-path-card {
      min-width: 0;
      display: grid;
      grid-template-rows: auto 1fr;
      overflow: hidden;
      border: 1px solid rgba(221, 226, 216, 0.9);
      border-radius: var(--radius);
      background: #fff;
      color: inherit;
      text-decoration: none;
      box-shadow: 0 16px 38px rgba(31, 40, 28, 0.07);
      transition: transform 0.22s var(--ease), border-color 0.22s var(--ease), box-shadow 0.22s var(--ease);
    }

    .purchase-path-card:hover {
      transform: translateY(-2px);
      border-color: rgba(35, 79, 55, 0.32);
      box-shadow: 0 22px 48px rgba(31, 40, 28, 0.11);
    }

    .purchase-path-card img {
      width: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover;
      display: block;
      background: var(--paper-warm);
    }

    .purchase-path-body {
      display: grid;
      gap: 8px;
      padding: 14px;
      align-content: start;
    }

    .purchase-path-body strong {
      color: var(--ink);
      font-size: 16px;
      line-height: 1.25;
    }

    .purchase-path-body span {
      color: var(--muted);
      font-size: 12px;
      line-height: 1.55;
    }

    .purchase-path-meta {
      display: inline-flex;
      width: fit-content;
      align-items: center;
      min-height: 28px;
      margin-top: 4px;
      padding: 0 10px;
      border-radius: 999px;
      background: rgba(35, 79, 55, 0.08);
      color: var(--moss);
      font-size: 11px;
      font-weight: 900;
    }

    .canvas-card {
      padding: 12px;
      position: relative;
      box-shadow: var(--shadow);
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .canvas-toolbar {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      align-items: center;
      margin-bottom: 0;
      flex-wrap: wrap;
      order: 1;
    }

	    .tool-icon-button {
	      gap: 6px;
	      padding-inline: 10px;
	      min-height: 34px;
	      min-width: 0;
	      writing-mode: horizontal-tb;
	      white-space: nowrap;
	    }

    .tool-icon-button svg {
      width: 16px;
      height: 16px;
      flex: 0 0 auto;
      stroke: currentColor;
      stroke-width: 2.2;
      stroke-linecap: round;
      stroke-linejoin: round;
      fill: none;
    }

    .tool-icon-button span {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .designer-sign-panel {
      display: grid;
      grid-template-columns: 1fr;
      align-items: center;
      gap: 10px;
      margin: 0;
      padding: 10px;
      border: 1px solid rgba(221, 226, 216, 0.86);
      border-radius: 8px;
      background: rgba(255,255,255,0.76);
      order: 4;
    }

    @media (min-width: 1181px) {
      .builder .canvas-card {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        align-items: stretch;
      }
    }

    .signature-field {
      display: grid;
      grid-template-columns: auto minmax(130px, 1fr) auto;
      align-items: center;
      gap: 8px;
      min-width: 0;
    }

    .signature-field label {
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      white-space: nowrap;
    }

    .signature-field input {
      min-width: 0;
      height: 38px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: white;
      padding: 0 13px;
      color: var(--ink);
      outline: none;
    }

	    .signature-preview {
	      max-width: 210px;
	      width: 100%;
	      color: var(--moss);
	      font-family: "Caveat", "Segoe Print", "Bradley Hand", cursive;
	      font-size: 26px;
	      line-height: 1.08;
	      text-align: center;
	      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      font-weight: 700;
      transform: rotate(-0.45deg);
      text-shadow: 0 1px 0 rgba(255,255,255,0.65);
    }

    :root[lang^="zh"] .signature-preview {
      font-family: "Zhi Mang Xing", "Long Cang", "Ma Shan Zheng", "HanziPen SC", "Xingkai SC", "STXingkai", "Kaiti SC", cursive;
      font-size: 28px;
      font-weight: 400;
      letter-spacing: 0.02em;
      transform: rotate(-1deg);
    }

    :root[lang^="ja"] .signature-preview {
      font-family: "Yomogi", "Yu Mincho", "Hiragino Mincho ProN", serif;
      font-size: 22px;
      transform: rotate(-0.35deg);
    }

    :root[lang^="ko"] .signature-preview {
      font-family: "Nanum Pen Script", "Apple SD Gothic Neo", "Nanum Myeongjo", serif;
      font-size: 25px;
      transform: rotate(-0.35deg);
    }

    :root[lang^="ar"] .signature-preview {
      font-family: "Aref Ruqaa Ink", "Reem Kufi Ink", "Geeza Pro", cursive;
      font-size: 27px;
      direction: rtl;
      transform: rotate(-1deg);
    }

    :root[lang^="ru"] .signature-preview {
      font-family: "Caveat", "Segoe Print", "Georgia", cursive;
      font-size: 25px;
    }

    .share-card-options {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px;
      min-width: 0;
    }

    .share-card-options label {
      min-width: 0;
    }

    .share-card-options .ai-preview-button {
      height: 34px;
      border-radius: 999px;
      border-color: rgba(47, 116, 77, 0.28);
      color: var(--moss);
      background: rgba(239, 248, 240, 0.92);
      font-size: 12px;
      font-weight: 900;
      flex: 0 0 auto;
    }

    .share-style-field {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      height: 34px;
      padding: 0 10px;
      border: 1px solid rgba(221, 226, 216, 0.9);
      border-radius: 999px;
      background: rgba(255,255,255,0.86);
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
    }

    .share-style-field select {
      height: 28px;
      min-width: 116px;
      border: 0;
      background: transparent;
      color: var(--ink);
      font-size: 12px;
      font-weight: 900;
      outline: none;
    }

    .share-time-toggle {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      height: 34px;
      padding: 0 11px;
      border: 1px solid rgba(221, 226, 216, 0.9);
      border-radius: 999px;
      background: rgba(255,255,255,0.86);
      color: var(--ink);
      font-size: 12px;
      font-weight: 900;
      user-select: none;
    }

    .share-time-toggle input {
      width: 15px;
      height: 15px;
      accent-color: var(--moss);
    }

    .share-main-button,
    .share-save-button {
      height: 40px;
      border: 0;
      border-radius: 999px;
      background: var(--moss);
      color: #fff;
      padding: 0 16px;
      font-size: 13px;
      font-weight: 900;
      cursor: pointer;
      box-shadow: 0 12px 22px rgba(35, 79, 55, 0.18);
      white-space: nowrap;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
    }

    .share-main-button[disabled],
    .share-save-button[disabled],
    .share-buttons button[disabled] {
      cursor: progress;
      opacity: 0.68;
      filter: saturate(0.82);
    }

    .share-save-button {
      background: linear-gradient(135deg, #fff7d8, #f2d98a);
      color: #173d2b;
      border: 2px solid rgba(217, 167, 58, 0.5);
      min-width: 148px;
      box-shadow: 0 14px 30px rgba(126, 88, 28, 0.26), inset 0 1px 0 rgba(255,255,255,0.74);
    }

    .share-save-button::before {
      content: "↓";
      width: 22px;
      height: 22px;
      border-radius: 50%;
      display: inline-grid;
      place-items: center;
      background: #173d2b;
      color: #fff;
      font-size: 13px;
      line-height: 1;
    }

    .mobile-share-quick {
      display: none;
      grid-template-columns: 1fr 1fr;
      gap: 7px;
    }

    .mobile-share-quick button {
      height: 34px;
      border-radius: 999px;
      border: 1px solid rgba(221, 226, 216, 0.92);
      background: rgba(255,255,255,0.94);
      color: var(--moss);
      font-size: 12px;
      font-weight: 900;
      cursor: pointer;
    }

    .mobile-share-quick button:first-child {
      background: var(--moss);
      color: #fff;
      border-color: var(--moss);
      box-shadow: 0 10px 20px rgba(35, 79, 55, 0.18);
    }

    .mobile-share-quick .ai-preview-action {
      grid-column: 1 / -1;
      background: linear-gradient(135deg, #1f6b45, #b88924);
      border-color: rgba(31, 107, 69, 0.56);
      color: #fff;
      box-shadow: 0 12px 22px rgba(31, 107, 69, 0.18);
    }

    .share-buttons {
      display: flex;
      gap: 6px;
      flex-wrap: wrap;
      justify-content: flex-start;
      align-items: center;
    }

    .share-heading {
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      margin-right: 2px;
      order: -2;
    }

    .share-buttons button {
      height: 34px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: white;
      color: var(--ink);
      padding: 0 11px;
      font-size: 12px;
      font-weight: 800;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 7px;
    }

    .share-buttons button[hidden] {
      display: none !important;
    }

    .share-buttons button::before {
      content: attr(data-icon);
      width: 22px;
      height: 22px;
      border-radius: 50%;
      display: inline-grid;
      place-items: center;
      background: var(--moss);
      color: #fff;
      font-family: Inter, Arial, sans-serif;
      font-size: 12px;
      font-weight: 900;
      line-height: 1;
    }

    .share-buttons button[data-share-platform="facebook"]::before { background: #1877f2; }
    .share-buttons button[data-share-platform="instagram"]::before { background: #c13584; }
    .share-buttons button[data-share-platform="whatsapp"]::before { background: #25d366; }
    .share-buttons button[data-share-platform="x"]::before { background: #111; }
    .share-buttons button[data-share-platform="tiktok"]::before { background: #010101; }
    .share-buttons button[data-share-platform="douyin"]::before { background: #010101; }
    .share-buttons button[data-share-platform="xiaohongshu"]::before { background: #d92332; }
    .share-buttons button[data-share-platform="wechat"]::before { background: #20b85a; }
    .share-buttons button[data-share-platform="weibo"]::before { background: #e6162d; }
    .share-buttons button[data-share-platform="kakao"]::before { background: #fee500; color: #191600; }
    .share-buttons button[data-share-platform="reddit"]::before { background: #ff4500; }
    .share-buttons button[data-share-platform="line"]::before { background: #06c755; }
    .share-buttons button[data-share-platform="telegram"]::before { background: #229ed9; }
    .share-buttons button[data-share-platform="pinterest"]::before { background: #e60023; }
    .share-buttons button[data-share-platform="messenger"]::before { background: #0084ff; }
    .share-buttons .share-save-inline {
      display: none;
      background: #173d2b;
      border-color: #173d2b;
      color: #fff;
      box-shadow: 0 10px 18px rgba(35, 79, 55, 0.16);
      order: -1;
      min-width: 118px;
    }
    .share-buttons .share-save-inline::before { background: var(--gold); color: #173d2b; }

    .share-reward-tip {
      margin: -2px 0 0;
      color: #6f5c38;
      font-size: 12px;
      line-height: 1.45;
      font-weight: 750;
    }

    .share-preview-modal {
      position: fixed;
      inset: 0;
      z-index: var(--z-modal);
      display: none;
      place-items: center;
      padding: 18px;
      background: rgba(17, 21, 18, 0.52);
      backdrop-filter: blur(10px);
    }

    .share-preview-modal.show { display: grid; }

    .share-preview-card {
      width: min(960px, 100%);
      max-height: min(92vh, 980px);
      display: grid;
      grid-template-columns: minmax(280px, 0.72fr) minmax(260px, 0.28fr);
      gap: 16px;
      padding: 16px;
      border-radius: 14px;
      background: #fffdf7;
      box-shadow: 0 34px 90px rgba(0,0,0,0.24);
      overflow: hidden;
    }

    .share-preview-frame {
      min-height: 0;
      overflow: auto;
      border-radius: 12px;
      background: #f4ead9;
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    .share-preview-image {
      width: min(100%, 720px);
      height: auto;
      aspect-ratio: 1 / 1;
      object-fit: contain;
      object-position: center;
      display: block;
      align-self: center;
      user-select: auto;
      -webkit-user-select: auto;
      -webkit-touch-callout: default;
      -webkit-user-drag: auto;
      pointer-events: auto;
      touch-action: manipulation;
    }

    .share-preview-tip {
      position: static;
      width: calc(100% - 24px);
      margin: 10px 12px 12px;
      min-height: 38px;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 8px 12px;
      border-radius: 999px;
      background: rgba(255, 253, 247, 0.92);
      border: 1px solid rgba(226, 218, 198, 0.86);
      color: var(--moss);
      font-size: 12px;
      font-weight: 900;
      text-align: center;
      box-shadow: 0 10px 22px rgba(31, 40, 28, 0.10);
      backdrop-filter: blur(12px);
      pointer-events: none;
    }

    .share-preview-copy {
      display: flex;
      flex-direction: column;
      gap: 12px;
      min-width: 0;
    }

    .share-preview-copy h3 {
      margin: 0;
      font-family: var(--font-heading);
      font-size: 24px;
      line-height: 1.35;
      color: var(--ink);
    }

    .share-preview-copy p {
      margin: 0;
      color: var(--muted);
      line-height: 1.7;
      font-size: 14px;
    }

    .share-preview-actions {
      display: grid;
      gap: 8px;
      margin-top: auto;
    }

    .share-preview-actions .pill-button {
      width: 100%;
      justify-content: center;
      min-height: 44px;
    }

    .share-preview-actions .pill-button.primary,
    #sharePreviewDownload {
      min-height: 48px;
      font-weight: 900;
    }

    .share-preview-actions .pill-button.primary {
      order: -1;
      box-shadow: 0 14px 30px rgba(35, 79, 55, 0.20);
    }

    #sharePreviewDownload {
      order: -2;
      background: linear-gradient(135deg, #fff7d8, #f2d98a);
      border-color: rgba(217, 167, 58, 0.58);
      color: #173d2b;
      box-shadow: 0 12px 24px rgba(126, 88, 28, 0.18);
    }

    .share-preview-actions #sharePreviewCopy,
    .share-preview-actions #sharePreviewClose {
      /* 2026-06-22 mobile share preview secondary action tap target lock:
         copy/close are the final fallback controls after the share image is generated. */
      min-height: 44px;
    }

    @media (max-width: 760px) {
      .share-preview-modal { padding: 10px; align-items: end; }
      .share-preview-card {
        grid-template-columns: 1fr;
        max-height: min(94vh, 760px);
        overflow: auto;
        -webkit-overflow-scrolling: touch;
        gap: 10px;
        padding: 10px;
        border-radius: 14px 14px 0 0;
      }
      .share-preview-frame {
        max-height: none;
        overflow: visible;
        display: flex;
        align-items: center;
      }
      .share-preview-image {
        width: min(100%, 520px);
        height: auto;
        max-width: 100%;
        max-height: 46vh;
        object-fit: contain;
      }
      .share-preview-tip {
        width: calc(100% - 20px);
        margin: 8px 10px 10px;
        min-height: 34px;
        font-size: 11px;
        border-radius: 12px;
      }
      .share-preview-copy h3 {
        font-size: 24px;
      }
      .share-preview-copy p {
        font-size: 13px;
      }
      .share-preview-actions {
        grid-template-columns: 1fr 1fr;
        position: sticky;
        bottom: 0;
        padding-top: 2px;
        background: linear-gradient(180deg, rgba(255,253,247,0), #fffdf7 24%);
      }
      .share-preview-actions .pill-button.primary {
        grid-column: 1 / -1;
      }
      #sharePreviewDownload {
        grid-column: 1 / -1;
      }
    }

    .zoom-controls {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: var(--white);
      padding: 4px;
    }

    .zoom-controls button {
      width: 30px;
      height: 30px;
      border: 0;
      border-radius: 50%;
      background: #eef1e9;
      color: var(--ink);
      cursor: pointer;
    }

    .zoom-controls span {
      min-width: 46px;
      text-align: center;
      color: var(--muted);
      font-size: 12px;
    }

    .mode-toggle,
    .surface-toggle,
    .layout-toggle {
      display: inline-flex;
      padding: 4px;
      background: #eef1e9;
      border-radius: 999px;
      border: 1px solid var(--line);
    }

    .mode-toggle button,
    .surface-toggle button,
    .layout-toggle button {
      border: 0;
      background: transparent;
      color: var(--muted);
      border-radius: 999px;
      padding: 9px 14px;
      cursor: pointer;
      font-weight: 700;
      transition: background 0.22s var(--ease), color 0.22s var(--ease), transform 0.22s var(--ease);
    }

    .mode-toggle button.active,
    .surface-toggle button.active,
    .layout-toggle button.active {
      background: var(--white);
      color: var(--moss);
      box-shadow: 0 5px 20px rgba(31, 40, 28, 0.12);
    }

    .design-canvas.view-3d { cursor: grab; }
    .design-canvas.view-3d:active,
    .design-canvas.is-panning { cursor: grabbing; }

    .canvas-zoom-pad {
      position: absolute;
      left: 14px;
      bottom: 82px;
      z-index: var(--z-side-panel);
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 5px;
      border-radius: 999px;
      border: 1px solid rgba(217, 211, 195, 0.92);
      background: rgba(255, 253, 247, 0.88);
      box-shadow: 0 12px 30px rgba(31, 40, 28, 0.12);
      backdrop-filter: blur(12px);
    }

    .canvas-zoom-pad button {
      width: 34px;
      height: 34px;
      display: grid;
      place-items: center;
      border: 0;
      border-radius: 50%;
      background: rgba(238, 241, 233, 0.96);
      color: var(--ink);
      font-size: 17px;
      font-weight: 900;
      cursor: pointer;
    }

    .canvas-zoom-pad button[data-canvas-fit] {
      width: auto;
      min-width: 48px;
      padding: 0 10px;
      border-radius: 999px;
      font-size: 12px;
      color: var(--moss);
    }

    .canvas-fullscreen-toggle {
      position: absolute;
      right: 14px;
      bottom: 14px;
      z-index: var(--z-local-navigation);
      width: auto;
      min-width: 42px;
      height: 40px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      padding: 0 12px;
      border: 1px solid rgba(217, 211, 195, 0.92);
      border-radius: 999px;
      background: rgba(255, 253, 247, 0.9);
      color: var(--moss);
      box-shadow: 0 12px 28px rgba(31, 40, 28, 0.12);
      cursor: pointer;
      backdrop-filter: blur(12px);
    }

    .canvas-fullscreen-toggle svg {
      width: 19px;
      height: 19px;
      flex: 0 0 auto;
      stroke: currentColor;
      stroke-width: 2.1;
      fill: none;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .canvas-fullscreen-label {
      max-width: 8.5em;
      overflow: hidden;
      text-overflow: ellipsis;
      color: currentColor;
      font-size: 12px;
      font-weight: 900;
      line-height: 1;
      white-space: nowrap;
    }

    .fullscreen-exit-hint {
      position: absolute;
      right: 14px;
      bottom: 62px;
      z-index: var(--z-local-navigation);
      display: none;
      max-width: min(280px, calc(100% - 28px));
      padding: 8px 10px;
      border: 1px solid rgba(35, 79, 55, 0.20);
      border-radius: 999px;
      background: rgba(255, 253, 247, 0.92);
      color: var(--moss);
      box-shadow: 0 12px 30px rgba(31, 40, 28, 0.12);
      font-size: 12px;
      font-weight: 900;
      line-height: 1.2;
      backdrop-filter: blur(12px);
      pointer-events: none;
    }

    .fullscreen-exit-button {
      position: fixed;
      top: max(10px, env(safe-area-inset-top));
      right: max(10px, env(safe-area-inset-right));
      z-index: var(--z-tooltip);
      display: none;
      align-items: center;
      justify-content: center;
      gap: 6px;
      min-width: 116px;
      height: 38px;
      padding: 0 13px;
      border: 1px solid rgba(255, 255, 255, 0.62);
      border-radius: 999px;
      background: rgba(35, 79, 55, 0.96);
      color: #fff;
      box-shadow: 0 18px 36px rgba(31, 40, 28, 0.28);
      font-size: 12px;
      font-weight: 900;
      line-height: 1;
      cursor: pointer;
      backdrop-filter: blur(14px);
    }

    .fullscreen-exit-button svg {
      width: 16px;
      height: 16px;
      flex: 0 0 auto;
      stroke: currentColor;
      stroke-width: 2.3;
      fill: none;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    body.canvas-fullscreen-open .fullscreen-exit-button {
      display: inline-flex;
    }

    body.canvas-fullscreen-open {
      overflow: hidden;
    }

    .design-canvas.canvas-fullscreen {
      position: relative;
      inset: auto !important;
      z-index: var(--z-local-content);
      width: 100% !important;
      max-width: 100% !important;
      height: 100%;
      min-height: 0;
      touch-action: none;
    }

    .design-canvas.canvas-fullscreen .canvas-status {
      top: max(14px, env(safe-area-inset-top));
      left: 14px;
      right: 62px;
    }

    .design-canvas.canvas-fullscreen .canvas-zoom-pad {
      left: 50%;
      bottom: max(16px, env(safe-area-inset-bottom));
      transform: translateX(-50%);
    }

    .design-canvas.canvas-fullscreen .canvas-fullscreen-toggle {
      right: max(14px, env(safe-area-inset-right));
      bottom: max(14px, env(safe-area-inset-bottom));
    }

    .surface-toggle,
    .preview-button {
      display: inline-flex;
    }
    .preview-button {
      display: inline-flex !important;
      position: absolute;
      right: 18px;
      bottom: 18px;
      z-index: var(--z-local-control);
      border: 1px solid var(--line);
      background: var(--white);
      border-radius: 999px;
      height: 40px;
      padding: 0 14px;
      color: var(--moss);
      font-weight: 700;
      cursor: pointer;
      box-shadow: 0 12px 28px rgba(31, 40, 28, 0.1);
    }

    .tool-actions {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
    }

    .preset-picker {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 4px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: var(--white);
    }

    .preset-picker select {
      height: 32px;
      min-width: 164px;
      border: 0;
      border-radius: 999px;
      background: transparent;
      color: var(--ink);
      padding: 0 8px 0 12px;
      outline: none;
      font-size: 13px;
      font-weight: 700;
    }

    .preset-picker button {
      height: 32px;
      padding: 0 12px;
      border-radius: 999px;
      border: 0;
      background: var(--moss);
      color: white;
      font-size: 13px;
      font-weight: 800;
      cursor: pointer;
    }

    .design-canvas {
      position: relative;
      min-height: clamp(590px, 66vh, 720px);
      border-radius: 10px;
      border: 1px solid rgba(217, 211, 195, 0.88);
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.78),
        inset 0 -20px 64px rgba(104, 82, 48, 0.07),
        0 18px 44px rgba(31, 40, 28, 0.10);
      background:
        /* 2026-06-22 Builder canvas neutral material backdrop lock: no generated silk-tray image. */
        linear-gradient(180deg, rgba(255,255,255,0.16), rgba(246,240,228,0.26)),
        radial-gradient(ellipse at 42% 28%, rgba(255,255,255,0.98), rgba(255,255,255,0.28) 30%, transparent 64%),
        radial-gradient(ellipse at 70% 72%, rgba(217, 202, 170, 0.22), transparent 58%),
        repeating-linear-gradient(92deg, rgba(126,112,88,0.018) 0 1px, transparent 1px 6px),
        repeating-linear-gradient(2deg, rgba(126,112,88,0.014) 0 1px, transparent 1px 7px),
        linear-gradient(135deg, #fffdf8 0%, #fbf7ed 46%, #f4ead7 100%);
      overflow: hidden;
      touch-action: pan-y;
      -webkit-user-select: none;
      user-select: none;
    }

    .preview-item,
    .product-card,
    .tray-item,
    .canvas-toolbar button,
    .canvas-length-control,
    .bottom-tray {
      touch-action: manipulation;
    }

    .bracelet-canvas {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      z-index: var(--z-local-raised);
      pointer-events: none;
    }

    .design-canvas::before {
      content: "";
      display: none;
      position: absolute;
      left: 50%;
      top: 50%;
      width: min(66%, 430px);
      aspect-ratio: 1;
      transform: translate(-50%, -50%);
      border-radius: 50%;
      border: 2px solid rgba(97, 82, 61, 0.26);
      box-shadow:
        0 10px 30px rgba(31, 40, 28, 0.04),
        inset 0 0 0 1px rgba(255,255,255,0.72);
      pointer-events: none;
      z-index: var(--z-local-content);
    }

    .design-canvas::after {
      content: "";
      position: absolute;
      display: none;
      pointer-events: none;
    }

    .design-canvas.necklace::before {
      width: min(84%, 620px);
      height: 460px;
      aspect-ratio: auto;
      top: 44%;
      border-radius: 0 0 260px 260px;
      border-top: 0;
    }

    .preview-layout {
      display: block;
      position: relative;
      order: 2;
    }

    .tryon-stack {
      position: static;
      width: 100%;
      display: grid;
      gap: 10px;
      margin-top: 12px;
      max-height: 0;
      overflow: hidden;
      opacity: 0;
      transition: max-height 0.24s var(--ease), opacity 0.18s var(--ease);
    }

    .tryon-stack.open {
      opacity: 1;
      max-height: 230px;
    }

    .tryon-card {
      position: relative;
      min-height: 220px;
      border-radius: var(--radius);
      border: 1px solid var(--line);
      overflow: hidden;
      background:
        radial-gradient(ellipse at 50% 30%, rgba(255,255,255,0.5) 0%, transparent 55%),
        radial-gradient(ellipse at 30% 70%, rgba(233,207,188,0.35) 0%, transparent 45%),
        linear-gradient(170deg, #fdf8f3 0%, #f5e8dc 30%, #ead5c4 60%, #e0c9b5 100%);
      box-shadow: 0 16px 38px rgba(31, 40, 28, 0.1), inset 0 1px 0 rgba(255,255,255,0.6);
    }

    .tryon-card.hidden {
      display: none;
    }

    .tryon-card.neck {
      background:
        radial-gradient(ellipse at 50% 20%, rgba(255,255,255,0.45) 0%, transparent 50%),
        radial-gradient(ellipse at 40% 65%, rgba(226,200,180,0.3) 0%, transparent 40%),
        linear-gradient(175deg, #fcf5ef 0%, #f3e4d6 28%, #e8d2be 55%, #ddc7b0 100%);
    }

    .skin-art {
      position: absolute;
      inset: 0;
      overflow: hidden;
      background:
        radial-gradient(ellipse at 50% 40%, rgba(255,255,255,0.5) 0%, transparent 35%),
        radial-gradient(ellipse at 25% 55%, rgba(255,248,240,0.3) 0%, transparent 30%),
        linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 50%);
    }

    .skin-art.wrist::before {
      content: "";
      position: absolute;
      width: 480px;
      height: 140px;
      left: 50%;
      top: 52%;
      transform: translate(-50%, -50%) rotate(-8deg);
      border-radius: 999px;
      background:
        linear-gradient(180deg,
          rgba(255,255,255,0.25) 0%,
          transparent 18%,
          transparent 80%,
          rgba(120,70,55,0.12) 100%
        ),
        linear-gradient(90deg,
          #d4a68b 0%,
          #f0cfb8 12%,
          #fadbc5 28%,
          #e8bfa4 48%,
          #deaf92 62%,
          #d4a082 78%,
          #c48b6e 100%
        );
      box-shadow:
        inset 0 18px 38px rgba(255,255,255,0.3),
        inset 0 -20px 44px rgba(95, 47, 37, 0.18),
        0 4px 16px rgba(31, 40, 28, 0.06);
    }

    .skin-art.neck::before {
      content: "";
      position: absolute;
      width: 300px;
      height: 320px;
      left: 50%;
      top: -52px;
      transform: translateX(-50%);
      border-radius: 0 0 140px 140px;
      background:
        linear-gradient(180deg,
          rgba(255,255,255,0.2) 0%,
          transparent 15%,
          transparent 85%,
          rgba(110,65,50,0.1) 100%
        ),
        linear-gradient(90deg,
          #d4a489 0%,
          #efcdb5 18%,
          #f8d9c3 35%,
          #e6bda3 55%,
          #d9a88a 75%,
          #c89476 100%
        );
      box-shadow:
        inset 0 20px 40px rgba(255,255,255,0.28),
        inset 0 -26px 46px rgba(91, 42, 34, 0.15),
        0 2px 12px rgba(31, 40, 28, 0.04);
    }

    .skin-art.neck::after {
      content: "";
      position: absolute;
      left: 50%;
      bottom: -110px;
      width: 420px;
      height: 210px;
      transform: translateX(-50%);
      border-radius: 220px 220px 0 0;
      background:
        linear-gradient(180deg,
          rgba(255,255,255,0.15) 0%,
          transparent 20%,
          transparent 80%,
          rgba(100,60,45,0.1) 100%
        ),
        linear-gradient(90deg,
          #c49b84 0%,
          #e6c1a8 20%,
          #eecbb3 42%,
          #ddb396 60%,
          #c99b7e 80%,
          #b8876c 100%
        );
    }

    .tryon-label {
      position: absolute;
      left: 12px;
      top: 12px;
      z-index: var(--z-local-navigation);
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 7px 10px;
      border-radius: 999px;
      background: rgba(255,255,255,0.78);
      border: 1px solid rgba(255,255,255,0.56);
      color: var(--ink);
      font-size: 12px;
      backdrop-filter: blur(10px);
    }

    .tryon-item {
      position: absolute;
      left: 50%;
      top: 50%;
      width: var(--size);
      height: var(--size);
      border-radius: 50%;
      transform: translate(-50%, -50%) rotate(var(--angle)) translateY(var(--distance)) rotate(calc(var(--angle) * -1));
      z-index: var(--z-local-caption);
      pointer-events: none;
      animation: settleIn 0.32s var(--ease) both;
      will-change: transform;
    }

    .tryon-card.wrist .tryon-item {
      top: 53%;
      transform: translate(-50%, -50%) rotate(var(--angle)) translateY(var(--distance)) rotate(calc(var(--angle) * -1)) scaleY(0.82);
    }

    .tryon-card.neck .tryon-item {
      top: 34%;
    }

    .design-canvas.drag-over {
      border-color: var(--gold);
      box-shadow: inset 0 0 0 2px rgba(217, 167, 58, 0.35);
    }

    .design-canvas.drag-over::after {
      content: attr(data-drag-hint);
      display: block;
      position: absolute;
      left: 50%;
      top: 18px;
      transform: translateX(-50%);
      z-index: var(--z-local-navigation);
      width: auto;
      aspect-ratio: auto;
      padding: 9px 14px;
      border-radius: 999px;
      background: rgba(35, 79, 55, 0.92);
      color: white;
      font-size: 13px;
      box-shadow: 0 12px 32px rgba(31, 40, 28, 0.16);
    }

    .design-canvas.drag-invalid::after {
      content: attr(data-drag-hint);
      background: rgba(142, 49, 29, 0.94);
    }

    .design-canvas.drag-far::after {
      content: attr(data-drag-hint);
      display: block;
      position: absolute;
      left: 50%;
      top: 18px;
      transform: translateX(-50%);
      z-index: var(--z-local-navigation);
      width: auto;
      aspect-ratio: auto;
      padding: 9px 14px;
      border-radius: 999px;
      background: rgba(35, 79, 55, 0.88);
      color: white;
      font-size: 13px;
      box-shadow: 0 12px 32px rgba(31, 40, 28, 0.16);
    }

    .design-canvas.drag-remove::after {
      content: attr(data-drag-hint);
      display: block;
      position: absolute;
      left: 50%;
      top: 18px;
      transform: translateX(-50%);
      z-index: var(--z-local-navigation);
      width: auto;
      aspect-ratio: auto;
      padding: 9px 14px;
      border-radius: 999px;
      background: rgba(142, 49, 29, 0.94);
      color: white;
      font-size: 13px;
      box-shadow: 0 12px 32px rgba(31, 40, 28, 0.16);
    }

    .canvas-watermark {
      display: none;
      align-items: center;
      justify-content: center;
      position: absolute;
      inset: 50% auto auto 50%;
      transform: translate(-50%, -50%);
      text-align: center;
      pointer-events: none;
      z-index: var(--z-local-content);
      width: clamp(168px, 32vw, 360px);
      height: auto;
      padding: 0;
      background: transparent;
      mix-blend-mode: multiply;
      opacity: 0.18;
    }

    .canvas-watermark img {
      display: block;
      width: 100%;
      height: auto;
      filter: saturate(0.92);
    }

    .canvas-watermark .mini-ring {
      display: none;
    }

    .canvas-watermark .mini-ring::before,
    .canvas-watermark .mini-ring::after {
      content: "";
      position: absolute;
      inset: 9px;
      border-radius: 50%;
      background:
        radial-gradient(circle at 50% 0%, rgba(35,79,55,0.34) 0 3px, transparent 4px),
        radial-gradient(circle at 84% 13%, rgba(200,212,196,0.48) 0 3px, transparent 4px),
        radial-gradient(circle at 100% 50%, rgba(35,79,55,0.34) 0 3px, transparent 4px),
        radial-gradient(circle at 84% 87%, rgba(200,212,196,0.48) 0 3px, transparent 4px),
        radial-gradient(circle at 50% 100%, rgba(35,79,55,0.34) 0 3px, transparent 4px),
        radial-gradient(circle at 16% 87%, rgba(200,212,196,0.48) 0 3px, transparent 4px),
        radial-gradient(circle at 0% 50%, rgba(35,79,55,0.34) 0 3px, transparent 4px),
        radial-gradient(circle at 16% 13%, rgba(200,212,196,0.48) 0 3px, transparent 4px);
    }

    .canvas-watermark .mini-ring::after {
      inset: 20px;
      border: 1px solid rgba(35,79,55,0.08);
      background: rgba(255,255,255,0.12);
    }

    .canvas-watermark strong {
      display: none;
    }

    .canvas-watermark span {
      display: block;
      font-family: var(--font-heading);
      font-size: clamp(28px, 7vw, 54px);
      font-weight: 800;
      letter-spacing: 0.02em;
      color: rgba(35, 79, 55, 0.22);
    }

    .preview-item {
      position: absolute;
      left: 50%;
      top: 50%;
      width: var(--size);
      height: var(--size);
      border-radius: 50%;
      appearance: none;
      border: 0;
      background: transparent;
      padding: 0;
      transform: translate(-50%, -50%) rotate(var(--angle)) translateY(var(--distance)) rotate(calc(var(--angle) * -1));
      display: grid;
      place-items: center;
      z-index: var(--z-local-raised);
      transition: transform 0.18s var(--ease), filter 0.18s ease;
      cursor: grab;
      will-change: transform;
      animation: settleIn 0.32s var(--ease) both;
      touch-action: none;
      opacity: 1;
      pointer-events: auto;
      outline: none;
    }

    .preview-item > * {
      opacity: 0;
      pointer-events: none;
    }

    .preview-item > .preview-bead,
    .preview-item > .preview-finding,
    .preview-item > .preview-charm {
      opacity: 0 !important;
    }

    /* One visual owner at a time: photographed DOM beads during normal use,
       raster beads only while exporting or previewing an active reorder. */
    .design-canvas.canvas-raster-visual-owner .preview-item {
      visibility: hidden !important;
      opacity: 0 !important;
      pointer-events: none !important;
      transition: none !important;
      animation: none !important;
    }

    .design-canvas.is-panning .preview-item {
      transition: none !important;
      animation: none !important;
    }

    .preview-item > .preview-finding,
    .preview-item > .preview-charm {
      opacity: 1 !important;
    }

    /* The interactive canvas must expose the exact SKU-bound source-photo crop.
       The raster canvas remains available for exports, but never owns the shopper-facing bead texture. */
    .preview-item > .preview-bead.photo-backed.realshot-detected-crop:is(.canvas-photo-pending, .canvas-photo-ready)[data-bead-media-role="editor-realshot-single-bead"] {
      position: absolute;
      left: 50%;
      top: 50%;
      z-index: var(--z-local-content);
      display: block;
      width: var(--visual-size, calc(var(--size) * 0.94));
      height: var(--visual-size, calc(var(--size) * 0.94));
	      transform: translate(-50%, -50%) rotate(var(--editor-photo-rotation, 0rad)) scale(var(--editor-depth-scale, 1));
	      opacity: 1 !important;
	      box-shadow: -0.55px var(--editor-bead-shadow-y, 1.5px) var(--editor-bead-shadow-blur, 3px) rgb(43 30 20 / var(--editor-bead-shadow-opacity, 0.18));
	      background-position: 50% 50% !important;
	      background-size: 106% 106% !important;
      filter: none !important;
      mix-blend-mode: normal !important;
    }

    .preview-item::after {
      content: "";
      position: absolute;
      width: var(--visual-size, calc(var(--size) * 0.94));
      height: var(--visual-size, calc(var(--size) * 0.94));
      left: 50%;
      top: 50%;
      border-radius: inherit;
      border: 1px solid transparent;
      opacity: 0;
      transform: translate(-50%, -50%) scale(1);
      transition: opacity 0.18s ease, transform 0.18s var(--ease), border-color 0.18s ease, box-shadow 0.18s ease;
      pointer-events: none;
    }

    .preview-item::before {
      content: "";
      position: absolute;
      inset: 28%;
      border-radius: 50%;
      background: rgba(217, 167, 58, 0);
      pointer-events: none;
    }

	.preview-item.bead::before {
	  inset: auto;
	  left: 50%;
	  top: 50%;
	  z-index: var(--z-local-underlay);
	  width: calc(var(--visual-size, var(--size)) * 0.76);
	  height: calc(var(--visual-size, var(--size)) * 0.26);
	  border-radius: 50%;
	  background: rgba(44, 32, 22, 0.30);
	  filter: blur(var(--editor-contact-shadow-blur, 1.1px));
	  opacity: var(--editor-contact-shadow-opacity, 0.46);
	  transform: translate(-50%, var(--editor-contact-shadow-y, 132%)) scaleX(var(--editor-depth-scale, 1));
	}

    .preview-item:hover::after {
      opacity: 1;
      border-color: rgba(35, 79, 55, 0.26);
      box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.46);
    }

    .preview-item.canvas-positioned {
      left: 0;
      top: 0;
      transform: translate3d(var(--canvas-x, 0px), var(--canvas-y, 0px), 0) translate(-50%, -50%);
      animation: none;
    }

    .preview-item:active {
      cursor: grabbing;
      z-index: var(--z-local-control);
    }

    .preview-item.dragging {
      opacity: 0;
      pointer-events: none;
      transform: translate(-50%, -50%) rotate(var(--angle)) translateY(var(--distance)) rotate(calc(var(--angle) * -1)) scale(0.92);
    }

    .design-canvas.drag-over .preview-item::after,
    .design-canvas.drag-remove .preview-item::after,
    .preview-item.dragging::after {
      opacity: 0 !important;
      box-shadow: none !important;
    }

    .preview-item.dragging::after {
      opacity: 1;
      transform: translate(-50%, -50%) scale(1);
      border-style: dashed;
      border-color: rgba(35, 79, 55, 0.40);
      box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.48), 0 0 0 2px rgba(35, 79, 55, 0.08);
    }

    .preview-item.selected {
      filter: drop-shadow(0 2px 6px rgba(31, 40, 28, 0.16));
      z-index: var(--z-local-navigation);
    }

    .preview-item.selected::after {
      opacity: 1;
      transform: translate(-50%, -50%) scale(1);
      border-color: rgba(35, 79, 55, 0.58);
      box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.62), 0 0 0 2px rgba(35, 79, 55, 0.12);
    }

    .design-canvas.is-animating .preview-item::after {
      opacity: 0;
      transform: translate(-50%, -50%) scale(0.92);
    }

    @keyframes settleIn {
      from {
        opacity: 0;
        transform: translate(-50%, -50%) rotate(var(--angle)) translateY(calc(var(--distance) + 18px)) rotate(calc(var(--angle) * -1)) scale(0.86);
      }
      to {
        opacity: 1;
        transform: translate(-50%, -50%) rotate(var(--angle)) translateY(var(--distance)) rotate(calc(var(--angle) * -1)) scale(1);
      }
    }

    .preview-bead {
      width: 100%;
      height: 100%;
      aspect-ratio: 1 / 1;
      border-radius: 50%;
      background: var(--bead);
      box-shadow:
        inset -13px -15px 22px rgba(0, 0, 0, 0.24),
        inset 8px 9px 16px rgba(255, 255, 255, 0.34),
        0 14px 18px rgba(31, 40, 28, 0.18);
      position: relative;
      overflow: hidden;
    }

    .preview-bead::marker { display: none; }

    .preview-bead.jade,
    .mini-bead.jade {
      background:
        radial-gradient(circle at 28% 22%, rgba(255,255,255,0.55), transparent 12%),
        radial-gradient(circle at 72% 62%, rgba(3, 50, 24, 0.4), transparent 36%),
        linear-gradient(135deg, rgba(255,255,255,0.18), transparent 42%),
        var(--bead);
    }

    .preview-bead.crystal,
    .mini-bead.crystal {
      opacity: 0.88;
      background:
        radial-gradient(circle at 28% 22%, rgba(255,255,255,0.9), transparent 13%),
        radial-gradient(circle at 68% 70%, rgba(255,255,255,0.26), transparent 28%),
        linear-gradient(135deg, rgba(255,255,255,0.4), transparent 34%, rgba(0,0,0,0.16) 76%),
        var(--bead);
    }

    .preview-bead.wood,
    .mini-bead.wood {
      background:
        repeating-radial-gradient(circle at 42% 45%, rgba(255,255,255,0.08) 0 2px, rgba(0,0,0,0.12) 3px 5px, transparent 6px 10px),
        linear-gradient(135deg, rgba(255,225,170,0.22), transparent 38%),
        var(--bead);
    }

    .preview-bead.pearl,
    .mini-bead.pearl {
      background:
        radial-gradient(circle at 30% 24%, rgba(255,255,255,0.95), transparent 16%),
        conic-gradient(from 120deg, rgba(255,215,235,0.45), rgba(210,240,255,0.36), rgba(255,245,210,0.45), rgba(255,215,235,0.45)),
        var(--bead);
    }

    .preview-bead.silver,
    .mini-bead.silver {
      background:
        linear-gradient(135deg, #f8faf9, #aeb6b8 42%, #f2f6f5 62%, #8f9799),
        var(--bead);
    }

    .preview-bead.gold,
    .mini-bead.gold {
      background:
        linear-gradient(135deg, #fff2b7, #b67d12 42%, #ffe18c 62%, #8f5f0a),
        var(--bead);
    }

    .preview-bead::before {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: inherit;
      background:
        radial-gradient(circle at 28% 24%, rgba(255,255,255,0.88) 0 7%, transparent 9%),
        radial-gradient(circle at 64% 70%, rgba(0,0,0,0.22), transparent 34%),
        var(--texture, transparent);
      mix-blend-mode: soft-light;
    }

	    .preview-bead::after {
	      content: "";
	      position: absolute;
	      width: 24%;
	      height: 11%;
	      border-radius: 999px;
	      background: rgba(255, 255, 255, 0.82);
	      top: 17%;
	      left: 28%;
	      transform: rotate(-24deg);
	      filter: blur(0.2px);
	    }

    .preview-bead .hole,
    .preview-bead::before {
      pointer-events: none;
    }

    .preview-bead.hole-visible {
      box-shadow:
        inset -13px -15px 22px rgba(0, 0, 0, 0.24),
        inset 8px 9px 16px rgba(255, 255, 255, 0.34),
        0 14px 18px rgba(31, 40, 28, 0.18);
    }

    .preview-bead .shine {
      position: absolute;
      width: 14px;
      height: 14px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.82);
      top: 17%;
      left: 28%;
    }

    .preview-item.charm,
    .preview-item.finding {
      width: calc(var(--size) * 1.05);
      height: calc(var(--size) * 1.05);
    }

    .preview-item.charm {
      border-radius: 12px;
    }

    .preview-item.charm::before {
      content: "";
      position: absolute;
      left: 50%;
      top: -12px;
      width: 2px;
      height: 18px;
      transform: translateX(-50%);
      background: linear-gradient(var(--gold), rgba(217, 167, 58, 0.2));
      border-radius: 999px;
      z-index: var(--z-local-underlay);
      opacity: 0;
    }

    .preview-item.finding {
      border-radius: 50%;
      width: calc(var(--size) * 0.72);
      height: calc(var(--size) * 0.72);
    }

    .preview-charm,
    .preview-finding {
      width: 100%;
      height: 100%;
      display: grid;
      place-items: center;
      color: var(--metal);
      filter: drop-shadow(0 12px 14px rgba(31, 40, 28, 0.18));
      background: rgba(255,255,255,0.72);
      border: 2px solid rgba(29, 33, 28, 0.48);
      border-radius: inherit;
      padding: 6px;
    }

    .preview-finding {
      border-color: rgba(217, 167, 58, 0.52);
      background: radial-gradient(circle at 30% 24%, rgba(255,255,255,0.9), transparent 24%), rgba(255,255,255,0.76);
      padding: 4px;
    }

    .preview-charm svg,
    .preview-finding svg {
      width: 100%;
      height: 100%;
    }

    .canvas-note { display: none; }

    .canvas-fit-badge {
      position: absolute;
      right: 18px;
      top: 18px;
      z-index: var(--z-local-control);
      max-width: min(300px, calc(100% - 36px));
      padding: 8px 12px;
      border-radius: 999px;
      background: rgba(255, 246, 222, 0.92);
      border: 1px solid rgba(221, 171, 76, 0.35);
      color: #8a620d;
      font-size: 12px;
      font-weight: 700;
      pointer-events: none;
      backdrop-filter: blur(12px);
      box-shadow: 0 10px 24px rgba(78, 54, 22, 0.10);
    }

    .canvas-fit-badge.warn {
      color: #8a620d;
      background: rgba(255, 247, 225, 0.88);
      border-color: rgba(212, 168, 83, 0.42);
    }

    .canvas-fit-badge.critical {
      color: #8a321c;
      background: rgba(255, 239, 234, 0.90);
      border-color: rgba(172, 69, 43, 0.36);
    }

    .drop-marker {
      position: absolute;
      left: 0;
      top: 0;
      width: 64px;
      height: 64px;
      margin: -32px 0 0 -32px;
      border-radius: 50%;
      border: 2px solid rgba(35, 79, 55, 0.54);
      background: transparent;
      box-shadow:
        0 0 0 5px rgba(35, 79, 55, 0.08),
        0 10px 20px rgba(31, 40, 28, 0.10);
      z-index: var(--z-local-navigation);
      pointer-events: none;
      opacity: 0;
      transform: scale(0.7);
      transition: opacity 0.14s ease, transform 0.16s var(--ease);
    }

    .drop-marker.cap { background: transparent; }

    .drop-marker::before {
      content: "";
      display: none;
    }

    @keyframes markerPulse {
      0%, 100% { transform: scale(0.94); opacity: 0.62; }
      50% { transform: scale(1.06); opacity: 0.92; }
    }

    .drop-marker.show {
      opacity: 1;
      transform: scale(1);
    }

    .drop-marker.invalid {
      border-color: rgba(172, 69, 43, 0.95);
      box-shadow:
        0 0 0 7px rgba(172, 69, 43, 0.13),
        0 18px 30px rgba(31, 40, 28, 0.16);
    }

    .drop-marker.invalid::before {
      border-color: rgba(172, 69, 43, 0.72);
    }

    .design-canvas.tap-added {
      animation: canvasTapAdded 0.56s var(--ease-out);
    }

    @keyframes canvasTapAdded {
      0% { box-shadow: inset 0 0 0 0 rgba(35, 79, 55, 0), 0 18px 48px rgba(31, 40, 28, 0.06); }
      32% { box-shadow: inset 0 0 0 5px rgba(35, 79, 55, 0.18), 0 24px 58px rgba(31, 40, 28, 0.12); }
      100% { box-shadow: inset 0 0 0 0 rgba(35, 79, 55, 0), 0 18px 48px rgba(31, 40, 28, 0.06); }
    }

    .drag-ghost {
      position: fixed;
      left: 0;
      top: 0;
      z-index: var(--z-tooltip);
      width: var(--drag-ghost-size, 44px);
      height: var(--drag-ghost-size, 44px);
      pointer-events: none;
      opacity: 0.98;
      transform: translate3d(-50%, -50%, 0) scale(1);
      filter: drop-shadow(0 10px 16px rgba(31, 40, 28, 0.24));
    }

    .drag-ghost.in-canvas {
      opacity: 0.94;
      filter: drop-shadow(0 8px 14px rgba(31, 40, 28, 0.20));
    }

    .drop-hint {
      position: absolute;
      left: 18px;
      bottom: 18px;
      right: auto;
      z-index: var(--z-local-control);
      display: flex;
      gap: 10px;
      align-items: center;
      justify-content: space-between;
      background: transparent;
      border: 0;
      border-radius: 0;
      padding: 0;
      color: var(--muted);
      font-size: 13px;
      backdrop-filter: none;
      max-width: none;
      pointer-events: none;
    }

    .drop-hint > div {
      display: none;
    }

    .drop-hint .pill-button {
      pointer-events: auto;
      box-shadow: 0 14px 28px rgba(31, 40, 28, 0.16);
      height: 42px;
      padding-inline: 18px;
    }

    .canvas-status {
      position: absolute;
      left: 18px;
      top: 18px;
      z-index: var(--z-local-control);
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      pointer-events: none;
    }

    .canvas-status span {
      display: inline-flex;
      align-items: center;
      height: 32px;
      padding: 0 12px;
      border-radius: 999px;
      background: rgba(255,255,255,0.92);
      border: 1px solid rgba(235, 231, 220, 0.92);
      color: var(--ink);
      font-size: 13px;
      box-shadow: 0 10px 24px rgba(31, 40, 28, 0.09);
      backdrop-filter: blur(12px);
      font-weight: 600;
    }

    .canvas-status .design-timer {
      color: var(--moss);
      font-weight: 900;
    }

    .canvas-status .design-timer.timer-pulse {
      animation: designTimerPulse 1.6s ease both;
    }

    @keyframes designTimerPulse {
      0%, 100% {
        background: rgba(255,255,255,0.92);
        box-shadow: 0 10px 24px rgba(31, 40, 28, 0.09);
        transform: translateY(0);
      }
      34% {
        background: rgba(239, 248, 238, 0.96);
        box-shadow: 0 12px 28px rgba(35, 79, 55, 0.16);
        transform: translateY(-1px);
      }
    }

	    .design-companion {
	      position: absolute;
	      left: 50%;
	      top: 12px;
	      z-index: var(--z-tooltip);
      display: grid;
      grid-template-columns: 20px minmax(0, 1fr);
      gap: 6px;
      align-items: center;
      width: min(236px, calc(100% - 118px));
      padding: 7px 9px;
      border: 1px solid rgba(221, 226, 216, 0.9);
      border-radius: 13px;
      background: rgba(255, 255, 255, 0.82);
      color: var(--ink);
      box-shadow: 0 12px 26px rgba(31, 40, 28, 0.12);
      backdrop-filter: blur(12px);
      opacity: 0;
      transform: translate(-50%, -8px) scale(0.96);
      pointer-events: none;
      transition: opacity 220ms var(--ease-out), transform 220ms var(--ease-out);
    }

    .design-companion.show {
      opacity: 1;
      transform: translate(-50%, 0) scale(1);
    }

	    .design-companion.with-actions {
	      pointer-events: auto;
	    }

	    .design-companion::before { display: none; }

    .design-companion-mark {
      position: relative;
      z-index: var(--z-local-content);
      width: 20px;
      height: 20px;
      border-radius: 0;
      display: inline-grid;
      place-items: center;
      background: transparent url("assets/brand/jewdiy-official-monogram-256.png?v=20260606-official") center / contain no-repeat;
      color: transparent;
      font-size: 7.5px;
      font-weight: 950;
      letter-spacing: 0;
    }

    .design-companion-text {
      position: relative;
      z-index: var(--z-local-content);
      margin: 0;
      color: #2b332a;
      font-size: 10.5px;
      line-height: 1.32;
      font-weight: 760;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .design-companion-actions {
      grid-column: 1 / -1;
      display: none;
      gap: 7px;
      justify-content: flex-end;
      padding-top: 1px;
      pointer-events: auto;
    }

    .design-companion.with-actions .design-companion-actions {
      display: flex !important;
    }

	    .design-companion-actions button {
	      pointer-events: auto;
	      height: 24px;
      border: 1px solid rgba(35,79,55,0.16);
      border-radius: 999px;
      background: rgba(255,255,255,0.92);
      color: var(--moss);
      padding: 0 8px;
      font-size: 10px;
      font-weight: 900;
      cursor: pointer;
    }

    .design-companion-actions button.primary {
      background: var(--moss);
      color: #fff;
      border-color: var(--moss);
    }

    .design-companion-actions button:disabled {
      opacity: 0.52;
      cursor: not-allowed;
    }

    .design-companion.with-actions .design-companion-actions {
      display: flex !important;
      pointer-events: auto !important;
    }

    .canvas-length-control {
      display: grid;
      position: static;
      z-index: var(--z-local-control);
      width: 100%;
      max-width: none;
      grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
      align-items: center;
      gap: 5px 9px;
      margin-top: 7px;
      padding: 7px 9px;
      border: 1px solid rgba(221, 226, 216, 0.82);
      border-radius: 10px;
      background: rgba(255,255,255,0.88);
      box-shadow: 0 14px 30px rgba(31, 40, 28, 0.10);
      backdrop-filter: blur(14px);
    }

    .canvas-length-control label,
    .canvas-net-wrist {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 3px;
      align-items: center;
      color: var(--muted);
      font-size: 11px;
      font-weight: 800;
      min-width: 0;
    }

    .canvas-length-control strong {
      color: var(--moss);
      font-size: 13px;
    }

    .canvas-length-row {
      display: grid;
      grid-column: 2;
      grid-template-columns: 28px minmax(92px, 138px) 66px 28px;
      gap: 5px;
      align-items: center;
      justify-content: end;
    }

    .canvas-net-wrist span {
      color: var(--muted);
      font-size: 11px;
      font-weight: 800;
    }

    .wrist-field-copy {
      display: grid;
      gap: 1px;
      min-width: 0;
      line-height: 1.16;
    }

    .wrist-field-copy strong,
    .canvas-inner-label span {
      color: var(--ink);
      font-size: 11px;
      font-weight: 900;
      line-height: 1.12;
    }

    .wrist-field-copy em {
      color: var(--muted);
      font-size: 9.6px;
      font-style: normal;
      font-weight: 750;
      line-height: 1.15;
    }

    .canvas-net-wrist input {
      width: 70px;
      height: 30px;
      border: 1px solid var(--line);
      border-radius: 8px;
      padding: 0 7px;
      background: rgba(255,255,255,0.94);
      color: var(--ink);
      font-weight: 800;
    }

    .canvas-length-row input[type="range"] {
      display: block;
      width: 100%;
      max-width: 138px;
      min-width: 92px;
      height: 24px;
      margin: 0;
      accent-color: var(--moss);
      cursor: ew-resize;
    }

    .canvas-length-row input[type="number"] {
      width: 66px;
      height: 30px;
      border: 1px solid var(--line);
      border-radius: 8px;
      padding: 0 7px;
      background: rgba(255,255,255,0.92);
      color: var(--ink);
      font-weight: 850;
      text-align: center;
    }

    .length-step {
      width: 28px;
      height: 30px;
      border: 1px solid rgba(221, 226, 216, 0.92);
      border-radius: 8px;
      background: #f4f6ef;
      color: var(--moss);
      font-size: 16px;
      font-weight: 950;
      line-height: 1;
      cursor: pointer;
    }

    .wrist-comfort-tip {
      grid-column: 1 / -1;
      margin: -2px 0 0;
      color: #6c5d43;
      font-size: 10px;
      line-height: 1.28;
      display: -webkit-box;
      -webkit-line-clamp: 1;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .creative-pass-panel {
      display: grid;
      gap: 10px;
      margin-top: 8px;
      padding: 12px;
      border: 1px solid rgba(35, 79, 55, 0.24);
      border-radius: 12px;
      background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(243,248,242,0.96));
      box-shadow: 0 14px 34px rgba(31, 40, 28, 0.12);
    }

    .creative-pass-panel[hidden] {
      display: none !important;
    }

    .creative-pass-panel h3 {
      margin: 0;
      font-size: 15px;
      line-height: 1.25;
      color: var(--ink);
    }

    .creative-pass-panel p {
      margin: 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.55;
    }

    .creative-pass-plans {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }

    .creative-pass-plan {
      display: grid;
      gap: 3px;
      min-height: 72px;
      padding: 9px 8px;
      border: 1px solid rgba(35, 79, 55, 0.18);
      border-radius: 10px;
      background: rgba(255,255,255,0.95);
      color: var(--ink);
      cursor: pointer;
      text-align: left;
      font: inherit;
    }

    .creative-pass-plan strong {
      color: var(--moss);
      font-size: 16px;
      line-height: 1;
    }

    .creative-pass-plan small,
    .creative-pass-plan del {
      color: var(--muted);
      font-size: 10px;
      line-height: 1.2;
    }

    .creative-pass-plan .save {
      color: #9a6d10;
      font-weight: 900;
    }

    .creative-pass-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      align-items: center;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.3;
    }

    .creative-pass-meta b {
      color: var(--moss);
    }

    .creative-pass-modal {
      position: fixed;
      inset: 0;
      z-index: var(--z-modal);
      display: none;
      place-items: center;
      padding: 18px;
      background: rgba(14, 24, 18, 0.42);
      backdrop-filter: blur(12px);
    }

    .creative-pass-modal.show {
      display: grid;
    }

    .creative-pass-dialog {
      position: relative;
      width: min(760px, calc(100vw - 28px));
      max-height: min(86dvh, 720px);
      overflow: auto;
      display: grid;
      gap: 13px;
      padding: clamp(18px, 3vw, 28px);
      border: 1px solid rgba(35, 79, 55, 0.18);
      border-radius: 18px;
      background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,250,244,0.98));
      box-shadow: 0 28px 72px rgba(8, 18, 12, 0.24);
    }

    .creative-pass-dialog h3 {
      margin: 0;
      color: var(--ink);
      font-size: clamp(22px, 3vw, 32px);
      line-height: 1.1;
    }

    .creative-pass-dialog p {
      margin: 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.65;
    }

    .creative-pass-close {
      position: absolute;
      top: 12px;
      right: 12px;
      width: 34px;
      height: 34px;
      border-radius: 50%;
      border: 1px solid rgba(35, 79, 55, 0.16);
      background: rgba(255,255,255,0.82);
      color: var(--ink);
      cursor: pointer;
      font-size: 18px;
      font-weight: 900;
    }

    .creative-pass-modal .creative-pass-plans {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .creative-pass-modal .creative-pass-plan {
      min-height: 96px;
      padding: 14px;
      border-radius: 12px;
      box-shadow: 0 14px 32px rgba(31, 40, 28, 0.08);
    }

    .creative-pass-modal .creative-pass-plan strong {
      font-size: 22px;
    }

    @media (max-width: 640px) {
      .creative-pass-modal {
        align-items: end;
        padding: 10px;
      }

      .creative-pass-dialog {
        width: 100%;
        max-height: 88dvh;
        border-radius: 18px 18px 14px 14px;
        padding: 18px 14px 16px;
      }

      .creative-pass-modal .creative-pass-plans {
        grid-template-columns: 1fr;
      }
    }

    body.creative-pass-edit-locked .design-canvas {
      box-shadow: inset 0 0 0 2px rgba(35, 79, 55, 0.20), var(--shadow-soft);
    }

    body.creative-pass-edit-locked .preview-item {
      cursor: not-allowed;
    }

    .drop-hint strong {
      color: var(--ink);
      font-size: 14px;
    }

    .quick-row {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
    }

    .tryon-section {
      padding: 16px;
      display: grid;
      gap: 12px;
    }

    .tryon-section-head {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 16px;
    }

    .tryon-section-head h2 {
      font-size: 22px;
      margin-top: 4px;
    }

    .tryon-section-head p {
      color: var(--muted);
      font-size: 13px;
      line-height: 1.45;
      max-width: 520px;
    }

    .tryon-section .tryon-stack {
      position: static;
      width: 100%;
      max-height: none;
      opacity: 1;
      display: none;
      margin: 0;
    }

    .tryon-section .tryon-card {
      min-height: 360px;
    }

    .wear-preview-card {
      position: relative;
      overflow: hidden;
      min-height: clamp(340px, 42vh, 470px);
      border-radius: 10px;
      border: 1px solid rgba(217, 211, 195, 0.86);
      background: #ead5c3;
      box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.62),
        0 18px 42px rgba(31, 40, 28, 0.08);
      display: block;
    }

    #toggleTryon,
    #tryonPreviewSection {
      display: none !important;
    }

    .wear-preview-canvas {
      display: block;
      width: 100%;
      height: 100%;
      min-height: clamp(340px, 42vh, 470px);
    }

    .wear-preview-copy {
      position: absolute;
      left: 16px;
      bottom: 16px;
      right: 16px;
      display: none;
      align-items: end;
      justify-content: space-between;
      gap: 16px;
      padding: 14px 16px;
      border-radius: var(--radius);
      background: rgba(255, 255, 255, 0.86);
      border: 1px solid rgba(255, 255, 255, 0.76);
      backdrop-filter: blur(14px);
      box-shadow: 0 16px 34px rgba(31, 40, 28, 0.12);
    }

    .wear-preview-copy span {
      display: block;
      color: var(--muted);
      font-size: 12px;
      margin-bottom: 3px;
    }

    .wear-preview-copy strong {
      display: block;
      color: var(--ink);
      font-size: 16px;
      line-height: 1.25;
    }

    .wear-preview-copy .pill-button {
      height: 38px;
      flex: 0 0 auto;
    }

    .bottom-tray {
      position: static;
      z-index: var(--z-local-content);
      padding: 10px;
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      align-items: stretch;
      gap: 8px;
      background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(248, 246, 238, 0.88)),
        radial-gradient(circle at 8% 0%, rgba(217, 167, 58, 0.10), transparent 32%);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: 0 14px 34px rgba(31, 40, 28, 0.07), inset 0 1px 0 rgba(255,255,255,0.75);
      backdrop-filter: blur(16px);
      order: 3;
    }

    .bottom-tray > * {
      min-width: 0;
    }

    @media (min-width: 1181px) {
      .canvas-card {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        align-items: stretch;
      }

      .canvas-toolbar,
      .designer-sign-panel,
      .mobile-builder-inline-cta {
        grid-column: 1 / -1;
      }

      .preview-layout {
        grid-column: 1;
        order: 2;
        min-width: 0;
      }

      .bottom-tray {
        display: none;
      }

      .bottom-tray .tray-shell {
        grid-template-columns: 82px minmax(0, 1fr);
        min-height: 0;
        min-width: 0;
        width: 100%;
        max-width: 100%;
        overflow: hidden;
      }

      .bottom-tray .tray-scroll {
        grid-auto-flow: row;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: none;
        grid-auto-columns: minmax(0, 1fr);
        overflow-x: hidden;
        overflow-y: auto;
        max-height: min(536px, calc(100vh - 330px));
        padding-bottom: 2px;
        min-width: 0;
        width: 100%;
        max-width: 100%;
        min-height: 0;
        contain: layout paint;
      }

      .bottom-tray .tray-rail {
        min-width: 0;
        width: 100%;
      }

      .bottom-tray .tray-item {
        min-width: 0;
        width: 100%;
        min-height: 104px;
      }
    }

    @media (min-width: 861px) {
      .bottom-tray {
        display: none;
      }
    }

    .bottom-tray-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      color: var(--muted);
      font-size: 12px;
      padding: 0 4px;
    }

    .tray-toggle {
      display: none;
      align-items: center;
      justify-content: center;
      min-width: 58px;
      height: 30px;
      border: 1px solid rgba(35, 79, 55, 0.18);
      border-radius: 999px;
      background: rgba(255,255,255,0.9);
      color: var(--moss);
      font-size: 11px;
      font-weight: 900;
      cursor: pointer;
      white-space: nowrap;
    }

    .tray-toggle::before {
      content: attr(data-label);
    }

	    .tray-smart-complete {
	      display: inline-flex;
	      align-items: center;
	      justify-content: center;
	      min-width: 88px;
	      min-height: 34px;
	      padding: 0 12px;
      border: 1px solid rgba(35, 79, 55, 0.18);
      border-radius: 999px;
      background: var(--moss);
      color: #fff;
      font-size: 11px;
      font-weight: 900;
      cursor: pointer;
      white-space: nowrap;
      box-shadow: 0 10px 22px rgba(35, 79, 55, 0.14);
    }

    .tray-tools {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px;
      border: 1px solid rgba(221, 226, 216, 0.86);
      border-radius: 10px;
      background: rgba(255,255,255,0.76);
    }

    .tray-tools span {
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      white-space: nowrap;
    }

    .tray-size-options {
      display: flex;
      gap: 6px;
      overflow-x: auto;
      scrollbar-width: none;
    }

    .tray-size-options::-webkit-scrollbar { display: none; }

    .tray-size-options button {
      height: 30px;
      min-width: 52px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: rgba(255,255,255,0.92);
      color: var(--muted);
      font-size: 12px;
      font-weight: 900;
      cursor: pointer;
    }

    .tray-size-options button.active {
      border-color: var(--moss);
      background: var(--moss);
      color: #fff;
      box-shadow: 0 8px 18px rgba(35, 79, 55, 0.14);
    }

    .tray-scroll {
      display: grid;
      grid-auto-flow: column;
      grid-template-rows: repeat(2, minmax(0, 1fr));
      grid-auto-columns: 96px;
      gap: 7px;
      overflow-x: auto;
      padding: 2px 2px 8px;
      scroll-snap-type: x proximity;
    }

    .tray-shell {
      display: grid;
      grid-template-columns: 118px minmax(0, 1fr);
      gap: 8px;
      align-items: stretch;
    }

    .tray-rail {
      display: grid;
      align-content: start;
      gap: 6px;
      max-height: 252px;
      overflow-y: auto;
      padding: 2px;
      scrollbar-width: none;
    }

    .tray-rail::-webkit-scrollbar { display: none; }

    .tray-rail-row {
      display: grid;
      gap: 5px;
      min-width: 0;
    }

    .tray-rail-row + .tray-rail-row {
      padding-top: 6px;
      border-top: 1px solid rgba(221, 226, 216, 0.78);
    }

    .tray-rail-tree {
      align-content: start;
    }

    .tray-rail-label {
      color: rgba(109, 119, 105, 0.94);
      font-size: 10px;
      font-weight: 900;
      letter-spacing: 0.04em;
      padding-left: 2px;
    }

    .tray-rail button {
      min-height: 36px;
      border: 1px solid rgba(221, 226, 216, 0.95);
      border-radius: 9px;
      background: rgba(255,255,255,0.86);
      color: var(--muted);
      font-size: 12px;
      font-weight: 900;
      line-height: 1.1;
      padding: 6px 5px;
      cursor: pointer;
    }

    .tray-rail button.active {
      background: var(--moss);
      border-color: var(--moss);
      color: #fff;
      box-shadow: 0 8px 18px rgba(35, 79, 55, 0.16);
    }

    .tray-rail button.is-expanded:not(.active) {
      border-color: rgba(35, 79, 55, 0.42);
      background: rgba(239, 246, 239, 0.94);
      color: var(--moss);
    }

    .tray-rail-children {
      display: grid;
      gap: 4px;
      margin: -2px 0 2px 7px;
      padding-left: 8px;
      border-left: 1px solid rgba(35, 79, 55, 0.18);
    }

    .tray-rail .tray-rail-child {
      min-height: 28px;
      padding-left: 8px;
      font-size: 10.5px;
      background: rgba(255,255,255,0.72);
      border-color: rgba(221, 226, 216, 0.82);
      color: #5f6c60;
    }

    .tray-item {
      min-width: 96px;
      min-height: 112px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(250,248,242,0.94));
      padding: 8px 8px 7px;
      display: grid;
      grid-template-rows: auto auto auto;
      justify-items: center;
      align-content: center;
      gap: 6px;
      cursor: grab;
      scroll-snap-align: start;
      text-align: center;
      user-select: none;
      touch-action: none;
      transition: transform 0.22s var(--ease), border-color 0.22s var(--ease), box-shadow 0.22s var(--ease);
      position: relative;
      -webkit-user-drag: none;
    }

    .tray-item:active {
      cursor: grabbing;
      transform: translateY(-1px) scale(0.98);
    }

    .tray-item:hover {
      transform: translateY(-2px);
      border-color: rgba(35, 79, 55, 0.45);
      box-shadow: 0 12px 26px rgba(31, 40, 28, 0.08);
    }

    .product-card.is-synced,
    .tray-item.is-synced {
      border-color: rgba(35, 79, 55, 0.72);
      box-shadow: 0 0 0 2px rgba(35, 79, 55, 0.16), 0 16px 34px rgba(31, 40, 28, 0.13);
    }

    .tray-item.quality-hold {
      cursor: default;
      opacity: 0.76;
      touch-action: pan-x;
    }

    .tray-item.quality-hold:hover,
    .tray-item.quality-hold:active {
      transform: none;
      border-color: var(--line);
      box-shadow: none;
      cursor: default;
    }

    .tray-item.quality-hold .mini-bead {
      filter: grayscale(0.22) saturate(0.72) contrast(0.96);
      background:
        radial-gradient(circle at 31% 24%, rgba(255,255,255,0.70), transparent 16%),
        linear-gradient(145deg, #eee8dc, #d8d0c1 58%, #c4baa8);
      box-shadow:
        inset -8px -9px 14px rgba(87, 74, 55, 0.13),
        inset 7px 7px 13px rgba(255, 255, 255, 0.42),
        0 8px 14px rgba(31, 40, 28, 0.08);
    }

    .tray-item.quality-hold span,
    .tray-item.quality-hold strong {
      color: var(--muted);
    }

    .product-card.dragging,
    .tray-item.dragging {
      opacity: 0.58;
      border-color: rgba(217, 167, 58, 0.72);
      box-shadow: 0 14px 30px rgba(217, 167, 58, 0.16);
    }

    .tray-item strong {
      font-size: 12px;
      line-height: 1.2;
      width: 100%;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .tray-item span {
      color: var(--moss);
      font-size: 12px;
      font-weight: 800;
    }

    .tray-item .badge {
      position: absolute;
      left: 7px;
      top: 7px;
      transform: scale(0.86);
      transform-origin: left top;
    }

    .detail-chip {
      position: absolute;
      right: 6px;
      top: 6px;
      z-index: var(--z-local-navigation);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 32px;
      height: 22px;
      padding: 0 7px;
      border-radius: 999px;
      border: 1px solid rgba(35, 79, 55, 0.16);
      background: rgba(255,255,255,0.88);
      color: var(--moss);
      font-size: 10px;
      font-weight: 900;
      line-height: 1;
      box-shadow: 0 8px 16px rgba(31, 40, 28, 0.08);
      cursor: pointer;
      touch-action: manipulation;
      appearance: none;
      font-family: inherit;
    }

    .mini-bead {
      width: 52px;
      height: 52px;
      aspect-ratio: 1 / 1;
      border-radius: 50%;
      background: var(--bead);
      margin-top: 8px;
      box-shadow:
        inset -12px -13px 19px rgba(0,0,0,0.23),
        inset 7px 8px 15px rgba(255,255,255,0.32),
        0 14px 20px rgba(31, 40, 28, 0.14);
      position: relative;
      overflow: hidden;
      transform: scale(var(--bead-scale, 1));
      transform-origin: center;
    }

    .mini-bead::before {
      content: "";
      position: absolute;
      inset: 0;
      background: var(--texture, transparent);
      mix-blend-mode: soft-light;
      background-size: cover;
      background-position: center;
      opacity: 0.72;
    }

	    .mini-bead::after {
	      content: "";
	      position: absolute;
	      width: 12px;
	      height: 6px;
	      border-radius: 999px;
	      background: rgba(255,255,255,0.85);
	      top: 8px;
	      left: 12px;
	      transform: rotate(-24deg);
	      filter: blur(0.15px);
	    }

    .material-popover {
      position: fixed;
      z-index: var(--z-dropdown);
      width: min(390px, calc(100vw - 28px));
      max-height: min(58vh, 430px);
      overflow: auto;
      background: rgba(255,255,255,0.96);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding: 16px;
      display: none;
      backdrop-filter: blur(16px);
    }

    .material-popover.show {
      display: block;
      animation: popIn 0.18s var(--ease) both;
    }

    .material-popover.mobile-detail {
      left: 10px !important;
      right: 10px !important;
      top: auto !important;
      bottom: max(12px, env(safe-area-inset-bottom));
      width: auto;
      max-height: min(62vh, 430px);
      overflow: auto;
      z-index: var(--z-dropdown);
      border-radius: 14px;
      box-shadow: 0 24px 60px rgba(31, 40, 28, 0.22);
    }

    .material-popover.mobile-detail .popover-grid span {
      -webkit-line-clamp: 5;
    }

    .material-popover.mobile-detail .popover-long,
    .material-popover.mobile-detail .popover-cultural {
      -webkit-line-clamp: unset;
      display: block;
    }

	    .material-popover.pinned {
	      max-height: min(58vh, 430px);
	      overflow: auto;
	    }

	    .material-popover.detail-expanded {
	      width: min(390px, calc(100vw - 24px));
	    }

    .material-popover.pinned .popover-grid span {
      -webkit-line-clamp: 3;
    }

    .material-popover.pinned .popover-long,
    .material-popover.pinned .popover-cultural {
      -webkit-line-clamp: 3;
      display: -webkit-box;
    }

    @keyframes popIn {
      from { opacity: 0; transform: translateY(8px) scale(0.98); }
      to { opacity: 1; transform: translateY(0) scale(1); }
    }

    .popover-head {
      display: flex;
      gap: 12px;
      align-items: center;
      margin-bottom: 12px;
    }

    .popover-head .mini-bead {
      width: 58px;
      height: 58px;
      flex: 0 0 auto;
    }

    .popover-head h3 {
      margin: 0;
      font-size: 18px;
      line-height: 1.2;
    }

    .popover-head span,
    .popover-grid span {
      color: var(--muted);
      font-size: 12px;
      line-height: 1.4;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .popover-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }

    .popover-reference {
      margin: 0 0 10px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) 58px;
      gap: 8px;
      align-items: center;
      padding: 8px;
      border: 1px solid rgba(221, 226, 216, 0.86);
      border-radius: 10px;
      background: rgba(250,250,247,0.74);
    }

    .popover-reference img {
      width: 100%;
      height: 92px;
      display: block;
      object-fit: cover;
      border-radius: 8px;
      border: 1px solid rgba(221, 226, 216, 0.78);
      background: #f8f3ea;
    }

    .popover-reference picture {
      display: block;
      min-width: 0;
    }

	    .popover-reference-cutout {
	      width: 58px;
	      height: 58px;
      border-radius: 50%;
      background: var(--reference-bead) center / contain no-repeat transparent;
	      box-shadow: 0 12px 20px rgba(31, 40, 28, 0.16), 0 1px 0 rgba(255,255,255,0.6);
	    }

    .popover-reference figcaption {
      grid-column: 1 / -1;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.35;
    }

    .popover-long {
      border-top: 1px solid rgba(221, 226, 216, 0.8);
      padding-top: 10px;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.54;
      display: -webkit-box;
      -webkit-line-clamp: 4;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .popover-grid div {
      border: 1px solid rgba(221, 226, 216, 0.86);
      border-radius: 8px;
      padding: 9px;
      background: rgba(250,250,247,0.72);
    }

    .popover-grid strong {
      display: block;
      font-size: 12px;
      color: var(--moss);
      margin-bottom: 3px;
    }

    .popover-cultural {
      margin: 8px 0 0;
      padding: 9px 10px;
      border-radius: 8px;
      background: rgba(35, 79, 55, 0.06);
      color: var(--moss);
      font-size: 12px;
      line-height: 1.48;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .popover-premium-proof {
      display: grid;
      gap: 10px;
      padding: 11px;
      border: 1px solid rgba(173, 126, 41, 0.24);
      border-radius: 8px;
      background:
        linear-gradient(180deg, rgba(255, 250, 238, 0.94), rgba(255, 255, 255, 0.88)),
        radial-gradient(circle at 10% 0%, rgba(203, 160, 75, 0.13), transparent 36%);
    }

    .popover-premium-proof strong {
      color: #6d4d12;
      font-size: 12px;
      line-height: 1.25;
    }

    .popover-premium-proof p {
      margin: 0;
      color: #705d36;
      font-size: 11px;
      line-height: 1.5;
    }

    .popover-actions {
      display: flex;
      gap: 8px;
      margin-top: 14px;
    }

    .material-popover.mobile-detail .popover-actions,
    .material-popover.pinned .popover-actions {
      position: sticky;
      bottom: -16px;
      z-index: var(--z-local-raised);
      margin: 12px -16px -16px;
      padding: 10px 16px 12px;
      background: linear-gradient(180deg, rgba(255,255,255,0.78), rgba(255,255,255,0.98) 34%);
      border-top: 1px solid rgba(221, 226, 216, 0.84);
      backdrop-filter: blur(12px);
    }

    @media (max-width: 860px) {
      .product-inline-detail {
        display: none !important;
      }
    }

    .popover-actions button {
      flex: 1;
      height: 36px;
      border-radius: var(--radius);
      border: 1px solid var(--line);
      background: var(--white);
      cursor: pointer;
    }

    .popover-actions button.primary {
      background: var(--moss);
      border-color: var(--moss);
      color: white;
    }

    .quick-tile {
      padding: 12px 14px;
      min-height: 76px;
    }

    .quick-tile span {
      color: var(--muted);
      font-size: 12px;
    }

    .quick-tile strong {
      display: block;
      margin-top: 8px;
      font-size: 22px;
    }

    .summary {
      padding: 18px;
      border-bottom: 1px solid rgba(221, 226, 216, 0.8);
    }

    .total {
      margin-top: 18px;
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 14px;
    }

    .total span {
      color: var(--muted);
      font-size: 12px;
      text-transform: uppercase;
    }

    .total strong {
      font-size: 32px;
      color: var(--moss);
      line-height: 1;
    }

    .quote-assurance {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 16px;
    }

    .quote-assurance span {
      display: inline-flex;
      align-items: center;
      height: 26px;
      padding: 0 10px;
      border-radius: 999px;
      background: var(--sage-light);
      color: var(--moss);
      font-size: 12px;
      font-weight: 600;
    }

    .quote-margin-note {
      margin-top: 10px;
      padding: 9px 11px;
      border: 1px solid rgba(35, 79, 55, 0.16);
      border-radius: 10px;
      background: rgba(239, 246, 239, 0.72);
      color: var(--moss);
      font-size: 12px;
      line-height: 1.45;
      font-weight: 800;
    }

    .quote-flow {
      margin-top: 14px;
      display: grid;
      gap: 7px;
      padding: 12px;
      border: 1px solid rgba(35, 79, 55, 0.14);
      border-radius: var(--radius);
      background: linear-gradient(180deg, rgba(246, 250, 244, 0.95), rgba(255,255,255,0.92));
      color: var(--muted);
      font-size: 12px;
      line-height: 1.45;
    }

    .quote-flow strong {
      color: var(--ink);
      font-size: 13px;
    }

    .quote-flow span {
      color: var(--moss);
      font-weight: 700;
    }

    .value-stack {
      margin-top: 12px;
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }

    .value-card {
      min-height: 74px;
      padding: 11px;
      border: 1px solid rgba(227, 222, 210, 0.90);
      border-radius: var(--radius);
      background: rgba(255,255,255,0.92);
    }

    .value-card strong {
      display: block;
      color: var(--ink);
      font-size: 12px;
      line-height: 1.35;
      margin-bottom: 4px;
    }

    .value-card span {
      display: block;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.45;
    }

    .fit-advisor {
      display: grid;
      gap: 7px;
      padding: 12px;
      border: 1px solid rgba(35, 79, 55, 0.16);
      border-radius: var(--radius);
      background: rgba(246, 250, 244, 0.92);
      color: var(--muted);
      font-size: 12px;
      line-height: 1.45;
    }

    .fit-advisor strong {
      color: var(--moss);
      font-size: 13px;
    }

    .fit-advisor.warn {
      border-color: rgba(212, 168, 83, 0.46);
      background: rgba(255, 247, 225, 0.92);
    }

    .fit-advisor.warn strong { color: #8a620d; }

    .fit-advisor.critical {
      border-color: rgba(172, 69, 43, 0.38);
      background: rgba(255, 239, 234, 0.94);
    }

    .fit-advisor.critical strong { color: #8a321c; }

    .config {
      padding: 14px 18px;
      display: grid;
      gap: 14px;
      border-bottom: 1px solid rgba(221, 226, 216, 0.8);
    }

    .field label {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 7px;
      color: var(--muted);
      font-size: 12px;
      text-transform: uppercase;
    }

    .field input,
    .field select {
      width: 100%;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--white);
      height: 42px;
      padding: 0 12px;
      color: var(--ink);
    }

    .range-wrap {
      display: grid;
      grid-template-columns: minmax(118px, 190px) 76px;
      justify-content: end;
      align-items: center;
      gap: 10px;
    }

    .range-wrap input[type="range"] {
      width: min(100%, 190px);
      justify-self: end;
    }

    input[type="range"] { accent-color: var(--moss); }

    .pill-button:disabled {
      opacity: 0.48;
      cursor: not-allowed;
      box-shadow: none !important;
    }

    .line-items {
      padding: 16px 18px;
      display: grid;
      gap: 10px;
    }

    .line-item {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 10px;
      padding: 10px 0;
      border-bottom: 1px solid rgba(221, 226, 216, 0.75);
      font-size: 13px;
      align-items: center;
    }

    .line-item span { color: var(--muted); }

    .line-item-main {
      display: flex;
      align-items: center;
      gap: 9px;
      min-width: 0;
      color: var(--muted);
    }

    .line-item-main > span:last-child {
      min-width: 0;
      overflow-wrap: anywhere;
      line-height: 1.28;
    }

    .line-item-copy {
      display: grid;
      gap: 3px;
      min-width: 0;
    }

    .line-item-detail {
      color: #6f776c;
      font-size: 11px;
      font-weight: 700;
      line-height: 1.25;
    }

    .line-item-thumb {
      width: 34px;
      height: 34px;
      flex: 0 0 34px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background:
        radial-gradient(circle at 36% 24%, rgba(255,255,255,0.88), rgba(255,255,255,0) 36%),
        rgba(250,248,242,0.92);
      border: 1px solid rgba(221,226,216,0.86);
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.82), 0 8px 16px rgba(31,40,28,0.08);
      overflow: hidden;
    }

    .line-item-thumb .preview-bead,
    .line-item-thumb .preview-finding,
    .line-item-thumb .preview-charm {
      width: 26px;
      height: 26px;
      transform: none;
    }

	    .checkout {
	      padding: 18px;
	      display: grid;
	      gap: 10px;
	    }

	    .right-panel .checkout {
	      position: sticky;
	      bottom: 0;
	      z-index: var(--z-local-control);
	      background:
	        linear-gradient(180deg, rgba(255, 255, 255, 0.72), var(--white) 18%),
	        var(--white);
	      border-top: 1px solid rgba(221, 226, 216, 0.92);
	      box-shadow: 0 -14px 34px rgba(31, 40, 28, 0.07);
	    }

    .checkout .pill-button {
      justify-content: center;
      width: 100%;
      height: 44px;
      border-radius: var(--radius);
    }

    .checkout .pill-button.primary {
      height: 50px;
      font-size: 15px;
      box-shadow: 0 16px 32px rgba(35, 79, 55, 0.22);
    }

    .checkout-nudge {
      margin: 0;
      padding: 10px 12px;
      border-radius: 10px;
      background: rgba(35, 79, 55, 0.08);
      color: #234f37;
      font-size: 12px;
      line-height: 1.55;
      font-weight: 800;
    }

    .trust-row {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px;
      color: var(--muted);
      font-size: 11px;
      text-align: center;
    }

    .trust-row div {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 8px 5px;
      background: var(--white);
    }

    .story-sections {
      padding: clamp(40px, 5vw, 80px) clamp(20px, 5vw, 56px) 0;
      display: grid;
      gap: clamp(48px, 6vw, 96px);
    }

    .section-band {
      background: transparent;
      border: none;
      border-radius: 0;
      padding: 0;
      box-shadow: none;
    }

    .section-title {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 24px;
      margin-bottom: clamp(28px, 3vw, 40px);
    }

    .section-title h2 {
      margin-top: 5px;
      font-family: var(--font-heading);
      font-size: clamp(28px, 3.5vw, 42px);
      line-height: 1.1;
      font-weight: 700;
    }

    .section-title p {
      color: var(--muted);
      max-width: 480px;
      line-height: 1.65;
      font-size: 14px;
    }

    .section-actions {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
      justify-content: flex-end;
    }

    .brand-intro-section {
      display: grid;
      grid-template-columns: minmax(0, 1.08fr) minmax(280px, 0.92fr);
      gap: clamp(22px, 4vw, 52px);
      align-items: center;
    }

    .brand-intro-copy {
      display: grid;
      gap: 18px;
    }

    .brand-intro-copy h2 {
      margin-top: 6px;
      font-family: var(--font-heading);
      font-size: clamp(30px, 4vw, 48px);
      line-height: 1.08;
      font-weight: 700;
    }

    .brand-intro-copy p {
      max-width: 720px;
      color: var(--muted);
      font-size: 15px;
      line-height: 1.78;
    }

    .brand-intro-actions {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
    }

    .brand-proof-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-top: 2px;
    }

    .brand-proof {
      min-height: 104px;
      padding: 15px;
      border: 1px solid rgba(221, 226, 216, 0.9);
      border-radius: var(--radius);
      background: rgba(255, 255, 255, 0.76);
    }

    .brand-proof strong {
      display: block;
      margin-bottom: 6px;
      color: var(--ink);
      font-size: 14px;
      line-height: 1.25;
    }

    .brand-proof span {
      display: block;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.55;
    }

    .brand-intro-media {
      display: grid;
      gap: 12px;
      min-width: 0;
    }

    .brand-intro-media img {
      width: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover;
      border-radius: var(--radius-lg);
      border: 1px solid rgba(221, 226, 216, 0.9);
      box-shadow: 0 22px 52px rgba(31, 40, 28, 0.12);
    }

    .brand-seo-strip {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .brand-seo-strip span {
      padding: 7px 10px;
      border: 1px solid rgba(35, 79, 55, 0.16);
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.82);
      color: var(--moss);
      font-size: 12px;
      font-weight: 850;
    }

    .material-grid,
    .review-grid,
    .process-grid {
      display: grid;
      gap: 12px;
    }

    .material-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .material-showcase {
      display: grid;
      grid-template-columns: minmax(300px, 0.95fr) minmax(300px, 1.05fr);
      gap: 14px;
      margin-bottom: 14px;
      align-items: stretch;
    }

    .material-photo-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
      border-radius: var(--radius);
      overflow: hidden;
    }

    .material-photo-grid img {
      width: 100%;
      aspect-ratio: 1;
      object-fit: cover;
      display: block;
      border: none;
      border-radius: var(--radius-sm);
      transition: transform 0.3s var(--ease);
      background: var(--paper-warm);
    }

    .material-photo-grid img:hover {
      transform: scale(1.02);
    }

    .material-feature {
      border: none;
      border-radius: 0;
      padding: clamp(18px, 2.4vw, 30px);
      background: transparent;
      display: grid;
      align-content: center;
      gap: 16px;
    }

    .material-feature h3 {
      font-size: clamp(22px, 2.2vw, 32px);
      line-height: 1.1;
    }

    .material-feature p {
      color: var(--muted);
      line-height: 1.65;
      max-width: 620px;
    }

    .feature-points {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }

    .feature-points span {
      border: 1px solid rgba(35, 79, 55, 0.12);
      background: rgba(255,255,255,0.72);
      border-radius: var(--radius);
      padding: 10px;
      color: var(--moss);
      font-size: 12px;
      font-weight: 700;
    }

    .material-guide {
      display: grid;
      grid-template-columns: minmax(260px, 0.9fr) minmax(360px, 1.1fr);
      gap: 14px;
      margin: 4px 0 18px;
      padding: clamp(16px, 2vw, 24px);
      border: 1px solid rgba(35, 79, 55, 0.12);
      border-radius: var(--radius);
      background: linear-gradient(135deg, rgba(255,255,255,0.86), rgba(247,250,242,0.72));
    }

    .material-guide-copy {
      display: grid;
      align-content: start;
      gap: 9px;
    }

    .material-guide-copy h3 {
      font-size: clamp(20px, 2vw, 30px);
      line-height: 1.12;
    }

    .material-guide-copy p,
    .material-guide-card p {
      color: var(--muted);
      font-size: 13px;
      line-height: 1.58;
    }

    .material-guide-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }

    .material-guide-card {
      min-width: 0;
      padding: 13px;
      border: 1px solid rgba(221, 226, 216, 0.9);
      border-radius: 8px;
      background: rgba(255, 255, 255, 0.82);
    }

    .material-guide-card strong {
      display: block;
      margin-bottom: 6px;
      color: var(--moss);
      font-size: 13px;
      line-height: 1.25;
    }

    .gift-section {
      display: grid;
      grid-template-columns: minmax(300px, 0.9fr) minmax(320px, 1.1fr);
      gap: clamp(20px, 4vw, 54px);
      align-items: center;
      padding: clamp(10px, 2vw, 20px) 0;
    }

    .gift-copy {
      display: grid;
      gap: 16px;
      max-width: 620px;
    }

    .gift-copy h2 {
      font-family: var(--font-heading);
      font-size: clamp(30px, 4vw, 52px);
      line-height: 1.05;
      font-weight: 700;
    }

    .gift-copy p {
      color: var(--muted);
      line-height: 1.75;
      font-size: 15px;
    }

    .gift-visual-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
      align-items: stretch;
    }

    .gift-visual-grid img {
      width: 100%;
      aspect-ratio: 4 / 3;
      height: auto;
      min-height: 0;
      object-fit: cover;
      border-radius: var(--radius);
      box-shadow: 0 22px 56px rgba(31, 40, 28, 0.10);
      background: var(--paper-warm);
    }

    .gift-visual-grid img:first-child { min-height: 0; }

    .gift-points {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
      margin-top: 4px;
    }

    .gift-points span {
      border: 1px solid rgba(35, 79, 55, 0.13);
      border-radius: var(--radius-sm);
      padding: 10px 12px;
      color: var(--moss);
      background: rgba(255,255,255,0.68);
      font-size: 12px;
      font-weight: 800;
    }

    /* ── Accent band (pale green strip) ── */
    .accent-band {
      background: var(--sage-pale);
      padding: 18px clamp(20px, 5vw, 56px);
      text-align: center;
    }

    .accent-band-inner {
      max-width: 720px;
      margin: 0 auto;
      font-size: 14px;
      font-weight: 500;
      color: var(--jade);
      letter-spacing: 0.01em;
      font-family: var(--font-heading);
      font-style: italic;
    }

    .material-story,
    .review-card,
    .process-step {
      border: none;
      border-radius: 0;
      background: transparent;
      padding: 20px 0;
    }

    .ready-section {
      display: grid;
      gap: 18px;
    }

    .ready-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 14px;
    }

    .ready-card {
      display: grid;
      border: 1px solid rgba(221, 226, 216, 0.82);
      border-radius: var(--radius);
      background: var(--white);
      overflow: hidden;
      box-shadow: 0 16px 36px rgba(31, 40, 28, 0.06);
    }

    .ready-photo {
      position: relative;
      aspect-ratio: 1 / 1;
      overflow: hidden;
      background: #f5efe5;
    }

    .ready-photo::before {
      content: "";
      position: absolute;
      right: 10px;
      top: 10px;
      z-index: var(--z-local-raised);
      width: 46px;
      height: 46px;
      border-radius: 12px;
      background: rgba(255,255,255,0.72) url("assets/brand/jewdiy-official-monogram-256.png?v=20260606-official") center / 86% 86% no-repeat;
      box-shadow: 0 10px 24px rgba(31, 40, 28, 0.10);
      backdrop-filter: blur(8px);
      opacity: 0.88;
      display: none;
    }

	    .ready-canvas,
	    .ready-image {
	      width: 100%;
	      height: 100%;
      display: block;
      object-fit: cover;
      filter: saturate(1.04) contrast(1.035);
	      transition: transform 0.28s var(--ease);
	    }

	    .ready-formula-hold-visual {
	      position: relative;
	      width: 100%;
	      height: 100%;
	      display: grid;
	      place-items: center;
	      padding: 22px;
	      overflow: hidden;
	      background:
	        radial-gradient(circle at 50% 46%, rgba(255,255,255,0.78) 0 30%, rgba(238,229,210,0.42) 31% 48%, rgba(238,229,210,0) 49%),
	        linear-gradient(135deg, rgba(255,255,255,0.72), rgba(236,225,202,0.54)),
	        repeating-linear-gradient(45deg, rgba(61,94,67,0.035) 0 1px, transparent 1px 10px);
	    }

	    .ready-formula-hold-visual::before {
	      content: "";
	      position: absolute;
	      inset: 12%;
	      border-radius: 50%;
	      border: 2px solid rgba(151, 127, 83, 0.20);
	      box-shadow:
	        inset 0 0 0 8px rgba(255,255,255,0.20),
	        0 22px 48px rgba(88, 70, 42, 0.13);
	    }

	    .ready-formula-hold-panel {
	      position: relative;
	      z-index: var(--z-local-content);
	      max-width: 86%;
	      display: grid;
	      gap: 8px;
	      justify-items: center;
	      padding: 14px;
	      border-radius: 14px;
	      background: rgba(255,255,255,0.76);
	      color: var(--moss);
	      text-align: center;
	      box-shadow: 0 16px 36px rgba(31, 40, 28, 0.08);
	      backdrop-filter: blur(10px);
	    }

	    .ready-formula-hold-panel strong {
	      font-size: 14px;
	      line-height: 1.25;
	    }

		    .ready-formula-hold-panel small {
		      color: var(--muted);
		      font-size: 11px;
		      line-height: 1.35;
		    }

	    .ready-material-reference-visual {
	      position: relative;
	      width: 100%;
	      height: 100%;
	      display: grid;
	      grid-template-rows: minmax(0, 1fr) auto;
	      gap: 10px;
	      padding: 20px;
	      overflow: hidden;
	      background:
	        radial-gradient(circle at 16% 18%, rgba(255, 255, 255, 0.72), transparent 28%),
	        linear-gradient(135deg, rgba(251, 247, 237, 0.96), rgba(237, 242, 231, 0.80));
	      transition: transform 0.28s var(--ease);
	    }

	    .ready-material-reference-visual::before {
	      content: "";
	      position: absolute;
	      inset: 18px;
	      border: 1px solid rgba(151, 127, 83, 0.16);
	      border-radius: 22px;
	      background: rgba(255, 255, 255, 0.22);
	    }

	    .ready-material-bead-cloud {
	      position: relative;
	      z-index: var(--z-local-content);
	      display: grid;
	      grid-template-columns: repeat(4, minmax(42px, 1fr));
	      align-content: center;
	      justify-items: center;
	      gap: 14px 12px;
	      min-height: 0;
	      padding: 10px 6px 0;
	    }

	    .ready-material-bead {
	      width: clamp(42px, 12vw, 64px);
	      height: clamp(42px, 12vw, 64px);
	      margin: 0;
	    }

	    .ready-material-reference-caption {
	      position: relative;
	      z-index: var(--z-local-content);
	      display: flex;
	      align-items: center;
	      justify-content: space-between;
	      gap: 10px;
	      min-height: 34px;
	      padding: 7px 10px;
	      border: 1px solid rgba(35, 79, 55, 0.10);
	      border-radius: 999px;
	      background: rgba(255, 255, 255, 0.74);
	      color: var(--moss);
	      font-size: 11px;
	      font-weight: 850;
	      line-height: 1.2;
	      backdrop-filter: blur(10px);
	    }

	    .ready-material-reference-caption span {
	      color: var(--muted);
	      font-size: 10px;
	      font-weight: 800;
	      white-space: nowrap;
	    }

		    .ready-card:hover .ready-canvas,
		    .ready-card:hover .ready-image,
		    .ready-card:hover .ready-formula-hold-visual,
		    .ready-card:hover .ready-material-reference-visual {
		      transform: scale(1.035);
		    }

    .ready-photo::after {
      content: "";
      position: absolute;
      inset: 0;
      background:
        linear-gradient(180deg, rgba(0,0,0,0.01) 0%, transparent 52%, rgba(0,0,0,0.28) 100%),
        radial-gradient(circle at 14% 12%, rgba(255,255,255,0.32), transparent 34%);
      pointer-events: none;
    }

	    .ready-label {
	      position: absolute;
	      left: 10px;
	      top: 10px;
      z-index: var(--z-local-raised);
      display: inline-flex;
      align-items: center;
      height: 26px;
      padding: 0 9px;
      border-radius: 999px;
      background: rgba(255,255,255,0.86);
      color: var(--moss);
      font-size: 11px;
      font-weight: 800;
	      backdrop-filter: blur(10px);
	    }

	    .ready-reference-label {
	      position: absolute;
	      right: 10px;
	      top: 10px;
	      z-index: var(--z-local-control);
	      display: inline-flex;
	      align-items: center;
	      max-width: calc(100% - 20px);
	      min-height: 26px;
	      padding: 0 9px;
	      border-radius: 999px;
	      background: rgba(35, 79, 55, 0.88);
	      color: #fff;
	      font-size: 11px;
	      font-weight: 850;
	      line-height: 1.1;
	      box-shadow: 0 10px 24px rgba(31, 40, 28, 0.12);
	      backdrop-filter: blur(10px);
	    }

    .ready-price {
      position: absolute;
      right: 10px;
      bottom: 10px;
      z-index: var(--z-local-raised);
      display: inline-flex;
      align-items: center;
      min-height: 38px;
      padding: 0 12px;
      border-radius: 999px;
      background: rgba(48, 111, 77, 0.94);
      color: #fff;
      font-size: 18px;
      font-weight: 800;
      box-shadow: 0 12px 26px rgba(23, 71, 45, 0.22);
      text-shadow: none;
    }

    .ready-price small {
      display: block;
      margin-left: 5px;
      color: rgba(255, 255, 255, 0.78);
      font-size: 10px;
      font-weight: 700;
      line-height: 1.05;
    }

    .ready-price.ready-price-hold {
      right: 14px;
      bottom: 58px;
      min-height: 34px;
      max-width: calc(100% - 28px);
      padding: 0 12px;
      font-size: clamp(13px, 3.4vw, 15px);
      white-space: nowrap;
    }

    .ready-kind {
      position: absolute;
      left: 10px;
      bottom: 10px;
      z-index: var(--z-local-raised);
      max-width: calc(100% - 142px);
      padding: 5px 8px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.86);
      color: var(--moss);
      font-size: 11px;
      font-weight: 800;
      text-shadow: none;
      backdrop-filter: blur(10px);
    }

    .ready-body {
      display: grid;
      gap: 10px;
      padding: 14px;
    }

    .ready-body h3 {
      margin: 0;
      font-size: 17px;
      line-height: 1.2;
    }

    .ready-story {
      color: var(--muted);
      font-size: 13px;
      line-height: 1.55;
      min-height: 70px;
    }

    .ready-meta {
      display: grid;
      gap: 6px;
      color: #5c6659;
      font-size: 12px;
      line-height: 1.45;
    }

    .ready-meta span {
      padding-top: 6px;
      border-top: 1px solid rgba(221, 226, 216, 0.72);
    }

    .ready-meta strong {
      color: var(--ink);
    }

    .ready-proof-list {
      display: grid;
      gap: 6px;
      margin: 0;
    }

    .ready-proof-list span {
      min-width: 0;
      border: 1px solid rgba(221, 226, 216, 0.88);
      border-radius: 8px;
      padding: 7px 9px;
      background: rgba(251, 249, 244, 0.78);
      color: #5f695d;
      font-size: 12px;
      line-height: 1.38;
      overflow-wrap: anywhere;
    }

    .ready-proof-list strong {
      color: var(--ink);
    }

    .ready-sizing-control {
      display: grid;
      gap: 7px;
      border: 1px solid rgba(221, 226, 216, 0.92);
      border-radius: 9px;
      padding: 9px;
      background: rgba(255, 255, 255, 0.76);
    }

    .ready-sizing-head,
    .ready-sizing-estimate {
      display: flex;
      justify-content: space-between;
      gap: 8px;
      color: #536257;
      font-size: 12px;
      line-height: 1.3;
    }

    .ready-sizing-head strong,
    .ready-sizing-estimate strong {
      color: var(--moss);
    }

    .ready-sizing-estimate .ready-sizing-divider {
      flex: 0 0 auto;
      color: rgba(83, 98, 87, 0.64);
      font-weight: 900;
    }

    .ready-sizing-estimate [data-ready-comfort] {
      flex: 0 0 auto;
      white-space: nowrap;
    }

    .ready-size-fields {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 72px;
      gap: 7px;
      align-items: center;
    }

    .ready-size-fields input[type="range"] {
      width: 100%;
      accent-color: var(--moss);
    }

    .ready-size-fields input[type="number"] {
      width: 100%;
      min-width: 0;
      border: 1px solid var(--line);
      border-radius: 9px;
      padding: 8px 7px;
      text-align: center;
      color: var(--ink);
      background: #fff;
    }

    .ready-actions {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
      align-items: center;
    }

    .ready-actions .pill-button {
      justify-content: center;
      height: 40px;
      border-radius: var(--radius);
    }

    .ready-actions .ready-customize-action {
      grid-column: 1 / -1;
    }
    .ready-actions .pill-button:disabled {
      cursor: not-allowed;
      border-color: rgba(35, 79, 55, 0.16);
      background: rgba(35, 79, 55, 0.07);
      color: var(--moss);
      opacity: 1;
    }
    .ready-hold-note {
      margin: 0;
      border: 1px solid rgba(35, 79, 55, 0.14);
      border-radius: var(--radius-sm);
      padding: 8px 10px;
      background: rgba(35, 79, 55, 0.06);
      color: var(--moss);
      font-size: 12px;
      font-weight: 700;
      line-height: 1.35;
    }

    .ready-more-row {
      display: flex;
      justify-content: center;
      padding: 4px 0 10px;
    }

    .ready-more-row .pill-button {
      min-width: 220px;
      justify-content: center;
      box-shadow: 0 14px 30px rgba(35, 79, 55, 0.14);
    }

    .material-story {
      overflow: hidden;
    }

    .material-thumb {
      width: 100%;
      aspect-ratio: 3/2;
      object-fit: cover;
      border-radius: 6px;
      margin-bottom: 14px;
      display: block;
      border: 1px solid rgba(221, 226, 216, 0.5);
      background: #f7f1e7;
    }

    .material-photo-pending {
      display: grid;
      place-items: center;
      padding: 18px;
      color: var(--muted);
      text-align: center;
    }

    .material-head {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 12px;
    }

    .material-dot {
      width: 42px;
      height: 42px;
      border-radius: 50%;
      background: var(--tone);
      box-shadow: inset -8px -8px 14px rgba(0, 0, 0, 0.15), inset 7px 7px 14px rgba(255, 255, 255, 0.22);
      flex: 0 0 auto;
    }

    .material-story h3,
    .review-card h3,
    .process-step h3 {
      font-size: 16px;
      line-height: 1.25;
    }

    .material-story p,
    .review-card p,
    .process-step p {
      color: var(--muted);
      font-size: 13px;
      line-height: 1.55;
    }

    .tag-row {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-top: 12px;
    }

    .tag-row span {
      border: 1px solid var(--line);
      border-radius: 999px;
      padding: 5px 8px;
      color: var(--muted);
      font-size: 11px;
      background: var(--white);
    }

    .review-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .trust-check {
      color: var(--gold);
      font-size: 12px;
      font-weight: 900;
      letter-spacing: 0;
      margin-bottom: 10px;
    }

    .review-meta {
      margin-top: 14px;
      display: flex;
      justify-content: space-between;
      gap: 12px;
      color: var(--muted);
      font-size: 12px;
    }

    .process-grid {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .aftercare-band {
      display: grid;
      grid-template-columns: minmax(300px, 0.95fr) minmax(320px, 1.05fr);
      gap: 14px;
      align-items: stretch;
      background:
        linear-gradient(135deg, rgba(255,255,255,0.94), rgba(246,242,232,0.88)),
        radial-gradient(circle at 12% 14%, rgba(35, 79, 55, 0.10), transparent 34%);
      border: 1px solid rgba(221, 226, 216, 0.82);
      border-radius: var(--radius);
      padding: clamp(18px, 3vw, 28px);
      box-shadow: 0 18px 44px rgba(31, 40, 28, 0.06);
    }

    .aftercare-main,
    .shipping-coverage {
      display: grid;
      gap: 14px;
      align-content: start;
    }

    .aftercare-main h2,
    .shipping-coverage h3 {
      margin: 0;
      font-family: var(--font-heading);
      line-height: 1.1;
    }

    .aftercare-main h2 {
      font-size: clamp(28px, 3vw, 38px);
    }

    .aftercare-main p,
    .shipping-coverage p {
      margin: 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.65;
    }

    .aftercare-steps {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }

    .aftercare-step {
      min-height: 92px;
      padding: 12px;
      border: 1px solid rgba(221, 226, 216, 0.8);
      border-radius: var(--radius);
      background: rgba(255,255,255,0.76);
    }

    .aftercare-step strong {
      display: block;
      color: var(--moss);
      font-size: 13px;
      margin-bottom: 5px;
    }

    .aftercare-step span {
      color: var(--muted);
      font-size: 12px;
      line-height: 1.5;
    }

    .aftercare-contact {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      width: fit-content;
      min-height: 40px;
      padding: 0 13px;
      border-radius: 999px;
      background: var(--moss);
      color: white;
      text-decoration: none;
      font-size: 13px;
      font-weight: 800;
    }

    .country-grid {
      display: grid;
      gap: 10px;
    }

    .country-group {
      padding: 12px;
      border: 1px solid rgba(221, 226, 216, 0.86);
      border-radius: 8px;
      background: rgba(255,255,255,0.68);
    }

    .country-group strong {
      display: block;
      margin-bottom: 8px;
      color: var(--moss);
      font-size: 12px;
    }

    .country-list {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
    }

    .country-list span {
      display: inline-flex;
      align-items: center;
      min-height: 30px;
      padding: 0 10px;
      border-radius: 999px;
      background: rgba(255,255,255,0.78);
      border: 1px solid rgba(221, 226, 216, 0.86);
      color: var(--ink-soft);
      font-size: 12px;
      font-weight: 700;
    }

    .process-number {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: var(--moss);
      color: white;
      font-size: 12px;
      margin-bottom: 12px;
    }

    /* ═══ Footer ═══ */
    .site-footer {
      background: var(--footer-bg);
      color: rgba(255,255,255,0.86);
      margin-top: 0;
      padding: 0;
      position: relative;
      z-index: var(--z-local-base);
    }

    .site-footer.reveal {
      opacity: 1 !important;
      transform: none !important;
    }

    .footer-top-band {
      background: var(--footer-band);
      padding: 16px clamp(20px, 5vw, 56px);
      color: rgba(255,255,255,0.94);
      font-size: 13px;
      text-align: center;
    }

    .footer-main {
      padding: clamp(40px, 6vw, 72px) clamp(20px, 5vw, 56px) 36px;
    }

    .footer-grid {
      display: grid;
      grid-template-columns: 1.4fr 1fr 1fr 1fr;
      gap: clamp(24px, 3vw, 48px);
      padding-bottom: 40px;
      border-bottom: 1px solid rgba(255,255,255,0.08);
    }

    .footer-col strong {
      display: block;
      color: white;
      font-size: 13px;
      font-weight: 600;
      margin-bottom: 20px;
      letter-spacing: 0.03em;
      text-transform: uppercase;
    }

    .footer-col a,
    .footer-col span {
      display: block;
      color: rgba(255,255,255,0.72);
      text-decoration: none;
      font-size: 13px;
      line-height: 2.2;
      transition: color 0.2s ease;
    }

    .footer-col a:hover { color: rgba(255,255,255,0.96); }

    .footer-brand p {
      color: rgba(255,255,255,0.72);
      font-size: 13px;
      line-height: 1.7;
      margin: 0 0 16px;
    }

    .footer-social {
      display: flex;
      gap: 20px;
    }

    .footer-social a {
      color: rgba(255,255,255,0.74);
      font-size: 12px;
      text-decoration: none;
      font-weight: 500;
      transition: color 0.2s ease;
    }

    .footer-social a:hover { color: rgba(255,255,255,0.96); }

    .footer-contact { line-height: 2.2 !important; }

    .footer-bottom {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 16px;
      padding-top: 28px;
      font-size: 12px;
      color: rgba(255,255,255,0.58);
      flex-wrap: wrap;
    }

    .footer-legal {
      display: flex;
      gap: 24px;
    }

    .footer-legal a {
      color: rgba(255,255,255,0.62);
      text-decoration: none;
      font-size: 12px;
      transition: color 0.2s ease;
    }

	    .footer-legal a:hover { color: rgba(255,255,255,0.9); }

	    @media print {
	      html,
	      body {
	        background: #fffdf8 !important;
	        min-height: auto !important;
	      }

	      * {
	        -webkit-print-color-adjust: exact;
	        print-color-adjust: exact;
	      }

	      img {
	        break-inside: avoid;
	        page-break-inside: avoid;
	      }

	      .site-footer {
	        background: #f8f5ec !important;
	        color: #263e32 !important;
	        break-inside: avoid;
	        page-break-inside: avoid;
	      }

	      .footer-top-band {
	        background: #dfe7c0 !important;
	        color: #173f2e !important;
	        padding-block: 14px !important;
	      }

	      .footer-main {
	        padding: 28px 48px 22px !important;
	      }

	      .footer-grid {
	        gap: 24px !important;
	        padding-bottom: 24px !important;
	        border-bottom-color: rgba(38, 62, 50, 0.18) !important;
	      }

	      .footer-col strong,
	      .footer-col a,
	      .footer-col span,
	      .footer-brand p,
	      .footer-social a,
	      .footer-bottom,
	      .footer-legal a {
	        color: #294638 !important;
	      }

	      .footer-bottom {
	        padding-top: 18px !important;
	      }

	      .reveal,
	      .reveal-stagger > * {
	        opacity: 1 !important;
	        transform: none !important;
	      }
	    }

    .toast {
      position: fixed;
      left: 50%;
      top: calc(92px + env(safe-area-inset-top));
      transform: translate(-50%, -50%) translateY(12px) scale(0.98);
      opacity: 0;
      width: max-content;
      max-width: min(520px, calc(100vw - 32px));
      background: rgba(22, 50, 36, 0.94);
      color: white;
      padding: 13px 18px;
      border-radius: 999px;
      z-index: var(--z-tooltip);
      box-shadow: 0 22px 54px rgba(18, 30, 22, 0.24);
      pointer-events: none;
      transition: opacity 0.2s ease, transform 0.2s ease;
      font-size: 14px;
      font-weight: 850;
      line-height: 1.35;
      text-align: center;
    }

    .toast.show {
      opacity: 1;
      transform: translate(-50%, -50%) translateY(0) scale(1);
    }

		    @media (max-width: 540px) {
      .toast {
        left: auto;
        right: 10px;
        top: calc(58px + env(safe-area-inset-top));
        transform: translateY(-6px) scale(0.98);
        max-width: min(258px, calc(100vw - 20px));
        padding: 7px 10px;
        border-radius: 12px;
        font-size: 11px;
        line-height: 1.25;
        text-align: left;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
      }

      .toast.show {
        transform: translateY(0) scale(1);
      }
    }

    img,
    canvas {
      -webkit-user-drag: none;
      user-select: none;
    }

    /* ═══ Floating cart ═══ */
    .cart-float {
      position: fixed;
      right: 18px;
      bottom: 18px;
      z-index: var(--z-side-panel);
      display: flex;
      align-items: center;
      gap: 8px;
      width: 48px;
      height: 48px;
      justify-content: center;
      padding: 0;
      background: var(--moss);
      color: white;
      border-radius: var(--radius-full);
      border: 0;
      text-decoration: none;
      font-size: 14px;
      font-weight: 600;
      font: inherit;
      cursor: pointer;
      touch-action: manipulation;
      box-shadow: 0 12px 34px rgba(35, 79, 55, 0.30);
      transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
    }

    .cart-float:hover {
      transform: translateY(-2px) scale(1.03);
      box-shadow: 0 16px 44px rgba(35, 79, 55, 0.40);
    }

    .cart-float span {
      display: none;
    }

    .cart-float-count {
      position: absolute;
      /* 2026-06-25 floating cart badge no-overflow polish:
         keep the count badge inside the 48px round button so it cannot widen the layout box. */
      top: 0;
      right: 0;
      transform: none;
      box-sizing: border-box;
      min-width: 20px;
      height: 20px;
      padding: 0 6px;
      border-radius: 999px;
      display: grid;
      place-items: center;
      background: #d9a73a;
      color: #1f281c;
      border: 2px solid #fff;
      font-size: 11px;
      line-height: 1;
      font-weight: 900;
    }

    .cart-float.cart-pulse,
    #topCart.cart-pulse {
      animation: cartPulse 0.62s var(--ease-out);
    }

    @keyframes cartPulse {
      0% { transform: scale(1); }
      32% { transform: scale(1.11); box-shadow: 0 18px 48px rgba(35,79,55,0.36); }
      100% { transform: scale(1); }
    }


    .contact-float {
      position: fixed;
      right: 18px;
      bottom: 138px;
      z-index: var(--z-side-panel);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 48px;
      height: 48px;
      border: 1px solid rgba(255,255,255,0.72);
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.94);
      color: var(--moss);
      box-shadow: 0 12px 34px rgba(31, 40, 28, 0.18);
      cursor: pointer;
      touch-action: manipulation;
      backdrop-filter: blur(14px);
    }

    .contact-float svg {
      width: 22px;
      height: 22px;
      stroke: currentColor;
      stroke-width: 2.1;
      fill: none;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .contact-float span {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    html[dir="rtl"] .contact-float {
      right: auto;
      left: 18px;
    }

    body.cart-open .contact-float,
    body.mobile-builder-active .contact-float,
    body.canvas-fullscreen-open .contact-float {
      display: none !important;
    }

    body.cart-open .contact-popover,
    body.mobile-builder-active .contact-popover,
    body.canvas-fullscreen-open .contact-popover {
      display: none !important;
    }

    body.cart-open .fullscreen-quick-actions {
      display: none !important;
    }

    body.cart-open .cart-fly,
    body.cart-open .cart-success-burst {
      display: none !important;
    }

    .fullscreen-quick-actions {
      display: none;
      position: fixed;
      top: max(52px, calc(env(safe-area-inset-top) + 52px));
      right: max(8px, env(safe-area-inset-right));
      z-index: var(--z-tooltip);
      gap: 6px;
      align-items: center;
      justify-content: flex-end;
      pointer-events: none;
    }

    .fullscreen-quick-actions .pill-button {
      pointer-events: auto;
      min-width: 92px;
      height: 34px;
      padding: 0 10px;
      border-radius: 999px;
      box-shadow: 0 10px 26px rgba(31, 40, 28, 0.18);
    }

    body.canvas-fullscreen-open .fullscreen-quick-actions {
      display: flex;
    }

    html[dir="rtl"] .fullscreen-quick-actions {
      right: auto;
      left: max(8px, env(safe-area-inset-left));
    }

    .cart-fly {
      position: fixed;
      left: 0;
      top: 0;
      z-index: var(--z-tooltip);
      width: 58px;
      height: 58px;
      margin: -29px 0 0 -29px;
      border-radius: 18px;
      overflow: hidden;
      pointer-events: none;
      background: rgba(255,253,247,0.92);
      border: 1px solid rgba(226,218,198,0.9);
      box-shadow: 0 18px 42px rgba(31, 40, 28, 0.22);
      transition: transform 0.74s cubic-bezier(.18,.9,.2,1), opacity 0.74s ease;
      will-change: transform, opacity;
    }

    .cart-fly img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .cart-fly span {
      width: 100%;
      height: 100%;
      display: grid;
      place-items: center;
      color: var(--moss);
      font-size: 24px;
      font-weight: 900;
    }

    .cart-success-burst {
      position: fixed;
      left: 0;
      top: 0;
      z-index: var(--z-tooltip);
      transform: translate(-50%, -50%) translateY(10px) scale(0.92);
      padding: 9px 14px;
      border-radius: 999px;
      pointer-events: none;
      background: linear-gradient(135deg, rgba(31,107,69,0.96), rgba(205,159,55,0.96));
      color: #fffdf7;
      border: 1px solid rgba(255,255,255,0.48);
      box-shadow: 0 18px 38px rgba(31, 40, 28, 0.24);
      font-size: 13px;
      font-weight: 800;
      opacity: 0;
      transition: transform 0.72s var(--ease-out), opacity 0.72s ease;
    }

    .cart-success-burst.show {
      transform: translate(-50%, -50%) translateY(-22px) scale(1);
      opacity: 1;
    }

    .mobile-builder-cta {
      display: none;
    }

    .mobile-builder-inline-cta {
      display: none;
    }

    .homepage-config-storage {
      display: none !important;
    }

    .contact-popover {
      /* 2026-06-24 homepage contact recovery popover hit target lock:
         keep support recovery cards above hero/section stacking contexts. */
      position: fixed;
      right: 18px;
      bottom: 78px;
      z-index: var(--z-dropdown);
      width: min(320px, calc(100vw - 32px));
      padding: 14px;
      border: 1px solid rgba(227, 222, 210, 0.92);
      border-radius: var(--radius);
      background: rgba(255, 255, 255, 0.96);
      box-shadow: 0 24px 70px rgba(31, 40, 28, 0.18);
      transform: translateY(10px) scale(0.98);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s;
    }

    .contact-popover.show {
      opacity: 1;
      visibility: visible;
      transform: translateY(0) scale(1);
      pointer-events: auto;
      transition-delay: 0s;
    }

    .contact-popover h3 {
      margin: 0 0 4px;
      font-size: 16px;
      letter-spacing: 0;
    }

    .contact-popover p {
      margin: 0 0 12px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.6;
    }

    .contact-option {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      min-height: 44px;
      padding: 10px 12px;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      color: var(--ink);
      background: rgba(248, 245, 239, 0.72);
      text-decoration: none;
      font-size: 13px;
      font-weight: 700;
      visibility: hidden;
      pointer-events: none;
      touch-action: manipulation;
    }

    .contact-popover.show .contact-option {
      visibility: visible;
      pointer-events: auto;
    }

    .contact-option + .contact-option { margin-top: 8px; }

    .contact-option small {
      display: block;
      margin-top: 2px;
      color: var(--muted);
      font-weight: 500;
      line-height: 1.4;
    }

    .contact-option strong { color: var(--moss); }

    .contact-popover-note {
      margin-top: 10px;
      padding: 10px 12px;
      border-radius: var(--radius);
      background: #edf6ef;
      color: var(--moss);
      font-size: 12px;
      line-height: 1.5;
      font-weight: 700;
    }

	    @media (max-width: 540px) {
      .contact-float {
        right: auto;
        left: 14px;
        bottom: max(16px, calc(env(safe-area-inset-bottom) + 16px));
        width: 44px;
        height: 44px;
      }

      html[dir="rtl"] .contact-float {
        left: auto;
        right: 14px;
      }

      .fullscreen-quick-actions {
        top: max(50px, calc(env(safe-area-inset-top) + 50px));
        left: 8px;
        right: 8px;
        justify-content: flex-end;
      }

      html[dir="rtl"] .fullscreen-quick-actions {
        left: 8px;
        right: 8px;
        justify-content: flex-start;
      }

      .fullscreen-quick-actions .pill-button {
        flex: 0 1 auto;
        min-width: 0;
        max-width: 44vw;
        height: 32px;
        padding: 0 9px;
        font-size: 11px;
      }

      .designer-sign-panel .mobile-share-quick {
        display: grid !important;
      }

      .designer-sign-panel .share-buttons {
        padding-top: 2px;
      }

      .designer-sign-panel .share-buttons button {
        min-height: 32px;
      }

      .design-companion {
        position: fixed !important;
        left: 12px !important;
        right: 12px !important;
        top: auto !important;
        bottom: max(88px, calc(env(safe-area-inset-bottom) + 88px)) !important;
        width: auto !important;
        max-width: none !important;
        transform: translateY(8px) scale(0.98) !important;
      }

      .design-companion.show {
        transform: translateY(0) scale(1) !important;
      }

      body.mobile-tray-active .design-companion {
        bottom: max(18px, calc(env(safe-area-inset-bottom) + 18px)) !important;
      }

      body.mobile-builder-active {
	        padding-bottom: max(74px, calc(env(safe-area-inset-bottom) + 74px));
	      }
	      body.mobile-builder-active.mobile-tray-active {
	        padding-bottom: 14px;
	      }
	      .cart-float {
	        display: flex;
	        right: 14px;
	        bottom: max(16px, calc(env(safe-area-inset-bottom) + 16px));
	        width: 46px;
        height: 46px;
        border-radius: 50%;
        z-index: var(--z-side-panel);
	      }
	      .contact-popover {
	        right: 14px;
	        bottom: 74px;
	      }
	      body.mobile-builder-active .cart-float {
	        display: none;
	      }
	      body.mobile-builder-active.mobile-tray-active .cart-float {
	        display: none;
	      }
	      body.cart-open .cart-float {
	        display: none;
	      }
	      body.mobile-builder-active .mobile-builder-cta {
        display: grid !important;
	        position: fixed;
	        left: 12px;
	        right: 12px;
	        bottom: max(12px, env(safe-area-inset-bottom));
	        z-index: var(--z-side-panel);
	        grid-template-columns: minmax(0, 1fr) minmax(132px, auto);
	        align-items: center;
	        gap: 10px;
	        padding: 8px 58px 8px 9px;
	        border: 1px solid rgba(218, 225, 212, 0.96);
	        border-radius: 16px;
	        background: rgba(255, 255, 255, 0.94);
	        box-shadow: 0 18px 46px rgba(31, 40, 28, 0.18);
	        backdrop-filter: blur(16px);
	        transition: opacity 0.18s ease, transform 0.18s ease;
          pointer-events: auto;
	      }
	      body.mobile-builder-active.mobile-editor-controls-active .mobile-builder-cta,
	      body.mobile-builder-active.mobile-tray-active .mobile-builder-cta {
	        opacity: 0.98;
	        pointer-events: auto;
	        transform: none;
	      }
	      body.cart-open .mobile-builder-cta {
	        display: none;
	      }
	      .mobile-builder-cta small {
	        display: block;
	        color: var(--muted);
	        font-size: 10px;
	        font-weight: 800;
	        line-height: 1.1;
	      }
	      .mobile-builder-cta strong {
	        display: block;
	        margin-top: 2px;
	        color: var(--ink);
	        font-size: 17px;
	        line-height: 1;
	      }
	      .mobile-builder-cta .pill-button {
	        width: 100%;
	        min-width: 0;
	        height: 38px;
	        padding-inline: 14px;
	        border-radius: 12px;
	        font-size: 13px;
	      }
      .mobile-builder-cta .pill-button:disabled {
        opacity: 0.58;
        cursor: not-allowed;
        box-shadow: none;
      }
	      .mobile-builder-inline-cta {
        display: grid;
		        grid-template-columns: minmax(0, 1fr) minmax(132px, auto);
		        align-items: center;
        gap: 8px;
        order: 3;
        padding: 8px;
        border: 1px solid rgba(218, 225, 212, 0.96);
        border-radius: 12px;
        background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,246,238,0.94));
        box-shadow: 0 12px 28px rgba(31, 40, 28, 0.08);
      }
      .mobile-builder-inline-cta small {
        display: block;
        color: var(--muted);
        font-size: 10px;
        font-weight: 800;
        line-height: 1.1;
      }
      .mobile-builder-inline-cta strong {
        display: block;
        margin-top: 2px;
        color: var(--ink);
        font-size: 17px;
        line-height: 1;
      }
	      .mobile-builder-inline-cta .pill-button {
	        width: 100%;
	        min-width: 0;
	        height: 38px;
        padding-inline: 12px;
        border-radius: 12px;
	        font-size: 13px;
	      }
	      .mobile-builder-inline-actions {
	        display: grid;
	        grid-template-columns: minmax(0, 0.72fr) minmax(0, 0.92fr) minmax(0, 1fr);
	        gap: 6px;
	        min-width: 0;
	      }
	      .mobile-builder-inline-actions .mobile-clear-design {
	        padding-inline: 6px;
	        box-shadow: none;
	      }
	      .mobile-builder-inline-actions .mobile-smart-complete {
	        border-color: rgba(35, 79, 55, 0.24);
	        background: rgba(35, 79, 55, 0.08);
	        color: var(--moss);
	        box-shadow: none;
	      }
      .mobile-builder-inline-cta .pill-button:disabled {
        opacity: 0.58;
        cursor: not-allowed;
        box-shadow: none;
      }
      #cordOptions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
	      .cord-card {
	        grid-template-columns: 1fr;
	        justify-items: center;
	        gap: 4px;
	        min-height: 38px;
	        padding: 7px 6px;
          background: #fffdf7;
          border-color: rgba(35, 79, 55, 0.18);
	      }
	      .cord-card .swatch-dot {
	        width: clamp(46px, 72%, 74px);
	        height: 10px;
	        min-width: 46px;
	      }
	      .cord-card > span:not(.swatch-dot) {
	        display: grid;
	        width: 100%;
	        min-width: 0;
          gap: 2px;
          color: var(--ink);
          font-size: 10px;
          line-height: 1.12;
	      }
	      .cord-card strong {
	        font-size: 11px;
	      }
	      .cord-card span span {
	        display: none;
	      }
        .cord-card.is-selected {
          border-color: var(--moss);
          background: rgba(239, 246, 239, 0.96);
          box-shadow: 0 0 0 2px rgba(35, 79, 55, 0.12);
        }
	    }

    .security-screen {
      position: fixed;
      inset: 0;
      z-index: var(--z-modal);
      display: none;
      place-items: center;
      padding: 24px;
      background: var(--paper);
    }

    .security-screen.show { display: grid; }

    .security-card {
      max-width: 480px;
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding: 24px;
      text-align: center;
    }

    .security-card h2 {
      font-size: 24px;
      margin-bottom: 10px;
    }

    .security-card p {
      color: var(--muted);
      line-height: 1.55;
    }

    /* ── Turnstile / Captcha ── */
    .turnstile-wrap {
      display: flex;
      justify-content: center;
      min-height: 68px;
      margin: 8px 0 0;
    }

    .turnstile-wrap:empty {
      display: none;
      min-height: 0;
      margin: 0;
    }

    .captcha-error {
      text-align: center;
      color: #c44;
      font-size: 13px;
      margin: 6px 0 0;
      padding: 6px 12px;
      background: #fff5f5;
      border: 1px solid #fcc;
      border-radius: 6px;
    }

    .cart-drawer {
      position: fixed;
      inset: 0;
      z-index: var(--z-modal);
      pointer-events: none;
    }

    .cart-drawer[aria-hidden="true"] {
      display: none;
    }

    .cart-drawer.open {
      display: block;
      pointer-events: auto;
    }

    body.cart-open {
      overflow: hidden;
    }

    .cart-backdrop {
      position: absolute;
      inset: 0;
      background: rgba(29, 33, 28, 0.34);
      opacity: 0;
      transition: opacity 0.2s ease;
    }

    .cart-drawer.open .cart-backdrop { opacity: 1; }

    .cart-panel {
      position: absolute;
      top: 0;
      right: 0;
      width: min(460px, 100%);
      height: var(--cart-viewport-height, 100dvh);
      max-height: var(--cart-viewport-height, 100dvh);
      background: var(--paper);
      border-left: 1px solid var(--line);
      box-shadow: var(--shadow);
      transform: translateX(102%);
      transition: transform 0.3s var(--ease);
      display: flex;
      flex-direction: column;
    }

    .cart-drawer.open .cart-panel { transform: translateX(0); }

    .cart-head,
    .cart-footer {
      padding: 18px;
      background: rgba(255, 255, 255, 0.8);
      border-bottom: 1px solid var(--line);
    }

    .cart-footer {
      flex: 0 0 auto;
      display: grid;
      gap: 10px;
      border-top: 1px solid var(--line);
      border-bottom: 0;
      padding-bottom: max(18px, calc(env(safe-area-inset-bottom) + 14px));
    }

	    .cart-head {
	      display: flex;
      justify-content: space-between;
      align-items: flex-start;
	      gap: 16px;
	    }

	    .cart-head #closeCart {
	      width: 44px;
	      min-width: 44px;
	      height: 44px;
	      min-height: 44px;
	      flex: 0 0 44px;
	    }

    .cart-head h2 {
      font-size: 22px;
      margin-top: 4px;
    }

    .cart-body {
      padding: 18px;
      flex: 1 1 auto;
      min-height: 0;
      overflow: auto;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;
      display: grid;
      gap: 16px;
    }

    .cart-items-list {
      display: grid;
      gap: 8px;
    }

    .cart-empty {
      padding: 12px;
      border: 1px dashed rgba(35, 79, 55, 0.20);
      border-radius: var(--radius);
      background: rgba(255,255,255,0.72);
      color: var(--muted);
      font-size: 13px;
      line-height: 1.45;
      display: grid;
      gap: 10px;
    }

    .cart-empty .cart-empty-add {
      justify-self: start;
      min-height: 38px;
      padding-inline: 14px;
    }

    .cart-drawer.cart-empty-no-checkout [data-cart-requires-items] {
      display: none !important;
    }

    .cart-item-row {
      display: grid;
      grid-template-columns: 78px minmax(0, 1fr) auto;
      gap: 10px;
      align-items: center;
      padding: 11px 12px;
      border: 1px solid rgba(221, 226, 216, 0.86);
      border-radius: var(--radius);
      background: rgba(255,255,255,0.86);
    }

	    .cart-item-thumb {
	      width: 78px;
	      aspect-ratio: 1.24;
	      border-radius: 10px;
	      overflow: hidden;
		      position: relative;
		      background:
		        /* 2026-06-22 cart preview neutral material backdrop lock: no generated silk-tray image. */
		        radial-gradient(circle at 50% 45%, rgba(255,255,255,0.78), rgba(244,236,221,0.48) 46%, rgba(218,198,165,0.28)),
		        linear-gradient(135deg, #fffdf8 0%, #f7f0e3 52%, #eadcc4 100%);
      border: 1px solid rgba(221, 226, 216, 0.88);
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.70), 0 8px 18px rgba(31,40,28,0.08);
    }

	    .cart-item-thumb img {
	      width: 100%;
	      height: 100%;
	      display: block;
	      object-fit: cover;
	    }

	    .cart-thumb-label {
	      position: absolute;
	      left: 5px;
	      bottom: 5px;
	      max-width: calc(100% - 10px);
	      padding: 2px 6px;
	      border-radius: 999px;
	      background: rgba(255, 253, 247, 0.92);
	      color: #2f6b48;
	      border: 1px solid rgba(47, 107, 72, 0.18);
	      box-shadow: 0 3px 10px rgba(31, 40, 28, 0.08);
	      font-size: 9px;
	      line-height: 1.2;
	      font-weight: 950;
	      white-space: nowrap;
	      overflow: hidden;
	      text-overflow: ellipsis;
	      pointer-events: none;
	    }

    .cart-item-thumb.creative-pass-thumb {
      display: grid;
      place-items: center;
      color: #fffdf7;
      background: linear-gradient(135deg, #234f37, #b58a26);
      font-weight: 950;
      letter-spacing: 0;
    }

    .cart-footer .pill-button.primary {
      min-height: 46px;
      font-weight: 900;
    }

    .cart-item-row strong {
      display: block;
      color: var(--ink);
      font-size: 13px;
      line-height: 1.25;
    }

    .cart-item-row small {
      display: block;
      margin-top: 3px;
      color: var(--muted);
      font-size: 11px;
      line-height: 1.35;
    }

    .cart-item-actions {
      display: flex;
      align-items: center;
      gap: 6px;
    }

    @media (max-width: 520px) {
      .cart-panel {
        width: 100vw;
        max-width: 100vw;
        height: var(--cart-viewport-height, 100dvh);
        max-height: var(--cart-viewport-height, 100dvh);
      }
      .cart-head,
      .cart-footer {
        padding: 12px;
      }
      .cart-footer {
        padding-bottom: max(14px, calc(env(safe-area-inset-bottom) + 12px));
      }
      .cart-head h2 {
        font-size: 19px;
      }
      .cart-body {
        padding: 12px;
        gap: 12px;
      }
      .cart-item-row {
        grid-template-columns: 66px minmax(0, 1fr) auto;
        gap: 8px;
        padding: 9px;
      }
	      .cart-item-thumb { width: 66px; border-radius: 8px; }
	      .cart-thumb-label {
	        left: 4px;
	        bottom: 4px;
	        max-width: calc(100% - 8px);
	        padding: 2px 5px;
	        font-size: 8px;
	      }
      .cart-item-actions {
        display: grid;
        justify-items: end;
      }
      .cart-footer {
        gap: 8px;
      }
      .cart-footer .pill-button {
        min-height: 42px;
      }
      .turnstile-wrap {
        min-height: 42px;
        margin-top: 2px;
      }
    }

    .cart-item-actions button {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      border: 1px solid var(--line);
      background: #fff;
      color: var(--ink);
      cursor: pointer;
      font-weight: 900;
    }

    .option-grid {
      display: grid;
      gap: 10px;
    }

    .option-card {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: var(--white);
      padding: 12px;
      display: grid;
      grid-template-columns: auto 1fr auto;
      gap: 10px;
      align-items: center;
      cursor: pointer;
      position: relative;
      transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
    }

    .option-card input { accent-color: var(--moss); }

    .option-card > strong:last-child {
      justify-self: end;
      white-space: nowrap;
      padding-left: 4px;
    }

    .option-card:has(input:checked:not(:disabled)) {
      border-color: rgba(35, 79, 55, 0.72);
      background: linear-gradient(180deg, rgba(247, 251, 246, 0.98), rgba(255, 255, 255, 0.96));
      box-shadow: inset 0 0 0 2px rgba(35, 79, 55, 0.10), 0 8px 20px rgba(35, 79, 55, 0.08);
    }

    .option-card:has(input:checked:not(:disabled))::after {
      content: "✓";
      position: absolute;
      top: 50%;
      left: 11px;
      transform: translateY(-50%);
      min-width: 18px;
      height: 18px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 999px;
      background: var(--moss);
      color: #fff;
      font-size: 10px;
      font-weight: 900;
      line-height: 1;
      pointer-events: none;
    }

    .option-card strong {
      display: block;
      font-size: 14px;
    }

	    .option-card span {
	      color: var(--muted);
	      font-size: 12px;
	      line-height: 1.35;
	    }

    .option-card > span:not(.swatch-dot) {
      min-width: 0;
    }

    .cart-selected-note {
      margin: 8px 0 0;
      padding: 7px 9px;
      border: 1px solid rgba(35, 79, 55, 0.16);
      border-radius: 10px;
      background: rgba(238, 244, 236, 0.72);
      color: var(--moss);
      font-size: 12px;
      font-weight: 850;
      line-height: 1.3;
    }

    .cart-config-section {
      min-width: 0;
    }
	
	    #cordOptions {
	      grid-template-columns: repeat(3, minmax(0, 1fr));
	      gap: 8px;
	    }
	
	    .cord-card {
	      position: relative;
	      grid-template-columns: 1fr;
	      justify-items: center;
	      text-align: center;
		      gap: 6px;
		      min-height: 64px;
	      min-width: 0;
	      padding: 8px 6px;
	      overflow: hidden;
        background: #fffdf7;
        border-color: rgba(35, 79, 55, 0.18);
	    }

	    .cord-card input {
	      position: absolute;
	      inset: 0;
	      opacity: 0;
	    }
	
	    .cord-card > strong {
	      display: none;
	    }

    .cord-card > span:not(.swatch-dot) {
      display: grid;
      width: 100%;
      min-width: 0;
      gap: 2px;
    }

    .cord-card span strong {
      white-space: nowrap;
      font-size: 12px;
      line-height: 1.18;
    }

    .cord-card span span {
      display: block;
      margin-top: 2px;
      color: rgba(73, 78, 66, 0.82);
      font-size: 10px;
      font-weight: 750;
      line-height: 1.15;
      white-space: nowrap;
    }

    .cord-card.is-selected {
      border-color: var(--moss);
      background: rgba(239, 246, 239, 0.98);
      box-shadow: 0 0 0 2px rgba(35, 79, 55, 0.12);
    }
		
		    .cord-card .swatch-dot {
		      position: relative;
		      width: clamp(52px, 72%, 78px);
		      height: 10px;
		      min-width: 52px;
		      border-radius: 999px;
		      background:
		        linear-gradient(180deg, rgba(255,255,255,0.68), rgba(255,255,255,0) 38%),
		        linear-gradient(90deg, rgba(255,255,255,0.52), transparent 18%, transparent 82%, rgba(0,0,0,0.10)),
		        var(--swatch);
		      border: 1px solid rgba(31, 40, 28, 0.26);
		      box-shadow:
		        inset 0 1px 2px rgba(255,255,255,0.85),
		        inset 0 -1px 1px rgba(31,40,28,0.10),
		        0 5px 10px rgba(31,40,28,0.10);
		    }

	    .cord-card .swatch-dot::after {
	      content: "";
	      position: absolute;
	      left: 5px;
	      right: 5px;
	      top: 50%;
	      height: 1px;
	      transform: translateY(-50%);
	      background: rgba(31, 40, 28, 0.18);
	      border-radius: 999px;
	      opacity: 0.62;
	    }

	    .cord-card:has(input:checked:not(:disabled))::after {
	      top: 7px;
	      right: 7px;
	      left: auto;
	      transform: none;
	    }

    #packagingOptions {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }

    .package-card {
      grid-template-columns: 46px minmax(0, 1fr);
      grid-template-rows: minmax(34px, auto) auto;
      align-content: center;
      gap: 3px 9px;
      min-width: 0;
      min-height: 82px;
      padding: 9px;
      overflow: hidden;
    }

    .package-card input {
      position: absolute;
      inset: 0;
      opacity: 0;
    }

    .package-card > span:not(.package-swatch) {
      grid-column: 2;
      grid-row: 1;
      min-width: 0;
    }

    .package-card > span:not(.package-swatch) strong,
    .package-card > span:not(.package-swatch) span {
      display: -webkit-box;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .package-card > span:not(.package-swatch) strong {
      -webkit-line-clamp: 2;
      font-size: 12px;
      line-height: 1.2;
    }

    .package-card > span:not(.package-swatch) span {
      -webkit-line-clamp: 2;
      margin-top: 2px;
      font-size: 9.5px;
      line-height: 1.2;
    }

    .package-card > strong:last-child {
      grid-column: 2;
      grid-row: 2;
      justify-self: start;
      padding: 0;
      color: var(--moss);
      font-size: 11px;
    }

    .package-card:has(input:checked:not(:disabled))::after {
      top: 6px;
      right: 6px;
      left: auto;
      transform: none;
    }

    .package-card .package-swatch {
      grid-column: 1;
      grid-row: 1 / span 2;
      align-self: center;
      width: 46px;
      height: 46px;
      aspect-ratio: 1 / 1;
      border-radius: 7px;
      border: 1px solid rgba(221, 226, 216, 0.72);
      display: block;
      position: relative;
      overflow: hidden;
      background:
        radial-gradient(circle at 54% 28%, rgba(255, 255, 255, 0.86), transparent 22%),
        linear-gradient(145deg, var(--package-bg), var(--package-shadow));
      box-shadow: inset 0 0 0 1px rgba(255,255,255,0.5), 0 7px 18px rgba(42, 55, 44, 0.08);
    }

    .package-card .package-swatch::before,
    .package-card .package-swatch::after {
      content: "";
      position: absolute;
      left: 16%;
      right: 16%;
      border-radius: 999px;
      background: var(--package-ribbon);
      box-shadow: 0 1px 5px rgba(42, 55, 44, 0.16);
    }

    .package-card .package-swatch::before {
      top: 26%;
      height: 8px;
    }

    .package-card .package-swatch::after {
      bottom: 22%;
      height: 8px;
      opacity: 0.82;
    }

    .package-swatch-white {
      --package-bg: #fffdf8;
      --package-shadow: #ece3d5;
      --package-ribbon: #a3292c;
    }

    .package-swatch-standard {
      --package-bg: #f4f1e9;
      --package-shadow: #d8d2c4;
      --package-ribbon: #5d715f;
    }

    .package-swatch-red {
      --package-bg: #7c1f2b;
      --package-shadow: #351217;
      --package-ribbon: #f4e7c5;
    }

    .package-swatch-pink {
      --package-bg: #f5cbd5;
      --package-shadow: #dfa0ae;
      --package-ribbon: #e68aa2;
    }

    .swatch-options {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }

    .swatch-card {
      border: 1px solid var(--line);
      border-radius: var(--radius);
      background: rgba(255,255,255,0.92);
      padding: 9px;
      display: flex;
      align-items: center;
      gap: 8px;
      cursor: pointer;
      font-size: 12px;
      font-weight: 800;
      color: var(--ink);
      position: relative;
      transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
    }

    .swatch-card input { accent-color: var(--moss); }

    .swatch-card.is-selected,
    .swatch-card:has(input:checked) {
      border-color: rgba(35, 79, 55, 0.72);
      background: linear-gradient(180deg, rgba(247, 251, 246, 0.98), rgba(255,255,255,0.96));
      box-shadow: inset 0 0 0 2px rgba(35, 79, 55, 0.10), 0 8px 18px rgba(35,79,55,0.08);
    }

    .swatch-card.is-selected::after,
    .swatch-card:has(input:checked)::after {
      content: "✓";
      position: absolute;
      top: 5px;
      right: 5px;
      width: 16px;
      height: 16px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 999px;
      background: var(--moss);
      color: #fff;
      font-size: 10px;
      font-weight: 900;
      line-height: 1;
    }

    .swatch-dot {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      border: 1px solid rgba(31,40,28,0.18);
      background: var(--swatch);
      box-shadow: inset 0 1px 4px rgba(255,255,255,0.65);
      flex: 0 0 auto;
    }

	    .gift-card-live {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 118px;
      gap: 12px;
      align-items: center;
      padding: 12px;
      border: 1px solid rgba(221, 226, 216, 0.90);
      border-radius: var(--radius);
	      background:
	        /* 2026-06-22 gift card neutral material backdrop lock: no generated silk-tray image. */
	        linear-gradient(135deg, rgba(255,255,255,0.96), rgba(249,244,235,0.92)),
	        radial-gradient(circle at 70% 30%, rgba(255,255,255,0.72), rgba(255,255,255,0) 34%),
	        linear-gradient(135deg, #fffdf8 0%, #f7f0e3 52%, #eadcc4 100%);
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.86), 0 14px 32px rgba(31,40,28,0.08);
    }

    .gift-card-copy {
      min-width: 0;
    }

    .gift-card-copy strong {
      display: block;
      color: var(--ink);
      font-family: "Cormorant Garamond", serif;
      font-size: 20px;
      line-height: 1.08;
    }

    .gift-card-copy span {
      display: block;
      margin-top: 4px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.35;
    }

    .gift-card-mini {
      aspect-ratio: 1.48;
      border-radius: 10px;
      padding: 10px;
      background:
        radial-gradient(circle at 78% 18%, rgba(210, 180, 120, 0.25), transparent 34%),
        linear-gradient(145deg, #fffdf8, #f1e7d8);
      border: 1px solid rgba(179, 148, 99, 0.28);
      box-shadow: 0 12px 26px rgba(31,40,28,0.12);
      color: #173d2b;
      display: grid;
      align-content: space-between;
      overflow: hidden;
    }

    .gift-card-mini small {
      color: #8a7a5d;
      font-size: 9px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .gift-card-mini b {
      font-family: "Cormorant Garamond", serif;
      font-size: 16px;
      line-height: 1.05;
    }

    .gift-card-mini em {
      display: block;
      color: #8a7a5d;
      font-size: 10px;
      line-height: 1.25;
      font-style: normal;
      max-height: 25px;
      overflow: hidden;
    }

    @media (max-width: 520px) {
      .purchase-path-card {
        grid-template-columns: 108px minmax(0, 1fr);
        min-height: 124px;
      }

      .purchase-path-card img {
        min-height: 124px;
      }

      .purchase-path-body strong {
        font-size: 14px;
        overflow-wrap: anywhere;
      }

      .purchase-path-body span {
        font-size: 11px;
        line-height: 1.45;
      }

      #cordOptions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .cord-card {
        grid-template-columns: 1fr;
      }

      .gift-card-live {
        grid-template-columns: 1fr;
      }

      .gift-card-mini {
        width: min(190px, 100%);
      }
    }

    .customer-form {
      display: grid;
      gap: 10px;
    }

    .form-grid-two {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }

    .field.full {
      grid-column: 1 / -1;
    }

    .cart-footer {
      margin-top: auto;
      flex: 0 0 auto;
      border-top: 1px solid var(--line);
      border-bottom: 0;
      display: grid;
      gap: 10px;
      position: sticky;
      bottom: 0;
      z-index: var(--z-local-raised);
      background: rgba(255,255,255,0.97);
      box-shadow: 0 -18px 36px rgba(31, 40, 28, 0.08);
    }

	    .checkout-total {
	      display: flex;
	      justify-content: space-between;
	      align-items: end;
	    }

	    .checkout-total > div {
	      display: grid;
	      gap: 2px;
	      min-width: 0;
	    }

	    .checkout-total span {
	      color: var(--muted);
	      font-size: 12px;
	      text-transform: uppercase;
	    }

	    .checkout-total .cart-tax-estimate {
	      text-transform: none;
	      color: var(--moss);
	      font-size: 11px;
	      line-height: 1.35;
	    }

	    .checkout-total strong {
	      color: var(--moss);
	      font-size: 30px;
	    }

    @media (max-width: 540px) {
      .cart-panel {
        position: fixed;
        inset: 0 0 auto 0;
        width: 100%;
        height: var(--cart-viewport-height, 100dvh);
        max-height: var(--cart-viewport-height, 100dvh);
        border-left: 0;
        display: grid;
        grid-template-rows: auto minmax(0, 1fr) auto;
        overflow: hidden;
      }

      .cart-head {
        flex: 0 0 auto;
        align-items: center;
        padding: 11px 12px;
        gap: 10px;
      }

      .cart-head h2 {
        margin-top: 2px;
        font-size: 18px;
        line-height: 1.08;
      }

      .cart-head .tool-note {
        display: none;
      }

      .cart-body {
        flex: 1 1 auto;
        min-height: 0;
        padding: 10px;
        gap: 10px;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
      }

      .cart-items-list,
      .option-grid {
        gap: 6px;
      }

      .cart-empty {
        padding: 10px;
        border-radius: 10px;
      }

      .cart-item-row {
        grid-template-columns: 54px minmax(0, 1fr) auto;
        gap: 7px;
        padding: 8px;
        border-radius: 10px;
      }

      .cart-item-thumb {
        width: 54px;
        border-radius: 8px;
      }

      .cart-item-row strong {
        font-size: 12px;
      }

      .cart-item-row small {
        font-size: 10px;
        line-height: 1.28;
      }

      .cart-item-actions {
        flex-direction: column;
        align-items: flex-end;
        gap: 4px;
      }

      .cart-item-actions button {
        width: 32px;
        height: 32px;
      }

      .option-card {
        grid-template-columns: auto minmax(0, 1fr) auto;
        min-height: 42px;
        padding: 8px;
        gap: 8px;
        border-radius: 10px;
      }

      .option-card strong {
        font-size: 12.5px;
      }

	      .option-card span {
	        font-size: 10.5px;
	      }

	      #cordOptions .cord-card {
	        grid-template-columns: minmax(0, 1fr);
	        grid-auto-rows: auto;
	        justify-items: center;
	        text-align: center;
	        min-height: 66px;
	        padding: 8px 6px;
	        gap: 6px;
	      }

	      #cordOptions .cord-card > .swatch-dot,
	      #cordOptions .cord-card > span:not(.swatch-dot) {
	        grid-column: 1;
	      }

	      #cordOptions .cord-card > .swatch-dot {
	        grid-row: 1;
	        justify-self: center;
	      }

	      #cordOptions .cord-card > span:not(.swatch-dot) {
	        grid-row: 2;
	        width: 100%;
	        min-width: 0;
	        justify-self: stretch;
	        text-align: center;
	      }

	      #cordOptions .cord-card > strong:last-child {
	        display: none;
	      }

	      #cordOptions .cord-card span strong {
	        font-size: 11.5px;
	        line-height: 1.18;
	        white-space: normal;
	        overflow-wrap: anywhere;
	      }

	      #cordOptions .cord-card span span {
	        font-size: 9.5px;
	        line-height: 1.16;
	        white-space: normal;
	        overflow-wrap: anywhere;
	      }

	      .package-card {
	        grid-template-columns: 44px minmax(0, 1fr);
	        min-height: 78px;
	        padding: 8px;
	      }

	      .package-card .package-swatch {
	        width: 44px;
	        height: 44px;
	      }

      .checkout-preferences .tool-note,
      .gift-card-live {
        display: none;
      }

      .cart-footer {
        flex: 0 0 auto;
        position: relative;
        bottom: auto;
        grid-template-columns: minmax(0, 1fr);
        padding: 9px 12px max(10px, calc(env(safe-area-inset-bottom) + 8px));
        gap: 7px;
        background: rgba(255,255,255,0.97);
      }

      .checkout-total {
        grid-column: 1 / -1;
        align-items: center;
        gap: 10px;
      }

      .checkout-total span {
        font-size: 10.5px;
        line-height: 1.2;
      }

      .checkout-total strong {
        font-size: 22px;
      }

      #deliveryText {
        max-width: 52%;
        text-align: right;
      }

      #placeOrder {
        grid-column: 1 / -1;
        width: 100%;
        min-width: 0;
        min-height: 46px;
        font-size: 14px;
        justify-content: center;
      }

      /* 2026-06-21 mobile cart continue-design recovery:
         keep the checkout escape hatch visible instead of hiding it below the fold. */
      #continueDesign {
        grid-column: 1 / -1;
        display: inline-flex;
        width: 100%;
        min-width: 0;
        min-height: 46px;
        padding-inline: 10px;
        justify-content: center;
        font-size: 13px;
        white-space: normal;
        line-height: 1.2;
        overflow-wrap: anywhere;
      }

      html[data-commercial-offer-state="pending"] .cart-footer {
        grid-template-columns: minmax(0, 1fr);
      }

      html[data-commercial-offer-state="pending"] .cart-footer #placeOrder,
      html[data-commercial-offer-state="pending"] .cart-footer #continueDesign {
        grid-column: 1 / -1;
        width: 100%;
        min-width: 0;
        white-space: normal;
        line-height: 1.2;
        overflow-wrap: anywhere;
      }

      .turnstile-wrap,
      .captcha-error {
        grid-column: 1 / -1;
      }

      body.cart-open .mobile-builder-inline-cta {
        display: none !important;
      }
    }

    @media (max-width: 360px) {
      #packagingOptions {
        grid-template-columns: minmax(0, 1fr);
      }

      .package-card {
        min-height: 68px;
      }
    }

    @media (min-width: 1540px) {
      .builder {
        grid-template-columns: minmax(292px, 336px) minmax(780px, 1fr) minmax(292px, 340px);
        gap: 16px;
      }

      .catalog {
        gap: 10px;
      }
    }

    @media (max-width: 1280px) {
      .hero { grid-template-columns: 1fr; gap: 28px; text-align: center; }
      .hero-content { margin: 0 auto; }
      .hero-cta { justify-content: center; }
      .hero-visual { max-width: 360px; margin: 0 auto; }
      .how-it-works { grid-template-columns: 1fr; }
      .how-header { border-right: none; border-bottom: 1px solid rgba(226, 223, 213, 0.82); padding: 0 0 18px; text-align: center; align-items: center; }
      .purchase-paths-inner { grid-template-columns: 1fr; }
      .purchase-path-copy { max-width: 760px; }
      .builder {
        grid-template-columns: minmax(230px, 265px) minmax(0, 1fr) minmax(236px, 278px);
        gap: 10px;
        padding-inline: 10px;
      }
      .design-canvas { min-height: min(590px, calc(100vh - 220px)); }

      .footer-grid { grid-template-columns: 1fr 1fr; }
    }

    @media (min-width: 1181px) and (max-width: 1280px) {
      .topbar .brand-lockup > span[data-i18n="tagline"] { display: none; }
      .hero {
        grid-template-columns: minmax(0, 0.96fr) minmax(320px, 1.04fr);
        gap: clamp(32px, 5vw, 64px);
        text-align: left;
        min-height: clamp(420px, 45vh, 560px);
      }
      .hero-content { margin: 0; }
      .hero-cta { justify-content: flex-start; }
      .hero-visual { max-width: none; margin: 0; }
      .how-it-works {
        grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
      }
      .how-header {
        border-right: 1px solid rgba(226, 223, 213, 0.82);
        border-bottom: 0;
        padding: 0 clamp(10px, 2vw, 24px) 0 0;
        text-align: left;
        align-items: flex-start;
      }
	      .builder {
	        grid-template-columns: minmax(214px, 246px) minmax(0, 1fr) minmax(220px, 260px);
	        gap: 8px;
	        padding-block: 10px;
	      }
	      .left-panel .panel-header {
	        padding: 10px 12px 7px;
	      }
	      .left-panel .panel-header h2 {
	        font-size: 17px;
	      }
	      .left-panel .panel-header p {
	        display: none;
	      }
	      .left-panel .tabs,
	      .left-panel .filters {
	        gap: 5px;
	        padding: 7px 10px;
	      }
	      .left-panel .tab,
	      .left-panel .filter {
	        padding: 6px 9px;
	        font-size: 12px;
	      }
	      .left-panel .size-selector {
	        gap: 5px;
	        padding: 8px 10px;
	      }
	      .left-panel .size-options {
	        gap: 5px;
	      }
	      .left-panel .size-options button {
	        height: 29px;
	        font-size: 11px;
	      }
	      .left-panel .search-bar {
	        padding: 6px 10px 7px;
	      }
	      .left-panel .search-bar input {
	        height: 32px;
	      }
	      .left-panel .catalog {
	        gap: 6px;
	        padding: 8px;
	      }
	      .left-panel .product-card {
	        min-height: 82px;
	        grid-template-columns: 44px 1fr;
	        padding: 7px;
	      }
	      .left-panel .product-art {
	        width: 40px;
	        height: 40px;
	      }
	      .left-panel .product-meta,
	      .left-panel .price-line {
	        font-size: 11px;
	        line-height: 1.25;
	      }
	      .canvas-card {
	        padding: 8px;
	        gap: 7px;
	      }
      .canvas-toolbar {
        gap: 6px;
      }
      .tool-actions {
        gap: 5px;
      }
      .tool-actions .pill-button {
        height: 30px;
        padding: 0 8px;
        font-size: 11px;
      }
      .layout-toggle button,
      .mode-toggle button {
        height: 30px;
        padding: 0 9px;
        font-size: 12px;
      }
      .zoom-controls {
        display: none;
      }
	      .preset-picker {
	        display: grid;
	        grid-template-columns: minmax(0, 1fr) minmax(92px, auto);
	        align-items: center;
	        grid-column: 1 / -1;
	        width: 100%;
	        min-width: 0;
	        gap: 5px;
	        padding: 4px;
	        border-radius: 12px;
	      }
	      .preset-picker select {
	        min-width: 0;
	        width: 100%;
	        height: 34px;
	        font-size: 12px;
	      }
	      .preset-picker button {
	        width: 100%;
	        min-width: 92px;
	        height: 34px;
	        padding: 0 10px;
	        font-size: 12px;
	        white-space: nowrap;
	      }
      .design-canvas {
        min-height: min(390px, calc(100vh - 300px));
      }
      .canvas-length-control {
        position: static;
        width: min(100%, 360px);
        margin-top: 5px;
        padding: 7px;
        gap: 5px;
        border-radius: 8px;
        background: rgba(255, 255, 255, 0.94);
      }
      .wrist-comfort-tip {
        display: -webkit-box;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
      }
      .designer-sign-panel {
        padding: 8px;
        gap: 6px;
      }
      .right-panel .summary {
        padding: 12px;
      }
      .right-panel .summary > p,
      .right-panel .value-stack,
      .right-panel #exportBrief {
        display: none;
      }
      .right-panel .total {
        margin-top: 12px;
      }
      .right-panel .quote-flow {
        margin-top: 10px;
        padding: 9px;
      }
      .right-panel .line-items {
        padding: 10px 12px;
        gap: 6px;
      }
      .right-panel .checkout {
        padding: 12px;
        gap: 8px;
      }
      .right-panel .checkout-nudge {
        padding: 8px 10px;
        font-size: 11px;
      }
      .right-panel .checkout .pill-button.primary {
        height: 44px;
      }
      .signature-field input {
        height: 34px;
      }
      .signature-preview {
        font-size: 22px;
        max-width: 180px;
      }
    }

    @media (max-width: 1180px) {
      .nav { display: none; }

      .builder {
        grid-template-columns: minmax(220px, 270px) minmax(0, 1fr);
        align-items: start;
      }

      .left-panel {
        display: block;
        order: 1;
        position: static;
        top: auto;
        max-height: calc(100vh - 92px);
      }
      .center-stage { order: 2; }
      .right-panel {
        order: 3;
        grid-column: 1 / -1;
      }

	      .right-panel {
	        position: static;
	        max-height: none;
	      }
	      .right-panel .checkout {
	        position: static;
	        box-shadow: none;
	      }

      .left-panel .panel-header {
        padding: 8px 10px 6px;
      }

      .left-panel .panel-header h2 {
        font-size: 16px;
      }

      .left-panel .panel-header p {
        display: none;
      }

      .left-panel .tabs,
      .left-panel .filters {
        gap: 4px;
        padding: 6px 8px;
      }

      .left-panel .filters {
        display: none;
      }

      .left-panel .tab,
      .left-panel .filter {
        padding: 5px 7px;
        font-size: 11px;
      }

      .left-panel .size-selector {
        gap: 4px;
        padding: 6px 8px;
      }

      .left-panel .size-selector-head {
        font-size: 10.5px;
      }

      .left-panel .size-options {
        gap: 4px;
      }

      .left-panel .size-options button {
        height: 26px;
        font-size: 11px;
      }

      .left-panel .search-bar {
        padding: 5px 8px 6px;
      }

      .left-panel .search-bar input {
        height: 30px;
        font-size: 12px;
      }

      .catalog { grid-template-columns: 1fr; }
      .left-panel .catalog {
        gap: 5px;
        padding: 6px;
      }

      .left-panel .product-card {
        min-height: 66px;
        padding: 6px;
        grid-template-columns: 40px 1fr;
      }

      .left-panel .product-art {
        width: 36px;
        height: 36px;
      }

      .left-panel .product-size-badge {
        display: none;
      }

      .left-panel .product-top {
        align-self: center;
      }

      .left-panel .product-top > div:last-child,
      .left-panel .product-meta,
      .left-panel .price-line {
        display: none;
      }

      .left-panel .product-card h3 {
        -webkit-line-clamp: 2;
        font-size: 12px;
      }

      .left-panel .product-meta {
        font-size: 10px;
        line-height: 1.25;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
      }

      .left-panel .price-line {
        font-size: 10px;
        margin-top: 3px;
      }

      .design-canvas { min-height: min(520px, calc(100vh - 240px)); }
    }

    @media (max-width: 860px) {
      .brand { min-width: 0; }
      .hero { padding: 36px 18px; min-height: auto; grid-template-columns: 1fr; text-align: center; }
      .hero h1 { font-size: 30px; }
      .hero-content { margin: 0 auto; }
      .hero-cta { justify-content: center; }
      .hero-visual { order: -1; width: min(100%, 340px); max-width: 340px; margin: 0 auto; }
      .hero-gift-scene {
        width: min(100%, 480px);
        min-height: 330px;
      }
      .hero-gift-carousel {
        width: min(100%, 460px);
        border-radius: 14px;
      }
      .stats-bar { grid-template-columns: repeat(2, 1fr); }
      .builder { grid-template-columns: 1fr; }
      .left-panel { position: static; max-height: none; }
      .preview-layout { grid-template-columns: 1fr; }
      .design-canvas { min-height: min(500px, calc(100vh - 230px)); }
      .quick-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .section-title { display: block; }
      .section-title p { margin-top: 10px; }
      .purchase-paths { padding-inline: 14px; }
      .purchase-path-grid { grid-template-columns: 1fr; gap: 10px; }
      .purchase-path-card {
        grid-template-columns: minmax(116px, 36%) minmax(0, 1fr);
        grid-template-rows: 1fr;
        min-height: 136px;
      }
      .purchase-path-card img {
        height: 100%;
        min-height: 136px;
        aspect-ratio: auto;
      }
      .purchase-path-body { padding: 12px; }
      .brand-intro-section { grid-template-columns: 1fr; }
      .material-showcase { grid-template-columns: 1fr; }
      .gift-section { grid-template-columns: 1fr; }
      .gift-visual-grid { grid-template-columns: 1fr 1fr; }
      .gift-visual-grid img,
      .gift-visual-grid img:first-child { min-height: 220px; }
      .gift-points { grid-template-columns: 1fr; }
      .aftercare-band { grid-template-columns: 1fr; }
      .aftercare-steps { grid-template-columns: 1fr; }
      .material-grid, .review-grid, .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .ready-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
      .catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .footer-grid { grid-template-columns: 1fr; }
      .footer-bottom { flex-direction: column; text-align: center; }
      .footer-legal { justify-content: center; }
      .site-footer { padding-bottom: max(88px, calc(env(safe-area-inset-bottom) + 72px)); }
    }

    @media (hover: none), (pointer: coarse), (max-width: 860px) {
      .center-stage {
        position: static;
        top: auto;
        z-index: auto;
      }

      .canvas-card {
        position: static;
        top: auto;
        z-index: auto;
        padding: 8px;
        box-shadow: 0 16px 36px rgba(31, 40, 28, 0.12);
      }

      .design-canvas {
        min-height: min(48vh, 390px);
      }

      .bottom-tray {
        position: static;
        z-index: var(--z-local-content);
        max-height: 190px;
        border-radius: 8px 8px 0 0;
        transition: transform 0.28s var(--ease), opacity 0.22s ease;
      }

      .left-panel {
        max-height: none;
      }

      .product-card {
        cursor: pointer;
        touch-action: pan-y;
      }

      .tray-item {
        cursor: pointer;
        touch-action: pan-x;
      }

      .product-card:hover,
      .tray-item:hover {
        transform: none;
        box-shadow: none;
      }

      .price-line strong::after {
        content: "";
      }

      .designer-sign-panel {
        grid-template-columns: 1fr;
      }

      .share-buttons {
        justify-content: flex-start;
      }
    }

    @media (max-width: 540px) {
      html { scroll-padding-top: 56px; }
      .topbar { align-items: center; padding: 7px 10px; gap: 8px; }
      .top-actions .pill-button { display: none; }
      /* 2026-06-21 mobile homepage topbar tap targets:
         keep language and cart controls compact, but no longer as 36px chips. */
      .brand { flex: 1 1 148px; min-width: 0; min-height: 44px; gap: 6px; overflow: hidden; }
      .brand-mark { width: 34px; height: 34px; border-radius: 50%; }
      .brand-wordmark { display: block; width: clamp(82px, 24vw, 96px); max-width: 96px; height: auto; aspect-ratio: 560 / 170; object-fit: contain; }
      .brand-wordmark-mobile { display: none; }
      .brand-wordmark-text { font-size: 22px; }
      .brand strong { font-size: 18px; }
      .brand span { display: none; }
      .top-actions { flex: 0 0 auto; gap: 5px; min-width: 0; }
      .top-actions #wishlistButton { display: none; }
      .language-select { width: 90px; min-width: 90px; height: 44px; padding: 0 24px 0 8px; font-size: 11px; background-position: right 9px center; }
      .icon-button { width: 36px; height: 36px; }
      .top-actions #topCart {
        display: inline-flex;
        max-width: 102px;
        min-width: 44px;
        min-height: 44px;
        padding: 0 10px;
        border-radius: 999px;
        font-size: 11px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      }
	      .hero { padding: 10px 12px 16px; min-height: auto; grid-template-columns: 1fr; text-align: center; gap: 10px; }
	      .hero-content .eyebrow { margin-bottom: 6px; font-size: 9.5px; letter-spacing: 0.08em; }
	      .hero h1 { font-size: 21px; line-height: 1.12; margin-bottom: 8px; }
		      .hero p { max-width: none; margin-bottom: 10px; font-size: 12px; line-height: 1.38; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
	      .hero-cta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; width: 100%; }
	      .hero-cta .pill-button {
        /* 2026-06-22 mobile homepage public recovery tap target:
           first-screen CTAs, style-reference handoff, brand trust exits, gift return,
           and footer recovery links are purchase-path controls, not thin text links. */
        width: auto;
        min-width: 0;
        height: 44px;
        min-height: 44px;
        padding: 0 8px;
        justify-content: center;
        font-size: 12px;
        line-height: 1;
        white-space: nowrap;
        touch-action: manipulation;
      }
	      .hero-visual { order: -1; width: min(100%, 326px); max-width: 326px; margin: 0 auto; }
	      .hero-product-img { border-radius: var(--radius); }
	      .hero-gift-scene { width: 100%; min-height: 188px; }
	      .hero-gift-carousel { width: 100%; min-height: 184px; aspect-ratio: 4 / 2.55; border-radius: 13px; }
      .hero-gift-badge {
        right: 5%;
        bottom: 6%;
        font-size: 11px;
      }
		      .hero-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; margin-top: 8px; }
		      .hero-stat { padding: 6px 3px; min-height: 44px; border-right: 0; justify-content: center; display: grid; gap: 1px; }
		      .hero-stat strong { font-size: 12px; }
		      .hero-stat span { font-size: 8.5px; line-height: 1.12; }
	      .stats-bar { grid-template-columns: 1fr 1fr; }
      .stat-item { padding: 14px 10px; }
      .stat-item strong { font-size: 16px; }
      .how-it-works { padding: 18px 14px; }
      .how-steps { grid-template-columns: 1fr; gap: 8px; }
      .how-step { flex-direction: row; text-align: left; gap: 12px; min-height: auto; padding: 13px; }
      .how-step-icon { width: 36px; height: 36px; margin-bottom: 0; flex-shrink: 0; }
      .how-step-body p { max-width: none; }
      .builder {
        grid-template-columns: 1fr;
        padding: 6px 6px 18px;
        gap: 7px;
        scroll-margin-top: calc(env(safe-area-inset-top) + 72px);
      }
      .left-panel,
      #materials { display: none !important; }
      .quick-row { display: none; }
      .center-stage,
      .canvas-card,
      .preview-layout {
        min-width: 0;
      }
      .canvas-toolbar {
        display: grid;
        grid-template-columns: 1fr;
        overflow: visible;
        justify-content: stretch;
        scrollbar-width: auto;
        padding-bottom: 0;
      }
      .mode-toggle { display: none; }
      .layout-toggle { grid-column: 1 / -1; }
      .tool-actions { grid-column: 1 / -1; }
      .canvas-toolbar::-webkit-scrollbar,
      .tool-actions::-webkit-scrollbar { display: none; }
      .tool-actions {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
        overflow: visible;
        max-width: 100%;
        justify-content: stretch;
      }
      .tool-actions .pill-button,
      .preset-picker {
        min-width: 0;
      }
      .catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .product-card { min-height: 164px; padding: 10px; }
      .product-card h3 { font-size: 13px; }
      .product-meta { font-size: 11px; }
	      .canvas-card {
	        padding: 6px;
	        border-radius: 10px;
	        display: flex;
	        flex-direction: column;
	        gap: 6px;
	      }
      .canvas-toolbar { order: 1; }
      .preview-layout { order: 2; }
		      .bottom-tray { order: 3; }
		      .mobile-builder-inline-cta { order: 4; }
		      .designer-sign-panel { order: 5; }
	      .design-canvas {
	        min-height: clamp(318px, 39vh, 340px);
	        border-radius: 10px;
	      }
		      .canvas-zoom-pad {
		        left: 8px;
		        bottom: 8px;
		        padding: 4px;
		      }
	      .canvas-zoom-pad button {
	        width: 32px;
	        height: 32px;
	      }
	      .canvas-zoom-pad button[data-canvas-fit] {
	        min-width: 42px;
	        padding: 0 8px;
	      }
	      .bottom-tray {
		        display: none;
		        position: static;
		        padding: 0;
		        margin: 0;
		        max-height: 0;
		        border: 0;
		        border-radius: 10px;
		        opacity: 0;
		        pointer-events: none;
		        transform: translateY(8px);
		        box-shadow: 0 12px 28px rgba(31, 40, 28, 0.10), inset 0 1px 0 rgba(255,255,255,0.86);
		        transition: none;
		        overflow: hidden;
		      }
      body.mobile-builder-active .bottom-tray {
        display: grid;
        position: static;
        bottom: auto;
        z-index: var(--z-local-content);
        gap: 5px;
        padding: 6px;
        border: 1px solid var(--line);
        opacity: 1;
        pointer-events: auto;
	        transform: translateY(0);
			        max-height: min(382px, calc(100dvh - 360px));
      }
      .bottom-tray-head {
        font-size: 11px;
        gap: 4px;
        padding: 0 2px;
      }
      .bottom-tray-head strong {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
	      .bottom-tray-head span {
	        display: none;
	      }
	      .bottom-tray-head {
	        display: grid;
	        grid-template-columns: minmax(0, 1fr) auto;
	        align-items: center;
	      }
	      .tray-smart-complete {
	        min-width: 76px;
	        height: 28px;
	        padding: 0 9px;
	        font-size: 10.5px;
	      }
	      .tray-tools {
	        display: grid;
	        grid-template-columns: auto minmax(0, 1fr);
	        gap: 5px;
        padding: 4px 5px;
        border-radius: 9px;
      }
      .tray-tools span {
        font-size: 10px;
      }
      .tray-size-options {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(42px, 1fr));
        gap: 4px;
        min-width: 0;
        overflow: visible;
      }
      .tray-size-options button {
        min-width: 0;
        height: 25px;
        padding: 0 4px;
        font-size: 10px;
      }
	      .tray-shell {
	        display: grid;
			        grid-template-columns: 92px minmax(0, 1fr);
			        gap: 6px;
	        align-items: stretch;
	      }
	      .tray-rail {
	        display: grid;
	        align-content: start;
	        gap: 5px;
			        max-height: 292px;
	        overflow-y: auto;
	        padding: 1px 3px 1px 1px;
	        scrollbar-width: thin;
	        scrollbar-color: rgba(58, 109, 75, 0.42) transparent;
	      }
	      .tray-rail::-webkit-scrollbar { display: block; width: 4px; height: 4px; }
	      .tray-rail::-webkit-scrollbar-thumb { background: rgba(58, 109, 75, 0.36); border-radius: 999px; }
	      .tray-rail-row {
	        gap: 4px;
	      }
	      .tray-rail-row + .tray-rail-row {
	        padding-top: 5px;
	      }
	      .tray-rail-label {
	        font-size: 9px;
	      }
	      .tray-rail button {
			        min-height: 32px;
	        border: 1px solid rgba(221, 226, 216, 0.95);
	        border-radius: 8px;
	        background: rgba(255,255,255,0.82);
	        color: var(--muted);
		        font-size: 10.5px;
	        font-weight: 800;
	        line-height: 1.12;
	        padding: 5px 4px;
	      }
	      .tray-rail button.active {
	        background: var(--moss);
	        border-color: var(--moss);
	        color: #fff;
	        box-shadow: 0 8px 18px rgba(35, 79, 55, 0.18);
	      }
	      .tray-rail button.is-expanded:not(.active) {
	        border-color: rgba(35, 79, 55, 0.42);
	        background: rgba(239, 246, 239, 0.94);
	        color: var(--moss);
	      }
      .tray-scroll {
        display: grid;
        grid-auto-flow: row;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-template-rows: none;
		        grid-auto-rows: minmax(82px, auto);
        grid-auto-columns: auto;
        overflow-x: hidden;
        overflow-y: auto;
        padding: 1px 4px 2px 0;
	        gap: 4px;
		        max-height: 308px;
        overscroll-behavior-y: contain;
        scrollbar-width: thin;
        scrollbar-color: rgba(58, 109, 75, 0.42) transparent;
        -webkit-overflow-scrolling: touch;
      }
      .tray-scroll::-webkit-scrollbar { display: block; width: 4px; height: 4px; }
      .tray-scroll::-webkit-scrollbar-thumb { background: rgba(58, 109, 75, 0.36); border-radius: 999px; }
      .tray-item {
        min-width: 0;
		        min-height: 82px;
	        padding: 4px 3px 7px;
	        gap: 2px;
        border-radius: 8px;
        display: grid;
        grid-template-columns: 1fr;
	        grid-template-rows: 40px minmax(24px, auto) 16px;
        align-items: center;
        justify-items: center;
        text-align: center;
        touch-action: manipulation;
      }
	      .tray-item .badge { display: none; }
	      .tray-item .detail-chip {
	        display: inline-flex;
	        left: 4px;
	        right: auto;
	        top: 4px;
	        min-width: 24px;
	        height: 17px;
	        padding: 0 5px;
	        font-size: 8.5px;
	        z-index: var(--z-local-control);
	      }
      .tray-item strong {
        grid-column: 1;
        grid-row: 2;
	        min-height: 20px;
	        font-size: 9.8px;
	        line-height: 1.12;
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow-wrap: anywhere;
      }
      .tray-item > span:not(.detail-chip):not(.badge) {
        grid-column: 1;
        grid-row: 3;
	        font-size: 8px;
        color: var(--muted);
        white-space: nowrap;
      }
      .tray-item .mini-bead {
        grid-column: 1;
        grid-row: 1;
	        width: 40px;
	        height: 40px;
        margin-top: 0;
        justify-self: center;
      }
      .product-card .detail-chip {
        min-width: 26px;
        height: 18px;
        padding: 0 5px;
        font-size: 9px;
        right: 4px;
        top: 4px;
      }
      .drag-ghost {
        width: var(--drag-ghost-size, 44px);
        height: var(--drag-ghost-size, 44px);
        filter: drop-shadow(0 9px 14px rgba(31, 40, 28, 0.22));
      }
	      .designer-sign-panel {
	        display: grid;
	        grid-template-columns: 1fr;
	        gap: 8px;
	        padding: 8px;
	        margin: 0 0 8px;
	        border-radius: 10px;
	        position: static;
	        z-index: var(--z-local-content);
	        max-height: none;
	        overflow: visible;
	        background:
	          linear-gradient(180deg, rgba(255,255,255,0.96), rgba(248,246,238,0.92)),
	          radial-gradient(circle at 10% 0%, rgba(217, 167, 58, 0.09), transparent 34%);
	        box-shadow: 0 12px 28px rgba(31, 40, 28, 0.08);
	      }
      .designer-sign-panel .share-buttons { display: flex; }
      .designer-sign-panel {
        overflow: hidden;
      }
      .signature-field {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 7px;
      }
	      .signature-field label { display: none; }
	      .signature-field input {
	        height: 32px;
	        font-size: 12px;
	        border-radius: 9px;
	      }
	      .signature-preview {
	        max-width: none;
	        min-height: 32px;
	        padding: 6px 8px;
	        font-size: 17px;
	        white-space: nowrap;
	      }
      .share-card-options {
        gap: 5px;
        overflow-x: auto;
        scrollbar-width: none;
      }
      .share-card-options::-webkit-scrollbar { display: none; }
      .share-style-field,
      .share-time-toggle {
        height: 30px;
        padding: 0 8px;
        font-size: 10.5px;
        flex: 0 0 auto;
      }
      .share-style-field select {
        min-width: 94px;
        height: 26px;
        font-size: 10.5px;
      }
	      .design-companion {
	        left: 50%;
	        right: auto;
	        top: 10px;
	        bottom: auto;
	        width: min(204px, calc(100% - 118px));
	        padding: 6px 8px;
        border-radius: 14px;
      }
      .design-companion-text {
        font-size: 11px;
        line-height: 1.38;
      }
      .design-companion-actions button {
        height: 27px;
        font-size: 10.5px;
      }
	      .share-main-button {
	        grid-column: 1 / 2;
	        height: 32px;
	        border-radius: 9px;
	        padding: 0 8px;
	        font-size: 11px;
	        min-width: 0;
	        white-space: normal;
	        line-height: 1.1;
	      }
	      .share-save-button {
	        grid-column: 2 / 3;
	        height: 32px;
	        border-radius: 9px;
	        padding: 0 8px;
	        font-size: 11px;
	        min-width: 0;
	        white-space: normal;
	        line-height: 1.1;
	      }
		      .share-buttons {
		        display: flex;
		        flex-wrap: nowrap;
		        align-items: center;
		        overflow-x: auto;
		        overflow-y: hidden;
		        justify-content: flex-start;
		        gap: 4px;
            max-width: 100%;
		        scrollbar-width: none;
		        padding-bottom: 1px;
		        overscroll-behavior-inline: contain;
		        -webkit-overflow-scrolling: touch;
		      }
		      .share-heading {
		        display: inline-flex;
		        flex: 0 0 auto;
		        align-items: center;
		        min-height: 28px;
		        margin: 0 2px 0 0;
		        color: var(--ink);
		        font-size: 11px;
		        white-space: nowrap;
		        order: -2;
		      }
		      .share-buttons::-webkit-scrollbar { display: none; }
		      .share-buttons button {
		        flex: 0 0 auto;
		        width: auto;
		        min-width: 64px;
            max-width: 92px;
		        min-height: 29px;
		        height: auto;
		        aspect-ratio: auto;
		        padding: 4px 7px;
		        font-size: 9.4px;
		        line-height: 1.05;
		        justify-content: flex-start;
		        white-space: nowrap;
		        text-align: left;
		        gap: 4px;
		      }
		      .share-buttons button::before {
		        width: 16px;
		        height: 16px;
		        font-size: 8.5px;
		        flex: 0 0 auto;
		      }
	      .share-buttons button::after {
	        content: attr(data-label);
	        display: none;
	      }
		      .share-buttons .share-save-inline {
		        display: inline-flex;
		        order: -1;
		      }
		      .share-reward-tip {
		        font-size: 10px;
		        line-height: 1.22;
		        margin-top: -3px;
            display: -webkit-box;
            -webkit-line-clamp: 1;
            -webkit-box-orient: vertical;
            overflow: hidden;
		      }
      .mobile-share-quick {
        display: none;
      }
      .mobile-share-quick button {
        height: 44px;
        border-radius: 10px;
        font-size: 12px;
        box-shadow: 0 10px 20px rgba(31, 40, 28, 0.09);
      }
      .mobile-share-quick button:first-child {
        background: linear-gradient(135deg, #fff7d8, #f2d98a);
        border-color: rgba(217, 167, 58, 0.5);
        color: #173d2b;
      }
      .mobile-share-quick button:last-child {
        background: var(--moss);
        border-color: var(--moss);
        color: #fff;
      }
      .canvas-toolbar {
        gap: 5px;
        overflow: visible;
        padding-bottom: 0;
        margin-bottom: 2px;
      }
		      #realScaleToggle,
		      #view3dToggle,
		      .zoom-controls {
		        display: none;
		      }
	      .preset-picker {
	        display: grid;
	        grid-template-columns: minmax(0, 1fr) minmax(92px, auto);
	        grid-column: 1 / -1;
	        width: 100%;
	        gap: 5px;
	        padding: 4px;
	        border-radius: 12px;
	      }
	      .preset-picker select {
	        min-width: 0;
	        width: 100%;
	        height: 34px;
	        font-size: 12px;
	      }
	      .preset-picker button {
	        min-width: 92px;
	        height: 34px;
	        padding: 0 10px;
	        font-size: 12px;
	        white-space: nowrap;
	      }
      .canvas-toolbar { align-items: center; }
      .mode-toggle,
      .layout-toggle,
      .tool-actions {
        width: 100%;
      }
      .layout-toggle {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px;
      }
      .mode-toggle button,
      .layout-toggle button {
        flex: 1 1 auto;
        min-width: 0;
        width: 100%;
        height: 34px;
        padding: 0 8px;
        font-size: 12px;
      }
			      .tool-actions .pill-button {
			        min-width: 0;
			        justify-content: center;
			        width: 100%;
			        height: 36px;
			        padding: 0 6px;
			        font-size: 11px;
			        line-height: 1.12;
			        white-space: nowrap;
			      }
		      .tool-actions .tool-icon-button {
		        gap: 3px;
		      }
		      .tool-actions .tool-icon-button svg {
		        width: 14px;
		        height: 14px;
		      }
			      .tool-actions .tool-icon-button span {
			        position: static;
			        width: auto;
			        height: auto;
			        padding: 0;
			        margin: 0;
			        overflow: hidden;
			        clip: auto;
			        white-space: nowrap;
			        max-width: none;
			      }
	      .preview-button { bottom: 72px; right: 16px; }
	      .drop-hint {
	        left: auto;
	        right: 9px;
	        bottom: 9px;
	        z-index: var(--z-local-control);
	        align-items: flex-end;
	        flex-direction: column;
	      }
		      .drop-hint .pill-button { display: none; }
      .canvas-note { display: none; }
      .canvas-status { left: 9px; right: 9px; top: 9px; gap: 5px; }
      .canvas-status span { height: 24px; padding: 0 8px; font-size: 10px; }
	      .canvas-fit-badge {
	        top: auto;
	        right: 9px;
	        bottom: 54px;
	        max-width: 54%;
	        padding: 6px 8px;
	        font-size: 10px;
	        line-height: 1.25;
      }
		      .canvas-length-control {
		        position: static;
		        width: min(100%, 320px);
		        margin-left: auto;
		        padding: 6px 8px;
		        border-radius: 10px;
            grid-template-columns: repeat(2, minmax(0, 1fr));
	        background: rgba(255, 255, 255, 0.94);
	        box-shadow: 0 8px 22px rgba(31, 40, 28, 0.08);
	        backdrop-filter: blur(10px);
	        gap: 3px;
	      }
      .canvas-length-control label {
        font-size: 10.5px;
        margin-bottom: 0;
      }
			      .canvas-length-row {
			        grid-template-columns: 26px minmax(70px, 104px) 62px 26px;
			        gap: 3px;
			      }
	      .canvas-net-wrist {
	        grid-template-columns: 1fr;
	        gap: 3px;
	        padding-bottom: 0;
	      }
	      .canvas-net-wrist span {
	        font-size: 10.5px;
	      }
	      .canvas-net-wrist input {
	        width: 64px;
	        height: 26px;
	        border-radius: 9px;
	        font-size: 11px;
	      }
	      .canvas-length-row input[type="number"] {
	        display: block;
	        width: 62px;
	        height: 26px;
	        border-radius: 9px;
	        font-size: 11px;
	      }
      .length-step {
        width: 26px;
        height: 26px;
        border-radius: 8px;
        font-size: 15px;
      }
      .wrist-comfort-tip {
        font-size: 9.5px;
        line-height: 1.25;
        display: -webkit-box;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
      }
      .drop-hint {
        display: flex;
        pointer-events: none;
      }
      .drop-hint > div { display: none; }
      .wear-preview-card,
      .wear-preview-canvas { min-height: 300px; }
      .wear-preview-copy {
        align-items: flex-start;
        flex-direction: column;
      }
      .feature-points { grid-template-columns: 1fr; }
      .material-guide {
        grid-template-columns: 1fr;
        padding: 16px;
      }
      .material-guide-grid {
        grid-template-columns: 1fr;
      }
      .form-grid-two { grid-template-columns: 1fr; }
      .story-sections {
        padding-inline: 14px;
        width: 100%;
        max-width: 100vw;
        box-sizing: border-box;
        overflow: hidden;
      }
	      .story-sections > .section-band {
	        width: 100%;
	        max-width: 100%;
	        min-width: 0;
	        box-sizing: border-box;
	      }
	      .ready-section {
	        gap: 10px;
	        scroll-margin-top: calc(var(--jewdiy-sticky-topbar-height, 86px) + 12px);
	      }
	      .ready-section .section-title {
	        display: grid;
	        gap: 10px;
	        margin-bottom: 8px;
	      }
	      .ready-section .section-actions {
	        display: grid;
	        gap: 9px;
	      }
	      .ready-section .section-actions p {
	        margin: 0;
	        max-width: none;
	        font-size: 13px;
	        line-height: 1.52;
	        display: -webkit-box;
	        -webkit-line-clamp: 3;
	        -webkit-box-orient: vertical;
	        overflow: hidden;
	      }
	      .ready-section .section-actions .pill-button {
	        justify-self: start;
	        min-height: 44px;
	        height: 44px;
	        padding-inline: 18px;
	      }
	      .section-title,
	      .section-actions {
	        min-width: 0;
	      }
      .section-title h2,
      .section-title p {
        overflow-wrap: anywhere;
      }
      .section-actions { justify-content: flex-start; }
      .brand-proof-grid { grid-template-columns: 1fr; }
      .brand-intro-media img { aspect-ratio: 16 / 11; }
      .aftercare-band { padding: 16px; }
      .material-grid, .review-grid, .process-grid { grid-template-columns: 1fr; }
      .gift-section {
        gap: 16px;
      }
      .gift-copy {
        gap: 12px;
      }
      .gift-copy h2 {
        font-size: 28px;
        line-height: 1.08;
      }
      .gift-copy p {
        font-size: 13px;
        line-height: 1.58;
      }
      .gift-points {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
      }
      .gift-points span {
        padding: 8px 6px;
        text-align: center;
        font-size: 11px;
        line-height: 1.2;
      }
      .gift-visual-grid {
        grid-template-columns: repeat(3, minmax(116px, 1fr));
        gap: 7px;
      }
      .gift-visual-grid img,
      .gift-visual-grid img:first-child {
        min-height: 0;
        aspect-ratio: 1 / 0.86;
        border-radius: 10px;
      }
	      .ready-grid {
	        grid-template-columns: minmax(0, 1fr);
	        gap: 10px;
	        min-width: 0;
	      }
	      .ready-card {
	        border-radius: 14px;
	        min-width: 0;
	        box-shadow: 0 12px 28px rgba(31, 40, 28, 0.07);
	      }
	      .ready-photo {
	        aspect-ratio: 1 / 0.70;
	      }
	      .ready-label,
	      .ready-reference-label {
	        min-height: 28px;
	        padding-inline: 10px;
	      }
	      .ready-price.ready-price-hold {
	        right: 12px;
	        bottom: 12px;
	        min-height: 34px;
	        font-size: 14px;
	      }
	      .ready-photo:has([data-ready-home-material-preview]) .ready-price.ready-price-hold {
	        bottom: 58px;
	      }
	      .ready-kind {
	        display: none;
	      }
      .ready-price {
        min-height: 34px;
        padding: 0 10px;
        font-size: 16px;
      }
      .ready-price small {
        display: none;
      }
	      .ready-body {
	        padding: 11px 12px 12px;
	        gap: 7px;
	      }
	      .ready-body h3 {
	        font-size: 16px;
	        line-height: 1.24;
	      }
	      .ready-story {
        min-height: 0;
        font-size: 12px;
        line-height: 1.42;
        display: -webkit-box;
        /* 2026-06-25 mobile homepage ready-card App readability lock */
        -webkit-line-clamp: 2;
	        -webkit-box-orient: vertical;
	        overflow: hidden;
	      }
	      .ready-meta {
	        display: none;
	      }
	      .ready-proof-list {
	        gap: 6px;
	      }
	      .ready-proof-list span:nth-child(2) {
	        display: none;
	      }
	      .ready-proof-list span:nth-child(3) {
	        display: none;
	      }
	      .ready-proof-list span {
	        min-height: 34px;
	        padding: 7px 8px;
	        font-size: 11px;
	        line-height: 1.32;
	        display: flex;
	        align-items: center;
	      }
	      .ready-sizing-control {
	        padding: 7px 9px;
	        gap: 4px;
	        border-radius: 12px;
	        background: rgba(251, 249, 244, 0.82);
	      }
	      .ready-size-fields {
	        display: none;
	      }
	      .ready-sizing-head,
	      .ready-sizing-estimate {
	        font-size: 10.5px;
	        line-height: 1.25;
	        min-width: 0;
	      }
	      .ready-sizing-estimate {
	        justify-content: flex-start;
	        overflow: hidden;
	        white-space: nowrap;
	      }
	      .ready-sizing-estimate [data-ready-estimate] {
	        min-width: 0;
	        overflow: hidden;
	        text-overflow: ellipsis;
	        white-space: nowrap;
	      }
	      .ready-hold-note {
	        display: none;
	      }
	      .ready-actions {
	        grid-template-columns: 1fr;
      }
      .ready-actions .pill-button {
        /* 2026-06-25 mobile homepage ready-card 44px CTA lock */
        min-height: 44px;
        height: 44px;
        font-size: 12px;
        padding-inline: 8px;
        touch-action: manipulation;
      }
	      .ready-actions .badge {
	        display: none;
	      }
      .ready-more-row .pill-button,
      .brand-intro-actions .pill-button,
      .gift-copy > .pill-button {
        /* 2026-06-22 mobile homepage public recovery tap target */
        min-height: 44px;
        height: 44px;
        align-items: center;
        justify-content: center;
        touch-action: manipulation;
      }
      .footer-social {
        gap: 8px;
        flex-wrap: wrap;
      }
      .footer-social a {
        /* 2026-06-22 mobile homepage public recovery tap target */
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 44px;
        padding-inline: 10px;
        border: 1px solid rgba(255,255,255,0.16);
        border-radius: 999px;
        line-height: 1.2;
        touch-action: manipulation;
      }
      .footer-col a,
      .footer-legal a {
        /* 2026-06-22 mobile homepage public recovery tap target */
        display: flex;
        align-items: center;
        min-height: 44px;
        line-height: 1.3;
        padding-block: 4px;
        touch-action: manipulation;
      }
      .footer-grid { grid-template-columns: 1fr; gap: 24px; }
      .footer-bottom { flex-direction: column; text-align: center; gap: 10px; }
      .footer-legal { gap: 12px; }
    }

    /* ═══ Scroll-reveal animations ═══ */
    @media (max-width: 540px) {
      .ready-card .ready-actions {
        grid-template-columns: 1fr !important;
      }
    }

    .reveal {
      /* 2026-06-25 storefront breathing reveal lock:
         default visible keeps content accessible if scripting is unavailable; motion is enabled only when the browser can run the observer. */
      opacity: 1;
      transform: none;
      transition: opacity 0.65s var(--ease-out), transform 0.65s var(--ease-out);
    }
    .reveal.visible {
      opacity: 1;
      transform: translateY(0);
      will-change: auto;
    }
    .reveal-stagger > * {
      /* 2026-06-25 storefront breathing reveal lock:
         default visible keeps cards accessible without scripting; stagger motion is applied only when scripting is enabled. */
      opacity: 1;
      transform: none;
      transition: opacity 0.5s var(--ease-out), transform 0.5s var(--ease-out);
    }
    .reveal-stagger > *.visible {
      opacity: 1;
      transform: translateY(0);
    }

    @media (scripting: enabled) and (prefers-reduced-motion: no-preference) {
      .reveal {
        opacity: 0;
        transform: translateY(18px);
        will-change: opacity, transform;
      }

      .reveal-stagger > * {
        opacity: 0;
        transform: translateY(14px);
        will-change: opacity, transform;
      }

      .reveal.visible,
      .reveal-stagger > *.visible {
        opacity: 1;
        transform: translateY(0);
        will-change: auto;
      }
    }

    @media (prefers-reduced-motion: reduce), (scripting: none) {
      .reveal,
      .reveal-stagger > * {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        will-change: auto !important;
      }
    }

    .preview-layout {
      display: grid;
      gap: 8px;
    }

    .canvas-length-control {
      position: static;
      z-index: var(--z-local-content);
      width: min(100%, 360px);
      grid-template-columns: repeat(2, minmax(0, 1fr));
      align-items: center;
      gap: 7px 10px;
      padding: 8px 9px;
      border-radius: 8px;
      background: rgba(255, 255, 255, 0.94);
      box-shadow: 0 8px 22px rgba(31, 40, 28, 0.08);
      backdrop-filter: blur(10px);
    }

    .canvas-net-wrist {
      padding: 0;
      border-bottom: 0;
      grid-template-columns: 1fr;
    }

    .canvas-length-control label {
      min-width: 0;
    }

    .canvas-length-row {
      grid-template-columns: 28px minmax(74px, 118px) 66px 28px;
      justify-content: end;
    }

    .canvas-net-wrist input,
    .canvas-length-row input[type="number"] {
      height: 30px;
      border-radius: 8px;
      font-size: 12px;
      font-weight: 850;
    }

    .wrist-comfort-tip {
      grid-column: 1 / -1;
      margin: 0;
      font-size: 10.5px;
      line-height: 1.35;
    }

		      .design-companion {
		        left: 50%;
	        right: auto;
	        top: 10px;
	        bottom: auto;
	        width: min(202px, calc(100% - 118px));
        grid-template-columns: 18px minmax(0, 1fr);
      gap: 6px;
        padding: 6px 8px;
        border-radius: 12px;
        box-shadow: 0 10px 24px rgba(31, 40, 28, 0.12);
        transform: translate(-50%, -8px) scale(0.98);
      }

      .design-companion.show {
        transform: translate(-50%, 0) scale(1);
      }

    .design-companion::before {
      display: none;
    }

      .design-companion-mark {
      width: 18px;
      height: 18px;
      font-size: 8px;
    }

    .design-companion-text {
      font-size: 10.5px;
      line-height: 1.3;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .design-companion-actions {
      gap: 5px;
      padding-top: 0;
    }

    .design-companion-actions button {
      height: 24px;
      padding: 0 7px;
      font-size: 10px;
    }

    @media (min-width: 861px) {
      .left-panel .catalog {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        padding: 8px;
      }

      .left-panel .product-card {
        min-height: 108px;
        grid-template-columns: 1fr;
        grid-template-rows: auto minmax(28px, auto) auto;
        align-items: start;
        justify-items: center;
        gap: 5px;
        padding: 7px;
        text-align: center;
        border-radius: 8px;
      }

      .left-panel .product-top {
        justify-items: center;
        gap: 3px;
      }

      .left-panel .product-art {
        width: 42px;
        height: 42px;
      }

      .left-panel .product-top > div:last-child .badge {
        display: none;
      }

      .left-panel .product-top > div:last-child strong {
        margin-top: 0 !important;
        font-size: 11px;
      }

      .left-panel .product-size-badge {
        right: 5px;
        top: 5px;
        min-height: 18px;
        padding: 0 5px;
        font-size: 9px;
      }

      .left-panel .product-card h3 {
        width: 100%;
        font-size: 11px;
        line-height: 1.15;
        -webkit-line-clamp: 2;
        overflow-wrap: anywhere;
      }

      .left-panel .product-meta {
        display: none;
      }

      .left-panel .price-line {
        grid-column: auto;
        width: 100%;
        justify-content: center;
        margin-top: 0;
        font-size: 9.5px;
        line-height: 1.1;
      }

      .left-panel .price-line span {
        display: none;
      }

      .left-panel .price-line strong {
        color: var(--muted);
        font-weight: 850;
      }
    }

    @media (max-width: 860px) {
      .canvas-length-control {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: min(100%, 320px);
      }
    }

    @media (max-width: 540px) {
      .canvas-length-control {
        width: min(100%, 320px);
        padding: 5px 6px;
        gap: 3px;
        justify-self: end;
      }

      .canvas-net-wrist {
        grid-template-columns: 1fr;
      }

      .canvas-length-row {
        grid-template-columns: 26px minmax(68px, 96px) 62px 26px;
        justify-content: end;
      }

      .canvas-net-wrist input,
      .canvas-length-row input[type="number"] {
        width: 64px;
        height: 25px;
      }

      .canvas-length-row input[type="range"] {
        max-width: 96px;
        min-width: 68px;
      }

      .wrist-comfort-tip {
        font-size: 9.3px;
        line-height: 1.18;
        -webkit-line-clamp: 1;
      }

      .design-companion {
        display: grid;
        left: 50%;
        top: 9px;
        right: auto;
        bottom: auto;
        width: min(188px, calc(100% - 118px));
        grid-template-columns: 18px minmax(0, 1fr);
        padding: 6px 8px;
        border-radius: 11px;
        background: rgba(255,255,255,0.88);
      }

      .design-companion-mark {
        width: 18px;
        height: 18px;
        font-size: 7px;
      }

      .design-companion-text {
        font-size: 9.5px;
        -webkit-line-clamp: 2;
      }

      .design-companion-actions {
        display: none !important;
      }

      body.mobile-builder-active .bottom-tray {
        max-height: min(382px, calc(100dvh - 360px));
      }

      .tray-shell {
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 6px;
      }

      .tray-rail,
      .tray-scroll {
        max-height: 304px;
        scrollbar-width: thin;
        scrollbar-color: rgba(58, 109, 75, 0.42) transparent;
      }

      .tray-rail::-webkit-scrollbar,
      .tray-scroll::-webkit-scrollbar {
        display: block;
        width: 4px;
        height: 4px;
      }

      .tray-rail::-webkit-scrollbar-thumb,
      .tray-scroll::-webkit-scrollbar-thumb {
        background: rgba(58, 109, 75, 0.36);
        border-radius: 999px;
      }

      .tray-scroll {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-auto-rows: minmax(82px, auto);
        gap: 5px;
        padding-right: 3px;
      }

      .tray-item {
        min-height: 82px;
        grid-template-rows: 40px minmax(24px, auto) 16px;
        padding: 4px 3px 7px;
      }

      .tray-item .mini-bead {
        width: 40px;
        height: 40px;
      }

      .tray-item strong {
        font-size: 9.8px;
        line-height: 1.12;
      }

      .tray-item > span:not(.detail-chip):not(.badge) {
        font-size: 8px;
      }
    }

    @media (max-width: 430px) {
      .builder {
        gap: 6px;
        padding-inline: 5px;
      }

      .canvas-toolbar {
        gap: 4px;
      }

      .layout-toggle {
        gap: 4px;
      }

      .layout-toggle button {
        height: 31px;
        padding-inline: 6px;
        font-size: 11px;
      }

      .tool-actions {
        gap: 4px;
      }

      .tool-actions .pill-button {
        height: 33px;
        padding-inline: 5px;
        font-size: 10.5px;
      }

      .design-canvas {
        min-height: clamp(292px, 36vh, 324px);
      }

      .canvas-length-control {
        width: min(100%, 320px);
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
      }

      .canvas-net-wrist {
        grid-template-columns: minmax(0, 1fr) 64px;
        align-items: center;
      }

      .wrist-comfort-tip {
        display: none !important;
      }

      body.mobile-builder-active .bottom-tray {
        max-height: min(364px, calc(100dvh - 332px));
      }

      .tray-shell {
        grid-template-columns: 78px minmax(0, 1fr);
        gap: 5px;
      }

      .tray-rail {
        max-height: 276px;
      }

      .tray-rail button {
        min-height: 30px;
        padding: 4px 3px;
        font-size: 10px;
      }

      .tray-scroll {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-auto-rows: minmax(76px, auto);
        gap: 3px;
        max-height: 286px;
        padding-right: 2px;
        padding-bottom: 58px;
        scroll-padding-bottom: 58px;
      }

      .tray-item {
        min-height: 76px;
        grid-template-rows: 36px minmax(22px, auto) 13px;
        padding: 3px 2px 6px;
      }

      .tray-item .mini-bead {
        width: 36px;
        height: 36px;
      }

      .tray-item strong {
        min-height: 17px;
        font-size: 9px;
        line-height: 1.08;
      }

      .tray-item > span:not(.detail-chip):not(.badge) {
        font-size: 7.5px;
      }
    }

    @media (max-width: 380px) {
      .topbar {
        padding-inline: 8px;
        gap: 6px;
      }

      .brand {
        flex: 1 1 122px;
        gap: 5px;
        max-width: 128px;
        overflow: hidden;
      }

      .brand-mark {
        width: 30px;
        height: 30px;
        border-radius: 50%;
      }

      .brand-wordmark {
        width: clamp(82px, 27vw, 92px);
        max-width: 92px;
        flex: 0 1 auto;
      }

      .top-actions {
        gap: 4px;
      }

      .language-select {
        width: 78px;
        min-width: 78px;
        height: 44px;
        padding-left: 7px;
        padding-right: 20px;
        font-size: 10px;
      }

      .top-actions #topCart {
        max-width: 78px;
        min-width: 44px;
        min-height: 44px;
        padding-inline: 8px;
      }

	      body.mobile-builder-active {
	        padding-bottom: 14px;
	      }

	      body.mobile-builder-active .mobile-builder-cta,
	      body.mobile-builder-active.mobile-editor-controls-active .mobile-builder-cta,
	      body.mobile-builder-active.mobile-tray-active .mobile-builder-cta {
	        display: none !important;
	      }

      .mobile-builder-inline-cta {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(110px, 42%);
        gap: 6px;
        padding: 7px;
      }

      .canvas-toolbar {
        gap: 4px;
      }

      .layout-toggle {
        gap: 4px;
      }

      .layout-toggle button,
      .mode-toggle button {
        height: 30px;
        font-size: 11px;
      }

      .tool-actions {
        gap: 4px;
      }

      .tool-actions .pill-button {
        height: 32px;
        font-size: 10px;
      }

      .design-canvas {
        min-height: clamp(248px, 32vh, 276px);
      }

      .canvas-length-control {
        width: 100%;
        max-width: 100%;
        padding: 4px 5px;
        gap: 3px;
      }

      .wrist-comfort-tip {
        display: none !important;
      }

      body.mobile-builder-active .bottom-tray {
        max-height: min(330px, calc(100dvh - 292px));
      }

      .bottom-tray-head {
        display: none;
      }

      .tray-tools {
        grid-template-columns: 1fr;
        padding: 3px 4px;
      }

      .tray-tools span {
        display: none;
      }

      .tray-size-options button {
        min-width: 40px;
        height: 22px;
        font-size: 9.5px;
      }

      .tray-shell {
        grid-template-columns: 78px minmax(0, 1fr);
        gap: 5px;
      }

      .tray-rail {
        max-height: 246px;
      }

      .tray-rail button {
        min-height: 27px;
        padding: 4px 3px;
        font-size: 9.5px;
      }

      .tray-scroll {
        max-height: 252px;
        grid-auto-rows: minmax(72px, auto);
        gap: 3px;
        padding-bottom: 62px;
        scroll-padding-bottom: 62px;
      }

      .tray-item {
        min-height: 72px;
        grid-template-rows: 34px minmax(21px, auto) 12px;
        padding: 3px 2px 6px;
      }

      .tray-item .mini-bead {
        width: 34px;
        height: 34px;
      }

      .tray-item strong {
        min-height: 16px;
        font-size: 8.8px;
        line-height: 1.08;
      }

      .tray-item > span:not(.detail-chip):not(.badge) {
        font-size: 7.4px;
      }

      .ready-section,
      .ready-grid,
      .ready-card {
        min-width: 0;
        max-width: 100%;
      }

      .ready-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
      }
    }

    @media (min-width: 861px) {
      .builder {
        gap: 10px;
        padding: 10px clamp(8px, 1.2vw, 20px) 18px;
        max-height: none !important;
        overflow: visible !important;
      }

      .left-panel,
      .right-panel {
        top: 70px;
        max-height: min(820px, calc(100vh - 82px));
      }

      .center-stage {
        gap: 8px;
        max-height: none !important;
        overflow: visible !important;
        align-self: start;
      }

      .left-panel .panel-header {
        padding: 10px 12px 7px;
      }

      .left-panel .panel-header h2 {
        font-size: 17px;
      }

      .left-panel .panel-header p {
        display: none;
      }

      .left-panel .tabs,
      .left-panel .filters {
        gap: 5px;
        padding: 7px 10px;
      }

      .left-panel .tab,
      .left-panel .filter {
        padding: 6px 8px;
        font-size: 11px;
      }

      .left-panel .size-selector {
        gap: 5px;
        padding: 7px 10px;
      }

      .left-panel .size-selector-head {
        font-size: 10.5px;
      }

      .left-panel .size-options {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 4px;
      }

      .left-panel .size-options button {
        height: 26px;
        font-size: 10px;
      }

      .left-panel .search-bar {
        padding: 5px 8px 7px;
      }

      .left-panel .search-bar input {
        height: 30px;
        font-size: 12px;
      }

      .left-panel .catalog {
        grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
        gap: 6px;
        padding: 8px;
      }

      .left-panel .product-card {
        min-height: 92px;
        grid-template-columns: 1fr;
        grid-template-rows: 38px minmax(26px, auto) 12px;
        align-items: center;
        justify-items: center;
        gap: 4px;
        padding: 6px;
        text-align: center;
        border-radius: 8px;
      }

      .left-panel .product-top {
        align-self: center;
        justify-items: center;
        gap: 2px;
      }

      .left-panel .product-art {
        width: 36px;
        height: 36px;
      }

      .left-panel .product-top > div:last-child {
        display: none;
      }

      .left-panel .product-size-badge {
        right: 4px;
        top: 4px;
        min-height: 17px;
        padding: 0 5px;
        font-size: 8.5px;
      }

      .left-panel .detail-chip {
        display: inline-flex;
        left: 4px;
        right: auto;
        top: 4px;
        min-width: 24px;
        height: 17px;
        padding: 0 5px;
        font-size: 8.5px;
      }

      .left-panel .product-card h3 {
        width: 100%;
        font-size: 10.5px;
        line-height: 1.12;
        -webkit-line-clamp: 2;
        overflow-wrap: anywhere;
      }

      .left-panel .product-meta {
        display: none;
      }

      .left-panel .price-line {
        width: 100%;
        justify-content: center;
        margin-top: 0;
        font-size: 8.8px;
        line-height: 1.05;
      }

      .left-panel .price-line span {
        display: none;
      }

      .left-panel .price-line strong {
        color: var(--muted);
        font-weight: 850;
      }

      .canvas-card {
        padding: 8px;
        gap: 7px;
      }

      .canvas-toolbar {
        gap: 7px;
      }

      .tool-actions {
        gap: 5px;
      }

      .tool-actions .pill-button,
      .layout-toggle button,
      .mode-toggle button {
        height: 30px;
        padding-inline: 8px;
        font-size: 11px;
      }

      .canvas-length-control {
        width: min(100%, 320px);
        max-width: 320px;
        padding: 6px 8px;
        gap: 4px 6px;
      }

      .canvas-net-wrist input,
      .canvas-length-row input[type="number"] {
        height: 28px;
      }

      .wrist-comfort-tip {
        display: -webkit-box;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
      }

      .designer-sign-panel {
        padding: 8px;
        gap: 6px;
      }

      .signature-field input {
        height: 32px;
      }

      .right-panel .summary {
        padding: 12px;
      }

      .right-panel .summary > p,
      .right-panel .value-stack,
      .right-panel #exportBrief {
        display: none;
      }

      .right-panel .total {
        margin-top: 10px;
      }

      .right-panel .total strong {
        font-size: 28px;
      }

      .right-panel .quote-flow {
        margin-top: 9px;
        padding: 9px;
      }

      .right-panel .line-items {
        padding: 10px 12px;
        gap: 6px;
      }

      .right-panel .checkout {
        padding: 12px;
        gap: 8px;
      }
    }

    @media (min-width: 1281px) {
      .builder {
        grid-template-columns: minmax(280px, 340px) minmax(0, 1fr) minmax(250px, 300px);
      }

      .design-canvas {
        min-height: clamp(430px, calc(100vh - 310px), 600px);
      }
    }

    @media (min-width: 1181px) and (max-width: 1280px) {
      .builder {
        grid-template-columns: minmax(280px, 320px) minmax(0, 1fr) minmax(230px, 270px);
      }

      .design-canvas {
        min-height: clamp(390px, calc(100vh - 312px), 440px);
        max-height: 440px;
      }
    }

    @media (min-width: 861px) and (max-width: 1180px) {
      .builder {
        grid-template-columns: minmax(280px, 320px) minmax(0, 1fr);
      }

      .design-canvas {
        min-height: clamp(360px, calc(100vh - 360px), 430px);
      }
    }

    @media (min-width: 1181px) {
      .builder {
        align-items: stretch !important;
        grid-auto-rows: minmax(var(--jewdiy-builder-workbench-height, 720px), auto);
      }

      .left-panel,
      .right-panel {
        align-self: stretch !important;
        height: var(--jewdiy-builder-workbench-height, 720px);
        max-height: var(--jewdiy-builder-workbench-height, 720px) !important;
        min-height: 0;
        display: flex;
        flex-direction: column;
        overflow: hidden !important;
      }

      .left-panel .material-taxonomy,
      .left-panel .taxonomy-pills {
        max-height: 112px;
        overflow: auto;
        overscroll-behavior: auto;
      }

      .left-panel .catalog {
        flex: 1 1 auto;
        min-height: 0;
        max-height: none !important;
        overflow: auto;
        overscroll-behavior: auto;
      }

      .right-panel {
        position: sticky;
        top: 70px;
      }

      .right-panel .summary,
      .right-panel .checkout {
        flex: 0 0 auto;
      }

      .right-panel .line-items {
        flex: 1 1 auto;
        min-height: 112px;
        overflow: auto;
        overscroll-behavior: auto;
      }

      .right-panel .checkout {
        position: static;
        bottom: auto;
      }
    }

    @media (min-width: 861px) and (max-width: 1180px) {
      .left-panel {
        display: flex;
        flex-direction: column;
        overflow: hidden;
      }

      .left-panel .catalog {
        flex: 1 1 auto;
        min-height: 280px;
        overflow: auto;
        overscroll-behavior: auto;
      }
    }

    body.canvas-fullscreen-open {
      overflow: hidden;
    }

    body.canvas-fullscreen-open .cart-float,
    body.canvas-fullscreen-open .mobile-builder-cta {
      display: none !important;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen {
      position: fixed;
      inset: 0;
      z-index: var(--z-modal);
      width: 100vw;
      height: 100dvh;
      display: grid;
      grid-template-columns: minmax(188px, 232px) minmax(0, 1fr) minmax(208px, 260px);
      align-items: stretch;
      gap: 10px;
      padding:
        max(8px, env(safe-area-inset-top))
        max(8px, env(safe-area-inset-right))
        max(8px, env(safe-area-inset-bottom))
        max(8px, env(safe-area-inset-left));
      overflow: hidden;
      background:
        radial-gradient(circle at 18% 0%, rgba(217, 167, 58, 0.10), transparent 30%),
        linear-gradient(180deg, rgba(249, 248, 245, 0.98), rgba(240, 235, 224, 0.98));
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen > .panel,
    body.canvas-fullscreen-open .builder.builder-fullscreen .center-stage {
      min-height: 0;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .left-panel,
    body.canvas-fullscreen-open .builder.builder-fullscreen .right-panel {
      position: relative;
      top: auto;
      height: 100%;
      max-height: none;
      display: block !important;
      overflow: auto;
      border-radius: 10px;
      overscroll-behavior: contain;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .center-stage {
      height: 100%;
      display: flex;
      flex-direction: column;
      gap: 8px;
      overflow: auto;
      overscroll-behavior: contain;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-card {
      flex: 1 1 auto;
      min-height: 0;
      display: flex;
      flex-direction: column;
      gap: 10px;
      padding: 10px;
      overflow: visible;
      border-radius: 10px;
      background: rgba(255, 253, 247, 0.98);
      box-shadow: 0 20px 60px rgba(31, 40, 28, 0.14);
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-toolbar {
      flex: 0 0 auto;
      gap: 6px;
      margin: 0;
      position: sticky;
      top: 0;
      z-index: var(--z-local-control);
      padding: 6px;
      display: grid;
      grid-template-columns: auto auto minmax(0, 1fr) auto auto;
      align-items: center;
      border: 1px solid rgba(217, 211, 195, 0.84);
      border-radius: 10px;
      background: rgba(255, 253, 247, 0.94);
      box-shadow: 0 12px 26px rgba(31, 40, 28, 0.08);
      backdrop-filter: blur(12px);
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .tool-actions {
      justify-content: end;
      gap: 5px;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .tool-icon-button {
      width: auto;
      min-width: 64px;
      height: 38px;
      padding: 0 8px;
      border-radius: 10px;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .tool-icon-button span {
      position: static;
      width: auto;
      height: auto;
      overflow: hidden;
      clip: auto;
      white-space: nowrap;
      max-width: 5.5em;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .designer-sign-panel {
      display: grid;
      grid-template-columns: minmax(180px, 0.8fr) minmax(160px, 1fr);
      gap: 6px;
      padding: 7px;
      border-radius: 10px;
      max-height: 124px;
      overflow: auto;
      order: 3;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .designer-sign-panel .share-buttons {
      grid-column: 1 / -1;
      display: flex;
      flex-wrap: nowrap;
      gap: 6px;
      overflow-x: auto;
      padding-bottom: 2px;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .designer-sign-panel .share-reward-tip {
      grid-column: 1 / -1;
      margin: 0;
      font-size: 11px;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .designer-sign-panel .share-buttons button {
      flex: 0 0 auto;
      min-height: 30px;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .fullscreen-exit-hint {
      display: block;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .preview-layout {
      flex: 1 1 auto;
      min-height: 0;
      display: grid;
      grid-template-rows: minmax(440px, 1fr) auto;
      gap: 8px;
      order: 2;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .design-canvas {
      position: relative;
      inset: auto;
      z-index: var(--z-local-content);
      width: 100%;
      height: 100%;
      min-height: 0;
      border: 1px solid rgba(217, 211, 195, 0.9);
      border-radius: 10px;
      box-shadow: inset 0 1px 0 rgba(255,255,255,0.72);
      touch-action: none;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-control {
      width: 100%;
      max-width: none;
      justify-self: stretch;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .quick-row {
      display: grid !important;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 6px;
      flex: 0 0 auto;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .quick-tile {
      min-height: 54px;
      padding: 9px 10px;
      border-radius: 10px;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .quick-tile strong {
      margin-top: 4px;
      font-size: 18px;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .right-panel .summary {
      padding: 12px;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .right-panel .summary > p,
    body.canvas-fullscreen-open .builder.builder-fullscreen .right-panel .value-stack,
    body.canvas-fullscreen-open .builder.builder-fullscreen .right-panel #exportBrief {
      display: none;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .right-panel .total {
      margin-top: 10px;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .right-panel .line-items {
      max-height: 26dvh;
      overflow: auto;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .right-panel .checkout {
      position: sticky;
      bottom: 0;
      padding: 10px 12px;
    }

    body.canvas-fullscreen-open .builder.builder-fullscreen .checkout-nudge {
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      font-size: 11px;
    }

    body.canvas-fullscreen-open .canvas-fullscreen-toggle {
      background: rgba(35, 79, 55, 0.94);
      border-color: rgba(35, 79, 55, 0.96);
      color: #fff;
      box-shadow: 0 14px 34px rgba(31, 40, 28, 0.22);
    }

    @media (max-width: 860px) {
      body.canvas-fullscreen-open .builder.builder-fullscreen {
        grid-template-columns: 1fr;
        grid-template-rows: minmax(0, 1fr);
        align-content: start;
        overflow-x: hidden;
        overflow-y: auto;
        padding: max(8px, env(safe-area-inset-top)) 8px max(10px, env(safe-area-inset-bottom));
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .center-stage {
        order: 1;
        height: auto;
        min-height: 0;
        overflow: visible;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-card {
        min-height: auto;
        overflow: visible;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-toolbar {
        position: sticky;
        top: 0;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-height: none;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .tool-actions {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        overflow: visible;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .preview-layout {
        flex: 0 0 auto;
        grid-template-rows: minmax(430px, 58dvh) auto;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .design-canvas {
        height: auto;
        min-height: clamp(430px, 58dvh, 560px);
      }

      body.canvas-fullscreen-open .design-canvas.canvas-fullscreen {
        position: relative;
        inset: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: clamp(430px, 58dvh, 560px) !important;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .left-panel,
      body.canvas-fullscreen-open .builder.builder-fullscreen #materials {
        order: 2;
        display: block !important;
        height: auto;
        max-height: min(50dvh, 390px);
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .right-panel {
        display: none !important;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .quick-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .bottom-tray {
        display: grid !important;
        position: static;
        order: 2;
        max-height: min(360px, 47dvh);
        padding: 6px;
        border: 1px solid var(--line);
        opacity: 1;
        pointer-events: auto;
        transform: none;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .bottom-tray .tray-rail,
      body.canvas-fullscreen-open .builder.builder-fullscreen .bottom-tray .tray-scroll {
        max-height: min(240px, 34dvh);
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .designer-sign-panel {
        display: none !important;
      }
    }

    @media (max-width: 540px) {
      body.canvas-fullscreen-open .builder.builder-fullscreen {
        gap: 7px;
        padding: max(7px, env(safe-area-inset-top)) 6px max(8px, env(safe-area-inset-bottom));
        height: 100dvh;
        overflow: hidden;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .center-stage {
        height: 100%;
        min-height: 0;
        overflow: hidden;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-card {
        display: grid;
	        grid-template-rows: auto minmax(0, 1fr) minmax(184px, 22dvh) auto;
        height: 100%;
        max-height: calc(100dvh - max(14px, env(safe-area-inset-top)) - max(14px, env(safe-area-inset-bottom)));
        min-height: 0;
        padding: 6px;
        gap: 6px;
        overflow: hidden;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-toolbar {
        position: static;
        order: 1;
        padding: 2px;
        gap: 2px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .layout-toggle button {
        height: 26px;
        font-size: 9.8px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .tool-actions {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 2px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .tool-icon-button {
        min-width: 0;
        height: 25px;
        padding: 0 2px;
        gap: 2px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .tool-icon-button span {
        max-width: none;
        font-size: 9px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .preview-layout {
        order: 2;
        min-height: 0;
        grid-template-rows: minmax(0, 1fr) auto;
        overflow: hidden;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .design-canvas {
        height: 100%;
        min-height: 0;
      }

      body.canvas-fullscreen-open .design-canvas.canvas-fullscreen {
        position: relative;
        inset: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-control {
        width: 100%;
        justify-self: stretch;
        padding: 3px 5px;
        gap: 3px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-control label,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist {
        gap: 2px;
        font-size: 10px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist input,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row input[type="number"] {
        height: 24px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .length-step {
        height: 24px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row {
        justify-content: stretch;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist {
        grid-template-columns: minmax(0, 1fr) 64px;
        align-items: center;
        gap: 6px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row {
        grid-template-columns: 26px minmax(68px, 96px) 62px 26px;
        justify-content: end;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .wrist-comfort-tip {
        display: none;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .bottom-tray {
        display: grid !important;
        order: 3;
        min-height: 0;
        grid-template-rows: auto auto minmax(0, 1fr);
        max-height: none;
        padding: 6px;
        overflow: hidden;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .bottom-tray .tray-shell {
        height: 100%;
        min-height: 0;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .bottom-tray .tray-rail,
      body.canvas-fullscreen-open .builder.builder-fullscreen .bottom-tray .tray-scroll {
        max-height: none;
        min-height: 0;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .bottom-tray .tray-scroll {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-auto-flow: row;
        overflow-y: auto;
        overflow-x: hidden;
        max-height: none;
        height: 100%;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .bottom-tray .tray-item {
        min-height: 62px;
        grid-template-rows: 34px minmax(16px, auto) 9px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .bottom-tray .tray-item .mini-bead {
        width: 34px;
        height: 34px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .bottom-tray .tray-item strong {
        font-size: 9px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .left-panel,
      body.canvas-fullscreen-open .builder.builder-fullscreen #materials {
        display: none !important;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .left-panel .catalog {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .tool-actions {
        grid-template-columns: repeat(5, minmax(0, 1fr));
      }

	      body.canvas-fullscreen-open .builder.builder-fullscreen .mobile-builder-inline-cta {
	        display: grid !important;
	        order: 4;
	        flex: 0 0 auto;
	        grid-template-columns: minmax(0, 1fr) minmax(118px, 42%);
	        padding: 6px;
	        gap: 6px;
	      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .quick-row {
        display: none !important;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .fullscreen-exit-hint {
        display: none !important;
      }

	      body.canvas-fullscreen-open .fullscreen-exit-button {
	        top: max(8px, env(safe-area-inset-top));
	        right: max(8px, env(safe-area-inset-right));
	        width: auto;
	        min-width: 104px;
	        height: 34px;
	        padding: 0 10px;
	        border-radius: 999px;
	        font-size: 12px;
	      }
	
	      body.canvas-fullscreen-open .fullscreen-exit-button span {
	        position: static;
	        width: auto;
	        height: auto;
	        overflow: visible;
	        clip: auto;
	      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .right-panel .checkout {
        position: sticky;
        bottom: 0;
      }

      .canvas-fullscreen-toggle {
        right: 9px;
        bottom: 9px;
        max-width: calc(100% - 110px);
        height: 36px;
        padding: 0 10px;
        gap: 5px;
      }

      .canvas-fullscreen-toggle svg {
        width: 17px;
        height: 17px;
      }

      .canvas-fullscreen-label {
        max-width: 7.2em;
        font-size: 11px;
      }
    }

    @media (max-width: 380px) {
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-card {
        grid-template-rows: auto minmax(0, 1fr) minmax(196px, 28dvh);
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .tool-icon-button span {
        font-size: 8.8px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row {
        grid-template-columns: 24px minmax(64px, 88px) 58px 24px;
      }

      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist input,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row input[type="number"] {
        width: 58px;
      }
    }

    @media (max-width: 540px) {
      .canvas-length-control,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-control {
        width: 100%;
        max-width: 100%;
        grid-template-columns: 1fr;
        align-items: stretch;
        gap: 5px;
        padding: 6px;
      }

      .canvas-length-control label,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-control label {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 6px;
        min-width: 0;
        white-space: normal;
      }

      .canvas-net-wrist,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 62px;
        align-items: center;
        gap: 7px;
        min-width: 0;
        white-space: normal;
      }

      .canvas-length-control label span,
      .canvas-net-wrist span,
      .wrist-field-copy {
        overflow: visible;
        text-overflow: clip;
      }

      .canvas-length-control strong {
        flex: 0 0 auto;
        font-size: 11px;
      }

      .wrist-field-copy strong,
      .canvas-inner-label span {
        font-size: 11px;
      }

      .wrist-field-copy em {
        font-size: 9.2px;
      }

      .canvas-net-wrist input,
      .canvas-length-row input[type="number"],
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist input,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row input[type="number"] {
        width: 62px;
        height: 28px;
        padding: 0 5px;
        border-radius: 7px;
        font-size: 11px;
      }

      .canvas-length-row,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row {
        grid-template-columns: 24px minmax(88px, 148px) 62px 24px;
        justify-content: end;
        gap: 5px;
      }

      .creative-pass-panel {
        padding: 10px;
        border-radius: 12px;
      }

      .creative-pass-plans {
        grid-template-columns: 1fr;
        gap: 6px;
      }

      .creative-pass-plan {
        min-height: 56px;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
      }

      .canvas-length-row input[type="range"],
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row input[type="range"] {
        max-width: 148px;
        min-width: 88px;
        height: 24px;
      }

      .length-step,
      body.canvas-fullscreen-open .builder.builder-fullscreen .length-step {
        width: 24px;
        height: 28px;
        border-radius: 7px;
        font-size: 14px;
      }

      .wrist-comfort-tip,
      body.canvas-fullscreen-open .builder.builder-fullscreen .wrist-comfort-tip {
        display: block !important;
        font-size: 9px;
        line-height: 1.18;
        max-height: 2.3em;
        overflow: hidden;
      }
    }

    @media (max-width: 380px) {
      .canvas-length-control,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-control {
        grid-template-columns: 1fr;
        gap: 4px;
        padding: 5px;
      }

      .canvas-net-wrist,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist {
        grid-template-columns: minmax(0, 1fr) 58px;
      }

      .wrist-field-copy strong,
      .canvas-inner-label span,
      .canvas-length-control strong {
        font-size: 10.2px;
      }

      .wrist-field-copy em {
        font-size: 8.6px;
      }

      .canvas-net-wrist input,
      .canvas-length-row input[type="number"],
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist input,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row input[type="number"] {
        width: 58px;
        height: 26px;
        font-size: 9.5px;
      }

      .canvas-length-row,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row {
        grid-template-columns: 22px minmax(76px, 112px) 58px 22px;
      }

      .length-step,
      body.canvas-fullscreen-open .builder.builder-fullscreen .length-step {
        width: 22px;
        height: 26px;
      }
    }

    .design-companion {
      left: auto;
      top: 18px;
      right: 18px;
      width: min(236px, calc(100% - 36px));
      grid-template-columns: 22px minmax(0, 1fr);
      padding: 9px 10px;
      border-radius: 12px;
      transform: translateY(-6px) scale(0.98);
    }

    .design-companion.show {
      transform: translateY(0) scale(1);
    }

    .design-companion-mark {
      width: 22px;
      height: 22px;
    }

    .design-companion-text {
      display: block;
      overflow: visible;
      -webkit-line-clamp: unset;
      -webkit-box-orient: initial;
      font-size: 11px;
      line-height: 1.38;
    }

    .design-companion-actions {
      pointer-events: auto;
    }

    @media (max-width: 860px) {
      .canvas-length-control,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-control {
        width: 100%;
        max-width: none;
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
        justify-self: stretch;
        gap: 6px;
        padding: 8px;
        overflow: hidden;
      }

      .canvas-length-control label,
      .canvas-net-wrist,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-control label,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist {
        grid-column: 1;
        width: 100%;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 6px;
        min-width: 0;
      }

      .canvas-length-row,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row {
        grid-column: 1;
        width: 100%;
        min-width: 0;
        grid-template-columns: 30px minmax(0, 1fr) 68px 30px;
        justify-content: stretch;
        gap: 6px;
      }

      .canvas-length-row input[type="range"],
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row input[type="range"] {
        width: 100%;
        min-width: 0;
        max-width: none;
      }

      .canvas-net-wrist input,
      .canvas-length-row input[type="number"],
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist input,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row input[type="number"] {
        width: 68px;
      }

      .wrist-comfort-tip,
      body.canvas-fullscreen-open .builder.builder-fullscreen .wrist-comfort-tip {
        display: -webkit-box !important;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
      }

      .design-companion {
        top: 10px;
        right: 10px;
        width: min(236px, calc(100% - 20px));
      }
    }

    @media (max-width: 540px) {
      .canvas-length-control,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-control {
        padding: 6px;
        gap: 5px;
      }

      .canvas-length-row,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row {
        grid-template-columns: 28px minmax(0, 1fr) 64px 28px;
        gap: 5px;
      }

      .canvas-length-row input[type="range"],
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row input[type="range"] {
        max-width: 152px;
        justify-self: start;
      }

      .canvas-net-wrist input,
      .canvas-length-row input[type="number"],
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist input,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row input[type="number"] {
        width: 64px;
        height: 27px;
      }

      .wrist-field-copy em {
        display: none;
      }

      .wrist-comfort-tip,
      body.canvas-fullscreen-open .builder.builder-fullscreen .wrist-comfort-tip {
        display: none !important;
      }

      .design-companion {
        top: 8px;
        right: 8px;
        width: min(232px, calc(100% - 16px));
        grid-template-columns: 20px minmax(0, 1fr);
        padding: 8px 9px;
      }

      .design-companion-mark {
        width: 20px;
        height: 20px;
      }

      .design-companion-text {
        font-size: 10.8px;
        line-height: 1.35;
      }

      .design-companion-actions {
        display: none !important;
      }

      body.canvas-fullscreen-open .design-companion,
      body.canvas-fullscreen-open .design-companion.show {
        left: 50%;
        right: auto;
        top: auto;
        bottom: calc(30dvh + 48px + env(safe-area-inset-bottom));
        width: min(248px, calc(100% - 52px));
        max-height: 42px;
        grid-template-columns: 18px minmax(0, 1fr);
        padding: 6px 8px;
        border-radius: 999px;
        transform: translate(-50%, 0) scale(1);
        pointer-events: none;
      }

      body.canvas-fullscreen-open .design-companion-mark {
        width: 18px;
        height: 18px;
        font-size: 7px;
      }

      body.canvas-fullscreen-open .design-companion-text {
        display: -webkit-box;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
        font-size: 10px;
        line-height: 1.2;
      }

      body.canvas-fullscreen-open .toast {
        left: 50%;
        right: auto;
        top: auto;
        bottom: calc(30dvh + 48px + env(safe-area-inset-bottom));
        transform: translate(-50%, 8px) scale(0.98);
        max-width: min(246px, calc(100vw - 52px));
        text-align: center;
        border-radius: 999px;
        pointer-events: none;
      }

      body.canvas-fullscreen-open .toast.show {
        transform: translate(-50%, 0) scale(1);
      }
    }

    @media (max-width: 380px) {
      .canvas-length-row,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row {
        grid-template-columns: 26px minmax(0, 1fr) 58px 26px;
        gap: 4px;
      }

      .canvas-net-wrist input,
      .canvas-length-row input[type="number"],
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist input,
      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row input[type="number"] {
        width: 58px;
      }

      .wrist-field-copy em {
        display: none;
      }
    }

	    @media (max-width: 860px) {
	      .canvas-length-control,
	      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-control {
	        grid-template-columns: minmax(0, 1fr);
	        padding: 6px;
	        gap: 5px;
	      }

	      .canvas-net-wrist,
	      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-net-wrist {
	        grid-template-columns: minmax(0, 1fr) 64px;
	      }

	      .canvas-length-row,
	      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row {
	        grid-template-columns: 28px minmax(88px, 142px) 64px 28px;
	        justify-content: end;
	      }

	      .canvas-length-row input[type="range"],
	      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-length-row input[type="range"] {
	        max-width: 142px;
	        justify-self: start;
	      }
	    }

	    @media (max-width: 540px) {
	      body.canvas-fullscreen-open .builder.builder-fullscreen .canvas-card {
	        grid-template-rows: auto minmax(0, 1fr) minmax(206px, 28dvh);
	      }

	      body.canvas-fullscreen-open .canvas-status {
	        top: max(48px, env(safe-area-inset-top));
	        left: 8px;
	        right: 8px;
	        gap: 4px;
	      }

	      body.canvas-fullscreen-open .canvas-status span {
	        height: 24px;
	        padding: 0 7px;
	        font-size: 10px;
	      }

	      body.canvas-fullscreen-open .design-canvas.canvas-fullscreen .canvas-fullscreen-toggle,
	      body.canvas-fullscreen-open .canvas-fullscreen-toggle {
	        display: none !important;
	      }

	      body.canvas-fullscreen-open .fullscreen-exit-button {
	        min-width: 92px;
	        height: 32px;
	        padding: 0 9px;
	        font-size: 11px;
	      }

	      body.canvas-fullscreen-open .design-companion,
	      body.canvas-fullscreen-open .design-companion.show,
	      body.canvas-fullscreen-open .toast,
	      body.canvas-fullscreen-open .toast.show {
	        top: auto;
	        left: 50%;
	        right: auto;
	        width: min(230px, calc(100vw - 72px));
	        max-width: min(230px, calc(100vw - 72px));
	        max-height: 34px;
	        padding: 5px 8px;
	        transform: translate(-50%, 0) scale(1);
	        border-radius: 999px;
	        pointer-events: none;
	        text-align: center;
	      }

	      body.canvas-fullscreen-open .design-companion,
	      body.canvas-fullscreen-open .design-companion.show {
	        z-index: var(--z-tooltip);
	        bottom: calc(28dvh + 76px + env(safe-area-inset-bottom));
	      }

	      body.canvas-fullscreen-open .toast,
	      body.canvas-fullscreen-open .toast.show {
	        z-index: var(--z-tooltip);
	        bottom: calc(28dvh + 38px + env(safe-area-inset-bottom));
	      }

	      body.canvas-fullscreen-open .design-companion:not(.show),
	      body.canvas-fullscreen-open .toast:not(.show) {
	        opacity: 0;
	        transform: translate(-50%, 8px) scale(0.98);
	      }

	      body.canvas-fullscreen-open .design-companion-text,
	      body.canvas-fullscreen-open .toast {
	        font-size: 10px;
	        line-height: 1.15;
	        -webkit-line-clamp: 1;
	      }
	    }

    /*
      Final builder layout guard.
      Keep this block late in the stylesheet because earlier media rules are
      intentionally dense and several older overrides still target the same
      builder regions.
    */
    @media (min-width: 1181px) {
      .builder {
        align-items: start !important;
        grid-auto-rows: auto !important;
      }

      .left-panel,
      .right-panel {
        align-self: start !important;
        height: clamp(700px, calc(100vh - 96px), 920px) !important;
        max-height: clamp(700px, calc(100vh - 96px), 920px) !important;
        min-height: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        position: sticky !important;
        top: 76px !important;
      }

      .left-panel .catalog {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        overscroll-behavior: contain !important;
        grid-template-columns: repeat(auto-fill, minmax(86px, 1fr)) !important;
        align-content: start !important;
        padding-bottom: 12px !important;
      }

      .right-panel .line-items {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
      }

      .bead-library-status-bar {
        flex: 0 0 auto !important;
        margin: 0 8px 8px !important;
      }
    }

    @media (max-width: 540px) {
      body.mobile-builder-active {
        padding-bottom: 14px !important;
      }

      body.mobile-builder-active .mobile-builder-cta,
      body.mobile-builder-active.mobile-editor-controls-active .mobile-builder-cta,
      body.mobile-builder-active.mobile-tray-active .mobile-builder-cta {
        display: none !important;
      }

      body.mobile-builder-active .bottom-tray {
        max-height: min(390px, calc(100dvh - 318px)) !important;
        overflow: hidden !important;
      }

      .tray-shell {
        grid-template-columns: 76px minmax(0, 1fr) !important;
        gap: 5px !important;
        min-width: 0 !important;
      }

      .tray-rail {
        max-height: 292px !important;
        min-width: 0 !important;
      }

      .tray-scroll {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        grid-auto-rows: minmax(78px, auto) !important;
        max-height: 300px !important;
        padding: 2px 3px 74px 0 !important;
        scroll-padding-bottom: 74px !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
      }

      .tray-size-options {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 3px !important;
        min-width: 0 !important;
        overflow: visible !important;
      }

      .tray-size-options button {
        min-width: 0 !important;
        width: 100% !important;
        height: 30px !important;
        padding: 0 2px !important;
        font-size: 10px !important;
      }

      .tray-item {
        min-height: 78px !important;
        padding: 4px 2px 6px !important;
      }

      .tray-item .mini-bead {
        width: 36px !important;
        height: 36px !important;
      }

      .tray-item strong {
        font-size: 8.8px !important;
        line-height: 1.08 !important;
        -webkit-line-clamp: 2 !important;
      }

      .tray-item > span:not(.detail-chip):not(.badge) {
        font-size: 7.4px !important;
      }

      .mobile-builder-inline-cta {
        position: static !important;
        display: grid !important;
        grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr) !important;
        z-index: auto !important;
      }

      .mobile-builder-inline-actions {
        grid-template-columns: minmax(0, 0.78fr) minmax(0, 1fr) minmax(0, 1.08fr) !important;
      }
    }

    @media (max-width: 380px) {
      body.mobile-builder-active .bottom-tray {
        max-height: min(350px, calc(100dvh - 292px)) !important;
      }

      .tray-shell {
        grid-template-columns: 70px minmax(0, 1fr) !important;
      }

      .tray-scroll {
        grid-auto-rows: minmax(72px, auto) !important;
        max-height: 258px !important;
      }
    }

    .material-popover.pinned,
    .material-popover.detail-expanded {
      max-height: min(82vh, 720px) !important;
      overflow: auto !important;
    }

    .material-popover.pinned .popover-grid span,
    .material-popover.detail-expanded .popover-grid span,
    .material-popover.pinned .popover-long,
	    .material-popover.pinned .popover-cultural,
	    .material-popover.detail-expanded .popover-long,
	    .material-popover.detail-expanded .popover-cultural {
	      display: block !important;
	      -webkit-line-clamp: unset !important;
	      overflow: visible !important;
	    }

	    @media (min-width: 721px) {
	      .builder .left-panel .tab,
	      .builder .left-panel .filter {
	        /* 2026-06-24 desktop/touch Builder filter tap target:
	           tablet and touch-laptop shoppers need reliable category/material controls without changing the phone tray layout. */
	        min-width: 44px !important;
	        min-height: 44px !important;
	        padding-block: 8px !important;
	        touch-action: manipulation;
	      }

	      .builder .left-panel .detail-chip {
	        /* 2026-06-24 desktop/touch Builder detail-chip tap target:
	           material proof entry must be tappable on product cards before a shopper adds beads to the design. */
	        min-width: 44px !important;
	        min-height: 44px !important;
	        height: 44px !important;
	        padding-inline: 10px !important;
	        touch-action: manipulation;
	      }
	    }

		  

/* 2026-10-13 P1 UX: tagline, chips, mobile mid-word breaks, layout band */
.brand {
  min-width: 0;
  max-width: min(420px, 58vw);
}
.brand span[data-i18n="tagline"],
.brand-lockup > span[data-i18n="tagline"] {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.material-filter-row button,
.left-panel .detail-chip,
.tray-item .detail-chip,
.product-card .detail-chip,
[data-material-filter],
.bead-chip,
.chip {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
  word-break: keep-all;
  overflow-wrap: normal;
}
#presetSelect {
  max-width: min(240px, 48vw);
  text-overflow: ellipsis;
}
@media (max-width: 430px) {
  body, .builder, .left-panel, .home-community-band, .home-material-band, .home-brand-copy {
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
    hyphens: manual !important;
  }
  #presetSelect {
    max-width: min(180px, 55vw);
    font-size: 13px;
  }
  /* Shrink huge empty band between CTA and 设计灵感 so bead library stays visible */
  .home-brand-hero {
    min-height: min(58vh, 520px) !important;
    max-height: 62vh;
  }
  .home-community-band {
    margin-top: 12px !important;
    padding-top: 12px !important;
  }
  .builder .left-panel,
  #builder .bead-library,
  .tray-panel {
    min-height: 0;
  }
  .emotion-card, .mood-chip, [data-home-text="loveCopy"], .gift-moods {
    min-width: 0;
  }
  .emotion-grid, .gift-mood-row, .home-mood-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
}
