:root{--bg:#0f0f14;--bg-elevated:#15151b;--panel:#1a1a22;--panel-2:#23232d;--panel-3:#2b2b37;--border:#33333f;--border-soft:#292933;--text:#f0f0f2;--muted:#9696a3;--muted-2:#6f6f7d;--accent:#c9873f;--accent-strong:#e0a460;--accent-ink:#201406;--accent-2:#8b6fd9;--danger:#e0574f;--danger-ink:#2a0d0b;--good:#52b787;--good-ink:#0a1f15;--radius-sm:8px;--radius:14px;--radius-lg:20px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--shadow-card:0 1px 2px #0000004d, 0 8px 24px -12px #00000080;--shadow-raised:0 4px 12px #00000059, 0 16px 40px -16px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}body{background:radial-gradient(120% 100% at 50% 0%, #17171f 0%, var(--bg) 55%);min-height:100vh}::selection{background:color-mix(in srgb, var(--accent) 35%, transparent)}.login-screen{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:24px;display:flex}.login-card{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow-raised);flex-direction:column;gap:14px;padding:32px 28px;display:flex}.login-card h1{text-align:center;letter-spacing:.02em;margin:0 0 4px;font-size:22px;font-weight:700}.login-mark{background:linear-gradient(145deg, var(--accent-strong), var(--accent));width:52px;height:52px;color:var(--accent-ink);box-shadow:0 6px 20px -6px color-mix(in srgb, var(--accent) 60%, transparent);border-radius:16px;justify-content:center;align-items:center;margin:0 auto 4px;display:flex}input,textarea,select,button{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:11px 13px;font-family:inherit;font-size:15px;transition:border-color .15s,background .15s,transform .1s}textarea{resize:vertical;min-height:64px}input::placeholder,textarea::placeholder{color:var(--muted-2)}input:focus,textarea:focus,select:focus{border-color:var(--accent);background:var(--panel-3);outline:none}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;padding:0}button{cursor:pointer;border-color:var(--border);font-size:14px;font-weight:600}button:hover{border-color:var(--muted-2)}button:active{transform:scale(.98)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button.primary{background:linear-gradient(180deg, var(--accent-strong), var(--accent));color:var(--accent-ink);box-shadow:0 2px 8px -2px color-mix(in srgb, var(--accent) 55%, transparent);border-color:#0000}button.primary:hover{filter:brightness(1.06);border-color:#0000}button.ghost{border-color:var(--border);color:var(--text);background:0 0}button.danger{border-color:color-mix(in srgb, var(--danger) 55%, var(--border));color:var(--danger);background:0 0}button.danger:hover{background:color-mix(in srgb, var(--danger) 12%, transparent);border-color:var(--danger)}button.icon-btn{color:var(--muted);background:var(--panel-2);border-radius:999px;justify-content:center;align-items:center;padding:9px;display:inline-flex}button.icon-btn.primary{background:linear-gradient(180deg, var(--accent-strong), var(--accent));color:var(--accent-ink);border-color:#0000}button.icon-btn:hover{color:var(--text);border-color:var(--muted-2)}.error-text{color:var(--danger);font-size:13px}.app{max-width:640px;min-height:100vh;padding-bottom:calc(74px + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}header.topbar{background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex;position:sticky;top:0}header.topbar .brand{align-items:center;gap:10px;display:flex}header.topbar .brand-mark{background:linear-gradient(145deg, var(--accent-strong), var(--accent));width:30px;height:30px;color:var(--accent-ink);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}header.topbar .who{flex-direction:column;line-height:1.25;display:flex}header.topbar .who strong{font-size:14px;font-weight:700}header.topbar .who span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}header.topbar .actions{gap:6px;display:flex}.pairing-switcher{scrollbar-width:none;gap:8px;padding:10px 16px 0;display:flex;overflow-x:auto}.pairing-switcher::-webkit-scrollbar{display:none}.pairing-pill{border:1px solid var(--border);background:var(--panel-2);color:var(--muted);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:8px 16px;font-size:13px;font-weight:600}.pairing-pill.active{background:color-mix(in srgb, var(--accent) 18%, var(--panel-2));border-color:color-mix(in srgb, var(--accent) 55%, transparent);color:var(--accent-strong)}main.content{flex-direction:column;flex:1;gap:14px;padding:16px 16px 32px;display:flex}.page-title{letter-spacing:-.01em;margin:4px 2px 0;font-size:20px;font-weight:700}nav.bottom-nav{z-index:30;background:color-mix(in srgb, var(--bg-elevated) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border-soft);max-width:640px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}nav.bottom-nav button{color:var(--muted);border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:8px 4px 6px;font-size:11px;font-weight:600;display:flex}nav.bottom-nav button.active{color:var(--accent-strong)}nav.bottom-nav button:active{background:var(--panel-2);transform:none}.sheet-backdrop{z-index:40;background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:640px;max-height:82vh;padding:8px 8px calc(20px + env(safe-area-inset-bottom));box-shadow:var(--shadow-raised);border-bottom:none;overflow-y:auto}.sheet-handle{background:var(--border);border-radius:999px;width:40px;height:4px;margin:8px auto 12px}.sheet-item{border-radius:var(--radius-sm);width:100%;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:13px 12px;font-size:15px;font-weight:600;display:flex}.sheet-item:hover{background:var(--panel-2)}.sheet-item .icon-chip{background:var(--panel-2);width:34px;height:34px;color:var(--muted);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sheet-item .sheet-item-label{flex:1}.sheet-item .chev{color:var(--muted-2)}.sheet-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);padding:14px 12px 4px;font-size:11px}.card{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow-card);flex-direction:column;gap:9px;padding:16px;display:flex}.card.inactive{opacity:.55}.card.flat{background:var(--panel-2);box-shadow:none}.card-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.card h3{letter-spacing:-.005em;margin:0;font-size:15px;font-weight:700}.muted{color:var(--muted);font-size:13px}.tag{text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:3px 9px;font-size:10.5px;font-weight:700}.tag.reward{border-color:color-mix(in srgb, var(--good) 55%, transparent);color:var(--good);background:color-mix(in srgb, var(--good) 12%, transparent)}.tag.punishment{border-color:color-mix(in srgb, var(--danger) 55%, transparent);color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.tag.hard{border-color:color-mix(in srgb, var(--danger) 55%, transparent);color:var(--danger)}.tag.soft{border-color:color-mix(in srgb, var(--accent-2) 55%, transparent);color:var(--accent-2)}.btn-row{flex-wrap:wrap;gap:8px;display:flex}form.inline-form{flex-direction:column;gap:10px;display:flex}form.inline-form .fields{flex-wrap:wrap;gap:8px;display:flex}form.inline-form .fields>*{flex:1;min-width:120px}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);margin:8px 2px -2px;font-size:11.5px;font-weight:700}.chastity-hero{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:30px 20px 26px;display:flex;position:relative;overflow:hidden}.chastity-hero:before{content:"";background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%);pointer-events:none;height:160%;position:absolute;inset:-40% -10% auto}.chastity-hero>*{position:relative}.chastity-hero .status-icon{background:color-mix(in srgb, var(--accent) 16%, var(--panel-2));width:52px;height:52px;color:var(--accent-strong);border-radius:999px;justify-content:center;align-items:center;display:flex}.chastity-hero .status{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:700}.chastity-hero .timer{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:42px;font-weight:800}.safeword-btn{background:linear-gradient(180deg, #eb6a62, var(--danger));color:#fff;border-radius:var(--radius);letter-spacing:.02em;box-shadow:0 8px 24px -8px color-mix(in srgb, var(--danger) 70%, transparent);border:none;justify-content:center;align-items:center;gap:10px;padding:20px;font-size:17px;font-weight:800;display:flex}.chat-scroll{gap:10px;max-height:60vh;overflow-y:auto}.chat-bubble{border-radius:16px;max-width:80%;padding:9px 13px}.chat-bubble.mine{background:linear-gradient(180deg, var(--accent-strong), var(--accent));color:var(--accent-ink);border-bottom-right-radius:5px;align-self:flex-end}.chat-bubble.theirs{background:var(--panel-3);border-bottom-left-radius:5px;align-self:flex-start}.chat-bubble .sender{opacity:.75;margin-bottom:2px;font-size:11px;font-weight:700}.chat-bubble .meta{opacity:.65;margin-top:3px;font-size:10px}.journal-entry{border-bottom:1px solid var(--border-soft);padding-bottom:12px}.journal-entry:last-child{border-bottom:none;padding-bottom:0}.journal-meta{color:var(--muted);justify-content:space-between;margin-bottom:3px;font-size:12px;display:flex}.empty-state{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:32px 16px;font-size:14px;display:flex}.empty-state .icon-chip{background:var(--panel-2);width:44px;height:44px;color:var(--muted-2);border-radius:999px;justify-content:center;align-items:center;display:flex}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg, var(--panel-2) 25%, var(--panel-3) 37%, var(--panel-2) 63%);background-size:400% 100%;min-height:64px;animation:1.4s infinite skeleton-shine}@keyframes skeleton-shine{0%{background-position:100%}to{background-position:0%}}.praise-note{color:var(--accent-strong);align-items:center;gap:6px;font-size:13px;display:flex}.stat-row{gap:10px;display:flex}.stat-tile{background:var(--panel-2);border:1px solid var(--border-soft);border-radius:var(--radius-sm);text-align:center;flex:1;padding:10px 12px}.stat-tile .num{font-variant-numeric:tabular-nums;font-size:20px;font-weight:800}.stat-tile .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px}.check-row{color:var(--muted);cursor:pointer;align-items:flex-start;gap:10px;font-size:13px;line-height:1.4;display:flex}.check-row input[type=checkbox]{flex-shrink:0;margin-top:1px}.check-row a,.muted a{color:var(--accent-strong)}button.link-btn{color:var(--accent-strong);font-size:inherit;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.lp{scroll-behavior:smooth;max-width:1040px;margin:0 auto;padding:0 20px 40px}.lp h1,.lp h2,.lp h3,.lp p{margin:0}.lp-nav{justify-content:space-between;align-items:center;padding:18px 0;display:flex}.lp-brand{color:var(--text);letter-spacing:.01em;align-items:center;gap:10px;font-size:18px;font-weight:800;text-decoration:none;display:flex}.lp-brand .brand-mark{background:linear-gradient(145deg, var(--accent-strong), var(--accent));width:30px;height:30px;color:var(--accent-ink);border-radius:9px;justify-content:center;align-items:center;display:flex}.lp-nav-links{align-items:center;gap:20px;font-size:14px;display:flex}.lp-nav-links a{color:var(--muted);font-weight:600;text-decoration:none}.lp-nav-links a:hover{color:var(--text)}.lp-nav-links a.lp-signin{color:var(--text);border:1px solid var(--border);border-radius:999px;padding:8px 16px}.lp-btn{border:1px solid var(--border);color:var(--text);text-align:center;border-radius:999px;padding:14px 24px;font-size:15px;font-weight:700;text-decoration:none;display:inline-block}.lp-btn.primary{background:linear-gradient(180deg, var(--accent-strong), var(--accent));color:var(--accent-ink);box-shadow:0 6px 22px -8px color-mix(in srgb, var(--accent) 70%, transparent);border-color:#0000}.lp-btn.primary.disabled{opacity:.6;pointer-events:none}.lp-btn.ghost:hover{border-color:var(--muted-2)}.lp-hero{grid-template-columns:1.1fr .9fr;align-items:center;gap:40px;padding:48px 0 56px;display:grid}.lp-hero-copy{flex-direction:column;align-items:flex-start;gap:18px;display:flex}.lp-hero h1{letter-spacing:-.02em;font-size:clamp(32px,5vw,50px);font-weight:800;line-height:1.08}.lp-hero p{color:var(--muted);max-width:540px;font-size:17px;line-height:1.55}.lp-cta-row{flex-wrap:wrap;gap:12px;display:flex}.lp-mock{flex-direction:column;gap:12px;display:flex}.lp-mock-card{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--border-soft);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-raised);flex-direction:column;align-items:center;gap:10px;padding:32px 20px;display:flex;position:relative;overflow:hidden}.lp-mock-card:before{content:"";background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 18%, transparent), transparent 70%);height:160%;position:absolute;inset:-40% -10% auto}.lp-mock-card>*{position:relative}.lp-mock-card .status-icon{background:color-mix(in srgb, var(--accent) 16%, var(--panel-2));width:52px;height:52px;color:var(--accent-strong);border-radius:999px;justify-content:center;align-items:center;display:flex}.lp-mock-status{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:12px;font-weight:700}.lp-mock-timer{font-variant-numeric:tabular-nums;font-size:40px;font-weight:800}.lp-mock-meta{color:var(--muted);font-size:13px}.lp-mock-row{flex-wrap:wrap;gap:10px;display:flex}.lp-mock-pill{background:var(--panel-2);border:1px solid var(--border-soft);color:var(--muted);border-radius:999px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;display:inline-flex}.lp-section{padding:56px 0 8px}.lp-section h2{letter-spacing:-.015em;text-align:center;font-size:clamp(24px,3.4vw,34px);font-weight:800}.lp-lead{color:var(--muted);text-align:center;max-width:620px;margin:12px auto 0;line-height:1.55}.lp-grid{grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr));gap:14px;max-width:880px;margin:32px auto 0;display:grid}.lp-feature{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow-card);flex-direction:column;gap:10px;padding:20px;display:flex}.lp-feature h3{font-size:16px;font-weight:700}.lp-feature p{color:var(--muted);font-size:14px;line-height:1.55}.lp .icon-chip{background:color-mix(in srgb, var(--accent) 14%, var(--panel-2));width:40px;height:40px;color:var(--accent-strong);border-radius:12px;justify-content:center;align-items:center;display:flex}.lp-steps{grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:14px;margin-top:32px;display:grid}.lp-step{flex-direction:column;gap:8px;padding:8px 6px;display:flex}.lp-step-n{border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);width:34px;height:34px;color:var(--accent-strong);border-radius:999px;justify-content:center;align-items:center;font-weight:800;display:flex}.lp-step h3{font-size:17px}.lp-step p{color:var(--muted);font-size:14px;line-height:1.55}.lp-privacy{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--border-soft);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:16px;margin-top:56px;padding:36px 24px;display:flex}.lp-privacy ul{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:12px 28px;width:100%;max-width:860px;margin:4px 0 0;padding:0;list-style:none;display:grid}.lp-privacy li{color:var(--muted);padding-left:16px;font-size:14px;line-height:1.5;position:relative}.lp-privacy li:before{content:"";background:var(--accent);border-radius:999px;width:6px;height:6px;position:absolute;top:8px;left:0}.lp-pricing{flex-direction:column;align-items:center;gap:8px;padding-bottom:8px;display:flex}.lp-pricing .lp-btn{margin-top:20px}.lp-faq{flex-direction:column;gap:10px;max-width:720px;margin:28px auto 0;display:flex}.lp-faq details{background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:4px 16px}.lp-faq summary{cursor:pointer;padding:12px 0;font-weight:600;list-style:none}.lp-faq summary::-webkit-details-marker{display:none}.lp-faq details p{color:var(--muted);padding:0 0 14px;font-size:14px;line-height:1.55}.lp-footer{border-top:1px solid var(--border-soft);color:var(--muted-2);flex-direction:column;gap:12px;margin-top:64px;padding-top:24px;font-size:13px;line-height:1.5;display:flex}.lp-footer-links{gap:18px;display:flex}.lp-footer-links a{color:var(--muted)}@media (width<=760px){.lp-hero{grid-template-columns:1fr;padding-top:24px}.lp-nav-links a:not(.lp-signin){display:none}}nav.side-nav{display:none}@media (width>=900px){.app{grid-template-columns:220px minmax(0,1fr);grid-auto-rows:min-content;align-content:start;column-gap:28px;max-width:1080px;padding-bottom:0;display:grid}.app>*{grid-column:2}.app>header.topbar{border-radius:0 0 var(--radius) var(--radius);grid-column:1/-1}.app>main.content{padding:20px 4px 48px}.app>.side-nav{flex-direction:column;grid-area:2/1/span 12;align-self:start;gap:2px;padding-top:20px;display:flex;position:sticky;top:78px}nav.side-nav button{border-radius:var(--radius-sm);width:100%;color:var(--muted);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:12px;padding:11px 14px;font-size:14px;font-weight:600;display:flex}nav.side-nav button:hover{background:var(--panel-2);color:var(--text)}nav.side-nav button.active{background:color-mix(in srgb, var(--accent) 16%, var(--panel-2));border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent-strong)}nav.bottom-nav{display:none}}.nav-badge{color:#fff;text-align:center;box-sizing:border-box;background:#e5484d;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px}nav.bottom-nav .nav-icon{display:inline-flex;position:relative}nav.bottom-nav .nav-icon .nav-badge{box-shadow:0 0 0 2px var(--bg-elevated);position:absolute;top:-6px;left:60%}nav.side-nav .nav-badge{margin-left:auto}.sheet-item .nav-badge{margin-left:auto;margin-right:6px}.seg{background:var(--bg);border:1px solid var(--border-soft);border-radius:999px;gap:4px;padding:4px;display:flex}.seg button{color:var(--muted);background:0 0;border:none;border-radius:999px;flex:1;min-width:0;padding:8px 6px;font-size:13px;font-weight:600}.seg button.active{background:color-mix(in srgb, var(--accent) 20%, var(--panel-2));color:var(--accent-strong)}.home-card h3{align-items:center;gap:8px;margin:0;display:flex}.home-timer{letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:30px;font-weight:700}.home-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.home-list li{justify-content:space-between;gap:10px;font-size:14px;display:flex}.cover{z-index:100;color:#8b8b95;-webkit-user-select:none;user-select:none;background:#101014;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:0}.cover h1{margin:0;font-size:56px;font-weight:300}.cover p{margin:0}.pin-dots{gap:12px;min-height:14px;display:flex}.pin-dots span{border:1.5px solid #6d6d78;border-radius:50%;width:13px;height:13px}.pin-dots span.on{background:#d8d8e0;border-color:#d8d8e0}.pin-msg{min-height:20px;font-size:14px}.pin-pad{grid-template-columns:repeat(3,72px);gap:14px;margin-top:8px;display:grid}.pin-pad button{color:#e6e6ee;background:#1d1d24;border:none;border-radius:50%;height:72px;padding:0;font-size:24px}.pin-pad button.ghost{color:#8b8b95;background:0 0;font-size:14px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(min(120px,100%),1fr));gap:14px;display:grid}.stat-grid div{flex-direction:column;gap:2px;display:flex}.stat-grid strong{font-variant-numeric:tabular-nums;font-size:22px}.stat-grid .muted{font-size:12px}.check-row{border-top:1px solid var(--border-soft);flex-direction:column;gap:6px;padding:8px 0;display:flex}.check-row .seg{max-width:260px}details.help-topic{border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--panel-2);padding:0 12px}details.help-topic summary{cursor:pointer;padding:11px 0;font-size:14px;font-weight:600}details.help-topic p{color:var(--muted);margin:0 0 10px;font-size:13.5px;line-height:1.55}
