/* Generated by tools/build-site.py. Studio pages: layout on top of kb.css / site.css. */
body{overflow-wrap:break-word}
.sitebar-in{max-width:1180px}
.sitetabs{flex-wrap:wrap}
.sitetabs a{display:inline-flex;align-items:center;min-height:44px;padding:0 15px;white-space:nowrap}
.sitetabs a.contact{color:var(--surface);background:var(--rose)}
.flinks{display:flex;gap:4px 18px;flex-wrap:wrap}
.flinks a{display:inline-flex;align-items:center;min-height:44px}
.btn{min-height:44px}
.btn.small{font-size:15px;padding:12px 18px;align-self:flex-start;min-height:44px}
.ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
@media (max-width:1080px){
  .sitebar{position:static}
  .sitebar-in{height:auto;flex-wrap:wrap;padding-top:10px;padding-bottom:10px;justify-content:center}
  .logo{width:100%;justify-content:center}
  .sitetabs{justify-content:center;width:100%;border-radius:26px}
  .sitetabs a{padding:0 12px;font-size:14.5px}
}
@media (max-width:420px){.logo small{display:block}.sitetabs a{padding:0 11px;font-size:14px}}
.sitetabs a.lib{color:var(--sea);border:1.5px solid var(--sea);background:var(--sea-soft);padding:0 13px;font-weight:600}
.sitetabs a.lib:hover{color:var(--ink);border-color:var(--ink)}
.sitetabs a.contact{margin-left:2px}
.btn.lib-cta{border-color:var(--sea);color:var(--sea)}
.libband{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;background:var(--sea-soft);border:1.5px solid var(--sea);border-radius:28px;padding:36px 40px}
.libband h2{font-size:clamp(28px,3.6vw,40px);margin:6px 0 8px}
.libband p:not(.eyebrow){color:var(--ink);max-width:52ch}
.libnote .liblink{display:inline-flex;align-items:center;min-height:44px;color:var(--sea);font-weight:600}
.split>.in>.splitcard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);column-gap:56px;row-gap:8px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:40px 44px}
.splitcard .head{display:contents}
.splitcard .eyebrow{grid-column:1;grid-row:1;align-self:end}
.splitcard h2{grid-column:1;grid-row:2;align-self:start}
.splitcard .head p:not(.eyebrow){grid-column:2;grid-row:1/span 2;font-size:18px}
.splitcard .head h2:first-child{grid-row:1/span 2;align-self:center}
.splitcard .ctas{grid-column:2;margin-top:8px}
.stack.two{aspect-ratio:1/.8}
.stack.two .w1{top:0;left:0}
.stack.two .w2{top:auto;bottom:0;right:0}
.stack.two .win{width:68%}
.soloart{display:flex;justify-content:center}
.soloart .win{width:min(100%,460px);transform:rotate(2deg)}
.glance,.kitecard{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:26px 28px}
.glance ul{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column}
.glance li{display:flex;flex-direction:column;gap:2px;padding:12px 0;border-top:1px solid var(--line)}
.glance li b{font:600 18px var(--f-display);color:var(--ink)}
.glance li span{color:var(--muted);font-size:15.5px}
.kitecard{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
.kite-art svg{width:150px;height:auto;display:block}
.kitecard p{color:var(--muted);max-width:36ch}
.kitecard b{color:var(--ink)}
.storygrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:48px;align-items:start}
.storygrid .prose{max-width:none}
.aboutmap .bmap .lbl text{font-size:20px}
.mapcap{font-size:15px;color:var(--muted);padding:4px 4px 10px}
.partners .wcard.static{padding-bottom:22px}
.partners{align-items:start}
.partners .wcard.plain{background:transparent;border-style:dashed}
.partners .wcard h3{font-size:26px}
.partners .wcard>p{font-size:16.5px}
.phero{padding:56px 0 8px}
.phero h1{font-size:clamp(36px,5.2vw,60px);margin-top:14px;max-width:18ch}
.phero .lede{margin-top:18px;max-width:52ch}
.phero .two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.hero{padding:56px 0 24px}
.hero .in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.hero h1{font-size:clamp(42px,6vw,70px);margin-top:14px}
.hero h1 em{font-style:normal;color:var(--rose)}
.hero .lede{margin-top:18px}
.livecount{margin-top:22px;font:500 14px var(--f-mono);color:var(--muted)}
.livecount b{color:var(--ink);font-weight:500}
.stack{position:relative;aspect-ratio:1/1}
.stack .win{position:absolute;width:76%}
.stack .w1{top:0;left:0;transform:rotate(-3deg);z-index:1}
.stack .w2{top:24%;right:0;transform:rotate(2.5deg);z-index:2}
.stack .w3{bottom:0;left:6%;transform:rotate(-1deg);z-index:3}
.prob{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.prob .card s{color:var(--muted);text-decoration-color:var(--rose)}
.prob .card b{font:600 18px var(--f-display);color:var(--ink)}
.steps3,.steps,.after{display:grid;gap:16px}
.steps3{grid-template-columns:repeat(3,minmax(0,1fr));counter-reset:s}
.steps{grid-template-columns:repeat(4,minmax(0,1fr))}
.after{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:20px}
.steps3 .card span,.steps .card span{font:500 13px var(--f-mono);color:var(--rose)}
.subhead{font-size:22px;margin:36px 0 14px}
.work{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.wcard{display:flex;flex-direction:column;gap:12px;text-decoration:none;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:14px 14px 20px;transition:transform .15s,border-color .15s}
a.wcard:hover{transform:translateY(-3px);border-color:var(--ink)}
.wcard h3{font-size:24px;padding:0 6px}
.wcard>p{color:var(--muted);font-size:15.5px;padding:0 6px}
.wcard .stats,.wcard .pill{margin:0 6px;align-self:flex-start}
.stats{font:500 13px var(--f-mono);color:var(--muted)}
.stats b{font-weight:500;color:var(--ink)}
.mini{list-style:none;margin:0 6px;padding:0;font-size:14.5px;border-top:1px solid var(--line)}
.mini li{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}
.mini em{font:500 12.5px var(--f-mono);color:var(--muted);font-style:normal;text-align:right}
.mini .more{color:var(--muted)}
.wcard .go,.card .go{font:600 15px var(--f-display);color:var(--sea);margin-top:auto;padding:0 6px}
.card .go{padding:0}
.soonrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.scard{border:1.5px dashed var(--line);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.scard h3{font-size:20px}
.scard p{color:var(--muted);font-size:15.5px}
.pill.st.live{color:var(--sea);border-color:var(--sea)}
.pill.st.partial{color:var(--gem);border-color:var(--gem)}
.pill.st.soon{color:var(--rose);border-color:var(--rose)}
.libnote{margin-top:26px}
.serve .link{text-decoration:none;color:var(--ink);transition:transform .15s,border-color .15s}
.serve .link:hover{transform:translateY(-3px);border-color:var(--ink)}
.serve .proof{font-size:14.5px;border-top:1px solid var(--line);padding-top:10px;color:var(--ink)}
.band{background:var(--ink);color:var(--surface);border-radius:28px;padding:44px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.band h2{font-size:clamp(30px,4vw,44px)}
.band p{opacity:.8;margin-top:8px}
.band .btn{border-color:var(--surface);color:var(--ink);background:var(--surface)}
.strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.cc{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:10px}
.cc.soon{border-style:dashed;background:transparent}
.cc-top{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.cc h3{font-size:21px}
.cc-blurb{color:var(--muted);font-size:15.5px}
.cc-meta{font:500 12.5px/1.5 var(--f-mono);color:var(--ink);margin-top:auto;padding-top:4px}
.note{margin-top:22px;color:var(--muted)}
.note a{color:var(--sea)}
.door-hero{padding:48px 0 16px}
.door-hero .in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:center}
.door-hero h1{font-size:clamp(40px,6vw,66px);margin:12px 0 16px}
.pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:18px}
.enter{font-size:18px;padding:16px 26px}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.pp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.pp .card b{font:600 18px var(--f-display)}
.hood{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;background:var(--surface);border:1px dashed var(--line);border-radius:20px;padding:22px}
.hood .lens{font:500 13px var(--f-mono);border:1.5px dashed var(--muted);color:var(--muted);border-radius:10px;padding:8px 11px;white-space:nowrap}
.hood a{color:var(--sea)}
.back{display:inline-flex;align-items:center;min-height:44px;font:500 14px var(--f-body);color:var(--muted);text-decoration:none}
.work.three .wcard.static{padding-bottom:18px}
.mapcard{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:22px 22px 14px}
.bmap{width:100%;height:auto;display:block;overflow:visible}
.bmap .spine{stroke:var(--line);stroke-width:3;fill:none;stroke-linecap:round}
.bmap .detour{stroke:var(--rose);stroke-width:2.5;fill:none;stroke-dasharray:6 5}
.bmap .nodes circle{fill:var(--surface);stroke:var(--ink);stroke-width:2.5}
.bmap .nodes .fork{stroke:var(--gem)}
.bmap .nodes .skipped{stroke:var(--line)}
.bmap .nodes .rem{stroke:var(--rose)}
.bmap .nodes .end{fill:var(--ink)}
.bmap .lbl text{font:500 12.5px var(--f-mono);fill:var(--muted)}
.bmap .lbl .rose{fill:var(--rose)}
.bmap .dot{fill:var(--gem);stroke:var(--surface);stroke-width:2}
.legend{list-style:none;display:flex;gap:6px 22px;flex-wrap:wrap;padding:6px 4px 4px;margin:0;font:500 12.5px var(--f-mono);color:var(--muted)}
.legend i{display:inline-block;width:22px;height:0;border-top:3px solid var(--line);vertical-align:middle;margin-right:8px}
.legend .de{border-top:3px dashed var(--rose)}
.legend .dt{width:12px;height:12px;border:0;border-radius:50%;background:var(--gem)}
.realmap{margin:22px 0 0;display:flex;flex-direction:column;gap:8px}.realmap img{max-width:100%;height:auto;border:1px solid var(--line);border-radius:14px;align-self:flex-start}.realmap figcaption{font-size:14px;color:var(--muted)}
.shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.shot{margin:0}
.shot:first-child{grid-column:1/-1}
.shot-frame{border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 30px 60px -38px rgba(23,41,58,.55);background:var(--surface)}
.shot img{display:block;width:100%;height:auto}
.shot figcaption{font-size:15px;color:var(--muted);margin-top:12px}
.shot figcaption b{color:var(--ink);font-family:var(--f-display);font-weight:600;margin-right:6px}
.proc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px}
.proc li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start;padding:16px 0;border-top:1px solid var(--line)}
.proc li>span{font:500 14px var(--f-mono);color:var(--rose);padding-top:4px}
.proc h3{font-size:20px}
.proc p{color:var(--muted);font-size:16px;margin-top:4px}
.prose{max-width:62ch;display:flex;flex-direction:column;gap:16px;font-size:18px}
.tablewrap{overflow-x:auto}
.tbl{border-collapse:collapse;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:16px;font-size:16px}
.tbl th,.tbl td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl thead th{font:500 12px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tbl tbody th{font-weight:600}
.head a{color:var(--sea)}
@media (max-width:1000px){.strip,.soonrow,.work{grid-template-columns:repeat(2,minmax(0,1fr))}.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){
  .split>.in>.splitcard,.storygrid{grid-template-columns:minmax(0,1fr)}
  .splitcard .eyebrow,.splitcard h2,.splitcard .head p:not(.eyebrow),.splitcard .ctas,.splitcard .head h2:first-child{grid-column:1;grid-row:auto}
  .split>.in>.splitcard{padding:28px}
  .hero .in,.phero .two-col,.door-hero .in,.prob,.steps3,.after,.two,.pp,.shots,.proc{grid-template-columns:minmax(0,1fr)}
  .hero,.phero,.door-hero{padding-top:28px}
  .band,.libband{padding:28px}.hood{grid-template-columns:minmax(0,1fr)}
  .shot:first-child{grid-column:auto}
}
@media (max-width:620px){.strip,.soonrow,.work,.steps{grid-template-columns:minmax(0,1fr)}.tbl{font-size:15px}.tbl th,.tbl td{padding:10px}}
