:root{--green-900:#1f3a26;--green-800:#274a31;--green-700:#2f5233;--green-600:#3f6b4a;--green-100:#dde9d6;--green-50:#f1f6ec;--beige-100:#fbf7ef;--beige-200:#f4efe6;--beige-400:#d9cbb2;--ink-900:#24261f;--ink-700:#4b4e43;--ink-500:#767a6c;--ink-100:#dadcd2;--white:#fff;--surface-page:var(--beige-100);--surface-card:var(--white);--surface-sunken:var(--green-50);--text-primary:var(--ink-900);--text-secondary:var(--ink-700);--text-tertiary:var(--ink-500);--brand-primary:var(--green-600);--brand-primary-hover:var(--green-700);--border-strong:var(--green-300,#8fae86);--score-personal:var(--green-600);--rank-gold:#c9a24b;--rank-silver:#a9aea2;--rank-bronze:#b07a4c;--danger:#b4472f;--font-display:"Sora", system-ui, -apple-system, sans-serif;--font-body:"Nunito Sans", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--shadow-sm:0 1px 2px #24261f0f, 0 1px 1px #24261f0a;--shadow-lg:0 12px 28px #274a311f, 0 4px 10px #274a310f}*{box-sizing:border-box}html,body{min-height:100dvh;margin:0}body{font-family:var(--font-body);color:var(--text-primary);background:var(--green-900)}.app{background:var(--surface-page);grid-template-rows:1fr auto;max-width:30rem;min-height:100dvh;margin:0 auto;display:grid;position:relative}.view{padding:calc(env(safe-area-inset-top) + 2rem) 1.25rem 1rem;overflow-y:auto}.tabbar{padding:.6rem .5rem calc(env(safe-area-inset-bottom) + .6rem);background:var(--surface-card);grid-template-columns:repeat(4,1fr);align-items:center;display:grid;box-shadow:0 -2px 12px #274a3114}.tab{appearance:none;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;justify-items:center;gap:.25rem;padding:.3rem 0;font-size:.66rem;font-weight:600;display:grid;position:relative}.tab--active{color:var(--brand-primary)}.tab__dot{background:#e5484d;border-radius:999px;width:.5rem;height:.5rem;position:absolute;top:.25rem;left:50%;transform:translate(.45rem)}.icon{display:block}.screen{align-content:start;gap:1rem;display:grid}.center-screen{text-align:center;justify-items:center}.screen__head{gap:.1rem;display:grid}.h-display{font-family:var(--font-display);margin:0;font-size:1.5rem;font-weight:600;line-height:1.25}.t-secondary{color:var(--text-secondary)}.t-tertiary{color:var(--text-tertiary)}.t-strong{font-weight:700}.t-caption{color:var(--text-tertiary);font-size:.82rem}.t-label{letter-spacing:.04em;color:var(--text-tertiary);font-size:.78rem;font-weight:700}.center{text-align:center}.pad{padding:0 .5rem}.mt{margin-top:.25rem}.mono{font-family:var(--font-mono)}.error{color:var(--danger);text-align:center}.loading{color:var(--text-tertiary);text-align:center;padding:2rem 0}.card{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.5rem 1.25rem}.card--center{text-align:center;justify-items:center;gap:.35rem;display:grid}.bignum{font-family:var(--font-mono);color:var(--score-personal);font-size:3.5rem;font-weight:700;line-height:1.1}.bignum--md{font-size:2.75rem}.of{font-family:var(--font-body);font-size:1rem;font-weight:600}.btn{appearance:none;text-align:center;border-radius:var(--radius-md);width:100%;font-family:var(--font-body);cursor:pointer;touch-action:manipulation;border:none;font-weight:700;display:block}.btn--primary{color:var(--white);background:var(--brand-primary);padding:.95rem 1rem;font-size:1rem}.btn--primary:active{background:var(--brand-primary-hover)}.btn--ghost{color:var(--text-secondary);background:0 0;padding:.7rem 1rem;font-size:.92rem}.btn--sm{padding:.55rem 1rem;font-size:.85rem}.btn--auto{justify-self:center;width:auto;padding-left:1.5rem;padding-right:1.5rem}.tile{appearance:none;border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-sunken);width:100%;color:var(--brand-primary);cursor:pointer;text-align:center;justify-items:center;gap:.5rem;padding:2.5rem 1rem;font-family:inherit;display:grid}.tile__title{color:var(--text-primary);font-size:1.05rem;font-weight:700}.preview{border-radius:var(--radius-lg);object-fit:cover;width:100%;max-height:45vh;display:block}.preview--dim{opacity:.5;max-height:40vh}.preview--sm{max-height:30vh;margin-bottom:.25rem}.spinner{border:4px solid var(--green-100);border-top-color:var(--brand-primary);border-radius:50%;width:2.5rem;height:2.5rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.badge{color:var(--white);background:var(--brand-primary);border-radius:999px;margin-top:.35rem;padding:.25rem .7rem;font-size:.78rem;font-weight:700;display:inline-block}.seg{background:var(--beige-200);border-radius:999px;grid-template-columns:1fr 1fr;gap:.25rem;padding:.25rem;display:grid}.seg__btn{appearance:none;font-family:var(--font-body);color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.5rem;font-size:.85rem;font-weight:700}.seg__btn--active{background:var(--surface-card);color:var(--brand-primary);box-shadow:var(--shadow-sm)}.ldr{gap:.5rem;display:grid}.ldr__row{background:var(--surface-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid #0000;grid-template-columns:1.75rem 1fr auto;align-items:center;gap:.75rem;padding:.65rem .85rem;display:grid}.ldr__row--me{border-color:var(--brand-primary);background:var(--surface-sunken)}.rankbadge{width:1.75rem;height:1.75rem;color:var(--white);background:var(--ink-500);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid}.rankbadge--gold{background:var(--rank-gold)}.rankbadge--silver{background:var(--rank-silver)}.rankbadge--bronze{background:var(--rank-bronze)}.ldr__name{font-size:.9rem;font-weight:700}.ldr__row--me .ldr__name{color:var(--brand-primary)}.ldr__pods{color:var(--text-secondary);font-size:.95rem;font-weight:700}.ldr__gap{text-align:center;color:var(--text-tertiary)}.hlist{gap:.5rem;display:grid}.hrow{background:var(--surface-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:.85rem 1rem;display:flex}.hrow__count{color:var(--brand-primary);align-items:center;gap:.5rem;font-size:1.05rem;font-weight:700;display:inline-flex}.hrow__count .mono{color:var(--text-primary)}.empty{gap:1rem;padding-top:2rem;display:grid}.overlay{z-index:30;background:#24261f59;place-items:center;padding:1.5rem;display:grid;position:absolute;inset:0}.dialog{background:var(--surface-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);gap:1rem;width:100%;max-width:19rem;padding:1.5rem;display:grid}.dialog__title{font-family:var(--font-display);font-size:1.25rem;font-weight:600}.dialog__steps{gap:.75rem;display:grid}.step{color:var(--text-secondary);align-items:flex-start;gap:.6rem;font-size:.9rem;display:flex}.step__n{width:1.4rem;height:1.4rem;color:var(--brand-primary);background:var(--surface-sunken);border-radius:50%;flex-shrink:0;place-items:center;font-size:.8rem;font-weight:700;display:grid}.dialog__actions{gap:.5rem;display:grid}.section{gap:.6rem;display:grid}.section__head{justify-content:space-between;align-items:center;display:flex}.linklike{appearance:none;color:var(--brand-primary);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:700}.backlink{appearance:none;color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;justify-self:start;padding:0;font-size:.95rem;font-weight:700}.catchup{color:var(--brand-primary);margin-top:.15rem;font-size:.82rem;font-weight:700}.splash{z-index:100;text-align:center;background:#fff;place-content:center;justify-items:center;gap:.75rem;padding:2rem;transition:opacity .5s;display:grid;position:fixed;inset:0}.splash--hide{opacity:0;pointer-events:none}.splash__logo{font-family:var(--font-display);color:var(--brand-primary);opacity:0;font-size:2.6rem;font-weight:800;animation:.7s forwards splash-in;transform:translateY(10px)scale(.96)}.splash__tag{font-family:var(--font-body);color:var(--text-secondary);opacity:0;max-width:18rem;font-size:1rem;animation:.7s .7s forwards splash-in;transform:translateY(6px)}@keyframes splash-in{to{opacity:1;transform:none}}.auth{background:var(--surface-page);place-content:center;justify-items:center;gap:.35rem;max-width:30rem;min-height:100dvh;margin:0 auto;padding:2rem 1.25rem;display:grid}.auth__brand{font-family:var(--font-display);color:var(--brand-primary);font-size:2rem;font-weight:800}.auth__tag{color:var(--text-secondary);text-align:center;margin:0 0 1.25rem;font-size:.9rem}.auth__card{background:var(--surface-card);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-sm);gap:1rem;padding:1.5rem;display:grid}.auth__title{font-family:var(--font-display);text-align:center;font-size:1.15rem;font-weight:600}.auth__switch{justify-self:center}.form{gap:.85rem;display:grid}.field{color:var(--text-secondary);gap:.3rem;font-size:.8rem;font-weight:600;display:grid}.field input,.field select{font-family:var(--font-body);border:1px solid var(--ink-100);border-radius:var(--radius-md);background:var(--surface-page);color:var(--text-primary);width:100%;padding:.7rem .8rem;font-size:1rem}.field input:focus,.field select:focus{border-color:var(--brand-primary);outline:none}.form__error{color:var(--danger);min-height:1em;margin:0;font-size:.85rem}.form__ok{color:var(--brand-primary);margin:0;font-size:.85rem}.field--center{text-align:center;justify-items:center}.field--center input{text-align:center;max-width:8rem;font-size:1.6rem;font-weight:800}.settings__team{font-family:var(--font-display);margin-top:.15rem;font-size:1.3rem;font-weight:700}.ldr__nameblock{min-width:0}.ldr__cat{color:var(--text-tertiary);font-size:.72rem}.newsfeed{gap:1rem;display:grid}.newsitem{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);gap:.35rem;padding:1.1rem;display:grid}.newsitem__title{font-family:var(--font-display);font-size:1.1rem;font-weight:700}.newsitem__img{border-radius:12px;width:100%;margin:.25rem 0}.newsitem__body{color:var(--text-secondary);white-space:pre-line;line-height:1.6}.boxed{margin:0 auto .5rem;line-height:0;display:table;position:relative}.boxed img{border-radius:var(--radius-md);max-width:100%;max-height:50vh;display:block}.boxed--sm img{max-height:30vh}.boxed svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.boxed rect{fill:#ffd60a1f;stroke:#ffd60a}.progress{background:var(--green-100);border-radius:999px;width:80%;height:.5rem;overflow:hidden}.progress__fill{background:var(--brand-primary);width:0;height:100%;transition:width .2s}.card.warn{border:2px solid var(--rank-gold);background:#fff8e6}.addhead{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.helpbtn{appearance:none;border:2px solid var(--brand-primary);background:var(--surface-card);width:2rem;height:2rem;color:var(--brand-primary);font-family:var(--font-display);cursor:pointer;border-radius:50%;flex-shrink:0;font-size:1rem;font-weight:700;line-height:1}.guide{gap:.6rem;max-width:21rem;position:relative}.guide__close{appearance:none;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1;position:absolute;top:.6rem;right:.8rem}.guide__reason{color:#6b5200;border-radius:var(--radius-md);background:#fff4cc;border:1px solid #e8c95a;margin-right:1.25rem;padding:.6rem .75rem;font-size:.85rem}.guide__art{background:var(--surface-sunken);border-radius:var(--radius-md);width:100%;height:auto}.guide__count{letter-spacing:.04em;text-transform:uppercase;color:var(--brand-primary);font-size:.75rem;font-weight:700}.guide__text{color:var(--text-secondary);margin:0;font-size:.92rem}.guide__dots{justify-content:center;gap:.4rem;display:flex}.guide__dot{background:var(--ink-100);border-radius:50%;width:.5rem;height:.5rem}.guide__dot--on{background:var(--brand-primary)}.guide__nav{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.guide__never{justify-self:center;font-size:.8rem}.countdown{align-items:center;gap:1rem;display:flex}.countdown__num{font-family:var(--font-display);color:var(--brand-primary);text-align:center;min-width:3.2rem;font-size:2.4rem;font-weight:800;line-height:1}.hrow__count{gap:.3rem}.hrow__count .icon,.bignum--unit .icon{color:var(--brand-primary);stroke-width:1.8px}.bignum--unit{justify-content:center;align-items:center;gap:.35rem;display:inline-flex}.helpsteps{gap:.5rem;margin:.25rem 0 .75rem;padding-left:1.2rem;display:grid}.helpsteps li{line-height:1.35}
