/* HOW TO ADD YOUR TIMES SQUARE PHOTO:
   1) Upload your image to: ./assets/times-square-serving-food.jpg
   2) In the .hero rule below, replace the current background line with:
      background: linear-gradient(160deg, rgba(15,14,12,.72), rgba(15,14,12,.80)), url('./assets/times-square-serving-food.jpg') center/cover no-repeat;
*/
:root,[data-theme="dark"]{
  --color-bg:#0f0e0c;--color-surface:#161512;--color-surface-2:#1c1b18;
  --color-surface-offset:#232119;--color-border:rgba(255,255,255,0.08);
  --color-divider:rgba(255,255,255,0.05);--color-text:#e8e4dc;
  --color-text-muted:#9a9690;--color-text-faint:#5c5a55;
  --color-primary:#4fa89e;--color-primary-hover:#3d8f85;
  --color-primary-glow:rgba(79,168,158,0.18);
  --color-success:#5aad6f;--color-error:#d4605a;
  --shadow-sm:0 1px 3px rgba(0,0,0,0.4);--shadow-md:0 4px 16px rgba(0,0,0,0.5);
  --shadow-lg:0 12px 40px rgba(0,0,0,0.6);
  --radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:22px;
  --text-xs:clamp(0.75rem,.7rem + .25vw,.875rem);
  --text-sm:clamp(.875rem,.8rem + .35vw,1rem);
  --text-base:clamp(1rem,.95rem + .25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);
  --font-display:'Instrument Serif',Georgia,serif;
  --font-body:'Work Sans','Helvetica Neue',sans-serif;
  --transition:180ms cubic-bezier(.16,1,.3,1);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;
  --space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;
  --space-12:3rem;--space-16:4rem;--content-default:1120px;}
[data-theme="light"]{
  --color-bg:#f5f3ee;--color-surface:#faf9f6;--color-surface-2:#ffffff;
  --color-surface-offset:#edeae3;--color-border:rgba(0,0,0,0.1);
  --color-divider:rgba(0,0,0,0.06);--color-text:#1e1c18;
  --color-text-muted:#6b6860;--color-text-faint:#a8a5a0;
  --color-primary:#1a7a72;--color-primary-hover:#155f59;
  --color-primary-glow:rgba(26,122,114,0.12);
  --color-success:#2e7d46;--color-error:#b83c38;
  --shadow-sm:0 1px 3px rgba(0,0,0,0.08);--shadow-md:0 4px 16px rgba(0,0,0,.1);
  --shadow-lg:0 12px 40px rgba(0,0,0,.14);}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth;}
body{min-height:100dvh;font-family:var(--font-body);font-size:var(--text-base);
  color:var(--color-text);background:var(--color-bg);line-height:1.6;
  transition:background .3s,color .3s;}
a{color:var(--color-primary);text-decoration:none;transition:color var(--transition);}
a:hover{color:var(--color-primary-hover);}
input,button,textarea,select{font:inherit;color:inherit;}
button{cursor:pointer;background:none;border:none;}
h1,h2,h3{font-family:var(--font-display);line-height:1.15;}
.container{max-width:var(--content-default);margin-inline:auto;padding-inline:var(--space-6);}
.site-header{position:sticky;top:0;z-index:100;background:rgba(15,14,12,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-divider);}
[data-theme="light"] .site-header{background:rgba(245,243,238,.88);}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding-block:var(--space-4);gap:var(--space-4);}
.logo{display:flex;align-items:center;gap:var(--space-3);}
.logo-text{font-weight:600;font-size:var(--text-sm);line-height:1.3;}
.logo-text em{display:block;font-style:normal;font-weight:300;color:var(--color-text-muted);font-size:var(--text-xs);}
.header-actions{display:flex;align-items:center;gap:var(--space-3);}
.support-link{display:flex;align-items:center;gap:var(--space-2);padding:10px 14px;border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-muted);font-size:var(--text-sm);background:var(--color-surface);}
.support-link:hover{color:var(--color-primary);border-color:rgba(79,168,158,.35);background:var(--color-surface-2);}
.support-link-icon{display:grid;place-items:center;}
.theme-toggle{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--color-text-muted);transition:background var(--transition),color var(--transition);}
.theme-toggle:hover{background:var(--color-surface-offset);color:var(--color-text);}
.hero{padding-block:clamp(var(--space-12),8vw,var(--space-16));background:
    linear-gradient(160deg, rgba(10,9,8,.78) 0%, rgba(15,14,12,.65) 100%),
    url('./times-square-serving-food.jpg') center/cover no-repeat;
  border-bottom:1px solid var(--color-divider);text-align:center;}
