#ll-ui{position:fixed;inset:0;margin:0 auto;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;color:var(--ink);font-family:var(--font-ui)}#ll-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}#ll-ui .ic{width:22px;height:22px;vertical-align:middle;pointer-events:none;flex:none}#ll-ui .ic.xs{width:15px;height:15px;margin-top:-2px}#ll-ui .ic.sm{width:18px;height:18px}#ll-ui .ic.big{width:34px;height:34px}#ll-ui .ic.hero{width:56px;height:56px}#ll-ui button{font:inherit;color:inherit;cursor:pointer}#ll-ui button:disabled{cursor:default}.top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:6px;padding:calc(env(safe-area-inset-top) + 8px) 8px 4px;pointer-events:none;z-index:3}.top>*{pointer-events:auto}.hqbtn{position:relative;width:50px;height:50px;border-radius:50%;border:var(--line) solid var(--ink);background:var(--cream);box-shadow:var(--shadow);display:grid;place-items:center;padding:0}.hqbtn .ic{width:30px;height:30px;margin-top:-6px}.hqbtn b{position:absolute;bottom:-4px;left:50%;transform:translate(-50%);background:var(--coral);color:#fff;font-family:var(--font-display);font-size:var(--fs-s);border:2px solid var(--ink);border-radius:var(--radius-pill);padding:0 7px;line-height:16px}.xpring{position:absolute;right:-6px;top:4px;width:8px;height:38px;border:2px solid var(--ink);border-radius:6px;background:#fff;overflow:hidden;display:flex;align-items:flex-end}.xpring em{display:block;width:100%;background:var(--butter);transition:height .4s}.pills{flex:1;display:flex;gap:5px;justify-content:center;min-width:0}.pill{display:flex;align-items:center;gap:3px;background:var(--cream);border:var(--line) solid var(--ink);border-radius:var(--radius-pill);padding:1px 9px 1px 2px;font-family:var(--font-display);font-size:var(--fs-m);box-shadow:0 2px 0 var(--ink);min-width:0}.pill .ic{width:24px;height:24px}.icon-btn{width:42px;height:42px;padding:4px;border:var(--line) solid var(--ink);border-radius:50%;background:#fff;box-shadow:var(--shadow);display:grid;place-items:center;flex:none}.icon-btn .ic{width:26px!important;height:26px!important}.icon-btn:active,.dockbtn:active,.sidebtn:active,.btn:active:not(:disabled),.hqbtn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.side{position:absolute;right:8px;top:calc(env(safe-area-inset-top) + 72px);display:flex;flex-direction:column;gap:8px;z-index:3}.sidebtn{position:relative;width:46px;height:46px;border-radius:14px;border:var(--line) solid var(--ink);background:#fff;box-shadow:var(--shadow);display:grid;place-items:center;padding:0}.sidebtn .ic{width:30px;height:30px}.dock{position:absolute;left:0;right:0;bottom:0;display:flex;gap:6px;justify-content:space-around;padding:8px 8px calc(env(safe-area-inset-bottom) + 8px);background:var(--vanilla);background-image:radial-gradient(var(--strawberry) 1.2px,transparent 1.4px);background-size:16px 16px;border-top:3px solid var(--ink);border-radius:22px 22px 0 0;box-shadow:0 -4px 0 var(--strawberry);z-index:3}.dockbtn{position:relative;flex:1;max-width:92px;display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 2px 4px;border:var(--line) solid var(--ink);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);font-family:var(--font-display);font-size:var(--fs-s)}.dockbtn .ic{width:32px;height:32px}.dockbtn.play{background:var(--apricot);transform:translateY(-6px)}.dockbtn.play:active{transform:translateY(-4px)}.badge{position:absolute;top:-7px;right:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--coral);color:#fff;border:2px solid var(--ink);font:700 11px/14px var(--font-ui);font-style:normal;text-align:center;display:none}.badge.on{display:block;animation:ll-pop .3s}@keyframes ll-pop{0%{transform:scale(.4)}70%{transform:scale(1.2)}to{transform:scale(1)}}#ll-labels{position:absolute;inset:0;pointer-events:none;z-index:1}.tag3d{position:absolute;left:0;top:0;background:#fff;border:2px solid var(--ink);border-radius:var(--radius-pill);padding:1px 8px;font-family:var(--font-display);font-size:var(--fs-s);white-space:nowrap;box-shadow:0 2px 0 var(--ink);will-change:transform}.tag3d.full{background:var(--coral);color:#fff;animation:ll-wiggle .8s ease-in-out infinite}.tag3d.idle{background:var(--matcha)}.tag3d.bubble{border-radius:12px;background:var(--cream);display:flex;gap:3px;align-items:center}.tag3d.bubble.full{background:var(--matcha);color:var(--ink)}@keyframes ll-wiggle{0%,to{rotate:-3deg}50%{rotate:3deg}}.ll-toast{position:absolute;left:50%;top:calc(env(safe-area-inset-top) + 66px);transform:translate(-50%,-10px);max-width:86%;background:#fff;border:var(--line) solid var(--ink);border-radius:var(--radius-pill);padding:5px 14px;font-family:var(--font-display);font-size:var(--fs-m);box-shadow:var(--shadow);opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;z-index:30;text-align:center}.ll-toast.show{opacity:1;transform:translate(-50%)}.ll-toast.good{background:var(--matcha)}.ll-toast.bad{background:var(--strawberry)}.ll-float{position:absolute;transform:translate(-50%);font-family:var(--font-display);font-size:var(--fs-l);color:var(--coral);-webkit-text-stroke:.6px var(--ink);animation:ll-float 1.1s ease-out forwards;pointer-events:none;z-index:20;display:flex;align-items:center;gap:2px}@keyframes ll-float{0%{opacity:1;translate:0 0}to{opacity:0;translate:0 -50px}}.place-bar{position:absolute;left:10px;right:10px;bottom:calc(env(safe-area-inset-bottom) + 92px);display:none;align-items:center;justify-content:space-between;gap:8px;background:var(--cream);border:var(--line) solid var(--ink);border-radius:var(--radius);padding:6px 8px 6px 12px;box-shadow:var(--shadow);font-family:var(--font-display);font-size:var(--fs-m);z-index:4}.place-bar.on{display:flex}.sheet{position:absolute;left:0;right:0;bottom:0;max-height:72%;display:flex;flex-direction:column;background:var(--vanilla);border-top:3px solid var(--ink);border-radius:22px 22px 0 0;box-shadow:0 -4px 0 var(--strawberry),0 -20px 40px #5a3a2e26;transform:translateY(105%);transition:transform .28s cubic-bezier(.2,.9,.3,1.1);z-index:10}.sheet.open{transform:none}.sh-head{display:flex;align-items:center;gap:8px;padding:10px 10px 6px 14px;border-bottom:2px dashed var(--strawberry)}.sh-head h2{flex:1;margin:0;font-family:var(--font-display);font-size:var(--fs-xl);font-weight:800}.sh-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:10px 12px calc(env(safe-area-inset-bottom) + 16px);display:flex;flex-direction:column;gap:8px;touch-action:pan-y}.sh-body h3{margin:6px 0 0;font-family:var(--font-display);font-size:var(--fs-l)}.note{margin:0;font-family:var(--font-ui);font-size:var(--fs-s);opacity:.85;line-height:1.35}.note.warn,.done-note{color:var(--coral-dark);font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;border:var(--line) solid var(--ink);border-radius:var(--radius);background:#fff;padding:7px 10px;font-family:var(--font-display);font-size:var(--fs-m);line-height:1.1;box-shadow:var(--shadow);text-decoration:none;color:var(--ink);text-align:center;transition:transform .08s,box-shadow .08s}.btn.sm{padding:4px 8px;font-size:var(--fs-s)}.btn.wide{width:100%}.btn.coral{background:var(--coral);color:#fff}.btn.matcha{background:var(--matcha)}.btn.lav{background:var(--lavender)}.btn.apricot{background:var(--apricot)}.btn.ghost{background:var(--cream)}.btn:disabled{opacity:.45;box-shadow:none;transform:translateY(2px)}.row,.row2,.toggles,.picker{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.row2>.btn{flex:1}.row.big{gap:10px;font-family:var(--font-display);font-size:var(--fs-l)}.row.big small{font-family:var(--font-ui);font-size:var(--fs-s)}.row.foot{justify-content:space-between;border-top:2px dashed var(--strawberry);padding-top:8px;font-size:var(--fs-s)}.grow{flex:1;min-width:0}.picker .btn{flex:1}select,input[type=email],input[type=text]{font:600 var(--fs-m) var(--font-ui);color:var(--ink);border:var(--line) solid var(--ink);border-radius:var(--radius);padding:7px 9px;background:#fff;flex:1;min-width:0;width:100%;box-sizing:border-box}.toggles .btn{flex:1 1 40%}.list{display:flex;flex-direction:column;gap:6px}.li{display:flex;align-items:center;gap:8px;background:#fff;border:var(--line) solid var(--ink);border-radius:var(--radius);padding:6px 8px;box-shadow:0 2px 0 var(--ink)}.li.sm{padding:4px 8px;font-size:var(--fs-s)}.li b{font-family:var(--font-display);font-size:var(--fs-m);font-weight:800}.li small,.hcard small,.gcard small,.dcard small,.hqcard small,.chest small,.soggy small,.clubhead small{display:block;font-size:var(--fs-s);opacity:.85;line-height:1.3}.dim{opacity:.55}.bar{position:relative;height:16px;border:2px solid var(--ink);border-radius:99px;background:var(--cream);overflow:hidden;margin:3px 0}.bar i{display:block;height:100%;background:var(--butter);border-radius:99px;transition:width .4s}.bar.boss i{background:#b7d98b}.bar span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:3px;font:700 10px var(--font-ui)}.hqcard,.chest,.soggy,.clubhead{display:flex;align-items:center;gap:10px;background:var(--cream);border:var(--line) solid var(--ink);border-radius:var(--radius);padding:8px 10px;box-shadow:var(--shadow)}.hqcard b,.chest b,.soggy b,.clubhead b{font-family:var(--font-display);font-size:var(--fs-l)}.chest.ready{background:var(--apricot);animation:ll-wiggle 1.2s ease-in-out infinite}.orders{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.ocard{background:var(--cream);border:var(--line) solid var(--ink);border-radius:var(--radius);padding:7px;display:flex;flex-direction:column;gap:5px;box-shadow:var(--shadow)}.ocard.can{background:#f1f8e9}.ocard .who{display:flex;align-items:center;gap:4px;font-family:var(--font-display)}.ocard .who small{font-size:var(--fs-xs);opacity:.8}.wants{display:flex;flex-wrap:wrap;gap:4px}.want{display:inline-flex;align-items:center;gap:1px;background:#fff;border:2px solid var(--ink);border-radius:10px;padding:1px 5px 1px 1px;font:700 var(--fs-s) var(--font-ui)}.want .ic{width:24px;height:24px}.want.ok{background:var(--matcha)}.pay{display:flex;align-items:center;gap:3px;font-family:var(--font-display)}.queue{display:flex;gap:6px}.slot{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:#fff;border:var(--line) solid var(--ink);border-radius:var(--radius);padding:6px 2px;font:700 var(--fs-s) var(--font-ui)}.slot .ic{width:34px;height:34px}.slot.empty{background:var(--cream);border-style:dashed;opacity:.7}.slot.done{background:var(--matcha);animation:ll-wiggle 1s ease-in-out infinite}.recipes{display:flex;flex-direction:column;gap:6px}.recipe{display:grid;grid-template-columns:36px 1fr auto;grid-template-rows:auto auto;gap:2px 8px;align-items:center;text-align:left;background:#fff;border:var(--line) solid var(--ink);border-radius:var(--radius);padding:6px 8px;box-shadow:0 2px 0 var(--ink)}.recipe .ic.big{grid-row:span 2}.recipe .rn{font-family:var(--font-display);font-size:var(--fs-m)}.recipe .rn small{display:block;font-family:var(--font-ui);font-size:var(--fs-xs);opacity:.8}.recipe .ins{grid-column:2;display:flex;gap:3px;flex-wrap:wrap}.recipe .own{grid-column:3;grid-row:1 / span 2;font-family:var(--font-display);font-size:var(--fs-m);opacity:.7}.recipe.can{background:#f1f8e9}.recipe.locked{opacity:.5;box-shadow:none}.heroes,.games,.decos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.hcard,.gcard,.dcard{background:#fff;border:var(--line) solid var(--ink);border-radius:var(--radius);padding:8px;display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center;box-shadow:var(--shadow)}.hcard{background:color-mix(in srgb,var(--hc) 35%,white)}.hcard b,.gcard b,.dcard b{font-family:var(--font-display);font-size:var(--fs-m)}.dcard .dimg{width:84px;height:84px;object-fit:cover;border-radius:12px;border:2px solid var(--ink);background:var(--cream)}.dcard b{font-size:var(--fs-s);line-height:1.15;min-height:2.3em}.hcard .row2,.dcard .row2{width:100%}.tabs{display:flex;gap:4px;overflow-x:auto}.tab{flex:none;border:2px solid var(--ink);border-radius:var(--radius-pill);background:var(--cream);padding:4px 10px;font-family:var(--font-display);font-size:var(--fs-s)}.tab.on{background:var(--coral);color:#fff}.feed{display:flex;flex-direction:column;gap:4px;max-height:210px;overflow-y:auto;background:#fff;border:var(--line) solid var(--ink);border-radius:var(--radius);padding:6px 8px}.feed.small{max-height:160px;font-size:var(--fs-s)}.msg{font-size:var(--fs-s);line-height:1.3;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.msg.me b{color:var(--coral-dark)}.presets{display:flex;flex-wrap:wrap;gap:5px}.chip-btn,.chip{display:inline-flex;align-items:center;gap:3px;border:2px solid var(--ink);border-radius:var(--radius-pill);background:#fff;padding:3px 9px;font:700 var(--fs-s) var(--font-ui);box-shadow:0 2px 0 var(--ink)}.chip-btn:active{transform:translateY(2px);box-shadow:none}.empty{text-align:center;padding:16px;display:flex;flex-direction:column;align-items:center;gap:6px}.card20{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;background:var(--cream);border:var(--line) solid var(--ink);border-radius:var(--radius);padding:10px;box-shadow:var(--shadow)}.card20 .st{aspect-ratio:1;border:2px dashed var(--ink);border-radius:50%;display:grid;place-items:center;font:700 var(--fs-s) var(--font-ui);opacity:.5}.card20 .st.on{border-style:solid;background:#fff;opacity:1}.card20 .st .ic{width:80%;height:80%}.code{font-family:var(--font-display);font-size:26px;letter-spacing:1px;background:var(--cream);border:2px dashed var(--ink);border-radius:12px;padding:6px;user-select:text;-webkit-user-select:text}.ll-modal{position:absolute;inset:0;background:#5a3a2e59;display:grid;place-items:center;z-index:40;padding:18px;animation:ll-fade .2s}@keyframes ll-fade{0%{opacity:0}}.ll-modal .card{width:min(360px,100%);background:var(--vanilla);border:3px solid var(--ink);border-radius:22px;box-shadow:0 5px 0 var(--ink),0 0 0 8px var(--strawberry);padding:16px 14px 14px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;animation:ll-pop .3s;max-height:90%;overflow-y:auto}.ll-modal h3{margin:0;font-family:var(--font-display);font-size:var(--fs-xl)}.ll-modal p{margin:4px 0;font-size:var(--fs-m);line-height:1.35}.ll-modal p.big{font-family:var(--font-display);font-size:40px;color:var(--coral);-webkit-text-stroke:1px var(--ink);margin:0}.ll-modal .mbody{width:100%;display:flex;flex-direction:column;gap:6px;align-items:center}.ll-modal .mbtns{display:flex;flex-wrap:wrap;gap:6px;width:100%}.ll-modal .mbtns .btn{flex:1 1 40%}.rewards{display:flex;gap:10px;justify-content:center;font-family:var(--font-display);font-size:var(--fs-l)}.rewards span{display:flex;align-items:center;gap:3px}.coach{position:absolute;inset:0;pointer-events:none;z-index:25;display:none}.coach.on{display:block}.coach .bubble{position:absolute;left:10px;right:10px;bottom:calc(env(safe-area-inset-bottom) + 96px);display:flex;align-items:center;gap:8px;background:#fff;border:var(--line) solid var(--ink);border-radius:18px;padding:8px 10px;box-shadow:var(--shadow);pointer-events:auto;font-size:var(--fs-m);line-height:1.3;flex-wrap:wrap}.coach .bubble p{flex:1;margin:0;min-width:160px;font-weight:600}.coach .skip{border:0;background:none;font:600 var(--fs-xs) var(--font-ui);text-decoration:underline;opacity:.7}.coach .arrow{position:absolute;width:0;height:0;transform:translate(-50%);border-left:14px solid transparent;border-right:14px solid transparent;border-top:22px solid var(--coral);filter:drop-shadow(0 2px 0 var(--ink));animation:ll-point .8s ease-in-out infinite alternate}@keyframes ll-point{0%{margin-top:-6px}to{margin-top:6px}}body.sheet-open .coach .bubble{bottom:calc(72% + 8px)}.mg-overlay{position:absolute;inset:0;z-index:35;background:var(--vanilla)}.mg-stage{position:absolute;inset:0}.mg-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--font-note);font-size:22px}.mg-loading .ic{animation:ll-bob 1.2s ease-in-out infinite}@keyframes ll-bob{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8px) rotate(3deg)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(min-width:700px){.sheet,.dock,.coach .bubble,.place-bar{left:50%!important;right:auto!important;width:620px;transform:translate(-50%)}.sheet.open{transform:translate(-50%)}.sheet:not(.open){transform:translate(-50%,105%)}.coach .bubble{width:600px}.dock{border-left:3px solid var(--ink);border-right:3px solid var(--ink)}}
