/* Sunvi website
   Layout: conversation-first. Home pairs a headline with a live phone, then
   alternates copy and small app vignettes. Legal pages are one readable column
   with a sticky contents list on wide screens. Colors come from the app. */
:root {
  --bg: #F1F8F7;          /* mint white, app background */
  --surface: #FFFFFF;
  --surface-2: #E7F2F0;
  --ink: #10242A;
  --muted: #55676B;
  --line: rgba(16, 36, 42, 0.11);
  --teal: #0B746F;        /* brand */
  --teal-press: #085C58;
  --teal-soft: #DDF3EF;
  --on-teal: #FFFFFF;
  --sun: #FFC83D;
  --on-sun: #10242A;
  --coral: #FF7A59;
  --coral-soft: #FFE4DB;
  --sky: #4FB3FF;
  --tr-card: #FFF0C7;     /* translation card */
  --phone: #10242A;
  --shadow: 0 1px 2px rgba(16,36,42,.06), 0 12px 32px -12px rgba(11,116,111,.28);

  --f-display: ui-rounded, "Fredoka", "SF Pro Rounded", system-ui, sans-serif;
  --f-body: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;

  --t-xs: 0.8125rem; --t-sm: 0.9375rem; --t-md: 1.0625rem; --t-lg: 1.25rem;
  --t-xl: 1.625rem; --t-2xl: clamp(1.875rem, 3.6vw, 2.5rem); --t-hero: clamp(2.5rem, 6.4vw, 4.25rem);
  --r-sm: 10px; --r-md: 18px; --r-lg: 28px;
  --wrap: 1120px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #050C0D; --surface: #111C1E; --surface-2: #17272A; --ink: #E8F3F2; --muted: #9BB0B2;
    --line: rgba(232, 243, 242, 0.12); --teal: #5ED3C7; --teal-press: #7FE0D6; --teal-soft: #0F3438;
    --on-teal: #04201E; --sun: #FFC83D; --on-sun: #10242A; --coral: #FF8A6C; --coral-soft: #3A1F18;
    --sky: #6CC0FF; --tr-card: #0F3438; --phone: #2A3A3D;
    --shadow: 0 1px 2px rgba(0,0,0,.4), 0 16px 40px -16px rgba(0,0,0,.7);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #050C0D; --surface: #111C1E; --surface-2: #17272A; --ink: #E8F3F2; --muted: #9BB0B2;
  --line: rgba(232, 243, 242, 0.12); --teal: #5ED3C7; --teal-press: #7FE0D6; --teal-soft: #0F3438;
  --on-teal: #04201E; --sun: #FFC83D; --on-sun: #10242A; --coral: #FF8A6C; --coral-soft: #3A1F18;
  --sky: #6CC0FF; --tr-card: #0F3438; --phone: #2A3A3D;
  --shadow: 0 1px 2px rgba(0,0,0,.4), 0 16px 40px -16px rgba(0,0,0,.7);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: var(--f-body); font-size: var(--t-md); line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; }
a { color: var(--teal); text-underline-offset: 3px; }
a:hover { color: var(--teal-press); }
:focus-visible { outline: 3px solid var(--sky); outline-offset: 3px; border-radius: 6px; }
h1, h2, h3 { font-family: var(--f-display); font-weight: 600; line-height: 1.12; text-wrap: balance; margin: 0; letter-spacing: -0.01em; }
p { margin: 0; }
:lang(ja) :is(h1, h2, h3) { word-break: auto-phrase; }
:lang(ko) :is(h1, h2, h3, p) { word-break: keep-all; }
.wrap {
  max-width: var(--wrap); margin-inline: auto;
  padding-left: max(16px, env(safe-area-inset-left, 0px));
  padding-right: max(16px, env(safe-area-inset-right, 0px));
}
@media (min-width: 720px) { .wrap { padding-left: max(32px, env(safe-area-inset-left, 0px)); padding-right: max(32px, env(safe-area-inset-right, 0px)); } }
.eyebrow { font-size: var(--t-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--teal); }
.skip { position: absolute; left: -999px; top: 8px; background: var(--surface); padding: 8px 12px; border-radius: 8px; z-index: 50; }
.skip:focus { left: 16px; }

