:root{--onnen-fade-in:420ms;--onnen-fade-out:280ms;--onnen-fade-ease:cubic-bezier(.22,.61,.36,1)}
html body #app{position:relative}
/* Privacy protection takes effect with the canonical route, before any fade. */
html body #app>.screen:not(.active) .v101-veil-content,html body #app>.screen:not(.active) .v101-veil-content *{visibility:hidden!important}
html body #app>.screen.active{animation:none!important}
html body #app>.screen.onnen-screen-out:not(.active){display:block!important;position:absolute!important;inset:0 0 auto;pointer-events:none!important;z-index:0;animation:none!important}
html body #app>.screen.active{position:relative;z-index:1}
html body dialog[data-onnen-motion]{will-change:opacity}
html body dialog[data-motion-phase='closing']{pointer-events:none}
html body dialog[data-onnen-motion]::backdrop{opacity:1;transition:opacity var(--onnen-fade-out) ease}
html body dialog[data-motion-phase='closing']::backdrop{opacity:0}
@starting-style{html body dialog[data-onnen-motion][open]::backdrop{opacity:0}}
html body #v18Welcome{animation:onnen-threshold-arrive .4s var(--onnen-fade-ease) both}
@keyframes onnen-threshold-arrive{from{opacity:0}to{opacity:1}}
html body #toast{transition:opacity var(--onnen-fade-in),visibility var(--onnen-fade-out);transform:none}
html body #v22RitualClock{transition:opacity var(--onnen-fade-in),visibility var(--onnen-fade-out)!important}
@media(prefers-reduced-motion:reduce){:root{--onnen-fade-in:0ms;--onnen-fade-out:0ms}html body #v18Welcome{animation:none!important}}

/* Touch browsers: dark surfaces supply separation without repeatedly sampling
   the animated lake into header and modal backdrop render targets. */
@media (hover:none) and (pointer:coarse){
  html body.onnen-yugen #siteHeader,
  html body.onnen-yugen #v22RitualClock,
  html body.onnen-yugen .v24-archive-tabs,
  html body.onnen-yugen .live-strip,
  html body.onnen-yugen #v25ReturningPresence,
  html body.onnen-yugen dialog::backdrop{
    backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  }
  html body.onnen-yugen dialog::backdrop{background:rgba(3,4,4,.94)}
}
