:root{--bg: #12100f;--bg-2: #1c1917;--card: #241f1c;--ink: #f5f0e8;--muted: #a89b8c;--cheese: #ffcf33;--cheese-2: #ffab2e;--rat: #b8a99a;--hot: #ff5c8a;--lime: #9ee34f;--line: #38302b;--radius: 18px;--shadow: 0 10px 30px rgba(0,0,0,.45)}*{box-sizing:border-box}html{background:var(--bg)}#root{min-height:100vh}body{margin:0;min-height:100vh;background:radial-gradient(1200px 600px at 80% -10%,rgba(255,207,51,.1),transparent 60%),radial-gradient(900px 500px at -10% 20%,rgba(255,92,138,.08),transparent 55%),var(--bg);background-attachment:fixed;background-repeat:no-repeat;color:var(--ink);font-family:ui-rounded,Segoe UI,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}.wrap{max-width:640px;margin:0 auto;padding:28px 20px 64px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:-.5px;font-size:22px}.brand .logo{font-size:26px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.5))}.brand .the-name{line-height:1}.brand .dot{color:var(--cheese)}.badge{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:#2a2118;background:var(--cheese);padding:6px 10px;border-radius:999px;transform:rotate(-3deg)}.hero{text-align:center;padding:18px 0 8px}.hero .mascot{font-size:84px;line-height:1;display:inline-block;animation:wiggle 3.5s ease-in-out infinite;filter:drop-shadow(0 10px 18px rgba(0,0,0,.5))}@keyframes wiggle{0%,to{transform:rotate(-6deg) translateY(0)}50%{transform:rotate(6deg) translateY(-6px)}}.hero h1{font-size:clamp(38px,12vw,60px);margin:8px 0 2px;font-weight:900;letter-spacing:-1.5px;background:linear-gradient(180deg,#fff,var(--cheese));-webkit-background-clip:text;background-clip:text;color:transparent}.hero .tag{color:var(--muted);font-size:16px;max-width:30ch;margin:6px auto 0;line-height:1.4}.hero .tag b{color:var(--ink)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-top:18px}.card h2{margin:0 0 4px;font-size:15px;text-transform:uppercase;letter-spacing:1.2px;color:var(--cheese)}.card p.sub{margin:0 0 14px;color:var(--muted);font-size:14px}.rules{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px}.rule{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:14px}.rule .emoji{font-size:22px}.rule .t{font-weight:800;margin-top:4px;font-size:14px}.rule .d{color:var(--muted);font-size:12.5px;margin-top:2px;line-height:1.35}label{display:block;font-size:13px;font-weight:700;margin:12px 0 6px;color:var(--rat)}input{width:100%;padding:13px 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink);font-size:16px;outline:none}input:focus{border-color:var(--cheese)}.btn{width:100%;margin-top:16px;padding:14px;border:none;border-radius:14px;font-size:16px;font-weight:900;letter-spacing:.3px;cursor:pointer;background:linear-gradient(180deg,var(--cheese),var(--cheese-2));color:#2a2118;box-shadow:0 6px #b47d0f;transition:transform .05s ease,box-shadow .05s ease}.btn:active{transform:translateY(4px);box-shadow:0 2px #b47d0f}.btn.secondary{background:transparent;color:var(--muted);box-shadow:none;font-weight:700;margin-top:8px}.btn.danger{background:transparent;color:#ffc2d4;box-shadow:none;border:1px solid rgba(255,92,138,.4);font-weight:800;margin-top:10px}.note{font-size:12.5px;color:var(--muted);text-align:center;margin-top:14px;line-height:1.5}.pill{display:inline-block;font-size:11px;font-weight:800;color:var(--lime);border:1px solid var(--lime);border-radius:999px;padding:3px 9px}.warn{background:#ff5c8a1f;border:1px solid rgba(255,92,138,.4);color:#ffc2d4;border-radius:12px;padding:12px 14px;font-size:13px;margin-top:14px;line-height:1.45}footer{text-align:center;color:var(--muted);font-size:12px;margin-top:36px;line-height:1.6}footer .heart{color:var(--hot)}.note.err{color:#ffc2d4}.chip{border:1px solid var(--line);background:var(--bg-2);color:var(--muted);font-weight:700;font-size:12px;padding:7px 12px;border-radius:999px;cursor:pointer}.chip:active{transform:translateY(1px)}.week-head{display:flex;align-items:center;justify-content:space-between;margin:4px 0 6px}.week-label{font-weight:900;font-size:20px;letter-spacing:-.5px}.progress-top{display:flex;align-items:flex-start;justify-content:space-between}.big-num{font-size:42px;font-weight:900;line-height:1;letter-spacing:-1px}.big-num .of{font-size:20px;color:var(--muted);font-weight:800}.sub2{color:var(--muted);font-size:13px;margin-top:4px}.bar{height:16px;background:var(--bg-2);border:1px solid var(--line);border-radius:999px;overflow:hidden;margin:16px 0 12px}.bar-fill{height:100%;background:linear-gradient(90deg,var(--cheese-2),var(--cheese));border-radius:999px;transition:width .5s cubic-bezier(.2,.8,.2,1)}.bar-fill.done{background:linear-gradient(90deg,#6fbf2f,var(--lime))}.wager-line{font-size:13px;color:var(--rat);margin-top:6px}.wager-line .lock{margin-right:4px}.card.empty{text-align:center}.empty-emoji{font-size:40px;display:block;margin-bottom:6px}.btn.big-log{margin-top:16px;font-size:18px;padding:16px}.feed-head{margin:26px 0 12px;font-weight:900;font-size:15px;text-transform:uppercase;letter-spacing:1px;color:var(--rat)}.log-list{display:flex;flex-direction:column;gap:12px}.log-card{display:flex;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px}.log-photo{width:84px;height:84px;flex:0 0 84px;border-radius:10px;overflow:hidden;background:var(--bg-2)}.log-photo img{width:100%;height:100%;object-fit:cover;display:block}.log-photo .ph{width:100%;height:100%}.log-meta{flex:1;min-width:0}.log-top{display:flex;align-items:center;justify-content:space-between}.log-when{font-weight:800;font-size:14px}.log-mins{color:var(--muted);font-size:13px;margin-top:2px}.log-cap{margin-top:6px;font-size:14px;color:var(--ink)}.log-actions{display:flex;gap:8px;margin-top:8px}.mini-btn{border:1px solid var(--line);background:var(--bg-2);color:var(--muted);font-weight:800;font-size:12px;padding:5px 10px;border-radius:8px;cursor:pointer}.mini-btn:active{transform:translateY(1px)}.mini-btn.danger{color:#ffc2d4;border-color:#ff5c8a59}.val-badge{font-size:11px;font-weight:800;padding:3px 8px;border-radius:999px;background:#ffcf3329;color:var(--cheese);border:1px solid rgba(255,207,51,.3);white-space:nowrap}.val-badge.full{background:#9ee34f24;color:var(--lime);border-color:#9ee34f4d}.val-badge.big{font-size:13px;padding:6px 12px}.stepper{display:flex;align-items:center;justify-content:center;gap:18px;margin:8px 0 4px}.step-btn{width:52px;height:52px;border-radius:16px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink);font-size:28px;font-weight:900;cursor:pointer;line-height:1}.step-btn:active{transform:translateY(2px)}.step-val{font-size:44px;font-weight:900;min-width:70px;text-align:center;letter-spacing:-1px}.hint{text-align:center;color:var(--muted);font-size:12.5px;margin-top:8px}.photo-drop{display:block;border:2px dashed var(--line);border-radius:14px;background:var(--bg-2);min-height:180px;cursor:pointer;overflow:hidden;margin:0}.drop-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:180px;color:var(--muted);font-weight:700}.drop-emoji{font-size:38px}.drop-preview{width:100%;display:block;max-height:320px;object-fit:cover}.mins-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mins-input{width:100px;font-size:22px;font-weight:800;text-align:center}.mins-unit{color:var(--muted);font-weight:700}.tabs{display:flex;gap:6px;background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:5px;margin-bottom:18px}.tab{flex:1;border:none;background:transparent;color:var(--muted);font-weight:800;font-size:15px;padding:10px;border-radius:10px;cursor:pointer}.tab.active{background:var(--cheese);color:#2a2118}.pack-row{padding:10px 0}.pack-row+.pack-row{border-top:1px solid var(--line)}.pack-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.pack-name{font-weight:800;font-size:15px}.pack-rank{display:block;font-weight:700;font-size:11.5px;color:var(--muted);margin-top:1px}.pack-score{font-weight:900;font-size:15px}.pack-score .of{color:var(--muted);font-weight:800}.bar.sm{height:10px;margin:0}.feed-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px}.feed-cardtop{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.feed-name{font-weight:900;font-size:15px}.feed-when{color:var(--muted);font-size:12.5px}.feed-img{width:100%;border-radius:12px;display:block;max-height:420px;object-fit:cover;background:var(--bg-2);aspect-ratio:4 / 3}.feed-img.ph{aspect-ratio:4 / 3}.feed-info{display:flex;align-items:center;gap:10px;margin-top:10px}.feed-mins{color:var(--muted);font-size:13px;font-weight:700}.feed-cap{margin-top:8px;font-size:15px}.react-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.react-btn{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--bg-2);border-radius:999px;padding:6px 10px;cursor:pointer;font-size:16px;line-height:1;transition:transform .05s ease}.react-btn:active{transform:scale(1.15)}.react-btn.on{background:#ffcf3329;border-color:var(--cheese)}.react-count{font-size:13px;font-weight:800;color:var(--ink)}.mascot-banner{display:flex;align-items:center;gap:12px;background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:16px}.mascot-emoji{font-size:32px;line-height:1;animation:bob 2.2s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-4px) rotate(4deg)}}.mascot-line{font-weight:800;font-size:14.5px;line-height:1.3}.mascot-banner.mood-zero{border-color:#ff5c8a73}.mascot-banner.mood-zero .mascot-line{color:#ffc2d4}.mascot-banner.mood-done{border-color:#9ee34f80}.mascot-banner.mood-done .mascot-line{color:var(--lime)}.mascot-banner.mood-close .mascot-line{color:var(--cheese)}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:50}.confetti-bit{position:absolute;top:-40px;animation-name:fall;animation-timing-function:cubic-bezier(.3,.6,.5,1);animation-fill-mode:forwards;will-change:transform,opacity}@keyframes fall{0%{transform:translateY(-40px) rotate(0);opacity:1}to{transform:translateY(105vh) rotate(var(--rot));opacity:0}}.wager-note{color:var(--muted);font-size:12px;margin-top:3px;font-weight:400}.reveal-week{font-weight:900;font-size:16px;margin-bottom:10px;color:var(--cheese)}.reveal-row{padding:12px 0}.reveal-row+.reveal-row{border-top:1px solid var(--line)}.reveal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.reveal-name{font-weight:900;font-size:15px}.outcome{font-weight:900;font-size:13px}.outcome.won{color:var(--lime)}.outcome.lost{color:var(--hot)}.outcome-sub{color:var(--muted);font-weight:700}.wager-box{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.wager-box.vetoed{border-color:#ff5c8a80;background:#ff5c8a14}.wager-label,.wager-cursed-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:3px}.wager-cursed-label{color:var(--hot)}.wager-text{font-size:15px;font-weight:700}.veto-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:8px;padding:9px;border-radius:10px;border:1px solid var(--line);background:var(--bg-2);color:var(--muted);font-weight:800;font-size:13px;cursor:pointer}.veto-btn.on{background:#ff5c8a24;border-color:#ff5c8a80;color:#ffc2d4}.veto-count{font-size:11px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:2px 7px}.board{width:100%;border-collapse:collapse}.board th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line)}.board th:not(:first-child),.board td:not(:first-child){text-align:center;width:56px}.board td{padding:10px 8px;font-weight:800;font-size:15px;border-bottom:1px solid var(--line)}.board tr:last-child td{border-bottom:none}.board tr.me td{color:var(--cheese)}
