.cal-ping svg{flex:none;width:15px;height:15px}.cal-ping .cal-ping-title{margin:0;font-size:15px;font-weight:700}.cal-ping .cal-ping-text{margin:4px 0 12px;font-size:13.5px;line-height:1.45}.cal-ping .cal-ping-open{cursor:pointer;min-height:42px;font:inherit;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:600;display:inline-flex}.cal-ping .cal-ping-form{text-align:left;margin:0}.cal-ping .cal-ping-label{margin:0 0 6px;font-size:12.5px;font-weight:600;display:block}.cal-ping .cal-ping-row{gap:8px;display:flex}.cal-ping .cal-ping-row input{color:#2b2a25;min-width:0;height:44px;font:inherit;background:#fffdf8;border:1px solid #402d3138;border-radius:12px;flex:1;padding:0 14px;font-size:16px}.cal-ping .cal-ping-row input[aria-invalid=true]{border-color:#b4232f}.cal-ping .cal-ping-row button{cursor:pointer;height:44px;font:inherit;border:0;border-radius:12px;flex:none;padding:0 16px;font-size:14px;font-weight:600}.cal-ping .cal-ping-row button:disabled{opacity:.7;cursor:default}.cal-ping .cal-ping-err{color:#b4232f;margin:8px 0 0;font-size:13px;font-weight:600}.cal-ping .cal-ping-note{margin:8px 0 0;font-size:12px;line-height:1.4}.cal-ping.is-done,.cal-ping.is-quiet{justify-content:center;align-items:center;gap:8px;margin:0;font-size:14px;display:flex}.cal-ping.is-done svg{color:#2f7d4f}.cal-ping.is-flat{text-align:center;background:var(--cal-tile);border:1px solid var(--cal-tile-border);color:var(--cal-text);border-radius:1.5rem;margin-top:2rem;padding:1.25rem}.cal-ping.is-flat .cal-ping-text,.cal-ping.is-flat .cal-ping-label,.cal-ping.is-flat .cal-ping-note{color:var(--cal-sub)}.cal-ping.is-flat .cal-ping-open,.cal-ping.is-flat .cal-ping-row button{background:var(--cal-accent);color:#fff}.cal-root[data-tone=dark] .cal-ping.is-flat .cal-ping-err{color:#ffb4b4}.cal-root[data-tone=dark] .cal-ping.is-flat.is-done svg{color:#9fe0b5}.cal-ping.is-flat.is-quiet{color:var(--cal-sub);background:0 0;border:0;margin-top:2rem;padding:0;font-size:13px}.cal-ping.is-card{text-align:center;color:#2b2a25;border-top:1px solid #785a2d24;margin-top:14px;padding-top:12px}.cal-ping.is-card .cal-ping-open{min-height:40px;color:var(--p-burg);background:#6b122214}.cal-ping.is-card .cal-ping-row button{background:var(--p-burg);color:#fbeee6}.cal-ping.is-card .cal-ping-label,.cal-ping.is-card .cal-ping-note{color:var(--p-muted)}.cal-ping.is-card.is-quiet{color:var(--p-muted);font-size:13px}
.cal-root{color:var(--cal-text);background:radial-gradient(circle at 15% -5%, color-mix(in srgb, var(--cal-accent) 28%, transparent), transparent 55%), radial-gradient(circle at 95% 105%, color-mix(in srgb, var(--cal-second) 20%, transparent), transparent 50%), var(--cal-bg);overflow:hidden}.cal-root[data-tone=dark] .cal-snow{pointer-events:none;opacity:.7;background-image:radial-gradient(2px 2px at 20px 30px,#ffffff8c,#0000),radial-gradient(1.5px 1.5px at 120px 80px,#ffffff73,#0000),radial-gradient(2.5px 2.5px at 170px 150px,#ffffff59,#0000),radial-gradient(1.5px 1.5px at 60px 170px,#ffffff80,#0000);background-size:200px 200px;animation:26s linear infinite cal-snow;position:absolute;inset:-200px 0 0}@keyframes cal-snow{0%{transform:translateY(0)}to{transform:translateY(200px)}}.cal-grid{grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:10px;display:grid}.cal-door{aspect-ratio:1;perspective:600px;background:var(--cal-tile);border:1px solid var(--cal-tile-border);-webkit-tap-highlight-color:transparent;border-radius:16px;transition:transform .2s;position:relative}.cal-door:active{transform:scale(.96)}.cal-door:focus-visible{outline:2px solid var(--cal-second);outline-offset:2px}.cal-door-inside{background:linear-gradient(145deg, var(--cal-accent), color-mix(in srgb, var(--cal-accent) 60%, var(--cal-bg)));color:#fff;border-radius:15px;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.cal-door-inside img{object-fit:cover;width:100%;height:100%}.cal-door-badge{color:#fff;background:#00000073;border-radius:999px;min-width:22px;padding:1px 6px;font-size:11px;font-weight:700;position:absolute;top:5px;left:6px}.cal-door-panel{transform-origin:0;backface-visibility:hidden;background:linear-gradient(160deg, #ffffff1a, #fff0 60%), var(--cal-tile);border:1px solid var(--cal-tile-border);color:var(--cal-text);border-radius:15px;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:transform .65s cubic-bezier(.3,.7,.3,1),opacity .3s .45s;display:flex;position:absolute;inset:0}.cal-root[data-tone=dark] .cal-door-panel{background:linear-gradient(160deg, #ffffff24, #ffffff0a), color-mix(in srgb, var(--cal-bg) 82%, #fff)}.cal-door-num{font-family:var(--font-display,Georgia, serif);font-size:26px;font-weight:600;line-height:1}.cal-door[data-state=locked] .cal-door-panel{opacity:.72}.cal-door[data-state=locked] .cal-door-num{opacity:.8}.cal-door[data-state=ready] .cal-door-panel{border-color:color-mix(in srgb, var(--cal-second) 70%, transparent)}.cal-door[data-state=ready][data-today=true] .cal-door-panel{border-color:var(--cal-second);box-shadow:0 0 0 2px color-mix(in srgb, var(--cal-second) 55%, transparent), 0 8px 24px -8px var(--cal-second);animation:2.2s ease-in-out infinite cal-glow}@keyframes cal-glow{0%,to{box-shadow:0 0 0 2px color-mix(in srgb, var(--cal-second) 45%, transparent), 0 8px 20px -10px var(--cal-second)}50%{box-shadow:0 0 0 3px color-mix(in srgb, var(--cal-second) 80%, transparent), 0 10px 30px -6px var(--cal-second)}}.cal-door-today{white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;background:var(--cal-second);color:#2b1d20;z-index:2;border-radius:999px;padding:1px 8px;font-size:10px;font-weight:800;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)}.cal-door[data-state=opening] .cal-door-panel,.cal-door[data-state=seen] .cal-door-panel{opacity:0;transform:rotateY(-105deg)}.cal-door[data-state=seen] .cal-door-panel{transition:none}.cal-modal-card{animation:.35s cubic-bezier(.2,.9,.3,1.2) cal-pop}@keyframes cal-pop{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:none}}.cal-toast{animation:.25s cal-fade}@keyframes cal-fade{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.cal-root .cal-snow,.cal-door[data-state=ready][data-today=true] .cal-door-panel,.cal-modal-card,.cal-toast{animation:none}.cal-door-panel{transition:none}}
