/* Kaplex product-site chrome (built from claude-out/kaplex-redesign/2026-10-02/site-chrome). Site tokens, the shared
   Kaplex footer (kore-os/kit/site-footer.css), then the product nav and the footer recolour. */
:root{--kxc-acc:#2BF08B;--kxc-rgb:43, 240, 139;--kxc-btn:#2BF08B;--kxc-btn-ink:#06110b;--kxc-radius:10px;--kxc-bg:#040b08;--kxc-bg2:#020604;--kxc-font:Geist, system-ui, sans-serif}
/* The Kaplex site footer, shared by the home (public/home-3d) and Kore (public/kore-3d). Self-contained: its own tokens. */
.ff{--f-ink:#effaf4;--f-dim:#a9bdb2;--f-mute:#6f887c;--f-em:#2bf08b;--f-line:rgba(225,240,232,.1);background:#020604;color:var(--f-ink);font-family:Geist,system-ui,sans-serif}
.ff .kx-wrap{max-width:1240px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}
.ff{position:relative;padding:clamp(150px,16vw,220px) 0 0;border-top:1px solid var(--f-line);overflow:hidden}
.ff-traces{position:absolute;left:0;right:0;top:0;width:100%;height:clamp(150px,16vw,220px);opacity:.75}
.ff-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:clamp(32px,4vw,64px)}
.ff-mark{display:inline-flex;align-items:center;gap:14px;text-decoration:none;color:var(--f-ink)}.ff-mark img{height:42px;width:auto}.ff-mark b{display:block;letter-spacing:.34em;font-weight:500;font-size:17px}.ff-mark i{display:block;font-style:normal;font:500 10px/1.6 'Geist Mono',monospace;letter-spacing:.36em;color:var(--f-em)}
.ff-brand p{margin:22px 0 0;font-size:15px;line-height:1.6;color:var(--f-dim);max-width:30ch}
.ff-brand address{margin:22px 0 0;font-style:normal;font-size:14px;line-height:1.7;color:var(--f-mute)}
.ff-h{margin:6px 0 18px;font:500 11px/1 'Geist Mono',monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--f-mute)}
.ff-col ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.ff-col a{display:inline-flex;align-items:center;gap:10px;color:var(--f-dim);text-decoration:none;font-size:15px;transition:color .3s}.ff-col a:focus-visible{outline:2px solid var(--f-em);outline-offset:3px;border-radius:4px}
.ff-col img{height:18px;width:auto}.ff-col .ff-kp{color:#fed7aa}
.ff-cta p{margin:0 0 20px;font-size:15px;line-height:1.6;color:var(--f-dim)}
.ff .ff-base{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px 32px;margin-top:clamp(88px,9vw,140px);padding-top:32px;padding-bottom:clamp(40px,5vw,64px);border-top:1px solid var(--f-line);font-size:13px;letter-spacing:.01em;color:var(--f-mute)}
.ff-loc{font:500 11px/1 'Geist Mono',monospace;letter-spacing:.22em;text-transform:uppercase}
/* the closing wordmark: oversized, outlined, half-sunk into the page edge */
.ff-word{position:relative;margin-top:clamp(8px,2vw,24px);height:clamp(44px,11vw,170px);overflow:hidden;text-align:center;font:600 clamp(64px,19vw,300px)/1 Geist,system-ui,sans-serif;letter-spacing:.04em;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(43,240,139,.22);user-select:none;padding-bottom:env(safe-area-inset-bottom,0px)}
@media (max-width:640px){.ff .ff-base{flex-direction:column;align-items:flex-start;gap:10px}}
@media (max-width:899px){.ff-grid{grid-template-columns:1fr 1fr}.ff-brand,.ff-cta{grid-column:1/-1}}
/* green buttons always carry dark ink (7:1 or better on #2BF08B); the footer link colour must never reach them */
.ff a.btn,.ff .btn{color:#06110b!important;font-weight:600;display:inline-flex;align-items:center;gap:10px;background:#2BF08B;padding:14px 22px;border-radius:10px;text-decoration:none;font-size:15px}
.ff .btn .kx-arr{width:14px;height:12px}

/* ---------- the product nav: Products menu (tap or click, never hover) and the phone menu, as on the main site ---------- */
.kxc-pm{position:relative}
.kxc-pb,.kxc-gb{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:inherit;font:inherit}
.kxc-pb svg,.kxc-gb svg{width:12px;height:12px;transition:transform .25s}
.kxc-pb[aria-expanded="true"] svg,.kxc-gb[aria-expanded="true"] svg{transform:rotate(180deg)}
.kxc-pb:focus-visible,.kxc-mb:focus-visible,.kxc-gb:focus-visible,.kxc-pp a:focus-visible,.kxc-mp a:focus-visible{outline:2px solid var(--kxc-acc);outline-offset:4px;border-radius:6px}
.kxc-pp{position:absolute;z-index:40;top:calc(100% + 18px);left:-22px;width:380px;padding:10px;border-radius:16px;text-align:left;color:#eef3f8;font-family:var(--kxc-font);
  background:linear-gradient(180deg,var(--kxc-bg),var(--kxc-bg2));
  box-shadow:0 0 0 1px rgba(var(--kxc-rgb),.2),0 30px 60px -20px rgba(0,0,0,.8),0 0 50px -20px rgba(var(--kxc-rgb),.3)}
.kxc-pp[hidden],.kxc-mp[hidden],#kxc-mprod[hidden]{display:none!important}
.kxc-h{margin:6px 12px 8px;font:500 11px/1 var(--kxc-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--kxc-acc)}
.kxc-pp ul,#kxc-mprod{list-style:none;margin:0;padding:0}
.kxc-pp li a,#kxc-mprod a{display:flex;align-items:center;gap:14px;padding:10px 12px;border-radius:10px;color:#eef3f8;text-decoration:none}
.kxc-pp li a:active,#kxc-mprod a:active{background:rgba(var(--kxc-rgb),.1)}
.kxc-pp li a[aria-current],#kxc-mprod a[aria-current]{background:rgba(var(--kxc-rgb),.08);box-shadow:inset 2px 0 0 var(--kxc-acc)}
.kxc-pp img,#kxc-mprod img{width:34px;height:34px;object-fit:contain;flex:none}
.kxc-pp span,#kxc-mprod span{display:flex;flex-direction:column;gap:3px;line-height:1.25}
.kxc-pp b,#kxc-mprod b{font-weight:600;font-size:15px;letter-spacing:0}.kxc-pp i,#kxc-mprod i{font-style:normal;font-size:13px;letter-spacing:0;color:rgba(232,240,248,.66)}
.kxc-pp .kxc-kap{display:flex;flex-wrap:wrap;gap:6px 18px;margin:8px 0 0;padding:12px 12px 6px;border-top:1px solid rgba(255,255,255,.08);font-size:13.5px}
.kxc-pp .kxc-kap a{color:rgba(232,240,248,.72);text-decoration:none}
.kxc-mb,.kxc-mp{display:none}
@media (max-width:1000px){
  .nav.kxc .links{display:none}.nav.kxc .btn.sm{margin-left:auto}
  .kxc-mb{all:unset;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:40px;height:40px;margin-left:2px;flex:none;color:inherit}
  .kxc-mb i{display:block;width:20px;height:1.6px;background:currentColor;border-radius:2px;transition:transform .25s}
  .kxc-mb[aria-expanded="true"] i:first-child{transform:translateY(3.8px) rotate(45deg)}.kxc-mb[aria-expanded="true"] i:last-child{transform:translateY(-3.8px) rotate(-45deg)}
  .kxc-mp{display:block;position:fixed;z-index:60;left:0;right:0;top:var(--kxc-top,64px);bottom:0;background:linear-gradient(180deg,var(--kxc-bg),var(--kxc-bg2));border-top:1px solid rgba(var(--kxc-rgb),.18);
    overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;color:#eef3f8;font-family:var(--kxc-font);text-align:left}
  .kxc-in{display:flex;flex-direction:column;padding:12px 16px calc(40px + env(safe-area-inset-bottom,0px))}
  .kxc-in > a.kxc-l,.kxc-gb{padding:16px 4px;font-size:19px;font-weight:500;letter-spacing:0;border-bottom:1px solid rgba(255,255,255,.08);color:#eef3f8;text-decoration:none}
  .kxc-gb{display:flex;justify-content:space-between;width:100%;box-sizing:border-box}
  .kxc-g{display:flex;flex-direction:column}
  #kxc-mprod{padding:6px 0 10px;border-bottom:1px solid rgba(255,255,255,.08)}
  .kxc-kh{margin:26px 4px 4px}
  .kxc-in .kxc-kap{display:flex;flex-wrap:wrap;gap:4px 22px;padding:0 4px}
  .kxc-in .kxc-kap a{display:inline-flex;align-items:center;min-height:44px;font-size:16px;color:rgba(232,240,248,.78);text-decoration:none}
  .kxc-in .btn.kxc-cta{margin-top:22px;width:100%;box-sizing:border-box;min-height:50px}
  html.kxc-open,html.kxc-open body{overflow:hidden!important}
}
/* the nav keeps the site's button on a narrow phone: the brand line under the name gives way first */
@media (max-width:389px){.nav.kxc .brand i{display:none}.nav.kxc{gap:10px}}

/* ---------- the footer: the shared Kaplex footer, recoloured with the site's accent ---------- */
.ff.kxf{--f-ink:#eef3f8;--f-dim:rgba(226,236,246,.74);--f-mute:rgba(214,226,238,.52);--f-em:var(--kxc-acc);--f-line:rgba(226,236,246,.1);
  background:linear-gradient(180deg,var(--kxc-bg),var(--kxc-bg2));font-family:var(--kxc-font);font-size:16px;line-height:1.5;text-align:left;z-index:1;margin:0}
.ff.kxf .ff-mark img{height:42px;width:auto}
.ff.kxf .ff-mark b{font-family:inherit}
.ff.kxf address a{color:var(--f-dim);text-decoration:none}
.ff.kxf .ff-col a[aria-current]{color:var(--f-ink)}
.ff.kxf .ff-col img{width:18px;height:18px;object-fit:contain}
.ff.kxf .ff-col .ff-kp{color:#fed7aa}
.ff.kxf .ff-note{margin:clamp(48px,6vw,80px) auto 0;font-size:13px;line-height:1.6;color:var(--f-mute)}
.ff.kxf .ff-note + .ff-base{margin-top:28px}
.ff.kxf .ff-word{-webkit-text-stroke:1px rgba(var(--kxc-rgb),.24)}
.ff.kxf a.btn,.ff.kxf .btn{background:var(--kxc-btn);color:var(--kxc-btn-ink)!important;border-radius:var(--kxc-radius);box-shadow:0 10px 30px -12px rgba(var(--kxc-rgb),.55);display:inline-flex;align-items:center;gap:10px;padding:14px 22px;font-size:15px;font-weight:600;text-decoration:none}
.ff.kxf .kxc-arr{width:14px;height:12px;flex:none}
.ff.kxf .ff-h{margin:6px 0 18px;font:500 11px/1 var(--kxc-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--f-mute)}
/* the label face: Geist Mono where the site loads it, otherwise a system mono (never a serif fallback) */
:root{--kxc-mono:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace}
.ff.kxf .ff-mark i,.ff.kxf .ff-loc{font-family:var(--kxc-mono)}
/* the menu panel never inherits a nav's label styling (uppercase mono links on some pages) */
.kxc-pp{text-transform:none;letter-spacing:normal;font-size:16px;line-height:1.4;white-space:normal}
.nav.kxc .btn.sm,.kxc-in .btn.kxc-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--kxc-btn);color:var(--kxc-btn-ink);font:600 13.5px/1 var(--kxc-font);letter-spacing:0;text-transform:none;padding:11px 18px;border-radius:var(--kxc-radius);text-decoration:none}.nav.kxc .btn.sm{margin-left:26px}.kxc-in .btn.kxc-cta{font-size:16px}@media (max-width:1000px){.nav.kxc .btn.sm{margin-left:auto;padding:9px 14px;font-size:13px}}
