/* ==========================================================================
   KLM — Liquid Glass system, ground-up build.
   Design language: near-black canvas, oversized quiet type, glass panes
   that catch light like real refractive material, huge negative space.
   ========================================================================== */

:root{
  --ink:        #050506;
  --ink-2:      #0c0c0f;
  --paper:      #f6f6f8;
  --white:      #ffffff;
  --dim:        rgba(246,246,248,.62);
  --faint:      rgba(246,246,248,.38);
  --line:       rgba(246,246,248,.09);

  --prism-1:    #7cc9ff;
  --prism-2:    #b98cff;
  --prism-3:    #7cffd8;
  --spectrum:   linear-gradient(100deg, var(--prism-1), var(--prism-2) 55%, var(--prism-3));

  --glass-fill:   rgba(255,255,255,.055);
  --glass-edge:   rgba(255,255,255,.16);
  --glass-edge-b: rgba(255,255,255,.04);
  --glass-rim:    rgba(255,255,255,.65);

  --r-xs: 14px;
  --r-sm: 20px;
  --r-md: 30px;
  --r-lg: 44px;
  --r-pill: 999px;

  --max: 1180px;
  --pad: clamp(22px, 5vw, 56px);
  --gap-xl: clamp(56px, 6.5vw, 108px);

  --ease: cubic-bezier(.19,1,.22,1);
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", Inter, "Segoe UI", sans-serif;
}

/* --------------------------------------------------------------------------
   LIGHT THEME — toggled via [data-theme="light"] on <html>
   -------------------------------------------------------------------------- */