.hero-badge{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-primary-glow);color:var(--color-primary);border:1px solid rgba(79,168,158,.25);font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:var(--space-1) var(--space-4);border-radius:999px;margin-bottom:var(--space-5);}
.hero h1{font-size:var(--text-2xl);font-weight:400;margin-bottom:var(--space-5);}
.hero h1 em{font-style:italic;color:var(--color-primary);}
.hero-sub{font-size:var(--text-base);color:var(--color-text-muted);max-width:56ch;margin-inline:auto;margin-bottom:var(--space-8);}
.progress-wrap{max-width:540px;margin-inline:auto;}
.progress-labels{display:flex;justify-content:space-between;font-size:var(--text-sm);margin-bottom:var(--space-2);gap:var(--space-3);}
.progress-raised{font-weight:700;color:var(--color-primary);}
.progress-goal{color:var(--color-text-muted);}
.progress-track{height:8px;background:var(--color-surface-offset);border-radius:999px;overflow:hidden;margin-bottom:var(--space-2);}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),#6ecfc4);border-radius:999px;transition:width 1.2s cubic-bezier(.16,1,.3,1);}
.progress-note{font-size:var(--text-xs);color:var(--color-text-faint);}
.donate-section{padding-block:clamp(var(--space-10),6vw,var(--space-16));}
.donate-grid{display:grid;grid-template-columns:1fr 380px;gap:var(--space-8);align-items:start;}
@media(max-width:900px){.donate-grid{grid-template-columns:1fr;}}
.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:clamp(var(--space-6),4vw,var(--space-10));box-shadow:var(--shadow-lg);}
.form-card h2{font-size:var(--text-xl);margin-bottom:var(--space-2);}
.form-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-8);}
.field-group{margin-bottom:var(--space-5);}
.field-label{display:block;font-size:var(--text-sm);font-weight:500;margin-bottom:var(--space-2);color:var(--color-text-muted);}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);}
@media(max-width:480px){.field-row{grid-template-columns:1fr;}}
.amount-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin-bottom:var(--space-3);}
.amount-btn{padding:var(--space-3) var(--space-2);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted);transition:all var(--transition);}
.amount-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-glow);}
.amount-btn.active{background:var(--color-primary-glow);border-color:var(--color-primary);color:var(--color-primary);}
.custom-amount-wrap{position:relative;}
.currency-prefix{position:absolute;left:var(--space-4);top:50%;transform:translateY(-50%);color:var(--color-text-muted);font-weight:600;pointer-events:none;}
.custom-amount-input{width:100%;padding:var(--space-3) var(--space-4) var(--space-3) var(--space-8);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text);transition:border-color var(--transition),box-shadow var(--transition);}
.custom-amount-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow);}
.custom-amount-input::placeholder{color:var(--color-text-faint);}
.text-input{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text);transition:border-color var(--transition),box-shadow var(--transition);appearance:none;}
.text-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow);}
.text-input::placeholder{color:var(--color-text-faint);}
.textarea-input{resize:vertical;min-height:70px;}
.select-input{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239a9690' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-4) center;padding-right:var(--space-8);}
.paypal-field-container{height:48px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition),box-shadow var(--transition);overflow:hidden;}
.status-msg{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-5);}
.status-msg.loading{background:var(--color-surface-offset);color:var(--color-text-muted);}
.status-msg.error{background:rgba(212,96,90,.12);color:var(--color-error);border:1px solid rgba(212,96,90,.2);}
.status-msg.success{background:rgba(90,173,111,.12);color:var(--color-success);border:1px solid rgba(90,173,111,.2);flex-direction:column;align-items:flex-start;}
@keyframes spin{to{transform:rotate(360deg);}}
.spin{animation:spin 1s linear infinite;flex-shrink:0;}
.donate-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);background:var(--color-primary);color:#fff;font-size:var(--text-base);font-weight:600;border-radius:var(--radius-lg);border:none;transition:background var(--transition),transform var(--transition),box-shadow var(--transition);box-shadow:0 4px 20px var(--color-primary-glow);margin-bottom:var(--space-4);}
.donate-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 8px 28px var(--color-primary-glow);}
.donate-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.security-note{display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-faint);text-align:center;}
.info-panel{display:flex;flex-direction:column;gap:var(--space-4);}
.info-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);}
.info-card h3{font-size:var(--text-lg);margin-bottom:var(--space-4);}
.info-card p{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.7;margin-bottom:var(--space-3);}
.info-card p:last-child{margin-bottom:0;}
.impact-list,.secure-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-3);}
.impact-list li{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);}
.impact-icon{font-size:1.25rem;flex-shrink:0;line-height:1.4;}
.impact-list strong{color:var(--color-primary);}
.secure-list{font-size:var(--text-sm);color:var(--color-text-muted);}
.site-footer{border-top:1px solid var(--color-divider);padding-block:var(--space-8);text-align:center;}
.footer-inner{display:flex;flex-direction:column;gap:var(--space-2);}
.footer-inner p{font-size:var(--text-xs);color:var(--color-text-faint);}
.footer-inner a{color:var(--color-text-muted);}
.footer-inner a:hover{color:var(--color-primary);}
@media(max-width:700px){.header-inner{align-items:flex-start;flex-direction:column;}.header-actions{width:100%;justify-content:space-between;}.support-link-text{font-size:12px;}}
@media(max-width:600px){.amount-grid{grid-template-columns:repeat(2,1fr);}.form-card{padding:var(--space-5);}.progress-labels{flex-direction:column;align-items:center;}}
