/* Kyoka Hub. Rose palette tokens come from kyoka-wallet public/js/theme.js (kwPalDerive("rose")) and css/base.css. */
@font-face{font-family:"Inter";src:url(/fonts/Inter-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url(/fonts/Inter-Medium.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url(/fonts/Inter-SemiBold.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/fonts/JetBrainsMono-Medium.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --bg:#0d0a0a;--panel:#181214;--panel2:#211c21;--line:#2a262c;--line2:#38343c;--line3:#504c55;
  --accent:#c47f80;--accent-line:#553f41;--accent-soft:rgba(196,127,128,.12);
  --txt:#ededed;--ink2:#a1a1a1;--mut:#8b8d97;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --r:10px;--r-lg:14px;
  --pad:20px;
}
@media (min-width:720px){:root{--pad:32px}}

*,*::before,*::after{box-sizing:border-box}
html{color-scheme:dark;background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:72px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;font:400 16px/1.6 var(--sans);color:var(--txt);background:var(--bg);overflow-wrap:break-word}
h1,h2,h3,h4,p,ul{margin:0}
ul{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
img,svg{display:block}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.sr{position:absolute;width:0;height:0;overflow:hidden}
.skip{position:absolute;left:12px;top:-60px;z-index:20;padding:10px 14px;background:var(--accent);color:var(--bg);border-radius:var(--r);font-weight:600}
.skip:focus{top:12px}
.wrap{max-width:1120px;margin:0 auto;padding:0 var(--pad)}
.ic{width:16px;height:16px;flex:none}
.mono{font-family:var(--mono);font-weight:500}

/* header */
.top{position:sticky;top:0;z-index:10;background:rgba(13,10,10,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;gap:24px;height:60px}
.logo{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:18px;letter-spacing:-.01em}
.logo em{font-style:normal;color:var(--mut);margin-left:1px}
.nav{display:none;gap:4px;margin-left:auto}
.nav a{padding:8px 12px;border-radius:8px;color:var(--ink2);font-size:14px;font-weight:500}
.nav a:hover{color:var(--txt);background:var(--panel)}
.top .btn{margin-left:auto}
@media (min-width:720px){.nav{display:flex}.top .btn{margin-left:8px}}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:var(--r);background:var(--accent);color:#1a0f10;font-weight:600;font-size:15px;transition:background .15s}
.btn:hover{background:#d2999a}
.btn-sm{min-height:36px;padding:0 14px;font-size:14px}

/* hero */
.hero{position:relative;padding:56px 0 48px;overflow:hidden}
.hero::before{content:"";position:absolute;inset:-40% -20% auto auto;width:780px;height:620px;pointer-events:none;
  background:radial-gradient(closest-side,rgba(196,127,128,.16),transparent)}
.hero .wrap{position:relative}
.eyebrow{font:500 12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
h1{font-size:clamp(30px,8.2vw,60px);line-height:1.08;font-weight:600;letter-spacing:-.025em}
.lede{margin-top:18px;max-width:56ch;color:var(--ink2);font-size:17px}
.routes{display:grid;gap:10px;margin-top:32px}
.route{position:relative;display:flex;flex-direction:column;gap:2px;padding:16px 44px 16px 18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);transition:border-color .15s,background .15s}
.route:hover{border-color:var(--line3);background:var(--panel2)}
.route-main{border-color:var(--accent-line);background:linear-gradient(180deg,rgba(196,127,128,.10),rgba(196,127,128,.03)),var(--panel)}
.route-main:hover{border-color:var(--accent)}
.route-d{font:500 15px/1.4 var(--mono);color:var(--txt)}
.route-main .route-d{color:var(--accent)}
.route-t{font-size:14px;color:var(--ink2);line-height:1.45}
.route .ic{position:absolute;right:16px;top:18px;color:var(--mut)}
.route:hover .ic{color:var(--txt)}
@media (min-width:720px){
  .hero{padding:96px 0 72px}
  .routes{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:40px}
}

/* sections */
.sec{padding:56px 0;border-top:1px solid var(--line)}
@media (min-width:720px){.sec{padding:80px 0}}
.sec-head{margin-bottom:28px;max-width:60ch}
h2{font-size:clamp(26px,5vw,36px);line-height:1.15;font-weight:600;letter-spacing:-.02em}
.sec-head p:last-child:not(.eyebrow){margin-top:10px;color:var(--ink2)}

/* router grid */
.groups{display:grid;gap:28px}
.group{display:flex;flex-direction:column}
.group-h{font:500 12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-bottom:12px}
.cards{display:grid;gap:14px}
.card{display:flex;flex-direction:column;gap:12px;flex:1;padding:20px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel)}
.card-main{border-color:var(--accent-line)}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dom{font:500 17px/1.3 var(--mono)}
.card-main .dom{color:var(--accent)}
.st{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--ink2);white-space:nowrap}
.st::before{content:"";width:7px;height:7px;border-radius:50%}
.st-live::before{background:#4fb07f}
.st-soon{color:var(--accent)}
.st-soon::before{background:transparent;border:1.5px solid var(--accent)}
.card-t{color:var(--txt)}
.pts{display:grid;gap:6px;color:var(--ink2);font-size:14.5px}
.pts li{position:relative;padding-left:16px}
.pts li::before{content:"";position:absolute;left:2px;top:.68em;width:5px;height:5px;border-radius:50%;background:var(--line3)}
.note{font-size:14px;color:var(--mut)}
.card-a{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:4px;min-height:32px;font-weight:500;font-size:15px;color:var(--txt)}
.card-a .ic{color:var(--accent);transition:transform .15s}
.card-a:hover{color:var(--accent)}
.card-a:hover .ic{transform:translate(2px,-2px)}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding-top:12px;border-top:1px solid var(--line)}
.chips a{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border:1px solid var(--line2);border-radius:999px;font-size:13.5px;color:var(--ink2)}
.chips a:hover{border-color:var(--line3);color:var(--txt)}
@media (min-width:720px){
  .groups{grid-template-columns:repeat(3,1fr);gap:36px 18px}
  .group-wide{grid-column:1/-1}
  .cards-3{grid-template-columns:repeat(3,1fr);gap:18px}
}

/* topics */
.topics{display:grid;gap:14px}
.topic{display:flex;flex-direction:column;gap:10px;padding:22px;border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,var(--panel),transparent 140%)}
.topic h3{font-size:19px;font-weight:600;letter-spacing:-.01em}
.topic p{color:var(--ink2);font-size:15px}
.topic-go{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:auto;padding-top:4px}
.topic-go a{font:500 14px/2 var(--mono);color:var(--accent);border-bottom:1px solid transparent}
.topic-go a:hover{border-color:var(--accent)}
@media (min-width:720px){.topics{grid-template-columns:repeat(2,1fr);gap:18px}}

/* benefits */
.cols{display:grid;gap:14px}
.col{padding:22px;border:1px solid var(--line);border-radius:var(--r-lg)}
.col h3{font-size:19px;font-weight:600;margin-bottom:14px}
.ticks{display:grid;gap:12px;color:var(--ink2);font-size:15px}
.ticks li{position:relative;padding-left:26px}
.ticks li::before{content:"";position:absolute;left:2px;top:.45em;width:10px;height:6px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
@media (min-width:720px){.cols{grid-template-columns:repeat(2,1fr);gap:18px}.col{padding:28px}}

/* partnership */
.cta{display:grid;gap:24px;padding:28px 22px;border:1px solid var(--accent-line);border-radius:18px;
  background:radial-gradient(ellipse 70% 120% at 100% 0,rgba(196,127,128,.16),transparent 70%),var(--panel)}
.cta h2{margin-bottom:10px}
.cta p{color:var(--ink2);max-width:52ch}
.cta-act{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.cta-act .mono{font-size:14px;color:var(--txt);user-select:all}
@media (min-width:720px){.cta{grid-template-columns:1fr auto;align-items:center;padding:44px}.cta-act{align-items:flex-end}}

/* footer */
.foot{padding:48px 0 calc(32px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#0a0808}
.foot-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px 20px}
.foot-brand{grid-column:1/-1;display:grid;gap:10px;color:var(--ink2);font-size:14px}
.foot-brand a:not(.logo){color:var(--txt)}
.foot-brand a:not(.logo):hover{color:var(--accent)}
.foot h2{font:500 12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-bottom:12px}
.foot ul{display:grid;gap:4px}
.foot nav a{display:inline-block;padding:4px 0;font-size:14.5px;color:var(--ink2)}
.foot nav a:hover{color:var(--txt)}
.soon-t{font-size:12px;color:var(--accent)}
.fine{margin-top:20px;font-size:13px;color:var(--mut);max-width:72ch}
.fine+.fine{margin-top:6px}
@media (min-width:720px){.foot-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}.foot-brand{grid-column:auto;align-content:start}.fine{margin-top:36px}}
.back{margin-top:28px}
