/* Veydan — legal.css
   Legal pages (legal/<slug>/index.html, generated by tools/build-legal.mjs). Standalone: the landing's style.css is not
   loaded here. Tokens are the same values as style.css §01 (only the ones these pages use).
   Breakpoints follow the site: ≤1199.98 tablet (nav above the text), ≤767.98 mobile, ≤374.98 small phones. */

:root{
  --font-display:'Geologica',sans-serif;
  --font-body:'Golos Text',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',monospace;
  --text-h1:clamp(30px,4vw,52px);
  --text-h2:clamp(20px,1.8vw,24px);
  --text-body:16px;
  --text-small:14px;
  --text-label:12px;
  --leading-body:1.7;
  --tracking-heading:-0.03em;
  --tracking-label:0.1em;
  --bg:#07080D;
  --header-bg:rgba(7,8,13,0.78);
  --surface:#0B0D15;
  --surface-raised:#0E1019;
  --text-primary:#ECEDEF;
  --text-secondary:#C5C9CF;
  --text-muted:#9097A1;
  --border-subtle:rgba(255,255,255,0.08);
  --border:rgba(255,255,255,0.14);
  --color-space:#0198FB;
  --color-space-light:#6CC4FF;
  --color-chat:#A838FA;
  --gradient-brand:linear-gradient(90deg,#0198FB,#A838FA);
  --container:1440px;
  --gutter:clamp(20px,4vw,56px);
  --radius-md:8px;
  --radius-lg:12px;
  --duration-fast:0.2s;
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --header-h:68px;
  --bg-rgb:7,8,13;
  --ink-rgb:255,255,255;
  --link-underline:rgba(108,196,255,0.35);
  --focus-ring:rgba(108,196,255,0.18);
  --danger:#E5484D;
  --danger-soft:rgba(229,72,77,0.12);
  --danger-text:#FFB4B4;
  --danger-error:#F59A9A;
  --danger-border:#F26B6B;
  --success-border:rgba(6,199,135,0.45);
}

/* ---------- base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px);-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:var(--text-primary);text-decoration:none}
a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-space-light);outline-offset:3px;border-radius:2px}
::selection{background:var(--color-space);color:var(--bg)}

.legal-skip{position:absolute;left:12px;top:-60px;z-index:20;padding:10px 14px;border-radius:var(--radius-md);background:var(--text-primary);color:var(--bg);font-size:var(--text-small)}
.legal-skip:focus{top:12px}

/* ---------- header ---------- */
.legal-header{position:sticky;top:0;z-index:10;background:var(--header-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border-subtle)}
.legal-header__inner{max-width:var(--container);height:var(--header-h);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:16px}
.legal-header__logo-link{display:flex;align-items:center}
.legal-header__logo{height:36px;width:auto;display:block} /* same as the landing .header__logo */
.legal-header__back{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border:1px solid var(--border);border-radius:999px;font-size:var(--text-small);color:var(--text-secondary);transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}
.legal-header__back:hover{color:var(--text-primary);border-color:var(--text-muted)}

/* ---------- layout ---------- */
.legal-layout{max-width:var(--container);margin:0 auto;padding:clamp(40px,6vw,88px) var(--gutter) clamp(64px,8vw,120px);display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:start}
.legal-layout--toc{grid-template-columns:minmax(200px,260px) minmax(0,1fr) minmax(200px,260px);gap:clamp(40px,4.5vw,72px)}

/* ---------- documents nav ---------- */
.legal-aside{position:sticky;top:calc(var(--header-h) + 32px)}
.legal-nav__label,.legal-toc__label,.legal-doc__eyebrow{display:block;font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}
.legal-nav__list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;border-left:1px solid var(--border-subtle)}
.legal-nav__link{display:block;margin-left:-1px;padding:9px 0 9px 16px;border-left:1px solid transparent;font-size:var(--text-small);line-height:1.4;color:var(--text-muted);transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}
.legal-nav__link:hover{color:var(--text-primary)}
.legal-nav__link[aria-current="page"]{color:var(--text-primary);border-left-color:var(--color-space);font-weight:500}
/* js/i18n.js: the nav is translated, the documents are not — hide only the nav while its translation loads (max 1.5 s) */
.i18n-pending .legal-nav{visibility:hidden}
.legal-nav [lang="ko"]{font-family:var(--font-body),'Noto Sans KR',sans-serif}
.legal-nav [lang="th"]{font-family:var(--font-body),'Noto Sans Thai',sans-serif}

