/* =========================================================================
   Tokyo Bikini Bar — Foundations
   Colors + Typography tokens. Import this file in every artifact.
   ========================================================================= */

/* ---- Webfonts -----------------------------------------------------------
   Display: Olivita (italic) — the brand-supplied wordmark face. Loaded
   locally from fonts/. Always render at font-style: italic.
   JP display: Hiragino Kaku Gothic W9 (user-supplied) — chunky bold kana/kanji.
   Body: Nunito / Nunito Sans (Google Fonts) — playful, rounded, readable.
*/
@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,600;0,700;0,800;0,900;1,600&family=Nunito+Sans:wght@600;700;800;900&display=swap');

/* --- JP display face (user-supplied Hiragino Kaku Gothic W9) ------ */
@font-face {
  font-family: 'Hiragino Kaku W9';
  src: url('fonts/HiraginoKaku-W9.ttc');
  font-weight: 900;
  font-style: normal;
  font-display: block;
}

/* --- Brand display face (user-supplied) ---------------------------- */
@font-face {
  font-family: 'Olivita';
  src: url(data:font/otf;base64,T1RUTwAMAIAAAwBAQ0ZGIFEDr0kAAAXoAAAubEdERUYBxwFJAAA0VAAAAF5HUE9T8Vr+BgAANLQAABoER1NVQrj6uPQAAE64AAAAKk9TLzJzTH5AAAABMAAAAGBjbWFwAXABzwAABWwAAABaaGVhZCHNIAgAAADMAAAANmhoZWEIHAMtAAABBAAAACRobXR4voUDAwAATuQAAAEMbWF4cABDUAAAAAEoAAAABm5hbWVlpZmDAAABkAAAA9pwb3N0/58AMgAABcgAAAAgAAEAAAABAIORSanoXw889QADA+gAAAAA3sVAHQAAAADfv5xT/4L+7ASvA0UAAAAHAAIAAAAAAAAAAQAAA+j+jgAABLj/gv+jBK8AAQAAAAAAAAAAAAAAAAAAAEMAAFAAAEMAAAAEAqUBkAAFAAgCigJYAAAASwKKAlgAAAFeADIBEwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAABQbGF1AMAAIAB6A+j+jgAAA+gBciAAAJMAAAAAAicCoAAAACAADQAAABUBAgADAAEECQAAAD4AAAADAAEECQABABgAPgADAAEECQACAA4AVgADAAEECQADADwAZAADAAEECQAEACgAoAADAAEECQAFABoAyAADAAEECQAGACYA4gADAAEECQAIAAgBCAADAAEECQAJABwBEAADAAEECQALACYBLAADAAEECQAMACYBLAADAAEECQAQABgAPgADAAEECQARAA4AVgADAAEECQEAAC4BUgADAAEECQECAHQBgAADAAEECQEEABYB9AADAAEECQEGACYCCgADAAEECQEIACQCMAADAAEECQEKACACVAADAAEECQELACACdAADAAEECQEMAEQClABBAGwAbAAgAHIAaQBnAGgAdABzACAAcgBlAHMAZQByAHYAZQBkAC4AIABQAGwAYQB1ACAAMgAwADIAMgAuAE8AbABpAHYAaQB0AGEAIABUAGUAcwB0AFIAZQBnAHUAbABhAHIAMQAuADAAMAAyADsAUABsAGEAdQA7AE8AbABpAHYAaQB0AGEAVABlAHMAdAAtAFIAZQBnAHUAbABhAHIATwBsAGkAdgBpAHQAYQAgAFQAZQBzAHQAIABSAGUAZwB1AGwAYQByAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAwADIATwBsAGkAdgBpAHQAYQBU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/7z/vP/5AAAAGgASABoAAAAAAAAABAAAAAAAAP/uAAUAC//w/+r/9P/p//sABwAY//3/5wAA//UACAASAAAAAP/4//T/8gAA//gAAAAAAAAACAAA//sAAAAAAAUABAAIAAIAAQACADUAAAABAAIANAAfAAAAAQALAAIAAwAEAAUABgASAAcACAAJAAoACwAMAA0ADgAPABAAEQASABIABwATABQAFQAhABYAFwAYABkAGgAfABsAHAAdAB4AHwAfACAAIQAiACMAJAAlACYAJwAnACgAKQAqAAEAAgBBABYAAgAFAAIAAQABAAUAAgADAAQAAwADAAIAAQAFAAYABQACAAcAFwAYABkACAADAAgAFQAaAAkAGwAbABsAJQAcAB0ADQAOAB4AHwAmACYAGwAPABsAIAARABMAFAAiACMAAAAkABUAIQAAAAAAAAALAAAAIQASAAAAAAAQAAoADAABAAAACgAmACgAAkRGTFQADmxhdG4AGAAEAAAAAP//AAAAAAAAAAAAAAAAA44AKADTAAADXQAIAxEAEwLvACYDPgATAuEADALeAAwDBgAmA5cAEwImAAwCzAAOA5cADALeAAwEcwATA2oACQM9ACYC7AAMAyIAJgNSABMCrQAPAyEADAMwAAMDYf/6BFwADQMvAA0DRwANAvwAGQLvABQC1//LAmcAEwMkABMCcwATAi4AEwKD//QDZwAMAgYADAGO/4IDcAAMAgYADAS4AAwDZwAMAqkAEwMqAAwC7gATAscAFQJbABkCQP/pAyL/5QLH//QDsP/9AtQADALH/+UCjgAaArQAFAJlABwCswAOAn8AEwLKABgCZQANAnEAEAKNABIChAAKAnEACQGCADcBUgAaAesAFg==) format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: block;
}

/* Olivita IS the italic; never synthesize bold/italic on top of it (or any face). */
html, body, * { font-synthesis: none; -webkit-font-smoothing: antialiased; }

/* Services menu: 4 columns at wide, gracefully step down on narrower screens */
.tbb-services-grid { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .tbb-services-grid { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 820px)  { .tbb-services-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 520px)  { .tbb-services-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; } }

/* =========================================================================
   RESPONSIVE — tablet & mobile breakpoints
   ========================================================================= */

/* Section paddings — shrink horizontal/vertical chrome on small screens.
   #top keeps a generous top-pad so content always clears the fixed nav. */
@media (max-width: 900px) {
  section { padding-left: 22px !important; padding-right: 22px !important; padding-top: 56px !important; padding-bottom: 56px !important; }
  #top { padding: 88px 20px 72px !important; min-height: 100svh !important; }
  footer { padding: 44px 22px 20px !important; }
}
@media (max-width: 560px) {
  section { padding-left: 16px !important; padding-right: 16px !important; padding-top: 44px !important; padding-bottom: 44px !important; }
  #top { padding: 80px 16px 64px !important; }
}

/* NavBar — hamburger menu below desktop */
.tbb-nav-links a { white-space: nowrap; }
.tbb-burger { display: none; }
@media (max-width: 1023px) {
  .tbb-nav { padding: 10px 16px !important; }
  .tbb-nav-links { display: none !important; }
  .tbb-burger { display: inline-flex !important; }
  .tbb-nav img { height: 36px !important; }
}

/* Hamburger button — chunky paper button that morphs to X when open */
.tbb-burger {
  width: 48px; height: 48px; padding: 0; cursor: pointer;
  align-items: center; justify-content: center; flex-direction: column; gap: 5px;
  background: var(--tbb-paper);
  border: 3px solid var(--tbb-ink);
  border-radius: 14px;
  box-shadow: 3px 3px 0 0 var(--tbb-ink);
  transition: transform 160ms var(--bounce), box-shadow 160ms ease;
}
.tbb-burger:hover { transform: translate(-1px, -1px); box-shadow: 5px 5px 0 0 var(--tbb-ink); }
.tbb-burger:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 0 var(--tbb-ink); }
.tbb-burger span {
  display: block; width: 22px; height: 3px;
  background: var(--tbb-ink); border-radius: 2px;
  transition: transform 320ms var(--bounce), opacity 200ms ease;
}
.tbb-burger[data-open="1"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.tbb-burger[data-open="1"] span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.tbb-burger[data-open="1"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* Backdrop dim */
.tbb-drawer-backdrop {
  position: fixed; inset: 0;
  background: rgba(10, 10, 10, 0.55);
  z-index: 40;
  opacity: 0; pointer-events: none;
  transition: opacity 280ms ease;
}
.tbb-drawer-backdrop[data-open="1"] { opacity: 1; pointer-events: auto; }

/* Slide-in drawer panel */
.tbb-drawer {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: min(360px, 88vw);
  background: var(--tbb-paper);
  border-left: 3px solid var(--tbb-ink);
  box-shadow: -6px 0 0 0 var(--tbb-ink);
  z-index: 50;
  transform: translateX(105%);
  transition: transform 380ms var(--bounce);
  overflow-y: auto;
}
.tbb-drawer[data-open="1"] { transform: translateX(0); }
.tbb-drawer-inner {
  padding: 96px 28px 36px;
  display: flex; flex-direction: column; gap: 6px;
}
.tbb-drawer-close {
  position: absolute; top: 18px; right: 18px;
  width: 44px; height: 44px; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--tbb-hotpink); color: var(--tbb-paper);
  border: 3px solid var(--tbb-ink);
  border-radius: 999px;
  box-shadow: 3px 3px 0 0 var(--tbb-ink);
  font-family: Olivita, system-ui;
  font-size: 28px; line-height: 1; font-weight: 900;
  cursor: pointer;
  transition: transform 160ms var(--bounce), box-shadow 160ms ease, background 160ms ease;
}
.tbb-drawer-close:hover { transform: translate(-1px, -1px) rotate(90deg); box-shadow: 5px 5px 0 0 var(--tbb-ink); background: var(--tbb-ink); }
.tbb-drawer-close:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 0 var(--tbb-ink); }
.tbb-drawer-inner a {
  font-family: Olivita, system-ui;
  font-style: italic;
  font-size: clamp(30px, 6vw, 38px);
  line-height: 1.05;
  color: var(--tbb-ink);
  text-decoration: none;
  padding: 14px 0;
  border-bottom: 2px solid var(--tbb-ink);
  opacity: 0;
  transform: translateX(20px);
  transition: color 200ms ease;
}
.tbb-drawer-inner a:hover,
.tbb-drawer-inner a[data-active="1"] { color: var(--tbb-hotpink); }
.tbb-drawer-cta { opacity: 0; transform: translateX(20px); }
.tbb-drawer[data-open="1"] .tbb-drawer-inner a,
.tbb-drawer[data-open="1"] .tbb-drawer-cta {
  animation: tbbDrawerItemIn 420ms var(--bounce) forwards;
}
@keyframes tbbDrawerItemIn {
  0%   { opacity: 0; transform: translateX(20px); }
  100% { opacity: 1; transform: translateX(0); }
}

