/* k-ID legal pages (Terms of Service, Privacy Policy / Notice) · v3 2026-10-23 · scoped to .kl · source: Website/kai-legal · built for the k-ID site (global Nav + Footer, Lenis) */
.kl{--kl-top:136px;--kl-bg:#000;--kl-fg:#fff;--kl-body:rgba(255,255,255,.68);--kl-meta:#a4a4a4;--kl-idx:rgba(255,255,255,.34);--kl-idx-hover:rgba(255,255,255,.72);--kl-line:rgba(255,255,255,.1);--kl-rule:rgba(255,255,255,.3);--kl-fill:rgba(255,255,255,.05);--kl-ul:rgba(255,255,255,.3);--kl-pill:rgba(24,24,27,.86);--kl-sheet:#111113;--kl-scrim:rgba(0,0,0,.5);
  background:var(--kl-bg);color:var(--kl-fg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.kl[data-kl-theme="light"]{--kl-bg:#fff;--kl-fg:#000;--kl-body:rgba(0,0,0,.7);--kl-meta:#737373;--kl-idx:rgba(0,0,0,.4);--kl-idx-hover:rgba(0,0,0,.72);--kl-line:rgba(0,0,0,.1);--kl-rule:rgba(0,0,0,.2);--kl-fill:rgba(0,0,0,.03);--kl-ul:rgba(0,0,0,.3);--kl-pill:rgba(255,255,255,.9);--kl-sheet:#fff;--kl-scrim:rgba(0,0,0,.28)}
html:has(.kl[data-kl-theme="dark"]),body:has(.kl[data-kl-theme="dark"]){background:#000}
.page-wrapper:has(.kl[data-kl-theme="dark"]),main:has(>.kl[data-kl-theme="dark"]){background:#000}
html:has(.kl[data-kl-theme="light"]),body:has(.kl[data-kl-theme="light"]){background:#fff}
.kl:lang(ko),.kl :lang(ko){font-family:Inter,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif;word-break:keep-all}
.kl *,.kl *::before,.kl *::after{box-sizing:border-box}
.kl h1,.kl h2,.kl h3,.kl h4{font-family:inherit;text-transform:none}
.kl a{text-underline-position:auto}

/* head: product logo | title — the logo block is hidden on pages without a product logo, and the title snaps left */
.kl .kl-title{color:var(--kl-fg);text-wrap:balance}
.kl .kl-divider{background:var(--kl-rule)}
.kl .kl-meta{color:var(--kl-meta)}
.kl .kl-lang{color:var(--kl-meta);white-space:nowrap;text-decoration:underline;text-decoration-color:var(--kl-ul);text-underline-offset:3px;transition:color .2s ease}
.kl .kl-lang:hover{color:var(--kl-fg)}
.kl .kl-dot{margin:0 10px;color:var(--kl-idx)}

.kl .kl-head{display:grid;grid-template-columns:minmax(0,680px) minmax(48px,1fr) 336px;align-items:center}
.kl .kl-head>*{grid-column:1}
.kl .kl-head>.kl-certs{grid-column:3;grid-row:1;align-self:center;margin-top:0}

/* layout: the document, and the index on the right */
.kl .kl-grid{grid-template-columns:minmax(0,680px) minmax(48px,1fr) 336px;align-items:start}
.kl .kl-body{grid-column:1}
.kl .kl-aside{grid-column:3;position:sticky;top:var(--kl-top)}
.kl-toc-list{max-height:calc(100vh - var(--kl-top) - 200px);overflow:auto;scrollbar-width:none;padding-bottom:16px;-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),transparent);mask-image:linear-gradient(#000 calc(100% - 24px),transparent)}
.kl-toc-list::-webkit-scrollbar{display:none}
.kl-toc-list a{display:block;padding:6px 0;font-size:14px;line-height:1.45;color:var(--kl-idx);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .25s ease}
.kl-toc-list a:hover{color:var(--kl-idx-hover)}
.kl-toc-list a[aria-current="true"]{color:var(--kl-fg)}
.kl .kl-certs{gap:12px}
.kl .kl-aside>.kl-certs{margin-top:40px}
.kl .kl-cert{transition:opacity .2s ease}
.kl .kl-cert:hover{opacity:.8}

/* the document */
.kl .kl-body{color:var(--kl-body)}
.kl-body>:first-child,.kl-sec:first-child>:first-child{margin-top:0}
.kl-body h2{margin:96px 0 24px;font-size:24px;line-height:1.3;font-weight:500;letter-spacing:-.02em;color:var(--kl-fg);scroll-margin-top:var(--kl-top);text-wrap:balance}
.kl-body h3{margin:48px 0 16px;font-size:17px;line-height:1.45;font-weight:500;letter-spacing:-.01em;color:var(--kl-fg)}
.kl-body h2+h3{margin-top:32px}
.kl-body p{margin:0 0 20px;font-size:inherit;line-height:inherit;color:inherit}
.kl-body strong,.kl-body b{font-weight:500;color:var(--kl-fg)}
.kl-body a{color:var(--kl-fg);text-decoration:underline;text-decoration-color:var(--kl-ul);text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}
.kl-body ul,.kl-body ol{margin:0 0 28px;padding:0;list-style:none}
.kl-body li{position:relative;margin:0 0 12px;padding-left:24px}
.kl-body li::before{content:"–";position:absolute;left:0;top:0;color:var(--kl-idx)}
.kl-body li ul,.kl-body li ol{margin:12px 0 0}
.kl-body blockquote{margin:32px 0;padding:24px 28px;border:1px solid var(--kl-line);border-radius:16px;background:var(--kl-fill);font-size:13px;line-height:1.75;letter-spacing:.02em;color:var(--kl-body)}
.kl-body table{width:100%;margin:8px 0 40px;border-collapse:collapse;font-size:13px;line-height:1.6}
.kl-body th{padding:0 16px 12px 0;text-align:left;vertical-align:bottom;font-weight:500;color:var(--kl-fg);border-bottom:1px solid var(--kl-rule)}
.kl-body td{padding:14px 16px 14px 0;vertical-align:top;border-bottom:1px solid var(--kl-line)}
.kl-body th:last-child,.kl-body td:last-child{padding-right:0}
.kl-body td p{margin:0 0 6px}
.kl-body td p:last-child{margin:0}

/* phones and tablets: one column; the index lives behind a floating section pill, the certifications follow the text */
.kl-pill,.kl-sheet,.kl-scrim{display:none}
@media screen and (max-width:991px){
  .kl .kl-grid{grid-template-columns:minmax(0,1fr);row-gap:64px}
  .kl .kl-body{grid-column:1}
  .kl .kl-aside{grid-column:1;position:static}
  .kl .kl-toc{display:none}
  .kl{--kl-top:84px}
  .kl .kl-head{grid-template-columns:minmax(0,1fr)}
  .kl .kl-head>.kl-certs{grid-column:1;grid-row:auto;margin-top:28px}
  .kl-body table,.kl-body thead,.kl-body tbody,.kl-body tr,.kl-body td{display:block;width:100%}
  .kl-body table{font-size:14px}
  .kl-body thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .kl-body tr{padding:16px 0;border-bottom:1px solid var(--kl-line)}
  .kl-body tr:first-child{border-top:1px solid var(--kl-rule)}
  .kl-body td{padding:6px 0;border:0}
  .kl-body td[data-label]::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:12px;line-height:1.4;font-weight:500;color:var(--kl-meta)}
  .kl-body td:first-child::before{display:none}
  .kl-body td:first-child{color:var(--kl-fg)}

  .kl-pill{position:fixed;z-index:980;left:50%;top:calc(12px + env(safe-area-inset-top));display:flex;align-items:center;gap:10px;max-width:min(420px,calc(100% - 32px));height:48px;padding:0 16px 0 14px;border:1px solid var(--kl-line);border-radius:999px;background:var(--kl-pill);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);box-shadow:0 8px 32px rgba(0,0,0,.18);color:var(--kl-fg);font:inherit;font-size:14px;line-height:1;font-weight:500;cursor:pointer;opacity:0;pointer-events:none;transform:translate(-50%,-12px);transition:opacity .35s ease,transform .35s ease}
  .kl-pill.is-on{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
  .kl-pill-ring{flex:none;width:18px;height:18px;transform:rotate(-90deg)}
  .kl-pill-ring circle{fill:none;stroke-width:2}
  .kl-pill-ring .kl-ring-bg{stroke:var(--kl-line)}
  .kl-pill-ring .kl-ring-fg{stroke:var(--kl-fg);stroke-linecap:round;transition:stroke-dashoffset .2s linear}
  .kl-pill-text{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .kl-pill svg.kl-ico{flex:none;width:16px;height:16px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round;color:var(--kl-meta)}

  .kl-scrim{position:fixed;inset:0;z-index:2000;display:block;background:var(--kl-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .35s ease}
  .kl-sheet{position:fixed;z-index:2001;left:0;right:0;bottom:0;display:block;max-height:76vh;padding:20px 0 calc(16px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:var(--kl-sheet);box-shadow:0 -12px 40px rgba(0,0,0,.2);transform:translateY(calc(100% + 64px));transition:transform .45s cubic-bezier(.2,.8,.2,1)}
  .kl-sheet-list{max-height:calc(76vh - 40px);overflow:auto;scrollbar-width:none;padding:0 20px}
  .kl-sheet-list::-webkit-scrollbar{display:none}
  .kl-sheet-list a{display:flex;align-items:center;min-height:48px;padding:10px 0;border-bottom:1px solid var(--kl-line);font-size:15px;line-height:1.4;color:var(--kl-body);text-decoration:none}
  .kl-sheet-list a:last-child{border-bottom:0}
  .kl-sheet-list a[aria-current="true"]{color:var(--kl-fg);font-weight:500}
  .kl-close{position:absolute;right:16px;top:-52px;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px 0 12px;border:0;border-radius:999px;background:var(--kl-sheet);color:var(--kl-fg);font:inherit;font-size:14px;font-weight:500;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.16)}
  .kl-close svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round}
  html.kl-sheet-open{overflow:hidden}
  html.kl-sheet-open .kl-scrim{opacity:1;pointer-events:auto}
  html.kl-sheet-open .kl-sheet{transform:none}
  html.kl-sheet-open .kl-pill{opacity:0;pointer-events:none}
}
@media screen and (max-width:767px){
  .kl .kl-titlerow{flex-direction:column;align-items:flex-start}
  .kl .kl-divider{display:none}
  .kl .kl-logo{width:107px;height:50px;margin-bottom:28px}
  .kl-body h2{margin-top:72px;font-size:22px}
  .kl-body blockquote{padding:20px}
}
@media (prefers-reduced-motion:reduce){.kl *,.kl-pill,.kl-sheet,.kl-scrim{transition:none!important}}
/* v3.2 · Kai logo links to the Kai landing page */
.kl .kl-logo-link{display:flex;flex:none;border-radius:8px;transition:opacity .2s ease}
.kl .kl-logo-link:hover{opacity:.78}
.kl .kl-logo-link:focus-visible{outline:2px solid rgba(181,168,254,.8);outline-offset:6px}
