/* ядро: родительский таймер (core/timer.js) — экран отдыха #s-rest, предупреждение #tmr-warn, часики, колечко у «домой», проверка и панель родителя.
   Классы с приставкой tmr- / tg- / tp- (pt- занято игрой «Мой питомец»). Вертикаль — в % экрана и vmin (iPhone: vh больше видимой области). */
[hidden].tmr-gate,[hidden].tmr-panel,#s-rest [hidden]{display:none!important}

/* ---------- колечко «сколько осталось» вокруг «домой» и часиков: тонкое, для взрослого ---------- */
.tmr-ring{display:none;position:absolute;pointer-events:none;rotate:-90deg}
.round-btn .tmr-ring,.tmr-clock .tmr-ring{inset:-13%;width:126%;height:126%}
.tmr-ring.on{display:block}
.tmr-ring circle{fill:none}
.tmr-ring .rb{stroke:rgba(255,255,255,.75);stroke-width:2.6}
.tmr-ring .rv{stroke:#7a5ce0;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:0;transition:stroke-dashoffset 1s linear}

/* ---------- часики: неприметная кнопка для взрослых (удержать 1.5 с) ---------- */
.tmr-clock{position:absolute;right:calc(min(13vmin,84px) + 6vmin + env(safe-area-inset-right));top:calc(4vmin + env(safe-area-inset-top));width:9vmin;height:9vmin;max-width:56px;max-height:56px;z-index:5;opacity:.6;border-radius:50%;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.tmr-clock img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.tmr-clock.hold{opacity:1}
.tmr-clock.hold img{animation:tmr-hold 1.5s linear forwards}
@keyframes tmr-hold{from{scale:1}to{scale:1.35}}
#tmr-clock-rest{right:auto;left:calc(3vmin + env(safe-area-inset-left));top:calc(3vmin + env(safe-area-inset-top));z-index:20;opacity:.35}

/* ---------- мягкое предупреждение: родной выглядывает снизу слева, зевает, рядом луна ---------- */
.tmr-warn{position:fixed;left:calc(-3vmin + env(safe-area-inset-left));bottom:0;height:42vmin;width:42vmin;z-index:930;pointer-events:none;translate:0 115%;transition:translate .7s cubic-bezier(.3,1.3,.5,1)}
.tmr-warn.show{translate:0 6%}
.tmr-warn img{position:absolute;left:0;bottom:0;height:100%;width:100%;object-fit:contain;object-position:50% 100%;filter:drop-shadow(0 1vmin 1.5vmin rgba(0,0,0,.25))}
.tmr-warn.flat img{height:26vmin;width:26vmin;bottom:3vmin;border-radius:50%;border:1vmin solid #fff;object-fit:cover;background:#fff}
.tmr-moon{position:absolute;right:-4vmin;top:-6vmin;width:15vmin;height:15vmin;border-radius:50%;background:#fff;box-shadow:0 1vmin 2vmin rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center}
.tmr-moon svg{width:72%;height:72%;animation:bob 2s infinite ease-in-out}

/* ---------- экран отдыха ---------- */
#s-rest{background:#3b2f6b;overflow:clip}   /* the lamp glow goes past the edge: never scroll the screen sideways (a tap focuses the lamp) */
.tmr-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 100%;z-index:0}
.tmr-night{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(#1a1d4e 0%,#2b2466 45%,#2a1f4a 100%);opacity:.18;transition:opacity 2.5s ease}
#s-rest.dark .tmr-night{opacity:.58}
.tmr-stars{position:absolute;left:0;right:0;top:0;height:40%;z-index:2;pointer-events:none;opacity:0;transition:opacity 2.5s}
#s-rest.dark .tmr-stars{opacity:1}
.tmr-stars i{position:absolute;width:1.4vmin;height:1.4vmin;border-radius:50%;background:#fff8c8;box-shadow:0 0 1.6vmin #fff3a0;animation:tmr-tw 2.6s infinite ease-in-out}
.tmr-stars i:nth-child(1){left:12%;top:20%}.tmr-stars i:nth-child(2){left:28%;top:8%;animation-delay:-.6s}.tmr-stars i:nth-child(3){left:44%;top:26%;animation-delay:-1.2s}
.tmr-stars i:nth-child(4){left:58%;top:12%;animation-delay:-1.8s}.tmr-stars i:nth-child(5){left:70%;top:32%;animation-delay:-.3s}.tmr-stars i:nth-child(6){left:86%;top:18%;animation-delay:-2.1s}
.tmr-stars i:nth-child(7){left:20%;top:44%;animation-delay:-1.5s}.tmr-stars i:nth-child(8){left:92%;top:46%;animation-delay:-.9s}
@keyframes tmr-tw{0%,100%{opacity:.25;scale:.7}50%{opacity:1;scale:1.15}}

/* родной: зевает, потягивается, потом спит (h_sleep лёжа) */
.tmr-buddy{position:absolute;z-index:4;left:calc(1vmin + env(safe-area-inset-left));bottom:30%;height:42%;aspect-ratio:1;max-width:96%;touch-action:manipulation;pointer-events:none}
.tmr-buddy .hit{position:absolute;top:8%;bottom:0;left:var(--hl,25%);width:var(--hw,50%);pointer-events:auto}
.tmr-buddy img{position:absolute;left:0;bottom:0;width:100%;height:100%;object-fit:contain;object-position:0 100%;pointer-events:none;filter:drop-shadow(0 1vmin 1.4vmin rgba(0,0,0,.3));transform-origin:50% 100%;animation:tmr-breathe 3.6s infinite ease-in-out}
.tmr-buddy.flat{width:30vmin;height:30vmin}
.tmr-buddy.flat .hit{left:0;width:100%;top:0}
.tmr-buddy.flat img{border-radius:50%;border:1vmin solid #fff;object-fit:cover;background:#fff}
.tmr-buddy.pop img{animation:tmr-pop .5s cubic-bezier(.3,1.5,.5,1),tmr-breathe 3.6s .5s infinite ease-in-out}
@keyframes tmr-breathe{0%,100%{scale:1 1}50%{scale:1.015 .985}}
@keyframes tmr-pop{0%{scale:.92 1.06}100%{scale:1}}

/* зверята на подушках: портрет 3+2 снизу, альбомная — ряд справа от родного */
.tmr-beds{position:absolute;z-index:5;left:2%;right:2%;bottom:calc(1% + env(safe-area-inset-bottom));height:31%;display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;align-content:flex-end}
.tmr-bed{position:relative;width:32%;height:50%;touch-action:manipulation;animation:tmr-in .6s calc(var(--i) * .12s) both cubic-bezier(.3,1.4,.5,1)}
.tmr-bed img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:50% 100%;pointer-events:none;transition:opacity .6s ease;filter:drop-shadow(0 .8vmin 1vmin rgba(0,0,0,.28))}
.tmr-bed .aw{animation:tmr-yawn 3s calc(var(--i) * -.7s) infinite ease-in-out;transform-origin:50% 100%}
.tmr-bed .sl{opacity:0}
.tmr-bed.sleep .aw{opacity:0}
.tmr-bed.sleep .sl{opacity:1}
.tmr-bed.hint .aw{animation:tmr-hint .8s 3 ease-in-out}
@keyframes tmr-in{from{opacity:0;translate:0 20%}to{opacity:1;translate:0 0}}
@keyframes tmr-yawn{0%,100%{rotate:0deg}30%{rotate:-2deg}60%{rotate:2deg}}
@keyframes tmr-hint{0%,100%{scale:1}50%{scale:1.12;filter:drop-shadow(0 0 2vmin #fff7b0)}}
.tmr-bed .zz{position:absolute;right:12%;top:2%;font:900 5vmin/1 Arial Rounded MT Bold,Arial,sans-serif;color:#fff;text-shadow:0 0 1vmin #7a6cff;opacity:0;pointer-events:none;font-style:normal}
.tmr-bed .zz b,.tmr-bed .zz em{font-style:normal;font-size:.75em;margin-left:.4em}
.tmr-bed.sleep .zz{animation:tmr-zz 3s 1s infinite ease-out}
@keyframes tmr-zz{0%{opacity:0;translate:0 30%}30%{opacity:1}100%{opacity:0;translate:30% -60%}}

/* ночник: последний — гасит свет */
.tmr-lamp{position:absolute;z-index:6;right:calc(4% + env(safe-area-inset-right));bottom:33%;width:22vmin;height:22vmin;touch-action:manipulation;scale:0}
.tmr-lamp.show{scale:1;transition:scale .6s cubic-bezier(.3,1.5,.5,1)}
.tmr-lamp img{position:relative;width:100%;height:100%;object-fit:contain;pointer-events:none}
.tmr-lamp .glow{position:absolute;inset:-45%;border-radius:50%;background:radial-gradient(circle,rgba(255,230,140,.85) 0%,rgba(255,210,90,.35) 40%,transparent 70%);pointer-events:none;transition:opacity 1.2s;animation:pulse 2.2s infinite ease-in-out}
.tmr-lamp.off .glow{opacity:0}
.tmr-lamp.off img{filter:brightness(.55) saturate(.7)}
.tmr-lamp.show:not(.off){animation:tmr-hint 1.2s 1s 3 ease-in-out}

/* солнышко перерыва: спит и медленно поднимается (--f 0..1), проснулось — открытые глаза */
.tmr-sun{position:absolute;z-index:3;left:calc(64% - 11vmin);top:calc(3% + (1 - var(--f, 0)) * 11%);width:22vmin;height:22vmin;transition:top 1s linear}
.tmr-sun img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;transition:opacity 1s}
.tmr-sun .s1{opacity:0}
.tmr-sun.awake .s1{opacity:1}
.tmr-sun.awake .s0{opacity:0}
.tmr-sun.awake{animation:tmr-hint 1.4s 2 ease-in-out}
.tmr-play{position:absolute!important;z-index:9;right:calc(7% + env(safe-area-inset-right));top:41%;animation:pulse 1.4s infinite ease-in-out}

/* «мостик»: две карточки занятий в реальном мире */
.tmr-cards{position:absolute;z-index:8;left:calc(4% + 8vmin);right:4%;top:calc(3% + env(safe-area-inset-top));height:25%;display:flex;gap:4vmin;justify-content:center;align-items:stretch;opacity:0;transition:opacity .5s}
.tmr-cards.show{opacity:1}
.tmr-card{flex:0 1 44%;max-width:40vmin;border-radius:5vmin;background:rgba(255,255,255,.94);box-shadow:0 1.2vmin 0 #c9b8ff,0 2vmin 3vmin rgba(0,0,0,.3);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2vmin;touch-action:manipulation;transition:scale .4s cubic-bezier(.3,1.5,.5,1),opacity .4s;animation:tmr-in .5s both}
.tmr-card:nth-child(2){animation-delay:.15s}
.tmr-card img{width:100%;flex:1 1 0;min-height:0;object-fit:contain;pointer-events:none}
.tmr-card span{font:800 4.4vmin/1.1 system-ui,-apple-system,sans-serif;color:#5a3b9f;margin-top:1vmin;text-align:center}
.tmr-card.pick{scale:1.1}
.tmr-card.drop{opacity:.25;scale:.9}

/* зарядка для глаз */
.tmr-eyes{position:absolute;inset:0;z-index:10;background:rgba(20,18,60,.45);pointer-events:none}
.tmr-eyes>div{position:absolute;left:50%;top:46%;translate:-50% -50%;opacity:0;transition:opacity .6s}
.tmr-eyes.far .win,.tmr-eyes.near .finger,.tmr-eyes.blink .bfly{opacity:1}
.tmr-eyes .win{width:70vmin;height:54vmin;border:2.4vmin solid #f4e2c4;border-radius:3vmin;background:linear-gradient(#8fd3ff,#d8f1ff 70%,#a8e08a 70%);box-shadow:inset 0 0 0 1vmin #d9bf96,0 2vmin 4vmin rgba(0,0,0,.35);overflow:hidden}
.tmr-eyes .win::before,.tmr-eyes .win::after{content:'';position:absolute;background:#f4e2c4}
.tmr-eyes .win::before{left:50%;top:0;bottom:0;width:1.6vmin;margin-left:-.8vmin}
.tmr-eyes .win::after{top:50%;left:0;right:0;height:1.6vmin;margin-top:-.8vmin}
.tmr-eyes .bird{position:absolute;left:18%;top:48%;width:20vmin;height:14vmin;animation:tmr-away 5s infinite ease-in}
.tmr-eyes .bird svg{width:100%;height:100%}
.tmr-eyes .win .hill{position:absolute;left:-15%;right:30%;bottom:-38%;height:62%;border-radius:50%;background:#8fd37a}
.tmr-eyes .win .tree{position:absolute;left:72%;top:52%;width:6vmin;height:6vmin;border-radius:50%;background:#4fa64a;box-shadow:2.5vmin 1vmin 0 -.6vmin #5cb855}
.tmr-eyes .win .tree::after{content:'';position:absolute;left:2.4vmin;top:5vmin;width:1.2vmin;height:3vmin;background:#8a5a3c}
.tmr-eyes .bird .w{transform-box:view-box;transform-origin:50% 60%;animation:tmr-flap .3s infinite alternate ease-in-out}
@keyframes tmr-away{0%{translate:0 0;scale:1}100%{translate:36vmin -32vmin;scale:.08}}
.tmr-eyes .finger{width:24vmin;height:40vmin}
.tmr-eyes.near .finger{animation:tmr-near 4s infinite ease-in-out}
@keyframes tmr-near{0%,100%{scale:.7}50%{scale:1.15}}
.tmr-eyes .finger svg,.tmr-eyes .bfly svg{width:100%;height:100%}
.tmr-eyes .bfly{width:40vmin;height:40vmin}
.tmr-eyes .bfly .wl,.tmr-eyes .bfly .wr{transform-box:view-box;transform-origin:50% 50%;animation:tmr-flap .35s infinite alternate ease-in-out}
@keyframes tmr-flap{to{transform:scaleX(.2)}}

@media (orientation:landscape){
  .tmr-buddy{bottom:3%;height:76%;max-width:34%}
  .tmr-beds{left:30%;right:calc(2% + env(safe-area-inset-right));height:40%;flex-wrap:nowrap}
  .tmr-bed{width:20%;height:100%}
  .tmr-lamp{bottom:auto;top:14%;right:calc(12vmin + env(safe-area-inset-right))}
  .tmr-cards{left:31%;right:4%;top:6%;height:50%}
  .tmr-sun{left:calc(56% - 11vmin);top:calc(4% + (1 - var(--f, 0)) * 26%)}
  .tmr-play{right:auto;left:calc(60% - min(10vmin,65px));top:30%}
}

/* ---------- для взрослых: проверка и панель (только текст, голосом не читается) ---------- */
.tmr-gate,.tmr-panel{position:fixed;inset:0;z-index:1000;background:rgba(20,16,40,.6);display:flex;align-items:center;justify-content:center;font:500 15px/1.35 system-ui,-apple-system,sans-serif;color:#333;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.tg-box{position:relative;background:#fff;border-radius:18px;padding:16px 18px;width:min(92vw,340px);display:grid;gap:6px;box-shadow:0 8px 30px rgba(0,0,0,.35)}
.tg-box.shake{animation:shake .4s}
.tg-x,.tp-x{position:absolute;right:6px;top:4px;width:40px;height:40px;font-size:28px;line-height:1;color:#999;z-index:2}
.tg-t{font-size:17px;color:#6a4bd8}
.tg-sub{color:#666;font-size:13px}
.tg-q{font:800 30px/1.2 system-ui,-apple-system,sans-serif;text-align:center;color:#333;margin-top:4px}
.tg-in{min-height:40px;border-radius:10px;background:#f2effa;font:800 28px/40px system-ui,-apple-system,sans-serif;text-align:center;letter-spacing:4px}
.tg-wait{display:none;color:#d23;text-align:center;font-weight:700}
.tmr-gate.locked .tg-wait{display:block}
.tmr-gate.locked .tg-pad{opacity:.35}
.tg-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:4px}
.tg-pad button{height:46px;border-radius:12px;background:#ece8f8;font:700 22px/1 system-ui,-apple-system,sans-serif;color:#333}
.tg-pad button:active{background:#d6cdf5}
.tg-pad .ok{background:#6a4bd8;color:#fff}
@media (max-height:520px) and (orientation:landscape){
  .tg-box{width:min(94vw,600px);grid-template-columns:1fr 1fr;column-gap:16px;align-items:start}
  .tg-t,.tg-sub,.tg-q,.tg-in,.tg-wait{grid-column:1}
  .tg-pad{grid-column:2;grid-row:1 / span 6;margin-top:34px}
  .tg-pad button{height:min(46px,16vh)}
}
.tp-box{position:relative;background:#fff;border-radius:18px;width:min(96vw,580px);max-height:94%;overflow:auto;-webkit-overflow-scrolling:touch;padding:14px 16px 18px;box-shadow:0 8px 30px rgba(0,0,0,.35)}
.tp-body h2{font-size:19px;margin:2px 40px 4px 0;color:#6a4bd8}
.tp-body h3{font-size:16px;margin:16px 0 6px;color:#6a4bd8;border-top:1px solid #eee;padding-top:10px}
.tp-st{margin:0 0 8px;font-weight:600}
.tp-dim{color:#777;font-size:13px;margin:4px 0}
.tp-note{margin-top:14px}
.tp-row{margin:8px 0}
.tp-row>b{display:block;font-size:14px;margin-bottom:4px}
.tp-btns{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.tp-btns button,.tp-opts button{padding:8px 13px;border-radius:999px;background:#ece8f8;color:#333;font:700 14px/1.1 system-ui,-apple-system,sans-serif}
.tp-btns button{background:#6a4bd8;color:#fff;padding:10px 16px}
.tp-btns button.warn{background:#ff8a5b}
.tp-opts{display:flex;flex-wrap:wrap;gap:6px}
.tp-opts button.on{background:#6a4bd8;color:#fff}
.tp-new button{background:#e3f6e1}
.tp-bars{display:flex;align-items:flex-end;gap:6px;height:110px;padding:16px 0 0}
.tp-bar{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px}
.tp-bar i{display:block;width:100%;max-width:34px;min-height:2px;border-radius:5px 5px 0 0;background:#b9a8f2}
.tp-bar.now i{background:#6a4bd8}
.tp-bar em{font-style:normal;font-size:12px;color:#333;font-weight:700}
.tp-bar span{font-size:13px;color:#444;font-weight:600}
.tp-bar i{min-height:3px}
.tp-dim{color:#555}
@media (min-width:900px) and (min-height:700px){.tg-box,.tp-box{zoom:1.3}}
/* панель: на низком экране видно, что дальше есть ещё (тень внизу) */
.tp-box{background:linear-gradient(#fff 30%,rgba(255,255,255,0)) top/100% 40px no-repeat local,linear-gradient(rgba(255,255,255,0),#fff 70%) bottom/100% 40px no-repeat local,radial-gradient(farthest-side at 50% 100%,rgba(0,0,0,.18),transparent) bottom/100% 14px no-repeat scroll,#fff}

.tmr-clock{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:none}
.tmr-tip{position:fixed;z-index:5000;background:rgba(40,30,60,.88);color:#fff;font:600 max(13px,3.2vmin)/1.25 system-ui,sans-serif;padding:1.6vmin 2.4vmin;border-radius:2vmin;max-width:60vw;opacity:0;transform:translateY(-6px);transition:opacity .25s,transform .25s;pointer-events:none}
.tmr-tip.on{opacity:1;transform:none}
