/* Shared interaction language: real states, restrained motion. */
:root{--ux-fast:150ms;--ux-normal:240ms;--ux-ease:cubic-bezier(.22,.68,.28,1)}
:where(button,a,input,textarea,select,summary,[role="button"]){-webkit-tap-highlight-color:transparent;transition:background-color var(--ux-fast),border-color var(--ux-fast),box-shadow var(--ux-normal),opacity var(--ux-fast),transform var(--ux-fast) var(--ux-ease)}
:where(button,a,input,textarea,select,summary,[tabindex]):focus-visible{outline:3px solid var(--accent,var(--ink,#17140f));outline-offset:4px}
:where(button,[role="button"],summary):not(:disabled):not([aria-disabled="true"]):active{transform:translateY(1px)}
:where(button:disabled,[aria-disabled="true"]){cursor:not-allowed;opacity:.55}
:where(input,textarea,select):focus{border-color:var(--accent);box-shadow:var(--ring)}
:where(input,textarea,select)[aria-invalid="true"]{border-color:var(--clay);box-shadow:0 0 0 2px var(--clay-wash)}
:where(progress){accent-color:var(--accent);height:8px;border-radius:8px;overflow:hidden}
:where([aria-busy="true"],.ux-waiting){cursor:progress}
button[aria-busy="true"]::after{content:"";display:inline-block;width:.8em;height:.8em;margin-inline-start:.55em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:middle;animation:ux-spin .8s linear infinite}
:where([role="status"],[role="alert"],[aria-live]):not(:empty){transition:background-color var(--ux-normal),color var(--ux-normal)}
.ux-state-change{animation:none}
:where(dialog[open],[role="dialog"]:not([hidden])){animation:ux-enter .24s var(--ux-ease)}
@media(hover:hover){:where(.btn,button,summary):not(:disabled):not([aria-disabled="true"]):hover{filter:brightness(.97)}:where(.cw-card,.daily-tools>a,.daily-services>a,.library-card):hover{box-shadow:var(--shadow-2);translate:0 -2px}}
@keyframes ux-enter{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
@keyframes ux-breathe{0%,100%{opacity:1}50%{opacity:.65}}
@keyframes ux-spin{to{transform:rotate(360deg)}}
@keyframes ux-feedback{from{background-color:var(--ochre-wash,var(--paper-deep))}to{background-color:transparent}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Keep operational errors distinct from ordinary waiting messages. */
.class-end-dialog [data-end-error][role="alert"]{color:var(--clay);background:var(--clay-wash);padding:12px 14px;border-radius:8px}

/* Public navigation shares one shell across short and long pages. */
html { scrollbar-gutter: stable; }
@supports not (scrollbar-gutter: stable) { html { overflow-y: scroll; } }
body:not(.studio-workspace):is([data-page="home"],[data-page="wall"],[data-page="market"],[data-page="copyright"],[data-page="certificates"]) {
  --public-shell-width: 1440px;
  --public-heading-size: clamp(24px, 2.3vw, 32px);
}
body:not(.studio-workspace):is([data-page="home"],[data-page="wall"],[data-page="market"],[data-page="copyright"],[data-page="certificates"]) :is(.site-header__inner, #main.wrap, #main > .wrap) {
  max-width: var(--public-shell-width);
  padding-inline: var(--gutter);
}
body:not(.studio-workspace):is([data-page="home"],[data-page="market"],[data-page="copyright"],[data-page="certificates"]) :is(#main.wrap, #main > .wrap) { padding-top: 28px; }
body[data-page="wall"]:not(.studio-workspace) #main > .wrap > .library-heading { padding-top: 28px; }
body:not(.studio-workspace):is([data-page="home"],[data-page="wall"],[data-page="market"],[data-page="copyright"],[data-page="certificates"]) :is(.daily-heading,.library-heading,.catalog-heading,.portal-heading) h1 {
  font-size: var(--public-heading-size);
  line-height: 1.45;
  margin-top: 8px !important;
}
body:not(.studio-workspace):is([data-page="home"],[data-page="wall"],[data-page="market"],[data-page="copyright"],[data-page="certificates"]) :is(.daily-heading,.library-heading,.catalog-heading,.portal-heading) .eyebrow {
  font-size: 12px;
  line-height: 1.8;
  margin: 0;
}
/* Side notes and search controls must not push the page title downward. */
body:not(.studio-workspace):is([data-page="home"],[data-page="wall"],[data-page="market"],[data-page="copyright"],[data-page="certificates"]) :is(.daily-heading,.library-heading,.catalog-heading,.portal-heading) { align-items: flex-start; }
body[data-page="wall"]:not(.studio-workspace) .wall-title { align-items: center; }
body[data-page="wall"]:not(.studio-workspace) .wall-title .wall-count { transform: none; padding-block: 3px; line-height: 1.4; }