/* Hero — collapse to text-only when the mascot can't fit beside it */
@media (max-width: 900px) {
  .tbb-hero-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
  .tbb-hero-grid > div:last-child { display: none !important; }
}

/* About — stack photo above bio */
@media (max-width: 900px) {
  .tbb-about-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
}

/* Location — stack address column above map */
@media (max-width: 900px) {
  .tbb-location-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
}

/* Testimonials — stack copy above the review card */
@media (max-width: 900px) {
  .tbb-testimonial-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
}

/* Press feature — stack logo above copy */
@media (max-width: 900px) {
  .tbb-press-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
}

/* Footer — collapse 4 cols → 2 → 1 */
@media (max-width: 900px) { .tbb-footer-grid { grid-template-columns: 1fr 1fr !important; gap: 24px !important; } }
@media (max-width: 520px) { .tbb-footer-grid { grid-template-columns: 1fr !important; } }

/* Booking modal — make sure it stays usable */
@media (max-width: 640px) {
  .tbb-modal { padding: 22px 18px !important; max-width: 94vw !important; max-height: 88vh !important; }
}

/* Marquees — shrink type so they don't overflow */
@media (max-width: 700px) {
  .tbb-marquee-track { gap: 30px !important; }
}

/* Heading-size safety: clamp() already handles most, but pin generous vertical rhythm */
@media (max-width: 560px) {
  h1, h2 { line-height: 0.95 !important; }
}

