/* TBW gallery system: existing brand palette, photography-led layout. */
body.tbw-gallery {
  --gallery-ink: #071d38;
  --gallery-muted: #576d88;
  --gallery-blue: #0879c9;
  --gallery-cyan: #3ecdf7;
  --gallery-dark: #021b3c;
  --gallery-paper: #f1f9fc;
  --gallery-white: #fff;
  --gallery-line: #dce5ed;
  --font-main: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
  background: var(--gallery-white);
  color: var(--gallery-ink);
  font-family: var(--font-main);
  font-size: 17px;
  line-height: 1.47;
  letter-spacing: -.022em;
}
body.tbw-gallery .gallery-main { width: 100%; overflow: clip; }
body.tbw-gallery .gallery-main :is(h1,h2,h3,p,figure,blockquote) { margin: 0; }
body.tbw-gallery :is(.gallery-main,.gallery-header,.gallery-footer) * { font-family: var(--font-main); }
body.tbw-gallery .gallery-main h1 { color: var(--gallery-ink); font-size: 56px; line-height: 1.07; font-weight: 600; letter-spacing: -.035em; max-width: 900px; margin-inline: auto; }
body.tbw-gallery .gallery-main h2 { color: var(--gallery-ink); font-size: 40px; line-height: 1.1; font-weight: 600; letter-spacing: -.035em; }
body.tbw-gallery .gallery-main h3 { color: var(--gallery-ink); font-size: 24px; line-height: 1.2; font-weight: 600; letter-spacing: -.025em; }
body.tbw-gallery .gallery-main p { color: var(--gallery-muted); font-size: 17px; line-height: 1.47; }
body.tbw-gallery :is(a,button,summary,input):focus-visible { outline: 3px solid var(--gallery-blue); outline-offset: 5px; }
body.tbw-gallery [id] { scroll-margin-top: 120px; }
body.tbw-gallery .gallery-header { position: sticky; top: 0; z-index: 80; background: var(--gallery-dark); color: white; }
body.tbw-gallery .gallery-nav { max-width: 1120px; min-height: 56px; margin: auto; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; gap: 40px; }
body.tbw-gallery .gallery-brand { display:flex; align-items:center; min-height: 48px; flex-shrink: 0; }
body.tbw-gallery .gallery-brand img { width: 68px; height: 42px; object-fit: contain; }
body.tbw-gallery .gallery-desktop-nav { display: flex; flex: 1; justify-content: center; gap: 42px; }
body.tbw-gallery .gallery-desktop-nav a { font-size: 12px; letter-spacing: 0; color: #e5f6fd; min-height: 44px; display:flex; align-items:center; }
body.tbw-gallery .gallery-desktop-nav [aria-current=page] { color: var(--gallery-cyan); }
body.tbw-gallery .gallery-nav-actions { display:flex; align-items:center; gap: 8px; }
body.tbw-gallery .gallery-bag { display:flex; align-items:center; justify-content:center; gap:8px; min-width:44px; min-height:44px; border:0; background:none; color:white; cursor:pointer; font:inherit; }
body.tbw-gallery .gallery-bag .cart-badge-count { font-size: 12px; color:var(--gallery-cyan); background:none; padding:0; min-width:0; }
body.tbw-gallery .gallery-mobile-menu { display:none; }
body.tbw-gallery .gallery-subnav { min-height: 56px; padding: 10px max(24px,calc((100% - 1072px)/2)); display:flex; align-items:center; justify-content:space-between; background:var(--gallery-paper); border-bottom:1px solid var(--gallery-line); }
body.tbw-gallery .gallery-subnav > span { font-size:21px; font-weight:600; }
body.tbw-gallery .gallery-main .gallery-eyebrow { font-size:12px; line-height:1.4; letter-spacing:.12em; font-weight:600; color:var(--gallery-blue); margin-bottom:20px; text-transform:uppercase; }
body.tbw-gallery .gallery-main .gallery-lead { font-size:28px; line-height:1.25; letter-spacing:-.02em; margin:20px auto 0; max-width:700px; color:var(--gallery-ink); }
body.tbw-gallery .gallery-hero { text-align:center; padding:80px 24px 0; background:var(--gallery-white); }
body.tbw-gallery .gallery-hero h1 > span { color:var(--gallery-muted); }
body.tbw-gallery .gallery-actions { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:24px; margin-top:28px; }
body.tbw-gallery .gallery-button { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:11px 22px; border-radius:9999px; border:1px solid transparent; background:var(--gallery-blue); color:white; font-size:17px; font-weight:400; line-height:1.25; letter-spacing:-.02em; cursor:pointer; transition:transform .16s ease; box-shadow:none; }
body.tbw-gallery .gallery-button-small { font-size:12px; min-height:36px; padding:8px 17px; }
body.tbw-gallery .gallery-link { display:inline-flex; min-height:44px; align-items:center; gap:8px; font-size:17px; line-height:1.47; font-weight:400; color:var(--gallery-blue); background:none; border:0; padding:0; cursor:pointer; }
body.tbw-gallery :is(.gallery-button,.gallery-bag,.launch-submit):active { transform:scale(.95); }
body.tbw-gallery .gallery-main .gallery-pay-image { margin:48px -24px 0; position:relative; background:var(--gallery-dark); }
body.tbw-gallery .gallery-pay-image img { width:100%; height:clamp(420px,48vw,700px); object-fit:cover; object-position:center 53%; }
body.tbw-gallery .gallery-pay-image figcaption { position:absolute; bottom:16px; left:24px; color:white; background:var(--gallery-dark); padding:6px 10px; font-size:11px; border-radius:8px; }
body.tbw-gallery .gallery-section { padding:80px max(24px,calc((100% - 1072px)/2)); background:var(--gallery-white); }
body.tbw-gallery .gallery-section-heading { text-align:center; margin-bottom:56px; }
body.tbw-gallery .gallery-section-heading > p:not(.gallery-eyebrow) { margin-top:16px; }
body.tbw-gallery .gallery-grid-three { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; }
body.tbw-gallery .gallery-grid-three article > svg { width:32px; height:36px; color:var(--gallery-blue); margin-bottom:24px; }
body.tbw-gallery .gallery-grid-three article > p { margin-top:16px; }
body.tbw-gallery .gallery-grid-three article > small { display:block; margin-top:20px; color:var(--gallery-muted); font-size:12px; }
body.tbw-gallery .gallery-step { display:block; font-size:14px; color:var(--gallery-blue); margin-bottom:24px; }
body.tbw-gallery .gallery-waitlist { display:grid; grid-template-columns:1fr 1fr; gap:100px; padding:96px max(24px,calc((100% - 1072px)/2)); align-items:center; }
body.tbw-gallery .gallery-waitlist h2 { font-size:48px; }
body.tbw-gallery .gallery-waitlist p { margin-top:24px; max-width:420px; }
body.tbw-gallery .gallery-main .gallery-dark { background:var(--gallery-dark); color:white; }
body.tbw-gallery .gallery-main .gallery-dark :is(h2,h3) { color:white; }
body.tbw-gallery .gallery-main .gallery-dark p { color:#c1d1e1; }
body.tbw-gallery .gallery-main .gallery-dark :is(.gallery-link,.gallery-eyebrow,.gallery-step) { color:var(--gallery-cyan); }
body.tbw-gallery .gallery-main .gallery-dark .gallery-button { background:var(--gallery-cyan); color:var(--gallery-dark); }
body.tbw-gallery .launch-form { display:grid; gap:12px; width:100%; margin:0; }
body.tbw-gallery .launch-form > label { display:flex; align-items:center; gap:12px; background:white; border:1px solid var(--gallery-line); border-radius:12px; padding:0 16px; min-height:56px; color:var(--gallery-muted); }
body.tbw-gallery .launch-form label svg { width:20px; height:22px; flex-shrink:0; }
body.tbw-gallery .launch-form input:not([name=website]) { width:100%; min-width:0; color:var(--gallery-ink); background:transparent; border:0; min-height:54px; font:inherit; padding:10px 0; }
body.tbw-gallery .launch-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
body.tbw-gallery .launch-submit { min-height:48px; border:0; border-radius:9999px; background:var(--gallery-cyan); color:var(--gallery-dark); font-size:17px; font-weight:600; padding:12px 22px; cursor:pointer; margin-top:8px; }
body.tbw-gallery .launch-submit:disabled { opacity:.65; cursor:default; }
body.tbw-gallery .launch-early { display:none; }
body.tbw-gallery .gallery-main .gallery-fine { font-size:12px; line-height:1.5; margin-top:20px; }
body.tbw-gallery .gallery-main .launch-form-message { margin:10px 0; color:white; }
body.tbw-gallery .gallery-wide-image { width:calc(100% + 48px); max-width:none; height:360px; object-fit:cover; margin:48px -24px 0; }
body.tbw-gallery .gallery-collection { display:grid; grid-template-columns:100px minmax(0,1.4fr) minmax(0,.7fr); gap:56px; align-items:center; padding:96px max(24px,calc((100% - 1072px)/2)); background:var(--gallery-paper); }
body.tbw-gallery .gallery-collection:last-child { background:var(--gallery-white); }
body.tbw-gallery .gallery-collection-number { font-size:64px; font-weight:300; color:var(--gallery-blue); letter-spacing:-.05em; }
body.tbw-gallery .gallery-collection p:not(.gallery-eyebrow) { margin:20px 0; max-width:510px; }
body.tbw-gallery .gallery-collection-note { border-left:1px solid var(--gallery-line); padding-left:32px; }
body.tbw-gallery .gallery-collection-note span { display:block; font-size:12px; margin-bottom:12px; }
body.tbw-gallery .gallery-collection-note strong { font-size:24px; line-height:1.25; font-weight:600; }
body.tbw-gallery .gallery-cta { padding:88px 24px; text-align:center; background:var(--gallery-paper); }
body.tbw-gallery .gallery-cta > p:not(.gallery-eyebrow) { margin:24px auto; max-width:560px; }
body.tbw-gallery .gallery-aroma-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
body.tbw-gallery .gallery-aroma { border:1px solid var(--gallery-line); background:white; border-radius:18px; padding:40px; }
body.tbw-gallery .gallery-aroma > p:not(.gallery-eyebrow) { margin:20px 0; max-width:350px; }
body.tbw-gallery .gallery-aroma .gallery-step { margin-bottom:48px; }
body.tbw-gallery .gallery-main .gallery-story-photo { margin:48px auto 0; max-width:980px; }
body.tbw-gallery .gallery-story-photo img { width:100%; height:560px; object-fit:cover; object-position:center 48%; }
body.tbw-gallery .gallery-story-photo figcaption { color:var(--gallery-muted); font-size:12px; padding:16px; }
body.tbw-gallery .gallery-narrative { padding:96px max(24px,calc((100% - 980px)/2)); display:grid; grid-template-columns:1fr 1.4fr; gap:80px; }
body.tbw-gallery .gallery-narrative p + p { margin-top:24px; }
body.tbw-gallery .gallery-milestone { display:block; font-size:56px; line-height:1; font-weight:600; color:var(--gallery-blue); margin-bottom:32px; }
body.tbw-gallery .gallery-founder { display:grid; grid-template-columns:1fr 1fr; background:var(--gallery-paper); align-items:center; }
body.tbw-gallery .gallery-founder img { width:100%; height:680px; object-fit:cover; object-position:center 25%; }
body.tbw-gallery .gallery-founder > div { padding:64px; max-width:680px; }
body.tbw-gallery .gallery-founder blockquote { font-size:24px; line-height:1.5; margin:32px 0; }
body.tbw-gallery .gallery-catalog-hero { padding-bottom:64px; }
body.tbw-gallery .gallery-catalog { background:var(--gallery-paper); }
body.tbw-gallery .gallery-heading-left { text-align:left; margin-bottom:32px; }
body.tbw-gallery .gallery-catalog .catalog-status { margin:0 0 32px; background:none; border:0; padding:0; box-shadow:none; }
body.tbw-gallery .gallery-catalog .product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
body.tbw-gallery .gallery-catalog .product-card { display:flex; flex-direction:column; gap:24px; padding:28px; background:white!important; border:1px solid var(--gallery-line)!important; border-radius:18px!important; box-shadow:none!important; transform:none!important; animation:none!important; min-height:330px; }
body.tbw-gallery .gallery-catalog .product-card::before,body.tbw-gallery .gallery-catalog .product-card::after { display:none; }
body.tbw-gallery .gallery-catalog .product-card-top { display:flex; justify-content:space-between; align-items:center; gap:12px; }
body.tbw-gallery .gallery-catalog .product-copy { flex:1; }
body.tbw-gallery .gallery-catalog .product-copy h3 { margin:12px 0; font-size:24px; }
body.tbw-gallery .gallery-catalog .product-copy > span { font-size:14px; line-height:1.5; color:var(--gallery-muted); }
body.tbw-gallery .gallery-catalog .product-meta { display:flex; flex-direction:column; align-items:flex-start; border:0; padding:0; margin:0; gap:4px; }
body.tbw-gallery .gallery-catalog .product-meta strong { font-size:24px; color:var(--gallery-ink); }
body.tbw-gallery .gallery-catalog .product-meta small { font-size:12px; color:var(--gallery-muted); }
body.tbw-gallery .gallery-catalog .button-add-cart { width:100%; display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:44px; padding:11px 18px; background:var(--gallery-blue)!important; color:white!important; border:0!important; border-radius:9999px!important; box-shadow:none!important; font-size:14px; font-weight:400; }
body.tbw-gallery .gallery-catalog .button-add-cart-icon { background:none; color:inherit; width:auto; height:auto; }
body.tbw-gallery .gallery-catalog .product-availability { font-size:11px; color:var(--gallery-muted); background:var(--gallery-paper); }
body.tbw-gallery .gallery-catalog .product-sequence { color:var(--gallery-muted); font-size:12px; }
body.tbw-gallery .gallery-footer { background:#f5f7fa; padding:64px 24px 28px; border-top:1px solid var(--gallery-line); font-size:12px; color:var(--gallery-muted); }
body.tbw-gallery .gallery-footer-inner { max-width:1072px; margin:auto; }
body.tbw-gallery .gallery-footer-top { display:grid; grid-template-columns:minmax(220px,1.5fr) repeat(4,minmax(0,1fr)); gap:32px; padding-bottom:44px; }
body.tbw-gallery .gallery-footer-name { font-size:21px; font-weight:600; letter-spacing:-.02em; color:var(--gallery-ink); }
body.tbw-gallery .gallery-footer-brand p { margin:8px 0 14px; font-size:14px; }
body.tbw-gallery .gallery-footer-mail { display:inline-flex; align-items:center; min-height:32px; font-size:13px; color:var(--gallery-blue); }
body.tbw-gallery .gallery-footer-column h2 { margin:6px 0 10px; font-size:12px; font-weight:600; letter-spacing:0; color:var(--gallery-ink); }
body.tbw-gallery .gallery-footer-column ul { margin:0; padding:0; list-style:none; }
body.tbw-gallery .gallery-footer-column a { display:inline-flex; align-items:center; min-height:32px; font-size:13px; color:var(--gallery-muted); }
body.tbw-gallery .gallery-footer-payments { display:flex; align-items:center; justify-content:space-between; gap:20px 32px; padding:22px 0; border-top:1px solid var(--gallery-line); }
body.tbw-gallery .gallery-footer-payments strong { display:block; font-size:13px; font-weight:600; color:var(--gallery-ink); }
body.tbw-gallery .gallery-footer-payments span { display:block; margin-top:3px; font-size:12px; }
body.tbw-gallery .gallery-footer-payments ul { display:flex; flex-wrap:wrap; gap:10px; margin:0; padding:0; list-style:none; }
body.tbw-gallery .gallery-footer-payments li { display:grid; place-items:center; width:60px; height:40px; border:1px solid var(--gallery-line); border-radius:9px; background:#fff; }
body.tbw-gallery .gallery-footer-payments img { display:block; }
body.tbw-gallery .gallery-footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-top:18px; border-top:1px solid var(--gallery-line); }
body.tbw-gallery .gallery-footer-legal a { display:inline-flex; align-items:center; min-height:32px; color:var(--gallery-muted); }
body.tbw-gallery .gallery-footer-legal > span { display:inline-flex; align-items:center; min-height:32px; }
@media(hover:hover) and (pointer:fine) { body.tbw-gallery .gallery-footer :is(.gallery-footer-column,.gallery-footer-legal) a:hover { color:var(--gallery-ink); text-decoration:underline; text-underline-offset:3px; } }
@media(pointer:coarse) { body.tbw-gallery .gallery-footer :is(.gallery-footer-column a,.gallery-footer-legal a,.gallery-footer-mail) { min-height:44px; } }
/* Existing authenticated/account and checkout flows retain their structure. */
body.tbw-gallery .profile-main { padding-top:64px!important; }
body.tbw-gallery :is(.auth-card,.profile-side-card,.profile-form-card,.profile-order-card,.profile-rewards-card) { box-shadow:none!important; border-radius:18px!important; }
@media(max-width:1068px) {
 body.tbw-gallery .gallery-main h1 { font-size:48px; }
 body.tbw-gallery .gallery-nav { gap:24px; }
 body.tbw-gallery .gallery-desktop-nav { gap:28px; }
 body.tbw-gallery .gallery-waitlist { gap:48px; }
 body.tbw-gallery .gallery-catalog .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 body.tbw-gallery .gallery-founder > div { padding:40px; }
}
@media(max-width:833px) {
 body.tbw-gallery .gallery-desktop-nav { display:none; }
 body.tbw-gallery .gallery-mobile-menu { display:block; }
 body.tbw-gallery .gallery-mobile-menu summary { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; cursor:pointer; list-style:none; }
 body.tbw-gallery .gallery-mobile-menu summary::-webkit-details-marker { display:none; }
 body.tbw-gallery .gallery-mobile-menu nav { position:absolute; top:100%; left:0; right:0; padding:16px 24px 28px; background:var(--gallery-dark); border-top:1px solid #264461; }
 body.tbw-gallery .gallery-mobile-menu nav a { display:flex; align-items:center; min-height:48px; color:white; font-size:21px; }
 body.tbw-gallery .gallery-mobile-menu nav [aria-current=page] { color:var(--gallery-cyan); }
 body.tbw-gallery .gallery-main h1 { font-size:40px; }
 body.tbw-gallery .gallery-main h2 { font-size:34px; }
 body.tbw-gallery .gallery-hero { padding-top:64px; }
 body.tbw-gallery .gallery-grid-three { gap:28px; }
 body.tbw-gallery .gallery-waitlist { gap:32px; }
 body.tbw-gallery .gallery-collection { grid-template-columns:56px 1fr; gap:32px; }
 body.tbw-gallery .gallery-collection-number { font-size:48px; }
 body.tbw-gallery .gallery-collection-note { grid-column:2; padding:0; border:0; }
 body.tbw-gallery .gallery-narrative { gap:32px; }
 body.tbw-gallery .gallery-founder { grid-template-columns:1fr; }
 body.tbw-gallery .gallery-founder img { max-height:540px; }
 body.tbw-gallery .gallery-founder > div { max-width:100%; }
 body.tbw-gallery .gallery-footer-top { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 24px; }
 body.tbw-gallery .gallery-footer-brand { grid-column:1/-1; }
}
@media(max-width:640px) {
 body.tbw-gallery .gallery-main h1 { font-size:34px; }
 body.tbw-gallery .gallery-main h2 { font-size:32px; }
 body.tbw-gallery .gallery-main h3 { font-size:22px; }
 body.tbw-gallery .gallery-main .gallery-lead { font-size:21px; }
 body.tbw-gallery .gallery-main .gallery-eyebrow { font-size:10px; letter-spacing:.1em; }
 body.tbw-gallery .gallery-hero { padding-top:48px; }
 body.tbw-gallery .gallery-actions { gap:16px; margin-top:24px; }
 body.tbw-gallery .gallery-button,body.tbw-gallery .gallery-link { font-size:14px; }
 body.tbw-gallery .gallery-subnav .gallery-button { font-size:12px; }
 body.tbw-gallery .gallery-pay-image img { height:350px; object-position:64% center; }
 body.tbw-gallery .gallery-section { padding-block:56px; }
 body.tbw-gallery .gallery-section-heading { margin-bottom:36px; }
 body.tbw-gallery .gallery-grid-three { grid-template-columns:1fr; gap:40px; }
 body.tbw-gallery .gallery-grid-three article { max-width:420px; }
 body.tbw-gallery .gallery-waitlist { grid-template-columns:1fr; padding:56px 24px; gap:36px; }
 body.tbw-gallery .gallery-wide-image { height:260px; }
 body.tbw-gallery .gallery-collection { padding:56px 24px; gap:24px; }
 body.tbw-gallery .gallery-collection-note strong { font-size:18px; }
 body.tbw-gallery .gallery-aroma-grid { grid-template-columns:1fr; }
 body.tbw-gallery .gallery-aroma { padding:28px; }
 body.tbw-gallery .gallery-aroma .gallery-step { margin-bottom:32px; }
 body.tbw-gallery .gallery-cta { padding:64px 24px; }
 body.tbw-gallery .gallery-story-photo img { height:420px; }
 body.tbw-gallery .gallery-narrative { grid-template-columns:1fr; padding:56px 24px; }
 body.tbw-gallery .gallery-founder > div { padding:40px 24px; }
 body.tbw-gallery .gallery-catalog .product-grid { grid-template-columns:1fr; }
 body.tbw-gallery .gallery-catalog-hero { padding-bottom:48px; }
 body.tbw-gallery .gallery-footer-bottom { flex-direction:column; align-items:flex-start; gap:8px; }
 body.tbw-gallery .gallery-footer-payments { flex-direction:column; align-items:flex-start; }
 body.tbw-gallery .profile-main { padding-top:32px!important; }
}
@media(max-width:419px) { body.tbw-gallery .gallery-main h1 { font-size:32px; } }
@media(prefers-reduced-motion:reduce) { body.tbw-gallery { scroll-behavior:auto; } body.tbw-gallery *,body.tbw-gallery *::before,body.tbw-gallery *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

/* Commerce homepage. Brand palette retained; product and story lead. */
body.tbw-gallery .gallery-desktop-nav { gap:24px; }
body.tbw-gallery .store-hero { display:grid; grid-template-columns:1fr 1fr; min-height:690px; background:var(--gallery-paper); }
body.tbw-gallery .store-hero-copy { padding:88px 48px 64px max(24px,calc((100vw - 1160px)/2)); align-self:center; }
body.tbw-gallery .store-hero h1 { margin:0; font-size:clamp(48px,5.2vw,76px); letter-spacing:-.055em; }
body.tbw-gallery .store-hero .store-intro { font-size:26px; line-height:1.3; color:var(--gallery-ink); margin:28px 0 16px; }
body.tbw-gallery .store-hero .gallery-actions { justify-content:flex-start; gap:22px; margin-top:32px; }
body.tbw-gallery .store-hero-photo { display:grid; grid-template-rows:1fr auto; min-width:0; background:var(--gallery-dark); }
body.tbw-gallery .store-hero-photo img { height:580px; width:100%; object-fit:cover; object-position:center 45%; }
body.tbw-gallery .store-hero-photo figcaption { padding:24px 32px; display:grid; grid-template-columns:1fr auto; align-items:center; color:white; gap:6px 16px; }
body.tbw-gallery .store-hero-photo figcaption > span { grid-column:1/-1; font-size:10px; letter-spacing:.1em; color:#c1d1e1; }
body.tbw-gallery .store-hero-photo strong { font-size:24px; font-weight:600; }
body.tbw-gallery .store-hero-photo a { font-size:12px; min-height:44px; display:flex; align-items:center; color:var(--gallery-cyan); }
body.tbw-gallery .store-space-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
body.tbw-gallery .store-space { padding:32px; background:var(--gallery-paper); border-radius:18px; display:flex; flex-direction:column; border:1px solid var(--gallery-line); }
body.tbw-gallery .store-space p { margin:20px 0 32px; }
body.tbw-gallery .store-space-link { margin-top:auto; display:flex; justify-content:space-between; color:var(--gallery-blue); font-size:14px; }
body.tbw-gallery .store-senses { padding:88px max(24px,calc((100% - 1160px)/2)); display:grid; grid-template-columns:1fr 1.3fr; gap:72px; }
body.tbw-gallery .store-senses-intro > p:not(.gallery-eyebrow) { margin:24px 0; max-width:310px; }
body.tbw-gallery .store-scent-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 32px; }
body.tbw-gallery .store-scent { padding:24px 0; border-top:1px solid #34506c; }
body.tbw-gallery .store-scent > span { font-size:12px; color:var(--gallery-cyan); }
body.tbw-gallery .store-scent h3 { margin-top:16px; font-size:23px; }
body.tbw-gallery .store-scent p { margin:12px 0; font-size:14px; }
body.tbw-gallery .store-scent-arrow { display:block; text-align:right; }
body.tbw-gallery .store-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; }
body.tbw-gallery .store-brand { display:grid; grid-template-columns:1fr 1fr; align-items:center; background:white; }
body.tbw-gallery .store-brand > img { height:580px; width:100%; object-fit:cover; }
body.tbw-gallery .store-brand > div { padding:64px; max-width:630px; }
body.tbw-gallery .store-brand p:not(.gallery-eyebrow) { margin:24px 0; }
body.tbw-gallery .store-pay { display:grid; grid-template-columns:1fr 1fr; align-items:center; }
body.tbw-gallery .store-pay > div { padding:80px 48px 80px max(24px,calc((100vw - 1160px)/2)); }
body.tbw-gallery .store-pay p:not(.gallery-eyebrow) { margin:24px 0; max-width:420px; }
body.tbw-gallery .store-pay > img { width:100%; height:540px; object-fit:cover; object-position:64% center; }
body.tbw-gallery .store-empty { border:1px solid var(--gallery-line); border-radius:18px; background:white; padding:40px; }
body.tbw-gallery .store-empty p { margin:16px 0; }
@media(max-width:1068px) {
 body.tbw-gallery .store-hero-copy { padding:64px 32px; }
 body.tbw-gallery .store-hero-photo img { height:540px; }
 body.tbw-gallery .store-senses { gap:32px; }
 body.tbw-gallery .store-brand > div { padding:40px; }
 body.tbw-gallery .gallery-desktop-nav { gap:16px; }
}
@media(max-width:833px) {
 body.tbw-gallery .store-hero { grid-template-columns:1fr; min-height:0; }
 body.tbw-gallery .store-hero-copy { padding:56px 24px 48px; text-align:center; }
 body.tbw-gallery .store-hero h1 { margin:auto; font-size:54px; }
 body.tbw-gallery .store-hero .gallery-actions { justify-content:center; }
 body.tbw-gallery .store-hero-photo img { height:470px; }
 body.tbw-gallery .store-space-grid { grid-template-columns:1fr; }
 body.tbw-gallery .store-senses { grid-template-columns:1fr; padding-block:56px; }
 body.tbw-gallery .store-brand,body.tbw-gallery .store-pay { grid-template-columns:1fr; }
 body.tbw-gallery .store-brand > img { height:360px; }
 body.tbw-gallery .store-brand > div { padding:48px 24px; }
 body.tbw-gallery .store-pay > div { padding:56px 24px; }
 body.tbw-gallery .store-pay > img { height:350px; }
 body.tbw-gallery .store-section-heading { align-items:flex-start; flex-direction:column; }
}
@media(max-width:419px) {
 body.tbw-gallery .store-hero h1 { font-size:44px; }
 body.tbw-gallery .store-hero .store-intro { font-size:22px; }
 body.tbw-gallery .store-hero-photo figcaption { padding:20px 24px; }
 body.tbw-gallery .store-scent-grid { grid-template-columns:1fr; }
 body.tbw-gallery .store-empty { padding:24px; }
}
@media(prefers-reduced-motion:no-preference) {
 body.tbw-gallery .store-hero-photo img { animation:storePhotoIn .65s ease-out both; }
 @keyframes storePhotoIn { from { opacity:.65; transform:translateY(12px); } to { opacity:1; transform:none; } }
}

/* Conversion hero: fixed layout and actions across copy previews. */
body.tbw-gallery .conversion-hero { min-height:590px; }
body.tbw-gallery .conversion-hero .store-hero-copy { padding-top:56px; padding-bottom:48px; }
body.tbw-gallery .conversion-hero h1 { font-size:clamp(36px,3.8vw,54px); line-height:1.08; max-width:590px; }
body.tbw-gallery .conversion-hero .store-intro { font-size:20px; line-height:1.47; margin:24px 0; max-width:490px; }
body.tbw-gallery .conversion-hero .store-hero-photo img { height:480px; }
body.tbw-gallery .conversion-hero .conversion-proof { font-size:13px; margin-top:24px; }
@media(max-width:833px) {
 body.tbw-gallery .conversion-hero { min-height:0; }
 body.tbw-gallery .conversion-hero .store-hero-copy { padding:28px 24px 20px; }
 body.tbw-gallery .conversion-hero h1 { font-size:32px; max-width:540px; }
 body.tbw-gallery .conversion-hero .gallery-eyebrow { margin-bottom:12px; }
 body.tbw-gallery .conversion-hero .store-intro { font-size:16px; margin:16px auto; }
 body.tbw-gallery .conversion-hero .gallery-actions { gap:8px 20px; margin-top:16px; }
 body.tbw-gallery .conversion-hero .conversion-proof { margin-top:12px; font-size:12px; }
 body.tbw-gallery .conversion-hero .store-hero-photo img { height:210px; object-position:center 48%; }
 body.tbw-gallery .conversion-hero .store-hero-photo figcaption { padding:12px 24px; }
}
@media(max-width:360px) { body.tbw-gallery .conversion-hero h1 { font-size:28px; } }

/* Interaction contract: no movement for text, prices or fields. */
body.tbw-gallery .store-hero-photo img { animation:tbwPhotoFade 300ms ease-out both; }
@keyframes tbwPhotoFade { from { opacity:.7; } to { opacity:1; } }
body.tbw-gallery :is(.gallery-button,.gallery-bag,.launch-submit,.button-add-cart) { transition:background-color 120ms ease,border-color 120ms ease,transform 100ms ease!important; }
body.tbw-gallery :is(.gallery-button,.gallery-bag,.launch-submit,.button-add-cart):active:not(:disabled) { transform:scale(.98)!important; }
body.tbw-gallery :is(.gallery-link,.gallery-desktop-nav a) { transition:color 120ms ease; }
@media(hover:hover) and (pointer:fine) {
 body.tbw-gallery :is(.gallery-link,.gallery-desktop-nav a):hover { text-decoration:underline; text-underline-offset:4px; }
 body.tbw-gallery .gallery-button:hover { background:var(--gallery-ink); color:white; }
 body.tbw-gallery .gallery-dark .gallery-button:hover { background:white; color:var(--gallery-dark); }
 body.tbw-gallery :is(.store-space,.gallery-aroma):hover { border-color:var(--gallery-blue); }
}
body.tbw-gallery .cart-drawer { transition:transform 220ms ease-out; }
body.tbw-gallery .cart-overlay { transition:opacity 180ms ease; backdrop-filter:none; -webkit-backdrop-filter:none; }
body.tbw-gallery .cart-toast { transform:none!important; transition:opacity 180ms ease; }
body.tbw-gallery :is(.product-meta,.product-availability,.cart-badge-count,.gallery-main h1,.gallery-main h2,input,select,textarea) { animation:none!important; transform:none!important; }
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto!important; }
 body.tbw-gallery *,body.tbw-gallery *::before,body.tbw-gallery *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
 body.tbw-gallery :is(.gallery-button,.gallery-bag,.launch-submit,.button-add-cart):active { transform:none!important; }
}

/* One editorial scroll scene. Native scrolling; readable without JavaScript. */
body.tbw-gallery .sensory-story { background:var(--gallery-dark); color:white; }
body.tbw-gallery .sensory-stage { position:relative; display:grid; grid-template-columns:1fr 1fr; overflow:hidden; }
body.tbw-gallery .sensory-image { overflow:hidden; min-height:560px; }
body.tbw-gallery .sensory-image img { width:100%; height:100%; object-fit:cover; }
body.tbw-gallery .sensory-copy { padding:64px clamp(24px,4vw,72px); align-self:center; }
body.tbw-gallery .sensory-copy h2 { color:white; font-size:clamp(32px,3.5vw,52px); letter-spacing:-.045em; }
body.tbw-gallery .sensory-copy .gallery-eyebrow,body.tbw-gallery .sensory-copy .gallery-link { color:var(--gallery-cyan); }
body.tbw-gallery .sensory-chapters { margin:36px 0 24px; display:grid; gap:24px; }
body.tbw-gallery .sensory-chapters p { position:relative; padding-left:32px; font-size:14px; line-height:1.5; color:#d4e0ed; }
body.tbw-gallery .sensory-chapters p > span { position:absolute; left:0; top:3px; font-size:11px; color:var(--gallery-cyan); }
body.tbw-gallery .sensory-chapters strong { display:block; margin-bottom:4px; font-size:20px; color:white; font-weight:600; }
body.tbw-gallery .sensory-progress { display:none; }
@media(min-width:834px) and (min-height:600px) and (prefers-reduced-motion:no-preference) {
 body.tbw-gallery .sensory-story.sensory-enhanced { height:185vh; height:185svh; }
 body.tbw-gallery .sensory-enhanced .sensory-stage { position:sticky; top:56px; height:calc(100vh - 56px); height:calc(100svh - 56px); }
 body.tbw-gallery .sensory-enhanced .sensory-image { min-height:0; }
 body.tbw-gallery .sensory-enhanced .sensory-image img { transform:scale(var(--sensory-scale,1.18)); }
 body.tbw-gallery .sensory-enhanced .sensory-copy { padding-block:24px; }
 body.tbw-gallery .sensory-enhanced .sensory-chapters { gap:18px; margin-block:28px 18px; }
 body.tbw-gallery .sensory-enhanced .sensory-chapters p { opacity:.6; transition:opacity 260ms ease; }
 body.tbw-gallery .sensory-enhanced .sensory-chapters p.is-current { opacity:1; }
 body.tbw-gallery .sensory-enhanced .sensory-progress { display:block; position:absolute; bottom:0; left:0; right:0; height:2px; background:#24405c; }
 body.tbw-gallery .sensory-progress > span { display:block; height:100%; background:var(--gallery-cyan); transform-origin:left; transform:scaleX(var(--sensory-progress,0)); }
}
@media(max-width:833px) {
 body.tbw-gallery .sensory-stage { grid-template-columns:1fr; }
 body.tbw-gallery .sensory-image { min-height:0; height:300px; }
 body.tbw-gallery .sensory-copy { padding:40px 24px; }
}

/* Bubble Pay: product-led credit preview. */
body.tbw-gallery .bubble-pay-process { display:grid; grid-template-columns:.85fr 1.15fr; gap:96px; padding:100px max(24px,calc((100% - 1072px)/2)); }
body.tbw-gallery .bubble-pay-process-intro p:not(.gallery-eyebrow) { margin-top:24px; }
body.tbw-gallery .bubble-pay-process ol { padding:0; margin:0; list-style:none; }
body.tbw-gallery .bubble-pay-process li { display:grid; grid-template-columns:52px 1fr; gap:20px; padding:0 0 30px; margin-bottom:30px; border-bottom:1px solid rgba(255,255,255,.18); }
body.tbw-gallery .bubble-pay-process li:last-child { margin:0; padding-bottom:0; border:0; }
body.tbw-gallery .bubble-pay-process li > span { display:grid; place-items:center; width:40px; height:40px; border:1px solid rgba(255,255,255,.5); border-radius:50%; color:var(--gallery-cyan); font-size:14px; }
body.tbw-gallery .bubble-pay-process h3 { font-size:21px; }
body.tbw-gallery .bubble-pay-process li p { margin-top:8px; font-size:15px; }
@media(max-width:833px) { body.tbw-gallery .bubble-pay-process { grid-template-columns:1fr; gap:36px; padding-block:64px; } }
@media(max-width:640px) { body.tbw-gallery .bubble-pay-process { padding:56px 24px; } }

/* Restored Bubble Pay hero and contained dashboard preview. */
body.tbw-gallery .bubble-pay-restored-hero { padding-bottom:0; }
body.tbw-gallery .bubble-pay-preview { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.72fr); gap:96px; align-items:center; padding:92px max(24px,calc((100% - 980px)/2)); overflow:hidden; }
body.tbw-gallery .bubble-pay-preview > div > p:not(.gallery-eyebrow) { max-width:440px; margin:24px 0; }
body.tbw-gallery .bubble-pay-preview figure { position:relative; justify-self:center; margin:0; }
body.tbw-gallery .bubble-pay-preview figure::before { content:""; position:absolute; width:260px; height:260px; left:50%; top:45%; transform:translate(-50%,-50%); background:rgba(62,205,247,.18); border-radius:50%; filter:blur(54px); }
body.tbw-gallery .bubble-pay-preview img { position:relative; display:block; width:auto; height:520px; max-width:100%; object-fit:contain; filter:drop-shadow(0 22px 22px rgba(0,0,0,.32)); }
body.tbw-gallery .bubble-pay-preview figcaption { position:relative; margin-top:12px; color:#c1d1e1; font-size:11px; text-align:center; }
@media(max-width:833px) { body.tbw-gallery .bubble-pay-preview { grid-template-columns:1fr; gap:40px; padding:64px 24px; } body.tbw-gallery .bubble-pay-preview > div { text-align:center; } body.tbw-gallery .bubble-pay-preview > div > p:not(.gallery-eyebrow) { margin-inline:auto; } body.tbw-gallery .bubble-pay-preview img { height:410px; } }

/* Bubble Pay security preview. */

/* Bubble Pay privacy preview. */
body.tbw-gallery .bubble-pay-privacy { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1fr); gap:104px; align-items:center; padding:96px max(24px,calc((100% - 980px)/2)); overflow:hidden; }
body.tbw-gallery .bubble-pay-privacy figure { position:relative; justify-self:center; margin:0; }
body.tbw-gallery .bubble-pay-privacy figure::before { content:""; position:absolute; width:300px; height:300px; left:50%; top:45%; transform:translate(-50%,-50%); border-radius:50%; background:rgba(62,205,247,.18); filter:blur(60px); }
body.tbw-gallery .bubble-pay-privacy img { position:relative; display:block; width:auto; height:550px; max-width:100%; object-fit:contain; filter:drop-shadow(0 24px 24px rgba(0,0,0,.35)); }
body.tbw-gallery .bubble-pay-privacy figcaption { position:relative; margin-top:12px; color:#c1d1e1; text-align:center; font-size:11px; }
body.tbw-gallery .bubble-pay-privacy > div > p:not(.gallery-eyebrow) { margin-top:24px; max-width:490px; }
body.tbw-gallery .bubble-pay-privacy-list { display:grid; gap:0; margin:32px 0; border-top:1px solid rgba(255,255,255,.18); }
body.tbw-gallery .bubble-pay-privacy-list p { padding:16px 0; margin:0!important; border-bottom:1px solid rgba(255,255,255,.18); }
body.tbw-gallery .bubble-pay-privacy-list strong { display:block; color:white; font-size:15px; }
body.tbw-gallery .bubble-pay-privacy-list span { display:block; margin-top:5px; color:#c1d1e1; font-size:14px; }
@media(max-width:833px) { body.tbw-gallery .bubble-pay-privacy { grid-template-columns:1fr; gap:40px; padding:64px 24px; } body.tbw-gallery .bubble-pay-privacy figure { order:2; } body.tbw-gallery .bubble-pay-privacy > div { text-align:center; } body.tbw-gallery .bubble-pay-privacy > div > p:not(.gallery-eyebrow) { margin-inline:auto; } body.tbw-gallery .bubble-pay-privacy-list { text-align:left; } body.tbw-gallery .bubble-pay-privacy img { height:430px; } }

/* Bubble Lock: restrained motion, no animation under reduced-motion preference. */
body.tbw-gallery .bubble-lock { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1fr); gap:104px; align-items:center; min-height:600px; padding:100px max(24px,calc((100% - 980px)/2)); background:#071d38; overflow:hidden; }
body.tbw-gallery .bubble-lock-visual { position:relative; display:grid; place-items:center; width:min(100%,430px); aspect-ratio:1; justify-self:center; }
body.tbw-gallery .bubble-lock-orbit { position:absolute; border:1px solid rgba(136,207,237,.25); border-radius:50%; }
body.tbw-gallery .bubble-lock-orbit-one { width:80%; height:80%; }
body.tbw-gallery .bubble-lock-orbit-two { width:58%; height:58%; border-color:rgba(182,154,82,.42); }
body.tbw-gallery .bubble-lock-mark { position:relative; z-index:2; width:132px; height:154px; stroke:#f7fbfe; stroke-linecap:round; stroke-linejoin:round; }
body.tbw-gallery .bubble-lock-shackle { stroke-width:5; }
body.tbw-gallery .bubble-lock-shackle-group { transform-box:view-box; transform-origin:27px 48px; }
body.tbw-gallery .bubble-lock-body { fill:#0c2b50; stroke:#83d7f5; stroke-width:3; }
body.tbw-gallery .bubble-lock-key { stroke:#b69a52; stroke-width:6; }
body.tbw-gallery .bubble-lock-spark { position:absolute; z-index:3; width:7px; height:7px; border-radius:50%; background:#b69a52; box-shadow:0 0 18px rgba(182,154,82,.72); }
body.tbw-gallery .bubble-lock-spark-one { top:13%; right:20%; }
body.tbw-gallery .bubble-lock-spark-two { bottom:18%; left:16%; background:#74d5f5; box-shadow:0 0 18px rgba(116,213,245,.72); }
body.tbw-gallery .bubble-lock-copy h2 { color:white; font-size:clamp(34px,3.7vw,50px); max-width:560px; }
body.tbw-gallery .bubble-lock-copy > p:not(.gallery-eyebrow) { margin-top:24px; max-width:560px; color:#c1d1e1; }
body.tbw-gallery .bubble-lock-benefits { margin-top:34px; border-top:1px solid rgba(255,255,255,.18); }
body.tbw-gallery .bubble-lock-benefits p { display:grid; grid-template-columns:185px 1fr; gap:16px; padding:16px 0; margin:0!important; border-bottom:1px solid rgba(255,255,255,.18); }
body.tbw-gallery .bubble-lock-benefits strong { color:white; font-size:14px; }
body.tbw-gallery .bubble-lock-benefits span { color:#c1d1e1; font-size:14px; }
body.tbw-gallery .bubble-lock-note { margin-top:20px!important; font-size:12px!important; }
@media(prefers-reduced-motion:no-preference) { body.tbw-gallery .bubble-lock-orbit-one { animation:bubbleLockBreath 4.5s ease-in-out infinite; } body.tbw-gallery .bubble-lock-orbit-two { animation:bubbleLockBreath 4.5s ease-in-out 420ms infinite reverse; } body.tbw-gallery .bubble-lock-shackle { stroke-dasharray:84; stroke-dashoffset:84; animation:bubbleLockDraw 900ms cubic-bezier(.2,.8,.2,1) 120ms forwards; } body.tbw-gallery .bubble-lock-shackle-group { animation:bubbleLockOpenClose 6.5s cubic-bezier(.45,0,.25,1) 1.25s infinite; } body.tbw-gallery .bubble-lock-body { opacity:0; transform-origin:center; animation:bubbleLockBody 650ms cubic-bezier(.2,.8,.2,1) 420ms forwards; } body.tbw-gallery .bubble-lock-key { stroke-dasharray:18; stroke-dashoffset:18; animation:bubbleLockDraw 460ms ease-out 760ms forwards; } body.tbw-gallery .bubble-lock-spark-one { animation:bubbleLockSpark 3.2s ease-in-out 1.1s infinite; } body.tbw-gallery .bubble-lock-spark-two { animation:bubbleLockSpark 3.2s ease-in-out 1.8s infinite; } }
@keyframes bubbleLockBreath { 0%,100% { transform:scale(1); opacity:.55; } 50% { transform:scale(1.045); opacity:1; } }
@keyframes bubbleLockDraw { to { stroke-dashoffset:0; } }
@keyframes bubbleLockBody { from { opacity:0; transform:scale(.92); } to { opacity:1; transform:scale(1); } }
@keyframes bubbleLockSpark { 0%,100% { transform:scale(.7); opacity:.3; } 50% { transform:scale(1.25); opacity:1; } }
@keyframes bubbleLockOpenClose { 0%,34%,100% { transform:rotate(0deg); } 48%,70% { transform:rotate(-22deg); } 84% { transform:rotate(0deg); } }
@media(max-width:833px) { body.tbw-gallery .bubble-lock { grid-template-columns:1fr; gap:36px; min-height:0; padding:68px 24px; } body.tbw-gallery .bubble-lock-visual { width:min(100%,340px); } body.tbw-gallery .bubble-lock-copy { text-align:center; } body.tbw-gallery .bubble-lock-copy > p:not(.gallery-eyebrow) { margin-inline:auto; } body.tbw-gallery .bubble-lock-benefits { text-align:left; } body.tbw-gallery .bubble-lock-benefits p { grid-template-columns:1fr; gap:6px; } }

/* Bubble Lock impact: the shackle returns to the exact closed anchor before the burst. */
body.tbw-gallery .bubble-lock-impact { position:absolute; z-index:1; left:50%; top:50%; width:70px; height:70px; border:1px solid rgba(182,154,82,.72); border-radius:50%; opacity:0; pointer-events:none; }
body.tbw-gallery .bubble-lock-particle { position:absolute; z-index:4; left:50%; top:50%; width:5px; height:5px; border-radius:50%; background:#b69a52; opacity:0; pointer-events:none; }
body.tbw-gallery .bubble-lock-particle-two,body.tbw-gallery .bubble-lock-particle-five { background:#8fe0fa; }
body.tbw-gallery .bubble-lock-particle-one { --bubble-px:0px; --bubble-py:-74px; }
body.tbw-gallery .bubble-lock-particle-two { --bubble-px:54px; --bubble-py:-51px; }
body.tbw-gallery .bubble-lock-particle-three { --bubble-px:76px; --bubble-py:4px; }
body.tbw-gallery .bubble-lock-particle-four { --bubble-px:48px; --bubble-py:57px; }
body.tbw-gallery .bubble-lock-particle-five { --bubble-px:0px; --bubble-py:78px; }
body.tbw-gallery .bubble-lock-particle-six { --bubble-px:-52px; --bubble-py:52px; }
body.tbw-gallery .bubble-lock-particle-seven { --bubble-px:-78px; --bubble-py:0px; }
body.tbw-gallery .bubble-lock-particle-eight { --bubble-px:-49px; --bubble-py:-52px; }
@media(prefers-reduced-motion:no-preference) { body.tbw-gallery .bubble-lock-shackle-group { animation:bubbleLockOpenClose 6.5s cubic-bezier(.45,0,.25,1) 1.25s infinite; } body.tbw-gallery .bubble-lock-impact { animation:bubbleLockImpact 6.5s ease-out 1.25s infinite; } body.tbw-gallery .bubble-lock-particle { animation:bubbleLockParticles 6.5s cubic-bezier(.12,.75,.2,1) 1.25s infinite; } }
@keyframes bubbleLockOpenClose { 0%,12%,34%,100% { transform:rotate(0deg); } 17%,25% { transform:rotate(-26deg); } 31% { transform:rotate(0deg); } }
@keyframes bubbleLockImpact { 0%,30%,100% { transform:translate(-50%,-50%) scale(.45); opacity:0; } 33% { opacity:.95; } 48% { transform:translate(-50%,-50%) scale(2.5); opacity:0; } }
@keyframes bubbleLockParticles { 0%,30%,100% { transform:translate(-50%,-50%) scale(.35); opacity:0; } 33% { opacity:1; } 48% { transform:translate(calc(-50% + var(--bubble-px)),calc(-50% + var(--bubble-py))) scale(1); opacity:0; } }

/* Bubble Pay™ page architecture: app, privacy, Bubble Lock™, process and waitlist. */
body.tbw-gallery .bubble-pay-app-actions { display:grid; gap:0; margin:30px 0; border-top:1px solid rgba(255,255,255,.18); }
body.tbw-gallery .bubble-pay-app-actions p { display:grid; grid-template-columns:155px 1fr; gap:14px; padding:14px 0; margin:0!important; border-bottom:1px solid rgba(255,255,255,.18); }
body.tbw-gallery .bubble-pay-app-actions strong { color:white; font-size:14px; }
body.tbw-gallery .bubble-pay-app-actions span { color:#c1d1e1; font-size:14px; }
body.tbw-gallery .bubble-lock { display:block; padding:96px max(24px,calc((100% - 980px)/2)); background:#071d38; }
body.tbw-gallery .bubble-lock-core { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1fr); gap:104px; align-items:center; min-height:500px; }
body.tbw-gallery .bubble-lock-proof { display:grid; grid-template-columns:minmax(260px,.55fr) minmax(0,1fr); gap:76px; align-items:center; max-width:800px; margin:42px auto 0; padding-top:50px; border-top:1px solid rgba(255,255,255,.18); }
body.tbw-gallery .bubble-lock-proof figure { position:relative; justify-self:center; margin:0; }
body.tbw-gallery .bubble-lock-proof img { display:block; width:auto; height:350px; max-width:100%; object-fit:contain; filter:drop-shadow(0 18px 20px rgba(0,0,0,.28)); }
body.tbw-gallery .bubble-lock-proof figcaption { margin-top:10px; color:#c1d1e1; font-size:11px; text-align:center; }
body.tbw-gallery .bubble-lock-proof h3 { margin:12px 0; color:white; font-size:24px; }
body.tbw-gallery .bubble-lock-proof p:not(.gallery-eyebrow) { color:#c1d1e1; }
@media(max-width:833px) { body.tbw-gallery .bubble-pay-app-actions p { grid-template-columns:1fr; gap:5px; text-align:left; } body.tbw-gallery .bubble-lock { padding:68px 24px; } body.tbw-gallery .bubble-lock-core,body.tbw-gallery .bubble-lock-proof { grid-template-columns:1fr; gap:36px; min-height:0; } body.tbw-gallery .bubble-lock-proof { margin-top:24px; padding-top:40px; text-align:center; } body.tbw-gallery .bubble-lock-proof img { height:385px; } }

/* Bubble Pay transparency */
body.tbw-gallery .bubble-pay-transparency { margin: 20px 0 16px; padding: 20px 22px; border: 1px solid rgba(255,255,255,.22); border-radius: 18px; background: rgba(255,255,255,.06); color: rgba(255,255,255,.82); font-size: .92rem; line-height: 1.5; }
body.tbw-gallery .bubble-pay-transparency strong { display:block; color:#fff; font-size:1rem; margin-bottom:6px; }
body.tbw-gallery .bubble-pay-transparency p { margin:0; }
body.tbw-gallery .bubble-pay-transparency ul { margin:12px 0 0; padding-left:18px; }
body.tbw-gallery .bubble-pay-transparency li + li { margin-top:6px; }

/* Bubble Pay App Store availability */
body.tbw-gallery .bubble-pay-appstore { display:flex; align-items:center; gap:10px; margin-top:26px; color:rgba(255,255,255,.72); font-size:.86rem; }
body.tbw-gallery .bubble-pay-appstore img { display:block; width:146px; height:auto; opacity:.88; }
@media (max-width: 520px) { body.tbw-gallery .bubble-pay-appstore { margin-top:20px; } }

/* Aroma selection */
body.tbw-gallery .gallery-aroma-selector { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 28px; }
body.tbw-gallery .gallery-aroma-selector a { border:1px solid var(--gallery-line); border-radius:999px; color:var(--gallery-ink); font-size:.9rem; padding:10px 15px; text-decoration:none; transition:border-color 180ms ease, background-color 180ms ease; }
body.tbw-gallery .gallery-aroma-selector a:hover, body.tbw-gallery .gallery-aroma-selector a:focus-visible { border-color:var(--gallery-blue); background:#f0f7ff; outline:none; }
body.tbw-gallery .gallery-aroma { scroll-margin-top:110px; }
body.tbw-gallery .gallery-aroma-use { color:var(--gallery-ink); font-weight:600; margin:0 0 18px !important; }
body.tbw-gallery .gallery-aroma-notes { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 26px; }
body.tbw-gallery .gallery-aroma-notes span { background:#f3f5f7; border-radius:999px; color:var(--gallery-muted); font-size:.76rem; padding:6px 10px; }
@media (max-width: 520px) { body.tbw-gallery .gallery-aroma-selector { margin-bottom:20px; } }

/* Aromas: editorial presentation */
body.tbw-gallery .aromas-hero { display:grid; grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr); align-items:stretch; min-height:660px; padding:0; background:#071d38; overflow:hidden; }
body.tbw-gallery .aromas-hero-copy { display:flex; flex-direction:column; justify-content:center; padding:96px max(24px,calc((100vw - 980px)/2)) 96px max(24px,calc((100vw - 980px)/2)); padding-right:72px; }
body.tbw-gallery .aromas-hero h1 { max-width:520px; margin:14px 0 20px; color:#fff; font-size:clamp(48px,5.2vw,80px); letter-spacing:-.065em; line-height:.98; }
body.tbw-gallery .aromas-hero .gallery-lead { max-width:440px; color:#c1d1e1; font-size:21px; line-height:1.45; }
body.tbw-gallery .aromas-hero .gallery-link { color:#63c7ec; }
body.tbw-gallery .aromas-hero .gallery-button { background:#fff; color:#071d38; }
body.tbw-gallery .aromas-hero-detail { margin:42px 0 0; color:#9fb7cf; font-size:14px; }
body.tbw-gallery .aromas-hero-image { min-height:660px; margin:0; overflow:hidden; }
body.tbw-gallery .aromas-hero-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
body.tbw-gallery .aromas-manifesto { max-width:980px; margin:0 auto; padding:130px 24px 122px; text-align:center; }
body.tbw-gallery .aromas-manifesto h2 { margin:15px auto 24px; color:var(--gallery-ink); font-size:clamp(36px,4.2vw,58px); letter-spacing:-.055em; line-height:1.04; }
body.tbw-gallery .aromas-manifesto > p:not(.gallery-eyebrow) { max-width:570px; margin:0 auto; color:var(--gallery-muted); font-size:18px; line-height:1.55; }
body.tbw-gallery .aromas-showcase { padding:112px max(24px,calc((100% - 980px)/2)); background:#071d38; }
body.tbw-gallery .aromas-showcase-heading { max-width:640px; }
body.tbw-gallery .aromas-showcase h2 { margin:14px 0 32px; color:#fff; font-size:clamp(42px,4.6vw,64px); letter-spacing:-.06em; line-height:1; }
body.tbw-gallery .aromas-showcase .gallery-aroma-selector { margin:0 0 44px; }
body.tbw-gallery .aromas-showcase .gallery-aroma-selector a { border-color:rgba(255,255,255,.25); color:#dce8f4; background:transparent; }
body.tbw-gallery .aromas-showcase .gallery-aroma-selector a:hover, body.tbw-gallery .aromas-showcase .gallery-aroma-selector a:focus-visible { border-color:#63c7ec; color:#fff; background:rgba(99,199,236,.12); }
body.tbw-gallery .aromas-showcase .gallery-aroma-grid { gap:14px; }
body.tbw-gallery .aromas-showcase .gallery-aroma { min-height:360px; border:1px solid rgba(255,255,255,.16); border-radius:0; padding:32px; background:rgba(255,255,255,.035); color:#c1d1e1; transition:border-color 180ms ease, background-color 180ms ease, transform 180ms ease; }
body.tbw-gallery .aromas-showcase .gallery-aroma:hover { border-color:rgba(99,199,236,.75); background:rgba(255,255,255,.07); transform:translateY(-3px); }
body.tbw-gallery .gallery-aroma-topline { display:flex; align-items:center; justify-content:space-between; gap:16px; }
body.tbw-gallery .aromas-showcase .gallery-step { margin:0; color:#63c7ec; }
body.tbw-gallery .aromas-showcase .gallery-aroma h3 { margin:68px 0 14px; color:#fff; font-size:29px; letter-spacing:-.04em; }
body.tbw-gallery .aromas-showcase .gallery-aroma > p:not(.gallery-eyebrow):not(.gallery-aroma-use) { margin:0 0 18px; }
body.tbw-gallery .aromas-showcase .gallery-aroma-use { color:#fff; font-weight:600; margin:0 0 18px!important; }
body.tbw-gallery .aromas-showcase .gallery-aroma-notes span { background:rgba(255,255,255,.1); color:#dce8f4; }
body.tbw-gallery .aromas-showcase .gallery-link { color:#63c7ec; }
body.tbw-gallery .aromas-ritual { display:grid; grid-template-columns:minmax(260px,.7fr) minmax(0,1fr); gap:100px; padding:120px max(24px,calc((100% - 980px)/2)); background:#041429; }
body.tbw-gallery .aromas-ritual h2 { margin:14px 0 0; color:#fff; font-size:clamp(38px,4vw,56px); letter-spacing:-.06em; line-height:1.02; }
body.tbw-gallery .aromas-ritual-steps { border-top:1px solid rgba(255,255,255,.18); }
body.tbw-gallery .aromas-ritual-steps article { display:grid; grid-template-columns:52px 1fr; gap:20px; padding:22px 0; border-bottom:1px solid rgba(255,255,255,.18); }
body.tbw-gallery .aromas-ritual-steps span { color:#63c7ec; font-size:14px; font-weight:600; }
body.tbw-gallery .aromas-ritual-steps h3 { margin:0 0 5px; color:#fff; font-size:19px; }
body.tbw-gallery .aromas-ritual-steps p { margin:0; color:#c1d1e1; line-height:1.5; }
body.tbw-gallery .aromas-cta { padding:112px 24px; background:var(--gallery-paper); text-align:center; }
body.tbw-gallery .aromas-cta h2 { margin:14px 0; color:var(--gallery-ink); font-size:clamp(38px,4vw,58px); letter-spacing:-.06em; }
body.tbw-gallery .aromas-cta > p:not(.gallery-eyebrow) { max-width:460px; margin:0 auto 28px; color:var(--gallery-muted); }
@media (max-width:833px) {
 body.tbw-gallery .aromas-hero { grid-template-columns:1fr; min-height:0; }
 body.tbw-gallery .aromas-hero-copy { padding:72px 24px 56px; }
 body.tbw-gallery .aromas-hero-image { min-height:370px; }
 body.tbw-gallery .aromas-manifesto { padding:82px 24px; text-align:left; }
 body.tbw-gallery .aromas-manifesto h2, body.tbw-gallery .aromas-manifesto > p:not(.gallery-eyebrow) { margin-left:0; }
 body.tbw-gallery .aromas-showcase { padding:76px 24px; }
 body.tbw-gallery .aromas-showcase .gallery-aroma { min-height:0; }
 body.tbw-gallery .aromas-showcase .gallery-aroma h3 { margin-top:45px; }
 body.tbw-gallery .aromas-ritual { grid-template-columns:1fr; gap:42px; padding:78px 24px; }
 body.tbw-gallery .aromas-cta { padding:80px 24px; }
}

/* Homepage: brand-led editorial presentation */
body.tbw-gallery .store-home { background:#fff; }
body.tbw-gallery .store-home .conversion-hero { min-height:680px; grid-template-columns:minmax(0,1fr) minmax(420px,.92fr); background:#071d38; overflow:hidden; }
body.tbw-gallery .store-home .conversion-hero .store-hero-copy { position:relative; z-index:1; padding:104px 72px 88px max(24px,calc((100vw - 1160px)/2)); color:#fff; }
body.tbw-gallery .store-home .conversion-hero .gallery-eyebrow { color:#63c7ec; }
body.tbw-gallery .store-home .conversion-hero h1 { max-width:610px; color:#fff; font-size:clamp(50px,5.2vw,78px); line-height:.99; letter-spacing:-.065em; }
body.tbw-gallery .store-home .conversion-hero .store-intro { max-width:475px; color:#c1d1e1; font-size:21px; line-height:1.48; }
body.tbw-gallery .store-home .conversion-hero .gallery-button { background:#fff; color:#071d38; }
body.tbw-gallery .store-home .conversion-hero .gallery-link { color:#63c7ec; }
body.tbw-gallery .store-home .conversion-hero .conversion-proof { color:#9fb7cf; font-size:13px; letter-spacing:.02em; }
body.tbw-gallery .store-home .conversion-hero .store-hero-photo { position:relative; background:#0c294b; }
body.tbw-gallery .store-home .conversion-hero .store-hero-photo::before { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,#071d38 0%,rgba(7,29,56,.12) 33%,transparent 60%); pointer-events:none; }
body.tbw-gallery .store-home .conversion-hero .store-hero-photo img { height:100%; min-height:680px; object-position:center 35%; }
body.tbw-gallery .store-home .conversion-hero .store-hero-photo figcaption { position:absolute; z-index:2; right:0; bottom:0; left:0; padding:26px 32px; background:rgba(4,20,41,.78); }
body.tbw-gallery .store-home .conversion-hero .store-hero-photo a { color:#63c7ec; }

body.tbw-gallery .store-home .store-spaces { max-width:1160px; margin:0 auto; padding:132px 24px 120px; }
body.tbw-gallery .store-home .store-spaces .gallery-section-heading { max-width:700px; margin-bottom:62px; }
body.tbw-gallery .store-home .store-spaces h2 { font-size:clamp(42px,4.7vw,66px); letter-spacing:-.06em; line-height:1.02; }
body.tbw-gallery .store-home .store-space-grid { gap:0; border-top:1px solid var(--gallery-line); }
body.tbw-gallery .store-home .store-space { min-height:312px; padding:30px 28px 26px 0; border:0; border-radius:0; background:transparent; }
body.tbw-gallery .store-home .store-space + .store-space { border-left:1px solid var(--gallery-line); padding-left:28px; }
body.tbw-gallery .store-home .store-space h3 { margin-top:56px; font-size:27px; letter-spacing:-.04em; }
body.tbw-gallery .store-home .store-space p { margin:14px 0 26px; color:var(--gallery-muted); line-height:1.5; }
body.tbw-gallery .store-home .store-space-link { color:var(--gallery-blue); }

body.tbw-gallery .store-home .store-senses { grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr); gap:100px; padding:120px max(24px,calc((100% - 1160px)/2)); background:#041429; }
body.tbw-gallery .store-home .store-senses h2 { color:#fff; font-size:clamp(42px,4.4vw,62px); line-height:1.02; letter-spacing:-.06em; }
body.tbw-gallery .store-home .store-senses-intro > p:not(.gallery-eyebrow) { color:#c1d1e1; font-size:17px; line-height:1.55; }
body.tbw-gallery .store-home .store-senses .gallery-eyebrow,body.tbw-gallery .store-home .store-senses .gallery-link { color:#63c7ec; }
body.tbw-gallery .store-home .store-scent-grid { gap:0 36px; border-top:1px solid rgba(255,255,255,.17); }
body.tbw-gallery .store-home .store-scent { position:relative; min-height:194px; padding:25px 38px 26px 0; border-color:rgba(255,255,255,.17); color:#c1d1e1; }
body.tbw-gallery .store-home .store-scent:nth-child(even) { padding-left:28px; padding-right:10px; border-left:1px solid rgba(255,255,255,.17); }
body.tbw-gallery .store-home .store-scent > span { color:#63c7ec; }
body.tbw-gallery .store-home .store-scent h3 { color:#fff; font-size:25px; letter-spacing:-.04em; }
body.tbw-gallery .store-home .store-scent p { color:#c1d1e1; line-height:1.48; }
body.tbw-gallery .store-home .store-scent-arrow { position:absolute; right:5px; bottom:25px; color:#63c7ec; }

body.tbw-gallery .store-home .gallery-catalog { padding:120px max(24px,calc((100% - 1160px)/2)); background:#f6f8fa; }
body.tbw-gallery .store-home .gallery-catalog h2 { font-size:clamp(39px,4vw,56px); letter-spacing:-.055em; }
body.tbw-gallery .store-home .store-section-heading { margin-bottom:50px; }

body.tbw-gallery .store-home .sensory-stage { grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr); }
body.tbw-gallery .store-home .sensory-image { min-height:650px; }
body.tbw-gallery .store-home .sensory-copy { padding:88px max(24px,calc((100vw - 1160px)/2)) 88px 72px; }
body.tbw-gallery .store-home .sensory-copy h2 { font-size:clamp(42px,4.2vw,60px); line-height:1.02; letter-spacing:-.06em; }

body.tbw-gallery .store-home .store-pay { min-height:560px; grid-template-columns:minmax(0,1fr) minmax(360px,.86fr); background:#071d38; }
body.tbw-gallery .store-home .store-pay > div { padding:96px 72px 96px max(24px,calc((100vw - 1160px)/2)); }
body.tbw-gallery .store-home .store-pay h2 { color:#fff; font-size:clamp(42px,4.5vw,62px); letter-spacing:-.06em; line-height:1.02; }
body.tbw-gallery .store-home .store-pay p:not(.gallery-eyebrow) { color:#c1d1e1; font-size:18px; line-height:1.5; }
body.tbw-gallery .store-home .store-pay .gallery-eyebrow { color:#63c7ec; }
body.tbw-gallery .store-home .store-pay .gallery-button { background:#fff; color:#071d38; }
body.tbw-gallery .store-home .store-pay > img { height:560px; object-position:center; }

@media (max-width:833px) {
 body.tbw-gallery .store-home .conversion-hero { grid-template-columns:1fr; min-height:0; }
 body.tbw-gallery .store-home .conversion-hero .store-hero-copy { padding:72px 24px 56px; text-align:left; }
 body.tbw-gallery .store-home .conversion-hero h1 { font-size:47px; }
 body.tbw-gallery .store-home .conversion-hero .gallery-actions { justify-content:flex-start; }
 body.tbw-gallery .store-home .conversion-hero .store-hero-photo img { min-height:430px; height:430px; }
 body.tbw-gallery .store-home .conversion-hero .store-hero-photo::before { background:linear-gradient(180deg,#071d38 0%,transparent 42%); }
 body.tbw-gallery .store-home .store-spaces { padding:84px 24px; }
 body.tbw-gallery .store-home .store-spaces .gallery-section-heading { margin-bottom:40px; }
 body.tbw-gallery .store-home .store-space-grid { grid-template-columns:1fr; }
 body.tbw-gallery .store-home .store-space { min-height:0; padding:28px 0; border-bottom:1px solid var(--gallery-line); }
 body.tbw-gallery .store-home .store-space + .store-space { border-left:0; padding-left:0; }
 body.tbw-gallery .store-home .store-space h3 { margin-top:32px; }
 body.tbw-gallery .store-home .store-senses { grid-template-columns:1fr; gap:42px; padding:82px 24px; }
 body.tbw-gallery .store-home .store-scent-grid { grid-template-columns:1fr; }
 body.tbw-gallery .store-home .store-scent,.store-home .store-scent:nth-child(even) { min-height:0; padding:24px 0; border-left:0; }
 body.tbw-gallery .store-home .store-scent-arrow { right:0; }
 body.tbw-gallery .store-home .gallery-catalog { padding:82px 24px; }
 body.tbw-gallery .store-home .sensory-stage,.store-home .store-pay { grid-template-columns:1fr; }
 body.tbw-gallery .store-home .sensory-image { min-height:0; height:370px; }
 body.tbw-gallery .store-home .sensory-copy { padding:64px 24px; }
 body.tbw-gallery .store-home .store-pay > div { padding:78px 24px; }
 body.tbw-gallery .store-home .store-pay > img { height:380px; }
}

/* Homepage motion: media only, desktop-first, reduced-motion safe. */
@media (min-width:834px) and (prefers-reduced-motion:no-preference) {
 body.tbw-gallery .store-home .conversion-hero .store-hero-photo img {
   animation:homeHeroMediaReveal 900ms cubic-bezier(.2,.75,.2,1) both;
   transform-origin:center;
   will-change:transform,opacity;
 }
 body.tbw-gallery .store-home .conversion-hero .store-hero-photo figcaption {
   animation:homeHeroCaptionReveal 620ms 300ms cubic-bezier(.2,.75,.2,1) both;
 }
 body.tbw-gallery .store-home .store-space,
 body.tbw-gallery .store-home .store-scent {
   transition:border-color 180ms ease, background-color 180ms ease, color 180ms ease;
 }
 body.tbw-gallery .store-home .store-space:hover {
   border-color:var(--gallery-blue);
 }
 body.tbw-gallery .store-home .store-scent:hover {
   background:rgba(255,255,255,.035);
 }
}
@keyframes homeHeroMediaReveal {
 from { opacity:0; transform:scale(1.055); }
 to { opacity:1; transform:scale(1); }
}
@keyframes homeHeroCaptionReveal {
 from { opacity:0; transform:translateY(12px); }
 to { opacity:1; transform:translateY(0); }
}

/* Homepage conversion architecture */
body.tbw-gallery .home-positioning { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.72fr); gap:110px; max-width:1160px; margin:0 auto; padding:118px 24px; }
body.tbw-gallery .home-positioning h2 { margin:14px 0 0; max-width:590px; color:var(--gallery-ink); font-size:clamp(38px,4.2vw,58px); letter-spacing:-.06em; line-height:1.03; }
body.tbw-gallery .home-positioning > div:last-child > p { margin:3px 0 34px; color:var(--gallery-muted); font-size:18px; line-height:1.55; }
body.tbw-gallery .home-positioning ul { padding:0; margin:0; list-style:none; border-top:1px solid var(--gallery-line); }
body.tbw-gallery .home-positioning li { display:grid; grid-template-columns:110px 1fr; gap:16px; padding:15px 0; border-bottom:1px solid var(--gallery-line); }
body.tbw-gallery .home-positioning strong { color:var(--gallery-ink); font-size:15px; }
body.tbw-gallery .home-positioning span { color:var(--gallery-muted); font-size:14px; }
body.tbw-gallery .store-home .store-section-heading > div > p:not(.gallery-eyebrow) { max-width:470px; margin:18px 0 0; color:var(--gallery-muted); font-size:17px; line-height:1.5; }
@media (max-width:833px) {
 body.tbw-gallery .home-positioning { grid-template-columns:1fr; gap:38px; padding:78px 24px; }
 body.tbw-gallery .home-positioning > div:last-child > p { margin-bottom:26px; }
}

/* Original Coffee aroma photograph, served losslessly as PNG. */
body.tbw-gallery .aromas-hero-image { background:#0b0908; }
body.tbw-gallery .aromas-hero-image img { object-position:center 66%; }
@media (max-width:833px) {
 body.tbw-gallery .aromas-hero-image img { object-position:center 62%; }
}

/* Origin archive: first physical prototype, kept deliberately honest. */
body.tbw-gallery .prototype-record { display:grid; grid-template-columns:minmax(280px,.78fr) minmax(0,1fr); gap:96px; align-items:center; padding:108px max(24px,calc((100% - 980px)/2)); background:#071d38; }
body.tbw-gallery .prototype-record figure { margin:0; background:#030b16; }
body.tbw-gallery .prototype-record img { display:block; width:100%; height:620px; object-fit:contain; object-position:center; }
body.tbw-gallery .prototype-record figcaption { padding:13px 16px; border-top:1px solid rgba(255,255,255,.14); color:#9fb7cf; font-size:11px; letter-spacing:.04em; }
body.tbw-gallery .prototype-record .gallery-eyebrow { color:#63c7ec; }
body.tbw-gallery .prototype-record h2 { margin:14px 0 24px; color:#fff; font-size:clamp(38px,4.2vw,58px); letter-spacing:-.06em; line-height:1.03; }
body.tbw-gallery .prototype-record p:not(.gallery-eyebrow) { max-width:540px; color:#c1d1e1; font-size:17px; line-height:1.6; }
body.tbw-gallery .prototype-record p + p { margin-top:18px; }
body.tbw-gallery .prototype-record blockquote { max-width:520px; margin:35px 0 0; padding-left:20px; border-left:2px solid #63c7ec; color:#fff; font-size:22px; font-weight:600; line-height:1.35; letter-spacing:-.025em; }
@media (max-width:833px) {
 body.tbw-gallery .prototype-record { grid-template-columns:1fr; gap:42px; padding:76px 24px; }
 body.tbw-gallery .prototype-record img { height:520px; }
}

/* Account workspace: hierarchy before decoration. */
body.tbw-cinematic-v2.customer-logged-in .profile-main { min-height:70vh; background:#f5f7f9; }
body.tbw-cinematic-v2.customer-logged-in .profile-grid.section { display:grid!important; grid-template-columns:1fr!important; gap:22px!important; width:min(100% - 48px,1120px)!important; max-width:1120px!important; padding-top:104px!important; padding-bottom:100px!important; }
body.tbw-cinematic-v2.customer-logged-in .profile-account-overview { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:28px 48px; padding:34px 38px; border:1px solid var(--pro-line); border-radius:18px; background:#fff; color:var(--pro-ink); box-shadow:none; }
body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-shell { grid-column:1; }
body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-avatar { width:58px; height:58px; background:#071d38; color:#fff; }
body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-main strong { font-size:1.3rem; }
body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-actions-row { grid-column:2; grid-row:1; grid-template-columns:auto auto; align-self:center; min-width:0; }
body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-actions-row .button { min-width:132px; }
body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .profile-completion { grid-column:1 / -1; grid-row:2; padding:20px 0 0; border-top:1px solid var(--pro-line); }
body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-metrics-grid { grid-column:1 / -1; grid-row:3; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--pro-line); }
body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-metrics-grid div { padding:18px 20px; }
body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-metrics-grid div:first-child { padding-left:0; border-left:0; }
body.tbw-cinematic-v2.customer-logged-in .profile-local-nav { position:sticky; z-index:4; top:72px; gap:26px; padding:14px 4px; border-top:1px solid var(--pro-line); border-bottom:1px solid var(--pro-line); background:rgba(245,247,249,.94); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
body.tbw-cinematic-v2.customer-logged-in .profile-local-nav a { color:#52647a; }
body.tbw-cinematic-v2.customer-logged-in .profile-content-grid { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr); grid-template-areas:"details rewards" "details activity"; gap:22px; align-items:start; }
body.tbw-cinematic-v2.customer-logged-in .profile-details-card { grid-area:details; padding:38px; }
body.tbw-cinematic-v2.customer-logged-in .profile-rewards-card { grid-area:rewards; display:grid; grid-template-columns:1fr; grid-template-areas:"intro" "balance" "metrics" "footer"; gap:22px; padding:30px; border-radius:18px; background:#071d38; box-shadow:none; }
body.tbw-cinematic-v2.customer-logged-in .profile-rewards-card::before { width:210px; height:210px; top:-100px; right:-90px; }
body.tbw-cinematic-v2.customer-logged-in .rewards-card-intro h2 { font-size:clamp(1.8rem,3vw,2.45rem); }
body.tbw-cinematic-v2.customer-logged-in .rewards-card-balance { padding:18px 0; border-top:1px solid rgba(255,255,255,.16); border-bottom:1px solid rgba(255,255,255,.16); border-left:0; }
body.tbw-cinematic-v2.customer-logged-in .rewards-card-balance strong { font-size:clamp(2.45rem,4.2vw,3.4rem); }
body.tbw-cinematic-v2.customer-logged-in .rewards-card-metrics { border-top:0; }
body.tbw-cinematic-v2.customer-logged-in .rewards-card-metrics div { padding:0; }
body.tbw-cinematic-v2.customer-logged-in .rewards-card-footer { grid-template-columns:auto minmax(0,1fr); }
body.tbw-cinematic-v2.customer-logged-in .rewards-refresh-button { grid-column:2; justify-self:start; margin-top:2px; }
body.tbw-cinematic-v2.customer-logged-in .profile-side-card { grid-area:activity; position:static; padding:30px; }
body.tbw-cinematic-v2.customer-logged-in .profile-side-card .profile-card-head { margin-bottom:22px; padding-bottom:18px; }
body.tbw-cinematic-v2.customer-logged-in .account-security-block { margin-top:26px; padding:24px 0 0; border-top:1px solid var(--pro-line); }
body.tbw-cinematic-v2.customer-logged-in .profile-side-card .profile-actions { display:grid; grid-template-columns:1fr; margin-top:22px; }
@media (max-width:833px) {
 body.tbw-cinematic-v2.customer-logged-in .profile-grid.section { width:min(100% - 32px,1120px)!important; padding-top:82px!important; }
 body.tbw-cinematic-v2.customer-logged-in .profile-account-overview { grid-template-columns:1fr; gap:22px; padding:28px 22px; }
 body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-actions-row { grid-column:1; grid-row:auto; grid-template-columns:1fr 1fr; }
 body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-actions-row .button { min-width:0; }
 body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .profile-completion,body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-metrics-grid { grid-column:1; grid-row:auto; }
 body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-metrics-grid { grid-template-columns:1fr; }
 body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-metrics-grid div,body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-metrics-grid div:first-child { padding:13px 0; border-left:0; border-bottom:1px solid var(--pro-line); }
 body.tbw-cinematic-v2.customer-logged-in .profile-account-overview .account-metrics-grid div:last-child { border-bottom:0; }
 body.tbw-cinematic-v2.customer-logged-in .profile-local-nav { top:60px; gap:20px; overflow:auto; white-space:nowrap; }
 body.tbw-cinematic-v2.customer-logged-in .profile-content-grid { grid-template-columns:1fr; grid-template-areas:"details" "rewards" "activity"; }
 body.tbw-cinematic-v2.customer-logged-in .profile-details-card { padding:28px 22px; }
}

/* Account completion controls */
body.tbw-cinematic-v2.customer-logged-in .profile-empty-order-link { display:inline-flex; margin-top:16px; color:var(--pro-blue); font-size:.84rem; font-weight:700; text-decoration:none; }
body.tbw-cinematic-v2.customer-logged-in .account-security-actions { display:flex; flex-wrap:wrap; gap:16px; margin-top:22px; }
body.tbw-cinematic-v2.customer-logged-in .account-text-button { min-height:44px; padding:0; border:0; background:transparent; color:var(--pro-blue); font-size:.82rem; font-weight:700; cursor:pointer; }
body.tbw-cinematic-v2.customer-logged-in .account-text-button:disabled { opacity:.55; cursor:wait; }
body.tbw-cinematic-v2.customer-logged-in .account-delete-trigger { color:#b42318; }
body.tbw-cinematic-v2.customer-logged-in .account-delete-panel { display:grid; gap:13px; margin-top:22px; padding:20px; border:1px solid #f0c8c5; background:#fff8f7; }
body.tbw-cinematic-v2.customer-logged-in .account-delete-panel strong { color:#8a1c14; font-size:.92rem; }
body.tbw-cinematic-v2.customer-logged-in .account-delete-panel p { margin:0; color:#6f4a47; font-size:.8rem; line-height:1.45; }
body.tbw-cinematic-v2.customer-logged-in .account-delete-panel label { color:#6f4a47; font-size:.75rem; font-weight:700; }
body.tbw-cinematic-v2.customer-logged-in .account-delete-panel > div { display:flex; gap:10px; justify-content:flex-end; }
body.tbw-cinematic-v2.customer-logged-in .button-danger { border:1px solid #b42318; background:#b42318; color:#fff; }
body.tbw-cinematic-v2.customer-logged-in .account-action-status { min-height:18px; margin:14px 0 0; color:var(--pro-muted); font-size:.75rem; line-height:1.35; }
body.tbw-cinematic-v2.customer-logged-in .account-action-status[data-type="success"] { color:#167854; }
body.tbw-cinematic-v2.customer-logged-in .account-action-status[data-type="error"] { color:#b42318; }
body.tbw-cinematic-v2.customer-logged-in .profile-save-status[data-type="success"] { color:#167854; font-weight:700; }
@media (max-width:520px) {
 body.tbw-cinematic-v2.customer-logged-in .account-delete-panel > div { display:grid; grid-template-columns:1fr; }
 body.tbw-cinematic-v2.customer-logged-in .account-security-actions { gap:12px 18px; }
}

/* Customer QR: opaque identifier shared with Bubble POS. */
body.tbw-cinematic-v2.customer-logged-in .profile-rewards-card { grid-template-areas:"intro" "balance" "metrics" "qr" "footer"; }
body.tbw-cinematic-v2.customer-logged-in .customer-qr-card { grid-area:qr; display:grid; grid-template-columns:120px minmax(0,1fr); gap:18px; align-items:center; padding:16px; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.06); }
body.tbw-cinematic-v2.customer-logged-in .customer-qr-card img { display:block; width:120px; height:120px; padding:5px; background:#fff; image-rendering:auto; }
body.tbw-cinematic-v2.customer-logged-in .customer-qr-card strong { display:block; color:#fff; font-size:.95rem; }
body.tbw-cinematic-v2.customer-logged-in .customer-qr-card p { margin:7px 0; color:#c1d1e1; font-size:.78rem; line-height:1.45; }
body.tbw-cinematic-v2.customer-logged-in .customer-qr-card span { color:#75dcfa; font-size:.67rem; line-height:1.35; }
body.tbw-cinematic-v2.customer-logged-in .customer-qr-pending { grid-template-columns:40px minmax(0,1fr); min-height:72px; }
body.tbw-cinematic-v2.customer-logged-in .customer-qr-icon { display:grid; place-items:center; width:38px; height:38px; border:1px solid rgba(255,255,255,.24); border-radius:50%; color:#75dcfa; font-size:20px; }
@media (max-width:520px) {
 body.tbw-cinematic-v2.customer-logged-in .customer-qr-card { grid-template-columns:1fr; }
 body.tbw-cinematic-v2.customer-logged-in .customer-qr-card img { width:132px; height:132px; }
 body.tbw-cinematic-v2.customer-logged-in .customer-qr-pending { grid-template-columns:40px minmax(0,1fr); }
}

/* Order ticket: a focused receipt that remains private to the signed-in customer. */
body.tbw-cinematic-v2 .order-history-item { align-items:center; gap:14px; }
body.tbw-cinematic-v2 .order-history-item > div { min-width:0; }
body.tbw-cinematic-v2 .order-history-item > b { margin-left:auto; }
body.tbw-cinematic-v2 .order-ticket-open { flex:0 0 auto; min-height:38px; padding:0 2px; border:0; background:transparent; color:var(--pro-blue); font:700 .75rem/1 inherit; cursor:pointer; }
body.tbw-cinematic-v2 .order-ticket-open:hover { text-decoration:underline; }
body.tbw-cinematic-v2 .order-ticket-open:focus-visible,body.tbw-cinematic-v2 .order-ticket-close:focus-visible { outline:3px solid rgba(0,102,204,.35); outline-offset:3px; }
body.tbw-cinematic-v2 .order-ticket-backdrop { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; padding:24px; overflow:auto; background:rgba(3,18,36,.58); backdrop-filter:blur(14px); }
body.tbw-cinematic-v2 .order-ticket-backdrop[hidden] { display:none; }
body.tbw-cinematic-v2 .order-ticket-dialog { position:relative; width:min(100%,560px); max-height:min(780px,calc(100dvh - 48px)); overflow:auto; border:1px solid rgba(12,40,72,.12); border-radius:24px; background:#fff; box-shadow:0 24px 70px rgba(2,18,35,.32); }
body.tbw-cinematic-v2 .order-ticket-close { position:absolute; z-index:1; top:16px; right:16px; display:grid; place-items:center; width:44px; height:44px; border:1px solid rgba(12,40,72,.12); border-radius:50%; background:#fff; color:#08213f; font-size:28px; line-height:1; cursor:pointer; }
body.tbw-cinematic-v2 .order-ticket-content { padding:26px 30px 6px; }
body.tbw-cinematic-v2 .order-ticket-meta { display:grid; grid-template-columns:1fr auto; gap:12px 20px; padding-bottom:20px; border-bottom:1px solid #dce5ec; }
body.tbw-cinematic-v2 .order-ticket-meta div { display:grid; gap:4px; }
body.tbw-cinematic-v2 .order-ticket-meta span,body.tbw-cinematic-v2 .order-ticket-items-title { color:#65788b; font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
body.tbw-cinematic-v2 .order-ticket-meta strong { color:#08213f; font-size:.92rem; }
body.tbw-cinematic-v2 .order-ticket-items { display:grid; gap:0; margin-top:18px; }
body.tbw-cinematic-v2 .order-ticket-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; padding:15px 0; border-bottom:1px solid #edf1f5; }
body.tbw-cinematic-v2 .order-ticket-item strong { color:#09203d; font-size:.9rem; }
body.tbw-cinematic-v2 .order-ticket-item small { display:block; margin-top:4px; color:#67798d; font-size:.76rem; }
body.tbw-cinematic-v2 .order-ticket-item b { color:#09203d; font-size:.87rem; white-space:nowrap; }
body.tbw-cinematic-v2 .order-ticket-total { display:flex; justify-content:space-between; align-items:baseline; gap:18px; margin-top:18px; padding:18px 0 20px; color:#08213f; }
body.tbw-cinematic-v2 .order-ticket-total span { font-size:.82rem; font-weight:700; }
body.tbw-cinematic-v2 .order-ticket-total strong { font-size:1.42rem; letter-spacing:-.04em; }
body.tbw-cinematic-v2 .order-ticket-footer { display:flex; justify-content:flex-end; gap:12px; padding:18px 30px 28px; border-top:1px solid #edf1f5; }
@media (max-width:520px) {
 body.tbw-cinematic-v2 .order-ticket-backdrop { padding:12px; }
 body.tbw-cinematic-v2 .order-ticket-dialog { max-height:calc(100dvh - 24px); border-radius:20px; }
 body.tbw-cinematic-v2 .order-ticket-content { padding:22px 22px 4px; }
 body.tbw-cinematic-v2 .order-ticket-footer { padding:16px 22px 22px; }
}
@media print {
 body.tbw-cinematic-v2 * { visibility:hidden!important; }
 body.tbw-cinematic-v2 .order-ticket-backdrop,body.tbw-cinematic-v2 .order-ticket-backdrop * { visibility:visible!important; }
 body.tbw-cinematic-v2 .order-ticket-backdrop { position:absolute; padding:0; background:#fff; backdrop-filter:none; }
 body.tbw-cinematic-v2 .order-ticket-dialog { width:100%; max-height:none; border:0; box-shadow:none; }
 body.tbw-cinematic-v2 .order-ticket-close,body.tbw-cinematic-v2 .order-ticket-footer { display:none!important; }
}

/* Thermal receipt treatment for the customer order ticket. */
body.tbw-cinematic-v2 .order-ticket-dialog { width:min(100%,430px); border:0; border-radius:0; background:#fefefe; box-shadow:0 24px 70px rgba(2,18,35,.38); }
body.tbw-cinematic-v2 .order-ticket-dialog::after { content:""; display:block; height:14px; background:linear-gradient(135deg,transparent 7px,#fefefe 0) 0 0/14px 14px repeat-x; transform:translateY(1px); }
body.tbw-cinematic-v2 .order-ticket-close { top:12px; right:12px; width:38px; height:38px; border:0; background:transparent; color:#1a2634; }
body.tbw-cinematic-v2 .order-ticket-content { padding:4px 30px 0; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
body.tbw-cinematic-v2 .order-ticket-meta { gap:10px 14px; padding:14px 0; border-bottom:1px dashed #7c8791; }
body.tbw-cinematic-v2 .order-ticket-meta span,body.tbw-cinematic-v2 .order-ticket-items-title { color:#293645; font-family:inherit; font-size:.62rem; letter-spacing:.06em; }
body.tbw-cinematic-v2 .order-ticket-meta strong { color:#111; font-family:inherit; font-size:.72rem; font-weight:600; }
body.tbw-cinematic-v2 .order-ticket-items { margin-top:14px; }
body.tbw-cinematic-v2 .order-ticket-item { gap:12px; padding:12px 0; border-bottom:1px dashed #a0a7ad; }
body.tbw-cinematic-v2 .order-ticket-item strong,body.tbw-cinematic-v2 .order-ticket-item b { color:#111; font-family:inherit; font-size:.75rem; }
body.tbw-cinematic-v2 .order-ticket-item small { color:#374250; font-family:inherit; font-size:.68rem; }
body.tbw-cinematic-v2 .order-ticket-total { margin-top:12px; padding:14px 0 18px; border-top:1px solid #111; border-bottom:1px solid #111; font-family:inherit; }
body.tbw-cinematic-v2 .order-ticket-total span { font-family:inherit; font-size:.75rem; }
body.tbw-cinematic-v2 .order-ticket-total strong { font-family:inherit; font-size:1.06rem; letter-spacing:0; }
body.tbw-cinematic-v2 .order-ticket-footer { justify-content:center; padding:20px 30px 26px; border:0; background:#f5f7f8; }
body.tbw-cinematic-v2 .order-ticket-footer .button { min-height:42px; font-size:.78rem; }
@media print {
 body.tbw-cinematic-v2 .order-ticket-dialog { width:80mm; }
 body.tbw-cinematic-v2 .order-ticket-close { display:none!important; }
}

/* Receipt printer animation supplied for the ticket experience. */
body.tbw-cinematic-v2 .order-ticket-printer { position:relative; width:106px; height:88px; overflow:hidden; }
body.tbw-cinematic-v2 .order-ticket-printer-hood { position:relative; z-index:3; width:106px; height:26px; border-radius:10px 10px 3px 3px; background:linear-gradient(180deg,#fff 0%,#d9e0e5 34%,#8997a3 100%); box-shadow:inset 0 2px 2px rgba(255,255,255,.9),0 4px 8px rgba(3,20,36,.22); }
body.tbw-cinematic-v2 .order-ticket-printer-hood span { display:block; width:78%; height:3px; margin:4px auto; border-radius:99px; background:rgba(255,255,255,.82); }
body.tbw-cinematic-v2 .order-ticket-printer-slot { position:relative; z-index:2; width:90px; height:7px; margin:-3px auto 0; border-radius:2px; background:#101d27; box-shadow:inset 0 2px 3px #000; }
@media (max-width:520px) { body.tbw-cinematic-v2 .order-ticket-printer { transform:scale(.76); transform-origin:left center; } }
@media print { body.tbw-cinematic-v2 .order-ticket-printer { display:none!important; } }

/* The whole receipt rolls out from the printer; it is not a separate card. */
body.tbw-cinematic-v2 .order-ticket-dialog { width:min(100%,430px); overflow:hidden; background:#dfe6eb; }
body.tbw-cinematic-v2 .order-ticket-dialog::after { display:none; }
body.tbw-cinematic-v2 .order-ticket-print-stage { display:grid; justify-items:center; padding:42px 24px 0; }
body.tbw-cinematic-v2 .order-ticket-print-stage > .order-ticket-printer { z-index:3; width:300px; height:58px; overflow:visible; }
body.tbw-cinematic-v2 .order-ticket-print-stage .order-ticket-printer-hood { width:300px; height:48px; border-radius:15px 15px 4px 4px; background:linear-gradient(180deg,#fff 0%,#e1e8ec 28%,#9eadb8 70%,#687887 100%); box-shadow:inset 0 3px 4px rgba(255,255,255,.95),0 8px 14px rgba(3,20,36,.25); }
body.tbw-cinematic-v2 .order-ticket-print-stage .order-ticket-printer-hood span { width:82%; height:4px; margin:6px auto; }
body.tbw-cinematic-v2 .order-ticket-print-stage .order-ticket-printer-slot { width:266px; height:10px; margin:-5px auto 0; border-radius:2px; }
body.tbw-cinematic-v2 .order-ticket-roll-viewport { position:relative; z-index:2; width:300px; max-height:0; overflow:hidden; transition:none; }
body.tbw-cinematic-v2 .order-ticket-print-stage.is-printing .order-ticket-roll-viewport { animation:ticketRollOut 1.85s cubic-bezier(.16,.78,.18,1) forwards; }
body.tbw-cinematic-v2 .order-ticket-print-stage.is-printed .order-ticket-roll-viewport { max-height:720px; }
body.tbw-cinematic-v2 .order-ticket-printout { margin-top:-2px; padding:18px 22px 22px; background:#fff; color:#111; box-shadow:0 7px 16px rgba(2,17,30,.22); font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
body.tbw-cinematic-v2 .order-ticket-printout::after { content:""; display:block; height:9px; margin:18px -22px -31px; background:linear-gradient(135deg,transparent 5px,#fff 0) 0 0/10px 9px repeat-x; }
body.tbw-cinematic-v2 .order-ticket-printout-head { padding-bottom:15px; border-bottom:1px dashed #87939c; text-align:center; }
body.tbw-cinematic-v2 .order-ticket-printout-head span { display:block; color:#172331; font-size:.67rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
body.tbw-cinematic-v2 .order-ticket-printout-head h2 { margin:6px 0; color:#111; font-family:inherit; font-size:1.25rem; letter-spacing:.04em; text-transform:uppercase; }
body.tbw-cinematic-v2 .order-ticket-printout-head p { margin:0; color:#263342; font-family:inherit; font-size:.68rem; line-height:1.42; }
body.tbw-cinematic-v2 .order-ticket-printout .order-ticket-content { padding:3px 0 0; }
body.tbw-cinematic-v2 .order-ticket-printout .order-ticket-thanks { margin:16px 0 0; padding-top:14px; border-top:1px dashed #87939c; color:#202b35; font-size:.67rem; text-align:center; }
body.tbw-cinematic-v2 .order-ticket-footer { position:relative; z-index:4; margin-top:18px; }
@keyframes ticketRollOut { 0% { max-height:0; } 22% { max-height:86px; } 44% { max-height:190px; } 66% { max-height:330px; } 84% { max-height:500px; } 100% { max-height:720px; } }
@media (max-width:520px) { body.tbw-cinematic-v2 .order-ticket-print-stage { padding:34px 12px 0; } body.tbw-cinematic-v2 .order-ticket-print-stage > .order-ticket-printer,body.tbw-cinematic-v2 .order-ticket-print-stage .order-ticket-printer-hood { width:min(300px,calc(100vw - 56px)); } body.tbw-cinematic-v2 .order-ticket-roll-viewport { width:min(300px,calc(100vw - 56px)); } }
@media print { body.tbw-cinematic-v2 .order-ticket-print-stage { padding:0; } body.tbw-cinematic-v2 .order-ticket-print-stage > .order-ticket-printer { display:none!important; } body.tbw-cinematic-v2 .order-ticket-roll-viewport,body.tbw-cinematic-v2 .order-ticket-print-stage.is-printed .order-ticket-roll-viewport { width:80mm; max-height:none; overflow:visible; } body.tbw-cinematic-v2 .order-ticket-printout { box-shadow:none; } }

/* Keep the machine fixed. Only the paper itself moves and grows. */
body.tbw-cinematic-v2 .order-ticket-dialog { overflow:visible; background:transparent; box-shadow:none; }
body.tbw-cinematic-v2 .order-ticket-print-stage { position:relative; display:block; height:720px; padding:0; }
body.tbw-cinematic-v2 .order-ticket-print-stage > .order-ticket-printer { position:absolute; z-index:4; top:0; left:50%; transform:translateX(-50%); }
body.tbw-cinematic-v2 .order-ticket-roll-viewport { position:absolute; z-index:2; top:52px; left:50%; transform:translateX(-50%); }
body.tbw-cinematic-v2 .order-ticket-roll-viewport { max-height:720px; }
body.tbw-cinematic-v2 .order-ticket-printout { clip-path:inset(0 0 100% 0); transform:translateY(-10px); will-change:clip-path,transform; }
body.tbw-cinematic-v2 .order-ticket-print-stage.is-printed .order-ticket-printout { clip-path:inset(0 0 0 0); transform:translateY(0); }

/* Exact smooth 3D feed motion from the supplied receipt-printer code. */
body.tbw-cinematic-v2 .order-ticket-print-stage { perspective:1200px; perspective-origin:50% 52px; }
body.tbw-cinematic-v2 .order-ticket-printer-bottom { position:relative; z-index:3; width:300px; height:13px; margin:-4px auto 0; border-radius:0 0 13px 13px; background:linear-gradient(180deg,#657482 0%,#aebbc4 46%,#f8fbfc 100%); box-shadow:0 7px 15px rgba(2,17,30,.14); }
body.tbw-cinematic-v2 .order-ticket-printer-bottom span { display:block; width:100%; height:100%; background:linear-gradient(180deg,rgba(0,0,0,.16),transparent); }
body.tbw-cinematic-v2 .order-ticket-roll-viewport { overflow:visible; clip-path:inset(0 -60px -1200px -60px); perspective:1200px; perspective-origin:50% 0; filter:drop-shadow(0 18px 36px rgba(2,17,30,.16)) drop-shadow(0 4px 12px rgba(2,17,30,.08)); }
body.tbw-cinematic-v2 .order-ticket-printout { clip-path:none; transform-origin:top center; transform-style:preserve-3d; transform:translateY(-93%) rotateX(-18deg) translateZ(-30px) scale(.97); opacity:.4; will-change:transform,opacity; }
body.tbw-cinematic-v2 .order-ticket-print-stage.is-printed .order-ticket-printout { clip-path:none; transform:translateY(0) rotateX(0) translateZ(0) scale(1); opacity:1; }

/* Single floating completion action; no footer card beneath the receipt. */
body.tbw-cinematic-v2 .order-ticket-footer { justify-content:center; margin-top:16px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
body.tbw-cinematic-v2 .order-ticket-footer .button-primary { min-width:112px; border-color:var(--gallery-blue); background:var(--gallery-blue); color:#fff; box-shadow:0 8px 22px rgba(8,121,201,.28); }
body.tbw-cinematic-v2 .order-ticket-footer .button-primary:hover { background:#066eB7; transform:translateY(-1px); }

/* Catalog confidence and delivery information. */
body.tbw-gallery .catalog-delivery-note { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:48px; align-items:end; padding:72px max(24px,calc((100% - 980px)/2)); }
body.tbw-gallery .catalog-delivery-note h2 { max-width:720px; }
body.tbw-gallery .catalog-delivery-note p:not(.gallery-eyebrow) { max-width:680px; margin-top:18px; }
body.tbw-gallery .gallery-footer-legal { display:flex; flex-wrap:wrap; gap:0 20px; }
body.tbw-gallery .delivery-hero { max-width:980px; margin:auto; }
body.tbw-gallery .delivery-steps article { border-top:1px solid var(--gallery-line); padding-top:22px; }
body.tbw-gallery .delivery-clarity { display:grid; grid-template-columns:.8fr 1fr; gap:72px; padding:88px max(24px,calc((100% - 980px)/2)); }
body.tbw-gallery .delivery-clarity p:not(.gallery-eyebrow) { margin:0 0 18px; color:#c1d1e1; font-size:18px; line-height:1.55; }
body.tbw-gallery .button-card-pay:disabled { opacity:.48; cursor:not-allowed; }
@media(max-width:833px) { body.tbw-gallery .catalog-delivery-note,body.tbw-gallery .delivery-clarity { grid-template-columns:1fr; gap:28px; } body.tbw-gallery .catalog-delivery-note { align-items:start; } }
body.tbw-cinematic-v2 .order-ticket-footer { margin-top:0; border-radius:0 0 16px 16px; background:rgba(255,255,255,.94); box-shadow:0 10px 26px rgba(2,17,30,.16); }
body.tbw-cinematic-v2 .order-ticket-close { z-index:8; background:rgba(255,255,255,.94); box-shadow:0 3px 10px rgba(2,17,30,.14); }
@media (max-height:820px) and (min-width:521px) { body.tbw-cinematic-v2 .order-ticket-print-stage { height:620px; } body.tbw-cinematic-v2 .order-ticket-roll-viewport { max-height:590px!important; } }
@media (max-width:520px) { body.tbw-cinematic-v2 .order-ticket-print-stage { height:min(650px,calc(100dvh - 160px)); } body.tbw-cinematic-v2 .order-ticket-roll-viewport { left:50%; } }
@media print { body.tbw-cinematic-v2 .order-ticket-dialog { background:#fff; } body.tbw-cinematic-v2 .order-ticket-print-stage { height:auto; } body.tbw-cinematic-v2 .order-ticket-roll-viewport { position:static; transform:none; margin:auto; } }

/* Product details and customer information pages. */
body.tbw-gallery .product-detail-page { padding:72px max(24px,calc((100% - 1072px)/2)) 96px; }
body.tbw-gallery .product-detail-hero { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr); gap:72px; align-items:center; }
body.tbw-gallery .product-detail-media { aspect-ratio:1/1; display:grid; place-items:center; overflow:hidden; background:var(--gallery-paper); border-radius:24px; }
body.tbw-gallery .product-detail-media img { width:100%; height:100%; object-fit:cover; }
body.tbw-gallery .product-detail-placeholder { color:var(--gallery-blue); font-size:clamp(52px,10vw,112px); font-weight:700; letter-spacing:-.08em; }
body.tbw-gallery .product-detail-copy h1 { margin:0; text-align:left; font-size:clamp(42px,6vw,72px); }
body.tbw-gallery .product-detail-description { margin-top:22px; max-width:540px; font-size:20px; }
body.tbw-gallery .product-note-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
body.tbw-gallery .product-note-list span { padding:7px 11px; border:1px solid var(--gallery-line); border-radius:999px; color:var(--gallery-muted); font-size:13px; }
body.tbw-gallery .product-detail-price { display:flex; align-items:end; justify-content:space-between; gap:20px; margin:32px 0 20px; padding-top:24px; border-top:1px solid var(--gallery-line); }
body.tbw-gallery .product-detail-price strong { font-size:32px; letter-spacing:-.04em; }
body.tbw-gallery .product-detail-price span { color:var(--gallery-muted); font-size:14px; }
body.tbw-gallery .product-detail-copy .button-add-cart { width:100%; min-height:50px; }
body.tbw-gallery .product-information { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:80px; border:1px solid var(--gallery-line); background:var(--gallery-line); border-radius:20px; overflow:hidden; }
body.tbw-gallery .product-information > div { min-height:150px; padding:28px; background:white; }
body.tbw-gallery .product-information span { display:block; margin-bottom:12px; color:var(--gallery-blue); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
body.tbw-gallery .product-information strong { font-size:21px; }
body.tbw-gallery .product-detail-state { max-width:760px; min-height:55vh; margin:auto; display:grid; align-content:center; justify-items:start; gap:20px; }
body.tbw-gallery .product-card-image { display:block; aspect-ratio:4/3; margin:-4px -4px 22px; overflow:hidden; border-radius:14px; background:var(--gallery-paper); }
body.tbw-gallery .product-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
body.tbw-gallery .product-card-image:hover img { transform:scale(1.025); }
body.tbw-gallery .product-detail-link { display:inline-flex; min-height:44px; align-items:center; gap:8px; margin:4px 0 12px; color:var(--gallery-blue); }

body.tbw-gallery .policy-page { background:#fff; padding-bottom:96px; }
body.tbw-gallery .policy-hero { max-width:980px; margin:auto; padding:88px 24px 64px; border-bottom:1px solid var(--gallery-line); }
body.tbw-gallery .policy-hero h1 { margin:0; text-align:left; }
body.tbw-gallery .policy-hero > p:not(.gallery-eyebrow) { max-width:720px; margin-top:22px; font-size:22px; }
body.tbw-gallery .policy-hero > span { display:block; margin-top:28px; color:var(--gallery-muted); font-size:13px; }
body.tbw-gallery .policy-layout { display:grid; grid-template-columns:240px minmax(0,660px); gap:72px; max-width:980px; margin:0 auto; padding:64px 24px 0; }
body.tbw-gallery .policy-contact { align-self:start; position:sticky; top:96px; padding-top:20px; border-top:2px solid var(--gallery-blue); }
body.tbw-gallery .policy-contact strong { font-size:18px; }
body.tbw-gallery .policy-contact p { margin:12px 0; font-size:14px; }
body.tbw-gallery .policy-contact a,body.tbw-gallery .policy-content a { color:var(--gallery-blue); text-decoration:underline; text-underline-offset:3px; }
body.tbw-gallery .policy-content { min-width:0; }
body.tbw-gallery .policy-content section { padding:0 0 40px; margin-bottom:40px; border-bottom:1px solid var(--gallery-line); }
body.tbw-gallery .policy-content h2 { margin-bottom:18px; font-size:28px; }
body.tbw-gallery .policy-content :is(p,li) { font-size:17px; line-height:1.65; }
body.tbw-gallery .policy-content :is(ul,ol) { padding-left:22px; color:var(--gallery-muted); }
body.tbw-gallery .policy-content li + li { margin-top:8px; }
body.tbw-gallery .policy-content strong { color:var(--gallery-ink); }
body.tbw-gallery .policy-content details { padding:20px 0; border-top:1px solid var(--gallery-line); }
body.tbw-gallery .policy-content summary { min-height:44px; display:flex; align-items:center; cursor:pointer; color:var(--gallery-ink); font-weight:600; }
body.tbw-gallery .policy-content details p { padding-top:12px; }
body.tbw-gallery .auth-legal-note,body.tbw-gallery .phone-consent-note { margin:12px 0 0; color:var(--gallery-muted); font-size:12px; line-height:1.5; }
body.tbw-gallery .auth-legal-note a,body.tbw-gallery .auth-privacy-note a { color:var(--gallery-blue); text-decoration:underline; text-underline-offset:2px; }
@media(max-width:833px) {
  body.tbw-gallery .product-detail-page { padding-top:40px; }
  body.tbw-gallery .product-detail-hero,body.tbw-gallery .policy-layout { grid-template-columns:1fr; gap:36px; }
  body.tbw-gallery .product-detail-copy h1 { font-size:42px; }
  body.tbw-gallery .policy-contact { position:static; order:2; }
}
@media(max-width:560px) {
  body.tbw-gallery .product-information { grid-template-columns:1fr; }
  body.tbw-gallery .product-detail-price { align-items:start; flex-direction:column; }
  body.tbw-gallery .policy-hero { padding-top:64px; }
  body.tbw-gallery .policy-hero h1 { font-size:42px; }
}
@media(prefers-reduced-motion:reduce) { body.tbw-gallery .product-card-image img { transition:none; } }

/* Home: purchase promises, each one restating a published policy. */
body.tbw-gallery .store-trust { background:var(--gallery-paper); }
body.tbw-gallery .store-trust-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin:0; padding:0; list-style:none; }
body.tbw-gallery .store-trust-item { display:flex; flex-direction:column; padding:28px 26px 20px; border:1px solid var(--gallery-line); border-radius:22px; background:var(--gallery-white); }
body.tbw-gallery .store-trust-icon { display:grid; place-items:center; width:48px; height:48px; margin-bottom:28px; border-radius:50%; background:#e5f6fd; color:var(--gallery-blue); }
body.tbw-gallery .gallery-main .store-trust-item h3 { font-size:21px; }
body.tbw-gallery .gallery-main .store-trust-item p { flex:1; margin-top:10px; font-size:15px; line-height:1.5; }
body.tbw-gallery .store-trust-item .gallery-link { margin-top:14px; font-size:15px; }
@media(max-width:1023px) { body.tbw-gallery .store-trust-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) {
  body.tbw-gallery .store-trust-grid { grid-template-columns:1fr; gap:14px; }
  body.tbw-gallery .store-trust-item { display:grid; grid-template-columns:44px 1fr; column-gap:16px; padding:22px 20px 14px; }
  body.tbw-gallery .store-trust-icon { grid-row:span 3; width:44px; height:44px; margin:0; }
  body.tbw-gallery .gallery-main .store-trust-item h3 { font-size:19px; }
  body.tbw-gallery .store-trust-item .gallery-link { margin-top:6px; }
}

/* 404: a calm way back. */
body.tbw-gallery .not-found-page { padding-bottom:96px; }
body.tbw-gallery .not-found-hero { padding-top:112px; padding-bottom:72px; }
body.tbw-gallery .not-found-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; max-width:1072px; margin:0 auto; padding:0 24px; }
body.tbw-gallery .not-found-links a { position:relative; display:flex; flex-direction:column; gap:6px; min-height:120px; padding:24px 44px 24px 24px; border:1px solid var(--gallery-line); border-radius:20px; background:var(--gallery-paper); color:var(--gallery-ink); transition:border-color .2s ease, background-color .2s ease; }
body.tbw-gallery .not-found-links strong { font-size:19px; font-weight:600; }
body.tbw-gallery .not-found-links span { color:var(--gallery-muted); font-size:15px; }
body.tbw-gallery .not-found-links .not-found-arrow { position:absolute; top:22px; right:22px; color:var(--gallery-blue); font-size:22px; line-height:1; }
@media(hover:hover) and (pointer:fine) { body.tbw-gallery .not-found-links a:hover { border-color:var(--gallery-blue); background:var(--gallery-white); } }
@media(max-width:833px) {
  body.tbw-gallery .not-found-hero { padding-top:72px; padding-bottom:48px; }
  body.tbw-gallery .not-found-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:420px) { body.tbw-gallery .not-found-links { grid-template-columns:1fr; } body.tbw-gallery .not-found-links a { min-height:0; } }

/* Cookie consent: a quiet card; both answers carry the same weight. */
body.tbw-gallery .cookie-consent { position:fixed; z-index:90; left:50%; bottom:20px; width:min(620px,calc(100% - 32px)); translate:-50% 0; display:flex; align-items:center; gap:20px; padding:18px 18px 18px 22px; border:1px solid rgba(255,255,255,.12); border-radius:22px; background:rgba(2,27,60,.9); -webkit-backdrop-filter:saturate(180%) blur(20px); backdrop-filter:saturate(180%) blur(20px); box-shadow:0 24px 60px -24px rgba(2,27,60,.6); color:#e5f6fd; animation:cookieIn .5s cubic-bezier(.16,1,.3,1) both; }
body.tbw-gallery .cookie-consent p { margin:0; font-size:14px; line-height:1.45; color:#c1d1e1; }
body.tbw-gallery .cookie-consent strong { color:#fff; font-weight:600; }
body.tbw-gallery .cookie-consent a { color:var(--gallery-cyan); text-decoration:underline; text-underline-offset:3px; }
body.tbw-gallery .cookie-consent-actions { display:flex; gap:8px; flex-shrink:0; }
body.tbw-gallery .cookie-consent-button { min-height:40px; padding:8px 18px; border:1px solid rgba(255,255,255,.35); border-radius:9999px; background:transparent; color:#fff; font:inherit; font-size:14px; cursor:pointer; }
body.tbw-gallery .cookie-consent-button.is-primary { border-color:var(--gallery-cyan); background:var(--gallery-cyan); color:var(--gallery-dark); }
@keyframes cookieIn { from { opacity:0; translate:-50% 16px; } to { opacity:1; translate:-50% 0; } }
@media(max-width:560px) {
  body.tbw-gallery .cookie-consent { flex-direction:column; align-items:stretch; gap:14px; bottom:12px; padding:18px; }
  body.tbw-gallery .cookie-consent-button { flex:1; }
}
@media(prefers-reduced-motion:reduce) { body.tbw-gallery .cookie-consent { animation:none; } }
body.tbw-gallery .gallery-hero > .gallery-button { margin-top:28px; }
body.tbw-gallery .policy-content p + :is(p,ul,ol),body.tbw-gallery .policy-content :is(ul,ol) + p { margin-top:14px; }
/* Chevron links read as one phrase ("Explorar Difusores ›"), as on apple.com. */
body.tbw-gallery .store-space-link { justify-content:flex-start; gap:6px; }
body.tbw-gallery .store-space-link > span { transition:transform .3s ease; }
@media(hover:hover) and (pointer:fine) { body.tbw-gallery .store-space:hover .store-space-link > span { transform:translateX(3px); } }
/* Home rhythm: "Hecho para tu día" and "Elige dónde empezar" share the white background, so they share one gap. */
body.tbw-gallery .store-home .home-positioning { padding-bottom:56px; }
body.tbw-gallery .store-home .store-spaces { padding-top:72px; }
@media(max-width:833px) {
  body.tbw-gallery .store-home .home-positioning { padding-bottom:40px; }
  body.tbw-gallery .store-home .store-spaces { padding-top:48px; }
}
