/* Small, progressive refinements shared by the public site. */
:root{
  --interaction-time:180ms;
  --interaction-ease:cubic-bezier(.2,.65,.3,1);
}

/* Native navigation stays native; unsupported browsers show the page normally. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:site-page-out 120ms ease-out both}
::view-transition-new(root){animation:site-page-in 160ms ease-out both}
@keyframes site-page-out{to{opacity:0}}
@keyframes site-page-in{from{opacity:0}to{opacity:1}}

:where(a,button,summary,input,select,textarea){
  touch-action:manipulation;
}
:where(.button,.beta-submit,.text-button,.text-link,.home-next,
  .site-top-nav a,.site-language a,.bottom-nav a,.footer-links a,
  .audience-switch button,.document-tabs a,.motion-preference){
  transition:color var(--interaction-time) var(--interaction-ease),
    background-color var(--interaction-time) var(--interaction-ease),
    border-color var(--interaction-time) var(--interaction-ease),
    box-shadow var(--interaction-time) var(--interaction-ease),
    transform var(--interaction-time) var(--interaction-ease),
    filter var(--interaction-time) var(--interaction-ease);
}
:where(.button,.beta-submit,.text-button,.motion-preference){
  -webkit-user-select:none;
  user-select:none;
}
:where(a,button,input,select,textarea,summary):focus-visible{
  outline:2px solid var(--gold,#d7bf83);
  outline-offset:4px;
}
:where(input,select,textarea){
  transition:border-color 160ms ease,box-shadow 160ms ease;
}
:where(input,select,textarea):focus-visible{
  border-color:var(--gold,#d7bf83);
  box-shadow:0 0 0 3px #d7bf8314;
}
.site-top-nav a,.site-language a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
}
.site-language{align-items:center}
.text-link,.home-next,.footer-links a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
}
.journey-faq summary,.faq summary,.mobile-contents summary{
  min-height:48px;
  cursor:pointer;
}
.journey-faq summary:focus-visible,.faq summary:focus-visible{
  border-radius:4px;
}
details[open]>:where(p,ul,ol,div){
  animation:site-detail-in 180ms ease-out;
}
@keyframes site-detail-in{from{opacity:.55}to{opacity:1}}

@media(hover:hover) and (pointer:fine){
  :is(.button,.beta-submit,.text-button):not(:disabled):hover{
    transform:translateY(-1px);
    box-shadow:0 5px 18px #0002;
  }
  :is(.button,.beta-submit):not(:disabled):hover{
    filter:brightness(1.045);
  }
  :is(.text-link,.home-next,.footer-links a):hover{
    color:#e8d4a8;
    border-color:#d7bf8380;
  }
  .motion-preference:hover{
    border-color:#d7bf8366;
    background:#d7bf830c;
  }
}
:is(.button,.beta-submit,.text-button,.motion-preference):not(:disabled):active{
  transform:translateY(1px);
  filter:brightness(.97);
  box-shadow:none;
}
.audience-switch button:not(:disabled):active{
  background:#d7bf8320;
}
.bottom-nav a:active{background:#d7bf830d}

/* This control is quiet until a visitor chooses a different motion setting. */
.motion-preference{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  max-width:100%;
  min-height:44px;
  padding:9px 14px;
  color:var(--muted,#a5b5a9);
  background:transparent;
  border:1px solid #d7bf8329;
  border-radius:24px;
  font:inherit;
  font-size:11px;
  line-height:1.5;
  text-align:left;
  cursor:pointer;
}
.motion-preference::before{
  content:'';
  flex:none;
  width:6px;
  height:6px;
  border:1px solid var(--gold,#d7bf83);
  border-radius:50%;
}
.motion-preference[aria-pressed=true]{
  color:var(--gold,#d7bf83);
  border-color:#d7bf8352;
}
.motion-preference[aria-pressed=true]::before{background:currentColor}
.motion-preference-wrap{margin-top:24px}
.motion-preference:disabled{cursor:default;opacity:1}
.footer-small .motion-preference{align-self:flex-start}

/* A local scene indicator; the page remains readable while the world loads. */
.home-world #scene-loading{
  flex-direction:column;
  gap:15px;
  font-size:11px;
  letter-spacing:.035em;
  text-align:center;
}
.home-world #scene-loading>span:first-child{
  width:28px;
  height:28px;
  border-color:#d7bf8329;
  border-top-color:var(--gold,#d7bf83);
  box-shadow:0 0 22px #d7bf8308;
}
.home-world #scene-loading>span:last-child{
  max-width:24ch;
  line-height:1.7;
}
.home-world #motion-toggle:disabled{cursor:default;opacity:.8}

/* Keep flexible form content within its column, including Safari date fields. */
:where(.beta-field,.beta-fields,.field,.panel,.status-panel,.actions){min-width:0}
input[type=date],input[type=datetime-local],input[type=month]{
  box-sizing:border-box;
  min-width:0;
  max-width:100%;
}
input[type=date]::-webkit-date-and-time-value{
  min-width:0;
  text-align:start;
}

@media(max-width:600px){
  .page-heading h1{font-size:clamp(36px,10.5vw,46px);overflow-wrap:break-word}
  .service-row{flex-wrap:wrap}
  .site-language{gap:3px}
  .site-language a{min-width:44px;min-height:44px}
  .site-language>span{font-size:9px}
  .site-header{gap:12px}
  .site-header-end{min-width:0}
  .audience-switch button{min-height:44px}
  .home-world .audience-switch button{min-height:44px}
  body input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  body select,body textarea{font-size:16px}
  body.beta-page input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  body.beta-page select,body.beta-page textarea,
  body[data-status-page] input,body[data-status-page] select,body[data-status-page] textarea{font-size:16px}
  .beta-field input[type=date]{width:100%;inline-size:100%;min-inline-size:0}
  .bottom-nav a{min-height:48px;border-radius:8px}
  .site-footer{padding-bottom:max(24px,env(safe-area-inset-bottom))}
  .footer-small .motion-preference{margin-top:18px}
  .footer-links a{min-height:44px}
  .motion-preference{font-size:11px}
}

/* Preserve structural transforms used by the original world and badge. */
html[data-motion=reduced],
html[data-motion=reduced] *,
html[data-motion=reduced] *::before,
html[data-motion=reduced] *::after{
  animation:none!important;
  transition:none!important;
  scroll-behavior:auto!important;
}
html[data-motion=reduced] :is(.button,.beta-submit,.text-button,.motion-preference):is(:hover,:active){transform:none}
html[data-motion=reduced]::view-transition-old(root),
html[data-motion=reduced]::view-transition-new(root){animation:none!important}
@media(prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  html,html *,html *::before,html *::after{
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
  :is(.button,.beta-submit,.text-button,.motion-preference):is(:hover,:active){transform:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none!important}
}
