/* KUBR motion layer. Additive: only touches .km-* and the home hero. Colours come from the active theme tokens, so the band never breaks the palette. */
.km-has-beams{position:relative;isolation:isolate}
.km-beams{position:absolute;z-index:-1;top:0;left:0;width:100%;height:100%;max-height:640px;pointer-events:none;display:block}
.km-dark{--k-bg:var(--bg);--k-ink:var(--text);--k-or:var(--brass);--k-line:var(--line);--k-dim:var(--dim);background:var(--k-bg);color:var(--k-ink);position:relative;overflow:hidden}
.km-in{max-width:var(--wrap,1440px);margin:0 auto;padding:clamp(72px,10vw,140px) var(--gutter,24px)}
.km-sec+.km-sec .km-in{border-top:1px solid var(--k-line)}
.km-sec{position:relative}
.km-k{font:500 11px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--k-or);margin:0 0 22px}
.km-h{font:400 clamp(30px,5vw,68px)/1.08 var(--f-display);letter-spacing:-.01em;margin:0;max-width:20ch;color:var(--k-ink)}
.km-lead{color:var(--k-dim);max-width:56ch;margin:22px 0 0;font-size:clamp(15px,1.3vw,18px)}
.km-fn{font:400 11px/1.5 var(--f-mono);color:var(--k-dim);margin:22px 0 0;max-width:70ch}

/* 1 redaction: bars only exist when motion is on (html.motion); otherwise text is plain */
.km-r{position:relative;display:inline-block;white-space:nowrap}
.km-bar{display:none;position:absolute;inset:.08em -.1em .02em;background:var(--text);box-shadow:0 0 0 1px var(--line-2),inset 3px 0 0 var(--k-or);clip-path:inset(0 0 0 0);pointer-events:none}
.motion .km-bar{display:block}
.km-ledger{margin:clamp(36px,5vw,64px) 0 0;border-top:1px solid var(--k-line);font:400 clamp(13px,1.2vw,16px)/1.4 var(--f-mono)}
.km-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.9fr) minmax(0,.8fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--k-line);align-items:baseline}
.km-row span:nth-child(2){color:var(--k-dim);font-size:.85em}
.km-row b{font-weight:500;text-align:right;justify-self:end}
@media (max-width:640px){.km-row{grid-template-columns:1fr auto}.km-row span:nth-child(2){display:none}}

/* 4 timeline */
.km-tl{position:relative;list-style:none;margin:clamp(40px,6vw,72px) 0 0;padding:0 0 0 38px;display:grid;gap:clamp(34px,5vw,64px)}
.km-tl-line,.km-tl::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px}
.km-tl::before{background:var(--k-line)}
.km-tl-line{background:var(--k-or);transform-origin:top;transform:scaleY(0)}
html:not(.motion) .km-tl-line{transform:scaleY(1)}
.km-tl-i{position:relative;display:grid;gap:8px;max-width:60ch}
.km-tl-i::before{content:"";position:absolute;left:-38px;top:7px;width:11px;height:11px;border-radius:50%;background:var(--k-bg);border:1px solid var(--k-dim);transition:background .4s,border-color .4s}
.km-tl-i.on::before,html:not(.motion) .km-tl-i::before{background:var(--k-or);border-color:var(--k-or)}
.km-tl-i h3{font:400 clamp(22px,2.4vw,32px)/1.2 var(--f-display);margin:0;color:var(--k-ink)}
.km-tl-i p{margin:0;color:var(--k-dim)}
.km-tl-i .km-k{margin:0 0 4px}

/* 5 bento + spotlight hover */
.km-bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:clamp(36px,5vw,64px)}
.km-b{--mx:50%;--my:50%;position:relative;grid-column:span 2;min-height:190px;padding:24px;border:1px solid var(--k-line);background:var(--glass);display:flex;flex-direction:column;justify-content:space-between;gap:20px;overflow:hidden;color:inherit;text-decoration:none;transition:border-color .3s}
.km-b.w3{grid-column:span 3}.km-b.w4{grid-column:span 4}
.km-b::before{content:"";position:absolute;inset:0;background:radial-gradient(320px circle at var(--mx) var(--my),rgba(var(--ac-rgb),.12),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none}
.km-b:hover,.km-b:focus-visible{border-color:var(--line-2)}
.km-b:hover::before{opacity:1}
.km-b .n{font:400 clamp(40px,5vw,72px)/1 var(--f-display);color:var(--k-ink);position:relative}
.km-b .n i{font-style:normal;color:var(--k-or)}
.km-b p{margin:0;color:var(--k-dim);font-size:15px;position:relative;max-width:42ch}
.km-b .t{font:500 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--k-dim);position:relative}
@media (max-width:860px){.km-bento{grid-template-columns:repeat(2,minmax(0,1fr))}.km-b,.km-b.w3,.km-b.w4{grid-column:span 2}.km-b.s{grid-column:span 1}}

/* 7 globe */
.km-globe-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:center}
.km-globe{position:relative;width:100%;max-width:560px;aspect-ratio:1/1;justify-self:center}
.km-globe canvas,.km-globe img{position:absolute;inset:0;width:100%;height:100%;display:block}
.km-mk{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:26px 0 0;padding:0}
.km-mk li{font:500 11px/1 var(--f-mono);letter-spacing:.1em;padding:8px 10px;border:1px solid var(--k-line);color:var(--k-ink)}
@media (max-width:860px){.km-globe-grid{grid-template-columns:minmax(0,1fr)}}

/* 6 infinite moving cards */
.km-mq{margin-top:clamp(36px,5vw,64px);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.km-mq-t{display:flex;gap:12px;width:max-content;animation:km-mq 70s linear infinite}
.km-mq:hover .km-mq-t,.km-mq:focus-within .km-mq-t{animation-play-state:paused}
.km-c{flex:0 0 clamp(260px,26vw,340px);display:grid;gap:14px;align-content:space-between;min-height:170px;padding:20px;border:1px solid var(--k-line);color:var(--k-ink);text-decoration:none;background:var(--glass);transition:border-color .3s}
.km-c:hover,.km-c:focus-visible{border-color:var(--line-2)}
.km-c span{font:500 11px/1 var(--f-mono);letter-spacing:.1em;color:var(--k-or);text-transform:uppercase}
.km-c b{font:400 17px/1.35 var(--f-display)}
@keyframes km-mq{to{transform:translateX(-50%)}}

@media (prefers-reduced-motion:reduce){
  .km-mq{overflow-x:auto;-webkit-mask-image:none;mask-image:none}
  .km-mq-t{animation:none}
  .km-mq-t [aria-hidden=true]{display:none}
  .km-bar{display:none!important}
  .km-b::before{transition:none}
}

/* KUBR logo (owner file, inline svg inherits colour) */
a.wm.wm{color:#51643F;letter-spacing:0;display:inline-flex;align-items:center;text-decoration:none}
a.wm.wm svg{height:20px;width:auto;display:block}
footer a.wm.wm svg{height:16px}

/* keep the last footer line clear of the fixed Feedback button */
body footer{padding-bottom:max(64px,calc(56px + env(safe-area-inset-bottom,0px)))}
