body.is-landing .app-header {
  display: none;
}
.app-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0 14px;
  position: sticky;
  top: 0;
  z-index: 20;
  animation: gm-header-in var(--dur-slow) var(--ease-out) backwards;
}
.app-header::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, var(--line) 14%, rgba(201, 161, 92, 0.38) 50%, var(--line) 86%, transparent 100%);
  animation: gm-hairline var(--dur-epic) var(--ease-out) 80ms backwards;
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  margin-inline-start: -8px;
  background: none;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  perspective: 300px;
  transition: background-color var(--dur-quick) var(--ease-out);
}
@media (hover: hover) {
  .brand:hover { background-color: rgba(255, 255, 255, 0.025); }
  .brand:hover .brand-name { color: var(--brass-hi); }
}
.brand:active { transform: scale(0.97); }
.brand-name {
  font-family: var(--font-display);
  font-size: 1.22rem;
  letter-spacing: 0.06em;
  color: var(--bone);
  transition: color var(--dur-quick) var(--ease-out);
}
:root[lang="ar"] .brand-name,
:root[lang="aii"] .brand-name { letter-spacing: 0; }

.icon-button {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--mat-panel) padding-box, var(--edge-quiet) border-box;
  border: 1px solid transparent;
  color: var(--ash);
  border-radius: 50%;
  cursor: pointer;
  box-shadow: var(--bevel), var(--depth-1);
  transition: color var(--dur-quick) var(--ease-out), transform var(--dur-press) var(--ease-out);
}
.icon-button .gear { transition: transform var(--dur-slow) var(--ease-spring-lively); }
@media (hover: hover) {
  .icon-button:hover { color: var(--brass); }
  .icon-button:hover .gear { transform: rotate(60deg); }
}
.icon-button:active { transform: scale(0.92); }
body.sheet-open .settings-button { color: var(--brass); }
body.sheet-open .settings-button .gear { transform: rotate(120deg); }

.app-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 14px 0 0;
  min-height: 0;
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: none;
  transition: transform var(--dur-slow) var(--ease-out), opacity var(--dur-slow) var(--ease-out);
  transform-origin: 50% 0;
}
@media (min-width: 641px) {
  body.sheet-open .app-main {
    transform: scale(0.985);
    opacity: 0.55;
  }
}
.main-view.landing-mode {
  align-items: center;
  justify-content: center;
  flex: 1;
  min-height: 0;
  margin-top: -14px;
}
.main-view.results-mode {
  align-items: stretch;
  justify-content: flex-start;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding-bottom: 14px;
}

.results-fixed {
  flex: none;
  display: flex;
  flex-direction: column;
  overscroll-behavior: none;
  max-height: 45vh;
  min-height: 0;
}
.results-fixed .search-input,
.results-fixed .search-button {
  touch-action: manipulation;
}
.results-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
  margin: 0 -4px;
  padding: 0 4px;
}
.results-scroll { scrollbar-width: none; }
.results-scroll::-webkit-scrollbar,
.similar-scroll::-webkit-scrollbar { display: none; }