/* Disable cursor trail on touch (no hover) — sparkles only clutter mobile */
@media (hover: none) {
  #tbb-cursor-canvas { display: none !important; }
}

/* Hide rating circles globally (desktop + mobile) */
.tbb-hero-rating-circles { display: none !important; }

/* ===== Tablet & mobile fine-tuning ===== */
@media (max-width: 900px) {
  /* Hide all free-floating hero stickers — they're positioned for the 2-col layout */
  .tbb-hero-sticker { display: none !important; }
}
@media (max-width: 760px) {
  /* Hero — let it size naturally to content; no clipping, no flex stretching */
  #top { min-height: 100svh !important; overflow: visible !important; padding: 80px 20px 64px !important; }
  .tbb-hero-h1 { line-height: 1.14 !important; padding-top: 0.18em !important; }
  /* Stack rating text on its own line, wrap if long */
  .tbb-hero-rating { flex-wrap: wrap !important; margin-top: 24px !important; }

  /* Care tabs wrap */
  #care > div > div[style*="justify-content: center"] { flex-wrap: wrap !important; gap: 8px !important; }
  #care button { padding: 12px 18px !important; font-size: 13px !important; }

  /* Constrain everything that bleeds — wide-grid sections force min-width:0 children */
  #services, #about, #memberships, #testimonials, #press { overflow: hidden !important; }
  #services > div, #about > div, #memberships > div { max-width: 100% !important; min-width: 0 !important; }
  .tbb-services-grid, .tbb-about-grid, .tbb-testimonial-grid, .tbb-press-grid { width: 100% !important; min-width: 0 !important; max-width: 100% !important; }
  .tbb-services-grid > *, .tbb-about-grid > *, .tbb-testimonial-grid > *, .tbb-press-grid > * { min-width: 0 !important; max-width: 100% !important; }

  /* Service cards — strip rotation that pushes them past column edge */
  .tbb-services-grid .tbb-peel { transform: none !important; }

  /* About image wrapper — neutralize rotation + force fit */
  #about [style*="rotate(-3deg)"] { transform: none !important; width: 100% !important; max-width: 100% !important; }
  #about [style*="rotate(8deg)"],
  #about [style*="rotate(-8deg)"] { transform: scale(0.85) !important; }

  /* Marquees — full width, no clipping; container can't overflow viewport */
  body, html { overflow-x: hidden !important; }

  /* Membership cards padding */
  #memberships .tbb-peel { padding: 22px 20px !important; }

  /* About stat badges — shrink so they don't bleed past the column */
  .tbb-about-stats { gap: 8px !important; }
  .tbb-about-stats > * { padding: 12px 8px !important; min-width: 0 !important; }
  .tbb-about-stat-num { font-size: 32px !important; }
  .tbb-about-stat-label { font-size: 9px !important; letter-spacing: 0.1em !important; }
}

