/* =========================================================
   XamiHub Design System — public index
   Extended styles (built on top of colors_and_type.css)
   ========================================================= */

html,body{margin:0}
body{background:var(--bg1);color:var(--fg1);font-family:var(--font-sans);min-height:100vh;-webkit-font-smoothing:antialiased}

/* ─── Skip link ─── */
.skip-link{position:absolute;left:-9999px;top:8px;z-index:10000;background:var(--xami-purple-500);color:#fff;padding:10px 16px;border-radius:6px;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.skip-link:focus{left:8px}

/* ─── Top bar (public nav) ─── */
.topbar{position:sticky;top:0;z-index:50;background:color-mix(in oklab, var(--bg1) 88%, transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border1)}
.topbar-inner{max-width:1280px;margin:0 auto;padding:12px 32px;display:flex;align-items:center;gap:16px}
.topbar .mark{display:flex;align-items:center;gap:10px;color:var(--fg1);text-decoration:none;font-family:var(--font-sans);font-weight:700;font-size:14px;letter-spacing:-.005em}
.topbar .mark img{width:auto;display:block}
.topbar .mark .mark-icon{height:32px;width:32px}
.topbar .mark .mark-logo{height:35px;width:108px}
.topbar .mark .v{font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;color:var(--fg3);padding:2px 6px;border:1px solid var(--border2);border-radius:4px;text-transform:uppercase;margin-left:4px}
.topbar .sp{flex:1}
.topbar .link{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;color:var(--fg3);text-decoration:none;text-transform:uppercase;padding:8px 10px;border-radius:6px;transition:color .15s, background .15s}
.topbar .link:hover{color:var(--fg1);background:var(--bg2)}
.topbar .search-btn{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border2);border-radius:8px;background:var(--bg2);color:var(--fg3);font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;cursor:pointer;min-width:200px;transition:border-color .15s, color .15s}
.topbar .search-btn:hover{border-color:var(--xami-purple-400);color:var(--fg1)}
.topbar .search-btn .kbd{margin-left:auto;font-family:var(--font-mono);font-size:9px;padding:2px 6px;border:1px solid var(--border2);border-radius:4px;color:var(--fg3);letter-spacing:.1em}
.topbar .cta{background:var(--xami-purple-500);color:#fff;padding:8px 14px;border-radius:8px;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-decoration:none;text-transform:uppercase;border:1px solid var(--xami-purple-500);transition:background .15s, transform .15s}
.topbar .cta:hover{background:var(--xami-purple-400);transform:translateY(-1px)}

@media (max-width:780px){
  .topbar .link.hide-sm, .topbar .search-btn .lbl{display:none}
  .topbar .search-btn{min-width:auto;padding:8px}
}

/* ─── Hero ─── */
.hero{padding:96px 32px 56px;border-bottom:1px solid var(--border2);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;top:-30%;left:-10%;right:-10%;height:90%;background:radial-gradient(ellipse at 50% 0%,rgba(117,67,255,.35),transparent 60%);pointer-events:none}
:root[data-theme="light"] .hero::before{background:radial-gradient(ellipse at 50% 0%,rgba(117,67,255,.15),transparent 60%)}
.hero-inner{position:relative;max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:end}
.eye{font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;color:var(--fg-accent);text-transform:uppercase;margin:0 0 20px;display:flex;align-items:center;gap:10px}
.eye::before{content:"";width:6px;height:6px;background:var(--xami-purple-500);border-radius:1px;transform:rotate(45deg)}
.hero h1{font-family:var(--font-sans);font-weight:700;font-size:72px;letter-spacing:-.028em;line-height:.95;margin:0 0 20px;text-wrap:balance;max-width:14ch}
.hero h1 em{font-style:normal;color:var(--fg-accent)}
.hero .sub{font-family:var(--font-sans);font-size:17px;line-height:1.55;color:var(--fg2);max-width:58ch;margin:0 0 28px;text-wrap:pretty}
.hero-ctas{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.btn{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border-radius:8px;font-family:var(--font-sans);font-weight:600;font-size:13.5px;letter-spacing:-.005em;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .15s, border-color .15s, transform .15s, color .15s}
.btn svg{width:14px;height:14px}
.btn-primary{background:var(--xami-purple-500);color:#fff;border-color:var(--xami-purple-500)}
.btn-primary:hover{background:var(--xami-purple-400);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--fg1);border-color:var(--border2)}
.btn-ghost:hover{border-color:var(--xami-purple-400);color:var(--fg-accent)}

/* ─── Hero side: quick access ─── */
.hero-side{display:flex;flex-direction:column;gap:14px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--fg3)}
.hero-side h4{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:var(--fg3);text-transform:uppercase;margin:0 0 2px;display:flex;align-items:center;gap:8px}
.hero-side h4::before{content:"";width:5px;height:5px;background:var(--xami-purple-400);border-radius:1px;transform:rotate(45deg)}
.hero-side .stack{display:grid;gap:6px}
.hero-side a.q{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border2);border-radius:10px;background:var(--bg2);color:var(--fg1);text-decoration:none;font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:-.005em;transition:border-color .15s, transform .15s}
.hero-side a.q:hover{border-color:var(--xami-purple-400);transform:translateX(2px)}
.hero-side a.q .ic{width:28px;height:28px;border-radius:6px;background:var(--bg-purple-soft);display:grid;place-items:center;color:var(--xami-purple-400);flex-shrink:0}
.hero-side a.q .ic svg{width:14px;height:14px}
.hero-side a.q .meta{display:flex;flex-direction:column;gap:1px;min-width:0}
.hero-side a.q .meta span{font-size:10px;color:var(--fg3);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-weight:400}
.hero-side a.q .arr{margin-left:auto;font-family:var(--font-mono);color:var(--fg3);transition:color .15s, transform .15s}
.hero-side a.q:hover .arr{color:var(--fg-accent);transform:translateX(2px)}

