
/* SnapCrack v0.1: proposed components, not the original website stylesheet.
   Load after snapcrack-tokens.css. Apply .sc-ui to the application wrapper.
   Prefixes prevent collisions; no global element reset is applied. */
.sc-ui { font-family:var(--sc-font-sans); font-size:var(--sc-text-base); line-height:var(--sc-leading-body); color:var(--sc-text); background:var(--sc-bg); -webkit-text-size-adjust:100%; }
.sc-ui, .sc-ui *, .sc-ui *::before, .sc-ui *::after { box-sizing:border-box; }
.sc-ui [hidden] { display:none !important; }
.sc-ui :where(h1,h2,h3,h4,p,ul,ol,dl) { margin-block-start:0; }
.sc-ui :where(button,input,select,textarea) { font:inherit; }
.sc-ui :where(h1,h2,h3,h4,p,a,button,label,td,th) { overflow-wrap:break-word; }
.sc-container { width:min(calc(100% - 2rem), var(--sc-container)); margin-inline:auto; }
.sc-section { padding-block:var(--sc-space-16); }
.sc-stack { display:flex; flex-direction:column; gap:var(--sc-space-4); }
.sc-stack > * { margin-block:0; }
.sc-row { display:flex; flex-wrap:wrap; align-items:center; gap:var(--sc-space-3); }
.sc-grid { display:grid; grid-template-columns:1fr; gap:var(--sc-space-6); }
.sc-grid > *, .sc-row > *, .sc-card { min-width:0; }
.sc-display { margin:0; font-size:var(--sc-text-display); line-height:1.02; font-weight:var(--sc-weight-display); letter-spacing:var(--sc-tracking-heading); }
.sc-h1 { font-size:var(--sc-text-h1); line-height:var(--sc-leading-heading); font-weight:var(--sc-weight-bold); letter-spacing:var(--sc-tracking-heading); }
.sc-h2 { font-size:var(--sc-text-h2); line-height:1.2; font-weight:var(--sc-weight-bold); letter-spacing:-0.025em; }
.sc-h3 { font-size:var(--sc-text-h3); line-height:1.3; font-weight:var(--sc-weight-semibold); }
.sc-eyebrow { font-size:var(--sc-text-xs); font-weight:var(--sc-weight-bold); letter-spacing:0.12em; text-transform:uppercase; }
.sc-lead { max-width:var(--sc-reading-width); font-size:var(--sc-text-lg); color:var(--sc-text-muted); }
.sc-muted { color:var(--sc-text-muted); }
.sc-small { font-size:var(--sc-text-sm); }
.sc-numeric { font-variant-numeric:tabular-nums; }
.sc-code { font-family:var(--sc-font-mono); font-size:0.875em; overflow-wrap:anywhere; }
.sc-link { color:var(--sc-link); text-decoration:underline; text-underline-offset:0.2em; text-decoration-thickness:1px; }
.sc-link:hover { text-decoration-thickness:2px; }
.sc-skip-link { position:fixed; top:0.5rem; left:0.5rem; z-index:100; padding:0.75rem 1rem; background:#FFFFFF; color:#101010; transform:translateY(-200%); }
.sc-skip-link:focus { transform:translateY(0); }
.sc-ui :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid var(--sc-focus); outline-offset:3px; box-shadow:0 0 0 3px var(--sc-bg); }
.sc-button { max-width:100%; overflow-wrap:anywhere; display:inline-flex; align-items:center; justify-content:center; gap:var(--sc-space-2); min-height:var(--sc-control-height); min-width:var(--sc-control-height); padding:0.625rem 1.25rem; border:1px solid var(--sc-action-border); border-radius:var(--sc-radius-control); background:var(--sc-accent); color:var(--sc-on-accent); font-weight:var(--sc-weight-bold); line-height:1.35; text-align:center; text-decoration:none; cursor:pointer; transition:background-color var(--sc-duration-fast) var(--sc-ease), border-color var(--sc-duration-fast) var(--sc-ease); }
.sc-button:hover:not(:disabled) { background:var(--sc-accent-hover); }
.sc-button:active:not(:disabled) { background:var(--sc-accent-active); }
.sc-button--secondary { color:var(--sc-text); background:var(--sc-surface); border-color:var(--sc-control-border); }
.sc-button--secondary:hover:not(:disabled) { background:var(--sc-surface-raised); }
.sc-button--danger { background:var(--sc-danger-button); color:var(--sc-on-danger-button); border-color:var(--sc-danger-text); }
.sc-button--danger:hover:not(:disabled) { background:var(--sc-danger-button-hover); border-color:var(--sc-danger-text); }
.sc-button:disabled { background:var(--sc-disabled-bg); color:var(--sc-disabled-text); border-color:var(--sc-control-border); cursor:not-allowed; }
.sc-button--compact { min-height:var(--sc-control-compact-height); min-width:var(--sc-control-compact-height); padding-inline:1rem; }
.sc-button--full { width:100%; }
.sc-icon { display:inline-block; width:1.25rem; height:1.25rem; flex:none; stroke:currentColor; stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.sc-card { padding:var(--sc-space-6); border:1px solid var(--sc-border); border-radius:var(--sc-radius-card); background:var(--sc-surface); color:var(--sc-text); }
.sc-card--featured { border:2px solid var(--sc-text); }
.sc-card--featured .sc-eyebrow { display:inline-block; padding:0.25rem 0.5rem; background:var(--sc-accent); color:var(--sc-on-accent); }
.sc-field { display:flex; flex-direction:column; gap:var(--sc-space-2); }
.sc-label { font-weight:var(--sc-weight-semibold); color:var(--sc-text); }
.sc-input { width:100%; min-height:var(--sc-control-height); padding:0.6875rem 0.875rem; border:1px solid var(--sc-control-border); border-radius:var(--sc-radius-control); color:var(--sc-text); background:var(--sc-surface); font-size:1rem; }
.sc-input::placeholder { color:var(--sc-text-muted); opacity:1; }
.sc-input[aria-invalid="true"] { border:2px solid var(--sc-danger-text); }
.sc-input:disabled { background:var(--sc-disabled-bg); color:var(--sc-disabled-text); cursor:not-allowed; }
.sc-help, .sc-error { margin:0; font-size:var(--sc-text-sm); }
.sc-help { color:var(--sc-text-muted); }
.sc-error { color:var(--sc-danger-text); }
.sc-check-label { display:flex; align-items:flex-start; gap:0.75rem; padding-block:0.625rem; min-height:2.75rem; cursor:pointer; }
.sc-check-label input { margin-top:0.2rem; width:1.25rem; height:1.25rem; flex:none; accent-color:var(--sc-text); }
.sc-badge { display:inline-flex; align-items:center; gap:0.375rem; width:fit-content; padding:0.3125rem 0.625rem; border-radius:var(--sc-radius-pill); font-size:var(--sc-text-xs); font-weight:var(--sc-weight-semibold); line-height:1.4; background:var(--sc-surface-raised); color:var(--sc-text); }
.sc-badge--success { color:var(--sc-success-text); background:var(--sc-success-bg); }
.sc-badge--warning { color:var(--sc-warning-text); background:var(--sc-warning-bg); }
.sc-badge--danger { color:var(--sc-danger-text); background:var(--sc-danger-bg); }
.sc-badge--info { color:var(--sc-info-text); background:var(--sc-info-bg); }
.sc-alert { padding:1rem; border:1px solid currentColor; border-radius:var(--sc-radius-control); background:var(--sc-info-bg); color:var(--sc-info-text); }
.sc-alert--success { background:var(--sc-success-bg); color:var(--sc-success-text); }
.sc-alert--warning { background:var(--sc-warning-bg); color:var(--sc-warning-text); }
.sc-alert--danger { background:var(--sc-danger-bg); color:var(--sc-danger-text); }
.sc-rule { border:0; border-top:1px solid var(--sc-border); width:100%; margin-block:var(--sc-space-6); }
.sc-table-wrap { overflow-x:auto; border:1px solid var(--sc-border); border-radius:var(--sc-radius-card); }
.sc-table { width:100%; border-collapse:collapse; font-size:var(--sc-text-sm); text-align:left; }
.sc-table caption { text-align:left; padding:1rem; font-weight:var(--sc-weight-semibold); background:var(--sc-surface); }
.sc-table th { padding:0.875rem 1rem; font-weight:var(--sc-weight-semibold); background:var(--sc-surface-raised); }
.sc-table td { padding:1rem; border-top:1px solid var(--sc-border); background:var(--sc-surface); }
.sc-nav { display:flex; flex-wrap:wrap; gap:0.5rem; align-items:center; }
.sc-nav-link { display:inline-flex; align-items:center; min-height:2.75rem; padding:0.5rem 0.75rem; color:var(--sc-text); text-decoration:none; border-radius:var(--sc-radius-control); }
.sc-nav-link:hover { text-decoration:underline; text-underline-offset:0.2em; }
.sc-nav-link[aria-current="page"] { background:var(--sc-accent); color:var(--sc-on-accent); font-weight:var(--sc-weight-semibold); }
.sc-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (min-width:40rem) { .sc-container { width:min(calc(100% - 3rem), var(--sc-container)); } }
@media (min-width:48rem) { .sc-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); } .sc-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (prefers-reduced-motion:reduce) { .sc-ui *, .sc-ui *::before, .sc-ui *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media (forced-colors:active) { .sc-button,.sc-input,.sc-card,.sc-badge,.sc-alert { border:1px solid CanvasText; } .sc-ui :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid Highlight; box-shadow:none; } }

