:root{--blue:#106cb4;--ink:#0d2d51;--muted:#63748a;--line:#dce4ed;--pale:#f2f6fb;--green:#eaf6ee;--danger:#8d3541}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font:16px/1.6 Arial,Helvetica,sans-serif}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a,label{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,label:focus-within,input:focus-visible{outline:3px solid #6b9bd9;outline-offset:4px}button:disabled{cursor:wait;opacity:.65}.event-bar{text-align:center;background:#edf2f8;color:#526681;font-size:12px;padding:7px 16px;letter-spacing:.03em}.event-bar span{padding:0 9px}header{max-width:1200px;margin:auto;min-height:112px;display:flex;align-items:center;gap:30px;padding:20px 40px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center}.brand img{width:174px;height:66px;object-fit:contain}.header-note{font-size:13px;color:var(--muted);border-left:1px solid var(--line);padding-left:26px}.team-link{margin-left:auto;font-size:14px;text-decoration:none;color:var(--muted)}.team-link:hover{color:var(--blue)}.team-link span{margin-left:8px}main{max-width:1120px;margin:48px auto 64px;padding:0 24px;min-height:65vh}.layout{display:grid;grid-template-columns:.9fr 1fr;gap:82px}.intro{background:var(--blue);color:white;padding:43px 38px 30px;border-radius:5px 5px 80px 5px;align-self:start;min-height:645px}.eyebrow{font-size:11px;font-weight:bold;letter-spacing:.17em}.intro .eyebrow{color:#c2d6f5}.intro h1{font:normal 72px/1.08 Georgia,'Times New Roman',serif;letter-spacing:-2px;margin:30px 0}.intro h1 em{font-weight:normal;color:#d5e5ff}.small-line{height:1px;width:44px;background:#7c9ac6;margin:29px 0}.intro p{font-size:15px;color:#d9e4f4;line-height:1.8;margin:15px 0}.intro .lead{font:24px/1.4 Georgia,serif;color:#fff}.intro-bottom{display:flex;align-items:center;gap:15px;margin-top:40px;font-size:13px;color:#d9e4f4}.heart{font:44px Georgia,serif}.form-section{padding-top:5px}.section-heading h2{font:normal 31px/1.2 Georgia,serif;margin:12px 0}.section-heading p{font-size:15px;color:var(--muted);margin:0 0 25px}.section-heading .eyebrow,.admin-head .eyebrow{color:var(--blue)}.card{border:1px solid var(--line);border-radius:12px;padding:22px;margin-bottom:16px;background:#fff}.card-top{display:flex;align-items:center;gap:10px;margin-bottom:20px}.number{background:var(--pale);color:var(--blue);font-size:12px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%}.card-top strong{font-size:14px;font-weight:600}.remove{margin-left:auto;border:0;background:none;color:#7d4750;font-size:13px;padding:4px 0 4px 8px}.field-label{display:block;font-size:14px;font-weight:600;margin-bottom:7px}.field-label span{color:#7d8b9e;font-weight:400}.name-input,.search{width:100%;border:1px solid #ccd7e5;border-radius:6px;min-height:48px;padding:12px;color:var(--ink);background:white;outline:none}.name-input:focus,.search:focus{border-color:var(--blue);box-shadow:0 0 0 3px #e9f0fa}.name-input::placeholder{color:#8b97a5}.photo-label{margin-top:19px}.upload{position:relative;border:1px dashed #adbfda;min-height:150px;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:17px;gap:4px;background:#f7f9fc;cursor:pointer;overflow:hidden}.upload:hover,.upload.drag{background:#ecf2fa;border-color:var(--blue)}.upload svg{height:28px;width:28px;color:#577aab;margin-bottom:6px}.upload strong{font-size:14px;color:var(--blue);font-weight:600}.upload small{font-size:12px;color:var(--muted)}.upload-content{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%}.file-input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.photo-preview{height:145px;width:100%;object-fit:contain;border-radius:5px}.upload.has-photo{padding:10px}.upload.has-photo small{color:var(--blue)}.add{width:100%;border:1px dashed #b7c6d9;border-radius:7px;background:white;color:var(--blue);padding:13px}.add span{font-size:21px;vertical-align:middle;margin-right:7px}.add:hover{background:var(--pale)}.form-hint{font-size:12px;line-height:1.7;color:var(--muted);text-align:center;margin:14px 0 24px}.consent{display:flex;gap:11px;font-size:13px;line-height:1.6;cursor:pointer}.consent input{width:18px;height:18px;flex-shrink:0;accent-color:var(--blue);margin:2px 0 0}.primary{width:100%;background:var(--blue);color:white;border:0;border-radius:7px;padding:14px 20px;font-weight:600;display:flex;justify-content:center;gap:25px;align-items:center;min-height:52px}.primary:hover{background:#103368}.care{text-align:center;font-size:12px;color:var(--muted);margin:11px 0 0}.error{font-size:13px;color:#a23542;margin:8px 0}.error:empty{margin:16px 0 0}.invalid{border-color:#b74854}footer{max-width:1120px;margin:auto;border-top:1px solid var(--line);padding:24px;display:flex;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted)}footer a{font-weight:600;text-decoration:none}footer a:hover{text-decoration:underline}.success{max-width:700px;margin:50px auto;text-align:center;background:var(--green);border:1px solid #d0e8d7;padding:64px 42px;border-radius:18px;position:relative;overflow:hidden}.success h1{font:38px/1.2 Georgia,serif;margin:20px 0;color:#214f3d}.success p{color:#476456;max-width:460px;margin:16px auto}.success .check{width:64px;height:64px;border-radius:50%;background:#fff;display:grid;place-items:center;margin:auto;font-size:30px;color:#37845c}.success-eyebrow{display:block;margin-top:24px;color:#397453}.success-button{max-width:300px;margin:30px auto 0;background:#286647}.admin-shell{padding-top:3px}.admin-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.admin-head h1,.login-card h1{font:38px Georgia,serif;margin:10px 0}.admin-head p,.login-card>p{color:var(--muted);font-size:14px}.back{border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 16px;border-radius:7px;text-decoration:none;font-size:14px;white-space:nowrap}.back:hover{border-color:#9eafc3;background:var(--pale)}.logout{color:var(--danger)}.admin-notice{background:var(--pale);border-radius:8px;padding:14px 18px;font-size:13px;color:var(--muted);margin:24px 0}.toolbar{display:flex;align-items:center;gap:25px;margin:30px 0 14px}.toolbar .search{max-width:420px}.count{font-size:14px;color:var(--muted);margin-left:auto}.admin-actions{display:flex;justify-content:flex-end;gap:10px;margin-bottom:16px}.primary.compact{width:auto;min-height:0;padding:10px 16px;gap:8px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.tribute{border:1px solid var(--line);border-radius:10px;overflow:hidden}.tribute img{width:100%;height:240px;object-fit:contain;background:var(--pale);display:block}.tribute-body{padding:18px}.tribute h3{margin:0 0 5px;font-size:17px;overflow-wrap:anywhere}.tribute p{font-size:12px;color:var(--muted);min-height:38px}.tribute-controls{display:flex;align-items:center;gap:10px;margin-top:18px}.select-tribute{font-size:12px;display:flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}.select-tribute input{accent-color:var(--blue)}.download{display:block;flex:1;text-align:center;text-decoration:none;font-size:13px;border:1px solid var(--line);padding:8px;border-radius:5px}.download:hover{background:var(--pale)}.empty{text-align:center;padding:65px 20px;background:var(--pale);border-radius:12px;grid-column:1/-1}.empty h2{font:26px Georgia,serif}.empty p{color:var(--muted);font-size:14px}.login-shell{max-width:460px;margin:55px auto}.login-card{border:1px solid var(--line);border-radius:14px;padding:35px;background:#fff;box-shadow:0 12px 35px #0d2d5110}.login-card .eyebrow{color:var(--blue)}.admin-page main{min-height:66vh}@media(max-width:800px){header{padding:17px 24px;min-height:90px}.header-note{display:none}.brand img{width:143px;height:54px}.layout{gap:30px;grid-template-columns:.85fr 1fr}.intro{padding:30px 25px}.intro h1{font-size:56px}.intro p{font-size:14px}.card{padding:18px}.gallery{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.event-bar{font-size:10px;padding:6px 10px}.event-bar span{padding:0 4px}header{padding:12px 22px;min-height:80px}.brand img{width:134px;height:48px}.team-link{font-size:12px}main{margin:24px auto 38px;padding:0 20px}.layout{display:block}.intro{min-height:0;padding:28px 27px 30px;border-radius:5px 5px 42px 5px;margin-bottom:32px}.intro .eyebrow{font-size:9px;letter-spacing:.14em}.intro h1{font-size:51px;line-height:1.05;margin:18px 0}.intro h1 br{display:none}.intro .small-line{display:none}.intro .lead{font-size:19px;line-height:1.45;margin:15px 0 12px}.intro .lead br{display:none}.intro p{font-size:14px;line-height:1.7;margin:10px 0}.intro-bottom{display:none}.section-heading h2{font-size:28px}.section-heading p{font-size:14px}.card{padding:18px}.upload{min-height:140px}footer{margin:0 20px;padding:22px 0;flex-direction:column;gap:5px;font-size:11px}.success{padding:40px 23px;margin:25px 0}.success h1{font-size:32px}.success p{font-size:15px}.admin-head{align-items:flex-start;flex-direction:column}.admin-head h1,.login-card h1{font-size:32px}.toolbar{flex-wrap:wrap;gap:12px;margin-bottom:12px}.count{margin:0}.admin-actions{justify-content:stretch;flex-wrap:wrap}.admin-actions button{flex:1}.gallery{grid-template-columns:1fr}.tribute img{height:280px}.login-shell{margin:20px 0}.login-card{padding:26px 22px}.tribute-controls{flex-wrap:wrap}.download{min-width:150px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
