/* BLOOM page transitions, adapted from Gemini's user-supplied HTML.
   This module never resets global elements or hides content if JS is disabled. */
.thowi-loader-overlay {
  position:fixed;
  inset:0;
  z-index:100000;
  min-height:100vh;
  min-height:100dvh;
  display:none;
  align-items:center;
  justify-content:center;
  background:#1d3527;
  color:#f7f4e9;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 260ms cubic-bezier(.16,1,.3,1), visibility 0s 260ms;
}
html.thowi-loader-js-ready .thowi-loader-overlay {display:flex}
html.thowi-loader-active .thowi-loader-overlay,
html.thowi-loader-arriving .thowi-loader-overlay {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition:opacity 170ms ease-out, visibility 0s;
}
html.thowi-loader-arriving .thowi-loader-overlay {transition:none}
html.thowi-loader-revealing .thowi-loader-overlay {
  opacity:0;
  visibility:visible;
  pointer-events:none;
  transition:opacity 290ms cubic-bezier(.16,1,.3,1);
}
.thowi-loader-content {
  display:flex;
  align-items:center;
  flex-direction:column;
  justify-content:center;
  gap:8px;
  min-width:0;
  padding:30px;
  text-align:center;
  font-family:'DM Sans',Arial,sans-serif;
}
.thowi-loader-emblem {
  position:relative;
  display:grid;
  place-items:center;
  width:122px;
  height:122px;
  margin-bottom:15px;
}
.thowi-loader-bloom {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  fill:none;
  overflow:visible;
}
.thowi-loader-bloom circle {
  stroke:#b4cdb13d;
  stroke-width:1;
  stroke-dasharray:4 5;
  transform-origin:60px 60px;
}
.thowi-loader-bloom path {
  stroke:#e2d9be;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:85;
  stroke-dashoffset:85;
  transform-origin:60px 60px;
}
.thowi-loader-bloom path:nth-of-type(2) {stroke:#d59776}
.thowi-loader-bloom path:nth-of-type(3) {stroke:#a7c4ad}
.thowi-loader-bloom path:nth-of-type(4) {stroke:#dcd5bb}

.thowi-loader-wordmark {
  margin:0;
  color:#fbf8ed;
  font:800 15px/1.2 'DM Sans',Arial,sans-serif;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.thowi-loader-subtitle {
  color:#b3c4ae;
  font:500 italic 13px/1.6 Georgia,serif;
  letter-spacing:.05em;
}
html.thowi-loader-active .thowi-loader-bloom circle,
html.thowi-loader-arriving .thowi-loader-bloom circle {
  animation:thowi-loader-orbit 12s linear infinite;
}
html.thowi-loader-active .thowi-loader-bloom path,
html.thowi-loader-arriving .thowi-loader-bloom path {
  animation:thowi-loader-grow 1.5s cubic-bezier(.16,1,.3,1) infinite alternate;
}
html.thowi-loader-active .thowi-loader-bloom path:nth-of-type(2),
html.thowi-loader-arriving .thowi-loader-bloom path:nth-of-type(2) {animation-delay:.12s}
html.thowi-loader-active .thowi-loader-bloom path:nth-of-type(3),
html.thowi-loader-arriving .thowi-loader-bloom path:nth-of-type(3) {animation-delay:.24s}
html.thowi-loader-active .thowi-loader-bloom path:nth-of-type(4),
html.thowi-loader-arriving .thowi-loader-bloom path:nth-of-type(4) {animation-delay:.36s}
@keyframes thowi-loader-orbit {to{transform:rotate(360deg)}}
@keyframes thowi-loader-grow {
  0% {stroke-dashoffset:85;opacity:.3;transform:scale(.82)}
  100% {stroke-dashoffset:0;opacity:1;transform:scale(1)}
}
@media(prefers-reduced-motion:reduce) {
  .thowi-loader-overlay {transition:none!important}
  .thowi-loader-bloom circle,.thowi-loader-bloom path {animation:none!important}
  .thowi-loader-bloom path {stroke-dashoffset:0}
}
