:root{--bg: #000;--surface: #0c0c0c;--surface-2: #151515;--line: #222;--line-2: #333;--text: #fff;--muted: #8c8c8c;--dim: #5a5a5a;--accent: #fff;--on-accent: #000;--danger: #ff5c5c;--done: #2ee66b;--done-dim: rgba(46, 230, 107, .12);--done-line: rgba(46, 230, 107, .45);--radius: 18px;--radius-sm: 12px;--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}button:disabled{cursor:not-allowed}input,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.emoji{filter:grayscale(1) contrast(1.1)}.shell{max-width:480px;margin:0 auto;min-height:100%;position:relative}.page{padding:8px 20px calc(96px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;display:grid;grid-template-columns:repeat(4,1fr);padding:8px 12px calc(10px + env(safe-area-inset-bottom));background:#000000f2;border-top:1px solid var(--line);z-index:10}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px;color:var(--dim);font-size:10.5px;text-align:center;white-space:nowrap;font-weight:600;letter-spacing:.02em;transition:color .15s}.tab.active{color:var(--text)}.splash{height:100vh;display:grid;place-items:center}.logo{font-weight:900;letter-spacing:.32em;padding-left:.32em}.logo-lg{font-size:44px}.topbar{display:flex;align-items:center;justify-content:space-between;height:56px;gap:8px}.topbar-title{font-size:16px;font-weight:700;flex:1;text-align:center}.icon-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--text);transition:background .15s;flex-shrink:0}.icon-btn:hover{background:var(--surface-2)}.icon-btn-spacer{width:40px;flex-shrink:0}.hero{display:flex;justify-content:space-between;align-items:flex-end;padding-top:28px;padding-bottom:6px;gap:12px}.hero-title{font-size:32px;line-height:1.08;font-weight:800;letter-spacing:-.03em}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600;margin-bottom:8px}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}.mt{margin-top:18px}.mt-lg{margin-top:32px}.loading{color:var(--dim);padding:40px 0;text-align:center}.error{color:var(--danger);font-size:14px;margin-top:4px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-top:14px}.section-head h2{font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700}.row-between{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.stack{display:flex;flex-direction:column;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:52px;padding:0 22px;border-radius:999px;font-weight:700;font-size:15px;transition:transform .1s,opacity .15s,background .15s;white-space:nowrap}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.35}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:#e6e6e6}.btn-ghost{border:1px solid var(--line-2);color:var(--text)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{border:1px solid #3a1515;color:var(--danger)}.btn-danger:hover{background:#1a0909}.btn-block{width:100%}.btn-sm{height:36px;padding:0 14px;font-size:13px}.link-btn{color:var(--text);font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:3px}.segmented{display:flex;background:var(--surface-2);border-radius:999px;padding:4px;gap:4px}.segmented button{flex:1;height:38px;border-radius:999px;font-weight:600;font-size:14px;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s,color .15s}.segmented button.on{background:var(--accent);color:var(--on-accent)}.badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:var(--on-accent);font-size:11px;font-weight:800;margin-left:6px}.segmented button.on .badge{background:var(--on-accent);color:var(--accent)}.tag{font-size:10px;text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--line-2);color:var(--muted);padding:1px 6px;border-radius:6px;margin-left:6px;font-weight:700;vertical-align:middle}.field{display:flex;flex-direction:column;gap:8px}.field>span,.field-label{font-size:13px;color:var(--muted);font-weight:600;display:block}.field-label{margin:6px 0 -2px}.field input,.field textarea,textarea.why,.code-input,.search input{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;outline:none;transition:border-color .15s}.field input:focus,.field textarea:focus,textarea.why:focus,.code-input:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:80px}textarea.why{margin-top:18px;line-height:1.55;font-size:16px}::placeholder{color:var(--dim)}.counter{font-size:12px;color:var(--dim)}.search{position:relative;display:flex;align-items:center;color:var(--dim)}.search svg{position:absolute;left:14px;pointer-events:none}.search input{padding-left:42px;border-radius:999px}.search input:focus{border-color:var(--line-2)}.code-input{margin-top:24px;text-align:center;font-size:34px;font-weight:800;letter-spacing:.4em;padding:18px 0 18px .4em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.auth{max-width:420px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:32px 24px;gap:40px}.auth-hero{text-align:center}.tagline{color:var(--muted);margin-top:10px;font-size:16px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-form .btn{margin-top:8px}.flow{min-height:100vh;display:flex;flex-direction:column;padding:0 20px}.flow-body{flex:1;padding:16px 0 24px;display:flex;flex-direction:column;gap:12px}.flow-body.center{align-items:center;justify-content:center;text-align:center}.flow-title{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-top:8px}.flow-footer{position:sticky;bottom:0;padding:16px 0 calc(20px + env(safe-area-inset-bottom));background:linear-gradient(to top,#000 70%,transparent);display:flex;flex-direction:column;gap:10px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px}.step{display:flex;flex-direction:column;gap:6px}.step-bar{height:3px;border-radius:2px;background:var(--line-2);transition:background .25s}.step.on .step-bar{background:var(--accent)}.step-label{font-size:11px;color:var(--dim);font-weight:600;text-transform:uppercase;letter-spacing:.08em}.step.on .step-label{color:var(--text)}.custom-card{border:1px dashed var(--line-2);border-radius:var(--radius);margin-top:8px}.custom-card.open{border-style:solid;border-color:var(--accent);padding:16px;display:flex;flex-direction:column;gap:10px}.custom-trigger{width:100%;display:flex;align-items:center;gap:12px;padding:16px;font-weight:700}.plus-badge{width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:8px}.icon-pick{height:44px;border-radius:var(--radius-sm);background:var(--surface-2);font-size:20px;border:1px solid transparent;transition:border-color .15s}.icon-pick.on{border-color:var(--accent);background:#222}.preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.preset{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:4px;transition:border-color .15s,transform .1s}.preset:hover:not(:disabled){border-color:var(--line-2)}.preset:active:not(:disabled){transform:scale(.98)}.preset:disabled{opacity:.35}.preset-icon{font-size:24px;margin-bottom:4px}.preset-name{font-weight:700;font-size:14px}.preset-cat{font-size:12px;color:var(--dim)}.chosen{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;border:1px solid var(--line-2);border-radius:999px;padding:6px 16px 6px 6px}.chosen .habit-icon{width:34px;height:34px;font-size:18px}.freq-options{display:flex;flex-direction:column;gap:10px;margin-top:8px}.freq{display:flex;align-items:center;gap:14px;text-align:left;padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);transition:border-color .15s;color:var(--muted)}.freq.on{border-color:var(--accent);color:var(--text)}.freq>span:last-child{display:flex;flex-direction:column}.freq-title{font-weight:700;color:var(--text)}.freq-sub{font-size:13px;color:var(--muted)}.radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--line-2);flex-shrink:0;transition:all .15s}.freq.on .radio{border-color:var(--accent);box-shadow:inset 0 0 0 4px var(--bg);background:var(--accent)}.day-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:6px}.day{aspect-ratio:1;border-radius:50%;border:1px solid var(--line-2);font-weight:700;font-size:13px;color:var(--muted);transition:all .15s}.day.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.stepper{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:var(--radius);padding:10px;margin-top:6px}.stepper button{width:44px;height:44px;border-radius:50%;background:var(--surface-2);font-size:22px;font-weight:600}.stepper strong{font-size:22px}.summary{margin-top:14px;color:var(--muted);font-size:14px;text-align:center}.habit-card{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 14px 14px 16px;transition:border-color .2s,background .2s}.habit-card.is-done{border-color:var(--done-line);background:linear-gradient(135deg,var(--done-dim),transparent 60%),var(--surface)}.habit-card.is-off{opacity:.55}.habit-main{flex:1;display:flex;gap:12px;min-width:0}.habit-icon{width:44px;height:44px;border-radius:14px;background:var(--surface-2);display:grid;place-items:center;font-size:22px;flex-shrink:0}.habit-text{display:flex;flex-direction:column;gap:2px;min-width:0}.habit-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.habit-card.is-done .habit-name{color:var(--text)}.habit-meta{font-size:13px;color:var(--muted);display:flex;gap:10px;align-items:center}.streak{display:inline-flex;align-items:center;gap:3px;color:var(--text);font-weight:600}.week-dots{display:flex;gap:4px;margin-top:6px}.dot{width:18px;height:18px;flex-shrink:0;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;font-size:9px;font-weight:700;color:var(--dim);border:1px solid var(--line-2)}.dot-off{border-style:dashed;border-color:var(--line)}.dot-done{background:var(--done);color:#000;border-color:var(--done)}.check{width:48px;height:48px;min-width:48px;aspect-ratio:1;box-sizing:border-box;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center;color:transparent;flex-shrink:0;transition:all .2s cubic-bezier(.3,1.6,.6,1)}.check:hover{border-color:var(--muted);color:var(--dim)}.check.checked{background:var(--done);border-color:var(--done);color:#000;transform:scale(1.04);box-shadow:0 0 0 4px var(--done-dim)}.check:disabled{opacity:.6}.all-done{text-align:center;color:var(--muted);margin-top:8px;font-size:14px}.habit-row{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.add-row{display:flex;align-items:center;justify-content:center;gap:8px;height:56px;border:1px dashed var(--line-2);border-radius:var(--radius);font-weight:600;color:var(--muted);transition:color .15s,border-color .15s}.add-row:hover{color:var(--text);border-color:var(--muted)}.ring{position:relative;display:inline-grid;place-items:center;flex-shrink:0}.ring svg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ring-label{position:relative;display:flex;align-items:baseline;font-weight:800;font-size:18px}.ring-label small{font-size:11px;color:var(--muted);font-weight:700}.empty{text-align:center;padding:48px 20px;border:1px dashed var(--line-2);border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--muted)}.empty-title{color:var(--text);font-weight:800;font-size:18px}.empty .btn{margin-top:8px}.detail-head{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 0 8px}.detail-head h1{font-size:28px;font-weight:800;letter-spacing:-.02em}.detail-icon{width:76px;height:76px;border-radius:24px;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;font-size:38px;margin-bottom:8px}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat-row.four{grid-template-columns:repeat(4,1fr)}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 8px;text-align:center;display:flex;flex-direction:column;gap:2px}.stat strong{font-size:24px;font-weight:800}.stat strong small{font-size:14px;color:var(--muted)}.stat span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:12px}.why-text{font-size:17px;line-height:1.55;white-space:pre-wrap}.week-big{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.day-cell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 0;border-radius:14px;border:1px solid var(--line-2);font-size:11px;color:var(--muted);font-weight:700;transition:all .15s}.day-cell .day-num{font-size:16px;color:var(--text)}.day-cell.off{border-style:dashed;border-color:var(--line)}.day-cell.today{border-color:var(--muted)}.day-cell.on{background:var(--done);border-color:var(--done);color:#0b4d22}.day-cell.on .day-num{color:var(--on-accent)}.options{display:flex;flex-direction:column;gap:10px}.option{display:flex;align-items:center;gap:14px;padding:18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);transition:border-color .15s,transform .1s}.option:hover{border-color:var(--line-2)}.option:active{transform:scale(.99)}.option>span:last-child{display:flex;flex-direction:column;gap:2px}.option-icon{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;flex-shrink:0}.option-title{font-weight:700;font-size:16px}.option-sub{font-size:13px;color:var(--muted)}.option-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.option-primary:hover{border-color:var(--accent)}.option-primary .option-icon{border-color:#0003}.option-primary .option-sub{color:#555}.house-card,.explore-card{display:flex;align-items:center;gap:14px;padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);transition:border-color .15s}.house-card:hover{border-color:var(--line-2)}.explore-main{flex:1;display:flex;gap:14px;min-width:0;align-items:flex-start}.house-emoji{width:48px;height:48px;border-radius:16px;background:var(--surface-2);display:grid;place-items:center;font-size:24px;flex-shrink:0}.house-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.house-name{font-weight:700;font-size:16px;display:flex;align-items:center}.house-meta{font-size:13px;color:var(--muted)}.house-desc{font-size:13px;color:var(--muted);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.house-head{display:flex;align-items:center;gap:14px}.house-head .detail-icon{width:60px;height:60px;font-size:30px;margin:0;border-radius:20px}.house-head-text{flex:1;min-width:0}.house-head h1{font-size:24px;font-weight:800;letter-spacing:-.02em}.house-about{color:var(--muted);font-size:14px;white-space:pre-wrap}.invite{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px dashed var(--line-2);border-radius:var(--radius);margin-top:6px;transition:border-color .15s}.invite:hover{border-color:var(--muted)}.invite-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.invite-code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:22px;font-weight:800;letter-spacing:.22em}.invite-action{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:700}.member{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden;transition:border-color .15s}.member.open{border-color:var(--line-2)}.member-head{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left}.member-text{flex:1;display:flex;flex-direction:column;min-width:0}.member-name{font-weight:700;display:flex;align-items:center;flex-wrap:wrap}.member-meta{font-size:13px;color:var(--muted);display:block}.member-pips{display:flex;gap:3px;flex-wrap:wrap;max-width:70px;justify-content:flex-end}.pip{width:8px;height:8px;border-radius:50%;border:1px solid var(--line-2)}.pip.on{background:var(--done);border-color:var(--done)}.chev{color:var(--dim);transition:transform .2s;display:grid}.chev.rot{transform:rotate(90deg)}.member-habits{border-top:1px solid var(--line);padding:4px 14px 14px;display:flex;flex-direction:column}.mh{padding:12px 0;border-bottom:1px solid var(--line)}.mh:last-child{border-bottom:0;padding-bottom:0}.mh-top{display:flex;align-items:center;gap:8px}.mh-name{font-weight:700;flex:1}.mh-status{font-size:12px;font-weight:700;color:var(--muted);border:1px solid var(--line-2);padding:2px 8px;border-radius:999px}.mh-status.on{background:var(--done);color:#000;border-color:var(--done)}.mh-meta{font-size:12px;color:var(--muted);margin:4px 0 0 28px}.mh-why{font-size:13px;color:#bdbdbd;font-style:italic;margin:6px 0 0 28px;white-space:pre-wrap}.avatar{border-radius:50%;background:var(--surface-2);border:1px solid var(--line-2);display:inline-grid;place-items:center;font-weight:800;flex-shrink:0;letter-spacing:.02em}.feed{display:flex;flex-direction:column}.feed-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.feed-text{flex:1;font-size:14px;color:var(--muted)}.feed-text strong{color:var(--text)}.feed-time{font-size:12px;color:var(--dim);white-space:nowrap}.request{display:flex;align-items:center;gap:10px}.setting{display:flex;align-items:center;justify-content:space-between;gap:12px}.switch{width:48px;height:28px;border-radius:14px;background:var(--line-2);position:relative;transition:background .2s;flex-shrink:0}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--muted);transition:transform .2s,background .2s}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(20px);background:var(--on-accent)}.profile-head{display:flex;flex-direction:column;align-items:center;gap:4px;padding:32px 0 8px}.profile-head h1{font-size:24px;font-weight:800;margin-top:10px}@media(min-width:520px){.shell{border-left:1px solid #0d0d0d;border-right:1px solid #0d0d0d}}.check{position:relative;overflow:visible;color:var(--muted)}.check:hover{color:var(--text)}.check-thumb{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:50%;display:block}.check.checked:has(.check-thumb){background:#000;padding:0}.check-tick{position:absolute;right:-3px;bottom:-3px;width:20px;height:20px;border-radius:50%;background:var(--done);color:#000;display:grid;place-items:center;border:2px solid var(--bg)}.hint{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--dim);font-size:13px}.btn-done{background:var(--done);color:#000}.btn-done:hover:not(:disabled){background:#5cf08e}.btn-done-ghost{border:1px solid var(--done-line);color:var(--done);background:var(--done-dim)}.detail-icon.done{border-color:var(--done);box-shadow:0 0 0 4px var(--done-dim)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#000000d9;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s ease}.modal{width:100%;max-width:480px;max-height:100dvh;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:24px 24px 0 0;padding:8px 18px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;animation:rise .22s cubic-bezier(.2,.9,.3,1)}@media(min-width:520px){.modal-backdrop{align-items:center}.modal{border-radius:24px;border-bottom:1px solid var(--line)}}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(40px);opacity:0}}.modal-head{display:flex;align-items:center;justify-content:space-between;min-height:48px}.modal-title{font-weight:800;font-size:17px;display:flex;align-items:center;gap:8px}.modal-sub{text-align:center;color:var(--muted);font-size:13px}.modal-actions{display:flex;flex-direction:column;gap:10px}.proof-frame{position:relative;border-radius:var(--radius);overflow:hidden;background:#050505;border:1px solid var(--line);display:grid;place-items:center;min-height:220px}.proof-media{width:100%;max-height:58vh;object-fit:contain;display:block}.proof-badge{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:4px;background:var(--done);color:#000;font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px}.no-proof{color:var(--dim);font-size:14px;padding:40px}.progress{height:4px;border-radius:2px;background:var(--line-2);overflow:hidden}.progress span{display:block;height:100%;background:var(--done);transition:width .2s}.hero-count{display:flex;flex-direction:column;align-items:flex-end}.hero-count strong{font-size:30px;font-weight:800;line-height:1}.hero-count span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.chips{display:flex;gap:8px;overflow-x:auto;margin:0 -20px;padding:2px 20px 4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);font-size:13px;font-weight:600;color:var(--muted);transition:all .15s}.chip.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.chip-count{font-size:11px;font-weight:800;opacity:.6}.wall-group{display:flex;flex-direction:column;gap:10px}.wall-month{font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700;margin-top:8px}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.tile{position:relative;aspect-ratio:1;overflow:hidden;border-radius:10px;background:var(--surface-2)}.tile-media{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}.tile:hover .tile-media{transform:scale(1.04)}.tile-play{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:#000000a6;display:grid;place-items:center;color:#fff}.tile-label{position:absolute;left:6px;bottom:6px;display:inline-flex;align-items:center;gap:3px;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:2px 7px;border-radius:999px;font-size:11px;font-weight:700}.feed-thumb{position:relative;width:44px;height:44px;border-radius:10px;overflow:hidden;flex-shrink:0;background:var(--surface-2)}.choose-lead{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-top:2px}.source-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.source{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:16px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line);font-weight:700;font-size:14px;text-align:left;transition:border-color .15s,transform .1s}.source:hover:not(:disabled){border-color:var(--line-2)}.source:active:not(:disabled){transform:scale(.97)}.source:disabled{opacity:.5}.source-icon{width:46px;height:46px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center}.camera{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#000;display:flex;flex-direction:column;justify-content:space-between;animation:fade .15s ease}.camera-feed{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.camera-feed.mirror{transform:scaleX(-1)}@media(min-width:720px){.camera-feed{object-fit:contain}}.camera-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;pointer-events:none;animation:flash .25s ease-out forwards}@keyframes flash{0%{opacity:.85}to{opacity:0}}.camera-top{position:relative;display:flex;align-items:center;justify-content:space-between;padding:calc(14px + env(safe-area-inset-top)) 16px 14px;background:linear-gradient(to bottom,rgba(0,0,0,.55),transparent)}.cam-btn{width:44px;height:44px;border-radius:50%;background:#00000073;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;color:#fff}.cam-btn:disabled{opacity:.3}.cam-spacer{width:44px}.cam-timer{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-variant-numeric:tabular-nums;font-weight:700;font-size:14px;color:#ccc}.cam-timer.on{color:#fff}.rec-dot{width:9px;height:9px;border-radius:50%;background:#ff3b30;animation:blink 1s infinite}@keyframes blink{50%{opacity:.25}}.camera-bottom{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 16px calc(24px + env(safe-area-inset-bottom));background:linear-gradient(to top,rgba(0,0,0,.7),transparent)}.cam-hint{font-size:13px;color:#ddd;font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.6)}.cam-error{color:#fff;background:#ff5c5ce6;padding:6px 12px;border-radius:10px;font-size:13px;font-weight:600}.cam-fallback{color:#bbb;font-size:12px}.shutter{position:relative;width:88px;height:88px;display:grid;place-items:center}.shutter svg{position:absolute;top:0;right:0;bottom:0;left:0}.shutter-track{fill:none;stroke:#ffffffe6;stroke-width:5}.shutter.video .shutter-track{stroke:#ffffff59}.shutter-progress{fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .1s linear}.shutter.video:not(.recording) .shutter-progress{opacity:0}.shutter-core{width:66px;height:66px;border-radius:50%;background:#fff;transition:all .2s ease}.shutter.video .shutter-core{background:#ff3b30}.shutter.recording .shutter-core{width:30px;height:30px;border-radius:8px}.shutter:active:not(:disabled) .shutter-core{transform:scale(.9)}.shutter:disabled{opacity:.5}.camera-msg{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px;text-align:center;color:var(--muted)}.camera-msg p{color:var(--text);max-width:320px;margin-bottom:8px}.friends-row{display:flex;gap:14px;overflow-x:auto;margin:4px -20px 0;padding:4px 20px 6px;scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding-inline:20px}.friends-row::-webkit-scrollbar{display:none}.friends-row.skeleton{height:112px}.friend{flex-shrink:0;width:70px;display:flex;flex-direction:column;align-items:center;gap:4px;scroll-snap-align:start}.friend:active .pa{transform:scale(.95)}.friend-name{font-size:12px;font-weight:700;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-count{font-size:11px;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums;margin-top:-3px}.friends-empty{align-self:center;font-size:13px;color:var(--muted);max-width:220px;flex-shrink:0;white-space:normal}.pa{position:relative;display:inline-grid;place-items:center;flex-shrink:0;transition:transform .15s}.pa svg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.pa circle{transition:stroke .3s}.pa-off{stroke:#2b2b2b}.pa-on,.pa.complete .pa-on{stroke:var(--done)}.pa.complete{filter:drop-shadow(0 0 6px rgba(46,230,107,.35))}.pa.rest .pa-off{stroke-dasharray:3 5!important;stroke:#333}.pa.add{border:1.5px dashed var(--line-2);border-radius:50%;color:var(--muted)}.friend:hover .pa.add{color:var(--text);border-color:var(--muted)}.avatar{overflow:hidden}.avatar-img{width:100%;height:100%;object-fit:cover;display:block}.fs-head{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:-28px;padding-bottom:6px}.fs-head h2{font-size:22px;font-weight:800;margin-top:6px}.fs-habit{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line)}.fs-habit.done{border-color:var(--done-line)}.fs-habit .habit-icon{width:40px;height:40px;font-size:20px;background:#1d1d1d}.fs-habit .habit-text{flex:1}.avatar-edit{position:relative;cursor:pointer;border-radius:50%}.avatar-edit.busy{opacity:.5;pointer-events:none}.avatar-edit-badge{position:absolute;right:0;bottom:0;width:32px;height:32px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;border:3px solid var(--bg)}.profile-head .link-btn{margin-top:6px;color:var(--muted)}.story{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#000;display:flex;justify-content:center;animation:story-in .2s ease;touch-action:none;user-select:none;-webkit-user-select:none}@keyframes story-in{0%{opacity:0;transform:scale(.96)}}.story-stage{position:relative;width:100%;max-width:480px;height:100%;overflow:hidden;background:#000}@media(min-width:520px){.story-stage{height:calc(100% - 32px);margin-top:16px;border-radius:18px}}.story-fill{position:absolute;top:-40px;right:-40px;bottom:-40px;left:-40px;background-size:cover;background-position:center;filter:blur(30px) brightness(.45)}.story-media{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;-webkit-user-drag:none}.story-loading{position:absolute;top:50%;left:50%;width:34px;height:34px;margin:-17px;border-radius:50%;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.story-tap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;cursor:pointer}.story-top,.story-bottom{position:absolute;left:0;right:0;z-index:2;pointer-events:none}.story-top button,.story-bottom button{pointer-events:auto}.story-top{top:0;padding:calc(10px + env(safe-area-inset-top)) 12px 28px;background:linear-gradient(to bottom,rgba(0,0,0,.6),transparent)}.story-bars{display:flex;gap:4px}.story-bar{flex:1;height:2.5px;border-radius:2px;background:#ffffff4d;overflow:hidden}.story-bar span{display:block;height:100%;background:#fff;transform-origin:left}.story-head{display:flex;align-items:center;gap:10px;margin-top:12px}.story-head .avatar{border-color:#fff6}.story-who{flex:0 1 auto;margin-right:auto;display:flex;align-items:center;gap:10px;min-width:0;font-size:14px;color:#fff;text-align:left;text-shadow:0 1px 3px rgba(0,0,0,.5)}.story-who .avatar{flex-shrink:0}.story-who strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.story-who span{color:#ffffffb3;font-size:13px;white-space:nowrap}.story-paused{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#fffc}.story-btn{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:#fff}.story-btn:hover{background:#ffffff1f}.story-bottom{bottom:0;padding:60px 18px calc(22px + env(safe-area-inset-bottom));background:linear-gradient(to top,rgba(0,0,0,.8) 30%,transparent)}.story-title{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.1;display:flex;align-items:center;gap:10px;text-shadow:0 2px 8px rgba(0,0,0,.5)}.story-why{margin-top:8px;font-size:14px;color:#fffc;font-style:italic;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.story-meta{margin-top:14px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12px;font-weight:700;color:#fff}.story-meta>span{display:inline-flex;align-items:center;gap:4px}.story-done{color:var(--done)}.story-link{margin-left:auto;font-size:12px;font-weight:700;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:6px 12px}.story-link:hover{background:#ffffff1a}.full-note{margin-top:6px;padding:14px 16px;border:1px dashed var(--line-2);border-radius:var(--radius);color:var(--muted);font-size:13px;text-align:center}.appbar{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;padding-top:14px;margin-bottom:-12px}.appbar-spacer{width:42px}.appbar-logo{font-size:22px;letter-spacing:.3em;text-align:center}.bell{position:relative;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);transition:border-color .15s}.bell:hover{border-color:var(--line-2)}.bell-badge{position:absolute;top:-3px;right:-3px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--accent);color:var(--on-accent);font-size:11px;font-weight:800;display:grid;place-items:center;border:2px solid var(--bg)}.notes{display:flex;flex-direction:column}.note{display:flex;gap:12px;padding:14px 4px;border-bottom:1px solid var(--line)}.note.unread{background:linear-gradient(90deg,rgba(255,255,255,.04),transparent)}.note-avatar{position:relative;flex-shrink:0;height:42px}.note-kind{position:absolute;right:-4px;bottom:-4px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--bg);background:var(--accent);color:var(--on-accent)}.note-missed .note-kind{background:var(--danger);color:#fff}.note-body{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.note-text{font-size:14px;color:#cfcfcf;line-height:1.45}.note-text strong{color:var(--text)}.note-time{font-size:12px;color:var(--dim)}.note-action{margin-top:6px}.note-done{margin-top:6px;display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--done)}.partner-card{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;background:var(--surface)}.partner-card .eyebrow{margin-bottom:10px}.partner-rows{display:flex;flex-direction:column;gap:10px}.partner-row{display:flex;align-items:center;gap:12px}.partner-note{margin-top:12px;font-size:12px;color:var(--dim)}.tag-partner{border-color:var(--muted);color:var(--text)}.partner-line{margin-top:10px;font-size:14px;text-align:center;padding:8px 14px;border:1px solid var(--line);border-radius:999px}.partner-line-label{color:var(--muted)}.post-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.post-card{display:flex;flex-direction:column;gap:4px}.post-thumb{position:relative;aspect-ratio:9 / 16;border-radius:14px;overflow:hidden;background:var(--surface-2);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:13px;font-weight:600}.post-thumb img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.post-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;background:#0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;color:#fff}.post-play svg{fill:currentColor;margin-left:2px}.post-failed{border-style:dashed}.post-date{font-size:13px;font-weight:700;margin-top:4px}.post-meta{font-size:12px;color:var(--dim)}.spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--line-2);border-top-color:var(--text);animation:spin .8s linear infinite}.post-player{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#000;display:flex;flex-direction:column;align-items:center;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 12px calc(18px + env(safe-area-inset-bottom));animation:story-in .2s ease}.post-player-top{width:100%;max-width:480px;display:flex;align-items:center;justify-content:space-between}.post-player-title{font-weight:700;font-size:15px;padding-left:6px}.post-video-frame{flex:1;min-height:0;width:100%;container-type:size;display:grid;place-items:center}.post-video-box{position:relative;width:min(100cqw,56.25cqh);height:min(100cqh,calc(100cqw * 16 / 9))}.post-video{display:block;width:100%;height:100%;aspect-ratio:9 / 16;border-radius:14px;background:#111;object-fit:contain}.post-player-actions{display:flex;gap:10px;width:100%;max-width:480px}.post-player-actions .btn{flex:1}.section-label{font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700;margin-top:10px}.explore-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:0 -8px}.explore-tile{position:relative;aspect-ratio:9 / 16;overflow:hidden;border-radius:8px;background:var(--surface-2)}.explore-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}.explore-tile:hover img{transform:scale(1.04)}.explore-tile-label{position:absolute;left:0;right:0;bottom:0;padding:18px 8px 7px;background:linear-gradient(transparent,#000c);font-size:11px;font-weight:700;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);transition:border-color .15s}.person-row:hover{border-color:var(--line-2)}.mini-habit{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.mini-habit:last-child{border-bottom:0}.mini-habit-name{flex:1;font-weight:700;font-size:14px}.feed-section{margin-top:18px;display:flex;flex-direction:column;gap:12px}.feed-empty{padding:18px;border:1px dashed var(--line-2);border-radius:var(--radius);color:var(--muted);font-size:14px;text-align:center}.feed-post{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.feed-post-head{display:flex;align-items:center;gap:10px;padding:12px 14px}.feed-post-avatars{display:flex;flex-shrink:0}.feed-post-avatars .avatar+.avatar{margin-left:-10px}.feed-post-avatars .avatar{border:2px solid var(--surface)}.feed-post-media{display:block;width:100%;aspect-ratio:9 / 16;background:#000}.feed-post-media video{width:100%;height:100%;object-fit:cover;display:block}.modal-backdrop{z-index:95}.post-actions{display:flex;align-items:center;gap:4px;padding:6px 8px 0}.pa-btn{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:var(--text);transition:transform .12s,color .15s}.pa-btn:hover{background:#ffffff0f}.pa-btn:active{transform:scale(.9)}.pa-btn.liked{color:#ff3b5c}.pa-btn.liked svg,.pa-btn.saved svg{fill:currentColor}.pa-btn.pulse{animation:like-pop .35s ease}@keyframes like-pop{40%{transform:scale(1.3)}}.pa-spacer{flex:1}.post-summary{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:0 16px 14px;font-size:14px}.post-summary:empty{padding-bottom:8px}.post-comments-link{color:var(--muted);font-size:14px}.post-player-bar{width:100%;max-width:480px}.post-player-bar .post-actions{padding:0}.post-player-bar .post-summary{padding:0 8px}.post-player-footer{display:flex;gap:10px;margin-top:8px}.post-player-footer .btn{flex:1}.feed-stack{gap:18px}.feed-post-house{width:36px;height:36px;border-radius:12px;background:var(--surface-2);display:grid;place-items:center;font-size:18px;flex-shrink:0}.feed-post-head .member-name:hover{text-decoration:underline}.comments{max-height:50vh;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:4px 2px}.comment{display:flex;gap:10px}.comment-body{flex:1;min-width:0}.comment-body p{font-size:14px;line-height:1.4;word-wrap:break-word}.comment-meta{display:flex;gap:12px;font-size:12px;color:var(--dim);margin-top:2px}.comment-delete{color:var(--dim);font-size:12px;font-weight:600}.comment-delete:hover{color:var(--danger)}.comment-form{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:12px}.comment-form input{flex:1;background:transparent;border:0;outline:none;padding:8px 0;font-size:15px}.comment-form .link-btn{text-decoration:none}.comment-form .link-btn:disabled{opacity:.35}.share-hero{display:flex;align-items:center;gap:14px;padding:14px;border-radius:var(--radius);background:var(--accent);color:var(--on-accent);text-align:left}.share-hero:disabled{opacity:.55}.share-hero>span:last-child{display:flex;flex-direction:column}.share-hero-icon{width:46px;height:46px;border-radius:14px;background:#000;color:#fff;display:grid;place-items:center;flex-shrink:0}.share-hero-title{font-weight:800;font-size:16px}.share-hero-sub{font-size:13px;color:#444}.share-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.share-opt{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line);font-size:12px;font-weight:600;transition:border-color .15s}.share-opt:hover:not(:disabled):not(.disabled){border-color:var(--line-2)}.share-opt:disabled,.share-opt.disabled{opacity:.35;pointer-events:none}.share-opt-icon{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;font-weight:800;font-size:13px}.share-note{font-size:12px;color:var(--muted);text-align:center}.shared{max-width:480px;margin:0 auto;min-height:100vh;padding:16px 20px 32px;display:flex;flex-direction:column;gap:14px}.shared-head{display:flex;justify-content:center;padding:6px 0}.shared-head .logo{font-size:18px}.shared-title{display:flex;align-items:center;gap:12px}.shared-title .emoji{width:44px;height:44px;border-radius:14px;background:var(--surface-2);display:grid;place-items:center;font-size:22px}.shared-title>span:last-child{display:flex;flex-direction:column;font-size:15px}.shared-title .muted{font-size:13px}.shared-video{width:100%;aspect-ratio:9 / 16;border-radius:var(--radius);background:#111}.shared-msg{text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;padding:60px 0;color:var(--muted)}.picker{display:flex;flex-direction:column;gap:10px;margin-top:10px}.picker-head{display:flex;align-items:center;justify-content:space-between}.picker-head .field-label{margin:0}.picker-list{display:flex;flex-direction:column;gap:6px}.picker-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);text-align:left;transition:border-color .15s}.picker-item.on{border-color:var(--line-2)}.picker-icon{width:32px;height:32px;border-radius:10px;background:var(--surface-2);display:grid;place-items:center;font-size:16px}.picker-name{flex:1;font-weight:600;font-size:14px}.picker-item:not(.on) .picker-name{color:var(--muted)}.picker-box{width:22px;height:22px;border-radius:7px;border:1.5px solid var(--line-2);display:grid;place-items:center;color:var(--on-accent)}.picker-item.on .picker-box{background:var(--accent);border-color:var(--accent)}.picker-note{font-size:12px;color:var(--muted)}.chips.wrap{flex-wrap:wrap;overflow:visible;margin:0;padding:0}.habit-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.habit-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;background:var(--surface-2);font-size:13px;font-weight:600}.shared-with{font-size:13px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:5px 12px;margin-top:4px}.shared-with:hover{border-color:var(--line-2);color:var(--text)}.name-line{display:inline-flex;align-items:center;gap:6px;padding-left:30px}.name-pen{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--muted);transition:color .15s,background .15s}.name-pen:hover{color:var(--text);background:var(--surface-2)}.name-edit{display:flex;align-items:center;gap:4px;margin-top:10px}.name-edit input{width:220px;font-size:20px;font-weight:800;text-align:center;background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:8px 12px;outline:none}.name-save{background:var(--accent);color:var(--on-accent)}.name-save:hover{background:#e6e6e6}.name-save:disabled{opacity:.35}.locked{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:32px 20px;border:1px dashed var(--line-2);border-radius:var(--radius);color:var(--muted);font-size:14px}.locked strong{color:var(--text);font-size:16px}.locked-icon{font-size:28px;filter:grayscale(1)}.camera-viewfinder{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(100vw,56.25dvh);aspect-ratio:9 / 16;overflow:hidden;background:#000}.camera-viewfinder .camera-feed{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}@media(min-width:720px){.camera-viewfinder .camera-feed{object-fit:cover}}.crop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 12px calc(18px + env(safe-area-inset-bottom));gap:12px;animation:fade .15s ease}.crop-top{width:100%;max-width:480px;display:flex;align-items:center;justify-content:space-between;gap:8px}.crop-title{font-weight:800;font-size:15px}.crop-frame{position:relative;height:min(70dvh,calc((100vw - 24px) * 16 / 9));aspect-ratio:9 / 16;overflow:hidden;border-radius:14px;background:#111;touch-action:none;cursor:grab;outline:2px solid #fff;outline-offset:0}.crop-frame:active{cursor:grabbing}.crop-frame-square{height:auto;width:min(calc(100vw - 24px),420px,62dvh);aspect-ratio:1;border-radius:0;outline:none}.crop-circle{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;pointer-events:none;box-shadow:0 0 0 9999px #0009;outline:2px solid #fff}.crop-media{position:absolute;left:0;top:0;max-width:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}.crop-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(to right,transparent 33.2%,rgba(255,255,255,.25) 33.3%,transparent 33.5%,transparent 66.5%,rgba(255,255,255,.25) 66.6%,transparent 66.8%),linear-gradient(to bottom,transparent 33.2%,rgba(255,255,255,.25) 33.3%,transparent 33.5%,transparent 66.5%,rgba(255,255,255,.25) 66.6%,transparent 66.8%)}.crop-bottom{width:100%;max-width:360px;display:flex;flex-direction:column;align-items:center;gap:10px}.crop-zoom{width:100%;accent-color:#fff}.proof-916,.cropped{position:relative;height:min(52vh,460px);aspect-ratio:9 / 16;overflow:hidden;border-radius:12px;background:#000}.proof-916>video{width:100%;height:100%;object-fit:cover;display:block}.cropped>video{position:absolute;object-fit:fill;max-width:none}.row-2{display:flex;gap:10px}.row-2 .btn{flex:1}[data-theme=light]{--bg: #fff;--surface: #f7f7f7;--surface-2: #efefef;--line: #e6e6e6;--line-2: #d4d4d4;--text: #000;--muted: #6b6b6b;--dim: #9a9a9a;--accent: #000;--on-accent: #fff;--danger: #d92d2d;--done: #16a34a;--done-dim: rgba(22, 163, 74, .12);--done-line: rgba(22, 163, 74, .45);color-scheme:light}[data-theme=light] .tabbar{background:#fffffff5}[data-theme=light] .btn-primary:hover:not(:disabled),[data-theme=light] .name-save:hover{background:#2a2a2a}[data-theme=light] .btn-danger{border-color:#f2c4c4}[data-theme=light] .btn-danger:hover{background:#fff1f1}[data-theme=light] .flow-footer{background:linear-gradient(to top,var(--bg) 70%,transparent)}[data-theme=light] .icon-pick.on{background:#e4e4e4}[data-theme=light] .option-primary .option-icon{border-color:#ffffff4d}[data-theme=light] .option-primary .option-sub{color:#bdbdbd}[data-theme=light] .mh-why{color:#555}[data-theme=light] .shell{border-color:#f0f0f0}[data-theme=light] .modal-backdrop{background:#00000073}[data-theme=light] .pa-off{stroke:#dcdcdc}[data-theme=light] .pa-on{stroke:var(--done)}[data-theme=light] .pa.rest .pa-off{stroke:#cfcfcf}[data-theme=light] .fs-habit .habit-icon{background:#e8e8e8}[data-theme=light] .note.unread{background:linear-gradient(90deg,rgba(0,0,0,.04),transparent)}[data-theme=light] .note-text{color:#333}[data-theme=light] .pa-btn:hover{background:#0000000f}[data-theme=light] .share-hero-icon{background:#fff;color:#000}[data-theme=light] .share-hero-sub{color:#bdbdbd}[data-theme=light] .proof-frame{background:#111}[data-theme=light] .dot-done,[data-theme=light] .check.checked,[data-theme=light] .check-tick,[data-theme=light] .mh-status.on,[data-theme=light] .btn-done,[data-theme=light] .proof-badge{color:#fff}[data-theme=light] .btn-done:hover:not(:disabled){background:#12863c}[data-theme=light] .day-cell.on{color:#dcfce7}[data-theme=light] .check-tick{border-color:var(--bg)}[data-theme=light] .story,[data-theme=light] .post-player,[data-theme=light] .camera,[data-theme=light] .crop{--bg: #000;--surface: #0c0c0c;--surface-2: #151515;--line: #222;--line-2: #333;--text: #fff;--muted: #8c8c8c;--dim: #5a5a5a;--accent: #fff;--on-accent: #000;--done: #2ee66b;color:var(--text);color-scheme:dark}[data-theme=light] .post-player .pa-btn:hover{background:#ffffff14}.theme-toggle{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);color:var(--text);transition:border-color .15s,transform .2s}.theme-toggle:hover{border-color:var(--line-2)}.theme-toggle:active{transform:rotate(20deg) scale(.95)}.habit-photo{display:inline-grid;place-items:center;overflow:hidden;flex-shrink:0;vertical-align:middle}.habit-photo img{width:100%;height:100%;object-fit:cover;display:block}.habit-photo.inline{width:1.25em;height:1.25em;border-radius:6px;margin-right:1px}.habit-photo.habit-icon,.habit-photo.picker-icon,.habit-photo.detail-icon{padding:0}.icon-photo{display:grid;place-items:center;overflow:hidden;color:var(--muted);border:1px dashed var(--line-2);cursor:pointer}.icon-photo img{width:100%;height:100%;object-fit:cover}.icon-photo.on{border-style:solid}.icon-photo.busy{opacity:.5;pointer-events:none}.auth-or{display:flex;align-items:center;gap:12px;color:var(--dim);font-size:13px;margin:6px 0 2px}.auth-or:before,.auth-or:after{content:"";flex:1;height:1px;background:var(--line)}.google-btn{display:flex;justify-content:center;min-height:44px;color-scheme:normal;background:transparent}.google-btn iframe{color-scheme:normal;background:transparent!important}.test-note{font-size:13px;color:var(--text);background:var(--surface-2);border:1px dashed var(--line-2);border-radius:var(--radius-sm);padding:10px 12px}.auth-lead{text-align:center;color:var(--muted);font-size:15px}.test-note code{font-size:12px;background:var(--surface);padding:1px 5px;border-radius:4px}.ring-btn{display:flex;flex-direction:column;align-items:center;gap:4px;transition:transform .15s;flex-shrink:0}.hero-ring-count{font-size:12px;color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums}.hero-ring-count strong{color:var(--text);font-weight:800}.ring-btn:not(.ring-idle):hover{transform:scale(1.05)}.ring-btn:not(.ring-idle):active{transform:scale(.96)}.ring-btn.ring-idle{cursor:default}.ring-btn:disabled{opacity:1}.house-photo-edit{position:relative;cursor:pointer;display:inline-block;flex-shrink:0}.house-photo-edit.busy{opacity:.5;pointer-events:none}.house-photo-edit .avatar-edit-badge{width:26px;height:26px;right:-4px;bottom:-4px;border-width:2px}.habit-photo.detail-icon,.habit-photo.house-emoji{padding:0}.habit-photo.shared-house,.emoji.shared-house{width:44px;height:44px;border-radius:14px;background:var(--surface-2);display:grid;place-items:center;font-size:22px}label.btn.busy{opacity:.5;pointer-events:none}.delete-list{margin:0;padding-left:18px;color:var(--text);font-size:14px;line-height:1.5;display:flex;flex-direction:column;gap:4px}.profile-head{position:relative}.profile-settings{position:absolute;top:8px;right:-8px;color:var(--muted)}.profile-settings:hover{color:var(--text)}.settings-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--bg);overflow-y:auto;animation:fade .15s ease}.settings-inner{max-width:480px;margin:0 auto;padding:calc(8px + env(safe-area-inset-top)) 20px calc(32px + env(safe-area-inset-bottom))}.settings-head{display:flex;align-items:center;justify-content:space-between;min-height:56px;margin:0 -8px 12px}.settings-head h1{font-size:18px;font-weight:800}.settings-head-spacer{width:40px}.settings-eyebrow{margin:4px 0 12px}.comments-panel{padding:0 16px 14px;display:flex;flex-direction:column;gap:10px;animation:fade .15s ease}.comments-panel .comments{max-height:320px;padding:2px 0}.comments-panel .comment-form{padding-top:10px}.post-player-bar .comments-panel{padding:0 8px 4px}.post-player-bar .comments-panel .comments{max-height:28vh}.comments-panel.dark .comment-form{border-top-color:#ffffff24}.pa-btn.active svg{fill:currentColor}.follow-req-actions{display:inline-flex;gap:8px;flex-shrink:0}.note-body .follow-req-actions{margin-top:8px}.follow-req-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.follow-req-note{margin:0 0 6px}.privacy-note,.only-me-btn{margin-top:10px}.only-me-btn.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.house-name-line{display:flex;align-items:center;gap:4px;min-width:0}.house-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.house-name-line .name-pen{flex-shrink:0}.house-name-edit{margin-top:0;margin-bottom:2px}.house-name-edit input{width:100%;min-width:0;flex:1;font-size:18px;text-align:left;padding:6px 10px}.house-about-editable{display:flex;align-items:flex-start;gap:4px}.house-about-editable>span{flex:1;min-width:0}.house-about-editable .name-pen{flex-shrink:0;margin-top:-4px}.about-add{display:block;margin-top:12px;color:var(--muted)}.about-edit{margin-top:12px;display:flex;flex-direction:column;gap:8px}.about-edit textarea{width:100%;resize:vertical;min-height:76px;background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:10px 12px;font:inherit;font-size:15px;color:var(--text);outline:none}.about-edit-bar{display:flex;align-items:center;gap:8px}.about-edit-bar .muted{flex:1}.stat-link{color:inherit;text-decoration:none;transition:border-color .15s,background .15s}.stat-link:hover{border-color:var(--line-2);background:var(--surface-2)}.stat-link:active{transform:scale(.98)}.follow-list{margin-top:16px}.follow-list-actions{display:inline-flex;gap:8px;flex-shrink:0}.follow-list .member-text{flex:1;min-width:0}.follow-list .member-name,.follow-list .member-meta{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.follow-list-actions .btn-sm{padding-left:12px;padding-right:12px}.subtabs{display:flex;gap:22px;margin-top:14px;border-bottom:1px solid var(--line)}.subtabs button{padding:10px 2px;font-weight:700;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.subtabs button.on{color:var(--text);border-bottom-color:var(--text)}.subtab-count{font-weight:600;color:var(--muted);margin-left:2px}.subtabs+.follow-list,.subtabs~.follow-list{margin-top:14px}.next-post{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.next-post>svg{flex:none}.next-post-time{font-variant-numeric:tabular-nums}.next-post .spinner{display:inline-block;vertical-align:-3px;margin-right:6px}body.overlay-open .tabbar{visibility:hidden}.story-note{margin-top:8px;font-size:15px;line-height:1.4;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.proof-note{text-align:center;font-size:15px;line-height:1.4;overflow-wrap:anywhere}.proof-note-input{width:100%;min-height:0;resize:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;font-size:16px;line-height:1.4;outline:none;transition:border-color .15s}.proof-note-input:focus{border-color:var(--accent)}.habit-amount{white-space:nowrap}.habit-amount.reached,.proof-amount.reached,.amount-value.reached{color:var(--done)}.proof-amount{text-align:center;font-size:15px;font-weight:700}.story-amount{margin-top:8px;font-size:15px;font-weight:700;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6)}.story-amount.reached{color:var(--done)}.target-goals,.target-picker .stepper{margin-top:10px}.amount-picker{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.amount-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:14px}.amount-label{font-weight:700}.amount-value{font-weight:700;font-variant-numeric:tabular-nums}.amount-picker.empty .amount-value{color:var(--muted);font-weight:500}.amount-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.target-now{margin-top:4px;font-size:17px;font-weight:700}.target-card .target-hit{color:var(--done)}.modal .target-picker{margin-top:4px}.note-quote{display:block;margin-top:3px;color:var(--muted);overflow-wrap:anywhere}.push-banner{display:flex;align-items:flex-start;gap:12px;padding:14px;margin-bottom:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.push-banner.on{align-items:center;color:var(--done);border-color:var(--done-line);background:var(--done-dim);font-weight:600;font-size:14px}.push-banner-icon{flex-shrink:0;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent)}.push-banner-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--muted);line-height:1.4}.push-banner-text>strong{font-size:15px;color:var(--text)}.push-banner-actions{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:8px}@media(max-width:380px){.push-banner{flex-wrap:wrap}.push-banner-actions{flex-direction:row;width:100%;justify-content:flex-end}}.amount-entry{display:flex;align-items:stretch;gap:10px}.amount-step{flex-shrink:0;width:52px;border-radius:var(--radius-sm);border:1px solid var(--line-2);font-size:24px;font-weight:600;color:var(--text);background:var(--bg)}.amount-step:disabled{opacity:.35}.amount-box{flex:1;min-width:0;display:flex;align-items:center;gap:6px;height:52px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--line-2);background:var(--bg);transition:border-color .15s}.amount-box:focus-within{border-color:var(--accent)}.amount-box input{flex:1;min-width:0;width:100%;border:0;outline:none;background:none;color:var(--text);font-size:22px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.amount-box input::placeholder{color:var(--dim)}.amount-unit{flex:1;color:var(--muted);font-size:16px;font-weight:600}.viewer-extra{display:flex;flex-direction:column;gap:6px}.tile-label{max-width:calc(100% - 12px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#fff}.feed-post-frame{position:relative}.post-house-hit{position:absolute;left:0;right:0;top:0;height:10.5%;z-index:2;background:transparent;border:0;cursor:pointer}.post-house-link{display:inline-flex;align-items:center;gap:8px;min-width:0;padding:6px 10px 6px 6px;border-radius:999px;color:#fff;font-size:15px}.post-house-link strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.post-house-link .habit-photo{width:28px;height:28px;flex-shrink:0}.post-house-link .emoji{font-size:20px}.house-people{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 10px;justify-content:center;flex-wrap:wrap}.house-person{display:flex;flex-direction:column;align-items:center;gap:4px;width:64px;color:var(--text)}.house-person-name{font-size:12px;font-weight:600;max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.house-person-host{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.house-profile-head{display:flex;align-items:center;gap:14px;margin:6px 0 14px}.house-profile-head .detail-icon{width:64px;height:64px;font-size:34px;flex-shrink:0;margin:0}.house-profile-text{flex:1;min-width:0}.house-profile-text h1{font-size:22px;line-height:1.2;overflow-wrap:anywhere;margin:0}.people-list{display:flex;flex-direction:column;gap:2px}.person-row{display:flex;align-items:center;gap:12px;padding:8px 4px;color:var(--text);border-radius:var(--radius-sm)}.person-text{flex:1;min-width:0;display:flex;flex-direction:column}.person-text strong,.person-text span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.dp-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#000000e0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;animation:dp-in .18s ease;cursor:zoom-out}.dp-viewer img{width:min(86vw,420px);height:min(86vw,420px);border-radius:50%;object-fit:cover;box-shadow:0 10px 40px #0009;-webkit-touch-callout:none}.dp-viewer-name{color:#fff;font-size:18px;font-weight:700}@keyframes dp-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable],.why-text,.proof-note,.comment-body,.house-about{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}img{-webkit-touch-callout:none}.note-hyul{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--done-dim);color:var(--done);border:1px solid var(--done-line)}.intro{max-width:480px;margin:0 auto;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.intro-top{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 0}.intro-top .logo{font-size:15px}.intro-login{font-weight:700;font-size:14px;color:var(--muted);padding:8px 4px}.intro-login:hover{color:var(--text)}.intro-track{flex:1;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.intro-track::-webkit-scrollbar{display:none}.intro-slide{flex:0 0 100%;scroll-snap-align:center;display:flex;flex-direction:column;justify-content:center;gap:12px;padding:12px 24px 8px}.intro-art{display:flex;flex-direction:column;justify-content:center;align-items:center;margin-bottom:28px}.intro-body{color:var(--muted);font-size:16px}.intro-footer{padding:16px 24px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:18px}.dots{display:flex;justify-content:center;gap:8px}.intro-dot{width:7px;height:7px;border-radius:999px;background:var(--line-2);transition:width .25s,background .25s}.intro-dot.on{width:22px;background:var(--text)}.art-phone{width:200px;border:1px solid var(--line-2);border-radius:28px;padding:10px;background:var(--surface);box-shadow:0 30px 80px #ffffff0f}.art-frame{aspect-ratio:9 / 16;border-radius:20px;background:#111;position:relative;overflow:hidden}.art-frame video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.art-rec{position:absolute;bottom:14px;left:50%;width:44px;height:44px;margin-left:-22px;border-radius:50%;border:3px solid #fff;box-shadow:inset 0 0 0 4px #000,inset 0 0 0 30px #fff;animation:art-pulse 2s ease-in-out infinite}@keyframes art-pulse{50%{transform:scale(.88)}}.art-habit{display:flex;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;border-radius:14px;background:var(--surface-2);font-weight:700;font-size:14px}.art-check{margin-left:auto;width:32px;height:32px;border-radius:50%;background:var(--done);color:#000;display:grid;place-items:center;animation:art-pop 3s ease-in-out infinite}.art-check path{stroke-dasharray:1;stroke-dashoffset:1;animation:art-tick 3s ease-out infinite}@keyframes art-pop{0%,10%{transform:scale(0)}20%{transform:scale(1.15)}26%,92%{transform:scale(1)}to{transform:scale(0)}}@keyframes art-tick{0%,22%{stroke-dashoffset:1}34%,to{stroke-dashoffset:0}}.art-house{display:flex;flex-direction:column;align-items:center;gap:22px;width:100%}.art-rings{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.art-person .ring{background:#000;border-radius:50%}.art-person{display:flex;flex-direction:column;align-items:center;gap:6px}.art-face{width:48px;height:48px;border-radius:50%;object-fit:cover;display:block}.art-name{font-size:12px;font-weight:600;color:var(--muted)}.art-person:nth-child(odd){transform:translateY(-10px)}.art-housename{display:inline-flex;align-items:center;gap:10px;padding:10px 20px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);font-weight:800;font-size:18px;letter-spacing:-.01em}.art-toasts{display:flex;flex-direction:column;gap:10px;width:100%;max-width:340px;min-height:150px}.art-toast{display:flex;align-items:flex-end;gap:8px;max-width:86%;opacity:0;transition:opacity .35s ease,transform .45s cubic-bezier(.2,1.3,.4,1)}.art-toast.left{align-self:flex-start;transform:translate(-16px) scale(.96);transform-origin:bottom left}.art-toast.right{align-self:flex-end;flex-direction:row-reverse;transform:translate(16px) scale(.96);transform-origin:bottom right}.art-toast.in{opacity:1;transform:none}.art-toast-face{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.art-bubble{padding:10px 14px;border-radius:18px;font-size:14px;line-height:1.35;background:var(--surface-2);border:1px solid var(--line-2)}.art-toast.left .art-bubble{border-bottom-left-radius:6px}.art-toast.right .art-bubble{border-bottom-right-radius:6px}.art-post{position:relative}.art-grid{width:200px;aspect-ratio:9 / 16;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#111;border-radius:18px;border:1px solid var(--line-2)}.art-panel{border-radius:10px;background:#111;position:relative;overflow:hidden}.art-panel video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.art-label{position:absolute;left:7px;right:7px;bottom:7px;display:flex;flex-direction:column;line-height:1.15;text-shadow:0 1px 4px rgba(0,0,0,.9),0 0 2px rgba(0,0,0,.9)}.art-label b{font-size:12px;font-weight:800}.art-label small{font-size:9px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(prefers-reduced-motion:reduce){.art-rec,.art-check,.art-check path{animation:none}.art-toast{transition:opacity .2s;transform:none}.art-check path{stroke-dashoffset:0}}.onb-head{display:flex;align-items:center;gap:12px;padding:12px 0 4px}.onb-progress{flex:1;height:4px;border-radius:999px;background:var(--line);overflow:hidden}.onb-progress span{display:block;height:100%;background:var(--text);border-radius:inherit;transition:width .35s ease}.onb .flow-body{animation:onb-in .3s ease}@keyframes onb-in{0%{opacity:0;transform:translate(12px)}}.onb-label{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600;margin-top:18px}.onb-more{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-weight:600;font-size:14px;align-self:flex-start;padding:6px 0}.onb-more:hover{color:var(--text)}.onb-hint{font-size:13px;color:var(--muted);text-align:center}.goal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.goal{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);text-align:left;transition:border-color .15s,background .15s,transform .1s}.goal:active{transform:scale(.98)}.goal.on{border-color:var(--text);background:var(--surface-2)}.goal-icon{font-size:26px}.goal-label{font-weight:700;font-size:15px}.goal-tick{position:absolute;top:12px;right:12px;width:22px;height:22px;border-radius:50%;background:var(--text);color:var(--on-accent);display:grid;place-items:center}.pick{display:flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);text-align:left;transition:border-color .15s,background .15s}.pick.on{border-color:var(--text);background:var(--surface-2)}.pick-name{flex:1;font-weight:700}.pick-box{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line-2);display:grid;place-items:center;flex-shrink:0}.pick.on .pick-box{background:var(--text);border-color:var(--text);color:var(--on-accent)}.pact{border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);overflow:hidden}.pact-habits{padding:8px 16px}.pact-habit{display:flex;align-items:center;gap:10px;padding:10px 0;font-weight:700;border-bottom:1px solid var(--line)}.pact-habit:last-child{border-bottom:0}.pact-habit .habit-photo{width:22px;height:22px}.pact-freq{margin-left:auto;font-size:13px;color:var(--muted);font-weight:600}.pact-rules{list-style:none;margin:0;padding:14px 16px;background:var(--surface-2);display:flex;flex-direction:column;gap:12px;font-size:14px}.pact-rules li{display:flex;gap:10px;align-items:flex-start}.pact-rules svg{flex-shrink:0;margin-top:1px;color:var(--muted)}.hold{position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:none}.hold-fill{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;transform-origin:left;transform:scaleX(var(--p, 0))}.hold-text{position:relative;color:#fff;mix-blend-mode:difference}.hold.holding,.hold:disabled{opacity:1}.notif-stack{display:flex;flex-direction:column;gap:10px}.notif{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line);font-size:14px}.notif span:last-child{color:var(--muted)}.notif-app{font-size:11px;font-weight:800;letter-spacing:.2em;color:var(--dim);margin-bottom:2px}.notif:nth-child(2){opacity:.75;transform:scale(.98)}.notif:nth-child(3){opacity:.5;transform:scale(.96)}.onb .flow-footer{background:#000}.onb .flow-footer:before{content:"";position:absolute;left:0;right:0;top:-28px;height:28px;background:linear-gradient(to top,#000,transparent);pointer-events:none}.art-pact{width:100%;max-width:330px;padding:22px 22px 20px;border-radius:22px;background:linear-gradient(170deg,#161616,#0b0b0b);border:1px solid var(--line-2);box-shadow:0 30px 80px #ffffff0d;transform:rotate(-1deg)}.art-pact-eyebrow{font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.art-pact-quote{position:relative;margin:14px 0 20px;padding-top:26px;font-size:27px;font-weight:900;line-height:1.12;letter-spacing:-.025em;text-wrap:balance}.art-pact-quote:before{content:"“";position:absolute;top:-12px;left:-3px;font-family:Georgia,Times New Roman,serif;font-size:76px;line-height:1;font-weight:700;color:var(--dim)}.art-sigs{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}.art-sig{display:flex;flex-direction:column;gap:6px;border-top:0}.art-sig-line{height:38px;display:flex;align-items:flex-end;border-bottom:1px solid var(--line-2);overflow:visible}.art-sig-ink{font-family:Segoe Script,Snell Roundhand,Brush Script MT,Dancing Script,cursive;font-size:21px;line-height:1;padding:0 2px 4px;white-space:nowrap;transform:rotate(-4deg);transform-origin:left bottom;clip-path:inset(-20px 0 -20px 0)}.art-pact.go .art-sig-ink{clip-path:inset(-20px 100% -20px 0);animation:art-sign .8s cubic-bezier(.5,0,.3,1) forwards;animation-delay:calc(.4s + var(--i) * .8s)}@keyframes art-sign{to{clip-path:inset(-20px 0 -20px 0)}}.art-sig-who{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}.art-sig-who img{width:18px;height:18px;border-radius:50%;object-fit:cover}.art-sig.you .art-sig-here{height:38px;display:flex;align-items:flex-end;padding-bottom:6px;border-bottom:1px dashed var(--text);font-size:13px;font-weight:700;color:var(--text)}.art-pact.go .art-sig.you .art-sig-here{animation:art-blink 1.2s ease-in-out 3.1s infinite}@keyframes art-blink{50%{opacity:.35}}.art-sig-you{width:18px;height:18px;border-radius:50%;border:1px dashed var(--muted);display:grid;place-items:center;font-size:12px;line-height:1}@media(prefers-reduced-motion:reduce){.art-pact.go .art-sig-ink{animation:none;clip-path:none}.art-pact.go .art-sig.you .art-sig-here{animation:none}}.pact-card{margin-top:14px;padding:18px 18px 16px;border-radius:20px;background:linear-gradient(170deg,#161616,#0b0b0b);border:1px solid var(--line-2)}.pact-card-lg{margin-top:10px;padding:22px 20px 18px;transform:rotate(-.6deg);transition:transform .4s ease,box-shadow .4s ease}.pact-card-lg.sealed{transform:none;box-shadow:0 0 0 1px var(--text),0 30px 80px #ffffff14}.pact-eyebrow{font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.pact-quote{position:relative;margin:10px 0 14px;padding-top:22px;font-size:21px;font-weight:900;line-height:1.15;letter-spacing:-.02em;text-wrap:balance}.pact-card-lg .pact-quote{font-size:25px;padding-top:26px}.pact-quote:before{content:"“";position:absolute;top:-12px;left:-2px;font-family:Georgia,Times New Roman,serif;font-size:60px;line-height:1;font-weight:700;color:var(--dim)}.pact-card-lg .pact-quote:before{font-size:72px}.pact-sigs{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin-bottom:6px}.pact-sig{display:flex;flex-direction:column;gap:4px;min-width:0;text-align:left}.pact-sig .sig{width:100%;height:42px;border-bottom:1px solid var(--line-2)}.pact-who{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pact-sign-here{cursor:pointer}.pact-here{height:42px;display:flex;align-items:flex-end;padding-bottom:6px;border-bottom:1px dashed var(--text);font-size:13px;font-weight:700;animation:art-blink 1.4s ease-in-out infinite}.pact-plus{width:18px;height:18px;border-radius:50%;border:1px dashed var(--muted);display:grid;place-items:center;font-size:12px;line-height:1}.pact-waiting{font-size:12px;color:var(--dim);margin-top:8px}.pact-edit{width:100%;resize:vertical;padding:12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line-2);font-weight:700}.sig{display:block;overflow:visible}.sig path{fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.sig-anim path{stroke-dasharray:1;stroke-dashoffset:1;animation-name:sig-write;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes sig-write{to{stroke-dashoffset:0}}.sigpad{margin-top:10px}.sigpad-area{width:100%;height:auto;aspect-ratio:3 / 1;border-radius:14px;background:#ffffff08;border:1px dashed var(--line-2);touch-action:none;cursor:crosshair}.sigpad-area path{stroke-width:3}.sigpad-foot{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;color:var(--muted);min-height:24px}.sigpad-x{font-weight:800;color:var(--dim)}.sigpad-hint{flex:1}.sigpad-clear{font-weight:700;color:var(--text)}.pact-mine{margin-top:6px;display:flex;flex-direction:column;gap:6px}.pact-mine .sig{width:100%;height:auto;aspect-ratio:3 / 1;animation:pact-stamp .5s ease}.pact-seal{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:var(--text);color:var(--on-accent);font-size:12px;font-weight:800;letter-spacing:.04em;animation:pact-stamp .45s cubic-bezier(.2,1.4,.4,1) .15s both}@keyframes pact-stamp{0%{opacity:0;transform:scale(1.25)}}@media(prefers-reduced-motion:reduce){.sig-anim path{animation:none;stroke-dashoffset:0}.pact-here,.pact-mine .sig,.pact-seal{animation:none}}.test-note a{text-decoration:underline;font-weight:700}.signin{flex:1;display:flex;flex-direction:column;min-height:calc(100vh - 60px);min-height:calc(100dvh - 60px);padding:8px 0 calc(20px + env(safe-area-inset-bottom));animation:onb-in .3s ease}.signin-art{flex:1;display:grid;place-items:center;min-height:170px}.days{display:grid;grid-template-columns:repeat(7,18px);gap:12px}.days span{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line-2);animation:day-fill 5.6s ease-in-out infinite;animation-delay:calc(var(--i) * .11s)}@keyframes day-fill{0%,6%{background:transparent;border-color:var(--line-2);transform:scale(.85)}12%{background:#fff;border-color:#fff;transform:scale(1.15)}16%,78%{background:#fff;border-color:#fff;transform:scale(1)}90%,to{background:transparent;border-color:var(--line-2);transform:scale(.85)}}.signin-quote{position:relative;margin:0;padding:34px 0 0;text-align:center;font-size:36px;font-weight:900;line-height:1.05;letter-spacing:-.035em;text-wrap:balance}.signin-quote:before{content:"“";position:absolute;top:-10px;left:50%;transform:translate(-50%);font-family:Georgia,Times New Roman,serif;font-size:72px;line-height:1;font-weight:700;color:var(--dim)}.signin-quote span{display:block;color:var(--muted)}.signin-bottom{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:14px;padding-top:28px}.signin-lead{text-align:center;color:var(--muted);font-size:14px;text-wrap:balance}.signin-lead b{color:var(--text)}.auth-embedded .auth-form{gap:12px}@media(prefers-reduced-motion:reduce){.days span{animation:none;background:#fff;border-color:#fff}.days span:nth-child(n+8){background:transparent;border-color:var(--line-2)}}.sched{padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;gap:12px}.sched-head{display:flex;align-items:center;gap:12px}.sched-name{flex:1;font-weight:700;min-width:0}.sched-sum{font-size:13px;color:var(--muted);font-weight:600;white-space:nowrap}.sched .chip{height:32px;padding:0 12px;font-size:12px}.sched-times{display:flex;align-items:center;justify-content:space-between;padding:4px;border-radius:999px;border:1px solid var(--line-2)}.sched-times .icon-btn{font-size:22px;font-weight:600}.sched-times .icon-btn:disabled{opacity:.3}.sched-times span{font-size:14px;color:var(--muted)}.sched-times b{color:var(--text);font-size:16px}.sched-days{display:flex;justify-content:space-between;gap:6px}.sched-day{flex:1;aspect-ratio:1;max-width:40px;border-radius:50%;border:1px solid var(--line-2);font-size:13px;font-weight:700;color:var(--muted);transition:all .15s}.sched-day.on{background:var(--text);color:var(--on-accent);border-color:var(--text)}.landing{height:100vh;height:100dvh;display:grid;place-items:center;background:#000}.landing .logo{animation:landing-in .6s ease both}@keyframes landing-in{0%{opacity:0;transform:scale(.96);letter-spacing:.5em}}.intro-enter{animation:intro-fade .45s ease both}@keyframes intro-fade{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.landing .logo,.intro-enter{animation:none}}
