@font-face{font-family:Outfit;src:url(/fonts/Outfit.ttf)format("truetype");font-weight:100 900;font-display:swap}:root{--accent:#fbbf24;--good:#34d399;--text:#f8fbff;--muted:#f8fbffad;--faint:#f8fbff6b;--glass:#080c1694;--stroke:#ffffff24;--shadow:0 18px 50px #040a1847;--radius:22px;--ease:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{color:var(--text);-webkit-font-smoothing:antialiased;background:#070a12;font-family:Outfit,SF Pro Display,Inter,system-ui,sans-serif;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}input{border:1px solid var(--stroke);background:#ffffff0f;border-radius:12px;outline:none}input:focus{border-color:var(--accent)}.stage{flex-direction:column;gap:12px;height:100vh;min-height:100vh;padding:14px 18px 16px;display:flex;position:relative}.stage.center{justify-content:center;align-items:center}.bg{z-index:0;position:fixed;inset:0;overflow:hidden}.bg-img{object-fit:cover;width:100%;height:100%;animation:48s ease-in-out infinite alternate ken;transform:scale(1.08)}.vignette{background:radial-gradient(120% 90% at 20% 30%,#0000 10%,#04081247 70%,#0408129e 100%),linear-gradient(#04081259,#0000 18% 72%,#0408128c);position:absolute;inset:0}.noise{opacity:.04;pointer-events:none;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:absolute;inset:0}@keyframes ken{0%{transform:scale(1.06)translate(-1.2%,-.6%)}to{transform:scale(1.14)translate(1.4%,.8%)}}.glass{background:var(--glass);-webkit-backdrop-filter:blur(28px)saturate(1.25);border:1px solid var(--stroke);box-shadow:var(--shadow)}.bar{z-index:2;border-radius:18px;align-items:center;gap:10px;padding:8px 10px 8px 14px;display:flex;position:relative}.brand{letter-spacing:-.04em;align-items:center;gap:8px;font-size:18px;font-weight:800;display:flex}.bar-grow{flex:1}.month-nav{align-items:center;gap:8px;font-weight:700;display:flex}.month-nav h2{letter-spacing:-.02em;text-align:center;min-width:148px;font-size:15px}.ico{border:1px solid var(--stroke);background:#ffffff0f;border-radius:11px;place-items:center;width:34px;height:34px;display:grid;position:relative}.ico.dot:after{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;top:7px;right:7px}.walls{gap:6px;display:flex}.walls button{opacity:.7;background-position:50%;background-size:cover;border:2px solid #0000;border-radius:50%;width:28px;height:28px}.walls button.on{opacity:1;border-color:#fff}.avatar{background:var(--accent);color:#111;border-radius:11px;place-items:center;width:34px;height:34px;font-size:12px;font-weight:800;display:grid}.menu{position:relative}.menu-pop{z-index:20;border:1px solid var(--stroke);background:#080c16eb;border-radius:16px;width:220px;padding:8px;position:absolute;top:42px;right:0}.menu-pop button,.menu-pop .item{text-align:left;border-radius:10px;width:100%;padding:10px;font-size:14px;font-weight:650}.menu-pop button:hover{background:#ffffff0f}.menu-pop input{width:100%;height:38px;margin-bottom:6px;padding:0 10px}.sub{color:var(--faint);font-size:11px;font-weight:600;display:block}.hero-line{z-index:2;grid-template-columns:1fr auto;align-items:end;gap:12px;padding:4px 8px 0;display:grid;position:relative}.clock{letter-spacing:-.06em;text-shadow:0 10px 40px #00000059;font-size:clamp(40px,6vw,64px);font-weight:800;line-height:.9}.hero-copy h1{letter-spacing:-.045em;margin-top:4px;font-size:clamp(22px,3vw,32px);font-weight:800}.quote{max-width:640px;color:var(--muted);margin-top:6px;font-size:16px;font-style:italic;font-weight:500;line-height:1.45}.pills{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.pills span,.pill{border:1px solid var(--stroke);background:#ffffff14;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700}.pills strong{font-weight:800}.ring-mini{justify-self:end}.heat{z-index:2;border-radius:var(--radius);flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px 14px 12px;display:flex;position:relative}.heat-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.heat-top h3{letter-spacing:-.02em;font-size:15px;font-weight:800}.heat-top em{color:var(--faint);font-size:12px;font-style:normal;font-weight:650}.heat-scroll{flex:1;min-height:0;overflow:auto}.heat-grid{grid-template-columns:minmax(128px, 168px) repeat(var(--days), minmax(18px, 1fr));gap:4px;min-width:720px;display:grid}.colh,.lab{color:var(--faint);text-align:center;font-size:10px;font-weight:700}.colh.today{color:var(--accent)}.lab{text-align:left;color:var(--text);white-space:nowrap;text-overflow:ellipsis;background:0 0;align-items:center;gap:6px;padding:0 8px 0 2px;font-size:13px;display:flex;overflow:hidden}.lab b{font-weight:800}.cell{aspect-ratio:1;background:#ffffff14;border:1px solid #0000;border-radius:5px;min-height:18px}.cell.on{background:var(--h,var(--good));box-shadow:0 0 10px color-mix(in srgb, var(--h,var(--good)) 35%, transparent)}.cell.skip{background:0 0;box-shadow:inset 0 0 0 1.5px #ffffff47}.cell.live{cursor:pointer}.cell.live:hover{transform:scale(1.08)}.cell.today{outline:1px solid var(--accent);outline-offset:1px}.cell.sel{outline-offset:1px;outline:1px solid #fff}.cell.dormant{opacity:.25}.cell.lv1{background:#34d3992e}.cell.lv2{background:#34d39961}.cell.lv3{background:#34d3999e}.cell.lv4{background:#34d399}.add{gap:8px;display:flex}.add input{flex:1;height:42px;padding:0 12px;font-weight:650}.add button,.primary{color:#111;background:#f8fbff;border-radius:12px;height:42px;padding:0 16px;font-weight:800}.catchup{z-index:2;text-align:left;background:#fbbf2429;border:1px solid #fbbf2452;border-radius:14px;padding:10px 14px;font-size:13px;font-weight:700;position:relative}.sync{z-index:2;text-align:center;color:var(--faint);font-size:11px;font-weight:650;position:relative}.splash-card,.gate-inner{z-index:2;text-align:center;border-radius:24px;width:min(460px,100%);padding:28px;position:relative}.wordmark{letter-spacing:-.05em;font-size:34px;font-weight:800}.lede{color:var(--muted);margin-top:8px;font-weight:500;line-height:1.5}.gate-inner h1{letter-spacing:-.05em;margin:8px 0 10px;font-size:clamp(28px,5vw,40px);line-height:1.05}.features{text-align:left;gap:8px;margin:18px 0 22px;display:grid}.feature{border:1px solid var(--stroke);background:#ffffff0d;border-radius:14px;padding:12px 14px;font-size:14px;font-weight:650}.primary{width:100%}.hint{color:var(--faint);margin-top:10px;font-size:12px;font-weight:650}.spin{border:2.5px solid #ffffff26;border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;margin:22px auto 0;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.starter{gap:8px;margin-top:16px;display:grid}.starter button{text-align:left;border:1px solid var(--stroke);background:#ffffff0f;border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-weight:700;display:flex}.field{text-align:left;gap:6px;margin:12px 0;display:grid}.field span{color:var(--muted);font-size:12px;font-weight:700}.field input{height:44px;padding:0 12px;font-weight:650}.inline-form{gap:8px;display:flex}.inline-form input{flex:1;height:44px;padding:0 12px}.inline-form button{color:#111;background:#f8fbff;border-radius:12px;height:44px;padding:0 14px;font-weight:800}.backdrop{z-index:40;background:#00000073;place-items:end center;padding:12px;display:grid;position:fixed;inset:0}.sheet{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--stroke);background:#0a0e18eb;border-radius:24px;width:min(520px,100%);max-height:min(92vh,860px);padding:18px;overflow:auto}.sheet-head{justify-content:space-between;gap:12px;margin-bottom:14px;display:flex}.sheet-head h2{letter-spacing:-.03em;font-size:22px}.kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:800}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--stroke);height:34px;color:var(--muted);background:#ffffff0f;border-radius:99px;padding:0 12px;font-size:13px;font-weight:700}.chip.on{color:#111;background:#f8fbff;border-color:#0000}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{border-radius:50%;width:28px;height:28px}.swatch.on{outline-offset:2px;outline:2px solid #fff}.emojis{flex-wrap:wrap;gap:6px;display:flex}.emojis button{background:#ffffff0f;border-radius:12px;width:40px;height:40px;font-size:20px}.emojis button.on{background:#fbbf2433}.templates{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;display:grid}.template{text-align:left;border:1px solid var(--stroke);background:#ffffff0f;border-radius:16px;padding:12px}.template strong{font-size:13px;display:block}.danger-btn{color:#fb7185;margin-top:10px;font-weight:700}.reminder{border-bottom:1px solid var(--stroke);grid-template-columns:1fr auto auto 28px;align-items:center;gap:8px;padding:10px 0;display:grid}.toast{z-index:50;color:#111;background:#f8fbff;border-radius:999px;padding:10px 16px;font-size:13px;font-weight:800;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.burst{pointer-events:none;z-index:60;position:fixed;inset:0;overflow:hidden}.burst i{background:var(--accent);width:8px;height:8px;animation:burst .9s var(--ease) forwards;border-radius:2px;position:absolute;top:28%;left:50%}.burst i:nth-child(3n){background:var(--good)}@keyframes burst{to{transform:rotate(calc(var(--i) * 18deg)) translateY(-140px) scale(.2);opacity:0}}.ring svg{transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:8px;stroke-linecap:round}.ring .track{stroke:#ffffff1f}.ring .value{stroke:var(--accent)}.ring .center,.ring .sub{transform-origin:50px 50px;text-anchor:middle;fill:#fff;transform:rotate(90deg)}.ring .center{font-size:15px;font-weight:800}.ring .sub{fill:var(--faint);font-size:7px}@media (width<=720px){body{overflow:auto}.stage{height:auto;min-height:100vh}.hero-line{grid-template-columns:1fr}.walls{display:none}.clock{font-size:42px}}@media (prefers-reduced-motion:reduce){.bg-img{animation:none}}
