@font-face{font-family:Rubik;src:url(fonts/rubik-hebrew.woff2) format("woff2");font-weight:300 900;font-display:swap;unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
@font-face{font-family:Rubik;src:url(fonts/rubik-latin.woff2) format("woff2");font-weight:300 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--ink:#1f1235;--muted:#5b4b78;--card:rgba(255,255,255,.93);--glass:rgba(255,255,255,.16);--pri:#7c3aed;--pri2:#ec4899;--ok:#16a34a;--bad:#e11d48;--warn:#f59e0b;
--mol:#a855f7;--cell:#3b82f6;--tissue:#10b981;--organ:#f59e0b;--system:#ef4444;--org:#ec4899;--r:22px;--sh:0 10px 30px rgba(20,0,50,.28)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;overflow-x:hidden}
body{font-family:Rubik,"Heebo",Arial,sans-serif;color:var(--ink);background:#2a0b45;font-size:17px;line-height:1.5}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}
:focus-visible{outline:3px solid #fde047;outline-offset:3px;border-radius:12px}
#bg{position:fixed;inset:0;z-index:-1;overflow:hidden;background:radial-gradient(circle at 30% 20%,#7c1d6f,#2a0b45 60%,#12052a)}
.bg-img{position:absolute;inset:-8%;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s ease;animation:kb 38s ease-in-out infinite alternate;will-change:transform}
.bg-img.on{opacity:1}
@keyframes kb{0%{transform:scale(1.02) translate(0,0)}50%{transform:scale(1.14) translate(-3%,2%)}100%{transform:scale(1.08) translate(3%,-2%)}}
#cells{position:absolute;inset:0;width:100%;height:100%}
.bg-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(25,5,50,.35),rgba(25,5,50,.15) 40%,rgba(25,5,50,.55))}
#app{max-width:780px;margin:0 auto;padding:12px 14px 40px;min-height:100vh}
.hidden{display:none!important}
/* ---------- generic ---------- */
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);padding:18px;backdrop-filter:blur(8px)}
.glass{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:var(--r);color:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:12px 22px;border-radius:999px;font-weight:800;font-size:1.08rem;color:#fff;
background:linear-gradient(135deg,var(--pri),var(--pri2));box-shadow:0 6px 0 rgba(0,0,0,.18),0 10px 24px rgba(124,58,237,.35);transition:transform .12s,box-shadow .12s,filter .2s}
.btn:active{transform:translateY(3px);box-shadow:0 3px 0 rgba(0,0,0,.18)}
.btn:disabled{filter:grayscale(.8) brightness(1.1);opacity:.6;cursor:not-allowed}
.btn.big{min-height:64px;font-size:1.3rem;padding:14px 34px}
.btn.green{background:linear-gradient(135deg,#16a34a,#22c55e)}
.btn.orange{background:linear-gradient(135deg,#f97316,#f59e0b)}
.btn.ghost{background:rgba(255,255,255,.18);box-shadow:none;border:2px solid rgba(255,255,255,.5)}
.btn.light{background:#fff;color:var(--pri);box-shadow:0 5px 0 rgba(0,0,0,.12)}
.btn.block{width:100%}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.center{text-align:center}
h1,h2,h3{margin:0 0 8px;line-height:1.2}
.muted{color:var(--muted)}
.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-weight:700;font-size:.92rem}
input.inp,textarea.inp{width:100%;border:3px solid #e9d5ff;border-radius:16px;padding:12px 14px;font-size:1.1rem;background:#fff;outline:none;transition:border-color .2s}
input.inp:focus,textarea.inp:focus{border-color:var(--pri)}
label.lbl{display:block;font-weight:700;margin:12px 0 6px}
.credit{color:rgba(255,255,255,.85);text-align:center;font-size:.85rem;margin-top:22px;text-shadow:0 1px 3px rgba(0,0,0,.5)}
/* ---------- cover ---------- */
.cover{min-height:calc(100vh - 60px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;gap:14px}
.cover .logo{font-size:clamp(2.8rem,12vw,5rem);font-weight:900;letter-spacing:-1px;line-height:1.1;padding:0 6px;
background:linear-gradient(180deg,#fff,#fde68a);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 0 #9d174d)}
.cover .sub{font-size:1.25rem;font-weight:700;background:rgba(0,0,0,.25);padding:6px 16px;border-radius:999px}
.mascot{width:min(54vw,240px);aspect-ratio:1;border-radius:50%;object-fit:cover;animation:bob 2.6s ease-in-out infinite;box-shadow:0 0 0 8px rgba(255,255,255,.25),0 20px 50px rgba(0,0,0,.4);background:#fff3e0}
@keyframes bob{50%{transform:translateY(-12px) rotate(-3deg)}}
.cover .ladder-mini{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.cover .ladder-mini span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;box-shadow:0 4px 0 rgba(0,0,0,.2);animation:pop .5s backwards}
.cover .ladder-mini svg{width:28px;height:28px}
@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.2)}100%{transform:scale(1)}}
/* ---------- setup ---------- */
.avatars{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:10px 0}
.av{position:relative;border-radius:22px;padding:6px;background:#f5f3ff;border:4px solid transparent;transition:transform .15s,border-color .15s}
.av img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:16px;display:block}
.av.sel{border-color:var(--pri);transform:scale(1.05);box-shadow:0 8px 20px rgba(124,58,237,.35)}
.av.sel::after{content:"✓";position:absolute;top:-8px;left:-8px;width:30px;height:30px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;font-weight:900}
.modes{display:grid;gap:12px;margin-top:10px}
.mode{display:flex;gap:14px;align-items:center;text-align:right;padding:16px;border-radius:20px;background:#f5f3ff;border:3px solid transparent;min-height:72px}
.mode.sel{border-color:var(--pri);background:#ede9fe}
.mode .ic{font-size:2rem}
.err{color:var(--bad);font-weight:700;min-height:1.4em;margin-top:8px}
/* ---------- top bar ---------- */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;padding:8px 10px;margin:0 -6px 12px;border-radius:0 0 22px 22px;
background:rgba(30,8,60,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff}
.top .me{display:flex;align-items:center;gap:8px;min-width:0;flex:1}
.top .me img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:3px solid #fde047;background:#fff}
.top .me b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw}
.top .me small{display:block;opacity:.85;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw}
.stat{display:flex;align-items:center;gap:4px;background:rgba(255,255,255,.16);padding:6px 10px;border-radius:999px;font-weight:800;font-size:.95rem;white-space:nowrap}
.icon-btn{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:1.25rem;color:#fff;flex:0 0 auto}
.xpbar{height:6px;border-radius:9px;background:rgba(255,255,255,.2);overflow:hidden;margin-top:3px}
.xpbar i{display:block;height:100%;background:linear-gradient(90deg,#fde047,#f97316);border-radius:9px;transition:width .6s}
/* ---------- home ---------- */
.hero{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:16px;margin-bottom:14px}
.hero .bodyav{width:110px;height:110px;border-radius:50%;object-fit:cover;border:5px solid #fff;box-shadow:0 0 0 6px rgba(253,224,71,.5);animation:breathe 4s ease-in-out infinite;background:#fff}
@keyframes breathe{50%{transform:scale(1.04)}}
.hero h2{color:#fff;font-size:1.4rem}
.hero p{margin:0;color:rgba(255,255,255,.9)}
.sec-title{color:#fff;font-size:1.3rem;font-weight:900;margin:18px 4px 10px;display:flex;align-items:center;gap:8px;text-shadow:0 2px 6px rgba(0,0,0,.4)}
.gauges{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.gauge{background:rgba(255,255,255,.92);border-radius:16px;padding:8px 6px;text-align:center;position:relative;overflow:hidden;transition:transform .3s}
.gauge .gi{font-size:1.35rem;line-height:1}
.gauge .gn{font-size:.72rem;font-weight:700;color:var(--muted);white-space:nowrap}
.gauge .gb{height:8px;border-radius:9px;background:#ede9fe;margin:5px 2px 3px;overflow:hidden}
.gauge .gb i{display:block;height:100%;border-radius:9px;transition:width .8s cubic-bezier(.2,.9,.3,1.2),background .5s}
.gauge .gs{font-size:.74rem;font-weight:800}
.gauge.hit{animation:shake .5s}
.gauge.heal{animation:heal .8s}
@keyframes shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
@keyframes heal{40%{transform:scale(1.12);box-shadow:0 0 0 4px #86efac}}
.events{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ev{position:relative;border-radius:22px;overflow:hidden;min-height:150px;color:#fff;text-align:right;display:flex;flex-direction:column;justify-content:flex-end;padding:12px;
box-shadow:var(--sh);background:#3b0764 center/cover no-repeat;transition:transform .15s;isolation:isolate}
.ev::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 15%,rgba(20,0,40,.85));z-index:-1}
.ev:active{transform:scale(.97)}
.ev .em{position:absolute;top:10px;right:10px;font-size:1.7rem;background:rgba(255,255,255,.9);width:48px;height:48px;border-radius:16px;display:grid;place-items:center;box-shadow:0 4px 0 rgba(0,0,0,.15)}
.ev .st{position:absolute;top:10px;left:10px}
.ev h3{font-size:1.05rem;font-weight:800;text-shadow:0 2px 4px rgba(0,0,0,.6);margin:0 0 6px}
.ev .lvdots{display:flex;gap:4px}
.ev .lvdots i{flex:1;height:7px;border-radius:9px;background:rgba(255,255,255,.3)}
.ev .lvdots i.on{background:#fde047}
.ev .badge-on{background:#fde047;color:#5b21b6}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tile{padding:14px 8px;text-align:center;min-height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-weight:800}
.tile .ti{font-size:1.8rem}
.badges{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:none}
.bdg{flex:0 0 auto;width:88px;text-align:center;color:#fff;font-size:.78rem;font-weight:700}
.bdg span{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 4px;border-radius:50%;font-size:1.9rem;background:rgba(255,255,255,.15);border:3px dashed rgba(255,255,255,.4);filter:grayscale(1);opacity:.6}
.bdg.on span{background:radial-gradient(circle at 35% 30%,#fff7c2,#fbbf24);border:3px solid #fff;filter:none;opacity:1;box-shadow:0 0 18px rgba(251,191,36,.7)}
/* ---------- event ---------- */
.evhead{display:flex;align-items:center;gap:10px;color:#fff;margin:4px 2px 10px}
.evhead h2{font-size:1.25rem;margin:0;text-shadow:0 2px 6px rgba(0,0,0,.5)}
.ladder{display:flex;align-items:flex-start;justify-content:space-between;position:relative;padding:10px 6px 4px;margin-bottom:12px}
.ladder::before{content:"";position:absolute;top:34px;right:30px;left:30px;height:6px;border-radius:9px;background:rgba(255,255,255,.25)}
.ladder .fill{position:absolute;top:34px;right:30px;height:6px;border-radius:9px;background:linear-gradient(270deg,#fde047,#f97316);transition:width .8s}
.rung{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:4px;width:56px;color:#fff;font-size:.72rem;font-weight:800;text-align:center}
.rung .rc{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.25);border:3px solid rgba(255,255,255,.5);transition:all .4s}
.rung .rc svg{width:30px;height:30px}
.rung.done .rc{border-color:#fff}
.rung.done .rc::after{content:"✓";position:absolute;top:-4px;left:0;width:20px;height:20px;border-radius:50%;background:#22c55e;color:#fff;font-size:.75rem;display:grid;place-items:center;border:2px solid #fff}
.rung.cur .rc{transform:scale(1.18);border-color:#fde047;box-shadow:0 0 0 6px rgba(253,224,71,.35),0 0 24px rgba(253,224,71,.8);animation:pulse 1.6s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 12px rgba(253,224,71,0),0 0 30px rgba(253,224,71,.9)}}
.rung.lock{opacity:.6}
.lvcard{position:relative;overflow:hidden;animation:slidein .45s cubic-bezier(.2,.9,.3,1.1)}
@keyframes slidein{from{opacity:0;transform:translateY(24px) scale(.97)}}
.lvtag{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 8px;border-radius:999px;color:#fff;font-weight:800;margin-bottom:8px}
.lvtag svg{width:26px;height:26px;background:rgba(255,255,255,.25);border-radius:50%;padding:3px}
.step{font-size:.85rem;font-weight:800;color:var(--muted);margin-bottom:4px}
.q{font-size:1.15rem;font-weight:700;margin:6px 0 12px}
.opts{display:grid;gap:10px}
.opt{display:flex;align-items:center;gap:12px;text-align:right;width:100%;min-height:58px;padding:12px 14px;border-radius:18px;background:#f5f3ff;border:3px solid #e9d5ff;font-weight:600;transition:transform .1s,background .2s,border-color .2s}
.opt .let{flex:0 0 36px;height:36px;border-radius:12px;background:#fff;display:grid;place-items:center;font-weight:900;color:var(--pri);border:2px solid #ddd6fe}
.opt:active{transform:scale(.98)}
.opt.right{background:#dcfce7;border-color:#22c55e}
.opt.right .let{background:#22c55e;color:#fff;border-color:#22c55e}
.opt.wrong{background:#ffe4e6;border-color:#fb7185;animation:shake .45s}
.opt.wrong .let{background:#fb7185;color:#fff;border-color:#fb7185}
.opt:disabled{cursor:default}
.why{margin-top:12px;padding:12px 14px;border-radius:16px;background:#ecfeff;border-inline-start:6px solid #06b6d4;animation:slidein .4s}
.chain{display:flex;flex-direction:column;gap:0;margin:8px 0 6px;position:relative;touch-action:pan-y}
.link{position:relative;display:flex;align-items:center;gap:10px;min-height:60px;padding:10px 12px 10px 10px;border-radius:18px;background:#fff;border:3px solid #ddd6fe;font-weight:600;
box-shadow:0 4px 0 #ddd6fe;user-select:none;-webkit-user-select:none;transition:transform .22s cubic-bezier(.2,.9,.3,1.1),border-color .2s,background .2s;z-index:1}
.link + .arrow{}
.arrow{height:22px;display:grid;place-items:center;color:#a78bfa;font-weight:900;font-size:1.1rem;line-height:1}
.link .grip{flex:0 0 44px;height:44px;border-radius:14px;background:#ede9fe;display:grid;place-items:center;color:#7c3aed;font-size:1.3rem;touch-action:none;cursor:grab}
.link .num{flex:0 0 30px;height:30px;border-radius:50%;background:var(--pri);color:#fff;display:grid;place-items:center;font-weight:900;font-size:.9rem}
.link .tx{flex:1}
.link.dragging{z-index:5;transition:none;box-shadow:0 18px 30px rgba(76,29,149,.35);border-color:var(--pri);background:#faf5ff;cursor:grabbing}
.link.sel{border-color:#f59e0b;background:#fffbeb;box-shadow:0 0 0 4px rgba(245,158,11,.3)}
.link.ok{border-color:#22c55e;background:#f0fdf4;box-shadow:0 4px 0 #86efac}
.link.no{border-color:#fb7185;background:#fff1f2;box-shadow:0 4px 0 #fda4af}
.chain.solved .link{animation:glow 1s}
@keyframes glow{50%{box-shadow:0 0 0 6px rgba(34,197,94,.35)}}
.hint{font-size:.9rem;color:var(--muted);margin:2px 0 8px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.actions .btn{flex:1;min-width:140px}
.lesson{background:linear-gradient(135deg,#fef3c7,#fde68a);border:4px solid #fff}
.flash{position:relative;overflow:hidden;padding:0;border:4px solid #fff;animation:flashin .6s cubic-bezier(.2,.9,.3,1.3)}
@keyframes flashin{0%{transform:scale(.6) rotate(-4deg);opacity:0}100%{transform:none;opacity:1}}
.flash .fh{background:linear-gradient(90deg,#dc2626,#f43f5e);color:#fff;padding:10px 16px;font-weight:900;font-size:1.6rem;display:flex;align-items:center;gap:10px;letter-spacing:1px}
.flash .fh .live{font-size:.8rem;background:#fff;color:#dc2626;border-radius:6px;padding:2px 8px;animation:blink 1s infinite}
@keyframes blink{50%{opacity:.3}}
.flash .fimg{height:170px;background:#000 center/cover no-repeat;animation:kb 20s ease-in-out infinite alternate}
.flash .fb{padding:16px}
.ticker{position:relative;height:36px;background:#111827;color:#fde047;white-space:nowrap;overflow:hidden;font-weight:700}
.ticker span{position:absolute;top:6px;right:0;animation:tick 22s linear -9s infinite}
@keyframes tick{from{transform:translateX(-800px)}to{transform:translateX(100%)}}
.styles{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.chip{padding:10px 14px;border-radius:999px;background:#f5f3ff;border:3px solid #e9d5ff;font-weight:700;min-height:48px}
.chip.sel{background:var(--pri);color:#fff;border-color:var(--pri)}
.checks{display:grid;gap:8px;margin:10px 0}
.chk{display:flex;gap:10px;align-items:center;padding:12px;border-radius:16px;background:#f5f3ff;border:3px solid #e9d5ff;text-align:right;font-weight:600;min-height:56px;width:100%}
.chk .bx{flex:0 0 30px;height:30px;border-radius:10px;border:3px solid #a78bfa;background:#fff;display:grid;place-items:center;color:#fff;font-weight:900}
.chk.on{background:#dcfce7;border-color:#22c55e}
.chk.on .bx{background:#22c55e;border-color:#22c55e}
.model{margin-top:12px;padding:14px;border-radius:18px;background:#f0f9ff;border:3px dashed #38bdf8}
.model h3{color:#0369a1}
.mytext{white-space:pre-wrap;background:#faf5ff;border-radius:14px;padding:12px;border:2px solid #e9d5ff}
.done-burst{text-align:center}
.done-burst .bigbadge{font-size:4rem;width:120px;height:120px;margin:6px auto;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fff7c2,#fbbf24);border:5px solid #fff;box-shadow:0 0 40px rgba(251,191,36,.9);animation:pop .7s}
/* ---------- board ---------- */
.board{display:grid;gap:8px}
.br{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:18px;background:rgba(255,255,255,.93);transition:transform .3s}
.br.me{background:#fef9c3;border:3px solid #facc15}
.br .rk{flex:0 0 36px;font-weight:900;font-size:1.2rem;text-align:center}
.br img{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#f5f3ff}
.br .nm{flex:1;font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.br .xp{font-weight:900;color:var(--pri)}
.live-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:ld 1.5s infinite}
@keyframes ld{70%{box-shadow:0 0 0 10px rgba(34,197,94,0)}}
/* ---------- toast/modal ---------- */
#toasts{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:100;display:flex;flex-direction:column;gap:8px;width:min(92vw,460px);pointer-events:none}
.toast{padding:12px 16px;border-radius:18px;font-weight:800;color:#fff;box-shadow:var(--sh);animation:tin .35s cubic-bezier(.2,.9,.3,1.3);text-align:center}
.toast.good{background:linear-gradient(135deg,#16a34a,#22c55e)}
.toast.bad{background:linear-gradient(135deg,#e11d48,#f97316)}
.toast.info{background:linear-gradient(135deg,#7c3aed,#ec4899)}
@keyframes tin{from{transform:translateY(-20px) scale(.9);opacity:0}}
.modal{position:fixed;inset:0;z-index:90;background:rgba(15,0,35,.6);display:flex;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(4px)}
.modal[hidden]{display:none}
.modal .card{width:min(520px,100%);max-height:88vh;overflow:auto;animation:flashin .4s}
.zoomfx{position:fixed;inset:0;z-index:80;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle,rgba(0,0,0,.0),rgba(20,0,40,.75));animation:zf 1.6s forwards}
.zoomfx .zi{text-align:center;color:#fff;font-weight:900;font-size:1.5rem;text-shadow:0 3px 10px rgba(0,0,0,.6)}
.zoomfx .zc{width:120px;height:120px;border-radius:50%;margin:0 auto 10px;display:grid;place-items:center;border:5px solid #fff;animation:zoomc 1.6s}
.zoomfx .zc svg{width:70px;height:70px}
@keyframes zf{0%{opacity:0}15%{opacity:1}80%{opacity:1}100%{opacity:0}}
@keyframes zoomc{0%{transform:scale(2.6);opacity:0}30%{transform:scale(1);opacity:1}100%{transform:scale(.9)}}
.xpfly{position:fixed;z-index:95;font-weight:900;font-size:1.6rem;color:#fde047;text-shadow:0 3px 0 #9a3412,0 0 12px rgba(0,0,0,.4);pointer-events:none;animation:fly 1.2s forwards}
@keyframes fly{0%{transform:translateY(0) scale(.6);opacity:0}20%{transform:translateY(-10px) scale(1.2);opacity:1}100%{transform:translateY(-90px) scale(1);opacity:0}}
#confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:99}
.tabs{display:flex;gap:8px;margin:6px 0 12px}
.empty{color:#fff;text-align:center;padding:20px;opacity:.9}
@media (min-width:700px){
  .events{grid-template-columns:repeat(3,1fr)}
  .ev{min-height:170px}
  .gauges{grid-template-columns:repeat(8,1fr)}
  .rung{width:80px;font-size:.82rem}
  .rung .rc{width:58px;height:58px}
  .ladder::before,.ladder .fill{top:38px}
  .flash .fimg{height:240px}
}
@media (max-width:360px){.gauges{grid-template-columns:repeat(4,1fr)}.gauge .gn{font-size:.64rem}.rung{width:48px;font-size:.64rem}.rung .rc{width:42px;height:42px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.gauges.evg{grid-template-columns:repeat(auto-fit,minmax(78px,1fr))}
@media (min-width:700px){.gauges.evg{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}}
#bg.camin{animation:camin 1.5s cubic-bezier(.2,.8,.2,1)}
#bg.camout{animation:camout 1.5s cubic-bezier(.2,.8,.2,1)}
@keyframes camin{0%{transform:scale(1);filter:blur(0)}35%{transform:scale(1.5);filter:blur(6px)}100%{transform:scale(1);filter:blur(0)}}
@keyframes camout{0%{transform:scale(1.45);filter:blur(6px)}100%{transform:scale(1);filter:blur(0)}}
.bg-shade{transition:background 1s}
@media (orientation:portrait){
  .bg-img.wide{inset:auto;top:-4%;height:108%;width:calc(108vh * 1.78);left:50%;animation:kbp 46s ease-in-out infinite alternate}
}
@keyframes kbp{0%{transform:translateX(-32%) scale(1.02)}50%{transform:translateX(-50%) scale(1.1)}100%{transform:translateX(-68%) scale(1.04)}}

/* v6 reminder card */
.lshead{text-align:center}
.lshead .pill{font-size:1.05rem;padding:8px 16px}
.lssub{margin:8px 0 4px;color:#92400e;font-weight:600;font-size:.98rem}
.lsbody{display:flex;gap:14px;align-items:flex-start;margin-top:12px}
.lsart{flex:0 0 72px;height:72px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#fde68a 60%,#f59e0b);display:grid;place-items:center;box-shadow:0 6px 16px rgba(180,83,9,.25);animation:lsbob 2.6s ease-in-out infinite}
.lsart span{font-size:2.3rem;line-height:1}
@keyframes lsbob{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-6px) rotate(4deg)}}
.lstxt{flex:1;min-width:0}
.lstxt h2{margin:0 0 6px;font-size:1.35rem;color:#78350f}
.lsb{margin:0;padding:0;list-style:none}
.lsb li{position:relative;padding:8px 26px 8px 10px;margin:6px 0;background:rgba(255,255,255,.7);border-radius:12px;font-size:1.04rem;font-weight:500;line-height:1.45}
.lsb li::before{content:"✔";position:absolute;right:8px;top:8px;color:#d97706;font-weight:900}
.xpchip{display:inline-block;margin-inline-start:6px;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.3);font-size:.8rem;font-weight:800}
.lskip{background:none;border:0;color:#92400e;text-decoration:underline;font:inherit;font-size:.92rem;padding:8px 14px;cursor:pointer;opacity:.8}
@media (max-width:420px){.lsbody{flex-direction:column;align-items:center}.lsart{flex-basis:auto;width:72px}.lstxt h2{text-align:center}}
