/* Legal layouts use the same palette, Inter type and buttons as the home page. */
body.policy-page { line-height: 1.7; }
.policy-page { background: radial-gradient(ellipse at 50% 0, #173a5e33, transparent 650px), var(--bg-primary); }
.policy-page .reveal { opacity: 1; transform: none; }
.policy-page .navbar { background: #03060ddd; }
.policy-page .nav-back { white-space: nowrap; font-size: 13px; gap: 8px; }
.policy-hero { padding: 140px 24px 48px; text-align: center; position: relative; }
.policy-hero h1 { font-size: clamp(36px, 4.2vw, 54px); font-weight: 600; letter-spacing: -2px; line-height: 1.15; margin-bottom: 20px; }
.policy-hero .app-name { font-size: clamp(17px, 2.4vw, 22px); font-weight: 500; color: var(--accent-ui); margin-bottom: 12px; }
.policy-hero .updated, .policy-hero .scope { color: var(--text-secondary); font-size: 13px; font-weight: 400; }
.policy-hero .scope { margin: 6px auto 0; max-width: 760px; overflow-wrap: anywhere; }
.policy-hero .app-badge { margin-top: 24px; }
.policy-content { max-width: 880px; margin: 0 auto; padding: 0 24px 80px; }
.policy-content .intro { font-size: 15px; color: var(--text-secondary); line-height: 1.8; margin-bottom: 40px; padding: 28px 32px; background: var(--bg-card); border: 1px solid var(--border-ui); border-radius: 16px; }
.policy-section { margin-bottom: 44px; scroll-margin-top: 104px; }
.policy-section h2 { font-size: 22px; font-weight: 500; letter-spacing: -.5px; line-height: 1.4; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--border-ui); display: flex; align-items: flex-start; gap: 12px; }
.policy-section h2 .num { width: 32px; height: 32px; border-radius: 10px; background: #8fbce510; color: var(--accent-ui); display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 500; flex-shrink: 0; }
.policy-section h3 { font-size: 16px; font-weight: 500; margin: 24px 0 12px; color: var(--accent-ui); }
.policy-section p { color: var(--text-secondary); font-size: 15px; line-height: 1.8; margin-bottom: 12px; }
.policy-section ul { list-style: none; margin: 8px 0 16px; padding-left: 0; }
.policy-section ul li { color: var(--text-secondary); font-size: 15px; line-height: 1.8; padding: 5px 0 5px 24px; position: relative; }
.policy-section ul li::before { content: ''; position: absolute; left: 6px; top: 16px; width: 5px; height: 5px; border-radius: 50%; background: var(--accent-ui); opacity: .65; }
.policy-content strong { color: var(--text-primary); font-weight: 600; }
.policy-content a { color: var(--accent-ui); text-decoration: underline; text-decoration-color: #8fbce54d; text-underline-offset: 4px; overflow-wrap: anywhere; transition: color var(--transition); }
.policy-content a:hover { color: #e4f2ff; text-decoration-color: currentColor; }
.policy-content .contact-box .value { overflow-wrap: anywhere; }
.policy-section .btn { text-decoration: none; }
.perm-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 20px 0; border-radius: 14px; border: 1px solid var(--border-ui); }
.perm-table { width: 100%; min-width: 520px; border-collapse: separate; border-spacing: 0; }
.perm-table th, .perm-table td { padding: 14px 16px; text-align: left; font-size: 14px; line-height: 1.7; }
.perm-table th { background: #8fbce510; color: var(--text-primary); font-weight: 500; font-size: 12px; text-transform: uppercase; letter-spacing: .8px; }
.perm-table td { background: var(--bg-card); color: var(--text-secondary); border-top: 1px solid var(--border-ui); overflow-wrap: anywhere; }
.perm-table tr:hover td { background: #8fbce514; }
.perm-table code { background: #8fbce510; color: var(--accent-ui); padding: 2px 8px; border-radius: 6px; font-size: 12px; font-family: 'SF Mono', 'Fira Code', monospace; white-space: nowrap; }
.section-divider { border: none; height: 1px; background: linear-gradient(90deg, transparent, #9abede33, transparent); margin: 56px 0; }
.terms-badge { display: inline-flex; align-items: center; gap: 6px; background: #8fbce510; border: 1px solid var(--border-ui); border-radius: 10px; padding: 6px 12px; font-size: 11px; font-weight: 500; color: var(--accent-ui); text-transform: uppercase; letter-spacing: .8px; margin-bottom: 16px; }
.new-badge { display: inline-block; font-size: 10px; font-weight: 500; letter-spacing: .5px; text-transform: uppercase; padding: 2px 8px; background: #8fbce510; color: var(--accent-ui); border-radius: 6px; margin-left: 8px; vertical-align: middle; }
@media (max-width: 768px) {
  .policy-page .nav-back { padding: 10px 14px; font-size: 12px; }
  .policy-hero { padding: 120px 20px 36px; }
  .policy-hero h1 { font-size: 36px; letter-spacing: -1.5px; }
  .policy-hero .app-name { font-size: 17px; }
  .policy-content { padding: 0 20px 64px; }
  .policy-content .intro { padding: 24px; font-size: 14px; }
  .policy-section h2 { font-size: 19px; }
  .policy-section p, .policy-section ul li { font-size: 14px; }
  .perm-table th, .perm-table td { padding: 12px; font-size: 13px; }
  .perm-table code { font-size: 11px; }
  .policy-content .contact-box { padding: 24px; }
}

/* A quiet, scroll-driven Earth sits below the legal document. */
.policy-page { isolation: isolate; }
.policy-page .space-scene { z-index: -1; background: transparent; }
.policy-page .space-nebula { opacity: .4; }
.policy-page .earth-stage { width: min(62vw, 860px); top: 54%; left: 84%; opacity: .14; will-change: auto; }
.policy-page .orbit { opacity: .3; }
.policy-page .policy-content { position: relative; background: #03060d66; border-radius: 20px; }
@media (max-width: 768px) {
  .policy-page .earth-stage { width: min(120vw, 520px); top: 65%; left: 92%; opacity: .08; }
  .policy-page .space-nebula { opacity: .2; }
}
