:root{--bg: #fff7e0;--ink: #33261d;--accent: #ffb703;--accent2: #fb8500;--ok: #2a9d8f;--blue: #219ebc;--pink: #ef476f;--soft: #ffe8a8;--font: ui-rounded, "SF Pro Rounded", "Arial Rounded MT Bold", "Avenir Next", "Nunito", system-ui, sans-serif;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--bg);color:var(--ink);font-family:var(--font)}body{position:fixed;inset:0;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}#app{position:absolute;inset:0;padding:calc(var(--safe-t) + 10px) calc(var(--safe-r) + 14px) calc(var(--safe-b) + 10px) calc(var(--safe-l) + 14px)}button{font-family:inherit;color:inherit;border:0;cursor:pointer;touch-action:manipulation}.screen{height:100%;display:flex;flex-direction:column;align-items:center;gap:2vmin}.screen.enter{animation:fade .3s ease}@keyframes fade{0%{opacity:0;transform:scale(.98)}}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 10% 15%,#ffd16655 0 9vmin,transparent 9.2vmin),radial-gradient(circle at 92% 80%,#8ecae655 0 14vmin,transparent 14.2vmin),radial-gradient(circle at 85% 12%,#ef476f22 0 6vmin,transparent 6.2vmin)}.icon-btn{width:15vmin;height:15vmin;min-width:76px;min-height:76px;border-radius:28%;font-size:8vmin;background:#fff;box-shadow:0 .8vmin #e9c46a,0 1.4vmin 2.4vmin #0001;display:grid;place-items:center;transition:transform .1s}.icon-btn:active,.tile:active,.play-btn:active,.start-btn:active{transform:translateY(.6vmin) scale(.97)}.icon-btn.small{width:10vmin;height:10vmin;min-width:64px;min-height:64px;font-size:5vmin}.icon-btn.big{width:20vmin;height:20vmin;font-size:11vmin}.icon-btn.go{background:var(--ok);box-shadow:0 .8vmin #1d7068}.icon-btn.locked{opacity:.55}.start{justify-content:center;gap:4vmin}.logo{display:flex;gap:2vmin;font-size:16vmin;font-weight:900}.logo-l{display:inline-block;animation:bob 2s ease-in-out infinite;text-shadow:0 1vmin 0 #0002}.l0{color:var(--pink)}.l1{color:var(--blue);animation-delay:.2s}.l2{color:var(--accent2);animation-delay:.4s}.start-btn{font-size:8vmin;font-weight:900;padding:3vmin 8vmin;border-radius:99px;background:var(--ok);color:#fff;box-shadow:0 1.2vmin #1d7068;display:flex;align-items:center;gap:3vmin;animation:pulse 1.6s ease-in-out infinite}.start-icon{font-size:7vmin}@keyframes pulse{50%{transform:scale(1.06)}}@keyframes bob{50%{transform:translateY(-1.5vmin)}}.guide{position:relative;display:flex;align-items:center;gap:2vmin}.guide-face{font-size:18vmin;line-height:1;animation:bob 2.4s ease-in-out infinite;filter:drop-shadow(0 1vmin 1vmin #0002)}.guide.big .guide-face{font-size:26vmin}.guide.small{position:fixed;left:calc(var(--safe-l) + 1.5vmin);bottom:calc(var(--safe-b) + 1vmin);pointer-events:none}.guide.small .guide-face{font-size:11vmin}.guide.jump .guide-face{animation:jump .6s ease}@keyframes jump{30%{transform:translateY(-5vmin) rotate(-10deg) scale(1.15)}60%{transform:translateY(0) rotate(8deg)}}.bubble{background:#fff;border-radius:3vmin;padding:1.5vmin 2.5vmin;font-size:3.5vmin;box-shadow:0 .6vmin 1.4vmin #0002}.bubble:empty{display:none}.picker{justify-content:center}.picker-title{font-size:12vmin}.guides{display:grid;grid-template-columns:repeat(3,auto);gap:3vmin}.guide-pick{font-size:15vmin;width:24vmin;height:24vmin;border-radius:30%;background:#fff;box-shadow:0 1vmin #e9c46a}.guide-pick:active{transform:scale(.95)}.home{justify-content:space-between}.home-top{width:100%;display:flex;justify-content:space-between;align-items:center}.stars-count{font-size:5vmin;font-weight:900;background:#fff;padding:1vmin 3vmin;border-radius:99px;box-shadow:0 .5vmin #e9c46a}.home-center{display:flex;align-items:center;gap:6vmin}.play-btn{width:30vmin;height:30vmin;border-radius:50%;font-size:14vmin;color:#fff;background:radial-gradient(circle at 35% 30%,#48cae4,var(--blue));box-shadow:0 1.6vmin #126782,0 2vmin 4vmin #0003;animation:pulse 1.8s ease-in-out infinite;padding-left:3vmin}.home-row{display:flex;gap:5vmin}.home-games{display:flex;gap:3vmin;padding-bottom:1vmin}.gate-btn{position:relative;width:64px;height:64px;border-radius:50%;font-size:26px;background:#fff8;opacity:.7}.gate-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(var(--accent2) 0%,transparent 0%)}.gate-btn.holding .gate-ring{animation:ring 3s linear forwards}@property --p{syntax: "<percentage>"; inherits: false; initial-value: 0%;}@keyframes ring{0%{--p: 0%}to{--p: 100%}}.gate-btn.holding .gate-ring{background:conic-gradient(#fb850088 var(--p),transparent var(--p))}.topbar{width:100%;display:flex;justify-content:space-between;align-items:center}.dots{display:flex;gap:1.2vmin}.dot{width:2.6vmin;height:2.6vmin;border-radius:50%;background:#0001}.dot.on{background:var(--accent);box-shadow:0 0 0 .4vmin #fff}.game-area{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3vmin;min-height:0}.game-title{font-size:4.5vmin;font-weight:800;opacity:.75}.tiles{display:flex;gap:3.5vmin;flex-wrap:wrap;justify-content:center}.tile{width:20vmin;height:20vmin;min-width:96px;min-height:96px;border-radius:4vmin;font-size:13vmin;font-weight:900;background:#fff;box-shadow:0 1vmin #e9c46a,0 1.6vmin 3vmin #0001;display:grid;place-items:center;transition:transform .15s,opacity .3s;color:var(--blue)}.tile.wide{width:auto;padding:0 4vmin;min-width:22vmin;font-size:10vmin}.tile.vowel{color:var(--pink)}.tile.fixed{color:var(--blue)}.tile.slot{background:#fff8;border:.8vmin dashed #e9c46a;box-shadow:none;color:var(--pink)}.tile.right{background:#c7f9cc;box-shadow:0 1vmin 0 var(--ok);animation:jump .6s}.tile.dim{opacity:.3;pointer-events:none}.tile.used{opacity:.25;pointer-events:none}.shake{animation:shake .4s}@keyframes shake{20%,60%{transform:translate(-2vmin)}40%,80%{transform:translate(2vmin)}}.pop{animation:popIn .4s ease}@keyframes popIn{0%{transform:scale(.4)}70%{transform:scale(1.2)}}.pic-row{display:flex;align-items:center;gap:5vmin}.picture{font-size:20vmin;line-height:1;background:#fff;border-radius:5vmin;padding:2vmin 3vmin;box-shadow:0 1vmin 2vmin #0001}.picture.big{font-size:26vmin}.picture.small{font-size:10vmin;padding:1vmin 2vmin}.word{font-size:9vmin;font-weight:900;letter-spacing:.5vmin}.word.small{font-size:5vmin}.word .first{color:var(--pink);display:inline-block}.word .hidden-first{color:#fff;background:var(--accent);border-radius:2vmin;padding:0 1.5vmin;margin-right:.5vmin}.word.glow .first{animation:glow 1s ease-in-out 2}@keyframes glow{50%{transform:scale(1.4);text-shadow:0 0 3vmin #ef476f88}}.syl-row{display:flex;align-items:center;gap:2.5vmin}.plus{font-size:8vmin;font-weight:900;opacity:.5}.syl-result{font-size:13vmin;font-weight:900;color:var(--accent2);min-width:24vmin;text-align:center}.trace-wrap{display:flex;align-items:center;gap:4vmin;flex:1;min-height:0;width:100%;justify-content:center}.trace-svg{height:100%;max-height:72vmin;aspect-ratio:1;background:#fff;border-radius:5vmin;box-shadow:0 1vmin 3vmin #0002;touch-action:none;transition:background .3s}.trace-svg.off{background:#fff0f0}.trace-svg.complete{background:#e9fbe9}.trace-pic{display:flex;flex-direction:column;align-items:center;gap:2vmin}.ghost-stroke{fill:none;stroke:#ece4d4;stroke-width:15;stroke-linecap:round;stroke-linejoin:round}.guide-stroke{fill:none;stroke:#8ecae6;stroke-width:2.2;stroke-dasharray:3 4;stroke-linecap:round}.arrow{fill:none;stroke:var(--blue);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.start-dot{fill:#2ec27e;stroke:#fff;stroke-width:1.5}.start-num{fill:#fff;font-size:8px;font-weight:900;text-anchor:middle;font-family:var(--font)}.done-stroke{fill:none;stroke:var(--ok);stroke-width:11;stroke-linecap:round;stroke-linejoin:round;animation:popIn .3s}.ink{fill:none;stroke:var(--pink);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.follow{fill:var(--accent);stroke:#fff;stroke-width:1.5;filter:drop-shadow(0 0 2px #0004)}.follow.pulse{animation:popIn .5s 2;transform-box:fill-box;transform-origin:center}.card{display:flex;align-items:center;gap:6vmin;background:#fff;border-radius:6vmin;padding:4vmin 6vmin;box-shadow:0 1.5vmin 4vmin #0002}.card-left,.card-right{display:flex;flex-direction:column;align-items:center;gap:2vmin}.card-letter{background:none;padding:0;width:42vmin;height:42vmin}.letter-svg{width:100%;height:100%}.stroke-ink{fill:none;stroke:var(--blue);stroke-width:13;stroke-linecap:round;stroke-linejoin:round}.stroke-ink.draw{stroke-dasharray:1;stroke-dashoffset:1;animation:draw .7s ease forwards}@keyframes draw{to{stroke-dashoffset:0}}.card-lower{font-size:12vmin;font-weight:800;color:var(--accent2);line-height:1}.card-name{font-size:6vmin;font-weight:800;opacity:.7}.card-actions{display:flex;gap:3vmin;margin-top:1vmin}.letter-grid,.album{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(max(13vmin,84px),1fr));gap:2.5vmin;width:100%;align-content:center;overflow-y:auto;padding:1vmin}.grid-letter{aspect-ratio:1;border-radius:3vmin;font-size:8vmin;font-weight:900;background:#fff;color:var(--blue);box-shadow:0 .8vmin #e9c46a;position:relative}.grid-letter.locked{color:#0002;background:#fff8;box-shadow:none}.grid-letter.mastered{background:#c7f9cc}.grid-letter.foreign{border:.5vmin dashed #8ecae6}.mini-star{position:absolute;top:-1vmin;right:-1vmin;font-size:4vmin}.sticker{aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#ffe8a8);box-shadow:0 .8vmin #e9c46a,inset 0 0 0 .8vmin #fff;position:relative;display:grid;place-items:center;min-width:84px}.sticker.empty{background:#0000000a;box-shadow:inset 0 0 0 .6vmin #0001}.st-emoji{font-size:7vmin}.st-letter{position:absolute;right:4%;bottom:2%;font-size:4.5vmin;font-weight:900;color:var(--pink);text-shadow:0 0 .6vmin #fff,0 0 .6vmin #fff}.sticker.big{width:40vmin}.sticker.big .st-emoji{font-size:22vmin}.sticker.big .st-letter{font-size:12vmin}.album-count{font-size:5vmin;font-weight:900}.overlay{position:fixed;inset:0;background:#0005;display:grid;place-items:center;z-index:10;animation:fade .3s}.sticker-pop{display:flex;flex-direction:column;align-items:center;animation:popIn .6s}.overlay-title{font-size:12vmin}.end{justify-content:center;gap:4vmin}.end-stars{font-size:7vmin;letter-spacing:1vmin}.end-learned{display:flex;gap:3vmin}.end-learned .sticker{width:20vmin}.burst{position:fixed;z-index:20;font-size:5vmin;pointer-events:none;transform:translate(-50%,-50%);animation:burst .9s ease-out forwards}@keyframes burst{to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.4);opacity:0}}.parents{align-items:stretch;overflow-y:auto;-webkit-user-select:text;user-select:text;font-family:system-ui,sans-serif;font-size:16px}.p-head{display:flex;align-items:center;gap:16px}.p-head h1{margin:0;font-size:24px}.p-close,.p-btn{font-size:16px;padding:12px 18px;border-radius:12px;background:#fff;box-shadow:0 2px 6px #0002;margin:4px 8px 4px 0}.p-btn.danger{color:#b00020}.p-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px;padding-bottom:24px}.p-grid section{background:#fff;border-radius:16px;padding:16px 20px}.p-table{width:100%;border-collapse:collapse;font-size:14px}.p-table th,.p-table td{padding:4px 6px;border-bottom:1px solid #0001;text-align:left}.p-table tr.ok{background:#e9fbe9}.p-table tr.muted{opacity:.45}.p-letter{font-weight:900;font-size:18px}.p-level{color:var(--accent2);letter-spacing:2px}.p-toggle{display:flex;gap:10px;align-items:center;padding:8px 0}.p-toggle input{width:22px;height:22px}.p-field{display:flex;flex-direction:column;gap:6px;padding:8px 0}.p-field select{font-size:16px;padding:8px}.p-help{font-size:14px;opacity:.8;line-height:1.45}@media(orientation:portrait){.home-center{flex-direction:column}.card{flex-direction:column;padding:4vmin}.trace-wrap{flex-direction:column}.trace-svg{max-height:60vh;width:90vw;height:auto}.trace-pic{flex-direction:row}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01s!important}}.home .bubble{font-size:5vmin;font-weight:900}.toast{position:fixed;top:calc(var(--safe-t) + 12vmin);left:50%;transform:translate(-50%);z-index:30;background:#fff;color:var(--ok);font-size:6vmin;font-weight:900;padding:1.5vmin 4vmin;border-radius:99px;box-shadow:0 1vmin 2.4vmin #0002;pointer-events:none;animation:toast 1.8s ease forwards;white-space:nowrap}@keyframes toast{0%{opacity:0;transform:translate(-50%,2vmin) scale(.8)}15%,80%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0}}.name-entry{justify-content:center;gap:3vmin;font-family:system-ui,sans-serif;text-align:center}.ne-title{font-size:5vmin;font-weight:800}.ne-sub{font-size:2.6vmin;opacity:.75;max-width:80vw}.ne-sub.small{font-size:2.2vmin}.name-input{font:900 8vmin var(--font);text-align:center;width:min(80vw,640px);padding:2vmin 3vmin;border-radius:4vmin;border:.8vmin solid #e9c46a;background:#fff;color:var(--blue);outline:none;-webkit-user-select:text;user-select:text}.name-input:focus{border-color:var(--accent2)}.ne-actions{display:flex;gap:3vmin}.ne-btn{font-size:4.5vmin;font-weight:800;padding:2vmin 5vmin;border-radius:99px;background:#fff;box-shadow:0 .8vmin #e9c46a}.ne-btn.ok{background:var(--ok);color:#fff;box-shadow:0 .8vmin #1d7068}.name-letters{display:flex;flex-wrap:wrap;justify-content:center;gap:1.6vmin;max-width:96vw}.name-letter{min-width:13vmin;height:17vmin;padding:0 1.5vmin;border-radius:3vmin;font-size:12vmin;font-weight:900;background:#fff;box-shadow:0 .8vmin #e9c46a;color:var(--blue)}.name-letter.todo{color:#0003;background:#fff9;box-shadow:0 .8vmin #0001}.name-letter.hl{color:#fff;background:var(--pink);box-shadow:0 .8vmin #b5304f;animation:glow 1s ease-in-out 3}.name-gap{width:5vmin}.name-card{display:flex;flex-direction:column;align-items:center;gap:3vmin;background:#fff;border-radius:6vmin;padding:3vmin 5vmin;box-shadow:0 1.5vmin 4vmin #0002}.name-big-letter{font-size:22vmin;font-weight:900;color:var(--pink);line-height:1}.name-card .name-letter{height:14vmin;font-size:10vmin;min-width:10vmin}.card-actions .guide .guide-face{font-size:12vmin}.p-input{font-size:18px;padding:10px 12px;border-radius:10px;border:1px solid #0003;width:100%;max-width:320px;-webkit-user-select:text;user-select:text}body.listening .game-area button,body.listening .game-area .trace-svg,body.listening .game-area .tile,body.listening .game-area .name-letter{filter:grayscale(.55) brightness(.97);opacity:.6;transition:opacity .25s,filter .25s;animation-play-state:paused!important;cursor:default}body.listening .game-area button:active,body.listening .game-area .tile:active{transform:none!important}body.listening .game-area .tile.right{opacity:1;filter:none}body.listening .guide .guide-face{animation-duration:1.2s}.game-area.your-turn button,.game-area.your-turn .tile,.game-area.your-turn .trace-svg,.game-area.your-turn .name-letter{animation:popIn .45s ease}.guide.shh .guide-face{animation:shhNod 1s ease}.guide.shh:after{content:"🤫";position:absolute;top:-4vmin;right:-5vmin;font-size:8vmin;animation:popIn .4s ease}@keyframes shhNod{30%{transform:rotate(-8deg) scale(.95)}60%{transform:rotate(6deg)}}.shh-bubble{position:fixed;z-index:25;font-size:9vmin;pointer-events:none;transform:translate(-50%,-110%);animation:shhFloat 1.1s ease forwards}@keyframes shhFloat{0%{opacity:0;transform:translate(-50%,-80%) scale(.6)}20%{opacity:1;transform:translate(-50%,-110%) scale(1)}to{opacity:0;transform:translate(-50%,-160%)}}.calm{margin:10px 0 4px;padding:10px 12px;background:#f4fbf6;border-radius:12px}.calm h3{margin:0 0 6px;font-size:16px}.calm-line{display:grid;grid-template-columns:130px 1fr auto;gap:10px;align-items:center;padding:4px 0;font-size:14px}.calm-bar{height:10px;background:#0001;border-radius:99px;overflow:hidden}.calm-bar span{display:block;height:100%;background:var(--ok);border-radius:99px}.mode-row{flex:1;display:flex;gap:5vmin;align-items:center;justify-content:center;flex-wrap:wrap}.mode-card{width:38vmin;min-height:40vmin;border-radius:6vmin;background:#fff;box-shadow:0 1.2vmin #e9c46a,0 2vmin 4vmin #0001;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2vmin;padding:3vmin}.mode-card:active{transform:translateY(.6vmin)}.mode-card.locked{background:#fff9}.mode-icon{font-size:12vmin}.mode-label{font-size:5vmin;font-weight:900}.mode-progress{display:flex;align-items:center;gap:2vmin;width:100%;font-size:4vmin}.mode-progress .calm-bar{flex:1;height:2.2vmin}.mode-hint{font-size:2.8vmin;opacity:.75;text-align:center}.train-scroll{overflow-x:auto;justify-content:center;align-items:stretch;scrollbar-width:none}.train-scroll::-webkit-scrollbar{display:none}.train{display:flex;align-items:flex-end;gap:1.6vmin;padding:8vmin 45vw 4vmin;width:max-content;position:relative}.train:after{content:"";position:absolute;left:0;right:0;bottom:2.6vmin;height:1vmin;background:repeating-linear-gradient(90deg,#8d6e63 0 3vmin,transparent 3vmin 4.5vmin)}.train.short{padding:4vmin 2vmin}.loco{font-size:22vmin;line-height:1;transform:scaleX(1);margin-right:1vmin}.wagon{position:relative;width:17vmin;height:17vmin;border-radius:2.5vmin 2.5vmin 1.2vmin 1.2vmin;display:grid;place-items:center;margin-bottom:3vmin;box-shadow:inset 0 -1.4vmin #0002;transition:transform .2s,opacity .2s,filter .2s}.wagon-letter{font-size:11vmin;font-weight:900;color:#fff;text-shadow:0 .5vmin 0 #0003}.wheel{position:absolute;bottom:-2.6vmin;width:5vmin;height:5vmin;border-radius:50%;background:#444;border:1vmin solid #999}.w1{left:2vmin}.w2{right:2vmin}.wagon.c0{background:#ef476f}.wagon.c1{background:#ffb703}.wagon.c2{background:#06d6a0}.wagon.c3{background:#219ebc}.wagon.c4{background:#8338ec}.wagon.c5{background:#fb8500}.wagon.pale{filter:saturate(.25) brightness(1.25);opacity:.7}.wagon.on{animation:wagonBounce .5s ease;filter:none;opacity:1;box-shadow:0 0 0 1vmin #fff,0 0 5vmin 2vmin #ffd166,inset 0 -1.4vmin #0002;transform:translateY(-2vmin) scale(1.12);z-index:2}@keyframes wagonBounce{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-5vmin) scale(1.18)}to{transform:translateY(-2vmin) scale(1.12)}}.wagon.gap{background:#fff;border:1vmin dashed #e9c46a}.wagon.gap .wagon-letter{color:var(--accent2);text-shadow:none;animation:pulse 1.4s infinite}.wagon.learned-flash{animation:wagonBounce .6s ease}.song-controls{display:flex;gap:3vmin;align-items:center;padding-bottom:1vmin}.song-controls .icon-btn.sel{background:#ffe8a8;box-shadow:0 .8vmin 0 var(--accent2)}.sticker.special{background:radial-gradient(circle at 35% 30%,#fff,#c3f0ff);box-shadow:0 .8vmin #8ecae6,inset 0 0 0 .8vmin #fff,0 0 3vmin #ffd166}.chi .train{justify-content:center}.tile.hint-glow,.tile.vowel.hint-glow{box-shadow:0 0 0 6px #ffd6408c,0 0 28px 8px #ffd64099;animation:hintglow 1.6s ease-in-out infinite}@keyframes hintglow{50%{box-shadow:0 0 0 10px #ffd64059,0 0 40px 14px #ffd64073}}.update-banner{position:fixed;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:50;display:flex;gap:14px;align-items:center;background:#fff;border-radius:18px;padding:8px 10px 8px 18px;box-shadow:0 6px 20px #0000002e;font:600 17px system-ui,sans-serif;color:#333}.update-banner .p-btn{margin:0}.p-app,.p-backup{background:#f6f8ff;border-radius:14px;padding:4px 14px 10px;margin-bottom:14px}.p-offline{font-weight:600;color:#8a6d00}.p-offline.ok{color:#1b7f3b}.p-update{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.p-update span:first-child:not(.p-muted){font-weight:600}.p-muted{color:#888;font-size:14px}.p-reminder{background:#fff4cc;border-radius:10px;padding:8px 12px;margin:6px 0;font-weight:600}.p-actions{display:flex;gap:10px;flex-wrap:wrap}.p-btn.primary{background:#3d7cf5;color:#fff}.p-dialog-wrap{z-index:60}.p-dialog{background:#fff;border-radius:18px;padding:18px 22px;max-width:460px;width:90%;text-align:left;font-family:system-ui,sans-serif;color:#222}.p-warn{color:#a33;font-size:15px}.screen.parents~.update-banner,body:has(.screen.parents) .update-banner{display:none}.p-credits a{color:#3d7cf5}.progress-stroke{fill:none;stroke:#2ec27e;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.start-dot{animation:startPulse 1.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.start-dot.pulse{animation:popIn .5s 2}@keyframes startPulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.trace-svg.off{background:#fff6e8;transition:background .3s}.tr-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.tr-chip{font:800 18px var(--font);width:40px;height:40px;border-radius:10px;border:2px solid #ccd;background:#fff}.tr-chip.on{background:#2ec27e;color:#fff;border-color:#2ec27e}.tr-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.tr-item{margin:0;text-align:center;flex:0 0 auto}.tr-item figcaption{font-size:11px;color:#667;max-width:96px}.tr-thumb{width:84px;height:84px;background:#fff;border-radius:10px;border:1px solid #dde}.tr-ghost{fill:none;stroke:#e3e7ef;stroke-width:10;stroke-linecap:round;stroke-linejoin:round}.tr-ink{fill:none;stroke:#e5487a;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}