/* Header */
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 10; background: var(--bg); }
.site-header { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 9; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: saturate(1.4) blur(14px); -webkit-backdrop-filter: saturate(1.4) blur(14px); border-bottom: 1px solid transparent; }
.site-header.scrolled { border-bottom-color: var(--line); }
.site-header .wrap { display: flex; align-items: center; gap: 24px; padding-block: 12px; }
.brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); font-family: var(--f-display); font-weight: 600; font-size: 1.375rem; }
.brand:hover { color: var(--ink); }
.brand svg { width: 34px; height: 34px; border-radius: 9px; flex: none; }
.nav { display: flex; gap: 22px; margin-left: auto; align-items: center; }
.nav a { color: var(--muted); text-decoration: none; font-size: var(--t-sm); font-weight: 600; }
.nav a:hover, .nav a[aria-current="page"] { color: var(--ink); }
.nav .nav-home { display: none; }
@media (max-width: 760px) { .nav .hide-sm { display: none; } .nav { gap: 16px; } }

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 22px; border-radius: 999px; font-family: var(--f-body); font-weight: 700; font-size: var(--t-md); text-decoration: none; border: 0; cursor: pointer; transition: transform .15s ease, background-color .15s ease; }
.btn-primary { background: var(--teal); color: var(--on-teal); }
.btn-primary:hover { background: var(--teal-press); color: var(--on-teal); transform: translateY(-1px); }
.btn-quiet { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--line); }
.btn-quiet:hover { color: var(--ink); background: var(--surface); }
.btn-sm { min-height: 38px; padding: 0 16px; font-size: var(--t-sm); }
.btn[aria-disabled="true"] { cursor: default; }
.btn svg { width: 20px; height: 20px; flex: none; }

/* Hero */
.hero .wrap { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); gap: 48px; align-items: center; padding-block: 56px 72px; }
.hero-copy { display: grid; gap: 22px; min-width: 0; }
.hero h1 { font-size: var(--t-hero); }
.hello { display: inline-block; position: relative; background: var(--sun); color: var(--on-sun); padding: 0 0.22em 0.04em; border-radius: 0.22em; transform: rotate(-2.5deg); box-shadow: 0 3px 0 rgba(16,36,42,.14); white-space: nowrap; transition: opacity .28s ease, transform .28s ease; }
.hello.swap { opacity: 0; transform: rotate(-2.5deg) translateY(6px); }
.hero .lede { font-size: var(--t-lg); color: var(--muted); max-width: 32ch; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.hero-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: var(--t-sm); color: var(--muted); }
.hero-meta span { display: inline-flex; align-items: center; gap: 7px; }
.hero-meta span::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--teal); }
@media (max-width: 860px) {
  .hero .wrap { grid-template-columns: minmax(0, 1fr); gap: 40px; padding-block: 32px 56px; }
  .hero .lede { max-width: 40ch; }
}

