:root{--ink: #1c1b1a;--muted: #6f6c66;--paper: #faf9f7;--card: #ffffff;--border: #e7e4df;--accent: #b8323e;--accent-dark: #9a2833;--ok: #2e7d4f;--warn: #9a6b1f;--radius: 10px;--display: "Fraunces", Georgia, serif;--body: "Inter", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100dvh;font-family:var(--body);color:var(--ink);background:radial-gradient(circle at top,rgba(184,50,62,.05),transparent 28rem),linear-gradient(180deg,#fdfbf8 0%,var(--paper) 36%,#f8f6f2 100%);line-height:1.55;-webkit-font-smoothing:antialiased}#root{min-height:100dvh;display:flex;flex-direction:column}main{flex:1}h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.15;margin:0 0 .5rem}h1{font-size:2.2rem}a{color:inherit}.container{max-width:1080px;margin:0 auto;padding:0 1.25rem}.section{padding:2.5rem 1.25rem}.narrow{max-width:520px}.muted{color:var(--muted)}.fine{font-size:.8rem}.nav{background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav-inner{display:flex;align-items:center;justify-content:space-between;min-height:60px;padding-block:.75rem;gap:1rem}.brand{font-family:var(--display);font-size:1.35rem;font-weight:600;text-decoration:none}.brand-dot{color:var(--accent)}.nav-links{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;justify-content:flex-end}.nav-links a{text-decoration:none;font-size:.92rem;color:var(--muted)}.nav-links a.active,.nav-links a:hover,.nav-links a.btn{color:var(--ink)}.nav-toggle{display:none;background:none;border:1px solid var(--border);border-radius:8px;padding:.35rem .65rem;font-size:1.05rem;line-height:1.3;color:var(--ink);cursor:pointer}.nav-toggle:hover{border-color:var(--muted)}.nav-links a.btn-primary,.nav-links a.btn-primary:hover{color:#fff}.hero{background:radial-gradient(circle at 20% 20%,rgba(184,50,62,.08),transparent 22rem),linear-gradient(180deg,#fff,#fbf8f5);border-bottom:1px solid var(--border);padding:4.5rem 0 4rem;text-align:center}.hero h1{font-size:clamp(2.2rem,5vw,3.4rem);margin-bottom:1rem}.eyebrow{color:var(--accent);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.75rem}.hero-sub{color:var(--muted);max-width:520px;margin:0 auto 1.75rem}.btn{display:inline-block;border:1px solid var(--border);background:var(--card);color:var(--ink);border-radius:var(--radius);padding:.65rem 1.3rem;font:500 .92rem var(--body);text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s}.btn:hover{border-color:var(--muted)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn-sm{padding:.4rem .9rem;font-size:.85rem}.btn:disabled{opacity:.6;cursor:default}.link-btn{background:none;border:none;color:var(--muted);font:inherit;font-size:.92rem;cursor:pointer;padding:0}.link-btn:hover{color:var(--ink);text-decoration:underline}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.campaign-card{text-decoration:none;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s}.campaign-card:hover{box-shadow:0 4px 18px #1c1b1a14;transform:translateY(-2px)}.card-img{width:100%;height:170px;object-fit:cover;display:block}.card-img-empty{background:repeating-linear-gradient(-45deg,#f1efeb,#f1efeb 8px,#faf9f7 8px,#faf9f7 16px)}.card-body{padding:1.1rem 1.25rem 1.25rem}.card-body h3{font-size:1.15rem}.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.9rem}.card-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;font-size:.88rem;margin-top:.6rem}.card-meta-copy{display:flex;flex-direction:column;gap:.1rem;min-width:0}.amount{font-family:var(--display);font-weight:600;font-size:1.05rem}.amount-lg{font-size:2rem;display:block}.progress{height:4px;background:var(--border);border-radius:2px;margin-top:.9rem;overflow:hidden}.card-progress{margin-top:.8rem}.card-progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.45rem}.progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .4s ease}.detail{display:grid;grid-template-columns:1.6fr 1fr;gap:2.5rem;align-items:start}.detail-img{width:100%;border-radius:var(--radius);margin-bottom:1.5rem}.detail-desc{white-space:pre-wrap;margin:1.25rem 0 2.5rem}.comments-block{margin-top:2.5rem;padding:1.25rem;background:linear-gradient(180deg,#fff,#fcfbf8)}.comments-head{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.comment-form{display:flex;flex-direction:column;gap:.85rem;margin-top:1rem;padding:.95rem;border:1px solid var(--border);border-radius:14px;background:#fff}.comment-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;font-weight:500}.comment-form textarea{font:400 .95rem var(--body);padding:.75rem .85rem;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--ink);resize:vertical}.comment-form textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.reply-pill{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem .75rem;border-radius:12px;background:#fcf7f7;border:1px solid #f1e2e4;color:var(--ink)}.comment-thread{list-style:none;padding:0;margin:1.1rem 0 0;display:flex;flex-direction:column;gap:.7rem}.comment{list-style:none}.comment-shell{border:1px solid var(--border);border-radius:14px;background:#fff;padding:.95rem 1rem .85rem;box-shadow:0 1px #1c1b1a05}.comment-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.65rem}.comment-identity{display:flex;gap:.9rem;align-items:flex-start;min-width:0;flex:1}.comment-avatar{width:2.2rem;height:2.2rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;background:#f4ecec;color:var(--accent-dark);font-size:.78rem;font-weight:700;letter-spacing:.04em}.comment-meta{min-width:0;display:flex;flex-direction:column;gap:.1rem;flex:1}.comment-author{font-weight:600}.comment-body{margin:0;white-space:pre-wrap;padding-left:3.2rem}.comment-reply{margin-top:.1rem;flex:0 0 auto}.comment-reply-active{color:var(--accent);font-weight:600}.comment-children{list-style:none;padding:0;display:flex;flex-direction:column;gap:.65rem;border-left:1px solid #efe7e5;margin:.75rem 0 0 1rem;padding-left:1rem}.comment-inline-composer{margin-top:.55rem;padding-left:3.2rem}.comment-inline-composer .comment-form{margin-top:0;background:#fcfbfa}.donate-card{position:sticky;top:84px;padding:1.5rem;box-shadow:0 10px 30px #1c1b1a0d}.raised-block{margin-bottom:1.25rem}.donations{list-style:none;padding:0;margin:0}.donations li{display:flex;gap:1rem;align-items:baseline;padding:.7rem 0;border-bottom:1px solid var(--border);font-size:.92rem}.form{display:flex;flex-direction:column;gap:1rem}.form label{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;font-weight:500}.form input:not([type=checkbox]),.form textarea{font:400 .95rem var(--body);padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--ink)}.form input:not([type=checkbox]):focus,.form textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.form-card{padding:2rem}.form-card-footer{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.image-preview{margin-top:.5rem;max-height:160px;border-radius:8px;object-fit:cover}.method-row{display:flex;gap:.5rem;flex-wrap:wrap}.chip{border:1px solid var(--border);background:var(--card);border-radius:999px;padding:.4rem .95rem;font:500 .85rem var(--body);cursor:pointer;color:var(--muted)}.chip-active{border-color:var(--accent);color:var(--accent);background:#fdf5f5}.rows{list-style:none;padding:0;margin:1.5rem 0 0}.row{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:.75rem}.row-title{font-family:var(--display);font-size:1.1rem;font-weight:600;text-decoration:none}.row-title:hover{text-decoration:underline}.row-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.row p{margin:.15rem 0 0;font-size:.88rem}.status{font-size:.78rem;font-weight:600;text-transform:capitalize;padding:.25rem .7rem;border-radius:999px;white-space:nowrap}.status-pending{background:#f7efdd;color:var(--warn)}.status-approved{background:#e4f2e9;color:var(--ok)}.status-rejected{background:#f9e7e8;color:var(--accent-dark)}.error{color:var(--accent-dark);font-size:.9rem}.success{color:var(--ok);font-size:.9rem}.section-title{font-size:1.4rem;margin-bottom:1.25rem}.footer{border-top:1px solid var(--border);padding:2rem 0;margin-top:3rem;color:var(--muted);font-size:.85rem;text-align:center}@media (max-width: 900px){.nav-toggle{display:inline-flex}.nav-inner{flex-wrap:wrap}.nav-links{display:none}.nav-links.nav-links-open{display:flex;flex-direction:column;align-items:stretch;width:100%;gap:0;margin-top:.5rem;padding-top:.35rem;border-top:1px solid var(--border)}.nav-links.nav-links-open a,.nav-links.nav-links-open .link-btn{font-size:1rem;padding:.65rem .15rem;text-align:left}.nav-links.nav-links-open a.btn{margin-top:.5rem;text-align:center}.detail{grid-template-columns:1fr}.donate-card{position:static;order:-1}.filters-panel{padding:1rem}.filters{flex-direction:column;align-items:stretch}.filters .search,.filters select{width:100%}.card-meta{align-items:flex-start}.card-meta .status{margin-left:0}}@media (max-width: 600px){.section{padding:1.75rem 1.25rem}.form-card{padding:1.5rem}h1{font-size:1.8rem}.card-img-empty{height:90px}.comment-body{padding-left:0}.comment-children{margin-left:.5rem;padding-left:.5rem}.row{flex-direction:column;align-items:stretch}.row-actions{justify-content:flex-start}}@media (prefers-reduced-motion: reduce){*{transition:none!important}.state-dot{animation:none}}@keyframes spin{to{transform:rotate(360deg)}}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;gap:1rem}.page-head h1{margin:0}.narrow-wide{max-width:720px}.about-body{margin-top:1.75rem;display:flex;flex-direction:column;gap:1.75rem}.about-body h2{font-size:1.3rem}.about-body p,.about-body li{margin:0;color:var(--ink)}.about-body ol{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.4rem}.about-cta{display:flex;gap:.75rem;flex-wrap:wrap;padding-top:.5rem}.grid-single{grid-template-columns:minmax(0,340px)}.form select{font:400 .95rem var(--body);padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--ink)}.form select:focus{outline:2px solid var(--accent);outline-offset:1px}.hero-stats{margin-top:1.5rem;font-size:.9rem}.filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.9rem;align-items:center}.filters .search{flex:1;min-width:200px;font:400 .95rem var(--body);padding:.6rem .85rem;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--ink)}.filters .search:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.filters select{flex-shrink:0;min-width:170px;font:400 .9rem var(--body);height:48px;padding:.6rem 2.4rem .6rem .85rem;border:1px solid var(--border);border-radius:8px;background:var(--card);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 1.05rem) 1.05rem,calc(100% - .78rem) 1.05rem;background-size:6px 6px;background-repeat:no-repeat;color:var(--ink)}.filter-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.filters-panel{padding:1.1rem;margin-bottom:1.5rem;box-shadow:0 6px 18px #1c1b1a0a}.filters-panel .filter-chips{margin-bottom:0}.campaign-state{min-height:56px;display:flex;align-items:center;padding:.15rem 0 .9rem}.campaign-state-line{margin:0;display:inline-flex;align-items:center;gap:.7rem;font-size:1rem}.campaign-state-empty{padding-left:.05rem}.state-dot{width:.8rem;height:.8rem;border-radius:999px;border:2px solid rgba(184,50,62,.22);border-top-color:var(--accent);animation:spin .8s linear infinite;flex:0 0 auto}.card-tags{margin:0 0 .35rem;text-transform:capitalize}.skel-bar{height:.9rem;border-radius:4px;background:linear-gradient(90deg,#f1efeb 25%,#e8e5df 37%,#f1efeb 63%);background-size:400% 100%;animation:skel-shimmer 1.4s ease infinite}@keyframes skel-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.skel-tags{width:45%;height:.75rem;margin-bottom:.6rem}.skel-title{width:80%;height:1.15rem;margin-bottom:.6rem}.skel-line{width:100%;margin-bottom:.4rem}.skel-line-short{width:65%}.skel-label{width:30%;height:.75rem}.skel-pct{width:15%;height:.75rem}.skel-amount{width:40%;height:1.05rem;margin-top:.6rem}.skel-fine{width:55%;height:.75rem;margin-top:.6rem}.card-meta .status{margin-left:auto}.detail-tags{margin-bottom:.4rem;text-transform:capitalize}.beneficiary{background:var(--paper);border:1px solid var(--border);border-radius:8px;padding:.6rem .9rem;font-size:.92rem;margin:.75rem 0 0}.owner-tools{padding:1.25rem;margin-bottom:2.5rem}.owner-tools h3{margin-bottom:.75rem}.updates{list-style:none;padding:0;margin:0 0 2.5rem}.updates li{border-left:3px solid var(--accent);padding:.25rem 0 .25rem 1rem;margin-bottom:1.25rem}.updates p{margin:0}.update-content{white-space:pre-wrap}.donations-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.donations-head .section-title{margin-bottom:0}.donations-head+p,.donations-head+.donations{margin-top:1rem}.report-line{margin-top:2rem}.link-btn.fine{font-size:.8rem}.check{flex-direction:row!important;align-items:center;gap:.5rem!important;font-weight:400!important}.check input{width:1.05rem;height:1.05rem;accent-color:var(--accent);cursor:pointer}.amounts-row{flex-wrap:wrap;margin-bottom:.5rem}.popular{color:var(--accent);font-size:.75rem}.share-row{display:flex;gap:.5rem;flex-wrap:wrap}.share-block{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1rem}.share-block p{margin:0 0 .5rem}.success-block{background:#f2f9f4;border:1px solid #cfe7d8;border-radius:8px;padding:.75rem .9rem}.success-block p{margin:0 0 .5rem}.skel-page-title{width:40%;height:2rem;margin-bottom:1.5rem}
