/* Shared input rhythm: 180ms press, 360ms response, 650–1050ms entrance. */
:root{--response:360ms;--press:180ms}
#main :is(a,button,summary),#header a,#footer a,.mobile-dock a{ -webkit-tap-highlight-color:#175ee820; }
:is(a,button,summary,input,select):focus-visible{outline:3px solid #327ff2;outline-offset:5px}
:is(.button,.text-link,.back-link,.source-link):focus-visible{box-shadow:0 0 0 7px #175ee812}
.text-link{gap:18px!important}.text-link span{transition:transform var(--response) var(--ease)}
.text-link:is(:hover,:focus-visible) span{transform:translate(5px,-4px)}
.button:is(:hover,:focus-visible){transform:translateY(-3px);box-shadow:0 8px 20px #102e4814}
.button:active{transform:translateY(0) scale(.97);transition-duration:var(--press)}
:is(.back-link,.source-link){display:inline-flex;align-items:center;min-height:44px;transition:color var(--response),transform var(--response) var(--ease)}
.back-link:is(:hover,:focus-visible){transform:translateX(-5px);color:var(--blue)}
.source-link:is(:hover,:focus-visible){transform:translateX(4px);color:var(--blue)}
.desktop-nav a:focus-visible{transform:translateY(-3px);color:var(--blue)}
.desktop-nav a:after{transition:transform var(--response) var(--ease)}
.brand{transition:color var(--response),opacity var(--response)}.brand:is(:hover,:focus-visible){opacity:.78}
.header-tools button:focus-visible{background:#edf3ff}
#open-menu:is(:hover,:focus-visible) .menu-bars:after{width:24px}
#nav-dialog nav a:is(:focus-visible,:active) span{transform:rotate(45deg)}
#nav-dialog nav a:active{background:#ffffff20}
.tabs a:focus-visible{transform:translateY(-3px);color:var(--blue)}
.tabs a:active{transform:translateY(0);background:#edf4ff}
.search-form :is(input,select){transition:border-color var(--response),box-shadow var(--response)}
.search-form :is(input,select):focus{border-color:var(--blue);box-shadow:0 0 0 4px #175ee814}
:is(.sermon-card,.space-card,.bulletin-callout){transition:box-shadow .5s var(--ease),background var(--response)}
:is(.sermon-card,.space-card,.bulletin-callout):focus-visible{box-shadow:0 0 0 6px #175ee824}
.sermon-card:focus-visible img{transform:scale(1.07)}
.sermon-card:focus-visible .play{background:#175ee8;scale:1.12}
.sermon-card:focus-visible .card-arrow,.word-row:focus-visible>span:last-child,.news-row:focus-visible>span:last-child{transform:translate(4px,-4px)}
.space-card:focus-visible img{transform:scale(1.085)}.space-card:focus-visible>div{transform:translateY(-10px)}
.bulletin-callout:focus-visible .circle-arrow{transform:rotate(45deg);background:#fff}
:is(.word-row,.news-row):focus-visible{background:#175ee80c}
.quick-strip>a:focus-visible{background:#f5f8ff}.quick-strip>a:focus-visible>span:last-child{transform:translate(4px,-4px)}
:is(.sermon-card,.space-card,.bulletin-callout,.word-row,.news-row,.quick-strip>a):active{scale:.985;transition-duration:var(--press)}
.time-row:hover{padding-left:0;padding-right:0}.time-row{position:relative}
.time-row:after{content:'';position:absolute;bottom:0;left:0;height:2px;width:100%;background:#175ee8;transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease)}
.time-row:hover:after{transform:scaleX(1)}
.faq summary{border-radius:4px;transition:color var(--response),background var(--response)}
.faq summary:is(:hover,:focus-visible){color:var(--blue);background:#f4f8ff}.faq summary:active{background:#eaf2ff}
.footer-links a:focus-visible:after{transform:scaleX(1)}
.footer-links a{display:inline-flex;align-items:center;min-height:44px;transition:color var(--response)}
.footer-links a:is(:hover,:focus-visible){color:#7fb5ff}
#chapter-nav a:focus-visible{background:#eaf2ff;transform:translateX(-3px)}
#chapter-nav a:active{background:#dceaff;scale:.97}
#chapter-nav:not([hidden]){animation:chapter-arrive .55s var(--ease) backwards}
@keyframes chapter-arrive{from{opacity:0;translate:12px 0}to{opacity:1;translate:0}}
.mobile-dock a{transition:color var(--response),background var(--response),transform var(--press)}
.mobile-dock a:focus-visible{background:#edf4ff;color:var(--blue)}
.video-player button{transition:filter var(--response),scale var(--response)}
.video-player button:is(:hover,:focus-visible){filter:brightness(1.08)}
.video-player button:active{scale:.985}
/* Stable chrome remains visible throughout navigation; reverse travel has its own direction. */
::view-transition-group(church-content){animation:none}
::view-transition-old(church-content),::view-transition-new(church-content){object-fit:none;object-position:top left;mix-blend-mode:normal}
::view-transition-old(church-content){animation-duration:160ms;animation-timing-function:ease-out}
::view-transition-new(church-content){animation-duration:600ms;animation-delay:100ms}
html[data-travel=back]::view-transition-old(church-content){animation-name:page-back-leave}
html[data-travel=back]::view-transition-new(church-content){animation-name:page-back-arrive}
@keyframes page-back-leave{to{opacity:0;transform:translateY(20px)}}
@keyframes page-back-arrive{from{opacity:0;transform:translateY(-25px)}to{opacity:1;transform:none}}
@media(hover:none){
 .desktop-nav a:hover,.tabs a:hover,.button:hover{transform:none}
 .space-card:hover img,.sermon-card:hover img{transform:none}
 .space-card:hover>div{transform:none}
 .word-row:hover,.news-row:hover{padding-left:0;padding-right:0}
 .space-card:active img,.sermon-card:active img{transform:scale(1.025)}
 .button:active{transform:scale(.97)}
}
@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{animation:none!important;transition:none!important}
 :is(.button,.space-card,.sermon-card,.bulletin-callout,.word-row,.news-row,.quick-strip>a):active{scale:1;transform:none}
 ::view-transition-old(church-content),::view-transition-new(church-content){animation:none!important}
}
html.motion-paused::view-transition-old(church-content),html.motion-paused::view-transition-new(church-content){animation:none!important}