html[data-theme="light"]{
  --ink:        #f3f3f5;
  --ink-2:      #ffffff;
  --paper:      #0c0c0e;
  --white:      #050506;
  --dim:        rgba(12,12,14,.66);
  --faint:      rgba(12,12,14,.44);
  --line:       rgba(12,12,14,.10);

  --glass-fill:   rgba(12,12,14,.04);
  --glass-edge:   rgba(12,12,14,.12);
  --glass-edge-b: rgba(12,12,14,.08);
  --glass-rim:    rgba(255,255,255,.75);
}
html[data-theme="light"] .lg-field{ background:var(--ink); }
html[data-theme="light"] .lg-field i{ opacity:.7; }
html[data-theme="light"] .btn-solid{ box-shadow:0 10px 30px rgba(0,0,0,.12); }
html[data-theme="light"] .btn-solid:hover{ box-shadow:0 14px 40px rgba(12,12,14,.16); }
html[data-theme="light"] .pane{ box-shadow:inset 0 0 0 1px rgba(12,12,14,.05), inset 0 1px 0 var(--glass-rim), 0 20px 50px rgba(12,12,14,.08); }
html[data-theme="light"] .topbar{ background:rgba(243,243,245,.55); }
html[data-theme="light"] .topbar.condensed{ background:rgba(243,243,245,.85); }
html[data-theme="light"] .chat-fab,
html[data-theme="light"] .chat-win{ background:rgba(255,255,255,.75); }
html[data-theme="light"] .price.hi{ border-color:rgba(10,110,220,.3); }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--font);
  font-size:18px;
  line-height:1.55;
  letter-spacing:-0.011em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .4s ease, color .4s ease;
}
::selection{ background:rgba(124,201,255,.32); color:#fff; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
p{ margin:0 0 1em; color:var(--dim); max-width:62ch; }
:focus-visible{ outline:2px solid var(--prism-1); outline-offset:3px; border-radius:6px; }

h1,h2,h3,h4{ margin:0; font-family:var(--font); font-weight:600; letter-spacing:-0.03em; line-height:1.05; }
h1{ font-size:clamp(2.6rem, 7vw, 6.4rem); font-weight:650; letter-spacing:-0.045em; line-height:.98; }
h2{ font-size:clamp(2rem, 4.4vw, 3.6rem); letter-spacing:-0.035em; }
h3{ font-size:1.3rem; font-weight:600; }

.wrap{ max-width:var(--max); margin:0 auto; padding:0 var(--pad); }
.grad{ background:var(--spectrum); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* --------------------------------------------------------------------------
   AMBIENT LIGHT — a couple of very soft, low-saturation glows. No grain,
   no scattered colour blobs everywhere; light comes from one place at a time.
   -------------------------------------------------------------------------- */
.lg-field{ position:fixed; inset:0; z-index:-2; overflow:hidden; pointer-events:none; background:var(--ink); }
.lg-field i{
  position:absolute; border-radius:50%; filter:blur(150px);
  animation:driftSlow 40s ease-in-out infinite alternate;
}
.lg-field .g1{ width:60vw; height:60vw; top:-30%; left:-10%; background:radial-gradient(circle, rgba(124,201,255,.10), transparent 70%); }
.lg-field .g2{ width:50vw; height:50vw; bottom:-25%; right:-10%; background:radial-gradient(circle, rgba(185,140,255,.08), transparent 70%); animation-delay:-14s; animation-duration:48s; }
@keyframes driftSlow{ to{ transform:translate3d(4%,3%,0) scale(1.1); } }

/* --------------------------------------------------------------------------
   GLASS PRIMITIVE — real refraction: thin bright rim, soft body, one
   moving highlight that responds to the cursor.
   -------------------------------------------------------------------------- */
.pane{
  position:relative;
  background:var(--glass-fill);
  border:1px solid var(--glass-edge-b);
  border-radius:var(--r-md);
  backdrop-filter:blur(34px) saturate(160%);
  -webkit-backdrop-filter:blur(34px) saturate(160%);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.05),
    inset 0 1px 0 var(--glass-rim),
    0 30px 80px rgba(0,0,0,.45);
  overflow:hidden;
}
.pane::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    linear-gradient(115deg, rgba(255,255,255,.10) 0%, transparent 30%),
    radial-gradient(120% 60% at 8% -10%, rgba(255,255,255,.12), transparent 55%);
}
.pane::after{
  content:""; position:absolute; left:0; right:0; top:0; height:1px; z-index:1;
  background:linear-gradient(90deg, transparent, var(--prism-1) 20%, var(--prism-2) 50%, var(--prism-3) 80%, transparent);
  opacity:.35;
}
.pane > *{ position:relative; z-index:2; }
.pane{ transition:transform .5s var(--ease), border-color .4s ease, box-shadow .5s ease; }
.pane:hover{ transform:translateY(-4px); border-color:var(--glass-edge); }
.glow{
  position:absolute; inset:0; z-index:1; pointer-events:none; opacity:0;
  transition:opacity .5s ease;
  background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,.14), transparent 60%);
}
.pane:hover > .glow{ opacity:1; }

/* --------------------------------------------------------------------------
   TOPBAR — thin full-width glass strip, not a floating pill.
   -------------------------------------------------------------------------- */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--pad);
  background:rgba(5,5,6,.32);
  border-bottom:1px solid var(--glass-edge-b);
  backdrop-filter:blur(22px) saturate(160%);
  -webkit-backdrop-filter:blur(22px) saturate(160%);
  transition:background .4s ease, padding .4s ease, border-color .4s ease;
}
.topbar.condensed{ padding:12px var(--pad); background:rgba(5,5,6,.6); border-color:var(--glass-edge-b); }
.topbar .mark{ font-size:1.02rem; font-weight:650; letter-spacing:-0.02em; display:flex; align-items:center; gap:9px; }
.topbar .mark i{ width:7px; height:7px; border-radius:50%; background:var(--spectrum); display:block; }
.topbar nav{ display:flex; align-items:center; gap:2px; }
.topbar nav a{
  font-size:.9rem; color:var(--dim); padding:9px 15px; border-radius:var(--r-pill);
  transition:color .25s, background .25s;
}
.topbar nav a:hover,
.topbar nav a.on{ color:var(--paper); background:rgba(255,255,255,.07); }
.topbar .cta{
  font-size:.88rem; font-weight:600; padding:10px 20px; border-radius:var(--r-pill);
  background:var(--paper); color:var(--ink);
  transition:transform .3s var(--ease), box-shadow .3s ease;
}
.topbar .cta:hover{ transform:scale(1.04); box-shadow:0 8px 28px rgba(255,255,255,.18); }
.theme-toggle{
  display:flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:50%; flex:none;
  background:var(--glass-fill); border:1px solid var(--glass-edge-b);
  color:var(--paper); cursor:pointer; margin-left:8px;
  transition:transform .35s var(--ease), background .3s ease;
}
.theme-toggle:hover{ transform:rotate(16deg); background:rgba(255,255,255,.1); }
.theme-toggle svg{ width:16px; height:16px; }
.theme-toggle .moon{ display:none; }
html[data-theme="light"] .theme-toggle .sun{ display:none; }
html[data-theme="light"] .theme-toggle .moon{ display:block; }
.burger{ display:none; }

