/* Free Kegel timer (/tools/kegel-timer). Loaded after guide.css.
   Colours are the GoBeast tokens written out: ink #0B0B0D, surfaces #151518 #1E1E22 #28282D,
   bone #F3EFE8, text #B7B2AA, muted #8C877F, molten #EDB95A, hot #FFE6B3, deep #B8862F,
   glacier #6AAEF2, glacier deep #1F4F86, error #F2675F. */

/* Setup panel */
.kt{margin-top:4px;scroll-margin-top:16px}
.kt-h{font:500 22px/1.25 "Unbounded",system-ui,sans-serif;letter-spacing:-.02em;color:#F3EFE8;margin:0 0 16px}
.kt-presets{border:0;margin:0;padding:0;min-width:0;display:grid;gap:10px}
.kt-legend{padding:0;margin:0 0 10px;font:600 15px/1.3 "Instrument Sans",system-ui,sans-serif;color:#B7B2AA}
.kt-preset{position:relative;display:block;cursor:pointer;min-width:0}
.kt-preset input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.kt-preset-body{display:grid;gap:4px;height:100%;padding:14px 16px 14px 46px;border:1px solid rgba(243,239,232,.18);border-radius:16px;background:#1E1E22;transition:border-color .2s,background-color .2s;position:relative}
.kt-preset-body::before{content:"";position:absolute;left:16px;top:17px;width:18px;height:18px;border-radius:50%;border:2px solid #8C877F;box-sizing:border-box}
.kt-preset:hover .kt-preset-body{border-color:rgba(237,185,90,.6)}
.kt-preset input:checked + .kt-preset-body{border-color:#EDB95A;background:linear-gradient(180deg,rgba(237,185,90,.12),rgba(237,185,90,.04)),#1E1E22}
.kt-preset input:checked + .kt-preset-body::before{border-color:#EDB95A;background:radial-gradient(circle,#EDB95A 0 4px,transparent 5px)}
.kt-preset input:focus-visible + .kt-preset-body{outline:2px solid #EDB95A;outline-offset:3px}
.kt-preset-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 12px}
.kt-preset-name{font:600 17px/1.3 "Instrument Sans",system-ui,sans-serif;color:#F3EFE8}
.kt-preset-time{font:500 14px/1.3 "Instrument Sans",system-ui,sans-serif;color:#EDB95A}
.kt-preset-desc{font-size:15px;line-height:1.45;color:#D9D4CC}
.kt-preset-effort{font-size:14px;line-height:1.4;color:#8C877F}

.kt-where{margin-top:18px;background:#151518;border:1px solid rgba(243,239,232,.10);border-left:3px solid #EDB95A;border-radius:12px;padding:14px 16px}
.kt-where h3{font:600 17px/1.35 "Instrument Sans",system-ui,sans-serif;color:#F3EFE8;margin:0 0 8px}
.kt-where ul{margin:0;padding-left:20px;font-size:15px;line-height:1.5;color:#D9D4CC}
.kt-where li + li{margin-top:6px}
.kt-where li::marker{color:#8C877F}
.kt-where strong{color:#F3EFE8;font-weight:600}
.kt-where .kt-where-pain{margin:10px 0 0;font-size:15px;line-height:1.5;color:#B7B2AA}

.kt-go{display:none;align-items:center;gap:12px;margin-top:18px}
.kt.is-ready .kt-go{display:flex}
.kt-start{flex:1 1 auto;min-height:56px;font-size:18px}
.kt-note{margin:12px 0 0;font-size:14px;line-height:1.5;color:#8C877F}

/* Voice switch */
.kt-switch{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:8px 14px 8px 10px;border:1px solid rgba(243,239,232,.18);border-radius:99px;background:transparent;color:#F3EFE8;font:600 15px/1.2 "Instrument Sans",system-ui,sans-serif;cursor:pointer;flex:none}
.kt-switch:hover{border-color:#EDB95A}
.kt-switch-track{position:relative;width:36px;height:22px;border-radius:99px;background:#28282D;border:1px solid rgba(243,239,232,.18);transition:background-color .2s;flex:none}
.kt-switch-track::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#8C877F;transition:transform .2s,background-color .2s}
.kt-switch[aria-checked="true"] .kt-switch-track{background:rgba(237,185,90,.25);border-color:#EDB95A}
.kt-switch[aria-checked="true"] .kt-switch-track::after{transform:translateX(14px);background:#EDB95A}
.kt-switch-state{font-weight:500;color:#B7B2AA}

/* Player: a full-screen layer while a session runs */
html.kt-open,html.kt-open body{overflow:hidden}
.kt-player{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:radial-gradient(120% 70% at 50% 0%,#17151a 0%,#0B0B0D 62%) #0B0B0D;color:#F3EFE8;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.kt-player[hidden]{display:none}
.kt-in{min-height:100%;width:100%;max-width:520px;margin:0 auto;padding:max(12px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column}
.kt-session{display:flex;flex-direction:column;flex:1 0 auto}
.kt-player[data-view="pain"] .kt-session,.kt-player[data-view="done"] .kt-session{display:none}
.kt-player:not([data-view="pain"]) .kt-pain-card{display:none}
.kt-player:not([data-view="done"]) .kt-done-card{display:none}

.kt-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px}
.kt-top-title{margin:0;font-size:15px;line-height:1.3;color:#B7B2AA;min-width:0}
.kt-top-title strong{color:#F3EFE8;font-weight:600}
.kt-x{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid rgba(243,239,232,.18);background:transparent;color:#F3EFE8;cursor:pointer;flex:none}
.kt-x:hover{border-color:#EDB95A}
.kt-x svg{width:18px;height:18px}

.kt-segs{display:flex;gap:3px;margin:8px 0 12px}
.kt-seg{position:relative;display:block;height:6px;border-radius:99px;background:#28282D;overflow:hidden;min-width:6px;flex-basis:0}
.kt-seg-fill{position:absolute;top:0;left:0;bottom:0;width:100%;background:#EDB95A;transform:scaleX(0);transform-origin:left center}
.kt-block{margin:0;text-align:center;font-size:14px;line-height:1.3;color:#8C877F;min-height:18px}

/* Orb, ring and numeral */
.kt-stage{position:relative;width:min(280px,72vw,40vh);height:min(280px,72vw,40vh);margin:14px auto 6px;cursor:pointer;flex:none;-webkit-tap-highlight-color:transparent}
.kt-ring{position:absolute;top:0;left:0;width:100%;height:100%;transform:rotate(-90deg)}
.kt-ring circle{fill:none;stroke-width:2.4}
.kt-ring-track{stroke:rgba(243,239,232,.10)}
.kt-ring-fill{stroke:#6AAEF2;stroke-linecap:round;stroke-dasharray:289.03;stroke-dashoffset:289.03}
.kt-player[data-tone="warm"] .kt-ring-fill{stroke:#EDB95A}
.kt-ticks line{stroke:rgba(243,239,232,.28);stroke-width:1.2}
.kt-orb{position:absolute;top:12%;left:12%;width:76%;height:76%;border-radius:50%;background:radial-gradient(circle at 50% 38%,#BFE0FF 0%,#6AAEF2 42%,#1F4F86 100%);box-shadow:0 0 34px rgba(106,174,242,.30);will-change:transform;transition:opacity .4s}
.kt-orb-warm,.kt-orb-core{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;opacity:0}
.kt-orb-warm{background:radial-gradient(circle at 50% 40%,#FFE6B3 0%,#EDB95A 46%,#B8862F 100%);box-shadow:0 0 56px rgba(237,185,90,.6)}
.kt-orb-core{background:radial-gradient(circle at 50% 42%,rgba(255,246,226,.95) 0%,rgba(255,230,179,.75) 26%,rgba(255,230,179,0) 52%)}
.kt-player[data-tone="calm"] .kt-orb{opacity:.42}
.kt-num-wrap{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.kt-num{margin:0;font:500 clamp(52px,17vw,84px)/1 "Unbounded",system-ui,sans-serif;font-variant-numeric:tabular-nums;color:#0B0B0D;min-width:2ch;text-align:center;transition:color .3s}
.kt-unit{margin:4px 0 0;font:600 12px/1 "Instrument Sans",system-ui,sans-serif;letter-spacing:.04em;color:#0B0B0D;min-height:12px}
.kt-player[data-tone="calm"] .kt-num,.kt-player[data-tone="calm"] .kt-unit{color:#F3EFE8}

.kt-word{margin:8px 0 0;text-align:center;font:600 clamp(28px,8.6vw,40px)/1.15 "Unbounded",system-ui,sans-serif;letter-spacing:-.025em;color:#F3EFE8;transition:color .12s}
.kt-player[data-tone="warm"] .kt-word{color:#EDB95A}
.kt-player[data-tone="cool"] .kt-word{color:#6AAEF2}
.kt-hint{margin:8px auto 0;max-width:34ch;text-align:center;font-size:17px;line-height:1.4;color:#B7B2AA;min-height:2.8em}
.kt-effort{margin:6px auto 0;max-width:40ch;text-align:center;font-size:15px;line-height:1.45;color:#8C877F;min-height:2.9em}

.kt-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin:14px 0 0}
.kt-controls .kt-switch{min-width:0}
.kt-pause{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:76px;height:76px;border-radius:50%;border:0;background:#EDB95A;color:#0B0B0D;cursor:pointer;flex:none}
.kt-pause:hover{background:#FFE6B3}
.kt-pause svg{width:22px;height:22px}
.kt-pause-label{font:600 12px/1 "Instrument Sans",system-ui,sans-serif}
.kt-pause .kt-ico-play{display:none}
.kt-player.is-paused .kt-pause .kt-ico-play{display:block}
.kt-player.is-paused .kt-pause .kt-ico-pause{display:none}
.kt-player.is-paused .kt-stage{opacity:.35}

.kt-sheet{margin:14px 0 0;padding:16px;border:1px solid rgba(243,239,232,.18);border-radius:18px;background:#1E1E22;text-align:center}
.kt-sheet[hidden]{display:none}
.kt-sheet h3{margin:0;font:500 22px/1.25 "Unbounded",system-ui,sans-serif;letter-spacing:-.02em}
.kt-sheet p{margin:6px 0 0;font-size:15px;line-height:1.45;color:#B7B2AA}
.kt-sheet-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.kt-sheet-actions .btn{flex:1 1 140px}
.kt-player.is-paused .kt-controls{display:none}

.kt-pain{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:64px;margin:auto 0 0;padding:12px 18px;border:2px solid #F2675F;border-radius:18px;background:rgba(242,103,95,.10);color:#F2675F;cursor:pointer;font:600 22px/1 "Unbounded",system-ui,sans-serif;letter-spacing:-.01em}
.kt-pain:hover{background:rgba(242,103,95,.18)}
.kt-pain small{font:500 15px/1.2 "Instrument Sans",system-ui,sans-serif;letter-spacing:0;color:#F3EFE8}
.kt-pain-gap{flex:1 0 16px;min-height:16px}

/* Pain and done cards */
.kt-card{margin:auto 0;padding:24px 20px;border-radius:22px;border:1px solid rgba(243,239,232,.18);background:#151518}
.kt-card h2{margin:0;font:600 clamp(26px,7.4vw,34px)/1.15 "Unbounded",system-ui,sans-serif;letter-spacing:-.03em;outline:none}
.kt-card p{margin:12px 0 0;font-size:17px;line-height:1.55;color:#D9D4CC}
.kt-card .kt-small{font-size:15px;color:#B7B2AA}
.kt-card-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.kt-card-actions .btn{flex:1 1 160px}
.kt-pain-card{border-color:#F2675F;background:linear-gradient(180deg,rgba(242,103,95,.10),rgba(242,103,95,.02)),#151518}
.kt-pain-card h2{color:#F3EFE8}
.kt-pain-card .kt-lead{color:#F3EFE8;font-size:19px;font-weight:600}
.kt-done-card h2{color:#EDB95A}
.kt-done-card .kt-lead{margin-top:8px;color:#F3EFE8;font-size:19px;font-weight:600}
.kt-done-card #kt-done-line{margin-top:4px}
.kt-done-ask{margin:20px 0 14px!important;padding-top:18px;border-top:1px solid rgba(243,239,232,.10);color:#F3EFE8!important;font-size:18px!important;line-height:1.45!important;font-weight:600}
.kt-done-more{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;margin-top:10px}
.kt-link{display:inline-flex;align-items:center;min-height:44px;padding:8px 2px;border:0;background:none;color:#EDB95A;font:600 16px/1.2 "Instrument Sans",system-ui,sans-serif;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;cursor:pointer}
.kt-link:hover{color:#FFE6B3}
.kt-link-quiet{color:#B7B2AA;font-weight:500}
.kt-fine{margin-top:8px!important;font-size:14px!important;color:#8C877F!important}

/* Relax mode (/tools/pelvic-floor-relaxation): the orb sinks and softens to a pale haze */
.kt-player[data-mode="relax"] .kt-orb-core{background:radial-gradient(circle at 50% 46%,rgba(236,245,255,.9) 0%,rgba(191,224,255,.5) 38%,rgba(191,224,255,0) 72%)}
.kt-player[data-mode="relax"] .kt-seg-fill{background:#6AAEF2}
.kt-info{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.kt-info li{padding:6px 12px;border:1px solid rgba(106,174,242,.4);border-radius:99px;font-size:14px;line-height:1.3;color:#D9D4CC;background:rgba(106,174,242,.06)}
.kt-info li:first-child{color:#6AAEF2;font-weight:600}
.kt[data-mode="relax"] .kt-where{border-left-color:#6AAEF2;margin-top:16px}

/* The CTA under the tool */
.kt-after{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:16px;padding:18px 20px;border:1px solid rgba(237,185,90,.35);border-radius:18px;background:radial-gradient(100% 140% at 100% 0%,rgba(237,185,90,.10),rgba(237,185,90,0) 60%),#151518}
.kt-after-text{flex:1 1 260px;margin:0;font-size:16px;line-height:1.5;color:#B7B2AA}
.kt-after-text strong{display:block;margin-bottom:2px;color:#F3EFE8;font-weight:600;font-size:17px}
.kt-after .btn{flex:1 1 200px}

@media (min-width:680px){
  .kt-presets{grid-template-columns:repeat(3,minmax(0,1fr))}
  .kt-preset-top{flex-direction:column;align-items:flex-start}
}
@media (max-height:640px){
  .kt-stage{width:min(220px,64vw,34vh);height:min(220px,64vw,34vh);margin-top:8px}
  .kt-hint{min-height:2.8em;font-size:16px}
  .kt-pause{width:68px;height:68px}
}
@media (prefers-reduced-motion:reduce){
  .kt-orb{will-change:auto}
  .kt-orb,.kt-orb-warm,.kt-orb-core,.kt-word,.kt-num{transition:none}
}

/* Kegel game (/tools/kegel-game, kegel-game.js): reuses the player shell, switch, sheet, Pain and cards */
.kg-bar{position:relative;display:block;height:6px;margin:8px 0 10px;border-radius:99px;background:#28282D;overflow:hidden}
.kg-bar-fill{position:absolute;top:0;left:0;bottom:0;width:100%;background:#EDB95A;transform:scaleX(0);transform-origin:left center}
.kg-scores{display:flex;justify-content:space-between;gap:12px;margin:0 0 8px;font:600 15px/1.3 "Instrument Sans",system-ui,sans-serif;color:#B7B2AA}
.kg-scores span:first-child{color:#F3EFE8}
.kg-lane{display:block;width:100%;height:clamp(104px,20vh,150px);border-radius:16px;touch-action:none}
.kg-flash{margin:8px 0 0;min-height:22px;text-align:center;font:600 16px/22px "Instrument Sans",system-ui,sans-serif;opacity:0;transition:opacity .15s}
.kg-flash.is-on{opacity:1}
.kg-flash[data-good="yes"]{color:#5CC99B}
.kg-flash[data-good="no"]{color:#F2675F}
.kg-player .kt-word{margin-top:2px}
.kg-player .kt-hint{min-height:2.8em;margin-top:6px}
.kg-hold{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;min-height:clamp(92px,15vh,128px);margin:12px 0 0;padding:12px;border:2px solid #EDB95A;border-radius:24px;background:rgba(237,185,90,.08);color:#F3EFE8;font:600 22px/1.1 "Unbounded",system-ui,sans-serif;letter-spacing:-.01em;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;transition:background-color .08s,color .08s}
.kg-hold small{font:500 14px/1.2 "Instrument Sans",system-ui,sans-serif;letter-spacing:0;color:#B7B2AA}
.kg-player.is-pressed .kg-hold{background:#EDB95A;color:#0B0B0D}
.kg-player.is-pressed .kg-hold small{color:#0B0B0D}
.kg-controls{justify-content:space-between;margin-top:12px}
.kg-player.is-paused .kg-lane,.kg-player.is-paused .kg-hold{opacity:.35}
.kg-player.is-paused .kg-hold{pointer-events:none}
.kg-score-num{margin:10px 0 0!important;font:600 clamp(48px,15vw,64px)/1 "Unbounded",system-ui,sans-serif!important;letter-spacing:-.03em;color:#EDB95A!important}
.kg-score-num + .kt-small{margin-top:4px!important}
.kg-stats{display:grid;grid-template-columns:1fr auto;gap:8px 16px;margin:16px 0 0;padding:14px 0 0;border-top:1px solid rgba(243,239,232,.10);font-size:16px;line-height:1.4}
.kg-stats dt{color:#B7B2AA}
.kg-stats dd{margin:0;text-align:right;color:#F3EFE8;font-weight:600}
.kg-best{margin:14px 0 0;font-size:14px;line-height:1.5;color:#EDB95A}
.kg-best[hidden]{display:none}
.kt-done-more .kt-link[hidden]{display:none}
/* Score card: fits a 360 x 740 screen without scrolling */
.kg-player .kt-done-card{padding:18px 16px}
.kg-player .kt-done-card h2{font-size:clamp(22px,6.2vw,28px)}
.kg-player .kt-done-card p{margin-top:8px;font-size:16px;line-height:1.45}
.kg-player .kg-score-num{margin-top:6px!important;font-size:clamp(40px,12vw,56px)!important}
.kg-player .kg-score-num + .kt-small{margin-top:2px!important}
.kg-player .kg-stats{margin-top:10px;padding-top:10px;gap:4px 16px;font-size:15px}
.kg-player .kg-best{margin-top:10px}
.kg-player .kt-done-ask{margin:14px 0 10px!important;padding-top:12px;font-size:16px!important}
.kg-player .kt-done-more{margin-top:4px}
.kg-player .kt-fine{margin-top:4px!important;font-size:13px!important}