/* ---------- document ---------- */
.legal-doc{max-width:760px;min-width:0}
.legal-doc__title{margin:14px 0 0;font-family:var(--font-display);font-weight:600;font-size:var(--text-h1);line-height:1.04;letter-spacing:var(--tracking-heading);text-wrap:balance}
.legal-doc__revision{margin:20px 0 0;font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:0.04em;color:var(--text-muted)}
.legal-doc__revision::before{content:"";display:inline-block;width:8px;height:8px;margin-right:10px;border-radius:50%;background:var(--gradient-brand);vertical-align:1px}

/* table of contents — right column on desktop (--side), card under the title below 1200 (--inline) */
.legal-toc{margin-top:36px;padding:20px 24px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface)}
.legal-toc--inline{display:none}
.legal-aside--toc{max-height:calc(100vh - var(--header-h) - 64px);overflow-y:auto;scrollbar-width:thin}
.legal-toc--side{margin:0;padding:0;border:0;background:none}
.legal-toc--side .legal-toc__list{columns:1;margin-top:16px;padding:0;list-style:none;border-left:1px solid var(--border-subtle);counter-reset:toc}
.legal-toc--side .legal-toc__list li{padding:0}
.legal-toc--side .legal-toc__list a{display:flex;gap:10px;margin-left:-1px;padding:7px 0 7px 16px;border-left:1px solid transparent;color:var(--text-muted);transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}
.legal-toc--side .legal-toc__list a::before{counter-increment:toc;content:counter(toc);flex:none;min-width:1.4em;font-family:var(--font-mono);font-size:11px;line-height:1.9;color:var(--text-muted);opacity:0.7}
.legal-toc--side .legal-toc__list a:hover{color:var(--text-primary)}
.legal-toc--side .legal-toc__list a[aria-current]{color:var(--text-primary);border-left-color:var(--color-space)}
.legal-toc__list{margin:12px 0 0;padding:0 0 0 1.6em;columns:2;column-gap:32px;font-size:var(--text-small);line-height:1.5;color:var(--text-muted)}
.legal-toc__list li{break-inside:avoid;padding:3px 0}
.legal-toc__list li::marker{font-family:var(--font-mono);font-size:12px}
.legal-toc__list a{color:var(--text-secondary)}
.legal-toc__list a:hover{color:var(--color-space-light)}

/* body text */
.legal-doc__body{margin-top:40px;font-size:var(--text-body);line-height:var(--leading-body);color:var(--text-secondary);overflow-wrap:break-word}
.legal-doc__body > :first-child{margin-top:0}
.legal-doc__body p{margin:0 0 1.05em}
.legal-doc__body strong{color:var(--text-primary);font-weight:600}
.legal-doc__body h2{position:relative;margin:2.4em 0 0.8em;padding-top:1.4em;border-top:1px solid var(--border-subtle);font-family:var(--font-display);font-weight:500;font-size:var(--text-h2);line-height:1.3;letter-spacing:-0.015em;color:var(--text-primary)}
.legal-anchor{position:absolute;left:-1.1em;color:var(--text-muted);opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}
.legal-doc__body h2:hover .legal-anchor{opacity:1}
.legal-doc__body a{color:var(--color-space-light);text-decoration:underline;text-decoration-color:var(--link-underline);text-underline-offset:3px}
.legal-doc__body a:hover{text-decoration-color:currentColor}
.legal-doc__body .legal-anchor{color:var(--text-muted);text-decoration:none}
.legal-ext{display:inline-block;margin-left:2px;font-size:0.85em;text-decoration:none}
.legal-doc__body code{padding:1px 6px;border-radius:4px;background:rgba(var(--ink-rgb),0.06);border:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:0.86em;color:var(--text-primary)}
.legal-doc__body ul{margin:0 0 1.05em;padding:0;list-style:none}
.legal-doc__body li{position:relative;padding-left:1.4em;margin:0 0 0.45em}
.legal-doc__body ul li::before{content:"";position:absolute;left:2px;top:0.78em;width:6px;height:1px;background:var(--color-space-light)}

/* tables (Privacy §7, §9) */
.legal-table{margin:1.4em 0 1.6em;overflow-x:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface)}
.legal-table table{width:100%;min-width:560px;border-collapse:collapse;font-size:var(--text-small);line-height:1.55}
.legal-table th,.legal-table td{padding:14px 16px;text-align:left;vertical-align:top;border-top:1px solid var(--border-subtle)}
.legal-table thead th{border-top:0;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-raised)}
.legal-table tbody th{font-weight:500;color:var(--text-primary);min-width:160px}