.results-scroll[data-edge="below"] {
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent);
  mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent);
}
.results-scroll[data-edge="above"] {
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 20px);
  mask-image: linear-gradient(to bottom, transparent, #000 20px);
}
.results-scroll[data-edge="above below"] {
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 20px, #000 calc(100% - 26px), transparent);
  mask-image: linear-gradient(to bottom, transparent, #000 20px, #000 calc(100% - 26px), transparent);
}

.similar-scroll {
  flex: 1 1 0;
  min-height: 0;
  height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
  background: linear-gradient(var(--panel), var(--panel)) padding-box, var(--edge-quiet) border-box;
  border: 1px solid transparent;
  border-radius: var(--radius-lg);
  padding: 0 14px 18px;
  scrollbar-width: none;
  margin-top: 12px;
  box-shadow: var(--bevel), var(--depth-2);
  scroll-padding-top: 64px;
}

.landing {
  position: relative;
  width: 100%;
  max-width: 560px;
  text-align: center;
  isolation: isolate;
}
.landing-content {
  position: relative;
  z-index: 1;
}

.instrument-dial {
  position: absolute;
  z-index: 0;
  left: 50%;
  top: 50%;
  width: min(620px, 98vw);
  aspect-ratio: 1;
  transform: translate(-50%, -54%);
  pointer-events: none;
  color: var(--brass-dim);
  animation: gm-dial-in 1.6s var(--ease-out) backwards;
}
@keyframes gm-dial-in {
  from { opacity: 0; transform: translate(-50%, -54%) scale(0.92) rotate(-12deg); }
}
.dial-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.dial-layer svg { width: 100%; height: 100%; display: block; }
.dial-ring {
  fill: none;
  stroke: currentColor;
  stroke-width: 0.28;
  opacity: 0.55;
}
.dial-ring-faint { opacity: 0.28; }
.dial-numerals text {
  fill: currentColor;
  font-family: var(--font-display);
  font-size: 4.1px;
  letter-spacing: 0.04em;
  opacity: 0.55;
}
.dial-ticks {
  opacity: 0.5;
  animation: gm-spin 240s linear infinite;
}
.dial-ticks path {
  stroke: currentColor;
  stroke-width: 0.32;
}
.dial-inner {
  opacity: 0.4;
  animation: gm-spin-rev 180s linear infinite;
}
.dial-dash {
  fill: none;
  stroke: currentColor;
  stroke-width: 0.3;
  stroke-dasharray: 0.5 2.6;
}
.dial-marks path { fill: currentColor; opacity: 0.8; }
.dial-needle {
  opacity: 0.4;
  transition: transform 1.2s var(--ease-spring-lively), opacity var(--dur-slow) var(--ease-out);
}
.instrument-dial.is-reading .dial-needle { opacity: 1; }
.needle-line {
  stroke: var(--brass);
  stroke-width: 0.35;
  opacity: 0.7;
}
.needle-head { fill: var(--brass); }

.landing-title {
  font-family: var(--font-display);
  font-size: clamp(2.7rem, 7.4vw, 3.7rem);
  font-weight: 400;
  letter-spacing: 0.035em;
  line-height: 1.04;
  color: var(--bone);
  margin-bottom: 10px;
  overflow: hidden;
  padding: 0.04em 0 0.1em;
}
:root[lang="ar"] .landing-title,
:root[lang="aii"] .landing-title { letter-spacing: 0; }
:root[lang="aii"] .landing-title { line-height: 1.35; padding-top: 0.12em; padding-bottom: 0.18em; }
.landing-title .ch {
  display: inline-block;
  animation: gm-letter 1s var(--ease-out) backwards;
  animation-delay: calc(140ms + var(--i, 0) * 60ms);
}
.landing-tagline {
  font-family: var(--font-display);
  font-style: italic;
  color: var(--ash-hi);
  font-size: 1.04rem;
  letter-spacing: 0.01em;
  margin-bottom: 30px;
  animation: gm-rise var(--dur-epic) var(--ease-out) 520ms backwards;
}
:root[lang="ar"] .landing-tagline,
:root[lang="aii"] .landing-tagline,
:root[lang="ru"] .landing-tagline { font-style: normal; }
.landing-form {
  animation: gm-rise var(--dur-epic) var(--ease-out) 660ms backwards;
}

.live-readout {
  min-height: 28px;
  margin-top: 16px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: 4px 18px;
  animation: gm-fade var(--dur-epic) var(--ease-out) 900ms backwards;
}
.readout-item {
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  animation: gm-rise-soft var(--dur-base) var(--ease-out) backwards;
  transition: opacity var(--dur-quick) var(--ease-out), transform var(--dur-quick) var(--ease-out);
}
.readout-item.is-leaving {
  opacity: 0;
  transform: translateY(-4px);
}
.readout-label { font-size: 0.6rem; color: var(--ash); }
.readout-value {
  font-size: 1.02rem;
  color: var(--brass);
  min-width: 2ch;
  text-align: start;
}
.readout-item.is-reverse .readout-label { order: 2; }
.readout-item.is-reverse .readout-value::before {
  content: '№ ';
  color: var(--brass-dim);
}

.search-form {
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  padding: 5px;
  border-radius: 17px;
  background: var(--mat-panel) padding-box, var(--edge-quiet) border-box;
  border: 1px solid transparent;
  box-shadow: var(--bevel), var(--depth-1), 0 0 0 0 transparent;
  transition: box-shadow var(--dur-base) var(--ease-out);
}
.search-form:focus-within::before { opacity: 1; }
.search-form:focus-within {
  box-shadow: var(--bevel), var(--depth-2);
}

.search-field {
  position: relative;
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
}
.search-glyph {
  position: absolute;
  inset-inline-start: 12px;
  display: flex;
  color: var(--ash-lo);
  pointer-events: none;
  transition: color var(--dur-quick) var(--ease-out), transform var(--dur-base) var(--ease-spring);
}
.search-form:focus-within .search-glyph {
  color: var(--brass);
  transform: scale(1.06);
}

.search-input {
  flex: 1;
  width: 100%;
  min-width: 0;
  background: transparent;
  border: none;
  color: var(--bone);
  caret-color: var(--brass);
  outline: none;
  padding-inline-start: 38px;
  padding-inline-end: 34px;
  letter-spacing: 0.005em;
  transition: color var(--dur-quick) var(--ease-out);
}
.search-input:focus-visible { outline: none; }
.search-input::placeholder {
  color: var(--ash-lo);
  opacity: 1;
  transition: opacity var(--dur-base) var(--ease-out);
}
.search-input:focus::placeholder { opacity: 0.55; }

.mode-glyph {
  position: absolute;
  inset-inline-end: 10px;
  font-size: 0.95rem;
  color: var(--brass);
  opacity: 0;
  transform: scale(0.6) translateY(2px);
  pointer-events: none;
  transition: opacity var(--dur-quick) var(--ease-out), transform var(--dur-base) var(--ease-spring-lively);
}
.search-form.is-numeric .mode-glyph {
  opacity: 1;
  transform: none;
}

.search-button {
  flex: none;
  border-radius: 12px;
}
.search-button .arrow-glyph { opacity: 0.75; }

.landing-form .search-input {
  height: 50px;
  font-size: 1.06rem;
}
.landing-form .search-button {
  height: 50px;
  padding: 0 22px;
  font-size: 0.95rem;
}

.top-search-bar { margin-bottom: 14px; }
.top-form { border-radius: 15px; padding: 4px; }
.top-form .search-input { height: 42px; font-size: 0.97rem; }
.top-form .search-button {
  height: 42px;
  padding: 0 18px;
  font-size: 0.9rem;
  border-radius: 11px;
}

@media (max-width: 640px) {
  .app-header { padding: 12px 0 11px; }
  .brand-name { font-size: 1.08rem; }
  .icon-button { width: 38px; height: 38px; }

  .landing-tagline { margin-bottom: 26px; font-size: 0.98rem; }
  .landing-form .search-input { height: 48px; font-size: 1rem; }
  .landing-form .search-button { height: 48px; padding: 0 16px; }
  .landing-form .search-button .arrow-glyph { display: none; }

  .top-form .search-button { padding: 0 14px; }
  .top-form .search-button .arrow-glyph { display: none; }
  .search-input { padding-inline-start: 34px; }
  .search-glyph { inset-inline-start: 10px; }

  .similar-scroll { padding: 0 12px 16px; border-radius: 18px; }
}
