:root{--bg:#f6f0e7;--paper:#fffaf2;--ink:#202a23;--muted:#687168;--green:#244a34;--dark:#143322;--gold:#d9aa4e;--rust:#b85f3b;--red:#9e3434;--line:#dfd5c6}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,#ead9b8 0,transparent 26rem),var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif}a{color:inherit;text-decoration:none}header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 4vw;background:#f6f0e7ef;backdrop-filter:blur(14px);border-bottom:1px solid #244a3422}.brand{font:700 1.25rem Georgia,serif;white-space:nowrap}nav{display:flex;gap:13px;align-items:center;overflow-x:auto;padding:5px 0;font-size:.84rem;font-weight:750}nav a{white-space:nowrap}nav a:hover{color:var(--rust)}main{width:min(1120px,calc(100% - 30px));margin:auto;padding:42px 0 80px}.hero,.intro{position:relative;overflow:hidden;padding:clamp(38px,7vw,78px);border-radius:28px;background:linear-gradient(135deg,#143322f2,#315c42e8);color:white;box-shadow:0 20px 55px #273a2c22;margin-bottom:44px}.hero h1,.intro h1{font:700 clamp(2.6rem,7vw,5.6rem)/.95 Georgia,serif;margin:8px 0 15px}.hero>p:last-of-type,.intro>p:last-child{max-width:680px;color:#ffffffcf;font-size:1.1rem}.eyebrow{color:#efc66f;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:900}.stats{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.stats div{min-width:130px;padding:15px 18px;border:1px solid #ffffff33;background:#ffffff12;border-radius:16px}.stats b,.stats span{display:block}.stats b{font-size:1.25rem}.stats span{font-size:.78rem;color:#ffffffb8}.champagne{position:fixed;inset:0;pointer-events:none;z-index:50;overflow:hidden}.champagne span{position:absolute;left:var(--left);bottom:-18vh;font-size:var(--size);filter:drop-shadow(0 8px 7px #0003);animation:champagne-cannon var(--duration) cubic-bezier(.15,.7,.2,1) var(--delay) both;will-change:transform,opacity}@keyframes champagne-cannon{0%{transform:translate3d(0,15vh,0) rotate(0deg) scale(.25);opacity:0}7%{opacity:1}55%{opacity:1}100%{transform:translate3d(var(--drift),-130vh,0) rotate(var(--spin)) scale(1.12);opacity:0}}h2{font:700 clamp(1.8rem,4vw,2.6rem) Georgia,serif}.timeline{display:grid;gap:13px}.timeline article{display:grid;grid-template-columns:145px 1fr;gap:24px;padding:22px;border-radius:18px;background:var(--paper);border:1px solid var(--line)}.timeline article>div:first-child{display:flex;flex-direction:column}.timeline small,.tag{color:var(--rust);font-weight:850;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem}.timeline h3,.timeline p{margin:0 0 6px}.timeline p{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.panel,.person,.admin-section,.login-panel{background:var(--paper);border:1px solid var(--line);border-radius:21px;padding:23px;box-shadow:0 8px 24px #283a2d0c}.person{transition:.18s}.person:hover{transform:translateY(-4px);box-shadow:0 16px 32px #283a2d18}.person img,.profile-photo{width:100%;aspect-ratio:1;object-fit:cover;border-radius:16px}.avatar{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--green);color:white;font-size:1.5rem;font-weight:900}.avatar.big{width:120px;height:120px;font-size:3rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form{display:grid;gap:15px}label{display:grid;gap:7px;font-size:.86rem;font-weight:800}input,select,textarea{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:white;color:var(--ink);font:inherit}textarea{min-height:100px;resize:vertical}button,.button{display:inline-block;width:max-content;border:0;border-radius:999px;padding:11px 17px;background:var(--green);color:white;font-weight:850;cursor:pointer}button:hover,.button:hover{background:var(--dark)}button.danger,.danger{background:var(--red)}.leader{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.feed{display:grid;gap:10px;margin-top:20px}.feed p{margin:0;padding:16px 18px;background:var(--paper);border:1px solid var(--line);border-radius:14px}.feed small{display:block;color:var(--muted);margin-top:5px}.flash{padding:13px 17px;border-radius:13px;background:#d9eadb;margin-bottom:16px}.flash.error{background:#f2d8d2}.danger-zone{background:linear-gradient(135deg,#4b1717,#9e3434)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid .full{grid-column:1/-1}.inline-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.compact-list{margin-top:20px}.compact-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:10px 0}.small{padding:7px 11px}section+section,.admin-section+.admin-section{margin-top:38px}footer{text-align:center;padding:28px;color:var(--muted);border-top:1px solid var(--line)}table{width:100%;border-collapse:collapse;background:var(--paper)}th,td{padding:13px;border-bottom:1px solid var(--line);text-align:left}th{background:var(--green);color:white}@media(max-width:760px){header{position:static;display:block}.brand{display:block;margin-bottom:10px}.two-col,.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.timeline article{grid-template-columns:1fr}.hero,.intro{padding:38px 23px;border-radius:20px}.champagne span{font-size:2.2rem}}

/* Final mobile navigation and polished upload controls */
.menu-toggle{display:none;position:relative;width:46px;height:42px;padding:0;border-radius:12px;background:var(--green);align-items:center;justify-content:center;flex-direction:column;gap:5px;flex:0 0 auto}
.menu-toggle span{display:block;width:22px;height:2px;border-radius:4px;background:#fff;transition:transform .2s ease,opacity .2s ease}
.menu-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle.open span:nth-child(2){opacity:0}
.menu-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.file-upload{display:flex;align-items:center;gap:10px;min-height:48px;position:relative;flex-wrap:wrap}
.file-upload input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}
.file-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border-radius:999px;background:var(--green);color:#fff;font-weight:850;cursor:pointer;box-shadow:0 5px 14px #244a3425;transition:transform .15s ease,background .15s ease}
.file-button:before{content:'📷';margin-right:8px}
.file-upload:hover .file-button{background:var(--dark);transform:translateY(-1px)}
.file-upload:focus-within .file-button{outline:3px solid #d9aa4e88;outline-offset:2px}
.file-name{min-width:0;color:var(--muted);font-weight:650;font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:17px}
.photo-card{overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:20px;box-shadow:0 8px 24px #283a2d0c}
.photo-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.photo-info{padding:16px}.photo-info p{margin:0 0 7px}.photo-info form{margin-top:12px}
.upload-panel{background:var(--paper);border:1px solid var(--line);border-radius:21px;padding:23px;box-shadow:0 8px 24px #283a2d0c}
@media(max-width:900px){
  .site-header{position:sticky;display:flex;align-items:center;padding:12px 15px}
  .brand{margin:0;max-width:calc(100% - 65px);overflow:hidden;text-overflow:ellipsis}
  .menu-toggle{display:flex;margin-left:auto}
  nav{display:none;position:absolute;top:calc(100% + 1px);left:0;right:0;max-height:calc(100vh - 70px);overflow-y:auto;padding:10px 15px 20px;background:#f6f0e7fa;border-bottom:1px solid var(--line);box-shadow:0 18px 30px #1b2e2026;flex-direction:column;align-items:stretch;gap:4px}
  nav.open{display:flex}
  nav a{display:block;padding:13px 14px;border-radius:12px;font-size:.96rem}
  nav a:hover,nav a:focus{background:#244a3412;color:var(--green)}
}
@media(max-width:600px){
  main{width:min(100% - 20px,1120px);padding:22px 0 56px}
  .hero,.intro{margin-bottom:26px}
  .cards,.photo-grid{grid-template-columns:1fr}
  .panel,.person,.admin-section,.login-panel,.upload-panel{padding:18px;border-radius:17px}
  input,select,textarea{font-size:16px;min-height:46px}
  button,.button{min-height:44px}
  .file-upload{display:grid;grid-template-columns:1fr}
  .file-button{width:100%}
  .file-name{text-align:center}
  table{min-width:560px}
  .compact-list>div{align-items:flex-start;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.champagne span{animation:none!important;display:none}.person,.file-button,.menu-toggle span{transition:none!important}}
