:root{--bg: #0a0d12;--elev: #11151d;--text: #dfe7f1;--muted: #9fb0c3;--line: #1e2633;--glass: rgba(255, 255, 255, .05);--brd: rgba(255, 255, 255, .08);--shadow: 0 10px 25px rgba(0, 0, 0, .25);--acc-1: #4da3ff;--acc-2: #9c66ff;--st-done: #43d17a;--st-progress: #4da3ff;--st-planned: #f5c451;--st-idea: #9c66ff}:root[data-theme=light]{--bg: #f2f4fa;--elev: #ffffff;--text: #1b1f27;--muted: #4c5667;--line: #d1d6e0;--glass: rgba(0, 0, 0, .03);--brd: rgba(0, 0, 0, .08);--shadow: 0 10px 25px rgba(0, 0, 0, .08);--acc-1: #2a7cff;--acc-2: #7d4dff;--st-done: #1e9f5d;--st-progress: #2a7cff;--st-planned: #c38b0d;--st-idea: #7d4dff}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;background-color:var(--bg);color:var(--text);background-image:radial-gradient(1000px 800px at 10% 0%,rgba(77,163,255,.08),transparent 70%),radial-gradient(1000px 800px at 90% 0%,rgba(156,102,255,.1),transparent 70%);background-repeat:no-repeat;background-attachment:fixed;background-size:cover}.app{min-height:100%;display:grid;grid-template-rows:auto 1fr auto}.header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--brd);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:14px}.logo{width:42px;height:42px;object-fit:contain}.meta h1{margin:0;font-size:1.25rem;letter-spacing:.2px}.meta .sub{margin:2px 0 0;color:var(--muted);font-size:.9rem}.header-actions{display:flex;align-items:center;gap:10px}.theme-toggle{border:none;background:transparent;font-size:1.6rem;cursor:pointer;color:var(--text);transition:transform .25s ease,color .3s ease}.theme-toggle:hover{transform:scale(1.2);color:var(--acc-1)}.cta-btn{background:linear-gradient(135deg,var(--acc-1),var(--acc-2));color:#fff;border:none;padding:9px 16px;border-radius:12px;cursor:pointer;font-weight:600;letter-spacing:.3px;box-shadow:0 4px 15px #00000040;transition:transform .2s ease,opacity .2s ease,box-shadow .3s ease}.cta-btn:hover{transform:translateY(-2px);opacity:.9;box-shadow:0 6px 20px #0000004d}.content{padding:32px 20px;max-width:1100px;margin:0 auto;width:100%}.footer{padding:14px 20px;color:var(--muted);border-top:1px solid var(--brd);text-align:center}.timeline-wrap{position:relative;padding:40px 0}.timeline-line{position:absolute;left:50%;top:0;bottom:0;width:4px;transform:translate(-50%);background:var(--line);border-radius:2px;overflow:hidden;--fill: 0}.timeline-line-progress{position:absolute;top:0;left:0;right:0;height:calc(var(--fill) * 100%);background:linear-gradient(var(--acc-1),var(--acc-2));transition:height 1s ease-in-out;border-radius:2px}.tl-item{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:36px 0;opacity:0;transform:translateY(30px);transition:opacity .8s ease-out,transform .8s ease-out}.tl-item.is-visible{opacity:1;transform:translateY(0)}.tl-item.left .tl-card{grid-column:1}.tl-item.right .tl-card{grid-column:2}.tl-card{padding:20px;border-left:3px solid transparent;background:var(--elev);border-radius:14px;box-shadow:var(--shadow);transition:all .3s ease}.tl-card:hover{transform:translateY(-3px)}.tl-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.tl-status{font-weight:600;color:var(--acc-1)}.tl-date{color:var(--muted);font-size:.9rem}.tl-title{margin:6px 0;font-size:1.1rem}.tl-desc{margin:0;color:var(--muted);line-height:1.45}.st-done{border-left-color:var(--st-done)}.st-progress{border-left-color:var(--st-progress)}.st-planned{border-left-color:var(--st-planned)}.st-idea{border-left-color:var(--st-idea)}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;animation:fadeIn .4s ease}.loading .spinner{width:38px;height:38px;border:4px solid var(--line);border-top-color:var(--acc-1);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal.clean{position:relative;width:100%;max-width:480px;background:var(--elev);border:1px solid var(--brd);border-radius:16px;box-shadow:var(--shadow);padding:20px 20px 120px;animation:fadeIn .18s ease;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.modal-header h2{margin:0;font-size:1.25rem}.modal-close{background:transparent;border:none;color:var(--text);font-size:1.1rem;cursor:pointer;opacity:.8;transition:opacity .2s ease}.modal-close:hover{opacity:1}.join-form{display:flex;flex-direction:column;gap:14px}.join-form .field{display:flex;flex-direction:column;gap:6px}.join-form label{font-size:.9rem;color:var(--muted)}.join-form input,.join-form textarea{background:var(--bg);color:var(--text);border:1px solid var(--brd);border-radius:10px;padding:10px 12px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.join-form input:focus,.join-form textarea:focus{border-color:var(--acc-1);box-shadow:0 0 0 3px #4da3ff26}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:10px}.btn{border:none;background:var(--elev);color:var(--text);padding:10px 14px;border-radius:10px;cursor:pointer;font-weight:600;transition:opacity .2s ease,transform .15s ease;text-decoration:none!important}.btn.primary{background:linear-gradient(90deg,var(--acc-1),var(--acc-2));color:#fff;box-shadow:0 0 10px #00000026}.btn:hover{opacity:.9;transform:translateY(-1px)}.note{font-size:.9rem;color:var(--muted);text-align:center;margin-top:18px;margin-bottom:4px;line-height:1.4}.mail-btn{position:absolute;right:20px;bottom:24px;background:linear-gradient(90deg,var(--acc-1),var(--acc-2));color:#fff;border:none;border-radius:10px;padding:12px 20px;font-weight:600;cursor:pointer;text-decoration:none!important;box-shadow:0 0 10px #00000026;transition:transform .15s ease,opacity .2s ease;z-index:10}.mail-btn:hover{transform:translateY(-1px);opacity:.9}@media(max-width:600px){.modal-overlay{align-items:center}.modal.clean{position:relative;width:100%;max-width:480px;background:var(--elev);border:1px solid var(--brd);border-radius:16px;box-shadow:var(--shadow);padding:20px 20px 200px;min-height:50vh;overflow-y:auto}.mail-btn{position:absolute;right:50%;transform:translate(50%);bottom:30px;width:calc(100% - 60px);text-align:center}}@media(max-width:900px){.header{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;padding:14px 16px;gap:10px;flex-direction:row-reverse}.brand{order:1;display:flex;align-items:center;gap:10px;flex-shrink:0}.theme-toggle{order:2;flex-shrink:0;margin-right:24px}.cta-btn{order:3;flex-shrink:0}.timeline-wrap{position:relative;padding:40px 0}.timeline-line{position:absolute;inset:0 auto 0 18px;width:3px;transform:none;background:var(--line);border-radius:2px}.tl-item{grid-template-columns:1fr;margin:28px 0}.tl-card{margin-left:35px;margin-right:0;padding:18px}.tl-title{font-size:1.05rem}.tl-desc{font-size:.95rem}}@media(max-width:600px){.modal.clean{padding:16px}.btn,.cta-btn{padding:9px 12px}}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:40vh;text-align:center;gap:10px;animation:fadeIn .4s ease}.loading p{margin:0;font-size:1rem;opacity:.85}.no-items{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:40vh;text-align:center;animation:fadeIn .5s ease}.no-items p{background:linear-gradient(135deg,var(--acc-1),var(--acc-2));color:#fff;padding:12px 20px;border-radius:14px;font-size:1.05rem;font-weight:600;box-shadow:0 4px 15px #00000040;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;gap:10px;margin:0;opacity:.95;transition:transform .2s ease,opacity .3s ease}.no-items p:hover{transform:translateY(-2px);opacity:1}.no-items p:before{content:"❌";font-size:1.4rem;opacity:1}