/* ─── Layout ─── */
.layout{display:grid;grid-template-columns:220px 1fr;gap:56px;align-items:start;max-width:1280px;margin:0 auto;padding:56px 32px 96px}
.side{position:sticky;top:72px;display:flex;flex-direction:column;gap:4px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;max-height:calc(100vh - 96px);overflow-y:auto}
.side::-webkit-scrollbar{width:0}
.side a{text-decoration:none;color:var(--fg3);padding:8px 12px;border-radius:6px;border-left:2px solid transparent;transition:color .15s, border-color .15s, background .15s;display:flex;align-items:center;justify-content:space-between;gap:8px}
.side a:hover{color:var(--fg1);background:var(--bg2)}
.side a.active{color:var(--fg-accent);border-left-color:var(--xami-purple-500)}
.side a .c{font-size:9px;color:var(--fg3);opacity:.6}
.side .side-kick{font-size:9px;color:var(--fg3);padding:14px 12px 6px;opacity:.7;letter-spacing:.18em}
.page-main{min-width:0}

/* ─── Section ─── */
.group{margin:0 0 72px;scroll-margin-top:80px}
.group-head{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 18px;gap:24px;padding-bottom:14px;border-bottom:1px solid var(--border2)}
.group-head .num{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;color:var(--fg-accent);text-transform:uppercase}
.group-head h2{font-family:var(--font-sans);font-weight:700;font-size:28px;letter-spacing:-.015em;margin:0;color:var(--fg1);text-transform:uppercase}
.group-head .count{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;color:var(--fg3);text-transform:uppercase;margin-left:auto}
.group-desc{font-family:var(--font-sans);font-size:14px;line-height:1.55;color:var(--fg2);max-width:66ch;margin:0 0 28px;text-wrap:pretty}

/* ─── Cards grid ─── */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.grid.two{grid-template-columns:repeat(2,1fr)}
.grid.four{grid-template-columns:repeat(4,1fr)}

