/* U1 shared design tokens. Adapters may override roles; component geometry stays shared. */
:root {
  --u1-paper:#fff; --u1-ink:#20221f; --u1-muted:#5c615b; --u1-surface:#f3f4f1;
  --u1-line:#d6dad3; --u1-brand:#2e4a3b; --u1-brand-hover:#233b2e; --u1-on-brand:#fff;
  --u1-font:inherit; --u1-body:1rem; --u1-note:.875rem; --u1-title:2rem;
  --u1-radius:12px; --u1-card-radius:20px; --u1-pill:999px; --u1-control:48px; --u1-target:44px;
  --u1-check:16px; --u1-focus:3px; --u1-border:1px; --u1-gap:8px; --u1-space:16px;
  --u1-pad:24px; --u1-gutter:20px; --u1-section:80px; --u1-grid-gap:48px;
  --u1-gallery-width:216px; --u1-gallery-height:180px; --u1-sticky:96px;
  --u1-fast:160ms; --u1-gallery-time:45s;
}
.u1-site button,.u1-site .button { border-radius:var(--u1-radius); font-family:var(--u1-font); }
.u1-site :where(button,a,input,textarea,summary,select):focus-visible { outline:var(--u1-focus) solid var(--u1-brand); outline-offset:var(--u1-focus); }
.u1-site .u1-button {
  display:inline-flex; align-items:center; justify-content:center; gap:var(--u1-gap); min-height:var(--u1-control);
  padding:var(--u1-gap) var(--u1-pad); border:var(--u1-border) solid transparent; border-radius:var(--u1-radius);
  font:600 var(--u1-body)/1.35 var(--u1-font); text-align:center; text-decoration:none; cursor:pointer;
  transition:background-color var(--u1-fast),color var(--u1-fast),transform var(--u1-fast); box-shadow:none;
}
.u1-site .u1-button--primary,.u1-site .primary { background:var(--u1-brand); color:var(--u1-on-brand); border-color:var(--u1-brand); }
.u1-site .u1-button--primary:hover:not(:disabled),.u1-site .primary:hover:not(:disabled) { background:var(--u1-brand-hover); border-color:var(--u1-brand-hover); }
.u1-site .u1-button--secondary { color:var(--u1-ink); background:transparent; border-color:var(--u1-line); }
.u1-site .u1-button--ghost { color:var(--u1-ink); background:transparent; }
.u1-site .u1-button--secondary:hover,.u1-site .u1-button--ghost:hover { background:var(--u1-surface); }
.u1-site .u1-button:active:not(:disabled) { transform:scale(.98); }
.u1-site .u1-button:disabled,.u1-site .primary:disabled { opacity:.5; cursor:not-allowed; transform:none; }
.u1-site .u1-button[aria-busy=true] { cursor:progress; }
.u1-site .u1-button--small { min-height:var(--u1-target); padding-inline:var(--u1-space); font-size:var(--u1-note); }
.u1-site .u1-segmented { display:inline-flex; flex-wrap:wrap; align-items:center; gap:0; width:fit-content; max-width:100%; padding:4px; background:var(--u1-surface); border:0; border-radius:var(--u1-pill); }
.u1-site .u1-segmented .u1-button { flex:1 1 auto; min-width:var(--u1-target); min-height:var(--u1-target); padding:var(--u1-gap) var(--u1-space); border:0; border-radius:var(--u1-pill); font-size:var(--u1-note); white-space:nowrap; }
.u1-site .u1-segmented .u1-button[aria-pressed=true] { color:var(--u1-on-brand); background:var(--u1-brand); box-shadow:none; }
.u1-site .u1-prompt-card { padding:var(--u1-space); border-radius:var(--u1-card-radius); background:var(--u1-paper); color:var(--u1-ink); border:var(--u1-border) solid var(--u1-line); }
.u1-site .u1-prompt-card textarea { display:block; width:100%; resize:vertical; min-height:88px; margin:0; padding:var(--u1-gap) 0; border:0; border-radius:0; background:transparent; color:var(--u1-ink); font:400 var(--u1-body)/1.5 var(--u1-font); }
.u1-site .u1-prompt-card label { font-size:var(--u1-body); }
.u1-site .u1-prompt-card .u1-submit { width:100%; }
.u1-site .u1-chips { display:flex; flex-wrap:wrap; gap:var(--u1-gap); margin-top:var(--u1-gap); }
.u1-site .u1-chip { display:inline-flex; align-items:center; min-height:var(--u1-target); border:0; padding:var(--u1-gap) var(--u1-space); border-radius:var(--u1-pill); background:var(--u1-surface); color:var(--u1-ink); font:400 var(--u1-note)/1.35 var(--u1-font); cursor:pointer; }
.u1-site .u1-chip:hover { background:var(--u1-line); }
.u1-site .u1-chip[aria-pressed=true] { background:var(--u1-brand); color:var(--u1-on-brand); }
.u1-site .u1-check { display:flex; align-items:center; gap:var(--u1-gap); min-height:var(--u1-target); margin:var(--u1-gap) 0; font-size:var(--u1-body); line-height:1.45; cursor:pointer; }
.u1-site .u1-check input { appearance:none; flex:0 0 var(--u1-check); width:var(--u1-check); height:var(--u1-check); min-height:0; margin:0; padding:0; border:var(--u1-border) solid var(--u1-muted); border-radius:4px; background:var(--u1-paper); }
.u1-site .u1-check input:checked { background:var(--u1-brand); border-color:var(--u1-brand); }
.u1-site .u1-check input:checked:after { content:''; display:block; width:4px; height:8px; border:solid var(--u1-on-brand); border-width:0 2px 2px 0; transform:translate(5px,1px) rotate(45deg); }
.u1-site .u1-check a { text-decoration:underline; }
.u1-site .u1-trust { list-style:none; display:flex; flex-wrap:wrap; gap:4px var(--u1-space); margin:var(--u1-space) 0 0; padding:0; color:var(--u1-muted); font:400 var(--u1-note)/1.5 var(--u1-font); }
.u1-site .u1-trust li { padding:0; margin:0; }
.u1-site .u1-trust li+li:before { content:'·'; margin-right:var(--u1-space); }
.u1-site .u1-note { font:400 var(--u1-note)/1.5 var(--u1-font); color:var(--u1-muted); }
.u1-site .u1-faq { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--u1-pad); width:100%; max-width:none; margin-block:var(--u1-section); text-align:left; }
.u1-faq-heading h2 { margin:0; font-size:var(--u1-title); }
.u1-faq-heading p { margin:var(--u1-space) 0 0; }
.u1-faq-list { min-width:0; display:grid; gap:var(--u1-gap); }
.u1-faq-item { background:var(--u1-surface); border:0; border-radius:var(--u1-radius); padding:0 var(--u1-pad); }
.u1-faq-item summary { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:var(--u1-space); padding:var(--u1-space) 0; list-style:none; cursor:pointer; font:600 var(--u1-body)/1.45 var(--u1-font); }
.u1-faq-item summary::-webkit-details-marker { display:none; }
.u1-faq-item summary:after { content:'+'; font-size:1.5rem; font-weight:400; }
.u1-faq-item[open] summary:after { content:'−'; }
.u1-faq-item p { margin:0 0 var(--u1-pad); max-width:65ch; font:400 var(--u1-body)/1.6 var(--u1-font); color:var(--u1-ink); }
.u1-site .u1-gallery { margin-block:var(--u1-section); min-width:0; }
.u1-gallery-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:var(--u1-gap); margin-bottom:var(--u1-space); }
.u1-gallery-heading h2 { margin:0; font-size:var(--u1-title); }
.u1-gallery-window { overflow-x:auto; scrollbar-width:thin; mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent); }
.u1-gallery-track { display:flex; width:max-content; gap:var(--u1-space); animation:u1-gallery-travel var(--u1-gallery-time) linear infinite; }
.u1-gallery-run { display:flex; gap:var(--u1-space); }
.u1-gallery-item { width:var(--u1-gallery-width); margin:0; flex:none; }
.u1-gallery-item img { display:block; width:100%; height:var(--u1-gallery-height); object-fit:cover; border-radius:var(--u1-radius); background:var(--u1-surface); }
.u1-gallery-item figcaption { padding-top:var(--u1-gap); font:400 var(--u1-note)/1.5 var(--u1-font); color:var(--u1-muted); }
.u1-gallery-window:hover .u1-gallery-track,.u1-gallery-window:focus-within .u1-gallery-track { animation-play-state:paused; }
@keyframes u1-gallery-travel { to { transform:translateX(calc(-50% - var(--u1-gap))); } }
@media(min-width:768px) {
  :root { --u1-title:2.5rem; --u1-section:96px; --u1-gallery-width:280px; --u1-gallery-height:210px; }
  .u1-site .u1-faq { grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:var(--u1-grid-gap); }
  .u1-faq-heading { position:sticky; top:var(--u1-sticky); align-self:start; }
}
@media(prefers-reduced-motion:reduce) {
  .u1-gallery-track { animation:none; transform:none; }
  .u1-gallery-copy { display:none; }
  .u1-site .u1-button { transition:none; }
}

@media(prefers-reduced-motion:no-preference) {
  .u1-enter { animation:u1-enter 420ms cubic-bezier(.2,.7,.2,1) both; }
}
@keyframes u1-enter { from { transform:translateY(16px); opacity:.65; } to { transform:translateY(0); opacity:1; } }