@media (max-width:860px){
  .topbar nav{
    position:fixed; inset:64px 14px auto 14px; z-index:190;
    flex-direction:column; align-items:stretch; gap:2px; padding:10px;
    border-radius:var(--r-md);
    background:rgba(10,10,13,.85);
    border:1px solid var(--glass-edge-b);
    backdrop-filter:blur(30px) saturate(170%);
    opacity:0; transform:translateY(-10px); pointer-events:none;
    transition:opacity .25s ease, transform .3s var(--ease);
  }
  .topbar nav.open{ opacity:1; transform:none; pointer-events:auto; }
  .topbar nav a{ padding:14px 16px; font-size:1rem; }
  .burger{
    display:flex; align-items:center; justify-content:center;
    width:36px; height:36px; border-radius:50%;
    background:rgba(255,255,255,.06); border:1px solid var(--glass-edge-b);
    color:var(--paper); cursor:pointer;
  }
}

/* --------------------------------------------------------------------------
   HERO — one huge idea, minimal chrome
   -------------------------------------------------------------------------- */
.hero{
  min-height:88svh;
  display:flex; flex-direction:column; justify-content:center;
  padding:calc(var(--gap-xl) + 40px) var(--pad) calc(var(--gap-xl) * .6);
  position:relative;
}
.hero .chip{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.82rem; font-weight:500; color:var(--dim);
  padding:8px 16px; border-radius:var(--r-pill);
  background:var(--glass-fill); border:1px solid var(--glass-edge-b);
  backdrop-filter:blur(20px);
  width:fit-content; margin-bottom:22px;
}
.hero .chip i{ width:6px; height:6px; border-radius:50%; background:var(--prism-1); }
.hero h1{ max-width:16ch; }
.hero .lede{ font-size:clamp(1.08rem,1.7vw,1.35rem); max-width:52ch; margin:20px 0 0; color:var(--dim); }
.hero .row{ display:flex; gap:14px; flex-wrap:wrap; margin-top:30px; }

.btn{
  display:inline-flex; align-items:center; gap:9px;
  padding:16px 28px; border-radius:var(--r-pill);
  font-size:.95rem; font-weight:600; letter-spacing:-0.01em;
  border:1px solid transparent; cursor:pointer;
  transition:transform .35s var(--ease), box-shadow .3s ease, background .3s ease, border-color .3s ease;
}
.btn-solid{ background:var(--paper); color:var(--ink); }
.btn-solid:hover{ transform:translateY(-2px); box-shadow:0 14px 40px rgba(255,255,255,.16); }
.btn-line{ background:var(--glass-fill); border-color:var(--glass-edge-b); color:var(--paper); backdrop-filter:blur(20px); }
.btn-line:hover{ transform:translateY(-2px); border-color:var(--prism-1); background:rgba(255,255,255,.09); }
.btn-block{ width:100%; justify-content:center; }

/* --------------------------------------------------------------------------
   RHYTHM / SECTIONS
   -------------------------------------------------------------------------- */
