/* ═══ Link2Page · Accessibility & theme transition ═══
   Focus styles, reduced motion, day/night crossfade (View Transitions + class fallback).
   Load order matters — index.html loads css files in numeric order. */
/* ── ACCESSIBILITY & POLISH ── */
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.skip-link{position:fixed;top:-52px;left:16px;z-index:999;background:var(--accent);color:#fff;padding:10px 18px;border-radius:0 0 10px 10px;font-size:13px;text-decoration:none;transition:top .2s}
.skip-link:focus{top:0}
.grad{background-size:200% 200%;animation:gradShift 7s ease infinite}
@keyframes gradShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.feat-icon{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.feat-card:hover .feat-icon{transform:translateY(-4px) scale(1.06)}
.step-demo{transition:transform .3s cubic-bezier(.34,1.56,.64,1),border-color .3s}
.step-card:hover .step-demo{transform:translateY(-2px)}
.testi-card{transition:border-color .3s,transform .3s,box-shadow .3s}
.testi-card:hover{border-color:var(--border2);transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.35)}
.price-card.featured::before{content:'';position:absolute;inset:-1px;border-radius:20px;padding:1px;background:linear-gradient(135deg,var(--accent),var(--cyan),var(--accent2));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.55}
/* smooth day/night crossfade — enabled only during the toggle, then removed */
html.theme-anim,html.theme-anim *,html.theme-anim *::before,html.theme-anim *::after{transition:background-color .5s ease,background .5s ease,color .5s ease,border-color .5s ease,box-shadow .5s ease,fill .5s ease,stroke .5s ease,opacity .5s ease !important}
@media(prefers-reduced-motion:reduce){html.theme-anim,html.theme-anim *,html.theme-anim *::before,html.theme-anim *::after{transition:none !important}}
/* theme toggle: single GPU crossfade via the View Transitions API (fallback above for older browsers) */
::view-transition-old(root),::view-transition-new(root){animation-duration:.4s;animation-timing-function:cubic-bezier(.4,0,.2,1)}
.lb-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,16px);background:var(--surface);border:1px solid var(--border2);color:var(--text);padding:11px 22px;border-radius:12px;font-size:14px;z-index:500;opacity:0;transition:opacity .25s,transform .25s;box-shadow:0 12px 40px rgba(0,0,0,.5);pointer-events:none}
.lb-toast.show{opacity:1;transform:translate(-50%,0)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}html{scroll-behavior:auto}}
