/* EZQPool landing (RA-407). No inline styles anywhere: the CSP is style-src 'self'. */
:root { --bg:#0D0F10; --panel:#121516; --card:#1E2123; --card2:#16191A; --ink:#F2F5F4; --ink2:#C9D6D8; --ink3:#A9C4C7; --amber:#FFB547; --teal:#0B2F35; --green:#7FE0B5; --line:rgba(255,255,255,.18); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--bg); color:var(--ink); font:400 16px/1.55 Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; overflow-x:hidden; }
a { color:var(--ink); } a:hover { color:var(--amber); }
h1,h2,h3,p,ul,ol { margin:0; } ul,ol { padding:0; list-style:none; }
h2 { font-size:clamp(28px,3.4vw,40px); font-weight:800; line-height:1.15; }
h3 { font-size:20px; font-weight:700; }
.wrap { max-width:1160px; margin:0 auto; padding:0 24px; }
.stack { display:flex; flex-direction:column; gap:32px; }
.pad { padding-top:80px; padding-bottom:80px; } .pad-b { padding-bottom:80px; }
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.top { max-width:1160px; margin:0 auto; padding:20px 24px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
.brand img { width:40px; height:40px; border-radius:10px; display:block; }
.brand span { font:600 24px/1 Outfit, Inter, sans-serif; letter-spacing:.005em; }
.top nav { display:flex; flex-wrap:wrap; align-items:center; gap:20px; font-size:15px; font-weight:500; }
.top nav a { text-decoration:none; }
.lang { height:44px; display:inline-flex; align-items:center; gap:6px; padding:0 12px; border-radius:22px; border:1px solid rgba(255,255,255,.22); font-size:14px; font-weight:500; }
.lang strong { font-weight:800; }
.btn { height:52px; display:inline-flex; align-items:center; justify-content:center; padding:0 28px; border-radius:26px; border:0; background:var(--amber); color:var(--teal); font:800 16px Inter, sans-serif; text-decoration:none; cursor:pointer; }
.btn:hover { color:var(--teal); filter:brightness(1.08); }
.btn.small { height:44px; padding:0 20px; border-radius:22px; font-size:15px; }
.btn[disabled] { opacity:.6; cursor:default; }
:focus-visible { outline:2px solid var(--amber); outline-offset:2px; }

.hero { padding-top:40px; padding-bottom:80px; display:flex; flex-wrap:wrap; align-items:center; gap:48px; }
.hero-copy { flex:1 1 420px; min-width:0; display:flex; flex-direction:column; gap:20px; }
.hero-media { flex:1 1 480px; min-width:0; display:flex; justify-content:center; }
.badge { align-self:flex-start; padding:5px 12px; border-radius:14px; background:rgba(127,224,181,.12); border:1px solid rgba(127,224,181,.4); font-size:13px; font-weight:600; color:var(--green); }
.eyebrow { font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--amber); }
.eyebrow.green { color:var(--green); } .eyebrow.muted { color:var(--ink3); }
h1 { font-size:clamp(40px,5.6vw,68px); line-height:1.02; font-weight:800; letter-spacing:-.01em; }
.lead { font-size:18px; line-height:1.55; color:var(--ink2); max-width:34rem; }
.platforms { font-size:14px; font-weight:600; color:#D9E4E5; }
.chips { display:flex; flex-wrap:wrap; gap:8px; max-width:34rem; }
.chips li { padding:6px 12px; border-radius:16px; border:1px solid var(--line); font-size:13px; font-weight:600; color:#D9E4E5; }
.phone { width:100%; max-width:640px; padding:12px; border-radius:46px; background:linear-gradient(145deg,#2B3034,#121516); border:2px solid #3E454A; box-shadow:0 30px 60px rgba(0,0,0,.55); }
.screen { position:relative; border-radius:34px; overflow:hidden; background:var(--card2); aspect-ratio:16/9; }
.screen video { display:block; width:100%; height:100%; object-fit:cover; }
.notch { position:absolute; left:12px; top:50%; width:8px; height:56px; margin-top:-28px; border-radius:4px; background:var(--bg); }

.join-form { display:flex; flex-direction:column; gap:14px; max-width:34rem; min-width:0; }
.field { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--ink3); }
input[type=email] { height:50px; padding:0 16px; border-radius:12px; border:1px solid rgba(255,255,255,.22); background:#16191A; color:var(--ink); font:400 16px Inter, sans-serif; }
.consent { display:flex; gap:12px; align-items:flex-start; font-size:13px; line-height:1.45; color:var(--ink3); }
.join-form .btn { align-self:stretch; }
.perk { font-size:13px; color:var(--ink3); }
.msg { min-height:1.4em; font-size:14px; color:var(--green); } .msg.err { color:#FF9B8A; }
form[hidden] { display:none; }
.switch { appearance:none; -webkit-appearance:none; width:44px; height:26px; margin:0; border-radius:13px; background:#3A4043; position:relative; flex-shrink:0; cursor:pointer; transition:background .2s; }
.switch::after { content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:var(--ink); transition:transform .2s; }
.switch:checked { background:var(--amber); }
.switch:checked::after { transform:translateX(18px); background:var(--teal); }
@media (prefers-reduced-motion: reduce) { .switch, .switch::after { transition:none; } html { scroll-behavior:auto; } }

.band-dark { background:var(--panel); padding:80px 0; }
.grid { display:grid; gap:20px; }
.steps { grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.card { border-radius:22px; background:var(--card); overflow:hidden; display:flex; flex-direction:column; }
.clip { display:block; width:100%; height:auto; aspect-ratio:16/9; background:var(--card2); }
.card-body { padding:20px 22px 24px; display:flex; flex-direction:column; gap:8px; }
.card-body p { font-size:15px; line-height:1.55; color:var(--ink2); }
.step { font-size:13px; font-weight:800; color:var(--amber); }

.diamonds { padding-top:80px; display:flex; flex-wrap:wrap; align-items:center; gap:40px; }
.diamonds-copy { flex:1 1 360px; min-width:0; display:flex; flex-direction:column; gap:14px; }
.diamonds-art { flex:1 1 440px; min-width:0; display:flex; justify-content:center; }
.diamond-svg { width:100%; max-width:540px; height:auto; }
.big { font-size:17px; line-height:1.6; color:var(--ink2); }
.sub { font-size:15px; line-height:1.55; color:var(--ink3); }
.intro { display:flex; flex-direction:column; gap:10px; max-width:46rem; }

.compare { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px; }
.compare-box { padding:24px; border-radius:20px; background:var(--card2); border:1px solid rgba(255,255,255,.10); display:flex; flex-direction:column; gap:14px; }
.compare-box.us { background:var(--teal); border-color:rgba(255,181,71,.55); }
.compare-box .label { font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink3); } .compare-box .label.amber { color:var(--amber); }
.compare-box ul { display:flex; flex-direction:column; gap:10px; font-size:16px; color:var(--ink2); }
.compare-box.us ul { color:var(--ink); }
.compare-box li { display:flex; gap:10px; align-items:center; } .compare-box svg { flex:none; }
.panels { grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.panel { padding:22px; border-radius:18px; background:var(--card); display:flex; flex-direction:column; gap:8px; }
.panel h3 { font-size:18px; } .panel p { font-size:15px; line-height:1.55; color:var(--ink2); }

.next-grid { grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px; }
.next-grid .card-body { padding:18px 20px 22px; } .next-grid h3 { font-size:18px; }
.media { position:relative; }
.media.placeholder { aspect-ratio:16/9; background:var(--card2); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; }
.clip-to-come { font-size:12px; font-weight:600; color:var(--ink3); }
.tag { align-self:flex-start; padding:3px 9px; border-radius:8px; border:1px solid rgba(255,255,255,.22); font-size:11px; font-weight:700; color:#D9E4E5; }
.tag.concept { position:absolute; left:10px; top:10px; border:0; padding:3px 8px; background:rgba(13,15,16,.85); color:var(--ink3); }

.join-box { border-radius:28px; background:var(--teal); padding:clamp(28px,5vw,56px); display:flex; flex-wrap:wrap; gap:32px; align-items:flex-start; }
.join-intro { flex:1 1 360px; min-width:0; display:flex; flex-direction:column; gap:12px; }
.join-intro p { font-size:17px; line-height:1.55; color:#D9E4E5; }
.join-box .join-form { flex:1 1 420px; max-width:none; gap:16px; }
.join-box input[type=email] { background:#0A2429; }
.votes { margin:0; padding:0; border:0; min-width:0; }
.votes legend { padding:0; margin-bottom:8px; font-size:14px; font-weight:700; }
.vote-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:8px; }
.vote { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 12px; border-radius:12px; border:1px solid var(--line); font-size:14px; }

.honest-box { border-radius:24px; border:1px solid rgba(255,255,255,.14); padding:clamp(24px,4vw,40px); display:flex; flex-wrap:wrap; gap:28px; }
.honest-intro { flex:1 1 280px; min-width:0; display:flex; flex-direction:column; gap:10px; }
.honest-intro h2 { font-size:clamp(24px,3vw,32px); } .honest-intro p { font-size:15px; color:var(--ink3); }
.honest-list { flex:2 1 420px; min-width:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px 24px; font-size:15px; line-height:1.5; color:var(--ink2); }
.honest-list strong { color:var(--ink); }

.faq { max-width:860px; margin:0 auto; padding-left:24px; padding-right:24px; display:flex; flex-direction:column; gap:12px; }
.faq h2 { margin-bottom:12px; }
details { border-radius:16px; background:var(--card); padding:18px 20px; }
summary { font-size:17px; font-weight:700; cursor:pointer; }
details p { margin-top:10px; font-size:15px; line-height:1.55; color:var(--ink2); }

.closing { border-radius:28px; background:var(--card2); border:1px solid rgba(255,181,71,.4); padding:clamp(28px,5vw,48px); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; }
.closing > div { flex:1 1 320px; min-width:0; display:flex; flex-direction:column; gap:8px; }
.closing h2 { font-size:clamp(26px,3.2vw,36px); } .closing p { color:var(--ink2); }

.foot { border-top:1px solid rgba(255,255,255,.08); }
.foot-in { padding-top:28px; padding-bottom:28px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; font-size:14px; color:var(--ink3); }
.foot-brand { display:flex; align-items:center; gap:10px; } .foot-brand img { border-radius:6px; }
.foot nav { display:flex; flex-wrap:wrap; gap:20px; }
.disclaimer { flex:1 1 100%; font-size:12px; line-height:1.5; color:#8FA3A6; }

/* Terms and privacy pages */
.legal { max-width:820px; margin:0 auto; padding:24px 24px 80px; color:var(--ink2); line-height:1.65; }
.legal h1 { font-size:clamp(28px,4vw,40px); color:var(--ink); margin-bottom:16px; }
.legal h2 { font-size:24px; color:var(--ink); margin:36px 0 10px; } .legal h3 { font-size:18px; color:var(--ink); margin:24px 0 8px; }
.legal p, .legal ul, .legal ol { margin:0 0 14px; } .legal ul { list-style:disc; padding-left:1.4em; } .legal ol { list-style:decimal; padding-left:1.6em; }
.legal li { margin:.3em 0; } .legal code { background:#1E2123; padding:1px 5px; border-radius:5px; font-size:.9em; }
.legal a { color:var(--amber); }
.draft-banner, .note { border:1px solid rgba(255,181,71,.5); background:rgba(255,181,71,.08); border-radius:12px; padding:12px 16px; font-size:14px; margin-bottom:20px; }
.note p { margin:0 0 8px; } .note p:last-child { margin:0; }
.table-wrap { overflow-x:auto; margin:0 0 16px; }
.legal table { border-collapse:collapse; width:100%; font-size:14px; min-width:560px; }
.legal th, .legal td { border:1px solid rgba(255,255,255,.14); padding:8px 10px; text-align:left; vertical-align:top; }
.legal th { background:#1E2123; color:var(--ink); }

@media (max-width:560px) { .top nav { gap:12px; } .top nav a:not(.lang):not(.btn) { display:none; } .pad { padding-top:56px; padding-bottom:56px; } .band-dark { padding:56px 0; } .hero { gap:32px; } .phone { padding:8px; border-radius:30px; } .screen { border-radius:22px; } }

/* Language menu (RA-457): a plain <details>, no script (CSP). Used once more than two languages are approved. */
.lang-menu { position:relative; }
.lang-menu summary { cursor:pointer; list-style:none; }
.lang-menu summary::-webkit-details-marker { display:none; }
.lang-menu ul { position:absolute; right:0; top:calc(100% + 6px); z-index:10; margin:0; padding:6px; list-style:none; min-width:160px; background:var(--card); border:1px solid var(--line); border-radius:14px; }
.lang-menu li a, .lang-menu li strong { display:flex; align-items:center; min-height:44px; padding:0 12px; border-radius:10px; text-decoration:none; font-size:15px; }
.lang-menu li a:hover { background:rgba(255,255,255,.08); }

/* Japanese and Korean: the site fonts have no CJK glyphs, so these pages use the system font stack (no font request, CSP stays strict). */
:lang(ja), :lang(ko) { --cjk:system-ui, -apple-system, "Hiragino Sans", "Yu Gothic UI", "Meiryo", "Noto Sans CJK JP", sans-serif; }
:lang(ko) { --cjk:system-ui, -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans CJK KR", sans-serif; }
html:lang(ja) body, html:lang(ja) .brand span, html:lang(ja) .btn, html:lang(ja) input, html:lang(ja) button,
html:lang(ko) body, html:lang(ko) .brand span, html:lang(ko) .btn, html:lang(ko) input, html:lang(ko) button { font-family:var(--cjk); }
html:lang(ja) .brand span, html:lang(ko) .brand span { font-family:Outfit, var(--cjk); } /* the EZQPool wordmark stays Outfit (Latin) */
html:lang(ja) body, html:lang(ko) body { line-height:1.75; word-break:keep-all; overflow-wrap:anywhere; }
html:lang(ja) h1, html:lang(ja) h2, html:lang(ja) h3, html:lang(ko) h1, html:lang(ko) h2, html:lang(ko) h3 { font-family:var(--cjk); line-height:1.35; letter-spacing:0; }
html:lang(ja) body { word-break:normal; line-break:strict; }
