@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400&family=Lato:wght@300;400;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font-display:"Playfair Display", Georgia, serif;--font-body:"Lato", sans-serif;--transition-speed:.3s}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased}.app-wall{background:gray url(/assets/wall-DOfoJLCy.jpg) 0 0/cover;justify-content:center;align-items:center;min-height:100vh;padding:40px 20px 60px;display:flex;position:relative}.app-wall.dark{background-color:#2a2a2a;background-image:repeating-linear-gradient(0deg,#0000,#0000 48px,#ffffff05 48px 49px),repeating-linear-gradient(90deg,#0000,#0000 48px,#ffffff05 48px 49px);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box}.calendar-card{width:100%;max-width:640px;transform-style:preserve-3d;border-radius:4px;margin:0 auto;transition:transform .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 2px 4px #0000001a,0 8px 16px #00000026,0 24px 48px #00000040,0 48px 80px #00000026,inset 0 1px #fff9}.calendar-card.flip-forward{animation:.4s cubic-bezier(.4,0,.2,1) flipForward}.calendar-card.flip-back{animation:.4s cubic-bezier(.4,0,.2,1) flipBack}@keyframes flipForward{0%{transform:perspective(1400px)rotateX(0)scale(1)}40%{transform:perspective(1400px)rotateX(-8deg)scale(.96)}to{transform:perspective(1400px)rotateX(0)scale(1)}}@keyframes flipBack{0%{transform:perspective(1400px)rotateX(0)scale(1)}40%{transform:perspective(1400px)rotateX(-8deg)scale(.96)}to{transform:perspective(1400px)rotateX(0)scale(1)}}.spiral-bar{z-index:10;background:linear-gradient(#c8c8c8 0%,#a0a0a0 50%,#888 100%);justify-content:center;align-items:center;gap:16px;height:28px;display:flex;position:relative;box-shadow:0 3px 6px #0003}.spiral-ring{background:radial-gradient(circle at 35% 35%,#e0e0e0,#888);border:3px solid #666;border-radius:50%;flex-shrink:0;width:16px;height:16px;box-shadow:inset 0 1px 2px #0000004d,0 1px 2px #fff6}.hero-section{height:300px;position:relative;overflow:hidden}.hero-img{object-fit:cover;width:100%;height:100%;transition:filter .5s;display:block}.hero-overlay{background:linear-gradient(#0000000d 0%,#0000001a 50%,#000000a6 100%);position:absolute;inset:0}.hero-label{text-align:right;color:#fff;text-shadow:0 2px 12px #0009;position:absolute;bottom:22px;right:28px}.hero-mood{font-family:var(--font-body);letter-spacing:3px;text-transform:uppercase;opacity:.75;margin-bottom:2px;font-size:11px}.hero-year{font-family:var(--font-body);letter-spacing:5px;opacity:.85;font-size:14px}.hero-month{font-family:var(--font-display);letter-spacing:2px;text-transform:uppercase;font-size:42px;font-weight:900;line-height:1}.hero-nav{align-items:center;gap:8px;display:flex;position:absolute;bottom:18px;left:20px}.nav-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff2e;border:1px solid #fff6;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;font-size:20px;line-height:1;transition:background .2s,transform .15s;display:flex}.nav-btn:hover{background:#ffffff52;transform:scale(1.08)}.today-btn{color:#fff;cursor:pointer;letter-spacing:1.5px;text-transform:uppercase;height:36px;font-size:11px;font-family:var(--font-body);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff2e;border:1px solid #fff6;border-radius:6px;padding:0 12px;font-weight:700;transition:background .2s}.today-btn:hover{background:#ffffff52}.dark-mode-btn{color:#fff;cursor:pointer;font-size:12px;font-family:var(--font-body);letter-spacing:1px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000004d;border:1px solid #ffffff40;border-radius:20px;padding:5px 14px;transition:background .2s;position:absolute;top:14px;right:18px}.dark-mode-btn:hover{background:#00000080}.calendar-body{min-height:340px;transition:background var(--transition-speed);background:#fff;display:flex}.calendar-card.dark .calendar-body{background:#1e2130}.notes-sidebar{width:210px;min-width:210px;transition:background var(--transition-speed), border-color var(--transition-speed);background:#f8f9fc;border-right:1px solid #e8edf5;flex-direction:column;gap:14px;padding:20px 16px;display:flex}.calendar-card.dark .notes-sidebar{background:#171b2a;border-right-color:#2d3250}.notes-section-label{letter-spacing:3px;text-transform:uppercase;font-size:9px;font-family:var(--font-body);font-weight:700}.notes-textarea{width:100%;font-size:12px;font-family:var(--font-body);resize:vertical;border-radius:6px;outline:none;padding:9px 10px;line-height:1.7;transition:border-color .2s,background .3s,color .3s}.notes-textarea.month-note{color:#333;background:#fff;border:1px solid #dde3f0;min-height:80px}.notes-textarea.day-note{min-height:60px}.calendar-card.dark .notes-textarea.month-note{color:#cdd6f4;background:#222640;border-color:#3a3f60}.active-date-label{font-size:11px;font-family:var(--font-body);color:#999;font-style:italic}.calendar-card.dark .active-date-label{color:#666}.range-info-box{font-size:11.5px;font-family:var(--font-body);color:#555;border-radius:8px;padding:10px 12px;line-height:1.8}.calendar-card.dark .range-info-box{color:#9aa5ce}.range-info-box strong{font-weight:700}.clear-btn{cursor:pointer;font-size:11px;font-family:var(--font-body);letter-spacing:.5px;background:0 0;border-radius:6px;align-self:flex-start;padding:5px 12px;font-weight:700;transition:background .2s}.clear-btn:hover{opacity:.8}.cal-col{flex:1;padding:20px 18px 16px 22px}.day-headers{grid-template-columns:repeat(7,1fr);margin-bottom:8px;display:grid}.day-header{text-align:center;letter-spacing:1.5px;font-size:10px;font-weight:700;font-family:var(--font-body);text-transform:uppercase;padding:4px 0}.days-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.day-cell{aspect-ratio:1;cursor:pointer;min-height:40px;font-size:13px;font-family:var(--font-display);-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;transition:transform .15s,background .15s,box-shadow .15s;display:flex;position:relative}.day-cell:hover:not(.empty){z-index:2;transform:scale(1.1)}.day-cell.empty{cursor:default}.day-cell.state-today{font-weight:700}.day-cell.state-endpoint{z-index:3;font-weight:700;transform:scale(1.12)}.day-cell.state-range{border-radius:4px}.note-indicator{border-radius:50%;width:7px;height:7px;position:absolute;top:3px;right:4px}.holiday-star{font-size:8px;line-height:1;position:absolute;bottom:2px}.holiday-tooltip{color:#fff;font-size:10px;font-family:var(--font-body);white-space:nowrap;z-index:20;pointer-events:none;background:#14141eeb;border-radius:6px;padding:5px 9px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.holiday-tooltip:after{content:"";border:4px solid #0000;border-top-color:#14141eeb;position:absolute;top:100%;left:50%;transform:translate(-50%)}.legend-bar{transition:background var(--transition-speed), border-color var(--transition-speed);background:#fff;border-top:1px solid #edf0f7;flex-wrap:wrap;align-items:center;gap:20px;padding:10px 22px 14px;display:flex}.calendar-card.dark .legend-bar{background:#1e2130;border-top-color:#2d3250}.legend-item{letter-spacing:.5px;font-size:10px;font-family:var(--font-body);color:#aaa;align-items:center;gap:6px;display:flex}.calendar-card.dark .legend-item{color:#555}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.legend-ring{border:2px solid;border-radius:50%;flex-shrink:0;width:8px;height:8px}.wall-pin{z-index:20;background:radial-gradient(circle at 35% 35%,#c0392b,#7b241c);border-radius:50%;width:16px;height:16px;position:absolute;top:-30px;left:50%;transform:translate(-50%);box-shadow:0 2px 4px #0006}.thread{transform-origin:top;background:linear-gradient(#444,#222);width:2px;height:50px;position:absolute;top:-15px}.thread.left{left:50%;transform:rotate(-25deg)}.thread.right{left:50%;transform:rotate(25deg)}@media (width<=680px){.calendar-body{flex-direction:column}.notes-sidebar{width:100%;min-width:unset;border-bottom:1px solid #e8edf5;border-right:none}.hero-section{height:220px}.hero-month{font-size:32px}.day-cell{min-height:32px;font-size:11px}}