.block{ padding:calc(var(--gap-xl) * .6) 0; position:relative; }
.block-tight{ padding:calc(var(--gap-xl) * .32) 0; }
.kicker{
  display:flex; align-items:center; gap:10px;
  font-size:.82rem; font-weight:600; color:var(--prism-1); margin-bottom:14px;
}
.kicker::before{ content:""; width:20px; height:1px; background:var(--spectrum); }
.head{ max-width:46ch; margin-bottom:clamp(28px,3.4vw,44px); }
.head p{ font-size:1.08rem; max-width:56ch; margin-top:12px; }
.head.center{ margin-inline:auto; text-align:center; }
.head.center p{ margin-inline:auto; }

.reveal{ opacity:0; transform:translateY(30px); filter:blur(6px); transition:opacity .9s var(--ease), transform .9s var(--ease), filter .9s var(--ease); }
.reveal.in{ opacity:1; transform:none; filter:none; }
.stagger > *{ transition-delay:calc(var(--i,0) * 100ms); }

/* quiet statement between blocks */
.statement{
  text-align:center; font-weight:550; letter-spacing:-0.025em;
  font-size:clamp(1.5rem,3vw,2.3rem); line-height:1.35;
  max-width:24ch; margin:0 auto; color:var(--faint);
}
.statement b{ color:var(--paper); font-weight:600; }

/* --------------------------------------------------------------------------
   PROOF — a drifting marquee of plain glass tiles, not a static grid
   -------------------------------------------------------------------------- */
