/* theme-toggle.css — the iOS-style theme switch in the site headers (0.92.md §14), from the owner's
   kultive-theme-toggle.html. Its look follows the page theme (:root[data-theme=dark]), so it is right
   from the first paint; theme-toggle.js adds press, drag and keyboard, and keeps aria-checked in step. */
.k-toggle{--w:68px;--h:38px;--pad:4px;--knob:calc(var(--h) - var(--pad)*2);--travel:calc(var(--w) - var(--knob) - var(--pad)*2);--stretch:8px;--spring:cubic-bezier(.34,1.36,.64,1);--ease:cubic-bezier(.4,0,.2,1);
  --track:#F4E7DD;--track-border:#EBD6C8;--knob-bg:#FFFFFF;--knob-shadow:0 3px 8px rgba(84,38,12,.18),0 1px 1px rgba(84,38,12,.12);--icon:#C9561F;--deco:#E2B99E;
  position:relative;display:inline-flex;align-items:center;width:var(--w);height:var(--h);min-width:var(--w);padding:0;margin:0;border:1px solid var(--track-border);border-radius:999px;background:var(--track);cursor:pointer;touch-action:pan-y;-webkit-tap-highlight-color:transparent;box-shadow:inset 0 1px 2px rgba(84,38,12,.08);transition:background-color .45s var(--ease),border-color .45s var(--ease),box-shadow .45s var(--ease);outline:none;flex:none;font:inherit;color:inherit;-webkit-appearance:none;appearance:none}
.k-toggle:focus-visible{box-shadow:inset 0 1px 2px rgba(84,38,12,.08),0 0 0 3px rgba(201,86,31,.35)}
.k-toggle__deco{position:absolute;inset:0;pointer-events:none;border-radius:inherit;overflow:hidden}
.k-toggle__deco i{position:absolute;display:block;border-radius:50%;background:var(--deco);transition:opacity .45s var(--ease),transform .55s var(--spring)}
.k-toggle__deco .d1{width:5px;height:5px;right:13px;top:11px}
.k-toggle__deco .d2{width:3px;height:3px;right:20px;top:21px}
.k-toggle__deco .d3{width:4px;height:4px;right:10px;top:22px}
.k-toggle__deco .s1,.k-toggle__deco .s2,.k-toggle__deco .s3{opacity:0;transform:scale(.2);background:#FFE7D2}
.k-toggle__deco .s1{width:3px;height:3px;left:12px;top:10px}
.k-toggle__deco .s2{width:2px;height:2px;left:21px;top:17px}
.k-toggle__deco .s3{width:3px;height:3px;left:13px;top:24px}
.k-toggle__knob{position:absolute;top:var(--pad);left:var(--pad);width:var(--knob);height:var(--knob);border-radius:999px;background:var(--knob-bg);box-shadow:var(--knob-shadow);transform:translateX(0);transition:transform .5s var(--spring),width .28s var(--ease),background-color .45s var(--ease),box-shadow .45s var(--ease);display:grid;place-items:center;will-change:transform,width}
.k-toggle__icon{position:absolute;width:18px;height:18px;color:var(--icon);transition:opacity .3s var(--ease),transform .55s var(--spring),color .45s var(--ease)}
.k-toggle__icon--moon{opacity:0;transform:rotate(-70deg) scale(.4)}
.k-toggle.is-pressed .k-toggle__knob{width:calc(var(--knob) + var(--stretch))}
/* dark = on */
[data-theme=dark] .k-toggle{--track:#2A211D;--track-border:#4A3A32;--knob-bg:#1A1412;--knob-shadow:0 3px 10px rgba(0,0,0,.55),0 0 0 1px rgba(255,140,70,.25),0 0 14px rgba(240,110,40,.35);--icon:#FF9A55;--deco:#3B2E28;box-shadow:inset 0 1px 3px rgba(0,0,0,.5)}
[data-theme=dark] .k-toggle .k-toggle__knob{transform:translateX(var(--travel))}
[data-theme=dark] .k-toggle.is-pressed .k-toggle__knob{transform:translateX(calc(var(--travel) - var(--stretch)))}
[data-theme=dark] .k-toggle .k-toggle__icon--sun{opacity:0;transform:rotate(90deg) scale(.4)}
[data-theme=dark] .k-toggle .k-toggle__icon--moon{opacity:1;transform:rotate(0) scale(1)}
[data-theme=dark] .k-toggle .d1,[data-theme=dark] .k-toggle .d2,[data-theme=dark] .k-toggle .d3{opacity:0;transform:scale(.2)}
[data-theme=dark] .k-toggle .s1,[data-theme=dark] .k-toggle .s2,[data-theme=dark] .k-toggle .s3{opacity:1;transform:scale(1)}
[data-theme=dark] .k-toggle .s2{transition-delay:.06s}
[data-theme=dark] .k-toggle .s3{transition-delay:.12s}
.k-toggle.is-dragging .k-toggle__knob{transition:width .28s var(--ease),background-color .45s var(--ease)}
/* a phone header has less room */
@media (max-width:640px){.k-toggle{--w:60px;--h:34px}.k-toggle__icon{width:16px;height:16px}}
@media (prefers-reduced-motion:reduce){.k-toggle,.k-toggle *{transition-duration:.01ms!important;transition-delay:0s!important}}