/* Collab grid stacks on mobile */
@media (max-width: 760px) {
  .tbb-collab-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
  .tbb-collab-row { grid-template-columns: 1fr !important; }
}
@media (max-width: 420px) {
  #top button, #top a[role="button"] { padding: 14px 20px !important; font-size: 14px !important; }
}

/* =========================================================================
   1. COLOR TOKENS
   ========================================================================= */
:root {
  /* --- Brand core ----------------------------------------------------- */
  --tbb-ink:          #0A0A0A;   /* primary ink — outlines, headlines, logo */
  --tbb-ink-soft:     #1B1B1B;
  --tbb-paper:        #FBF6EE;   /* cream paper — primary surface */
  --tbb-paper-warm:   #F6EBDA;   /* warmer cream — sections */
  --tbb-white:        #FFFFFF;

  /* --- Brand accents (lifted from mascot halftone) ------------------- */
  --tbb-peach:        #FFB58A;   /* halftone skin */
  --tbb-coral:        #FF7A45;   /* mascot face core */
  --tbb-tangerine:    #FF5A1F;   /* hot orange accent */
  --tbb-hotpink:      #FF1F6D;   /* mouth pink */
  --tbb-bubblegum:    #FF8FBE;   /* soft pink */
  --tbb-sky:          #4FB8E5;   /* halo blue */
  --tbb-cyan:         #2EC5FF;
  --tbb-teal:         #2DBFA0;   /* hair lowlights */
  --tbb-lime:         #C7E94B;   /* hair highlight */
  --tbb-butter:       #F7E26B;   /* yellow accent */

  /* --- Semantic surface ---------------------------------------------- */
  --bg:               var(--tbb-paper);
  --bg-alt:           var(--tbb-paper-warm);
  --surface:          var(--tbb-white);
  --surface-ink:      var(--tbb-ink);

  /* --- Semantic foreground ------------------------------------------- */
  --fg1:              var(--tbb-ink);
  --fg2:              #3A3A3A;
  --fg3:              #6B6862;
  --fg-on-ink:        var(--tbb-paper);

  /* --- Semantic action ----------------------------------------------- */
  --accent:           var(--tbb-hotpink);
  --accent-hover:     #E60E5C;
  --accent-press:     #C20A4D;
  --accent-alt:       var(--tbb-coral);
  --highlight:        var(--tbb-lime);

  /* --- Borders --------------------------------------------------------*/
  --border-ink:       var(--tbb-ink);
  --border-w:         3px;       /* default chunky border */
  --border-w-lg:      5px;       /* hero / sticker border */

  /* --- Radii ----------------------------------------------------------*/
  --r-xs:             8px;
  --r-sm:             14px;
  --r-md:             22px;
  --r-lg:             32px;
  --r-xl:             48px;
  --r-pill:           999px;

  /* --- Shadows (offset "sticker" drop, no blur) ----------------------*/
  --shadow-sticker-sm: 3px 3px 0 0 var(--tbb-ink);
  --shadow-sticker:    5px 5px 0 0 var(--tbb-ink);
  --shadow-sticker-lg: 8px 8px 0 0 var(--tbb-ink);
  --shadow-soft:       0 6px 24px -8px rgba(10,10,10,.25);

  /* --- Spacing scale (4-px base, chunky bumps) ----------------------- */
  --sp-1:  4px;
  --sp-2:  8px;
  --sp-3:  12px;
  --sp-4:  16px;
  --sp-5:  24px;
  --sp-6:  32px;
  --sp-7:  48px;
  --sp-8:  64px;
  --sp-9:  96px;
  --sp-10: 128px;

  /* =======================================================================
     2. TYPE TOKENS
     ======================================================================= */
  --font-display:    'Olivita', 'Bowlby One', system-ui, sans-serif;
  --font-jp:         'Hiragino Kaku W9', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', system-ui, sans-serif;
  --font-body:       'Nunito', system-ui, -apple-system, sans-serif;
  --font-ui:         'Nunito Sans', 'Nunito', system-ui, sans-serif;
  --font-mono:       ui-monospace, 'JetBrains Mono', Menlo, monospace;

  /* fluid scale */
  --t-display-xl:    clamp(72px, 11vw, 168px);
  --t-display-lg:    clamp(52px, 7vw, 104px);
  --t-display:       clamp(40px, 5vw, 72px);
  --t-h1:            clamp(32px, 3.6vw, 56px);
  --t-h2:            clamp(24px, 2.4vw, 38px);
  --t-h3:            20px;
  --t-eyebrow:       13px;
  --t-body:          17px;
  --t-small:         14px;
  --t-micro:         12px;
}