.card{display:flex;flex-direction:column;background:var(--bg2);border:1px solid var(--border2);border-radius:12px;overflow:hidden;text-decoration:none;color:inherit;transition:border-color .15s, transform .15s, box-shadow .15s;position:relative}
.card:hover{border-color:rgba(117,67,255,.45);transform:translateY(-2px);box-shadow:0 10px 24px -18px rgba(117,67,255,.5)}
.card:focus-visible{outline:none;border-color:var(--xami-purple-400);box-shadow:0 0 0 3px rgba(117,67,255,.35)}
.card:hover .go{color:var(--fg-accent)}

.card-preview{aspect-ratio:4/3;overflow:hidden;background:var(--bg3);border-bottom:1px solid var(--border2);position:relative}
.card-preview iframe{width:200%;height:200%;border:0;transform:scale(.5);transform-origin:top left;pointer-events:none;background:var(--bg1)}

.card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:4px}
.card-kick{font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;color:var(--fg3);text-transform:uppercase}
.card-title{font-family:var(--font-sans);font-weight:600;font-size:15px;letter-spacing:-.005em;color:var(--fg1);line-height:1.25}
.card-desc{font-family:var(--font-sans);font-size:12px;line-height:1.45;color:var(--fg2);margin-top:2px}
.card-go{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px dashed var(--border2)}
.card-go .go{font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;color:var(--fg3);text-transform:uppercase;transition:color .15s}
.card-go .arr{font-family:var(--font-mono);font-size:14px;color:var(--fg-accent);line-height:1}

.card.feat{grid-column:span 2}
.card.feat .card-preview{aspect-ratio:16/7.5}

/* ─── Guidelines block ─── */
.guide{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 28px}
.guide-card{background:var(--bg2);border:1px solid var(--border2);border-radius:12px;padding:20px 22px;display:flex;flex-direction:column;gap:10px}
.guide-card.ok{border-color:rgba(45,212,164,.3)}
.guide-card.no{border-color:rgba(255,92,122,.28)}
.guide-card h4{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;color:var(--fg3);text-transform:uppercase;margin:0;display:flex;align-items:center;gap:8px}
.guide-card.ok h4{color:var(--fg-success)}
.guide-card.no h4{color:var(--fg-danger)}
.guide-card ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.guide-card li{font-family:var(--font-sans);font-size:13px;line-height:1.5;color:var(--fg2);padding-left:22px;position:relative;text-wrap:pretty}
.guide-card li::before{position:absolute;left:0;top:0;font-family:var(--font-mono);font-weight:700;font-size:13px}
.guide-card.ok li::before{content:"✓";color:var(--fg-success)}
.guide-card.no li::before{content:"✗";color:var(--fg-danger)}

