:root {
  --bg: #f8f8f8;
  --ink: #17181d;
  --muted: #666875;
  --blue: #0073eb;
  --pink: #ec2c79;
  --paper: #fffefc;
  --line: rgba(23, 24, 29, 0.1);
  --glass: rgba(255, 255, 255, 0.76);
  --glass-border: rgba(255, 255, 255, 0.46);
  --max-width: 1280px;
  --reader-scale: 1;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: var(--bg); font-family: "Inter", sans-serif; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

.privacy-page {
  --legal-glow-start: rgba(56, 216, 246, 0.82);
  --legal-glow-end: rgba(112, 126, 255, 0.66);
  --legal-base-start: #d9fbff;
  --legal-base-mid: #cfeeff;
  --legal-base-end: #dddfff;
  overflow: clip;
  background: var(--bg);
}

.legal-hero {
  position: relative;
  padding: 100px 20px 28px;
  overflow: hidden;
  background: var(--bg);
}

.legal-hero-frame {
  position: relative;
  width: min(100%, 1280px);
  min-height: 520px;
  margin: 0 auto;
  padding: clamp(34px, 4vw, 58px);
  display: grid;
  grid-template-columns: minmax(390px, 0.9fr) minmax(560px, 1.35fr);
  align-items: center;
  gap: clamp(26px, 4vw, 62px);
  overflow: hidden;
  border: 0;
  border-radius: 42px;
  background:
    linear-gradient(118deg, var(--legal-glow-start) 0%, transparent 46%),
    linear-gradient(238deg, var(--legal-glow-end) 0%, transparent 48%),
    linear-gradient(145deg, var(--legal-base-start) 4%, var(--legal-base-mid) 52%, var(--legal-base-end) 100%);
}

.legal-hero-copy { position: relative; z-index: 3; min-width: 0; text-align: left; }
.legal-kicker { display: inline-flex; margin: 0 0 20px; padding: 9px 14px; border: 0; border-radius: 999px; color: #126fac; background: rgba(255,255,255,0.72); font-size: 0.68rem; font-weight: 620; letter-spacing: 0.12em; text-transform: uppercase; }
.legal-hero h1 { margin: 0; color: #12233e; font-family: "Dela Gothic One", "Inter", sans-serif; font-size: clamp(4.6rem, 6.7vw, 6.65rem); font-weight: 400; letter-spacing: -0.05em; line-height: 1.0; text-shadow: 0 16px 36px rgba(40,81,133,0.1); }
.legal-hero-copy > p:not(.legal-kicker) { width: min(430px, 100%); margin: 27px 0 0; color: #536579; font-size: clamp(1rem, 0.5vw + 0.8rem, 1.13rem); font-weight: 430; line-height: 1.52; }

/* Keep artwork aspect ratios from changing the shared legal hero height. */
.hero-pet-gallery { position: relative; z-index: 2; min-width: 0; height: 402px; min-height: 0; display: grid; grid-template-columns: 0.9fr 1.1fr; align-items: stretch; gap: 14px; }
.hero-pet-stage { position: relative; min-width: 0; min-height: 0; display: grid; place-items: center; overflow: hidden; border: 0; border-radius: 30px; background: rgba(255,255,255,0.3); box-shadow: 0 22px 46px rgba(45,61,109,0.16); transform-origin: center; backdrop-filter: blur(18px) saturate(145%); -webkit-backdrop-filter: blur(18px) saturate(145%); }
.hero-pet-stage::before { content: ""; position: absolute; z-index: 1; inset: auto 13% 16px; height: 18px; border-radius: 50%; background: rgba(48,73,97,0.1); filter: blur(10px); }
.hero-pet-stage-lobster { margin-top: 58px; background-color: rgba(255,255,255,0.26); transform: rotate(-1.5deg); }
.hero-pet-stage-chimera { margin-bottom: 42px; background-color: rgba(255,255,255,0.26); transform: rotate(1.5deg); }
.hero-pet { position: relative; z-index: 2; display: block; width: 118%; height: 100%; object-fit: contain; max-width: none; pointer-events: none; filter: drop-shadow(0 22px 20px rgba(44,66,92,0.16)); }
.hero-lobster { transform: translate(-2%, 4%) rotate(-3deg); }
.hero-chimera { width: 118%; transform: translate(-4%, -1%) rotate(1deg); }

.legal-reading-area { position: relative; display: grid; grid-template-columns: 248px minmax(0, 920px); align-items: start; gap: clamp(22px, 3vw, 42px); width: min(calc(100% - 34px), 1210px); margin: 0 auto; padding: 72px 0 120px; }

.bookmark-rail { position: sticky; top: 96px; max-height: calc(100vh - 116px); }
.bookmark-card { overflow: hidden; border: 1px solid rgba(23,24,29,0.09); border-radius: 24px; background: rgba(255,255,255,0.76); box-shadow: 0 18px 50px rgba(36,45,63,0.08); backdrop-filter: blur(18px); }
.bookmark-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 62px; padding: 0 18px; border-bottom: 1px solid var(--line); }
.bookmark-heading > span { display: flex; align-items: center; gap: 9px; font-size: 0.86rem; font-weight: 640; }
.bookmark-heading img { width: 18px; height: 18px; }
.bookmark-heading small { color: #8a8c97; font-size: 0.7rem; font-weight: 500; }
.bookmark-heading small b { color: var(--blue); font-weight: 650; }
.bookmark-list { max-height: calc(100vh - 214px); padding: 10px; overflow-y: auto; scrollbar-width: none; }
.bookmark-list::-webkit-scrollbar { display: none; }
.bookmark-list a { display: grid; grid-template-columns: 26px 1fr; align-items: center; gap: 8px; min-height: 37px; padding: 7px 9px; border-radius: 11px; color: #70727c; font-size: 0.76rem; font-weight: 490; line-height: 1.2; transition: color 160ms ease, background 160ms ease; }
.bookmark-list a span { color: #b3b4bb; font-variant-numeric: tabular-nums; font-size: 0.66rem; }
.bookmark-list a:hover { color: var(--blue); background: rgba(234,244,255,0.62); }
.bookmark-list a.active { color: #0e5eb5; background: #eaf4ff; }
.bookmark-list a.active span { color: var(--blue); }
.bookmark-close, .reader-dock #togglePolicyBookmarks { display: none; }

.policy-document { --document-font: calc(1rem * var(--reader-scale)); position: relative; overflow: hidden; border: 1px solid rgba(23,24,29,0.1); border-radius: 6px; background: var(--paper); box-shadow: 0 35px 90px rgba(36,45,63,0.13), 0 4px 14px rgba(36,45,63,0.06); }
.policy-document::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.45; background-image: radial-gradient(rgba(28,38,50,0.12) 0.45px, transparent 0.6px); background-size: 5px 5px; mask-image: linear-gradient(90deg, #000, transparent 7%, transparent 93%, #000); }

.document-letterhead { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px; min-height: 122px; padding: 24px clamp(28px, 6vw, 70px); }
.document-brand { display: flex; align-items: center; gap: 15px; }
.document-brand img { width: 62px; height: auto; }
.document-brand div { display: grid; min-height: 82px; align-content: center; gap: 3px; padding-left: 15px; border-left: 1px solid rgba(23,24,29,0.14); }
.document-brand span { font-size: 0.8rem; font-weight: 650; letter-spacing: 0.05em; text-transform: uppercase; }
.document-brand small, .document-code small, .document-classification small { color: #858690; font-size: 0.64rem; font-weight: 480; letter-spacing: 0.06em; }
.document-classification { display: grid; justify-items: center; gap: 5px; padding: 10px 17px; border: 1px solid rgba(0,115,235,0.12); border-radius: 999px; background: #f4f8fd; text-align: center; }
.document-classification span { color: #175f9f; font-size: 0.62rem; font-weight: 650; letter-spacing: 0.11em; text-transform: uppercase; }
.document-classification small { text-transform: uppercase; }
.document-code { display: grid; justify-self: end; gap: 4px; text-align: right; }
.document-code span { color: #545660; font-size: 0.7rem; font-weight: 620; letter-spacing: 0.08em; }

.document-title-block { position: relative; display: grid; justify-items: center; gap: 27px; margin: 0 clamp(28px, 6vw, 70px); padding: clamp(58px, 8vw, 86px) 0 56px; border-top: 1px solid rgba(23,24,29,0.12); text-align: center; isolation: isolate; }
.document-title-copy, .document-metadata { position: relative; z-index: 1; }
.document-title-copy { min-width: 0; width: 100%; }
.document-title-copy > p { margin: 0 0 11px; color: var(--blue); font-size: 0.73rem; font-weight: 650; letter-spacing: 0.12em; text-transform: uppercase; }
.document-title-block h2 { margin: 0; color: #151b26; font-family: "Inter", sans-serif; font-size: clamp(3.4rem, 7.1vw, 6.5rem); font-weight: 540; letter-spacing: -0.065em; line-height: 0.92; }
.document-sticker { position: absolute; z-index: 2; pointer-events: none; }
.document-sticker img { display: block; width: 100%; height: auto; filter: drop-shadow(3px 0 0 #fff) drop-shadow(-3px 0 0 #fff) drop-shadow(0 3px 0 #fff) drop-shadow(0 -3px 0 #fff) drop-shadow(0 8px 10px rgba(39,47,65,0.16)); }
.document-sticker-chick { top: clamp(26px, 10%, 38px); right: 20px; width: clamp(82px, 8.2vw, 118px); transform: rotate(15deg); }
.document-sticker-tapir { bottom: 16px; left: 18px; width: clamp(78px, 7.8vw, 112px); transform: rotate(-14deg); }
.document-metadata { width: auto; }
.document-metadata div { display: flex; align-items: center; gap: 12px; padding: 10px 15px; border: 1px solid rgba(23,24,29,0.1); border-radius: 999px; background: #fafbfc; }
.document-metadata img { width: 17px; height: 17px; opacity: 0.64; }
.document-metadata span { color: #878993; font-size: 0.65rem; font-weight: 520; letter-spacing: 0.07em; text-transform: uppercase; }
.document-metadata strong { padding-left: 12px; border-left: 1px solid rgba(23,24,29,0.11); color: #30323a; font-size: 0.78rem; font-weight: 610; }
.document-rule { display: flex; align-items: center; gap: 16px; margin: 0 clamp(28px, 6vw, 70px); }
.document-rule span { flex: 1; height: 2px; background: linear-gradient(90deg, var(--blue), rgba(0,115,235,0.08)); }
.document-rule b { color: #777985; font-size: 0.66rem; font-weight: 560; letter-spacing: 0.08em; text-transform: uppercase; }

.document-body { padding: 6px clamp(28px, 7.5vw, 86px) 70px; font-size: var(--document-font); }
.document-body section { padding-top: 66px; scroll-margin-top: 100px; }
.document-body section + section { margin-top: 56px; border-top: 1px solid rgba(23,24,29,0.1); }
.document-body h2 { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: baseline; gap: 18px; margin: 0 0 28px; color: #1d2430; font-family: "Inter", sans-serif; font-size: calc(1.82em); font-weight: 630; letter-spacing: -0.035em; line-height: 1.13; }
.document-body h2 span { color: #777b84; font-size: 1em; font-weight: 610; letter-spacing: -0.035em; line-height: inherit; font-variant-numeric: tabular-nums; }
.document-body h3 { margin: 38px 0 13px; color: #303642; font-size: calc(1.12em); font-weight: 630; letter-spacing: -0.015em; line-height: 1.28; }
.document-body p { margin: 0 0 17px; color: #4b4e58; font-size: 1em; font-weight: 400; line-height: 1.78; }
.document-body ul { margin: 7px 0 23px; padding: 0; list-style: none; }
.document-body li { position: relative; margin: 0 0 9px; padding: 0 0 0 25px; color: #4b4e58; font-size: 1em; font-weight: 400; line-height: 1.68; }
.document-body li::before { content: ""; position: absolute; left: 3px; top: 0.72em; width: 5px; height: 5px; border-radius: 50%; background: #252a32; }
.document-body a { color: #0067d4; text-decoration: underline; text-decoration-color: rgba(0,103,212,0.25); text-underline-offset: 3px; transition: color 160ms ease, text-decoration-color 160ms ease; }
.document-body a:hover { color: #004f9f; text-decoration-color: currentColor; }
.document-body .organization-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.38em;
  min-height: 1.55em;
  margin: 0 0.06em;
  padding: 0.08em 0.52em 0.08em 0.32em;
  border: 1px solid rgba(35, 39, 47, 0.08);
  border-radius: 0.46em;
  color: #414650;
  background: #f2f3f5;
  font-size: 0.82em;
  font-weight: 590;
  line-height: 1;
  text-decoration: none;
  vertical-align: -0.12em;
  white-space: nowrap;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.58);
  transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease, transform 150ms ease;
}
.document-body .organization-badge img { width: 1.05em; height: 1.05em; object-fit: contain; flex: 0 0 auto; }
.document-body .organization-badge:hover { color: #252a32; background: #e7e9ed; border-color: rgba(35,39,47,0.14); text-decoration: none; }
.document-body .organization-badge:focus-visible { outline: 2px solid #1671d9; outline-offset: 2px; }
.document-body .organization-badge:active { transform: translateY(1px); }

.document-signoff { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 0 clamp(28px, 6vw, 70px); padding: 28px 0 34px; border-top: 1px solid rgba(23,24,29,0.12); }
.document-signoff div { display: flex; align-items: center; gap: 12px; }
.document-signoff img { width: 58px; }
.document-signoff span { color: #50525d; font-size: 0.73rem; font-weight: 590; }
.document-signoff p { margin: 0; color: #9a9ba3; font-size: 0.65rem; font-weight: 500; letter-spacing: 0.05em; text-transform: uppercase; }
.document-signoff b { color: var(--pink); font-weight: 600; }

.reader-tools { --reader-search-width: 420px; --reader-tools-gap: 12px; --reader-tools-height: 63px; --reader-tools-radius: 22px; position: fixed; left: 50%; bottom: 20px; z-index: 2147483000; width: max-content; max-width: calc(100% - 24px); pointer-events: none; transform: translateX(-50%); transition: transform 440ms cubic-bezier(.2,.85,.2,1); }
.reader-tools.viewport-raised { bottom: calc(var(--reader-viewport-inset, 0px) + 10px); }
.reader-tools.search-open { transform: translateX(calc(-50% + (var(--reader-search-width) + var(--reader-tools-gap)) / 2)); }
.reader-dock { position: relative; z-index: 1; display: flex; align-items: center; gap: 7px; width: max-content; max-width: 100%; height: var(--reader-tools-height); padding: 8px; border: 1px solid rgba(255,255,255,0.58); border-radius: var(--reader-tools-radius); background: rgba(255,255,255,0.86); box-shadow: 0 22px 60px rgba(25,40,61,0.2), inset 0 1px 0 #fff; backdrop-filter: blur(20px) saturate(170%); opacity: 0; pointer-events: none; transform: translateY(calc(100% + 42px)) scale(0.96); transition: opacity 280ms ease, transform 440ms cubic-bezier(.2,.85,.2,1); }
.reader-dock.visible { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
.reader-dock button, .reader-dock > a { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; padding: 0; border: 0; border-radius: 13px; background: transparent; cursor: pointer; transition: background 160ms ease; }
.reader-dock button:hover, .reader-dock > a:hover { background: #eef5fc; }
.reader-dock img { width: 21px; height: 21px; }
.reader-tools button[aria-label], .bookmark-close[aria-label] { position: relative; }
.reader-tools button[aria-label]::before, .bookmark-close[aria-label]::before,
.reader-tools button[aria-label]::after, .bookmark-close[aria-label]::after { position: absolute; left: 50%; z-index: 20; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 140ms ease, transform 140ms ease, visibility 140ms; }
.reader-tools button[aria-label]::before, .bookmark-close[aria-label]::before { content: ""; bottom: calc(100% + 5px); border: 5px solid transparent; border-top-color: #252a33; transform: translate(-50%, 4px); }
.reader-tools button[aria-label]::after, .bookmark-close[aria-label]::after { content: attr(aria-label); bottom: calc(100% + 15px); width: max-content; max-width: min(220px, calc(100vw - 24px)); padding: 7px 9px; border-radius: 8px; color: #fff; background: #252a33; box-shadow: 0 8px 24px rgba(25,40,61,0.2); font-size: 0.66rem; font-weight: 570; line-height: 1.25; text-align: center; white-space: normal; transform: translate(-50%, 4px); }
.reader-dock > button:last-child[aria-label]::after, .reader-search > button:last-child[aria-label]::after, .reader-theme-menu > button:last-child[aria-label]::after, .bookmark-close[aria-label]::after { right: 0; left: auto; transform: translateY(4px); }
@media (hover: hover) {
  .reader-tools button[aria-label]:not(:disabled):hover::before, .bookmark-close[aria-label]:hover::before,
  .reader-tools button[aria-label]:not(:disabled):hover::after, .bookmark-close[aria-label]:hover::after { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition-delay: 300ms; }
  .reader-dock > button:last-child[aria-label]:hover::after, .reader-search > button:last-child[aria-label]:hover::after, .reader-theme-menu > button:last-child[aria-label]:hover::after, .bookmark-close[aria-label]:hover::after { transform: translateY(0); }
}
.reader-tools button[aria-label]:focus-visible::before, .bookmark-close[aria-label]:focus-visible::before,
.reader-tools button[aria-label]:focus-visible::after, .bookmark-close[aria-label]:focus-visible::after { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.reader-dock > button:last-child[aria-label]:focus-visible::after, .reader-search > button:last-child[aria-label]:focus-visible::after, .reader-theme-menu > button:last-child[aria-label]:focus-visible::after, .bookmark-close[aria-label]:focus-visible::after { transform: translateY(0); }
.reader-text-size { display: flex; align-items: center; gap: 2px; padding: 2px; border-radius: 15px; background: rgba(232,237,242,0.72); }
.reader-text-size button { width: 38px; height: 38px; }
.reader-progress { --progress: 0deg; display: grid; width: 45px; height: 45px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: conic-gradient(var(--blue) var(--progress), #e8edf2 0); }
.reader-progress::before { content: ""; grid-area: 1 / 1; width: 35px; height: 35px; border-radius: 50%; background: #fff; }
.reader-progress span { position: relative; grid-area: 1 / 1; color: #3f4652; font-size: 0.59rem; font-weight: 630; }
.reader-location { display: grid; gap: 2px; width: 148px; min-width: 0; padding: 0 10px; }
.reader-location small { color: #92949e; font-size: 0.6rem; font-weight: 520; letter-spacing: 0.06em; text-transform: uppercase; }
.reader-location strong { overflow: hidden; color: #333741; font-size: 0.77rem; font-weight: 610; text-overflow: ellipsis; white-space: nowrap; }
.dock-divider { width: 1px; height: 28px; margin: 0 3px; background: rgba(23,24,29,0.11); }

.reader-theme { position: relative; flex: 0 0 auto; }
.reader-theme-toggle { position: relative; }
.reader-theme-current { width: 22px; height: 22px; }
.reader-theme-menu { position: absolute; left: 50%; bottom: calc(100% + 14px); display: grid; grid-template-columns: repeat(3, 38px); gap: 4px; width: max-content; padding: 7px; border: 1px solid rgba(255,255,255,0.7); border-radius: 17px; background: rgba(255,255,255,0.94); box-shadow: 0 18px 46px rgba(25,40,61,0.2), inset 0 1px 0 #fff; backdrop-filter: blur(22px) saturate(170%); opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%, 7px); transition: opacity 160ms ease, visibility 160ms ease, transform 160ms ease; }
.reader-theme-menu.open { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
.reader-theme-menu::after { content: ""; position: absolute; left: 50%; bottom: -6px; width: 12px; height: 12px; border-right: 1px solid rgba(255,255,255,0.7); border-bottom: 1px solid rgba(255,255,255,0.7); background: rgba(255,255,255,0.94); transform: translateX(-50%) rotate(45deg); }
.reader-dock .reader-theme-menu button { width: 38px; height: 38px; padding: 0; border-radius: 11px; }
.reader-dock .reader-theme-menu button[aria-checked="true"] { background: #eaf4ff; box-shadow: inset 0 0 0 1px rgba(0,115,235,0.12); }
.reader-theme-menu img { width: 22px; height: 22px; }

.policy-document[data-document-theme="white"] { background: #fff; }
.policy-document[data-document-theme="beige"] { background: #f2e7d2; }
.policy-document[data-document-theme="dark"] { color: #f4f5f7; background: #393939; border-color: rgba(255,255,255,0.11); }
.policy-document[data-document-theme="dark"]::before { opacity: 0.22; background-image: radial-gradient(rgba(255,255,255,0.18) 0.45px, transparent 0.6px); }
.policy-document[data-document-theme="dark"] .document-brand span,
.policy-document[data-document-theme="dark"] .document-title-block h2,
.policy-document[data-document-theme="dark"] .document-body h2,
.policy-document[data-document-theme="dark"] .document-body h3,
.policy-document[data-document-theme="dark"] .document-metadata strong { color: #f4f5f7; }
.policy-document[data-document-theme="dark"] .document-brand small,
.policy-document[data-document-theme="dark"] .document-code small,
.policy-document[data-document-theme="dark"] .document-code span,
.policy-document[data-document-theme="dark"] .document-metadata span,
.policy-document[data-document-theme="dark"] .document-rule b,
.policy-document[data-document-theme="dark"] .document-signoff span,
.policy-document[data-document-theme="dark"] .document-signoff p { color: #b8bec8; }
.policy-document[data-document-theme="dark"] .document-body p,
.policy-document[data-document-theme="dark"] .document-body li { color: #e1e4e9; }
.policy-document[data-document-theme="dark"] .document-letterhead,
.policy-document[data-document-theme="dark"] .document-title-block,
.policy-document[data-document-theme="dark"] .document-body section + section,
.policy-document[data-document-theme="dark"] .document-signoff { border-color: rgba(255,255,255,0.13); }
.policy-document[data-document-theme="dark"] .document-brand div { border-left-color: rgba(255,255,255,0.18); }
.policy-document[data-document-theme="dark"] .document-metadata div { border-color: rgba(255,255,255,0.14); background: rgba(255,255,255,0.07); }
.policy-document[data-document-theme="dark"] .document-metadata img { filter: invert(1); }
.policy-document[data-document-theme="dark"] .document-metadata strong { border-left-color: rgba(255,255,255,0.15); }
.policy-document[data-document-theme="dark"] .document-body h2 span { color: #b8bec8; }
.policy-document[data-document-theme="dark"] .document-body li::before { background: #e1e4e9; }
.policy-document[data-document-theme="dark"] .document-body a { color: #70b9ff; text-decoration-color: rgba(112,185,255,0.45); }
.policy-document[data-document-theme="dark"] .document-body a:hover { color: #a7d2ff; text-decoration-color: currentColor; }
.policy-document[data-document-theme="dark"] .document-body .organization-badge { color: #343840; background: #dfe1e5; border-color: rgba(255,255,255,0.16); box-shadow: none; }
.policy-document[data-document-theme="dark"] .document-body .organization-badge:hover { color: #24272d; background: #eef0f3; border-color: rgba(255,255,255,0.24); }

.reader-search { position: absolute; right: calc(100% + var(--reader-tools-gap)); bottom: 0; display: flex; align-items: center; gap: 5px; width: var(--reader-search-width); height: var(--reader-tools-height); padding: 8px 9px 8px 16px; border: 1px solid rgba(255,255,255,0.58); border-radius: var(--reader-tools-radius); background: rgba(255,255,255,0.86); box-shadow: 0 22px 60px rgba(25,40,61,0.2), inset 0 1px 0 #fff; backdrop-filter: blur(20px) saturate(170%); opacity: 0; visibility: hidden; pointer-events: none; transform: translateX(48px); transition: opacity 220ms ease, transform 440ms cubic-bezier(.2,.85,.2,1), visibility 440ms; }
.reader-search.open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(0); transition: opacity 220ms ease, transform 440ms cubic-bezier(.2,.85,.2,1), visibility 0s; }
#togglePolicySearch[aria-expanded="true"], #togglePolicyBookmarks[aria-expanded="true"] { background: #eaf4ff; }
.reader-search > img { width: 20px; height: 20px; flex: 0 0 auto; opacity: 0.68; }
.reader-search input { min-width: 0; flex: 1 1 auto; height: 40px; padding: 0 8px; border: 0; outline: 0; color: #242933; background: transparent; font: inherit; font-size: 0.82rem; }
.reader-search input::placeholder { color: #969aa4; }
.reader-search input:focus-visible { outline: 0; }
.reader-search output { flex: 0 0 auto; min-width: 45px; color: #777d89; font-size: 0.67rem; font-weight: 580; text-align: center; font-variant-numeric: tabular-nums; }
.reader-search-divider { width: 1px; height: 26px; margin: 0 2px; background: rgba(23,24,29,0.1); }
.reader-search button { display: grid; width: 36px; height: 36px; flex: 0 0 auto; place-items: center; padding: 0; border: 0; border-radius: 11px; background: transparent; cursor: pointer; transition: background 160ms ease, opacity 160ms ease; }
.reader-search button:hover:not(:disabled) { background: #edf5fd; }
.reader-search button:disabled { cursor: default; opacity: 0.3; }
.reader-search button img { width: 18px; height: 18px; }
.reader-search button:last-child img { width: 17px; height: 17px; }

mark.reader-search-match { margin: 0; padding: 0.03em 0.08em; border-radius: 0.18em; color: inherit; background: #ffe58a; box-shadow: inset 0 -1px 0 rgba(177,126,0,0.16); }
mark.reader-search-match.current { background: #ffad4f; box-shadow: 0 0 0 2px rgba(224,116,0,0.22); }

.site-footer { color: #141414; }

/* Stack only when the paired bars would crowd the viewport. */
@media (max-width: 980px) {
  .reader-tools.search-open { transform: translateX(-50%); }
  .reader-search { right: auto; left: 50%; bottom: calc(100% + var(--reader-tools-gap)); width: 100%; transform: translate(-50%, 12px); }
  .reader-search.open { transform: translate(-50%, 0); }
}

@media (max-width: 1120px) {
  .legal-hero { padding: 96px 14px 24px; }
  .legal-hero-frame { min-height: 470px; padding: 38px; grid-template-columns: minmax(320px, 0.85fr) minmax(470px, 1.25fr); gap: 30px; }
  .legal-hero h1 { font-size: clamp(4.2rem, 8.2vw, 5.7rem); }
  .hero-pet-gallery { height: 350px; }
  .hero-pet-stage-lobster { margin-top: 46px; }
  .hero-pet-stage-chimera { margin-bottom: 34px; }
  .legal-reading-area { grid-template-columns: 220px minmax(0, 1fr); gap: 20px; }
  .document-sticker-chick { top: 24px; right: 16px; left: auto; width: 90px; transform: rotate(8deg); }
  .document-sticker-tapir { top: auto; right: auto; bottom: 16px; left: 16px; width: 94px; transform: rotate(-14deg); }
}

@media (min-width: 821px) and (max-width: 920px) {
  .legal-hero-frame { padding: 28px; grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr); gap: 24px; }
  .legal-hero h1 { font-size: clamp(3.35rem, 6.7vw, 3.8rem); }
  .legal-hero-copy > p:not(.legal-kicker) { margin-top: 22px; font-size: 0.96rem; }
  .hero-pet-gallery { height: 340px; }
  .hero-pet-stage-lobster { margin-top: 38px; }
  .hero-pet-stage-chimera { margin-bottom: 28px; }
  .hero-chimera { width: 110%; transform: translate(-2%, -1%) rotate(1deg); }
}

@media (max-width: 820px) {
  .legal-hero { padding: 90px 10px 18px; }
  .legal-hero-frame { min-height: 0; padding: 32px; grid-template-columns: 1fr; grid-template-rows: minmax(320px, auto) 285px; gap: 26px; }
  .legal-hero-copy { width: min(590px, 100%); margin: 0 auto; text-align: center; }
  .legal-hero h1 { font-size: clamp(4rem, 13.5vw, 5.65rem); }
  .legal-hero-copy > p:not(.legal-kicker) { width: min(430px, 86%); margin: 21px auto 0; }
  .hero-pet-gallery { height: 285px; width: 100%; max-width: 650px; margin: 0 auto; }
  .hero-pet-stage { border-radius: 24px; }
  .hero-pet-stage-lobster { margin-top: 28px; }
  .hero-pet-stage-chimera { margin-bottom: 24px; }
  .hero-lobster { width: 112%; }
  .hero-chimera { width: 114%; transform: translate(-4%, -1%) rotate(1deg); }
  .legal-reading-area { display: block; width: min(calc(100% - 24px), 720px); padding: 34px 0 90px; }
  .reader-tools { width: min(560px, calc(100% - 48px)); bottom: calc(var(--reader-viewport-inset, 0px) + max(10px, env(safe-area-inset-bottom))); }
  .reader-dock { width: 100%; }
  .reader-dock, .reader-search { box-shadow: 0 2px 12px rgba(25,40,61,0.1), inset 0 1px 0 #fff; }
  /* Use one row while searching so the keyboard leaves room for the policy. */
  .reader-tools.search-open .reader-dock { opacity: 0; visibility: hidden; pointer-events: none; }
  .reader-search, .reader-search.open { bottom: 0; transform: translate(-50%, 0); }
  .reader-search input { font-size: 16px; }
  .reader-location { flex: 1 1 auto; }
  .reader-dock #togglePolicyBookmarks { display: grid; }
  .bookmark-rail { position: fixed; z-index: 2147482999; top: 84px; right: 12px; bottom: calc(108px + env(safe-area-inset-bottom)); width: min(330px, calc(100% - 24px)); max-height: none; visibility: hidden; opacity: 0; pointer-events: none; transform: translateX(calc(100% + 24px)); transition: transform 360ms cubic-bezier(.2,.85,.2,1), opacity 200ms ease, visibility 360ms; }
  .bookmark-rail.open { visibility: visible; opacity: 1; pointer-events: auto; transform: translateX(0); transition: transform 360ms cubic-bezier(.2,.85,.2,1), opacity 200ms ease, visibility 0s; }
  .bookmark-card { display: flex; flex-direction: column; height: 100%; border-color: rgba(255,255,255,0.58); background: rgba(255,255,255,0.92); box-shadow: 0 22px 60px rgba(25,40,61,0.2), inset 0 1px 0 #fff; backdrop-filter: blur(20px) saturate(170%); }
  .bookmark-heading { flex: 0 0 auto; gap: 8px; padding-right: 10px; }
  .bookmark-heading small { margin-left: auto; }
  .bookmark-close { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 12px; background: transparent; cursor: pointer; }
  .bookmark-close:hover { background: #eaf4ff; }
  .bookmark-list { flex: 1 1 auto; min-height: 0; max-height: none; overscroll-behavior: contain; }
  .bookmark-list a { min-height: 44px; font-size: 0.82rem; }
  .policy-document { border-radius: 4px; }
}

@media (max-width: 560px) {
  .legal-hero { padding: 80px 7px 12px; }
  .legal-hero-frame { padding: 25px 14px 18px; grid-template-rows: minmax(clamp(270px, 50vw, 280px), auto) 218px; border-radius: 27px; gap: 18px; }
  .legal-kicker { margin-bottom: 14px; padding: 8px 12px; font-size: 0.6rem; }
  .legal-hero h1 { font-size: clamp(3.25rem, 16.2vw, 4.45rem); }
  .legal-hero-copy > p:not(.legal-kicker) { width: min(310px, 92%); margin-top: 17px; font-size: 0.89rem; }
  .hero-pet-gallery { height: 218px; gap: 8px; }
  .hero-pet-stage { border-radius: 18px; }
  .hero-pet-stage-lobster { transform: rotate(-1deg); }
  .hero-pet-stage-chimera { transform: rotate(1deg); }
  .hero-pet-stage-lobster { margin-top: 22px; }
  .hero-pet-stage-chimera { margin-bottom: 18px; }
  .hero-lobster { width: 126%; transform: translate(-3%, 4%) rotate(-3deg); }
  .hero-chimera { width: 124%; transform: translate(-5%, 0) rotate(1deg); }
  .legal-reading-area { width: calc(100% - 16px); padding-top: 18px; }
  .document-letterhead { grid-template-columns: minmax(0, 1fr); gap: 8px; min-height: 154px; padding: 22px 19px 18px; }
  .document-brand img { width: 54px; }
  .document-brand div { padding-left: 10px; }
  .document-brand span { font-size: 0.65rem; }
  .document-brand small { font-size: 0.58rem; }
  .document-classification { display: none; }
  .document-code { justify-self: end; align-self: end; }
  .document-code span { font-size: 0.68rem; }
  .document-code small { font-size: 0.59rem; }
  .document-title-block { gap: 22px; margin: 0 19px; padding: 48px 0 38px; }
  .document-title-block h2 { font-size: clamp(2.8rem, 13.7vw, 4rem); }
  .document-sticker-chick { top: 6px; right: 2px; left: auto; width: 78px; }
  .document-sticker-tapir { top: auto; right: auto; bottom: 14px; left: 14px; width: 76px; transform: rotate(-17deg); }
  .document-metadata { width: auto; max-width: 100%; }
  .document-metadata div { gap: 9px; padding: 9px 12px; }
  .document-metadata strong { padding-left: 9px; font-size: 0.72rem; }
  .document-rule { margin: 0 19px; }
  .document-body { padding: 0 23px 50px; }
  .document-body section { padding-top: 48px; }
  .document-body section + section { margin-top: 38px; }
  .document-body h2 { grid-template-columns: max-content minmax(0, 1fr); gap: 12px; margin-bottom: 23px; font-size: calc(1.47em); }
  .document-body h3 { margin-top: 31px; }
  .document-body p { line-height: 1.7; }
  .document-body li { padding-left: 21px; line-height: 1.62; }
  .document-signoff { align-items: flex-start; margin: 0 19px; }
  .document-signoff p { max-width: 120px; text-align: right; line-height: 1.5; }
  .reader-tools { --reader-tools-height: 66px; --reader-tools-radius: 22px; --reader-tools-gap: 10px; }
  .reader-dock { justify-content: space-between; gap: 3px; padding: 8px; }
  .reader-progress { width: 44px; height: 44px; }
  .reader-progress::before { width: 34px; height: 34px; }
  .reader-progress span { font-size: 0.65rem; }
  .reader-dock button, .reader-dock > a { width: 38px; height: 44px; border-radius: 13px; }
  .reader-dock img { width: 22px; height: 22px; }
  .reader-text-size { gap: 0; padding: 2px; border-radius: 15px; }
  .reader-text-size button { width: 34px; height: 40px; }
  .reader-location { width: auto; padding: 0 5px; }
  .reader-location strong { font-size: 0.8rem; }
  .dock-divider { display: none; }
  .reader-search { gap: 3px; padding: 8px; }
  .reader-search > img { display: none; }
  .reader-search input { height: 44px; padding: 0 6px; font-size: 16px; }
  .reader-search button { width: 38px; height: 44px; border-radius: 13px; }
  .reader-search button img { width: 21px; height: 21px; }
  .reader-search button:last-child img { width: 20px; height: 20px; }
}

@media (max-width: 480px) {
  .reader-location { display: none; }
}

@media (max-width: 420px) {
  .document-sticker-tapir { left: 14px; }
}

@media (max-width: 400px) {
  .reader-dock { gap: 2px; padding: 7px; }
  .reader-progress { width: 40px; height: 40px; }
  .reader-progress::before { width: 31px; height: 31px; }
  .reader-dock button, .reader-dock > a { width: 34px; }
  .reader-text-size button { width: 30px; }
  .reader-search button { width: 34px; }
}

@media (max-width: 360px) {
  .reader-tools { width: calc(100% - 32px); }
  .reader-progress { width: 36px; height: 36px; }
  .reader-progress::before { width: 29px; height: 29px; }
  .reader-dock button, .reader-dock > a { width: 32px; }
  .reader-text-size button { width: 28px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

@media print {
  .topbar-wrap, .legal-hero, .bookmark-rail, .mobile-bookmarks, .reader-tools, .reader-dock, .reader-search, .site-footer { display: none !important; }
  body, .privacy-page { background: #fff; }
  .legal-reading-area { display: block; width: 100%; margin: 0; padding: 0; }
  .policy-document { border: 0; box-shadow: none; }
  .document-body { font-size: 10pt; }
  .document-body section { break-inside: auto; }
  .document-body h2, .document-body h3 { break-after: avoid; }
  .document-body p, .document-body li { orphans: 3; widows: 3; }
  .document-body a { color: inherit; text-decoration: none; }
  .document-body .organization-badge { border: 0; padding: 0; color: inherit; background: none; box-shadow: none; }
}