/* =========================================================================
   3. SEMANTIC TYPE STYLES
   ========================================================================= */
.tbb-display-xl,
.tbb-display-lg,
.tbb-display,
h1.tbb, .tbb-h1 {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 0.9;
  color: var(--fg1);
  text-wrap: balance;
}

.tbb-display-xl { font-size: var(--t-display-xl); line-height: 0.82; }
.tbb-display-lg { font-size: var(--t-display-lg); line-height: 0.86; }
.tbb-display    { font-size: var(--t-display); }
.tbb-h1         { font-size: var(--t-h1);  line-height: 1.0; }

.tbb-h2, h2.tbb {
  font-family: var(--font-display);
  font-size: var(--t-h2);
  font-weight: 400;
  letter-spacing: -0.005em;
  line-height: 1.05;
  color: var(--fg1);
  text-wrap: balance;
}

.tbb-h3, h3.tbb {
  font-family: var(--font-ui);
  font-size: var(--t-h3);
  font-weight: 900;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  line-height: 1.15;
  color: var(--fg1);
}

.tbb-eyebrow {
  font-family: var(--font-ui);
  font-size: var(--t-eyebrow);
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg2);
}

.tbb-jp {
  font-family: var(--font-jp);
  font-weight: 400;
  letter-spacing: 0.04em;
}

.tbb-body, p.tbb {
  font-family: var(--font-body);
  font-size: var(--t-body);
  line-height: 1.55;
  font-weight: 500;
  color: var(--fg2);
  text-wrap: pretty;
}

.tbb-small {
  font-family: var(--font-body);
  font-size: var(--t-small);
  font-weight: 600;
  line-height: 1.5;
  color: var(--fg2);
}

.tbb-micro {
  font-family: var(--font-ui);
  font-size: var(--t-micro);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fg3);
}

/* =========================================================================
   4. RESET-LITE base
   ========================================================================= */
.tbb-root {
  background: var(--bg);
  color: var(--fg1);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
}