/* Phone mockup */
.phone-stage { position: relative; display: grid; place-items: center; min-width: 0; }
.phone-stage::before { content: ""; position: absolute; width: min(420px, 92%); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 50% 45%, var(--teal-soft), transparent 68%); z-index: 0; }
.phone { position: relative; z-index: 1; width: 300px; max-width: 100%; border-radius: 46px; padding: 11px; background: var(--phone); box-shadow: var(--shadow); }
.screen { border-radius: 36px; background: var(--bg); overflow: hidden; display: grid; grid-template-rows: auto auto 1fr auto; min-height: 560px; }
.status { display: flex; justify-content: space-between; align-items: center; padding: 14px 24px 4px; font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; }
.island { width: 92px; height: 26px; border-radius: 20px; background: #000; }
.status-icons { display: flex; gap: 5px; align-items: center; }
.status-icons i { display: block; width: 16px; height: 9px; border-radius: 2.5px; border: 1.5px solid var(--ink); }
.status-icons i:first-child { width: 14px; border: 0; background: linear-gradient(90deg, var(--ink) 0 20%, transparent 20% 27%, var(--ink) 27% 47%, transparent 47% 54%, var(--ink) 54% 74%, transparent 74% 81%, var(--ink) 81%); height: 9px; clip-path: polygon(0 75%, 100% 0, 100% 100%, 0 100%); }
.app-bar { padding: 10px 18px 6px; display: grid; gap: 12px; }
.app-bar h3 { font-size: 26px; }
.pair { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 6px; background: var(--surface); border-radius: 14px; padding: 6px; box-shadow: 0 1px 0 var(--line); }
.pair span { text-align: center; font-size: 13.5px; font-weight: 700; padding: 6px 4px; border-radius: 10px; }
.pair .swap-ico { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--teal-soft); color: var(--teal); font-size: 14px; }
.pair .to { transition: opacity .28s ease; }
.convo { padding: 8px 14px; display: grid; gap: 10px; align-content: start; }
.src-card { background: var(--surface); border-radius: 18px; padding: 14px 16px; display: grid; gap: 6px; }
.src-card small, .tr-card small { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.src-card p { font-size: 16px; font-weight: 600; line-height: 1.35; }
.tr-card { background: var(--tr-card); border-radius: 18px; padding: 14px 16px 12px; display: grid; gap: 8px; transition: opacity .28s ease; }
.tr-card p { font-family: var(--f-display); font-size: 21px; font-weight: 600; line-height: 1.28; }
.tr-card .roman { font-family: var(--f-body); font-size: 13px; font-weight: 500; color: var(--muted); line-height: 1.35; }
.tr-tools { display: flex; gap: 8px; }
.tr-tools b { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); color: var(--teal); }
.tr-tools svg { width: 16px; height: 16px; }
.tr-tools .ai { margin-left: auto; width: auto; padding: 0 10px; border-radius: 999px; font-size: 11.5px; font-weight: 700; letter-spacing: .02em; }
.fading { opacity: 0; }
.tabbar { display: grid; grid-template-columns: repeat(4, 1fr); padding: 10px 6px 18px; background: var(--surface); border-top: 1px solid var(--line); }
.tabbar span { display: grid; justify-items: center; gap: 3px; font-size: 10.5px; font-weight: 600; color: var(--muted); }
.tabbar span i { width: 22px; height: 22px; border-radius: 7px; background: currentColor; opacity: .35; }
.tabbar .on { color: var(--teal); }
.tabbar .on i { opacity: 1; }
.mic-fab { justify-self: center; width: 62px; height: 62px; border-radius: 50%; background: var(--teal); color: var(--on-teal); display: grid; place-items: center; margin: 6px 0 12px; box-shadow: 0 8px 20px -8px var(--teal); }
.mic-fab svg { width: 26px; height: 26px; }
.speech-tag { position: absolute; z-index: 2; left: max(0px, calc(50% - 250px)); top: 71%; background: var(--surface); border-radius: 14px; padding: 10px 14px; font-size: var(--t-sm); font-weight: 700; box-shadow: var(--shadow); display: flex; align-items: center; gap: 8px; }
.speech-tag .wave { display: inline-flex; gap: 2px; align-items: center; height: 16px; }
.speech-tag .wave i { width: 3px; border-radius: 2px; background: var(--coral); animation: wave 1.1s ease-in-out infinite; }
.speech-tag .wave i:nth-child(1) { height: 6px; } .speech-tag .wave i:nth-child(2) { height: 14px; animation-delay: .15s; } .speech-tag .wave i:nth-child(3) { height: 9px; animation-delay: .3s; } .speech-tag .wave i:nth-child(4) { height: 12px; animation-delay: .45s; }
@keyframes wave { 50% { transform: scaleY(.45); } }
@media (max-width: 860px) { .speech-tag { display: none; } }

