:root{--bg:#f7f2ea;--card:#fff;--ink:#101010;--muted:#7c766e;--line:#e8e0d4;--orange:#fbbd71;--pink:#f5c6e0;--green:#2fbf71;--gold:#e9b949;--radius:22px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--ink);overscroll-behavior-y:none;margin:0;padding:0;font-family:Heebo,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}#root{background:var(--bg);max-width:520px;min-height:100vh;margin:0 auto;position:relative}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}.app{padding:0 18px 110px}.top{background:linear-gradient(var(--bg) 78%, transparent);z-index:20;padding:18px 0 10px;position:sticky;top:0}.top-row{align-items:center;gap:12px;display:flex}.avatar{background:var(--pink);border-radius:50%;flex:none;place-items:center;width:42px;height:42px;font-size:22px;display:grid}.who{flex:1;min-width:0}.who input{color:var(--ink);background:0 0;border:none;outline:none;width:100%;padding:0;font-family:inherit;font-size:16px;font-weight:700}.who span{color:var(--muted);font-size:12px}.wixmark{letter-spacing:-.5px;font-size:20px;font-weight:800}.wixmark i{color:var(--orange);font-style:normal}.level{text-align:center;margin-top:14px;font-size:19px;font-weight:800}.bar{border:1px solid var(--line);background:#fff;border-radius:10px;height:14px;margin-top:8px;overflow:hidden}.bar>div{background:linear-gradient(90deg, var(--green), #7ad69e);border-radius:10px;height:100%;transition:width .5s}.bar-meta{color:var(--muted);justify-content:space-between;margin-top:6px;font-size:12px;display:flex}.path{padding:14px 0 10px;position:relative}.rule{background:var(--pink);border-radius:16px;margin-bottom:10px;padding:12px 15px;font-size:13.5px;font-weight:600;line-height:1.5}.node-row{margin-bottom:26px;display:flex;position:relative}.node-row.pos0{justify-content:flex-start;padding-right:6%}.node-row.pos1{justify-content:center}.node-row.pos2{justify-content:flex-end;padding-left:6%}.node{z-index:2;flex-direction:column;align-items:center;gap:8px;width:116px;display:flex;position:relative}.bubble{background:var(--card);border:4px solid #fff;border-radius:50%;place-items:center;width:92px;height:92px;font-size:40px;transition:transform .15s;display:grid;box-shadow:0 6px #00000012,0 10px 24px #00000014}.node:active .bubble{transform:scale(.94)}.node.main .bubble{border-color:var(--gold);width:108px;height:108px;font-size:46px;box-shadow:0 0 0 4px #e9b94947,0 10px 24px #0000001f}.node.done .bubble{filter:saturate()}.node .label{text-align:center;color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12.5px;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.crown{top:-14px;font-size:22px;position:absolute;inset-inline-start:50%;transform:translate(50%)}.check{top:0;background:var(--green);color:#fff;border:3px solid var(--bg);border-radius:50%;place-items:center;width:30px;height:30px;font-size:16px;display:grid;position:absolute;inset-inline-end:2px}.pts{bottom:30px;background:var(--ink);color:#fff;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:700;position:absolute;inset-inline-start:0}.thumb{object-fit:cover;border-radius:50%;width:100%;height:100%}.connector{z-index:1;bottom:-26px;pointer-events:none;width:100%;height:26px;position:absolute;inset-inline-start:0}.connector svg{width:100%;height:100%;overflow:visible}.prize-node .bubble{background:linear-gradient(140deg, var(--gold), var(--orange));border-color:#fff}.tabs{bottom:0;border-top:1px solid var(--line);max-width:520px;padding:8px 4px calc(8px + env(safe-area-inset-bottom));z-index:40;background:#fff;margin:0 auto;display:flex;position:fixed;inset-inline:0}.tab{color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:3px;padding:4px 0;font-size:11px;font-weight:600;display:flex}.tab em{font-size:21px;font-style:normal;line-height:1}.tab.active{color:var(--ink)}.tab.active em{transform:translateY(-1px)}.scrim{z-index:50;background:#00000073;justify-content:center;align-items:flex-end;animation:.2s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.sheet{background:var(--card);width:100%;max-width:520px;padding:10px 20px calc(24px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;max-height:92vh;animation:.26s cubic-bezier(.2,.9,.3,1) up;overflow-y:auto}@keyframes up{0%{transform:translateY(100%)}}.grab{background:var(--line);border-radius:3px;width:44px;height:5px;margin:0 auto 14px}.sheet-emoji{text-align:center;font-size:52px}.sheet h2{text-align:center;margin:10px 0 4px;font-size:20px;line-height:1.35}.sheet .badge{text-align:center;color:var(--muted);margin-bottom:16px;font-size:13px;display:block}.preview{aspect-ratio:4/3;object-fit:cover;background:var(--bg);border-radius:18px;width:100%;margin-bottom:12px}.caption-input{border:1px solid var(--line);background:var(--bg);border-radius:15px;outline:none;width:100%;margin-bottom:12px;padding:13px 15px;font-family:inherit;font-size:15px}.btn{text-align:center;border-radius:18px;width:100%;margin-top:10px;padding:16px;font-size:16px;font-weight:800;display:block}.btn.primary{background:var(--green);color:#fff;box-shadow:0 4px #23a25d}.btn.dark{background:var(--ink);color:#fff}.btn.ghost{background:var(--bg);color:var(--ink);border:1px solid var(--line)}.btn.danger{color:#c0392b;padding:12px;font-size:14px;font-weight:600}.btn:active{box-shadow:none;transform:translateY(2px)}.row2{gap:10px;display:flex}.row2 .btn{flex:1}.page-title{margin:6px 0 4px;font-size:24px;font-weight:800}.page-sub{color:var(--muted);margin-bottom:16px;font-size:13.5px;line-height:1.5}.lb-row{background:var(--card);border:1px solid #0000;border-radius:18px;align-items:center;gap:12px;margin-bottom:9px;padding:12px 14px;display:flex}.lb-row.me{border-color:var(--orange);background:#fffaf1}.lb-rank{width:26px;color:var(--muted);font-size:15px;font-weight:800}.lb-av{background:var(--bg);border-radius:50%;place-items:center;width:38px;height:38px;font-size:20px;display:grid}.lb-name{flex:1;font-size:15px;font-weight:700}.lb-count{color:var(--muted);background:var(--bg);border-radius:9px;padding:3px 8px;font-size:12px;font-weight:700}.lb-pts{text-align:start;min-width:56px;font-size:15px;font-weight:800}.lb-pts small{color:var(--muted);font-size:11px;font-weight:600}.note{background:var(--pink);border-radius:18px;margin-bottom:18px;padding:14px 16px;font-size:13.5px;line-height:1.55}.grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.gcard{background:var(--card);border-radius:18px;overflow:hidden}.gcard img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.gcard p{color:var(--muted);margin:0;padding:9px 11px 12px;font-size:12px;line-height:1.35}.empty{text-align:center;color:var(--muted);padding:50px 20px;font-size:14px;line-height:1.6}.prize-wrap{text-align:center;padding:26px 6px 0}.envelope{margin:18px 0;font-size:110px;line-height:1;animation:3.4s ease-in-out infinite wobble;display:inline-block}@keyframes wobble{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.prize-card{background:linear-gradient(150deg, var(--gold), var(--orange));border-radius:var(--radius);margin-top:16px;padding:24px 20px;font-size:17px;font-weight:600;line-height:1.6}.locked{background:var(--card);border-radius:var(--radius);color:var(--muted);margin-top:16px;padding:22px 20px;font-size:14.5px;line-height:1.65}.dots{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:16px;display:flex}.dot{background:var(--line);border-radius:50%;width:12px;height:12px}.dot.on{background:var(--green)}.toast{bottom:96px;background:var(--ink);color:#fff;z-index:60;border-radius:30px;width:fit-content;max-width:88%;margin:0 auto;padding:12px 20px;font-size:14px;font-weight:600;animation:.3s up2;position:fixed;inset-inline:0}@keyframes up2{0%{opacity:0;transform:translateY(20px)}}.splash{z-index:200;background:radial-gradient(120% 90% at 50% 10%, #fff9ee 0%, var(--bg) 55%, #f0e6d6 100%);place-items:center;transition:opacity .35s,transform .35s;display:grid;position:fixed;inset:0}.splash.leaving{opacity:0;pointer-events:none;transform:scale(1.04)}.splash-inner{text-align:center;padding:0 26px}.mark{letter-spacing:-4px;color:var(--ink);direction:ltr;unicode-bidi:isolate;justify-content:center;align-items:flex-end;gap:2px;font-size:84px;font-weight:900;line-height:1;display:flex}.letter{opacity:0;animation:.38s cubic-bezier(.2,.9,.3,1) forwards letterIn}.l1{animation-delay:20ms}.l2{animation-delay:.1s}.l3{animation-delay:.18s}@keyframes letterIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.stem{display:inline-block;position:relative}.dotless{display:inline-block}.apple{opacity:0;transform-origin:50% 100%;width:42px;height:46px;margin-bottom:22px;animation:.6s cubic-bezier(.3,1.5,.4,1) .26s forwards appleDrop;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}@keyframes appleDrop{0%{opacity:0;transform:translate(-50%,-60px)scale(.7)}60%{opacity:1;transform:translate(-50%)scale(1.08,.92)}to{opacity:1;transform:translate(-50%)scale(1)}}.apple-leaf{transform-origin:23px 11px;animation:2.2s ease-in-out .9s infinite leafWave}@keyframes leafWave{0%,to{transform:rotate(0)}50%{transform:rotate(-9deg)}}.drip{opacity:0;width:13px;height:25px;margin-bottom:-2px;animation:.75s ease-out .66s forwards dripIn;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.drip svg{width:100%;height:100%;display:block;overflow:visible}@keyframes dripIn{0%{opacity:0;clip-path:inset(0 0 100%)}45%{opacity:1;clip-path:inset(0)}to{opacity:1;clip-path:inset(0)}}.bead{animation:1.3s ease-in 1.1s infinite beadFall}@keyframes beadFall{0%{opacity:0;transform:translateY(0)}25%{opacity:1}to{opacity:0;transform:translateY(26px)}}.splash-title{opacity:0;margin-top:34px;font-size:21px;font-weight:800;line-height:1.4;animation:.42s .46s forwards letterIn}.splash-sub{color:var(--muted);opacity:0;margin-top:7px;font-size:14px;font-weight:600;animation:.42s .58s forwards letterIn}.honey-bar{opacity:0;background:#e8ddc9;border-radius:5px;width:188px;height:7px;margin:26px auto 0;animation:.36s .66s forwards letterIn;overflow:hidden}.honey-fill{background:linear-gradient(90deg,#f2b733,#e09612,#f2b733);border-radius:5px;width:0;height:100%;animation:.95s cubic-bezier(.4,0,.3,1) .7s forwards fillUp}@keyframes fillUp{to{width:100%}}.lb-crown{margin-inline-start:5px;font-size:13px;font-style:normal}
