:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#14151c;--card:#1e2029;--fg:#eceef5;--muted:#9a9fb3;--accent:#f28b4b;--accent2:#7d8cf0;--danger:#e5555c}*{box-sizing:border-box}html{font-size:100%}@media (pointer:coarse){@supports (font:-apple-system-body){html[data-text=auto]{font:-apple-system-body}}}html[data-text=large]{font-size:112.5%}html[data-text=larger]{font-size:125%}html[data-text=largest]{font-size:143.75%}button,input,select,textarea{font:inherit}html,body{overflow-x:hidden}body{background:var(--bg);color:var(--fg);-webkit-text-size-adjust:100%;margin:0;font:1rem/1.45 -apple-system,Nunito,system-ui,sans-serif}main{max-width:560px;padding:max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) calc(88px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));margin:0 auto}h1{margin:4px 0 12px;font-size:1.625rem}.topbar{justify-content:space-between;align-items:center;gap:8px;margin:4px 0 12px;display:flex;position:relative}.topbar h1{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.topbar .muted{font-size:.875rem;font-weight:500}.topbar nav{flex-shrink:0;gap:6px;display:flex}button.icon{justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:1.125rem;display:inline-flex;position:relative}.badge{background:var(--danger);color:#fff;text-align:center;border-radius:.825em;min-width:1.65em;height:1.65em;padding:0 .45em;font-size:.6875rem;line-height:1.65em;position:absolute;top:-4px;right:-4px}.dropdown{z-index:60;width:min(420px,100vw - 32px);max-height:70vh;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 12px 40px #00000080}.card,li,p{overflow-wrap:anywhere}input,select,textarea{max-width:100%}button{min-height:40px}.card{background:var(--card);border-radius:16px;margin-bottom:12px;padding:16px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}button{background:var(--accent2);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:10px 16px;font-weight:600}button.warn{background:var(--accent)}button.danger{background:var(--danger)}button:disabled{opacity:.4;cursor:default}input,select{color:var(--fg);background:#111218;border:1px solid #333;border-radius:10px;padding:8px 10px}.timer{letter-spacing:1px;font-size:min(2.5rem,11vw);font-weight:800}.muted{color:var(--muted);font-size:.9375rem}.status{text-transform:uppercase;letter-spacing:1px;color:var(--accent);font-size:.8125rem}code{background:#111218;border-radius:6px;padding:2px 6px}button.ghost{color:var(--fg);background:0 0;border:1px solid #3a3d4d}.card.center{text-align:center}.tappable{cursor:pointer}.opt{margin:8px 0;display:block}.opt input{margin-right:8px}.history{margin:8px 0 0;padding:0;list-style:none}.history li{border-top:1px solid #2a2c37;padding:6px 0;font-size:.9375rem}.code{letter-spacing:8px;text-align:center;font-variant-numeric:tabular-nums;margin:12px 0;font-size:min(3rem,13vw);font-weight:800}.blurred{object-fit:cover;filter:blur(18px);border-radius:12px;width:100%;max-height:220px;margin:8px 0}.reveal{z-index:70;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:#000;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.reveal img{border-radius:8px;max-width:100%;max-height:80vh}.reveal .code{color:#fff;font-size:min(4rem,16vw)}input[type=time]{width:7em}.cal{grid-template-columns:repeat(7,1fr);gap:4px;margin-top:8px;display:grid}.cal-h{text-align:center;font-size:.8125rem}.cal-d{aspect-ratio:1;background:#16171f;border-radius:8px;justify-content:center;align-items:center;font-size:.9375rem;display:flex}.cal-d.locked{background:var(--accent);color:#111;font-weight:700}.cal-d.today{outline:2px solid var(--accent2)}.cal-d.empty{background:0 0}.ring{text-align:center;font-variant-numeric:tabular-nums;background:#111218;border-radius:999px;min-width:64px;padding:8px 10px;font-weight:700}.ring.met{background:var(--accent);color:#111}select{color:var(--fg);background:#111218;border:1px solid #333;border-radius:10px;padding:8px 10px}textarea{color:var(--fg);font:inherit;background:#111218;border:1px solid #333;border-radius:10px;padding:8px 10px}.fab{z-index:55;right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));background:#3a3d4d;border-radius:26px;width:52px;height:52px;padding:0;font-size:1.375rem;position:fixed;box-shadow:0 8px 24px #00000073}.sheet{z-index:80;background:var(--card);max-height:85vh;padding:16px max(16px, env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));border-radius:18px 18px 0 0;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -12px 40px #0009}.sheet textarea{width:100%;min-height:110px}.scrim{z-index:75;background:#00000080;position:fixed;inset:0}.chips{flex-wrap:wrap;gap:6px;margin:8px 0}.chip{min-height:34px;color:var(--muted);background:0 0;border:1px solid #3a3d4d;border-radius:999px;padding:6px 12px;font-size:.9375rem}.chip.on{color:var(--fg);background:#3a3d4d}.journal-list{margin:8px 0 0;padding:0;list-style:none}.journal-day{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:12px 0 4px;font-size:.8125rem}.journal-row{border-bottom:1px solid #ffffff0d;gap:10px;padding:6px 0;display:flex}.journal-icon{text-align:center;flex:none;width:24px}.journal-body{flex:1;min-width:0}.journal-detail{color:var(--muted);font-size:.9375rem}.journal-meta{color:var(--muted);margin-top:2px;font-size:.8125rem}.src{font-weight:600}.src-keyholder{color:#e7b85c}.src-wearer{color:#7fb4ff}.src-module{color:#a98bff}.src-visitor{color:#ff8fb1}.src-system,.src-vault{color:#8fd3a8}.update{border:1px solid #e7b85c;justify-content:space-between;align-items:center;gap:10px;display:flex}.button-like{cursor:pointer;border:1px solid #3a3d4d;border-radius:10px;padding:10px 14px;display:inline-block}.banner{top:env(safe-area-inset-top,0px);z-index:40;border:1px solid var(--accent);background:#2a1f16;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:12px 14px;display:flex;position:sticky}.who{margin-bottom:4px;font-weight:600}.proposal{border:1px solid var(--accent)}.proposal .big,.card .big{margin:4px 0;font-size:1.1875rem;font-weight:700}.terms-row{justify-content:space-between;margin:6px 0}.terms-label{flex:1;min-width:0}.err{color:var(--danger)}.cal-d{cursor:pointer;position:relative}.cal-d.picked{outline:2px solid var(--accent2);outline-offset:-2px}.cal-d.noted:after{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;margin-left:-2.5px;position:absolute;bottom:3px;left:50%}.bondage{border:1px solid #3a3d4d}.bondage.late{border-color:var(--danger);box-shadow:0 0 0 2px #e5555c59}.checkin{border-radius:22px;width:100%;min-height:96px;margin:10px 0;font-size:1.75rem;font-weight:800;display:block}.playing-card{border:2px solid var(--muted);text-align:center;background:#101118;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:9.5rem;min-height:12.5rem;margin:12px auto 4px;padding:10px;display:flex}.playing-card .face{font-size:3.2rem;line-height:1}.playing-card .back{color:var(--accent2);font-size:5rem;line-height:1}.playing-card.flipping{animation:.9s ease-in-out card-flip}@keyframes card-flip{0%{transform:rotateY(0)}50%{transform:rotateY(90deg)scale(1.04)}to{transform:rotateY(0)}}@media (prefers-reduced-motion:reduce){.playing-card.flipping{animation:none}}.deck-table{border-collapse:collapse;width:100%}.deck-table td,.deck-table th{text-align:left;padding:3px 4px}.deck-table td:not(:first-child),.deck-table th:not(:first-child){width:5em}.bubble{border-radius:12px;max-width:88%;margin:6px 0;padding:8px 10px}.bubble.them{background:#262a3a}.bubble.me{background:#2f2a24;margin-left:auto}pre.learned{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;background:#16171f;border-radius:12px;max-height:50vh;margin-top:8px;padding:10px;font-size:.9375rem;overflow-y:auto}