/* Sections */
.section { padding-block: 72px; }
.section-head { display: grid; gap: 12px; max-width: 640px; margin-bottom: 40px; }
.section-head h2 { font-size: var(--t-2xl); }
.section-head p { color: var(--muted); font-size: var(--t-lg); }
.band { background: var(--surface); }

/* Modes */
.modes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.mode { background: var(--surface); border-radius: var(--r-lg); padding: 22px; display: grid; grid-template-rows: auto auto 1fr; gap: 14px; box-shadow: 0 1px 0 var(--line); min-width: 0; }
.mode h3 { font-size: var(--t-xl); display: flex; align-items: center; gap: 10px; }
.mode h3 .dot { width: 12px; height: 12px; border-radius: 50%; flex: none; }
.mode p { color: var(--muted); }
.vignette { border-radius: var(--r-md); background: var(--bg); padding: 16px; min-height: 176px; display: grid; gap: 8px; align-content: center; }
@media (max-width: 900px) { .modes { grid-template-columns: minmax(0, 1fr); } .mode { grid-template-rows: auto; } }

.v-speak { justify-items: center; gap: 12px; }
.v-speak .heard { background: var(--surface); padding: 8px 14px; border-radius: 14px 14px 14px 4px; font-weight: 600; font-size: var(--t-sm); justify-self: start; }
.v-speak .said { background: var(--tr-card); padding: 8px 14px; border-radius: 14px 14px 4px 14px; font-family: var(--f-display); font-weight: 600; justify-self: end; }
.v-speak .mic { width: 48px; height: 48px; border-radius: 50%; background: var(--teal); color: var(--on-teal); display: grid; place-items: center; }
.v-speak .mic svg { width: 22px; height: 22px; }

