*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #fef7f2;--card: #ffffff;--border: #e8d0c8;--rose: #c9485e;--rose-dim: #fde8ec;--gold: #a8720f;--gold-dim: #fef3d8;--white: #2d1a22;--muted: #9c7080;--soft: #f5ece7}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--white);font-family:Lora,serif;overflow-x:hidden}.stars{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.star{position:absolute;background:#c9485e;border-radius:50%;animation:twinkle ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.06;transform:scale(1)}50%{opacity:.2;transform:scale(1.4)}}header{position:relative;z-index:10;text-align:center;padding:80px 24px 48px}.header-label{font-family:DM Mono,monospace;font-size:.7rem;letter-spacing:4px;color:var(--muted);text-transform:uppercase;margin-bottom:16px}header h1{font-size:clamp(2.2rem,6vw,3.8rem);font-weight:600;line-height:1.15;color:var(--white);margin-bottom:12px}header h1 em{color:var(--rose);font-style:italic}.header-since{font-family:DM Mono,monospace;font-size:.8rem;color:var(--muted);margin-bottom:32px}.days-pill{display:inline-flex;align-items:center;gap:10px;background:var(--soft);border:1px solid var(--border);border-radius:50px;padding:10px 22px;font-family:DM Mono,monospace;font-size:.82rem;color:var(--muted)}.days-pill strong{color:var(--gold);font-size:1.1rem}.miesięcznica-pill{display:inline-flex;align-items:center;gap:8px;background:var(--soft);border:1px solid var(--border);border-radius:50px;padding:8px 20px;font-family:DM Mono,monospace;font-size:.78rem;color:var(--muted);margin-top:10px}.miesięcznica-pill strong{color:var(--rose);font-size:.88rem}.counters{position:relative;z-index:10;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;max-width:780px;margin:0 auto 80px;padding:0 24px}.counter-card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:28px 24px;text-align:center;position:relative;overflow:hidden;box-shadow:0 2px 16px #0000000f}.counter-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px}.counter-card.anniversary:before{background:linear-gradient(90deg,var(--rose),var(--gold))}.counter-card.date-card:before{background:linear-gradient(90deg,var(--gold),var(--rose))}.counter-icon{font-size:2rem;margin-bottom:10px;display:block}.counter-label{font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:3px;color:var(--muted);text-transform:uppercase;margin-bottom:16px}.countdown-units{display:flex;justify-content:center;gap:12px;margin-bottom:14px}.unit{display:flex;flex-direction:column;align-items:center;gap:4px}.unit-num{font-family:DM Mono,monospace;font-size:clamp(1.6rem,4vw,2.2rem);font-weight:500;color:var(--white);background:var(--soft);border-radius:10px;padding:8px 14px;min-width:56px;line-height:1}.unit-label{font-family:DM Mono,monospace;font-size:.58rem;letter-spacing:2px;color:var(--muted);text-transform:uppercase}.counter-sub{font-family:DM Mono,monospace;font-size:.72rem;color:var(--muted);font-style:italic}.date-setter{margin-top:16px;display:flex;gap:8px;justify-content:center}.date-setter input{background:var(--soft);border:1px solid var(--border);border-radius:8px;padding:7px 10px;font-family:DM Mono,monospace;font-size:.75rem;color:var(--white);outline:none;flex:1;max-width:140px}.date-setter input:focus{border-color:var(--rose)}.date-setter button{background:var(--rose-dim);border:none;border-radius:8px;padding:7px 12px;color:var(--rose);font-family:DM Mono,monospace;font-size:.72rem;cursor:pointer;transition:background .2s}.date-setter button:hover{background:var(--rose);color:#fff}.dates-panel{position:relative;z-index:10;max-width:680px;margin:0 auto 80px;padding:0 24px}.dates-empty{text-align:center;font-family:DM Mono,monospace;font-size:.8rem;color:var(--muted);margin-bottom:32px;font-style:italic}.dates-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:28px}.date-item{display:flex;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 18px;gap:12px;transition:border-color .2s;box-shadow:0 2px 10px #0000000a}.date-item:not(.past){border-left:3px solid var(--rose)}.date-item.past{opacity:.45}.date-item-info{display:flex;flex-direction:column;gap:4px}.date-item-label{font-size:.95rem;font-weight:600;color:var(--white)}.date-item-when{font-family:DM Mono,monospace;font-size:.68rem;color:var(--muted);letter-spacing:1px}.date-item-actions{display:flex;gap:8px;flex-shrink:0}.btn-ics{background:transparent;border:1px solid var(--border);border-radius:8px;padding:5px 9px;font-size:.8rem;cursor:pointer;transition:border-color .2s;line-height:1}.btn-ics:hover{border-color:var(--gold)}.date-form{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px 20px 16px;box-shadow:0 2px 10px #0000000a}.form-row{display:flex;gap:8px;flex-wrap:wrap}.form-row input{background:var(--soft);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-family:DM Mono,monospace;font-size:.75rem;color:var(--white);outline:none;flex:1;min-width:120px}.form-row input:focus{border-color:var(--rose)}.form-actions{display:flex;gap:8px;margin-top:12px}@media (max-width: 480px){.date-item{flex-direction:column;align-items:flex-start}}.timeline-section{position:relative;z-index:10;max-width:680px;margin:0 auto;padding:0 24px 100px}.section-heading{text-align:center;margin-bottom:48px}.section-heading .label{font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:4px;color:var(--muted);text-transform:uppercase;margin-bottom:10px}.section-heading h2{font-size:clamp(1.6rem,4vw,2.2rem);font-weight:600;color:var(--white)}.timeline{position:relative;padding-left:0}.timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,transparent,var(--border) 10%,var(--border) 90%,transparent);transform:translate(-50%)}.tl-item{display:flex;align-items:flex-start;gap:0;margin-bottom:48px;position:relative;opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}.tl-item.visible{opacity:1;transform:translateY(0)}.tl-item:nth-child(odd){flex-direction:row}.tl-item:nth-child(2n){flex-direction:row-reverse}.tl-content{width:calc(50% - 32px);background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px;position:relative;box-shadow:0 2px 12px #0000000d}.tl-item:nth-child(odd) .tl-content{margin-right:auto;text-align:right}.tl-item:nth-child(2n) .tl-content{margin-left:auto;text-align:left}.tl-dot{position:absolute;left:50%;transform:translate(-50%);width:40px;height:40px;border-radius:50%;background:var(--card);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:1.2rem;z-index:2;flex-shrink:0}.tl-date{font-family:DM Mono,monospace;font-size:.65rem;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-bottom:6px}.tl-title{font-size:1rem;font-weight:600;color:var(--white);margin-bottom:6px;line-height:1.3}.tl-desc{font-size:.82rem;color:var(--muted);line-height:1.6;font-style:italic}.tl-item.highlight .tl-content{border-color:var(--rose-dim);background:linear-gradient(135deg,var(--card),var(--rose-dim))}.tl-item.highlight .tl-dot{border-color:var(--rose);box-shadow:0 0 16px #e8637a66}.tl-item.highlight .tl-date{color:var(--rose)}@media (max-width: 560px){.timeline:before{left:20px}.tl-item,.tl-item:nth-child(2n){flex-direction:column;padding-left:52px}.tl-content,.tl-item:nth-child(odd) .tl-content,.tl-item:nth-child(2n) .tl-content{width:100%;text-align:left;margin:0}.tl-dot{left:20px;top:16px}}.timeline-panel{position:relative;z-index:10;max-width:680px;margin:0 auto 80px;padding:0 24px}.tl-manage-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:28px}.tl-manage-item{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:12px 16px;box-shadow:0 2px 10px #0000000a}.tl-manage-item.highlight{border-left:3px solid var(--rose)}.tl-manage-icon{font-size:1.4rem;flex-shrink:0}.tl-manage-info{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.tl-manage-title{font-size:.9rem;font-weight:600;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-manage-date{font-family:DM Mono,monospace;font-size:.65rem;color:var(--muted);letter-spacing:1px}.tl-manage-actions{display:flex;gap:8px;flex-shrink:0}.btn-edit{background:var(--soft);border:1px solid var(--border);border-radius:8px;padding:5px 12px;font-family:DM Mono,monospace;font-size:.7rem;color:var(--muted);cursor:pointer;transition:border-color .2s,color .2s}.btn-edit:hover{border-color:var(--gold);color:var(--gold)}.btn-delete{background:transparent;border:1px solid var(--border);border-radius:8px;padding:5px 12px;font-family:DM Mono,monospace;font-size:.7rem;color:var(--muted);cursor:pointer;transition:border-color .2s,color .2s}.btn-delete:hover{border-color:var(--rose);color:var(--rose)}.tl-form{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px 20px 16px;box-shadow:0 2px 10px #0000000a}.form-heading{font-family:DM Mono,monospace;font-size:.72rem;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:14px}.form-row{display:flex;gap:8px;margin-bottom:8px}.form-row input,.form-row textarea{background:var(--soft);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-family:DM Mono,monospace;font-size:.75rem;color:var(--white);outline:none;flex:1;resize:none}.form-row input:focus,.form-row textarea:focus{border-color:var(--rose)}.input-icon{max-width:90px;flex:none;text-align:center;font-size:1.1rem}.input-wide{flex:1}.form-row-check{align-items:center;margin-bottom:12px}.checkbox-label{display:flex;align-items:center;gap:8px;font-family:DM Mono,monospace;font-size:.72rem;color:var(--muted);cursor:pointer}.checkbox-label input[type=checkbox]{width:15px;height:15px;accent-color:var(--rose);flex:none}.form-actions{display:flex;gap:8px}.btn-save{background:var(--rose-dim);border:none;border-radius:8px;padding:8px 18px;font-family:DM Mono,monospace;font-size:.75rem;color:var(--rose);cursor:pointer;transition:background .2s}.btn-save:hover{background:var(--rose);color:#fff}.btn-cancel{background:transparent;border:1px solid var(--border);border-radius:8px;padding:8px 18px;font-family:DM Mono,monospace;font-size:.75rem;color:var(--muted);cursor:pointer;transition:border-color .2s}.btn-cancel:hover{border-color:var(--muted)}@media (max-width: 480px){.tl-manage-item{flex-wrap:wrap}.tl-manage-actions{width:100%;justify-content:flex-end}}footer{position:relative;z-index:10;text-align:center;padding:0 24px 60px;font-family:DM Mono,monospace;font-size:.72rem;color:var(--muted);font-style:italic;line-height:2}