/* overview cards */
.legal-cards{list-style:none;margin:1.4em 0 2.4em !important;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.legal-doc__body .legal-cards li{padding:0;margin:0}
.legal-doc__body .legal-cards li::before{content:none}
.legal-doc__body a.legal-card__link{position:relative;display:flex;flex-direction:column;gap:6px;height:100%;padding:20px 48px 20px 20px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface);color:var(--text-secondary);text-decoration:none;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}
.legal-doc__body a.legal-card__link:hover{border-color:var(--border);background:var(--surface-raised)}
.legal-card__title{font-family:var(--font-display);font-weight:500;font-size:17px;line-height:1.3;color:var(--text-primary)}
.legal-card__text{font-size:var(--text-small);line-height:1.5;color:var(--text-muted)}
.legal-card__arrow{position:absolute;right:20px;top:20px;color:var(--text-muted);transition:transform var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}
.legal-card__link:hover .legal-card__arrow{color:var(--color-space-light);transform:translateX(3px)}

/* ---------- account deletion (account/delete/index.html, js/account-delete.js) ---------- */
.account{max-width:680px;margin:0 auto;padding:clamp(40px,6vw,88px) var(--gutter) clamp(64px,8vw,120px);font-size:var(--text-body);line-height:var(--leading-body);color:var(--text-secondary)}
.account strong{color:var(--text-primary);font-weight:600}
.account code{padding:1px 6px;border-radius:4px;background:rgba(var(--ink-rgb),0.06);border:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:0.86em;color:var(--text-primary)}
.account a{color:var(--color-space-light);text-decoration:underline;text-decoration-color:var(--link-underline);text-underline-offset:3px}
.account a:hover{text-decoration-color:currentColor}
.account__lead{margin:24px 0 0}
.account__form,.account__done{margin-top:32px;padding:clamp(20px,3vw,28px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface)}
.account__form{display:flex;flex-direction:column;gap:20px}
.account [hidden]{display:none !important} /* js/account-delete.js hides the form after sending; display:flex must not override it */
.account__field{display:flex;flex-direction:column;gap:8px}
.account__label{font-size:var(--text-small);font-weight:500;color:var(--text-primary)}
.account__input{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);color:var(--text-primary);font:inherit;font-size:15px;line-height:1.5;transition:border-color var(--duration-fast) var(--ease-out)}
.account__input--key{resize:vertical;min-height:88px;font-family:var(--font-mono);font-size:13px;word-break:break-all}
.account__input::placeholder{color:var(--text-muted);opacity:0.7}
.account__input:focus{outline:none;border-color:var(--color-space-light);box-shadow:0 0 0 3px var(--focus-ring)}
.account__input[aria-invalid="true"]{border-color:var(--danger-border)}
.account__error{margin:0;font-size:13px;line-height:1.5;color:var(--danger-error)}
.account__check{display:flex;align-items:flex-start;gap:12px;font-size:var(--text-small);line-height:1.5;color:var(--text-secondary);cursor:pointer}
.account__check input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--danger);cursor:pointer}
.account__check + .account__error{margin-top:-12px}
.account__submit{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border:1px solid var(--danger);border-radius:999px;background:var(--danger-soft);color:var(--danger-text);font:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}
.account__submit:hover{background:var(--danger);color:#fff}
.account__submit:focus-visible{outline:2px solid var(--color-space-light);outline-offset:3px}
.account__submit[aria-busy="true"]{opacity:0.7;cursor:progress}
.account__done{border-color:var(--success-border)}
.account__done:focus{outline:none}
.account__done-title{margin:0 0 8px;font-family:var(--font-display);font-weight:500;font-size:var(--text-h2);line-height:1.3;color:var(--text-primary)}
.account__done p{margin:0 0 0.8em}
.account__done p:last-child{margin-bottom:0}
.account__more{margin:24px 0 0;font-size:var(--text-small);color:var(--text-muted)}

/* ---------- footer ---------- */
.legal-footer{border-top:1px solid var(--border-subtle)}
.legal-footer__inner{max-width:var(--container);margin:0 auto;padding:24px var(--gutter) calc(24px + env(safe-area-inset-bottom,0px));display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;font-family:var(--font-mono);font-size:var(--text-label);color:var(--text-muted)}
.legal-footer__links{display:flex;flex-wrap:wrap;gap:8px 24px}
.legal-footer a{color:var(--text-muted)}
.legal-footer a:hover{color:var(--text-primary)}

/* ---------- Tablet / compact desktop: documents nav above the text ---------- */
@media (max-width:1199.98px){
  .legal-layout,.legal-layout--toc{grid-template-columns:minmax(0,1fr);gap:32px}
  .legal-aside--toc{display:none}
  .legal-toc--inline{display:block}
  .legal-aside{position:static;min-width:0}
  .legal-nav__list{flex-direction:row;flex-wrap:nowrap;gap:8px;overflow-x:auto;border-left:0;margin:12px calc(-1 * var(--gutter)) 0;padding:0 var(--gutter) 4px;scrollbar-width:none}
  .legal-nav__list::-webkit-scrollbar{display:none}
  .legal-nav__link{margin:0;padding:9px 14px;border:1px solid var(--border-subtle);border-radius:999px;white-space:nowrap}
  .legal-nav__link[aria-current="page"]{border-color:var(--color-space);background:rgba(1,152,251,0.1)}
  .legal-doc{margin:0 auto;width:100%}
  .legal-anchor{display:none}
}

/* ---------- Mobile ---------- */
@media (max-width:767.98px){
  :root{--header-h:56px;--text-body:15px;--gutter:20px}
  .legal-header{padding-top:env(safe-area-inset-top)}
  .legal-header__inner{height:var(--header-h);padding-left:max(var(--gutter),env(safe-area-inset-left));padding-right:max(var(--gutter),env(safe-area-inset-right))}
  .legal-header__logo{height:30px}
  .legal-header__back{min-height:44px;padding:0 14px}
  .legal-toc{padding:16px 18px}
  .legal-toc__list{columns:1}
  .legal-toc__list li{padding:6px 0}
  .legal-cards{grid-template-columns:minmax(0,1fr)}
  .legal-footer__inner{flex-direction:column}
  .legal-footer a{display:inline-flex;align-items:center;min-height:44px}
}

/* ---------- Small phones ---------- */
@media (max-width:374.98px){
  .legal-header__back{padding:0 12px;font-size:13px}
}

/* ---------- theme (js/theme.js, same choice as the landing) ---------- */
.legal-header__logo-link{margin-right:auto}
.header__theme{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;padding:0;border:1px solid var(--border);border-radius:999px;
  background:transparent;color:var(--text-secondary);cursor:pointer;transition:color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}
.header__theme:hover{color:var(--text-primary);border-color:var(--text-muted)}
.header__theme:focus-visible{outline:2px solid var(--color-space-light);outline-offset:3px}
.header__theme-icon{grid-area:1/1;transition:opacity .3s ease,transform .3s var(--ease-out)}
.header__theme-icon--moon{opacity:0;transform:rotate(-40deg) scale(.7)}
[data-theme="light"] .header__theme-icon--sun{opacity:0;transform:rotate(40deg) scale(.7)}
[data-theme="light"] .header__theme-icon--moon{opacity:1;transform:none}

/* light values — the same palette as style.css §18 */
:root[data-theme="light"]{
  color-scheme:light;
  --bg:#F3F5FB;--bg-rgb:243,245,251;--ink-rgb:14,20,48;
  --header-bg:rgba(243,245,251,0.84);
  --surface:#F9FAFD;--surface-raised:#FFFFFF;
  --text-primary:#0E1430;--text-secondary:#384062;--text-muted:#586079;
  --border-subtle:rgba(14,20,48,0.08);--border:rgba(14,20,48,0.14);
  --color-space-light:#0068BD;
  --link-underline:rgba(0,104,189,0.35);--focus-ring:rgba(0,104,189,0.18);
  --danger:#D92D20;--danger-soft:rgba(217,45,32,0.08);--danger-text:#B42318;--danger-error:#B42318;--danger-border:#D92D20;
  --success-border:rgba(3,133,89,0.45);
}
[data-theme="light"] ::selection{color:#FFFFFF}

/* switching: dawn rises from the bottom, dusk falls from the top (see style.css §18) */
::view-transition-old(root){animation:none}
::view-transition-new(root){
  -webkit-mask-image:linear-gradient(to top,#000 40%,transparent 60%);mask-image:linear-gradient(to top,#000 40%,transparent 60%);
  -webkit-mask-size:100% 250%;mask-size:100% 250%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  animation:themeDawn 1.6s cubic-bezier(.45,0,.25,1) both}
:root[data-theme-fx="dusk"]::view-transition-new(root){
  -webkit-mask-image:linear-gradient(to bottom,#000 40%,transparent 60%);mask-image:linear-gradient(to bottom,#000 40%,transparent 60%);
  animation-name:themeDusk}
@keyframes themeDawn{from{-webkit-mask-position:0 0%;mask-position:0 0%}to{-webkit-mask-position:0 100%;mask-position:0 100%}}
@keyframes themeDusk{from{-webkit-mask-position:0 100%;mask-position:0 100%}to{-webkit-mask-position:0 0%;mask-position:0 0%}}
.is-theme-fading,.is-theme-fading *,.is-theme-fading *::before,.is-theme-fading *::after{
  transition:background-color 1.2s ease,color 1.2s ease,border-color 1.2s ease,box-shadow 1.2s ease!important}