.v-talk { padding: 0; overflow: hidden; gap: 0; }
.v-talk .half { padding: 14px 16px; display: grid; gap: 4px; }
.v-talk .them { background: var(--coral-soft); transform: rotate(180deg); }
.v-talk .you { background: var(--teal-soft); }
.v-talk small { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.v-talk b { font-family: var(--f-display); font-weight: 600; font-size: 1.05rem; line-height: 1.3; }
.v-talk .them small { color: var(--coral); }
.v-talk .you small { color: var(--teal); }

.v-camera { position: relative; background: #2B3A3C; color: #FFF; overflow: hidden; }
.v-camera .sign { background: #1C6B3A; border-radius: 10px; padding: 12px 14px; display: grid; gap: 2px; justify-items: start; border: 2px solid #FFFFFF; max-width: 240px; justify-self: center; width: 100%; }
.v-camera .sign .orig { font-size: 1.35rem; font-weight: 700; letter-spacing: .1em; }
.v-camera .sign .ar { font-size: 1.2rem; }
.v-camera .overlay { justify-self: center; width: 100%; max-width: 240px; background: #FFF0C7; color: #10242A; border-radius: 10px; padding: 8px 12px; font-family: var(--f-display); font-weight: 600; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.v-camera .overlay small { font-family: var(--f-body); font-size: 11px; font-weight: 700; color: #55676B; }
.v-camera .corner { position: absolute; width: 22px; height: 22px; border: 3px solid var(--sun); }
.v-camera .c1 { top: 10px; left: 10px; border-right: 0; border-bottom: 0; border-radius: 6px 0 0 0; }
.v-camera .c2 { top: 10px; right: 10px; border-left: 0; border-bottom: 0; border-radius: 0 6px 0 0; }
.v-camera .c3 { bottom: 10px; left: 10px; border-right: 0; border-top: 0; border-radius: 0 0 0 6px; }
.v-camera .c4 { bottom: 10px; right: 10px; border-left: 0; border-top: 0; border-radius: 0 0 6px 0; }

.extras { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; margin-top: 48px; }
.extra { display: grid; gap: 6px; align-content: start; min-width: 0; }
.extra h3 { font-size: var(--t-lg); }
.extra p { color: var(--muted); font-size: var(--t-sm); }
.extra .ico { width: 40px; height: 40px; border-radius: 12px; background: var(--teal-soft); color: var(--teal); display: grid; place-items: center; margin-bottom: 4px; }
.extra .ico svg { width: 22px; height: 22px; }
@media (max-width: 900px) { .extras { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 460px) { .extras { grid-template-columns: minmax(0, 1fr); } }

/* Privacy flow */
.privacy-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); gap: 48px; align-items: start; }
@media (max-width: 900px) { .privacy-grid { grid-template-columns: minmax(0, 1fr); } }
.flow { display: grid; gap: 12px; }
.flow-row { display: grid; grid-template-columns: 132px 1fr; gap: 14px; align-items: center; background: var(--bg); border-radius: var(--r-md); padding: 14px 16px; }
.flow-row .what { font-weight: 700; display: flex; align-items: center; gap: 10px; }
.flow-row .what i { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; font-style: normal; background: var(--surface); color: var(--teal); }
.flow-row .what svg { width: 17px; height: 17px; }
.chain { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: var(--t-sm); min-width: 0; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; font-weight: 600; background: var(--surface); white-space: nowrap; }
.chip.device { background: var(--teal-soft); color: var(--teal); }
.chip.cloud { background: var(--surface); box-shadow: inset 0 0 0 1.5px var(--line); }
.chip.stop { background: var(--sun); color: var(--on-sun); }
.chain .arr { color: var(--muted); }
@media (max-width: 560px) { .flow-row { grid-template-columns: minmax(0, 1fr); gap: 10px; } }
.promises { display: grid; gap: 18px; list-style: none; padding: 0; margin: 0; }
.promises li { display: grid; grid-template-columns: 26px 1fr; gap: 12px; }
.promises li::before { content: ""; width: 22px; height: 22px; margin-top: 3px; border-radius: 50%; background: var(--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/14px no-repeat; }
.promises b { display: block; }
.promises span { color: var(--muted); font-size: var(--t-sm); }

/* Pricing */
.pricing { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 20px; align-items: stretch; }
@media (max-width: 900px) { .pricing { grid-template-columns: minmax(0, 1fr); } }
.tier { border-radius: var(--r-lg); padding: 28px; display: grid; gap: 18px; align-content: start; background: var(--surface); box-shadow: 0 1px 0 var(--line); }
.tier h3 { font-size: var(--t-xl); display: flex; align-items: center; gap: 10px; }
.tier.pro { background: var(--teal); color: var(--on-teal); }
.tier.pro .sub { color: color-mix(in srgb, var(--on-teal) 78%, transparent); }
.pro-sticker { background: var(--sun); color: var(--on-sun); font-size: 0.8rem; font-weight: 800; letter-spacing: .06em; padding: 3px 9px; border-radius: 8px; transform: rotate(-4deg); display: inline-block; }
.tier .sub { color: var(--muted); }
.limits { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.limits li { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: var(--t-sm); }
.limits li:last-child { border-bottom: 0; }
.limits b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 520px) { .plans { grid-template-columns: minmax(0, 1fr); } }
.plan { border-radius: var(--r-md); padding: 16px; background: color-mix(in srgb, var(--on-teal) 12%, transparent); display: grid; gap: 4px; align-content: start; }
.plan.featured { background: var(--surface); color: var(--ink); }
.plan .name { font-weight: 700; font-size: var(--t-sm); }
.plan .price { font-family: var(--f-display); font-size: 1.75rem; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.1; }
.plan .price small { display: block; margin-top: 2px; font-family: var(--f-body); font-size: var(--t-sm); font-weight: 600; }
.plan .note { font-size: var(--t-xs); opacity: .85; }
.plan .trial { justify-self: start; margin-top: 4px; background: var(--sun); color: var(--on-sun); font-size: 11.5px; font-weight: 800; padding: 3px 8px; border-radius: 6px; }
.tier.pro .limits li { border-bottom-color: color-mix(in srgb, var(--on-teal) 20%, transparent); }
.fine { font-size: var(--t-xs); color: var(--muted); max-width: 72ch; margin-top: 18px; }

/* FAQ teaser + support */
.faq { display: grid; gap: 10px; }
.faq details { background: var(--surface); border-radius: var(--r-md); padding: 0 20px; box-shadow: 0 1px 0 var(--line); }
.faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; font-weight: 700; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-family: var(--f-display); font-size: 1.5rem; line-height: 1; color: var(--teal); transition: transform .2s ease; flex: none; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq .answer { padding-bottom: 18px; color: var(--muted); display: grid; gap: 10px; max-width: 68ch; }
.faq-group { display: grid; gap: 14px; }
.faq-group + .faq-group { margin-top: 40px; }
.faq-group h2 { font-size: var(--t-xl); }

/* CTA band */
.cta { padding-block: 64px 80px; }
.cta-card { background: var(--sun); color: var(--on-sun); border-radius: var(--r-lg); padding: 40px; display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; }
.cta-card h2 { font-size: var(--t-2xl); max-width: 18ch; }
.cta-card .btn-primary { background: #10242A; color: #FFFFFF; }
.cta-card .btn-primary:hover { background: #0B746F; color: #FFFFFF; }
@media (max-width: 520px) { .cta-card { padding: 28px 22px; } }

/* Footer */
.site-footer { border-top: 1px solid var(--line); padding-block: 40px 48px; font-size: var(--t-sm); color: var(--muted); }
.site-footer .wrap { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); gap: 32px; }
.site-footer h4 { margin: 0 0 10px; font-size: var(--t-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--ink); }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.site-footer a { color: var(--muted); text-decoration: none; }
.site-footer a:hover { color: var(--ink); }
.site-footer .about { display: grid; gap: 12px; max-width: 36ch; }
.site-footer address { font-style: normal; }
.copy { grid-column: 1 / -1; padding-top: 20px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; }
@media (max-width: 720px) { .site-footer .wrap { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .site-footer .about { grid-column: 1 / -1; } }

/* Legal / document pages */
.doc-hero .wrap { padding-block: 48px 24px; display: grid; gap: 12px; }
.doc-hero h1 { font-size: clamp(2.125rem, 5vw, 3.25rem); }
.doc-hero p { color: var(--muted); }
.doc .wrap { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 56px; padding-block: 16px 80px; align-items: start; }
@media (max-width: 900px) { .doc .wrap { grid-template-columns: minmax(0, 1fr); gap: 24px; } .toc { position: static !important; } }
.toc { position: sticky; top: calc(env(safe-area-inset-top, 0px) + 84px); font-size: var(--t-sm); }
.toc h2 { font-family: var(--f-body); font-size: var(--t-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 10px; }
.toc ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; counter-reset: toc; }
.toc li { counter-increment: toc; display: grid; grid-template-columns: 26px 1fr; }
.toc li::before { content: counter(toc); color: var(--muted); font-variant-numeric: tabular-nums; }
.toc a { color: var(--ink); text-decoration: none; }
.toc a:hover { color: var(--teal); }
@media (max-width: 900px) { .toc { background: var(--surface); border-radius: var(--r-md); padding: 18px 20px; } }
.prose { max-width: 70ch; min-width: 0; counter-reset: sec; }
.prose section { scroll-margin-top: 90px; padding-top: 8px; }
.prose section + section { margin-top: 36px; }
.prose h2 { font-size: var(--t-xl); margin-bottom: 12px; counter-increment: sec; }
.prose h2::before { content: counter(sec) ". "; color: var(--teal); }
.prose h3 { font-family: var(--f-body); font-size: var(--t-md); font-weight: 700; margin: 20px 0 6px; }
.prose p + p, .prose ul + p, .prose p + ul { margin-top: 12px; }
.prose ul { padding-left: 1.2em; margin: 10px 0 0; display: grid; gap: 6px; }
.prose li::marker { color: var(--teal); }
.summary-box { background: var(--teal-soft); border-radius: var(--r-md); padding: 20px 22px; margin-bottom: 36px; display: grid; gap: 10px; }
.summary-box h2 { font-size: var(--t-lg); counter-increment: none; margin: 0; }
.summary-box h2::before { content: none; }
.summary-box ul { margin: 0; }
.caps { text-transform: uppercase; font-size: var(--t-sm); letter-spacing: .01em; }
.table-wrap { overflow-x: auto; margin-top: 12px; }
.prose table { border-collapse: collapse; width: 100%; font-size: var(--t-sm); min-width: 520px; }
.prose th, .prose td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.prose th { font-weight: 700; background: var(--surface-2); }

/* Support */
.support-top .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 380px); gap: 40px; padding-block: 48px 24px; align-items: start; }
@media (max-width: 900px) { .support-top .wrap { grid-template-columns: minmax(0, 1fr); } }
.contact-card { background: var(--surface); border-radius: var(--r-lg); padding: 24px; display: grid; gap: 16px; box-shadow: var(--shadow); }
.contact-card h2 { font-size: var(--t-lg); }
.email-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; background: var(--bg); border-radius: var(--r-sm); padding: 10px 10px 10px 14px; }
.email-row code { font-family: var(--f-body); font-weight: 700; font-size: var(--t-md); user-select: all; overflow-wrap: anywhere; }
.contact-card dl { margin: 0; display: grid; gap: 10px; font-size: var(--t-sm); }
.contact-card dt { font-weight: 700; color: var(--ink); }
.contact-card dd { margin: 0; color: var(--muted); }
.tips { display: flex; flex-wrap: wrap; gap: 8px; }
.tips span { background: var(--surface); padding: 6px 12px; border-radius: 999px; font-size: var(--t-sm); font-weight: 600; box-shadow: 0 1px 0 var(--line); }
.doc-head { display: grid; gap: 14px; min-width: 0; }
.doc-head h1 { font-size: clamp(2.125rem, 5vw, 3.25rem); }
.lede-s { color: var(--muted); font-size: var(--t-lg); max-width: 46ch; }
.tips a { background: var(--surface); padding: 6px 12px; border-radius: 999px; font-size: var(--t-sm); font-weight: 600; box-shadow: 0 1px 0 var(--line); color: var(--ink); text-decoration: none; }
.tips a:hover { background: var(--teal-soft); color: var(--ink); }
.faq-group { scroll-margin-top: 90px; }
.support-body .wrap { padding-block: 24px 80px; max-width: 880px; margin-inline: auto; }

/* Language menu */
.lang { position: relative; }
.lang summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 0 10px; border-radius: 999px; font-size: var(--t-sm); font-weight: 600; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--line); white-space: nowrap; }
.lang summary::-webkit-details-marker { display: none; }
.lang summary:hover { background: var(--surface); }
.lang summary svg { width: 17px; height: 17px; flex: none; }
.lang summary svg:last-child { width: 14px; height: 14px; color: var(--muted); }
.lang[open] summary svg:last-child { transform: rotate(180deg); }
.lang ul { position: absolute; right: 0; top: calc(100% + 8px); z-index: 20; list-style: none; margin: 0; padding: 6px; min-width: 180px; background: var(--surface); border-radius: 14px; box-shadow: var(--shadow), 0 0 0 1px var(--line); display: grid; }
.lang a { display: block; padding: 8px 12px; border-radius: 9px; color: var(--ink); text-decoration: none; font-size: var(--t-sm); font-weight: 600; }
.lang a:hover { background: var(--teal-soft); color: var(--ink); }
.lang a[aria-current="true"] { color: var(--teal); }
.lang a[aria-current="true"]::after { content: " ✓"; }
.nav + .lang { margin-left: 0; }
@media (max-width: 760px) {
  .lang summary span { display: none; }
  .lang summary { padding: 0 9px; }
}
@media (max-width: 420px) { .head-cta { display: none; } .nav { margin-left: auto; } }
.lang-hint { background: var(--teal-soft); }
.lang-hint .wrap { display: flex; justify-content: center; align-items: center; gap: 12px; padding-block: 8px; font-size: var(--t-sm); font-weight: 700; }
.lang-hint a { color: var(--teal); }
.lang-hint button { border: 0; background: transparent; color: var(--muted); font-size: 1.25rem; line-height: 1; cursor: pointer; padding: 4px 8px; border-radius: 8px; }

/* Coming soon dialog */
.soon { border: 0; border-radius: var(--r-lg); padding: 32px 28px 24px; max-width: min(400px, calc(100vw - 32px)); background: var(--surface); color: var(--ink); box-shadow: var(--shadow); text-align: center; }
.soon[open] { display: grid; gap: 12px; justify-items: center; }
.soon::backdrop { background: rgba(5, 12, 13, 0.45); backdrop-filter: blur(3px); }
.soon-icon svg { width: 64px; height: 64px; border-radius: 15px; }
.soon h2 { font-size: var(--t-xl); }
.soon p { color: var(--muted); }
.soon .soon-mail { color: var(--ink); font-weight: 700; }
.soon form { margin-top: 8px; }
.sel { user-select: all; }

/* Misc pieces */
.btn-sun { background: var(--sun); color: var(--on-sun); }
.btn-sun:hover { background: #FFD666; color: var(--on-sun); transform: translateY(-1px); }
.price-big { font-family: var(--f-display); font-weight: 600; font-size: 3rem; line-height: 1; }
.sub.small { font-size: var(--t-xs); }
.no-tick { display: block !important; }
.no-tick::before { content: none !important; }
.no-tick a { font-weight: 700; }

/* Try it */
.try-grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 48px; align-items: start; }
.try-grid .section-head { margin-bottom: 0; }
@media (max-width: 900px) { .try-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; } }
.try-box { background: var(--surface); border-radius: var(--r-lg); padding: 24px; display: grid; gap: 20px; box-shadow: var(--shadow); min-width: 0; }
.try-box .fine { margin-top: 0; }
.try-controls { display: grid; gap: 16px; }
.ctl { display: grid; gap: 8px; }
.ctl-label { font-size: var(--t-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.sits { display: flex; flex-wrap: wrap; gap: 8px; }
.sit { font: inherit; font-size: var(--t-sm); font-weight: 700; cursor: pointer; border: 0; border-radius: 999px; padding: 8px 14px; background: var(--bg); color: var(--ink); }
.sit:hover { background: var(--teal-soft); }
.sit[aria-pressed="true"] { background: var(--teal); color: var(--on-teal); }
.select { position: relative; max-width: 260px; }
.select select { appearance: none; -webkit-appearance: none; width: 100%; font: inherit; font-weight: 700; color: var(--ink); background: var(--bg); border: 0; border-radius: 12px; padding: 10px 40px 10px 14px; cursor: pointer; }
.select svg { position: absolute; right: 12px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); pointer-events: none; color: var(--muted); }
.try-out { display: grid; gap: 10px; }
.try-out .src-card { background: var(--bg); }
.try-out .tr-card p { font-size: clamp(1.25rem, 2.6vw, 1.625rem); }
.try-out .src-card p { font-size: var(--t-md); }

.faq-grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 48px; align-items: start; }
.faq-grid .section-head { margin-bottom: 0; }
.faq-grid .faq details { background: var(--bg); box-shadow: none; }
@media (max-width: 900px) { .faq-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; } }

/* 404 */
.nf { padding-block: 96px; display: grid; gap: 18px; justify-items: start; }
.nf h1 { font-size: var(--t-hero); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