.marquee{ overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marquee-track{ display:flex; gap:16px; width:max-content; animation:scroll 34s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }
@keyframes scroll{ to{ transform:translateX(-50%); } }
.tile{
  flex:none; width:min(320px,78vw); padding:26px 28px;
}
.tile .kind{ font-size:.74rem; color:var(--prism-1); font-weight:600; margin-bottom:10px; display:block; }
.tile .name{ font-size:1.1rem; font-weight:650; letter-spacing:-0.015em; margin-bottom:8px; }
.tile p{ font-size:.9rem; margin:0; }

/* --------------------------------------------------------------------------
   SERVICE ROWS — stacked, numbered, alternating; not a card grid
   -------------------------------------------------------------------------- */
.service-row{
  display:grid; grid-template-columns:80px 1fr 1fr; gap:clamp(20px,3vw,40px);
  padding:clamp(24px,2.6vw,34px) 0; border-top:1px solid var(--line);
  align-items:start;
}
.service-row:last-child{ border-bottom:1px solid var(--line); }
.service-row .idx{ font-size:.95rem; color:var(--faint); font-weight:600; padding-top:6px; }
.service-row .lead-col h3{ font-size:clamp(1.5rem,2.4vw,2rem); margin-bottom:14px; }
.service-row .lead-col p{ font-size:1.02rem; }
.service-row .pane{ padding:26px 28px; }
.service-row .pane h4{ font-size:.85rem; font-weight:650; color:var(--faint); text-transform:uppercase; letter-spacing:.05em; margin-bottom:14px; }
.service-row ul{ list-style:none; margin:0; padding:0; }
.service-row li{ font-size:.92rem; color:var(--dim); padding:9px 0 9px 20px; position:relative; border-top:1px solid var(--line); }
.service-row li:first-child{ border-top:none; }
.service-row li::before{ content:""; position:absolute; left:2px; top:1.15em; width:5px; height:5px; border-radius:50%; background:var(--spectrum); }
@media (max-width:900px){ .service-row{ grid-template-columns:1fr; } .service-row .idx{ padding-top:0; } }

/* --------------------------------------------------------------------------
   STAT ROW — inline, translucent, no boxes
   -------------------------------------------------------------------------- */
.stat-strip{ display:flex; flex-wrap:wrap; gap:clamp(30px,6vw,80px); padding:clamp(26px,3vw,40px) 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.stat{ min-width:120px; }
.stat b{ display:block; font-size:clamp(2.1rem,4vw,3rem); font-weight:650; letter-spacing:-0.04em; background:var(--spectrum); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat span{ font-size:.86rem; color:var(--faint); display:block; margin-top:6px; max-width:18ch; }

/* --------------------------------------------------------------------------
   PERSONAL PANEL
   -------------------------------------------------------------------------- */
.person{ display:grid; grid-template-columns:auto 1fr; gap:clamp(28px,4vw,48px); align-items:start; padding:clamp(40px,5vw,64px); }
@media (max-width:760px){ .person{ grid-template-columns:1fr; } }
.avatar{
  width:104px; height:104px; border-radius:32px;
  background:linear-gradient(155deg, rgba(124,201,255,.22), rgba(255,255,255,.03));
  border:1px solid var(--glass-edge-b);
  display:flex; align-items:center; justify-content:center;
  font-size:1.8rem; font-weight:650;
}
.person .sig{ margin-top:18px; font-size:1rem; color:var(--prism-1); font-style:italic; display:inline-block; }

/* --------------------------------------------------------------------------
   PRICING — flat panels, subtle featured ring instead of a badge glow
   -------------------------------------------------------------------------- */
.price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; align-items:stretch; }
@media (max-width:940px){ .price-grid{ grid-template-columns:1fr; } }
.price{ padding:clamp(30px,3vw,40px) clamp(24px,2.6vw,30px); display:flex; flex-direction:column; }
.price.hi{ border-color:rgba(124,201,255,.3); }
.price .tag{ font-size:.68rem; font-weight:650; letter-spacing:.08em; text-transform:uppercase; color:var(--prism-1); margin-bottom:16px; }
.price .name{ font-size:1.02rem; font-weight:600; margin-bottom:8px; }
.price .num{ font-size:clamp(2.1rem,3.6vw,2.7rem); font-weight:650; letter-spacing:-0.04em; }
.price .num small{ font-size:.8rem; font-weight:500; color:var(--faint); }
.price .note{ font-size:.85rem; color:var(--faint); margin:10px 0 26px; }
.price ul{ list-style:none; margin:0 0 28px; padding:0; flex-grow:1; }
.price li{ font-size:.9rem; color:var(--dim); padding:10px 0 10px 20px; position:relative; border-top:1px solid var(--line); }
.price li:first-child{ border-top:none; }
.price li::before{ content:""; position:absolute; left:2px; top:1.25em; width:5px; height:5px; border-radius:50%; background:var(--spectrum); }
.price-note{ text-align:center; color:var(--faint); font-size:.88rem; max-width:60ch; margin:36px auto 0; }

/* --------------------------------------------------------------------------
   PROCESS — thin vertical line, not boxed steps
   -------------------------------------------------------------------------- */
.steps{ display:flex; flex-direction:column; }
.step{ display:grid; grid-template-columns:56px 1fr; gap:22px; padding:28px 0; border-top:1px solid var(--line); }
.step:first-child{ border-top:none; }
.step .n{ font-size:.85rem; font-weight:650; color:var(--prism-1); }
.step h4{ margin-bottom:6px; }
.step p{ font-size:.94rem; margin:0; }

/* --------------------------------------------------------------------------
   FIT
   -------------------------------------------------------------------------- */
.fit-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:780px){ .fit-grid{ grid-template-columns:1fr; } }
.fit{ padding:clamp(26px,3vw,34px); }
.fit h3{ margin-bottom:16px; font-size:1.05rem; }
.fit ul{ list-style:none; margin:0; padding:0; }
.fit li{ font-size:.94rem; color:var(--dim); padding:12px 0 12px 26px; position:relative; border-top:1px solid var(--line); }
.fit li:first-child{ border-top:none; }
.fit.yes li::before{ content:"+"; position:absolute; left:2px; color:var(--prism-1); font-weight:700; }
.fit.no li::before{ content:"–"; position:absolute; left:2px; color:var(--faint); font-weight:700; }
.fit.no{ opacity:.75; }

/* --------------------------------------------------------------------------
   FAQ
   -------------------------------------------------------------------------- */
.faq-list{ max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:10px; }
.faq{ padding:2px 26px; }
.faq summary{
  list-style:none; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; gap:18px;
  padding:22px 0; font-weight:600; font-size:1rem;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:""; flex:none; width:12px; height:12px;
  background:linear-gradient(var(--prism-1),var(--prism-1)) center/12px 1.6px no-repeat,
             linear-gradient(var(--prism-1),var(--prism-1)) center/1.6px 12px no-repeat;
  transition:transform .3s var(--ease);
}
.faq[open] summary::after{ transform:rotate(135deg); }
.faq p{ padding-bottom:22px; margin:0; font-size:.95rem; }

/* --------------------------------------------------------------------------
   CTA PANEL / FORM
   -------------------------------------------------------------------------- */
.cta-block{ text-align:center; padding:clamp(56px,8vw,100px) clamp(26px,4vw,50px); }
.cta-block h2{ max-width:16ch; margin-inline:auto; }
.cta-block p{ max-width:46ch; margin:18px auto 34px; }

.form-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:18px; align-items:start; }
@media (max-width:900px){ .form-grid{ grid-template-columns:1fr; } }
.form-pane{ padding:clamp(28px,3vw,38px); }
form{ display:flex; flex-direction:column; gap:16px; }
.f{ display:flex; flex-direction:column; gap:7px; }
.f label{ font-size:.84rem; font-weight:600; color:var(--dim); }
.f input,.f select,.f textarea{
  background:rgba(255,255,255,.045); border:1px solid var(--glass-edge-b);
  border-radius:var(--r-xs); padding:14px 16px; color:var(--paper);
  font-family:inherit; font-size:.95rem; outline:none;
  transition:border-color .3s, background .3s, box-shadow .3s;
}
.f input::placeholder,.f textarea::placeholder{ color:rgba(246,246,248,.3); }
.f input:focus,.f select:focus,.f textarea:focus{ border-color:var(--prism-1); background:rgba(255,255,255,.07); box-shadow:0 0 0 4px rgba(124,201,255,.1); }
.f select{ appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%237cc9ff' stroke-width='2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; padding-right:40px;
}
.f select option{ background:#101014; }
.f textarea{ resize:vertical; min-height:130px; }
#status{ font-size:.88rem; min-height:20px; margin:0; }
#status.ok{ color:var(--prism-1); }
.info-pane{ padding:clamp(24px,3vw,30px); margin-bottom:16px; }
.info-pane h4{ margin-bottom:14px; font-size:1rem; }
.info-line{ display:flex; justify-content:space-between; gap:14px; padding:12px 0; border-top:1px solid var(--line); font-size:.9rem; }
.info-line:first-of-type{ border-top:none; }
.info-line span:first-child{ color:var(--faint); }
.info-line a{ color:var(--paper); border-bottom:1px solid rgba(124,201,255,.4); }

/* --------------------------------------------------------------------------
   MARKETS strip
   -------------------------------------------------------------------------- */
.chips{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.chips a{
  font-size:.85rem; color:var(--dim); padding:9px 16px; border-radius:var(--r-pill);
  background:var(--glass-fill); border:1px solid var(--glass-edge-b);
  transition:transform .3s var(--ease), color .3s, border-color .3s;
}
.chips a:hover{ transform:translateY(-2px); color:var(--paper); border-color:var(--prism-1); }

/* --------------------------------------------------------------------------
   CAPABILITY CLOUD
   -------------------------------------------------------------------------- */
.cloud{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; max-width:920px; margin:0 auto; }
.cloud span{
  font-size:.85rem; color:var(--dim); padding:9px 16px; border-radius:var(--r-pill);
  background:var(--glass-fill); border:1px solid var(--glass-edge-b);
  transition:transform .3s var(--ease), color .3s, border-color .3s;
}
.cloud span:hover{ transform:translateY(-2px); color:var(--paper); border-color:var(--prism-2); }

/* --------------------------------------------------------------------------
   FOOTER — one quiet row
   -------------------------------------------------------------------------- */
footer{ padding:70px 0 40px; border-top:1px solid var(--line); }
.foot-top{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:40px; margin-bottom:44px; }
.foot-cols{ display:flex; gap:clamp(32px,5vw,64px); flex-wrap:wrap; }
.foot-col h5{ font-size:.78rem; font-weight:650; color:var(--faint); margin:0 0 14px; }
.foot-col a{ display:block; font-size:.88rem; color:var(--dim); margin-bottom:9px; transition:color .25s; }
.foot-col a:hover{ color:var(--paper); }
.foot-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.8rem; color:var(--faint); padding-top:22px; border-top:1px solid var(--line); }

/* --------------------------------------------------------------------------
   CHAT
   -------------------------------------------------------------------------- */
.chat-fab{
  position:fixed; bottom:22px; right:22px; z-index:300;
  width:54px; height:54px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  background:rgba(18,18,22,.55); border:1px solid var(--glass-edge-b);
  backdrop-filter:blur(24px) saturate(170%);
  box-shadow:inset 0 1px 0 var(--glass-rim), 0 14px 38px rgba(0,0,0,.5);
  transition:transform .3s var(--ease);
}
.chat-fab:hover{ transform:scale(1.06); }
.chat-fab svg{ width:20px; height:20px; }
.chat-fab .ping{ position:absolute; top:1px; right:1px; width:12px; height:12px; border-radius:50%; background:var(--prism-1); border:2px solid var(--ink); }
.chat-win{
  position:fixed; bottom:88px; right:22px; z-index:300;
  width:min(340px, calc(100vw - 32px)); border-radius:26px;
  background:rgba(14,14,18,.78); border:1px solid var(--glass-edge-b);
  backdrop-filter:blur(30px) saturate(170%);
  box-shadow:inset 0 1px 0 var(--glass-rim), 0 30px 90px rgba(0,0,0,.6);
  overflow:hidden; opacity:0; transform:translateY(14px) scale(.97); pointer-events:none;
  transition:opacity .3s ease, transform .4s var(--ease);
}
.chat-win.open{ opacity:1; transform:none; pointer-events:auto; }
.chat-head{ display:flex; align-items:center; gap:11px; padding:14px 16px; border-bottom:1px solid var(--line); }
.chat-head .av{ width:34px; height:34px; border-radius:11px; background:linear-gradient(155deg, rgba(124,201,255,.24), rgba(255,255,255,.04)); display:flex; align-items:center; justify-content:center; font-size:.78rem; font-weight:650; }
.chat-head b{ display:block; font-size:.9rem; }
.chat-head span{ font-size:.74rem; color:var(--faint); }
.chat-close{ margin-left:auto; background:none; border:none; color:var(--faint); font-size:1rem; cursor:pointer; }
.chat-body{ padding:14px 16px; display:flex; flex-direction:column; gap:8px; max-height:260px; overflow-y:auto; }
.bub{ max-width:85%; padding:10px 13px; border-radius:15px; font-size:.86rem; line-height:1.4; }
.bub.w{ background:rgba(255,255,255,.07); border-bottom-left-radius:5px; align-self:flex-start; }
.bub.u{ background:var(--prism-1); color:#04121e; font-weight:500; border-bottom-right-radius:5px; align-self:flex-end; }
.chat-in{ display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--line); }
.chat-in input{ flex:1; min-width:0; background:rgba(255,255,255,.05); border:1px solid var(--glass-edge-b); border-radius:var(--r-pill); padding:10px 14px; color:var(--paper); font-family:inherit; font-size:.86rem; outline:none; }
.chat-in button{ border:none; border-radius:var(--r-pill); background:var(--paper); color:var(--ink); font-weight:650; font-size:.82rem; padding:0 16px; cursor:pointer; }

/* --------------------------------------------------------------------------
   REDUCED MOTION / PRINT
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; filter:none; }
}
@media print{
  .topbar,.chat-fab,.chat-win,.lg-field{ display:none !important; }
  body{ background:#fff; color:#000; }
  .pane{ border:1px solid #ccc; box-shadow:none; background:none; backdrop-filter:none; }
}
