/* base — reset, type smoothing, scrollbars, range inputs and the keyframe set.
 * Extracted verbatim from the design canvas. */
html,body{margin:0;background:var(--bg);height:100%;overflow-x:auto;overflow-y:hidden}
h1::first-letter,h2::first-letter,h3::first-letter,.xc-cap::first-letter{text-transform:uppercase}
.xc-cap>span::first-letter{text-transform:uppercase}
body{-webkit-font-smoothing:antialiased}
a{color:var(--peri);text-decoration:none}a:hover{color:var(--text)}
::selection{background:#1C1CD2;color:#fff}
input,button,textarea{font:inherit;color:inherit}
/* Alpine's cloak, which every Alpine page needs and this one did not have.
   Without it, anything waiting to be hidden by x-show is visible from first
   paint until Alpine boots — and on a page Alpine never reaches, visible for
   good. That is how both halves of the connect list ended up on screen at
   once, each contradicting the other. */
[x-cloak]{display:none!important}
*::-webkit-scrollbar{width:8px;height:8px}
*::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}
*::-webkit-scrollbar-track{background:transparent}
@keyframes xc-arrive{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@keyframes xc-sweep{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes xc-sysin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes xc-rowin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes xc-blink{0%,100%{opacity:.3}50%{opacity:1}}
@keyframes xc-fade{from{opacity:0}to{opacity:1}}
@keyframes xc-pop{from{opacity:0;transform:translateY(18px) scale(.965)}to{opacity:1;transform:none}}
@keyframes xc-fieldin{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes xc-cardin{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
@keyframes xc-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes xc-halo{0%{box-shadow:0 0 0 0 rgba(28,28,210,.34)}70%{box-shadow:0 0 0 12px rgba(28,28,210,0)}100%{box-shadow:0 0 0 0 rgba(28,28,210,0)}}
input[type=range]{-webkit-appearance:none;appearance:none;block-size:4px;border-radius:4px;background:rgba(var(--ink),.12);outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;inline-size:18px;block-size:18px;border-radius:50%;background:currentColor;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.25)}
@keyframes xc-sheet{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:none}}
@keyframes xc-drawer{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
[data-r="setcell"][data-full="true"]{grid-column:1 / -1}
[data-r="cardgrid"][data-strip="true"]{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
