:root{--bg: #f6f7f9;--surface: #ffffff;--surface-alt: #f1f3f6;--text: #17181c;--muted: #5d6470;--primary: #c6162c;--primary-strong: #970f1f;--accent: #0f4c8a;--line: #d8dce3;--container: 1160px;--radius: 14px;--shadow: 0 10px 28px rgba(8, 15, 31, .08);--hover-shadow: 0 14px 34px rgba(8, 15, 31, .14);--anim-fast: .18s;--anim-base: .28s;--anim-slow: .42s}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:PT Sans,sans-serif;color:var(--text);background:linear-gradient(180deg,#fbfcff,#f4f6f9)}a{color:inherit}.container{width:min(var(--container),92vw);margin:0 auto}.chip{display:inline-flex;align-items:center;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700;background:#eef1f6;color:#3b4250}.chip--planned{background:#ffe6bf;color:#7d4200}.chip--finished{background:#d9f0dd;color:#165b22}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform var(--anim-base) ease,box-shadow var(--anim-base) ease,border-color var(--anim-fast) ease;animation:card-enter var(--anim-slow) ease both}h1,h2,h3,h4{margin:0;font-family:Montserrat,sans-serif}p{margin:0}.page-head{margin:28px 0 22px}.page-head h1{font-size:clamp(30px,5vw,42px);margin-bottom:10px}.page-head p{color:var(--muted);max-width:76ch;line-height:1.5}.page-head{animation:fade-up var(--anim-slow) ease both}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.filter-btn{border:1px solid var(--line);background:#fff;color:#2b3442;padding:8px 12px;border-radius:999px;font-family:Montserrat,sans-serif;font-size:12px;font-weight:700;cursor:pointer}.filter-btn.is-active{background:#1f4f84;border-color:#1f4f84;color:#fff}.read-more{margin-top:12px;display:inline-block;color:var(--primary);text-decoration:none;font-family:Montserrat,sans-serif;font-size:13px;font-weight:700;transition:transform var(--anim-fast) ease,color var(--anim-fast) ease}.read-more:hover{transform:translate(3px);color:var(--primary-strong)}.filter-btn,button,.button,.btn{transition:transform var(--anim-fast) ease,box-shadow var(--anim-fast) ease,background-color var(--anim-fast) ease,border-color var(--anim-fast) ease,color var(--anim-fast) ease}.filter-btn:hover,button:hover,.button:hover,.btn:hover{transform:translateY(-1px)}.filters{animation:fade-up var(--anim-slow) ease both}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes card-enter{0%{opacity:0;transform:translateY(10px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}@media (hover: hover) and (pointer: fine){.card:hover{transform:translateY(-3px);box-shadow:var(--hover-shadow);border-color:#cfd7e4}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
