:root{--pink: #ff24c8;--pink-light: #ffbad7;--orange: #ef512c;--navy: #0c1c39;--white: #fff;--bg-soft: #fff5fa;--radius: 20px}*{box-sizing:border-box}html,body{margin:0}body{font-family:Inter,system-ui,sans-serif;color:var(--navy);background:var(--white);line-height:1.5;-webkit-text-size-adjust:100%}h1,h2,h3{margin:0 0 .5rem}h1,.anton{font-family:Anton,Impact,sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.02em}h2{font-family:Anton,Impact,sans-serif;font-weight:400;text-transform:uppercase;font-size:1.4rem;letter-spacing:.02em}.serif{font-family:"Instrument Serif",Georgia,serif;font-style:italic}a{color:var(--pink)}img{max-width:100%}.shell{min-height:100vh;display:flex;flex-direction:column}.sidebar{display:none}.main{flex:1;width:100%;max-width:980px;margin:0 auto;padding:0 1rem 6rem}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;background:var(--white);border-top:2px solid var(--pink-light);padding-bottom:env(safe-area-inset-bottom)}.bottomnav a{flex:1;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.72rem;font-weight:600;text-decoration:none;color:var(--navy);gap:2px}.bottomnav a .ico{font-size:1.3rem}.bottomnav a.active{color:var(--pink)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;gap:.5rem}.brand{font-family:Anton,sans-serif;text-transform:uppercase;font-size:1.3rem;color:var(--pink);text-decoration:none;display:flex;align-items:center;gap:.5rem}.brand img{height:32px}.topbar .links{display:flex;gap:.25rem;flex-wrap:wrap}.topbar .links a{text-decoration:none;color:var(--navy);font-weight:600;font-size:.85rem;padding:.5rem .6rem;min-height:44px;display:inline-flex;align-items:center;border-radius:12px}.topbar .links a.active{background:var(--pink-light)}@media (min-width: 860px){.shell{flex-direction:row}.sidebar{display:flex;flex-direction:column;gap:.25rem;width:230px;padding:1.25rem 1rem;border-right:2px solid var(--pink-light);position:sticky;top:0;height:100vh}.sidebar a{text-decoration:none;color:var(--navy);font-weight:600;padding:.65rem .8rem;border-radius:14px;display:flex;gap:.6rem;align-items:center;min-height:44px}.sidebar a.active{background:var(--pink);color:var(--white)}.bottomnav,.topbar .links{display:none}.main{padding-bottom:3rem}}.titlebar{background:var(--pink);color:var(--white);border-radius:var(--radius);padding:1.1rem 1.25rem;margin:.5rem 0 1.25rem}.titlebar h1{font-size:clamp(1.6rem,6vw,2.4rem);margin:0;line-height:1.1}.titlebar p{margin:.35rem 0 0;opacity:.95}.card{background:var(--white);border:2px solid var(--pink-light);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.card.soft{background:var(--bg-soft)}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.grid>.card{margin:0}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.stack>*+*{margin-top:.75rem}.muted{color:#5a6580;font-size:.9rem}.cover{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:14px;background:linear-gradient(135deg,var(--pink-light),var(--pink));display:block;margin-bottom:.6rem}.cover.ph{display:flex;align-items:center;justify-content:center;font-size:2.5rem}.tag{display:inline-block;padding:.15rem .6rem;border-radius:999px;background:var(--pink-light);font-size:.75rem;font-weight:700;margin:0 .25rem .25rem 0}.tag.orange{background:var(--orange);color:#fff}.tag.demo{background:#ffe9a8}.tag.sponsor{background:var(--navy);color:#fff}.btn{background:var(--pink);color:#fff;border:0;border-radius:999px;padding:.75rem 1.3rem;min-height:44px;font-weight:700;font-size:1rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;transition:transform .12s ease}.btn:hover{transform:translateY(-1px)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.ghost{background:transparent;color:var(--navy);border:2px solid var(--pink-light)}.btn.orange{background:var(--orange)}.btn.danger{background:#c62828}.btn.small{padding:.4rem .9rem;font-size:.85rem}label{display:block;font-weight:600;font-size:.9rem;margin:.75rem 0 .25rem}input[type=text],input[type=email],input[type=number],input[type=date],input[type=time],input[type=datetime-local],input[type=url],select,textarea{width:100%;padding:.7rem .8rem;min-height:44px;border:2px solid var(--pink-light);border-radius:14px;font:inherit;color:var(--navy);background:#fff}textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid var(--pink);outline-offset:2px}.check{display:flex;gap:.6rem;align-items:flex-start;font-weight:500;margin:.5rem 0;min-height:44px}.check input{width:24px;height:24px;flex:none;accent-color:var(--pink)}.chips{display:flex;gap:.5rem;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;flex:0 0 auto;text-decoration:none;line-height:1.2;border:2px solid var(--pink-light);background:#fff;border-radius:999px;padding:.5rem 1rem;min-height:44px;cursor:pointer;font:inherit;font-weight:600;color:var(--navy)}.chip.on{background:var(--pink);border-color:var(--pink);color:#fff}.tabs{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem}.notif-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--orange);margin-left:.4rem;flex:none;box-shadow:0 0 0 2px #fff}.progress{height:12px;background:var(--pink-light);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--pink);border-radius:999px;transition:width .4s ease}.stars{display:inline-flex}.star{background:none;border:0;padding:0 2px;color:#e5d3de;cursor:default;line-height:1;min-width:32px;min-height:44px;transition:transform .15s}.star.on{color:var(--pink)}button.star:not(:disabled){cursor:pointer}button.star:not(:disabled):hover{transform:scale(1.2)}.timeline{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:.5rem}.day{border:2px solid var(--pink-light);border-radius:14px;padding:.5rem;text-align:center;font-size:.8rem;background:#fff;cursor:pointer;font:inherit;color:var(--navy);min-height:64px}.day.done{background:var(--pink);color:#fff;border-color:var(--pink)}.day.today{border-color:var(--orange);border-width:3px}.day.locked,.day.missed{opacity:.5;cursor:default}.day b{display:block;font-size:1.1rem}.cal{width:100%;border-collapse:separate;border-spacing:3px;table-layout:fixed}.cal th{font-size:.75rem;color:#5a6580}.cal td button{width:100%;min-height:44px;border:0;border-radius:10px;background:#fafafa;font:inherit;color:var(--navy);position:relative;cursor:pointer}.cal td button.today{outline:2px solid var(--orange)}.cal td button.sel{background:var(--pink-light)}.cal .dot{position:absolute;left:50%;bottom:3px;width:8px;height:8px;background:var(--pink);border-radius:50%;transform:translate(-50%)}.cal .band{background:#ffe3f3}.cal .dot.live{background:var(--orange)}.post .meta{display:flex;gap:.6rem;align-items:center;margin-bottom:.4rem}.avatar{width:40px;height:40px;border-radius:50%;background:var(--pink-light);object-fit:cover;display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex:none}.post img.postimg{border-radius:14px;max-height:360px;object-fit:cover}.comment{background:var(--bg-soft);border-radius:14px;padding:.5rem .75rem;margin-top:.5rem;font-size:.92rem}.video{width:100%;aspect-ratio:16/9;border:0;border-radius:14px;background:#000}.img-fallback{background:var(--bg-soft);border-radius:14px;padding:1rem;text-align:center;color:#5a6580;min-height:60px}.empty{text-align:center;padding:2rem 1rem}.empty-emoji{font-size:3rem}.loading{padding:2rem;text-align:center;color:#5a6580}.error-box{background:#fff1f1;border-color:#f3b7b7}.notice{background:#fff8e1;border:2px solid #ffe08a;border-radius:14px;padding:.75rem 1rem;margin-bottom:1rem}.stat{text-align:center;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.stat b{font-family:Anton,sans-serif;font-size:2rem;color:var(--pink);display:block;font-weight:400}.bars{display:flex;align-items:flex-end;gap:6px;height:110px}.bars div{flex:1;background:var(--pink);border-radius:6px 6px 0 0;min-height:2px;position:relative}.bars span{position:absolute;top:-18px;left:0;right:0;text-align:center;font-size:.7rem}.scorecmp{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;text-align:center}.scorecmp>div{background:var(--bg-soft);border-radius:14px;padding:.75rem .25rem}.scorecmp b{display:block;font-family:Anton,sans-serif;font-weight:400;font-size:1.8rem;color:var(--pink)}table.data{width:100%;border-collapse:collapse;font-size:.9rem}table.data th,table.data td{text-align:left;padding:.5rem;border-bottom:1px solid var(--pink-light);vertical-align:top}.tablewrap{overflow-x:auto}.linechart{width:100%;height:120px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c1c398c;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal{max-width:440px;width:100%;margin:0;max-height:90vh;overflow:auto}.party{text-align:center}.confetti{font-size:2rem;animation:pop .8s ease}.badge-pop{display:inline-block;font-size:2.4rem;animation:pop .8s ease}.badge-line{font-weight:700}@keyframes pop{0%{transform:scale(.2) rotate(-20deg);opacity:0}70%{transform:scale(1.25) rotate(8deg);opacity:1}to{transform:scale(1)}}.toasts{position:fixed;left:0;right:0;bottom:76px;display:flex;flex-direction:column;align-items:center;gap:.4rem;z-index:120;pointer-events:none}.toast{background:var(--navy);color:#fff;padding:.7rem 1.1rem;border-radius:999px;font-weight:600;animation:pop .4s ease;max-width:90vw}.sharecanvas{width:100%;max-width:320px;border-radius:18px;display:block;margin:0 auto 1rem;box-shadow:0 6px 24px #0c1c3933}.hero{text-align:center;padding:2rem 0}.hero h1{font-size:clamp(2.2rem,9vw,3.6rem);color:var(--pink)}.stepdots{display:flex;gap:.4rem;justify-content:center;margin-bottom:1rem}.stepdots i{width:10px;height:10px;border-radius:50%;background:var(--pink-light)}.stepdots i.on{background:var(--pink)}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem}.badge-card{text-align:center;padding:.75rem;border-radius:16px;border:2px solid var(--pink-light)}.badge-card.locked{opacity:.4;filter:grayscale(1)}.badge-card .ico{font-size:2rem}.manual{max-width:760px;margin:0 auto;padding:1rem}.manual nav a{display:block;padding:.3rem 0}.manual section{scroll-margin-top:1rem;margin-bottom:1.5rem}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