/* ─── Downloads ─── */
.downloads{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.dl{display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid var(--border2);border-radius:12px;background:var(--bg2);text-decoration:none;color:inherit;transition:border-color .15s, transform .15s}
.dl:hover{border-color:var(--xami-purple-400);transform:translateY(-2px)}
.dl .row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.dl .ic{width:32px;height:32px;border-radius:8px;background:var(--bg-purple-soft);display:grid;place-items:center;color:var(--xami-purple-400)}
.dl .ic svg{width:15px;height:15px}
.dl .ext{font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;color:var(--fg3);text-transform:uppercase;padding:2px 7px;border:1px solid var(--border2);border-radius:4px}
.dl h4{font-family:var(--font-sans);font-weight:600;font-size:15px;margin:2px 0 0;letter-spacing:-.005em;color:var(--fg1)}
.dl p{font-family:var(--font-sans);font-size:12px;line-height:1.45;color:var(--fg2);margin:0}
.dl .size{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:var(--fg3);margin-top:auto;padding-top:8px;border-top:1px dashed var(--border2);display:flex;justify-content:space-between;align-items:center}
.dl .size .arr{color:var(--fg-accent);transition:transform .15s}
.dl:hover .size .arr{transform:translateX(3px)}

/* ─── Palette copy ─── */
.palette{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin:0 0 10px}
.palette.lav{grid-template-columns:repeat(5,1fr)}
.palette.sem{grid-template-columns:repeat(4,1fr)}
.sw{position:relative;aspect-ratio:1/1;border-radius:8px;cursor:pointer;border:1px solid var(--border2);transition:transform .15s, border-color .15s;display:flex;flex-direction:column;justify-content:flex-end;padding:8px;font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;overflow:hidden}
.sw:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.4)}
.sw.on-dark{color:var(--xami-lavender-100)}
.sw.on-light{color:var(--xami-ink-900)}
.sw .tok{opacity:.75;line-height:1}
.sw .hex{font-weight:600;letter-spacing:.02em;line-height:1.4}
.sw::after{content:"COPY";position:absolute;top:6px;right:6px;font-family:var(--font-mono);font-size:8px;letter-spacing:.14em;opacity:0;transition:opacity .15s;background:rgba(0,0,0,.3);padding:2px 5px;border-radius:3px}
.sw:hover::after{opacity:1}
.sw.copied::after{content:"✓ COPIED";opacity:1;background:var(--xami-success);color:#062317}

/* ─── Token copy rows ─── */
.tokens{display:grid;gap:4px;margin:0 0 10px}
.tok-row{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:10px 14px;border:1px solid var(--border2);border-radius:8px;background:var(--bg2);font-family:var(--font-mono);font-size:12px;cursor:pointer;transition:border-color .15s, background .15s;position:relative}
.tok-row:hover{border-color:var(--xami-purple-400);background:var(--bg3)}
.tok-row .dot{width:14px;height:14px;border-radius:4px;border:1px solid var(--border2)}
.tok-row .name{color:var(--fg1);letter-spacing:.02em}
.tok-row .val{color:var(--fg3);letter-spacing:.02em}
.tok-row .cp{font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;color:var(--fg3);text-transform:uppercase;padding:3px 7px;border:1px solid var(--border2);border-radius:4px;opacity:0;transition:opacity .15s}
.tok-row:hover .cp{opacity:1}
.tok-row.copied .cp{opacity:1;color:var(--fg-success);border-color:var(--fg-success)}
.tok-row.copied .cp::before{content:"✓ "}

/* ─── Footer ─── */
.foot{border-top:1px solid var(--border2)}
.foot-inner{max-width:1280px;margin:0 auto;padding:40px 32px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px}
.foot h5{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:var(--fg3);text-transform:uppercase;margin:0 0 12px}
.foot .about{font-family:var(--font-sans);font-size:13px;color:var(--fg2);line-height:1.55;max-width:40ch;margin:8px 0 0}
.foot .mark-row{display:flex;align-items:center;gap:10px}
.foot .mark-row img{width:28px;height:28px}
.foot .mark-row b{font-family:var(--font-sans);font-weight:700;font-size:16px;color:var(--fg1);letter-spacing:-.005em}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.foot ul a, .foot ul span{font-family:var(--font-sans);font-size:13px;color:var(--fg2);text-decoration:none;transition:color .15s}
.foot ul a:hover{color:var(--fg-accent)}
.foot-bottom{border-top:1px solid var(--border1);padding:18px 32px;max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:var(--fg3);text-transform:uppercase;gap:16px;flex-wrap:wrap}
.foot-bottom a{color:var(--fg3);text-decoration:none}
.foot-bottom a:hover{color:var(--fg-accent)}

/* ─── Command palette ─── */
.cmd-backdrop{position:fixed;inset:0;background:rgba(7,7,26,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:1000;display:none;align-items:flex-start;justify-content:center;padding:10vh 20px}
.cmd-backdrop.open{display:flex}
.cmd{width:100%;max-width:620px;background:var(--bg2);border:1px solid var(--border2);border-radius:14px;overflow:hidden;box-shadow:0 40px 80px -20px rgba(0,0,0,.6);display:flex;flex-direction:column;max-height:70vh}
.cmd-input{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border1)}
.cmd-input svg{width:16px;height:16px;color:var(--fg3);flex-shrink:0}
.cmd-input input{flex:1;background:transparent;border:0;outline:none;font-family:var(--font-sans);font-size:17px;color:var(--fg1);letter-spacing:-.01em}
.cmd-input input::placeholder{color:var(--fg3)}
.cmd-input .esc{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;padding:3px 7px;border:1px solid var(--border2);border-radius:4px;color:var(--fg3);text-transform:uppercase}
.cmd-list{flex:1;overflow-y:auto;padding:8px}
.cmd-group{margin:8px 0}
.cmd-group-head{font-family:var(--font-mono);font-size:9px;letter-spacing:.16em;color:var(--fg3);text-transform:uppercase;padding:8px 12px 4px}
.cmd-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--fg1);cursor:pointer;font-family:var(--font-sans);font-size:14px}
.cmd-item.active{background:var(--bg-purple-soft)}
.cmd-item .k{font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;color:var(--fg3);text-transform:uppercase;width:58px;flex-shrink:0}
.cmd-item .t{flex:1;letter-spacing:-.005em}
.cmd-item .arr{font-family:var(--font-mono);color:var(--fg-accent);opacity:0}
.cmd-item.active .arr{opacity:1}
.cmd-empty{padding:30px 20px;text-align:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--fg3);text-transform:uppercase}

