/* Shared interaction rhythm; existing PONTOSPOOL composition stays in place. */
:root{--pp-ease-out:cubic-bezier(.23,1,.32,1);--pp-press:140ms;--pp-feedback:180ms}
html{scroll-padding-top:110px}
body :is(h1,h2,h3){text-wrap:balance}
body :is(p,dd){text-wrap:pretty}
body :is(button,a,input,select,textarea,summary){touch-action:manipulation}
body :is(button,.pp-btn,.theme-btn,.pa-cta,.cta-button,.analysis-cta-btn,.btn-google-review,.primary,.entry-card){-webkit-tap-highlight-color:transparent}
body :is(.pp-btn,.theme-btn,.pa-cta,.cta-button,.analysis-cta-btn,.btn-google-review,.primary,.entry-card,.mobile-nav-toggler,.close-btn,.back,.text-button){transition:scale var(--pp-press) var(--pp-ease-out),background-color var(--pp-feedback) ease,color var(--pp-feedback) ease,border-color var(--pp-feedback) ease,box-shadow var(--pp-feedback) ease!important}
body :is(.pp-btn,.theme-btn,.pa-cta,.cta-button,.analysis-cta-btn,.btn-google-review,.primary,.entry-card,.mobile-nav-toggler,.close-btn,.back,.text-button):active:not(:disabled){scale:.98}
body :is(button,a,summary):focus-visible{outline:2px solid #08748d;outline-offset:5px;box-shadow:0 0 0 7px #ffffffc9}
body :is(input,textarea,select){scroll-margin-block:120px 32px}
body :is(input,textarea,select):focus-visible{outline:2px solid #08748d;outline-offset:3px}
body :is(input,textarea,select)[aria-invalid=true]{border-color:#b54625;box-shadow:0 0 0 1px #b54625}
body :is(button:disabled,[aria-disabled=true]){cursor:not-allowed}
body .pp-btn-arrow,body .entry-arrow{transition:translate 180ms var(--pp-ease-out),background-color 180ms ease,color 180ms ease}
body :is(.hf-list,#faq) summary{min-height:56px;padding-right:48px}
body :is(.hf-list,#faq) details[open] summary{font-weight:600}
body .mobile-menu .menu-box{transition-property:transform,opacity,visibility;transition-duration:240ms;transition-timing-function:var(--pp-ease-out)}
body .sr-init{transition-duration:280ms;transition-timing-function:var(--pp-ease-out);transition-delay:min(var(--sr-delay,0ms),120ms)}
/* The immersive request retains its film and palette. Feedback is immediate. */
body[data-chapter] .entry-card{border-color:#99bacb80;box-shadow:inset 0 1px 0 #ffffff0d,0 8px 24px #04192226}
body[data-chapter] .entry-card strong{letter-spacing:-.025em}
body[data-chapter] .option>span{transition:background-color 180ms ease,border-color 180ms ease}
body[data-chapter] .option input:checked+span{box-shadow:inset 3px 0 0 var(--accent)}
body[data-chapter] :is(input,select,textarea):focus{background:#fff}
body[data-chapter] :is(.chapter-nav,.panel-meta){font-variant-numeric:tabular-nums}
body[data-chapter] .primary{min-width:150px}
body[data-chapter] .primary:disabled{opacity:.75}
body[data-chapter] .review summary{padding-block:16px}
@media(hover:hover) and (pointer:fine){
 body .entry-card:hover .entry-arrow{translate:2px 0}
 body :is(.back,.text-button):hover{color:#fff}
}
@media(hover:none),(pointer:coarse){
 body :is(.theme-btn,.cta-button,.pa-cta,.analysis-cta-btn,.btn-google-review,.single-item,.glass-card):hover{transform:none}
 body[data-chapter] .entry-card:hover{background:var(--surface);border-color:#99bacb80}
 body[data-chapter] .entry-card:hover .entry-arrow{background:transparent;color:var(--accent)}
 body[data-chapter] .option:hover>span{background:var(--surface)}
 body[data-chapter] .option input:checked+span{background:#16526b}
 body :is(.footer-links a,.card-foot a){min-height:44px;display:inline-flex;align-items:center}
}
@media(max-width:767px){
 body :is(.pp-form input,.pp-form select,.pp-form textarea){font-size:16px;min-height:48px}
 body .pp-btn{min-height:48px}
 body[data-chapter] .chapter-nav{column-gap:16px;row-gap:4px}
}
/* Keyboard navigation never waits for decorative feedback. */
html[data-input=keyboard] *,html[data-input=keyboard] *::before,html[data-input=keyboard] *::after{transition-duration:0s!important;transition-delay:0s!important;animation-duration:0s!important;animation-delay:0s!important;scroll-behavior:auto!important}
html[data-input=keyboard] .sr-init{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
 body :is(.pp-btn,.theme-btn,.pa-cta,.cta-button,.analysis-cta-btn,.btn-google-review,.primary,.entry-card,.mobile-nav-toggler,.close-btn,.back,.text-button):active{scale:1!important}
 body .entry-arrow{translate:none!important}
 body .sr-init{opacity:1;transform:none;transition:none}
}
