:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#050505;--panel:#0b0b0c;--panel-soft:#111113;--border:#2a2a2d;--text:#f5f5f5;--muted:#8f8f95;--muted-strong:#b7b7bd;--track:#252525;--fill:#f7f7f7;--accent:#fff;--danger:#ff756f;--shadow:0 24px 70px #00000073}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f2f2f0;--panel:#fff;--panel-soft:#f7f7f5;--border:#dadad5;--text:#101010;--muted:#737373;--muted-strong:#4a4a4a;--track:#dfdfdc;--fill:#111;--accent:#111;--danger:#bf3b36;--shadow:0 24px 70px #0000001f}*{box-sizing:border-box}html{background:var(--bg);min-height:100%}body{background:var(--bg);min-width:320px;min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Avenir Next,Helvetica Neue,Helvetica,system-ui,sans-serif;font-weight:400}body:before{content:"";z-index:1;pointer-events:none;background:radial-gradient(at 30% 0,#ffffff17,#0000 70%);width:100vw;height:max(260px,45vw);position:fixed;top:0;left:0}#root{z-index:2;min-height:100vh;position:relative}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}main{width:min(720px,100%);padding:calc(env(safe-area-inset-top) + 92px) 14px 96px;margin:0 auto}.public-legal-page{width:min(760px,100%);padding-top:calc(env(safe-area-inset-top) + 28px)}.public-legal-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.public-legal-brand{font-size:30px}.public-home-link{flex:none}.landing-page{width:100%;min-height:100vh;padding:calc(env(safe-area-inset-top) + 26px) clamp(18px, 4vw, 56px) 30px;flex-direction:column;gap:clamp(70px,9vw,112px);display:flex}.landing-controls{top:calc(env(safe-area-inset-top) + 18px);z-index:9;align-items:center;gap:8px;display:inline-flex;position:absolute;right:clamp(16px,3vw,34px)}.landing-icon-button{border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 82%, transparent);width:44px;height:44px;color:var(--muted-strong);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:999px;place-items:center;padding:0;display:grid;box-shadow:0 12px 34px #0000002e}.landing-icon-button:hover{color:var(--text);border-color:color-mix(in srgb, var(--border) 52%, var(--text))}.landing-icon-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.landing-language-menu{position:relative}.landing-language-options{border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 96%, var(--bg));min-width:136px;box-shadow:var(--shadow);border-radius:16px;gap:4px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.landing-language-options button{width:100%;color:var(--text);text-align:left;background:0 0;border:0;border-radius:11px;padding:10px 12px;font-size:14px;font-weight:750}.landing-language-options button:hover,.landing-language-options button.selected{background:color-mix(in srgb, var(--text) 10%, transparent)}.landing-header{justify-content:center;padding:6px 104px 0;display:flex}.landing-brand{color:var(--text);letter-spacing:-.055em;align-items:center;gap:10px;font-family:ui-rounded,SF Pro Rounded,Avenir Next,system-ui,sans-serif;font-size:clamp(32px,5vw,46px);font-weight:900;display:inline-flex}.landing-brand .logo-mark{width:clamp(32px,5vw,44px);height:clamp(32px,5vw,44px)}.landing-hero{text-align:center;justify-items:center;gap:30px;width:min(920px,100%);margin:0 auto;display:grid}.landing-hero-copy{justify-items:center;gap:28px;display:grid}.landing-hero h1{letter-spacing:-.055em;text-wrap:balance;max-width:720px;margin:0;font-size:48px;font-weight:820;line-height:.96}.landing-hero p{max-width:640px;color:var(--muted-strong);text-wrap:balance;margin:0;font-size:clamp(16px,1.8vw,19px);font-weight:460;line-height:1.5}.landing-cta-row{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:2px;display:flex}.app-store-button{--download-border-color:#fff;background:var(--accent);min-height:58px;color:var(--bg);box-shadow:var(--shadow);isolation:isolate;border:0;border-radius:999px;justify-content:center;align-items:center;gap:12px;padding:0 24px;font-size:16px;font-weight:800;display:inline-flex;position:relative}:root[data-theme=light] .app-store-button{--download-border-color:#111}.app-store-button:before{content:"";z-index:-1;border-radius:inherit;background:conic-gradient(from var(--download-border-angle), transparent 0deg, transparent 286deg, color-mix(in srgb, var(--download-border-color) 20%, transparent) 314deg, var(--download-border-color) 338deg, color-mix(in srgb, var(--download-border-color) 24%, transparent) 356deg, transparent 360deg);animation:4.2s linear infinite downloadBorderSpin;position:absolute;inset:-3px}.app-store-button:hover{transform:translateY(-1px)}.app-store-button svg{fill:currentColor;width:22px;height:22px}.landing-hero .habit-preview-carousel{margin-top:18px}.landing-features{gap:30px;width:min(1040px,100%);margin:0 auto;display:grid}.landing-features h2{text-align:center;letter-spacing:-.055em;margin:0;font-size:clamp(34px,4.5vw,52px);font-weight:800;line-height:1}.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.feature-card{border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 90%, transparent);text-align:center;border-radius:22px;align-content:center;justify-items:center;gap:16px;min-height:130px;padding:18px 16px;display:grid;box-shadow:0 18px 44px #00000029}.feature-icon{border:1px solid color-mix(in srgb, var(--border) 70%, var(--text));background:var(--panel-soft);width:48px;height:48px;color:var(--text);border-radius:16px;place-items:center;display:grid}.feature-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:25px;height:25px}.feature-card h3{letter-spacing:-.025em;max-width:220px;margin:0;font-size:19px;font-weight:720;line-height:1.18}.landing-footer{width:min(1040px,100%);color:var(--muted);justify-content:space-between;align-items:center;gap:18px;margin:auto auto 0;padding-top:12px;font-size:14px;font-weight:650;display:flex}.landing-footer p{margin:0}.landing-footer a{border:1px solid var(--border);color:var(--muted-strong);border-radius:999px;padding:10px 14px}.landing-footer a:hover{color:var(--text);border-color:color-mix(in srgb, var(--border) 55%, var(--text))}.app-header{z-index:6;width:min(720px,100% - 28px);padding:calc(env(safe-area-inset-top) + 18px) 0 30px;justify-content:space-between;align-items:center;margin-bottom:0;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%)}.app-header:before,.detail-topbar:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(to bottom, var(--bg) 0%, color-mix(in srgb, var(--bg) 92%, transparent) 56%, transparent 100%);position:absolute;inset:0 -14px -34px}.brand{letter-spacing:-.05em;align-items:center;gap:8px;font-family:ui-rounded,SF Pro Rounded,Avenir Next,system-ui,sans-serif;font-size:30px;font-weight:900;display:inline-flex}.logo-mark{color:currentColor;flex:none;width:28px;height:28px;display:block}.header-actions{justify-content:flex-end;align-items:center;gap:10px;margin-left:auto;display:inline-flex}.streak-total-counter{border:1px solid color-mix(in srgb, #ffb84d 48%, var(--border));background:linear-gradient(100deg, color-mix(in srgb, var(--bg) 88%, transparent) 0%, color-mix(in srgb, #ffb84d 18%, var(--bg)) 58%, color-mix(in srgb, #ffb84d 32%, var(--bg)) 100%);color:#ffd18a;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-width:72px;height:42px;padding:0 13px;font-weight:800;display:inline-flex;position:relative;overflow:visible;box-shadow:0 10px 28px #0003}:root[data-theme=light] .streak-total-counter{border-color:color-mix(in srgb, #c46a00 48%, var(--border));background:linear-gradient(100deg, color-mix(in srgb, #fff7e8 78%, var(--bg)) 0%, color-mix(in srgb, #f5a623 20%, var(--bg)) 58%, color-mix(in srgb, #f18a00 30%, var(--bg)) 100%);color:#b85b00;box-shadow:0 10px 28px #b85b0029}.streak-total-counter.increasing{animation:.42s cubic-bezier(.2,.9,.2,1) streakTagPop}.streak-total-number{font-variant-numeric:tabular-nums;min-width:1.2ch;line-height:1}.streak-total-flame{filter:drop-shadow(0 0 8px #ffb84d59);line-height:1}.streak-sparks{pointer-events:none;display:block;position:absolute;inset:0}.streak-sparks span{opacity:0;background:#ffd18a;border-radius:50%;width:5px;height:5px;animation:.52s ease-out forwards streakSparkBurst;position:absolute;top:50%;right:13px}.streak-sparks span:first-child{--x:-6px;--y:-25px;animation-delay:0s}.streak-sparks span:nth-child(2){--x:15px;--y:-18px;background:#ff9f1c;animation-delay:28ms}.streak-sparks span:nth-child(3){--x:22px;--y:2px;animation-delay:54ms}.streak-sparks span:nth-child(4){--x:4px;--y:19px;background:#ffcf66;animation-delay:18ms}.streak-sparks span:nth-child(5){--x:-16px;--y:10px;background:#fff0b8;animation-delay:42ms}.icon-button{border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 72%, transparent);width:58px;height:48px;color:var(--muted-strong);border-radius:999px;place-items:center;display:grid}.icon-button svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:23px;height:23px}.icon-button:hover{color:var(--text);border-color:color-mix(in srgb, var(--border) 55%, var(--text))}.icon-button.selected{background:var(--accent);border-color:var(--accent);color:var(--bg)}.detail-topbar{z-index:6;width:min(720px,100% - 28px);padding:calc(env(safe-area-inset-top) + 18px) 0 30px;grid-template-columns:auto 1fr;align-items:start;gap:10px;margin-bottom:0;display:grid;position:fixed;top:0;left:50%;transform:translate(-50%)}.detail-topbar .app-header{width:auto;margin-bottom:0;padding:0;position:static;transform:none}.detail-topbar .app-header:before{display:none}.detail-page{transform-origin:50% 72px;animation:.28s cubic-bezier(.2,.8,.2,1) detailZoomIn}.habit-list{gap:14px;display:grid}.habit-card,.panel,.form-panel,.detail-hero{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:22px}.habit-card{padding:22px}.card-main{justify-content:space-between;align-items:center;gap:18px;display:flex}h1,h2,p{margin-top:0}.habit-card h2{letter-spacing:-.035em;margin-bottom:8px;font-size:21px;font-weight:650}.habit-card p,.muted-text{color:var(--muted);margin-bottom:0;font-weight:500}.card-progress{margin-top:26px}.journey-meta,.section-head{color:var(--muted-strong);justify-content:space-between;align-items:center;gap:16px;display:flex}.journey-meta strong{color:var(--text);font-size:14px;font-weight:650}.journey-meta span,.section-head span{color:var(--muted);font-weight:600}.card-progress .journey-meta>span,.preview-progress .journey-meta>span{white-space:nowrap;flex:none;font-size:14px}.progress-track{background:var(--track);border-radius:999px;width:100%;height:6px;margin-top:13px;position:relative;overflow:visible}.progress-fill{background:var(--fill);border-radius:inherit;min-width:3px;height:100%;transition:width .25s;position:relative;overflow:hidden}.progress-fill.muted{background:#747474}.progress-particles{pointer-events:none;width:1px;height:1px;position:absolute;top:50%;overflow:visible;transform:translate(-1px,-50%)}.progress-particles span{width:var(--size);height:var(--size);opacity:0;background:#ffffffeb;border-radius:50%;animation:1.45s ease-out infinite progressParticle;position:absolute;top:0;left:0;box-shadow:0 0 7px #ffffffb3}.progress-particles span:first-child{--size:3px;--x:7px;--y:-10px;animation-delay:0s}.progress-particles span:nth-child(2){--size:2px;--x:12px;--y:-4px;animation-delay:.18s}.progress-particles span:nth-child(3){--size:4px;--x:9px;--y:7px;animation-delay:.36s}.progress-particles span:nth-child(4){--size:2px;--x:16px;--y:2px;animation-delay:.54s}.progress-particles span:nth-child(5){--size:3px;--x:5px;--y:11px;animation-delay:.72s}.progress-particles span:nth-child(6){--size:2px;--x:14px;--y:-12px;animation-delay:.9s}.validation-button{--ring:0deg;width:76px;height:76px;color:var(--text);background:conic-gradient(var(--accent) var(--ring), var(--track) 0);border:0;border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.validation-button:after{content:"";background:var(--panel);border-radius:50%;position:absolute;inset:6px}.validation-button.ready:after{background:var(--accent)}.validation-status-icon{z-index:1;width:42px;height:34px;position:relative}.validation-status-icon .result-option circle{fill:#26262a}.validation-status-icon .result-option-separator{fill:#fff}.validation-button:not(.ready) .validation-status-icon .result-option-separator{fill:#050505}.validation-status-icon .result-option path{fill:none;stroke:#fff;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.validation-badge{z-index:2;background:var(--danger);color:#fff;border-radius:999px;place-items:center;min-width:28px;height:28px;padding:0 7px;font-size:12px;font-weight:700;display:grid;position:absolute;top:-10px;right:-12px}.fab{z-index:5;isolation:isolate;background:var(--accent);width:66px;height:66px;color:var(--bg);box-shadow:var(--shadow);border-radius:50%;place-items:center;font-size:0;display:grid;position:fixed;bottom:22px;right:22px}.fab-plus{width:26px;height:26px;display:block;position:relative}.fab-plus:before,.fab-plus:after{content:"";background:currentColor;border-radius:999px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fab-plus:before{width:26px;height:3px}.fab-plus:after{width:3px;height:26px}.fab.attention:before{content:"";z-index:-1;border:2px solid color-mix(in srgb, var(--accent) 72%, transparent);border-radius:inherit;animation:1.8s cubic-bezier(.2,.7,.2,1) infinite fabPing;position:absolute;inset:-1px}.fab.attention{animation:1.8s ease-in-out infinite fabAttention}.empty-state{text-align:center;place-content:center;min-height:62vh;display:grid}.empty-state h1{letter-spacing:-.045em;max-width:560px;margin:0 auto 42px;line-height:1.08}.empty-state h1 span{display:block}.empty-title-intro{color:var(--muted-strong);letter-spacing:-.025em;margin-bottom:7px;font-size:22px;font-weight:500}.empty-title-outro{font-size:34px;font-weight:720}.habit-preview-carousel{perspective:900px;width:min(560px,100vw - 40px);height:258px;margin:0 auto;position:relative}.preview-habit-card{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow);text-align:left;transform-origin:bottom;border-radius:22px;padding:22px;transition:transform .65s cubic-bezier(.22,.75,.2,1),opacity .65s;position:absolute;inset:0;overflow:hidden}.preview-habit-card.is-front{z-index:3}.preview-habit-card.is-front.is-exiting{opacity:0;filter:blur(2px);transition:transform .24s cubic-bezier(.22,.75,.2,1),opacity .24s,filter .24s;transform:translateY(-72px)scale(.97)}.preview-habit-card.is-back-1{z-index:2;opacity:.78;transform:translateY(12px)scale(.96)}.preview-habit-card.is-back-2{z-index:1;opacity:.42;transform:translateY(24px)scale(.92)}.habit-preview-carousel.is-transitioning .preview-habit-card.is-back-1{opacity:1;transition:transform .65s cubic-bezier(.22,.75,.2,1),opacity;transform:translateY(0)scale(1)}.preview-card-main{justify-content:space-between;align-items:center;gap:18px;display:flex}.preview-habit-card h2{letter-spacing:-.035em;margin-bottom:8px;font-size:21px;font-weight:650}.preview-habit-card p{color:var(--muted);margin-bottom:0;font-weight:500}.preview-validation{background:var(--accent);width:66px;height:66px;color:var(--bg);border-radius:50%;flex:none;place-items:center;display:grid}.preview-validation svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:29px;height:29px}.preview-progress{margin-top:25px}.preview-dots{z-index:4;gap:7px;display:flex;position:absolute;bottom:-48px;left:50%;transform:translate(-50%)}.preview-dots span{background:var(--muted);opacity:.4;border-radius:999px;width:5px;height:5px;transition:width .3s,opacity .3s}.preview-dots span.active{background:var(--text);opacity:1;width:18px}.form-panel,.panel,.detail-hero{padding:22px}.form-panel{gap:18px;display:grid}.settings-selector{gap:12px;display:grid}.custom-select-field{color:var(--muted-strong);gap:8px;font-weight:600;display:grid;position:relative}.custom-select-label{display:block}.custom-select-trigger{border:1px solid var(--border);background:var(--panel-soft);width:100%;min-height:58px;color:var(--text);text-align:left;font:inherit;border-radius:16px;outline:none;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 18px;font-weight:700;transition:border-color .18s,background .18s,box-shadow .18s;display:grid}.custom-select-trigger.without-icon{grid-template-columns:minmax(0,1fr) auto}.custom-select-trigger.open,.custom-select-trigger:focus-visible{border-color:var(--accent);background:color-mix(in srgb, var(--panel-soft) 78%, var(--accent));box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent)}.custom-select-icon,.custom-select-option-icon{width:22px;height:22px;color:var(--muted-strong);place-items:center;display:grid}.custom-select-icon svg,.custom-select-option-icon svg,.custom-select-caret svg,.custom-select-check svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.custom-select-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.custom-select-caret{width:28px;height:28px;color:var(--muted-strong);border-radius:999px;justify-self:end;place-items:center;transition:transform .18s,background .18s;display:grid}.custom-select-trigger.open .custom-select-caret{background:color-mix(in srgb, var(--text) 8%, transparent);transform:rotate(180deg)}.custom-select-menu{z-index:20;border:1px solid var(--border);background:color-mix(in srgb, var(--panel) 96%, var(--bg));border-radius:18px;gap:6px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);left:0;right:0;box-shadow:0 18px 44px #00000061}.custom-select-option{width:100%;min-height:52px;color:var(--text);text-align:left;font:inherit;background:0 0;border:0;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;font-weight:700;display:grid}.custom-select-option.without-icon{grid-template-columns:minmax(0,1fr) auto}.custom-select-option.selected{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--text)}.custom-select-option:hover,.custom-select-option:focus-visible{background:color-mix(in srgb, var(--text) 8%, transparent);outline:none}.custom-select-check{width:24px;height:24px;color:var(--accent);justify-self:end;place-items:center;display:grid}label{min-width:0;color:var(--muted-strong);gap:8px;font-weight:600;display:grid}input,select,textarea{border:1px solid var(--border);background:var(--panel-soft);width:100%;min-width:0;max-width:100%;color:var(--text);border-radius:16px;outline:none;padding:14px 15px}textarea{resize:vertical;min-height:110px}.inline-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.segmented,.weekday-grid{flex-wrap:wrap;gap:8px;display:flex}.segmented button,.weekday-grid button,.archive-row button,.text-button{border:1px solid var(--border);background:var(--panel-soft);color:var(--text);border-radius:999px;padding:10px 14px;font-weight:600}.segmented .selected,.weekday-grid .selected{background:var(--accent);color:var(--bg)}.recurrence-toggle{border:1px solid var(--border);background:var(--panel-soft);border-radius:999px;grid-template-columns:1fr 1fr;gap:4px;width:100%;padding:4px;display:grid}.recurrence-toggle button{background:0 0;border:0;width:100%;min-height:48px}.weekday-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;width:100%;display:grid}.weekday-grid button{aspect-ratio:1;border-radius:50%;place-items:center;width:100%;padding:0;font-size:14px;display:grid}.weekday-grid button.weekend{background:color-mix(in srgb, var(--panel-soft) 82%, var(--text))}.weekday-grid button.weekend.selected{background:var(--accent)}.progress-start-setting{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:18px;padding-top:20px;display:flex}.progress-start-setting h2{margin-bottom:4px;font-size:18px;font-weight:650}.progress-start-setting p,.progress-start-date p{color:var(--muted);margin-bottom:0;line-height:1.45}.progress-start-date{gap:10px;min-width:0;display:grid}.progress-start-date p{font-size:14px}.primary-button{background:var(--accent);color:var(--bg);border:0;border-radius:18px;padding:15px 18px;font-weight:700}.link-button{text-align:center}.form-error{color:#ff9b9b;margin:-4px 0 0;font-weight:650}.detail-hero{background:color-mix(in srgb, var(--panel) 96%, var(--text));justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.detail-hero h1{letter-spacing:-.045em;margin-bottom:8px;font-size:34px;font-weight:650}.goal-type-label{text-transform:capitalize}.record-tag{border:1px solid color-mix(in srgb, var(--muted) 28%, var(--border));background:color-mix(in srgb, var(--muted) 10%, transparent);width:fit-content;color:var(--muted-strong);border-radius:999px;margin-top:10px;padding:7px 10px;font-size:13px;font-weight:650;display:inline-block}.title-edit-row{align-items:flex-start;gap:4px;display:flex}.title-edit-row.editing{margin-bottom:14px}.title-edit-row h1{margin-bottom:8px}.edit-title-icon{width:22px;height:22px;color:var(--muted);background:0 0;border:0;place-items:center;padding:0;display:grid;transform:translateY(2px)}.edit-title-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.edit-title-icon:hover{color:var(--text)}.title-edit-input{border:0;border-bottom:1px solid var(--border);width:min(100%,420px);color:var(--text);letter-spacing:-.045em;background:0 0;border-radius:0;padding:0 0 10px;font-size:34px;font-weight:650}.journey{gap:24px;margin-bottom:14px;display:grid}.journey .journey-meta strong{font-size:14px}.journey-row .journey-meta strong{color:var(--muted)}.journey-row.active .journey-meta strong{color:var(--text)}.journey-row.done .progress-track{background:var(--muted);height:2px}.journey-row.done .progress-fill{background:var(--muted);min-width:0}.journey-row{min-width:0}.journey-step-title{align-items:center;gap:8px;min-width:0;display:flex}.journey-step-title strong{align-items:center;gap:7px;min-width:0;display:inline-flex}.step-status-icon{width:18px;height:18px;color:inherit;vertical-align:-3px;border:1.5px solid;border-radius:5px;flex:none;place-items:center;display:inline-grid}.step-status-icon.completed{background:currentColor;border-color:currentColor}.step-status-icon svg{fill:none;width:13px;height:13px;stroke:var(--bg);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.journey-row.active .step-status-icon.completed{color:var(--text)}.step-info-button{border:1px solid color-mix(in srgb, var(--muted) 52%, var(--border));width:21px;height:21px;color:var(--muted);background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;font-size:12px;font-weight:750;line-height:1;transition:color .18s,border-color .18s,background .18s;display:grid}.step-info-button:hover{border-color:var(--muted-strong);background:color-mix(in srgb, var(--muted) 12%, transparent);color:var(--text)}.active-step-insight{isolation:isolate;background:color-mix(in srgb, var(--border) 80%, transparent);border-radius:16px;margin-top:18px;padding:1px;position:relative;overflow:hidden}.active-step-insight:before{content:"";z-index:0;aspect-ratio:1;filter:drop-shadow(0 0 5px #ffffff6b);pointer-events:none;background:conic-gradient(#0000 0deg 292deg,#ffffff0a 310deg,#ffffff7a 330deg,#fff 342deg,#ffffff24 354deg,#0000 360deg);width:190%;animation:9s linear infinite journeyBorderOrbit;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(0)}.active-step-insight-content{z-index:1;background:color-mix(in srgb, var(--panel-soft) 96%, var(--panel));border-radius:15px;padding:15px 16px;position:relative}.active-step-insight p{color:var(--muted-strong);margin:0;font-size:14px;line-height:1.55}.upcoming-steps-toggle{width:100%;color:var(--muted);background:0 0;border:0;justify-content:center;align-items:center;gap:7px;margin-top:12px;padding:8px 10px 0;font-size:13px;font-weight:650;display:flex}.upcoming-steps-toggle:hover{color:var(--text)}.upcoming-steps-toggle svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;transition:transform .2s}.upcoming-steps-toggle svg.expanded{transform:rotate(180deg)}.step-info-backdrop{animation:.18s ease-out stepBackdropIn}.step-info-modal{border:1px solid var(--border);background:var(--panel);border-radius:26px;width:min(460px,100%);padding:28px;animation:.24s cubic-bezier(.2,.8,.2,1) stepModalIn;position:relative;box-shadow:0 26px 70px #0000006b}.step-info-modal h2{letter-spacing:-.03em;margin:14px 38px 12px 0;font-size:25px}.step-info-modal>p:last-child{color:var(--muted-strong);margin:0;line-height:1.6}.step-info-close{border:1px solid var(--border);background:var(--panel-soft);width:34px;height:34px;color:var(--muted);border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:18px;right:18px}.step-info-close:hover{color:var(--text)}.step-info-close svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:16px;height:16px}.timeline-box{max-height:360px;padding:24px 0;overflow:hidden auto;-webkit-mask-image:linear-gradient(#0000 0,#000 34px calc(100% - 34px),#0000 100%);mask-image:linear-gradient(#0000 0,#000 34px calc(100% - 34px),#0000 100%)}.timeline-item{width:100%;color:inherit;text-align:left;background:0 0;border:0;grid-template-columns:34px minmax(0,1fr);gap:14px;padding:0 0 22px;display:grid;position:relative}.timeline-item.editable{cursor:pointer}.timeline-item.editable:hover .timeline-dot{transform:scale(1.04)}.timeline-item.editable:hover strong{color:var(--text)}.timeline-item:disabled{cursor:default;opacity:1}.timeline-item:before{content:"";background:var(--muted);width:2px;position:absolute;top:31px;bottom:0;left:14px}.timeline-item.segment-to-missed:before{background:repeating-linear-gradient(to bottom, var(--muted) 0 5px, transparent 5px 10px)}.timeline-item.last:before{display:none}.timeline-dot{background:var(--accent);width:30px;height:30px;color:var(--bg);border-radius:50%;place-items:center;font-weight:700;transition:transform .18s;display:grid}.timeline-item p{max-width:100%;color:var(--muted);overflow-wrap:anywhere;word-break:break-word;white-space:normal;margin:5px 0 0}.streak-tag{border:1px solid color-mix(in srgb, #ffb84d 42%, var(--border));color:#ffd18a;background:#ffb84d29;border-radius:999px;width:fit-content;margin-top:8px;padding:6px 10px;font-size:13px;font-weight:700;display:block}.series-separator{background:color-mix(in srgb, var(--border) 70%, transparent);width:calc(100% - 48px);height:1px;margin:-8px 0 22px 48px;display:block}.danger-zone{margin-top:14px}.danger-zone button{border:1px solid var(--border);width:100%;color:var(--muted);background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:9px;padding:13px 16px;font-weight:650;display:inline-flex}.danger-zone button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.danger-zone button:hover{color:var(--text);border-color:color-mix(in srgb, var(--border) 55%, var(--text))}.archive-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.archive-row div{gap:8px;display:flex}.modal-backdrop{z-index:10;background:#000000b8;place-items:center;padding:22px;display:grid;position:fixed;inset:0;overflow-y:auto}.validation-flow{gap:20px;width:min(420px,100%);margin:auto 0;display:grid}.validation-habit-preview{z-index:4;background:color-mix(in srgb, var(--panel) 96%, var(--text));padding:18px 22px;position:relative;box-shadow:0 20px 56px #00000061}.validation-habit-preview .card-progress{margin-top:18px}.validation-modal{--stack-gap:12px;width:100%;min-height:350px;padding-bottom:38px;position:relative}.stack-card{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);transform-origin:top;border-radius:28px;position:absolute;inset:0 0 38px}.back-two{z-index:0;opacity:1;transform:translateY(calc(10% + 24px))scale(.9)}.back-one{z-index:1;transform:translateY(calc(5% + var(--stack-gap))) scale(.95);opacity:1}.stack-card.active{z-index:2;gap:14px;min-height:312px;padding:24px;display:grid;position:relative;inset:auto}.modal-period-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin:0;font-size:12px;font-weight:700}.date-tag{border:1px solid color-mix(in srgb, var(--muted) 32%, var(--border));background:color-mix(in srgb, var(--muted) 18%, transparent);width:fit-content;color:var(--text);white-space:nowrap;border-radius:999px;margin:0;padding:7px 11px;font-size:14px;font-weight:650}.validation-note{border:0;border-bottom:1px solid var(--border);min-height:38px;max-height:150px;color:var(--text);resize:none;background:0 0;border-radius:0;padding:0 0 9px;line-height:1.35;overflow:hidden}.validation-note:focus{border-bottom-color:color-mix(in srgb, var(--accent) 55%, var(--border))}.modal-actions{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modal-actions button{background:var(--accent);min-height:68px;color:var(--bg);border:0;border-radius:22px;font-size:30px;position:relative;overflow:hidden;container-type:inline-size}.modal-actions button:before{color:#0505050d;letter-spacing:-.09em;white-space:nowrap;place-items:center;font-size:clamp(40px,35cqw,58px);font-weight:900;line-height:1;display:grid;position:absolute;inset:-2px 0}.modal-actions .missed-action:before{content:"OOPS"}.modal-actions .positive-action:before{content:"DONE"}.modal-action-emoji{z-index:1;display:block;position:relative}.confirm-modal{border:1px solid var(--border);background:var(--panel);border-radius:30px;width:min(420px,100%);padding:28px;box-shadow:0 26px 70px #00000061}.confirm-modal h2{margin:12px 0;font-size:28px}.confirm-actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;display:grid}.confirm-actions button{min-height:56px}.confirm-danger-button{border:1px solid var(--border);background:var(--text);color:var(--bg);border-radius:999px;font-weight:750}@media (width<=520px){main{padding-inline:12px}.brand{font-size:28px}.header-actions{gap:8px}.streak-total-counter{min-width:62px;height:38px;padding:0 10px;font-size:14px}.habit-card{padding:18px}.validation-button{width:66px;height:66px}.empty-state{place-content:start center;min-height:68vh;padding-top:16vh}.empty-state h1{margin-bottom:34px}.empty-title-intro{font-size:18px}.empty-title-outro{font-size:29px}.habit-preview-carousel{height:224px}.preview-habit-card{padding:18px}.preview-habit-card h2{max-width:210px;font-size:18px}.preview-habit-card p{font-size:14px}.preview-validation{width:54px;height:54px}.preview-progress{margin-top:22px}.detail-hero{display:grid}}@media (width<=760px){.landing-page{padding:calc(env(safe-area-inset-top) + 22px) 16px 24px;gap:58px}.landing-header{justify-content:center;padding:0 96px}.landing-brand{font-size:31px}.landing-brand .logo-mark{width:30px;height:30px}.landing-hero{gap:26px;padding-top:12px}.landing-hero h1{max-width:620px;font-size:clamp(38px,10vw,48px)}.landing-hero p{font-size:17px}.app-store-button{width:min(100%,320px);min-height:56px}.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feature-card{min-height:112px;padding:16px 14px}.landing-footer{flex-direction:column;align-items:flex-start}}@media (width<=520px){.landing-page{padding-inline:14px}.landing-controls{top:calc(env(safe-area-inset-top) + 14px);right:14px}.landing-icon-button{width:40px;height:40px}.landing-hero .habit-preview-carousel{width:min(560px,100vw - 28px)}.feature-grid{grid-template-columns:1fr}.feature-card{text-align:left;grid-template-columns:auto minmax(0,1fr);align-content:center;place-items:center start;min-height:96px}.feature-card h3{max-width:none}.landing-footer{text-align:center;align-items:center}.landing-footer a{order:-1}}@media (prefers-reduced-motion:reduce){.preview-habit-card,.preview-dots span{transition:none}.fab.attention,.fab.attention:before,.active-step-insight:before,.step-info-backdrop,.step-info-modal{animation:none}.upcoming-steps-toggle svg{transition:none}}@keyframes journeyBorderOrbit{0%{transform:translate(-50%,-50%)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)}}@keyframes stepBackdropIn{0%{opacity:0}}@keyframes stepModalIn{0%{opacity:0;transform:translateY(8px)scale(.975)}}@keyframes fabPing{0%{opacity:.75;transform:scale(1)}75%,to{opacity:0;transform:scale(1.55)}}@keyframes fabAttention{0%,to{transform:scale(1)}48%{transform:scale(1.04)}}@keyframes detailZoomIn{0%{opacity:0;filter:blur(6px);transform:scale(.965)translateY(10px)}to{opacity:1;filter:blur();transform:scale(1)translateY(0)}}@keyframes streakTagPop{0%{transform:scale(1)}45%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes streakSparkBurst{0%{opacity:0;transform:translateY(-50%)scale(.45)}18%{opacity:1}to{opacity:0;transform:translate(var(--x), calc(var(--y) - 50%)) scale(1.15)}}@keyframes progressParticle{0%{opacity:0;transform:translate(0)scale(.55)}18%{opacity:.95}to{opacity:0;transform:translate(var(--x), var(--y)) scale(1.1)}}@property --download-border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes downloadBorderSpin{to{--download-border-angle:360deg}}.journey-head{flex-direction:column;align-items:flex-start;gap:4px}.journey-head h2{margin-bottom:0}.profile-panel{gap:24px}.profile-actions{gap:10px;display:grid}.profile-action-button{background:var(--accent);width:100%;color:var(--bg);text-align:center;border:0;border-radius:999px;padding:17px 18px;font-weight:700}.profile-action-button.disabled{border:1px solid var(--border);background:var(--panel-soft);color:var(--muted);opacity:.65}.support-panel{gap:14px}.support-panel h1{margin-bottom:0}.support-explanation{color:var(--muted-strong);margin-bottom:22px;line-height:1.5}.support-form{gap:16px;display:grid}.support-form textarea{min-height:150px}.support-form .primary-button:disabled{cursor:default;opacity:.45}.notifications-panel{gap:22px}.notification-permission-card,.notification-setting{justify-content:space-between;align-items:center;gap:18px;display:flex}.notification-permission-card{border:1px solid var(--border);background:var(--panel-soft);border-radius:20px;padding:18px}.notification-permission-card .eyebrow{margin-bottom:5px}.secondary-button{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:999px;padding:11px 14px;font-weight:650}.secondary-button:disabled{cursor:default;opacity:.45}.notification-setting{border-top:1px solid var(--border);padding-top:20px}.notification-setting h2{margin-bottom:5px;font-size:18px}.notification-setting p,.notification-help{color:var(--muted);margin:0;line-height:1.5}.notification-time input{max-width:180px}.notification-time input:disabled,.toggle-switch:disabled{cursor:default;opacity:.45}.privacy-policy{gap:22px;line-height:1.55}.privacy-policy h1{margin-bottom:0}.privacy-policy section{gap:8px;display:grid}.privacy-policy h2{letter-spacing:-.025em;margin:0;font-size:19px}.privacy-policy p{color:var(--muted-strong);margin-bottom:0}.privacy-policy a{color:var(--text);text-underline-offset:3px;text-decoration:underline}.notification-help{font-size:14px}@media (width<=520px){.notification-permission-card{flex-direction:column;align-items:flex-start}.notification-permission-card .secondary-button{width:100%}}.privacy-policy{gap:16px}.privacy-policy p{color:var(--muted);line-height:1.65}.profile-brand{border-top:1px solid var(--border);letter-spacing:-.055em;justify-content:center;align-items:center;gap:12px;padding-top:10px;font-family:ui-rounded,SF Pro Rounded,Avenir Next,system-ui,sans-serif;font-size:38px;font-weight:900;display:flex}.profile-brand .logo-mark{width:36px;height:36px}.debug-setting{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:18px;padding-top:20px;display:flex}.debug-setting h2{margin-bottom:4px;font-size:18px;font-weight:650}.debug-setting p{color:var(--muted);margin-bottom:0}.toggle-switch{border:1px solid var(--border);background:var(--panel-soft);border-radius:999px;flex:none;width:64px;height:38px;padding:3px}.toggle-switch span{background:var(--muted);border-radius:50%;width:30px;height:30px;transition:transform .2s,background .2s;display:block}.toggle-switch.enabled{background:var(--accent);border-color:var(--accent)}.toggle-switch.enabled span{background:var(--bg);transform:translate(26px)}.debug-ribbon{color:var(--muted);margin:-8px 0 14px;font-size:13px;font-weight:700}.debug-floating-controls{z-index:4;gap:8px;display:flex;position:fixed;bottom:27px;right:98px}.debug-floating-controls button{border:1px solid var(--border);background:var(--panel);color:var(--text);box-shadow:var(--shadow);border-radius:999px;padding:12px 13px;font-weight:700}@media (width<=520px){.debug-floating-controls{bottom:30px;right:88px}.debug-floating-controls button{padding:10px 11px;font-size:13px}}.validation-modal.celebrating .stack-card.active{animation:.42s cubic-bezier(.2,.9,.2,1) validationPop}.validation-modal.evaporating .stack-card.active{animation:.56s cubic-bezier(.18,.8,.2,1) forwards cardEvaporate}.validation-modal.evaporating .back-one{animation:.64s cubic-bezier(.22,.75,.2,1) forwards stackOnePromote}.validation-modal.evaporating .back-two{animation:.64s cubic-bezier(.22,.75,.2,1) forwards stackTwoPromote}.positive-action{font-size:34px!important}.confetti-burst{pointer-events:none;border-radius:28px;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.confetti-burst span{color:#ffd166;font-size:18px;animation:.46s ease-out forwards confettiPop;position:absolute}.confetti-burst span:first-child{--x:-92px;--y:-96px;color:#ffd166}.confetti-burst span:nth-child(2){--x:86px;--y:-82px;color:#8be9fd}.confetti-burst span:nth-child(3){--x:-112px;--y:10px;color:#ff7ab6}.confetti-burst span:nth-child(4){--x:108px;--y:18px;color:#7cff9b}.confetti-burst span:nth-child(5){--x:-42px;--y:-128px;color:#c8b6ff}.confetti-burst span:nth-child(6){--x:48px;--y:-132px;color:#ff9f1c}@keyframes validationPop{0%{transform:scale(1)}45%{transform:scale(1.025)}to{transform:scale(1)}}@keyframes cardEvaporate{0%{opacity:1;filter:blur();transform:translateY(0)scale(1)}45%{opacity:.72;filter:blur(3px);transform:translateY(-10px)scale(.985)}to{opacity:0;filter:blur(12px);transform:translateY(-28px)scale(.94)}}@keyframes stackOnePromote{to{transform:translateY(0)scale(1)}}@keyframes stackTwoPromote{to{transform:translateY(calc(5% + 12px))scale(.95)}}@keyframes confettiPop{0%{opacity:0;transform:translateY(20px)scale(.4)rotate(0)}20%{opacity:1}to{opacity:0;transform:translate(var(--x), var(--y)) scale(1.05) rotate(160deg)}}@media (width<=380px){main{padding-inline:10px}.form-panel,.panel,.detail-hero{padding-inline:18px}.inline-fields{gap:10px}}