/* ─── Toast ─── */
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:var(--bg2);border:1px solid var(--xami-purple-400);color:var(--fg1);padding:12px 18px;border-radius:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:0;transition:opacity .2s, transform .2s;pointer-events:none;z-index:2000;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:10px}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast svg{width:14px;height:14px;color:var(--fg-success)}

/* ─── Transição ao abrir preview ─── */
html.vt-leaving{cursor:progress}
@keyframes vt-fade-out{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.98)}}
@keyframes vt-fade-in{from{opacity:0;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}
::view-transition-old(root){animation:vt-fade-out .38s cubic-bezier(.4,0,.2,1) forwards}
::view-transition-new(root){animation:vt-fade-in .38s cubic-bezier(.2,.9,.2,1) forwards}
@media (prefers-reduced-motion:reduce){
  .preview-transition{transition:opacity .15s !important}
  ::view-transition-old(root),::view-transition-new(root){animation:none !important}
}

/* ─── Responsive ─── */
@media (max-width:980px){
  .layout{grid-template-columns:1fr;padding:32px 20px;gap:32px}
  .side{position:static;max-height:none;flex-direction:row;flex-wrap:wrap;gap:4px}
  .side a{flex:1 0 auto}
  .side .side-kick{display:none}
  .hero{padding:56px 20px 40px}
  .hero-inner{grid-template-columns:1fr;gap:32px}
  .hero h1{font-size:44px}
  .hero .sub{font-size:15px}
  .grid,.grid.two,.grid.four{grid-template-columns:1fr 1fr}
  .card.feat{grid-column:span 2}
  .downloads{grid-template-columns:1fr 1fr}
  .guide{grid-template-columns:1fr}
  .foot-inner{grid-template-columns:1fr 1fr;gap:24px}
  .topbar-inner{padding:10px 16px}
  .palette{grid-template-columns:repeat(5,1fr)}
}
@media (max-width:640px){
  .grid,.grid.two,.grid.four,.downloads{grid-template-columns:1fr}
  .card.feat{grid-column:auto}
  .hero h1{font-size:36px}
  .foot-inner{grid-template-columns:1fr}
  .palette{grid-template-columns:repeat(5,1fr)}
  .palette.lav{grid-template-columns:repeat(5,1fr)}
  .palette.sem{grid-template-columns:repeat(2,1fr)}
}

/* ─── Reduced motion ─── */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto}
}
html{scroll-behavior:smooth}
