:root{--ink:#0b0b0c;--carbon:#141518;--graphite:#1e1f23;--steel:#2c2e33;--iron:#44464d;--concrete:#6e7078;--fog:#a4a6ad;--chalk:#e4e4e0;--paper:#f3f3ef;--white:#fff;--volt:#d4ff1e;--volt-600:#b8e000;--volt-100:#f3ffc2;--signal:#ff4d1a;--signal-600:#e03a0a;--signal-100:#ffe3d9;--success:#d4ff1e;--warning:#ffb21e;--danger:#ff3b3b;--info:#4d8bff;--surface-page:var(--ink);--surface-card:var(--carbon);--surface-raised:var(--graphite);--surface-sunken:#070708;--surface-inverse:var(--paper);--surface-accent:var(--volt);--text-primary:var(--white);--text-secondary:var(--fog);--text-muted:var(--concrete);--text-inverse:var(--ink);--text-on-accent:var(--ink);--text-accent:var(--volt);--text-hot:var(--signal);--border-subtle:#ffffff14;--border-default:#ffffff24;--border-strong:#ffffff52;--border-focus:var(--volt);--state-hover:#ffffff0f;--state-press:#ffffff1a;--overlay-scrim:#070708b8}.theme-light{--surface-page:var(--paper);--surface-card:var(--white);--surface-raised:var(--white);--surface-sunken:var(--chalk);--surface-inverse:var(--ink);--text-primary:var(--ink);--text-secondary:var(--iron);--text-muted:var(--concrete);--text-inverse:var(--white);--text-accent:var(--ink);--border-subtle:#0b0b0c14;--border-default:#0b0b0c24;--border-strong:#0b0b0c66;--border-focus:var(--ink);--state-hover:#0b0b0c0d;--state-press:#0b0b0c17}:root{--font-display:"Barlow Condensed","Arial Narrow",sans-serif;--font-body:"Archivo",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--fs-hero:120px;--fs-d1:88px;--fs-d2:64px;--fs-d3:48px;--fs-h1:36px;--fs-h2:28px;--fs-h3:22px;--fs-lg:18px;--fs-md:16px;--fs-sm:14px;--fs-xs:12px;--fs-2xs:11px;--lh-display:.88;--lh-heading:1;--lh-body:1.5;--lh-tight:1.25;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-black:900;--tracking-display:-.01em;--tracking-label:.1em;--tracking-body:0;--type-display-family:var(--font-display);--type-display-weight:800;--type-label-family:var(--font-body);--type-label-size:var(--fs-2xs);--type-label-weight:700;--type-stat-family:var(--font-display);--type-stat-weight:800;--space-0:0;--space-1:2px;--space-2:4px;--space-3:8px;--space-4:12px;--space-5:16px;--space-6:20px;--space-7:24px;--space-8:32px;--space-9:40px;--space-10:48px;--space-11:64px;--space-12:96px;--gutter-mobile:20px;--gutter-desktop:40px;--container-max:1280px;--radius-0:0;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--radius-xl:14px;--radius-pill:999px;--radius-button:var(--radius-md);--radius-card:var(--radius-lg);--radius-input:var(--radius-md);--border-width:1px;--border-width-strong:2px;--shadow-none:none;--shadow-1:0 1px 0 #ffffff0a inset,0 1px 2px #0006;--shadow-2:0 8px 24px #00000073;--shadow-3:0 24px 64px #0009;--shadow-glow:0 0 0 4px #d4ff1e38;--ease-out:cubic-bezier(.2,.8,.2,1);--ease-snap:cubic-bezier(.34,1.56,.64,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.36s;--z-nav:50;--z-overlay:90;--z-dialog:100;--z-toast:120}*,:before,:after{box-sizing:border-box}body{background:var(--surface-page);color:var(--text-primary);font-family:var(--font-body);font-size:var(--fs-md);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--text-accent);text-underline-offset:3px;text-decoration:underline}a:hover{color:var(--text-primary)}.t-display{font-family:var(--font-display);text-transform:uppercase;font-weight:800;line-height:var(--lh-display);letter-spacing:var(--tracking-display)}.t-label{font-family:var(--font-body);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:700}.t-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}html{background:var(--surface-page);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-tap-highlight-color:transparent}body{min-height:100dvh}button,input,textarea{font:inherit;color:inherit}button{-webkit-user-select:none;user-select:none}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.shell{flex-direction:column;max-width:520px;min-height:100dvh;margin:0 auto;display:flex}.topbar{z-index:var(--z-nav);padding:calc(env(safe-area-inset-top) + 12px) var(--gutter-mobile) 12px;background:var(--surface-page);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar-title{font-family:var(--font-display);text-transform:uppercase;font-size:22px;font-style:italic;font-weight:800;line-height:1}.topbar-title span{color:var(--volt)}.content{padding:8px var(--gutter-mobile) calc(96px + env(safe-area-inset-bottom));flex:1}.stack{flex-direction:column;gap:20px;display:flex}.stack-sm{flex-direction:column;gap:8px;display:flex}.row{align-items:center;gap:12px;display:flex}.between{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.grid-2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.label{font-size:var(--fs-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-secondary);font-weight:700}.label-row{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.display{font-family:var(--font-display);text-transform:uppercase;font-weight:800;line-height:var(--lh-display);letter-spacing:var(--tracking-display);margin:0}.page-title{margin-top:6px;font-size:56px}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.hot{color:var(--signal)}.accent{color:var(--volt)}.small{font-size:var(--fs-sm)}.body-copy{color:var(--text-secondary);margin:0;font-size:15px;line-height:1.5}.error{font-size:var(--fs-xs);color:var(--danger)}.auth{max-width:420px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 40px) var(--gutter-mobile) calc(env(safe-area-inset-bottom) + 40px);flex-direction:column;justify-content:center;gap:32px;margin:0 auto;display:flex}.auth-head{flex-direction:column;align-items:flex-start;gap:20px;display:flex}.auth-foot{font-size:var(--fs-sm);color:var(--text-muted)}.auth-foot a{color:var(--text-secondary)}.btn{border-radius:var(--radius-button);height:44px;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:17px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-sm{height:36px;padding:0 14px;font-size:15px}.btn-lg{height:56px;padding:0 28px;font-size:20px}.btn-block{width:100%;display:flex}.btn-primary{background:var(--volt);color:var(--ink)}.btn-primary:hover:not(:disabled){background:var(--volt-600)}.btn-secondary{color:var(--text-primary);border-color:var(--border-strong);background:0 0}.btn-ghost{color:var(--text-primary);background:0 0}.btn-secondary:hover:not(:disabled),.btn-ghost:hover:not(:disabled){background:var(--state-hover)}.btn-danger{background:var(--signal);color:var(--ink)}.btn-danger:hover:not(:disabled){background:var(--signal-600)}.link-btn{cursor:pointer;color:var(--text-secondary);font-size:var(--fs-sm);text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.link-btn:hover{color:var(--text-primary)}.icon-btn{width:44px;height:44px;color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex;position:relative}.icon-btn:hover{box-shadow:inset 0 0 0 100px var(--state-hover)}.field{flex-direction:column;gap:6px;display:flex}.field-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);font-size:11px;font-weight:700}.input{background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-input);width:100%;min-height:48px;color:var(--text-primary);font-family:var(--font-body);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);outline:0;padding:0 14px;font-size:16px}.input::placeholder{color:var(--text-muted)}.input:focus{border-color:var(--border-focus);box-shadow:var(--shadow-glow)}.input.has-error{border-color:var(--danger);box-shadow:none}textarea.input{resize:vertical;min-height:120px;padding:12px 14px;line-height:1.5}.field-hint{color:var(--text-muted);font-size:12px}.card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);box-shadow:var(--shadow-1);padding:16px}.card-sm{padding:12px}.card-lg{padding:24px}.card-raised{background:var(--surface-raised);border-color:var(--border-default)}.card-accent{background:var(--volt);color:var(--ink);border-color:#0000}.card-link{cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out);text-align:left;width:100%;color:inherit;font:inherit}.card-link:hover{border-color:var(--border-strong)}.badge{border-radius:var(--radius-sm);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;background:var(--steel);height:20px;color:var(--text-primary);align-items:center;gap:4px;padding:0 7px;font-size:10px;font-weight:700;display:inline-flex}.badge-volt{background:var(--volt);color:var(--ink)}.badge-signal{background:var(--signal);color:var(--ink)}.badge-outline{color:var(--text-secondary);border:1px solid var(--border-default);background:0 0}.stat{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.stat-value{font-family:var(--font-display);letter-spacing:-.01em;font-size:48px;font-style:italic;font-weight:800;line-height:.9}.stat-value small{color:var(--text-secondary);margin-left:2px;font-size:.45em}.stat-sm .stat-value{font-size:32px}.stat-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);font-size:10px;font-weight:700}.avatar{background:var(--steel);color:var(--text-primary);font-family:var(--font-display);letter-spacing:.02em;border-radius:99px;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex;position:relative}.avatar-done{box-shadow:0 0 0 2px var(--surface-page), 0 0 0 4px var(--volt)}.avatar-hot{box-shadow:0 0 0 2px var(--surface-page), 0 0 0 4px var(--signal)}.task{text-align:left;cursor:pointer;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-card);width:100%;min-height:68px;color:var(--text-primary);transition:all var(--dur-base) var(--ease-out);align-items:center;gap:14px;padding:12px 16px;display:flex}.task:hover{border-color:var(--border-strong)}.task:active{transform:scale(.99)}.task.done{background:var(--surface-raised)}.task-icon{border-radius:var(--radius-md);background:var(--steel);width:40px;height:40px;color:var(--text-secondary);transition:color var(--dur-base) var(--ease-out);flex:none;justify-content:center;align-items:center;display:inline-flex}.task.done .task-icon{color:var(--volt)}.task-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.task-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.01em;transition:color var(--dur-base) var(--ease-out);font-size:20px;font-weight:700;line-height:1.05}.task.done .task-title{color:var(--text-secondary)}.task-meta{color:var(--text-muted);font-size:13px}.task-box{border-radius:var(--radius-md);border:1.5px solid var(--border-strong);width:32px;height:32px;color:var(--ink);transition:all var(--dur-slow) var(--ease-snap);flex:none;justify-content:center;align-items:center;display:inline-flex;transform:scale(.92)}.task.done .task-box{background:var(--volt);border-color:var(--volt);transform:scale(1)}.members{border-top:1px solid var(--border-subtle);flex-direction:column;display:flex}.member{border-bottom:1px solid var(--border-subtle);text-align:left;width:100%;min-height:60px;color:inherit;font:inherit;background:0 0;border-top:0;border-left:0;border-right:0;align-items:center;gap:12px;padding:10px 12px;display:flex}button.member{cursor:pointer}button.member:hover{background:var(--state-hover)}.member.you{background:var(--surface-raised)}.member-rank{width:24px;font-family:var(--font-display);color:var(--text-muted);flex:none;font-size:20px;font-style:italic;font-weight:800}.member-rank.top{color:var(--volt)}.member-main{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.member-name{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex;overflow:hidden}.member-name .you-tag{letter-spacing:.1em;color:var(--volt);font-size:10px;font-weight:700}.member-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.member-end{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.member-score{font-family:var(--font-mono);color:var(--text-secondary);font-size:13px}.member-score.full{color:var(--volt)}.member-flag{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:700}.member-flag.hot{color:var(--signal)}.streak{font-family:var(--font-mono);color:var(--text-muted);align-items:center;gap:3px;font-size:12px;display:inline-flex}.streak.hot{color:var(--signal)}.blocks{gap:3px;display:flex}.blocks span{background:var(--steel);width:18px;height:5px;transition:background var(--dur-base) var(--ease-out)}.blocks span.on{background:var(--volt)}.strip{gap:3px;display:flex}.strip-cell{background:var(--steel);width:18px;height:8px;overflow:hidden}.strip-cell i{background:var(--volt);height:100%;display:block}.strip-cell.today{outline:1px solid var(--border-strong);outline-offset:1px}.ring{flex:none;position:relative}.ring svg{display:block;transform:rotate(-90deg)}.ring circle{transition:stroke-dashoffset var(--dur-slow) var(--ease-in-out)}.ring-inner{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.weekbar{gap:4px;display:flex}.weekbar>div{flex-direction:column;flex:1;gap:6px;display:flex}.weekbar-track{background:var(--steel);height:10px}.weekbar-fill{background:var(--volt);height:100%;transition:width var(--dur-slow) var(--ease-in-out)}.weekbar-num{font-family:var(--font-display);color:var(--text-muted);font-size:14px;font-weight:700;line-height:1}.weekbar-num.past{color:var(--text-primary)}.weekbar-num.now{color:var(--volt)}.grid70{grid-template-columns:28px repeat(7,1fr);align-items:center;gap:3px;display:grid}.grid70-week{font-family:var(--font-display);color:var(--text-muted);font-size:13px;font-weight:700}.grid70-cell{background:var(--steel);height:22px;position:relative;overflow:hidden}.grid70-cell i{background:var(--volt);position:absolute;bottom:0;left:0;right:0}.grid70-cell.future{background:var(--carbon);border:1px solid var(--border-subtle)}.bar{background:var(--steel);height:6px;overflow:hidden}.bar i{background:var(--volt);height:100%;display:block}.tabs{border-bottom:1px solid var(--border-subtle);gap:24px;display:flex}.tab{cursor:pointer;height:44px;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);transition:color var(--dur-fast) var(--ease-out);background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:17px;font-weight:700;display:flex;position:relative}.tab:after{content:"";background:0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}.tab.active{color:var(--text-primary)}.tab.active:after{background:var(--volt)}.tabbar-wrap{z-index:var(--z-nav);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border-subtle);padding-bottom:env(safe-area-inset-bottom);background:#0b0b0cdb;position:fixed;bottom:0;left:0;right:0}.tabbar{max-width:520px;height:64px;margin:0 auto;padding-bottom:4px;display:flex}.tabbar a{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;text-decoration:none;display:flex}.tabbar a.active{color:var(--volt)}.tabbar a span{letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.toast-wrap{left:0;right:0;bottom:calc(80px + env(safe-area-inset-bottom));z-index:var(--z-toast);padding:0 var(--gutter-mobile);pointer-events:none;justify-content:center;display:flex;position:fixed}.toast{pointer-events:auto;background:var(--white);width:100%;max-width:480px;min-height:48px;color:var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);animation:toast-in var(--dur-base) var(--ease-out);align-items:center;gap:12px;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.toast-volt{background:var(--volt)}.toast-danger{background:var(--danger);color:var(--white)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.scrim{z-index:var(--z-dialog);background:var(--overlay-scrim);-webkit-backdrop-filter:blur(12px);justify-content:center;align-items:flex-start;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.dialog{background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-3);flex-direction:column;gap:16px;margin:auto;padding:24px;display:flex}.dialog h3{font-family:var(--font-display);text-transform:uppercase;margin:0;font-size:28px;font-weight:800;line-height:1}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.switch{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-size:15px;display:flex}.switch-track{background:var(--steel);width:44px;height:26px;transition:background var(--dur-base) var(--ease-out);cursor:pointer;border:0;border-radius:99px;flex:none;position:relative}.switch-track:after{content:"";background:var(--white);width:20px;height:20px;transition:transform var(--dur-base) var(--ease-snap);border-radius:99px;position:absolute;top:3px;left:3px}.switch-track.on{background:var(--volt)}.switch-track.on:after{background:var(--ink);transform:translate(18px)}.done-card{flex-direction:column;gap:10px;display:flex}.done-card .display{font-size:88px;font-style:italic}.goal{border-bottom:1px solid var(--border-subtle);align-items:baseline;gap:14px;padding:12px 0;display:flex}.goal:last-child{border-bottom:0}.goal-num{font-family:var(--font-display);color:var(--volt);flex:none;width:24px;font-size:20px;font-style:italic;font-weight:800}.goal-text{white-space:pre-wrap;font-size:15px;line-height:1.4}.checkin-text{white-space:pre-wrap;margin:0;font-size:15px;line-height:1.5}.invite{font-family:var(--font-mono);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.back{color:var(--text-secondary);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:4px;font-weight:700;text-decoration:none;display:inline-flex}.center-screen{justify-content:center;align-items:center;min-height:100dvh;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}.checkin-goals{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);flex-direction:column;gap:6px;padding:12px 14px;display:flex}.checkin-goal{color:var(--text-primary);align-items:baseline;gap:10px;font-size:14px;line-height:1.4;display:flex}.checkin-goal .goal-num{width:14px;font-size:16px}.clamp{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}
