/* Base: reset, typography, links, form defaults, utilities (BUILD-SPEC §6). Foundation-owned. */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:auto}
body{min-height:100dvh;overflow-x:hidden}
h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dd,figure,blockquote{margin:0;padding:0}
ul[role="list"],ol[role="list"],.list-reset{list-style:none}
h1{font-size:26px;line-height:1.15}
h2{font-size:19px;line-height:1.2}
h3{font-size:16px;line-height:1.25}
h4{font-size:14px}
img,svg,video,canvas{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
a.link,.prose a{color:var(--lime);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer;background:none;border:0;padding:0;text-align:inherit}
button:disabled,[aria-disabled="true"]{cursor:not-allowed}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}
[hidden]{display:none!important}
hr{border:0;border-top:1px solid var(--line);margin:var(--sp-8) 0}
table{border-collapse:collapse}
::selection{background:var(--lime-soft);color:var(--text)}
kbd,.kbd{font:500 11px var(--mono);color:var(--muted);border:1px solid var(--line-2);border-radius:var(--radius-xs);padding:1px 5px;background:transparent}
code,.mono{font-family:var(--mono)}
small{font-size:11.5px}

/* Icons from the sprite: <svg class="i"><use href="#i-check"/></svg> ({% icon "check" %}) */
.i{width:16px;height:16px;flex:none;display:inline-block;vertical-align:-3px;fill:none}
.i.sm{width:12px;height:12px;vertical-align:-1px}
.i.md{width:14px;height:14px}
.i.lg{width:20px;height:20px}

/* Text utilities */
.muted{color:var(--muted)} .faint{color:var(--faint)} .t2{color:var(--text-2)}
.pass{color:var(--pass)} .warn-t{color:var(--warn)} .fail-t{color:var(--fail)} .violet-t{color:var(--violet-text)} .lime-t{color:var(--lime)}
.caps{font:600 10.5px var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.meta{font:500 11px var(--mono);color:var(--muted)}
.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.nowrap{white-space:nowrap}
.num{font-variant-numeric:tabular-nums}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Layout utilities */
.row{display:flex;align-items:center;gap:var(--sp-4);min-width:0}
.row.wrap{flex-wrap:wrap}
.row.end{justify-content:flex-end}
.stack{display:flex;flex-direction:column;gap:var(--sp-6);min-width:0}
.stack.tight{gap:var(--sp-3)}
.stack.loose{gap:var(--sp-9)}
.push{margin-left:auto}
.grow{flex:1;min-width:0}

/* htmx: indicators are styled here because htmx-config sets includeIndicatorStyles:false */
.htmx-indicator{opacity:0;transition:opacity var(--t-med) ease}
.htmx-request .htmx-indicator,.htmx-request.htmx-indicator{opacity:1}

/* model-viewer defaults (the inspector, stage and viewer size it) */
model-viewer{display:block;width:100%;height:100%;background:transparent;--poster-color:transparent;--progress-bar-color:var(--lime)}

/* Scrollbars */
*{scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px;border:2px solid var(--surface)}
::-webkit-scrollbar-track{background:transparent}

@media (pointer:coarse){
  .btn,.chip,.seg > *,.rail-nav a,.menu .it,.icon-btn{min-height:40px}
}

.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--lime);color:var(--lime-ink);padding:8px 12px;border-radius:var(--radius-ctl);font-weight:600}
.skip-link:focus{left:16px}
