:root{--gold: #e0b54a;--gold-hi: #ffd84a;--ink: #e7e9f0;--dim: #a9afc6;--panel: rgba(10, 12, 20, .82);--line: rgba(224, 181, 74, .35);--bad: #ff5a4a;--good: #6cd3a6}#tefillin-trials-root{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:#07080d;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}#tefillin-trials-root canvas{display:block}.tt-ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}.tt-ui button{pointer-events:auto;font:inherit;cursor:pointer}.tt-ui kbd{display:inline-block;min-width:1.4em;padding:0 .35em;margin-right:.5em;border:1px solid currentColor;border-radius:5px;font:700 .72em Inter,sans-serif;opacity:.8;text-align:center}[lang=he]{font-family:Frank Ruhl Libre,"Noto Serif Hebrew",serif}.tt-title{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;background:radial-gradient(ellipse at 50% 30%,#07080d26,#07080dbf);pointer-events:auto;overflow:auto}.tt-title-card{max-width:760px;width:100%;text-align:center;animation:rise .9s cubic-bezier(.2,.8,.2,1)}.tt-kicker{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--dim)}.tt-logo{margin:.2em 0 .3em;line-height:1}.tt-logo span{display:block;font-size:clamp(4rem,15vw,8.5rem);font-weight:900;color:var(--gold-hi);text-shadow:0 0 30px rgba(255,200,80,.55),0 0 90px rgba(255,170,40,.35)}.tt-logo small{display:block;margin-top:.35em;font:800 clamp(.9rem,2.6vw,1.3rem) Inter,sans-serif;letter-spacing:.35em;color:var(--ink)}.tt-rambam{font-size:clamp(1rem,2.4vw,1.25rem);line-height:1.6;color:#f6e7c1;margin:1rem auto .3rem;max-width:640px}.tt-rambam-en{font-size:.82rem;color:var(--dim);max-width:620px;margin:0 auto 1rem;line-height:1.5}.tt-hinenis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 auto 1.2rem}.tt-hineni{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px;font-size:.74rem;display:flex;flex-direction:column;gap:4px}.tt-hineni b{color:var(--gold-hi);font-size:.8rem}.tt-hineni span{font-size:.95rem;color:#f6e7c1}.tt-hineni em{color:var(--dim);font-style:normal;line-height:1.35}.tt-minhag{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;margin-bottom:1rem;font-size:.85rem;color:var(--dim)}.tt-minhag button{border:1px solid #3a3f55;background:#141622cc;color:var(--ink);border-radius:999px;padding:.5rem .95rem}.tt-minhag button[aria-pressed=true]{border-color:var(--gold-hi);background:#2a2414;color:var(--gold-hi);box-shadow:0 0 18px #ffd84a40}.tt-play{font-size:1.25rem!important;font-weight:800!important;padding:.85rem 2.4rem;border:none;border-radius:999px;color:#1a1205;background:linear-gradient(180deg,#ffe58a,#e0a92a);box-shadow:0 8px 40px #ffbe3c73;animation:pulse 2s infinite}.tt-controls{font-size:.72rem;color:var(--dim);margin-top:1rem}@media(max-width:640px){.tt-hinenis{grid-template-columns:1fr}.tt-hineni em{display:none}}.tt-top{position:absolute;top:10px;left:10px;right:10px;display:flex;gap:10px;align-items:center}.tt-rank{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:6px 12px;min-width:180px}.tt-rank b{color:var(--gold-hi);font-size:.85rem}.tt-rank small{color:var(--dim);font-size:.68rem}.tt-xp{height:5px;background:#1c2030;border-radius:9px;margin:4px 0 2px;overflow:hidden}.tt-xp div{height:100%;background:linear-gradient(90deg,#e0a92a,#ffe58a);transition:width .5s}.tt-sefer{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-weight:700;font-size:.85rem}.tt-top-btns{margin-left:auto;display:flex;gap:6px}.tt-top-btns button{background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:8px 12px}.tt-objective{position:absolute;top:74px;left:50%;transform:translate(-50%);max-width:min(720px,calc(100% - 20px));text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 14px;font-size:.84rem;line-height:1.45}.tt-objective b{color:var(--gold-hi)}.tt-stats{position:absolute;left:10px;bottom:14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:calc(100% - 200px)}.tt-stats>*{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:.8rem;font-weight:700}.tt-hearts span{color:#3a3f55;font-size:1.1rem;margin-right:2px}.tt-hearts span.on{color:var(--bad);text-shadow:0 0 10px rgba(255,90,74,.7)}.tt-meter{display:flex;align-items:center;gap:6px}.tt-meter>div{width:110px;height:8px;background:#1c2030;border-radius:9px;overflow:hidden}.tt-meter>div>div{height:100%;background:linear-gradient(90deg,#e0a92a,#fff3b0);transition:width .3s}.tt-pulse.cool{opacity:.5}.tt-flag{color:var(--bad);border-color:var(--bad)!important}.tt-humok.ok{color:var(--good)}.tt-humok.no{color:var(--bad);animation:pulse 1s infinite}.tt-kaddish{position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);text-align:center}.tt-kaddish-title{font:900 clamp(2rem,7vw,3.6rem) "Frank Ruhl Libre",serif;color:var(--gold-hi);letter-spacing:.2em;text-shadow:0 0 30px rgba(255,200,80,.7)}.tt-amen{margin-top:8px;border:2px solid #ffd84a;color:#1a1205;background:linear-gradient(180deg,#ffe58a,#f0a92a);font-weight:900!important;border-radius:14px;padding:.8rem 1.4rem;animation:wiggle .5s infinite;box-shadow:0 0 40px #ffc83c99}.tt-kaddish-sub{margin-top:8px;font-size:.8rem;color:var(--ink);background:var(--panel);border-radius:999px;padding:5px 12px;display:inline-block}.tt-ritual{position:absolute;bottom:70px;left:50%;transform:translate(-50%);width:min(760px,calc(100% - 20px));background:var(--panel);border:1px solid var(--gold);border-radius:16px;padding:12px;box-shadow:0 0 40px #e0b54a40}.tt-ritual-title{text-align:center;color:var(--gold-hi);font-weight:800;margin-bottom:8px}.tt-ritual-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.tt-ritual-btns button{background:#161a28;color:var(--ink);border:1px solid #3a3f55;border-radius:12px;padding:.7rem .5rem;font-size:.85rem;position:relative}.tt-ritual-btns button:hover{border-color:var(--gold-hi)}.tt-ritual-btns button.done{border-color:var(--good);color:var(--good)}.tt-ritual-btns span[lang=he]{font-size:1.05rem}.tt-tight{display:block;height:6px;background:#1c2030;border-radius:9px;margin-top:6px;overflow:hidden}.tt-tight span{display:block;height:100%;background:var(--good);transition:width .15s}@media(max-width:640px){.tt-ritual-btns{grid-template-columns:1fr 1fr}}.tt-slots{position:absolute;top:150px;left:50%;transform:translate(-50%);display:flex;gap:8px}.tt-slot{border:2px dashed;border-radius:12px;padding:6px 12px;background:var(--panel);text-align:center;opacity:.55}.tt-slot span{display:block;font-size:1.2rem;font-weight:700}.tt-slot small{font-size:.65rem;color:var(--dim)}.tt-slot.next{opacity:1;animation:pulse 1.2s infinite}.tt-slot.got{opacity:1;border-style:solid;background:#6cd3a626}.tt-slot.none{opacity:1;color:var(--bad);border-color:var(--bad);font-weight:800}.tt-slot.bonus{color:#fff;border-color:#fff}.tt-reaction{position:absolute;left:50%;bottom:22px;transform:translate(-50%);width:min(620px,calc(100% - 20px));background:#0c0e18eb;border:2px solid var(--gold-hi);border-radius:18px;padding:12px 14px;box-shadow:0 10px 60px #0009,0 0 40px #ffd84a33;animation:pop .25s cubic-bezier(.2,1.4,.4,1);pointer-events:auto}.tt-reaction-who{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-hi)}.tt-reaction-line{font:700 1.1rem Frank Ruhl Libre,serif;margin:2px 0 10px}.tt-reaction-opts{display:grid;gap:6px}.tt-reaction-opts button{text-align:left;background:#161a28;color:var(--ink);border:1px solid #3a3f55;border-radius:12px;padding:.6rem .8rem;font-size:.88rem;line-height:1.35}.tt-reaction-opts button:hover{border-color:var(--gold-hi);background:#221e12}.tt-prompt{position:absolute;left:50%;bottom:90px;transform:translate(-50%);background:var(--gold-hi);color:#1a1205;border:none;border-radius:999px;padding:.55rem 1.2rem;font-weight:800!important;box-shadow:0 0 30px #ffd84a80;animation:pulse 1.4s infinite}.tt-toasts{position:absolute;right:10px;top:74px;display:flex;flex-direction:column;gap:6px;width:min(360px,calc(100% - 20px))}.tt-toast{background:var(--panel);border-left:4px solid var(--good);border-radius:10px;padding:8px 12px;font-size:.8rem;line-height:1.4;animation:slide .3s ease-out}.tt-toast.bad{border-left-color:var(--bad)}.tt-toast.info{border-left-color:#5fb3ff}@media(max-width:640px){.tt-toasts{top:auto;bottom:170px;right:10px}.tt-objective{top:66px;font-size:.74rem}.tt-stats{max-width:calc(100% - 20px);bottom:150px}.tt-slots{top:130px}}.tt-results{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#07080d8c;padding:16px;pointer-events:auto;overflow:auto}.tt-results-card{width:min(560px,100%);background:#0c0e18f0;border:1px solid var(--gold);border-radius:20px;padding:20px;text-align:center;animation:pop .35s cubic-bezier(.2,1.4,.4,1)}.tt-results-card h2{font:900 1.9rem Frank Ruhl Libre,serif;color:var(--gold-hi);margin:.2em 0}.tt-bigstars span{font-size:2.6rem;color:#2a2f44;margin:0 4px}.tt-bigstars span.on{color:var(--gold-hi);text-shadow:0 0 20px rgba(255,216,74,.8)}.tt-results-stats{display:grid;gap:4px;margin:10px 0;font-size:.85rem}.tt-results-stats div{display:flex;justify-content:space-between;border-bottom:1px solid #22263a;padding:4px 0}.tt-results-stats span{color:var(--dim)}.tt-xpgain{font-weight:900;color:var(--good);font-size:1.2rem}.tt-lessons{text-align:left;font-size:.8rem;line-height:1.45;color:#d6d9e6;margin-top:10px;background:#10131e;border-radius:12px;padding:10px 12px}.tt-lessons b{color:var(--gold-hi)}.tt-lessons ul{margin:6px 0 0;padding-left:18px}.tt-lessons li{margin-bottom:4px}.tt-results-btns{display:flex;gap:8px;justify-content:center;margin-top:14px;flex-wrap:wrap}.tt-results-btns button{border:1px solid #3a3f55;background:#161a28;color:var(--ink);border-radius:999px;padding:.6rem 1.2rem;font-weight:700}.tt-results-btns button.primary{background:linear-gradient(180deg,#ffe58a,#e0a92a);color:#1a1205;border:none}.tt-tag{font:700 12px Inter,sans-serif;white-space:nowrap;background:#07080dbf;border:1px solid;border-radius:999px;padding:2px 9px}.tt-bubble{font:600 13px Inter,sans-serif;width:230px;background:#fffaf0;color:#1a1205;border-radius:14px;padding:8px 11px;line-height:1.35;box-shadow:0 6px 24px #00000073;position:relative;animation:pop .25s cubic-bezier(.2,1.4,.4,1)}.tt-bubble b{display:block;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#9a6b10}.tt-bubble:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);border:8px solid transparent;border-top-color:#fffaf0;border-bottom:0}.tt-portal{font:800 13px Inter,sans-serif;white-space:nowrap;color:#fff;background:#07080db3;border:1px solid;border-radius:10px;padding:3px 10px;text-align:center}.tt-stars span{color:#3a3f55}.tt-stars span.on{color:var(--gold-hi)}.tt-touch{position:absolute;inset:auto 0 0 0;height:150px}.tt-joy{position:absolute;left:22px;bottom:22px;width:120px;height:120px;border-radius:50%;background:#ffffff12;border:2px solid rgba(255,255,255,.18);pointer-events:auto;touch-action:none}.tt-knob{position:absolute;left:35px;top:35px;width:50px;height:50px;border-radius:50%;background:#ffd84a8c;box-shadow:0 0 20px #ffd84a66}.tt-touch-btns{position:absolute;right:18px;bottom:26px;display:flex;gap:12px}.tt-touch-btns button{width:64px;height:64px;border-radius:50%;border:2px solid rgba(255,216,74,.6);background:#141622cc;color:var(--gold-hi);font-size:1.4rem;font-weight:900;touch-action:none}@keyframes rise{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translate(-50%) scale(.85)}to{opacity:1;transform:translate(-50%) scale(1)}}.tt-bubble,.tt-results-card{animation-name:pop2}@keyframes pop2{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.25)}}@keyframes wiggle{0%,to{transform:rotate(-2deg) scale(1)}50%{transform:rotate(2deg) scale(1.05)}}@keyframes slide{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}:root{--glass: linear-gradient(160deg, rgba(28,32,50,.62), rgba(10,12,20,.78));--foil: linear-gradient(135deg, #fff1b0, #e0a92a 45%, #8a5f12 55%, #ffe58a)}.tt-rank,.tt-sefer,.tt-objective,.tt-stats>*,.tt-top-btns button,.tt-hineni,.tt-slot,.tt-toast,.tt-ritual,.tt-lessons{background:var(--glass);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border-color:#ffe29638;box-shadow:0 8px 30px #00000059,inset 0 1px #ffffff14}.tt-reaction,.tt-results-card{background:linear-gradient(160deg,#1a1e30e6,#080a12f2);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid transparent;background-clip:padding-box;position:relative}.tt-reaction:before,.tt-results-card:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;z-index:-1;border-radius:inherit;background:var(--foil)}.tt-title{background:radial-gradient(ellipse at 50% 35%,#07080d0d,#07080dd1),linear-gradient(180deg,rgba(7,8,13,.5),transparent 30%,rgba(7,8,13,.6))}.tt-logo span{background:var(--foil);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 0 28px rgba(255,190,70,.5));animation:foil 6s linear infinite}.tt-logo small{text-shadow:0 2px 20px rgba(0,0,0,.8)}.tt-play{background:var(--foil)!important;background-size:200% 100%!important;letter-spacing:.06em;transition:transform .2s,box-shadow .2s}.tt-play:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 12px 60px #ffbe3cb3}.tt-play:active{transform:scale(.97)}.tt-hineni{transition:transform .25s,border-color .25s}.tt-hineni:hover{transform:translateY(-4px);border-color:var(--gold-hi)}.tt-xp div,.tt-meter>div>div{background:var(--foil);background-size:200% 100%;animation:foil 3s linear infinite;box-shadow:0 0 10px #ffc85099}.tt-reaction-opts button,.tt-ritual-btns button,.tt-results-btns button{transition:transform .15s,border-color .15s,background .15s,box-shadow .15s}.tt-reaction-opts button:hover,.tt-ritual-btns button:hover{transform:translate(4px);box-shadow:0 0 20px #ffd84a40}.tt-ritual-btns button:hover{transform:translateY(-2px)}.tt-ui kbd{background:#ffffff14;box-shadow:0 2px #fff3}.tt-prompt{background:var(--foil);background-size:200% 100%;box-shadow:0 0 40px #ffd84a8c,0 6px 20px #0006}.tt-bubble{background:linear-gradient(180deg,#fffdf6,#f5ead0);box-shadow:0 10px 30px #00000080,0 0 0 2px #e0b54a99}.tt-tag,.tt-portal{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 0 18px currentColor}.tt-bigstars span.on{animation:starpop .5s cubic-bezier(.2,1.6,.4,1) backwards}.tt-bigstars span:nth-child(2).on{animation-delay:.15s}.tt-bigstars span:nth-child(3).on{animation-delay:.3s}.tt-toast{border-radius:12px}.tt-top{align-items:stretch}@keyframes foil{to{background-position:220% 0}}@keyframes starpop{0%{transform:scale(0) rotate(-90deg);opacity:0}to{transform:none;opacity:1}}
