.person-content::before, .person-content::after { background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 45%, transparent), transparent); content: ""; height: 1px; left: 12%; position: absolute; right: 12%; }
.person-content::before { top: -15px; }
.person-content::after { bottom: -18px; }
.person-category { align-items: center; display: flex; gap: 12px; justify-content: center; }
.person-category > span { align-items: center; border: 1px solid color-mix(in srgb, var(--accent) 52%, transparent); border-radius: 50%; color: var(--accent); display: flex; font-size: 9px; height: 34px; justify-content: center; width: 34px; }
.person-category small { color: rgba(255,255,255,.42); display: block; font-size: 9px; letter-spacing: .1em; }
.person-category b { color: var(--accent); display: block; font-size: 12px; font-weight: 500; margin-top: 2px; }
.person-content h1 { font-size: clamp(58px, 6.8vw, 112px); font-weight: 800; letter-spacing: -.035em; line-height: 1.18; margin: 12px auto 7px; max-width: 1400px; text-shadow: 0 18px 55px rgba(0,0,0,.28); text-wrap: balance; }
.person-content h1.person-name--long { font-size: clamp(52px, 5.8vw, 96px); line-height: 1.22; }
.gold-rule { align-items: center; display: flex; height: 17px; justify-content: center; margin: 8px auto 14px; width: min(420px, 72vw); }
.gold-rule i { background: linear-gradient(to left, var(--accent), transparent); height: 1px; width: 180px; }
.gold-rule i:last-child { transform: scaleX(-1); }
.gold-rule b { color: var(--accent); font-size: 9px; font-weight: 400; margin: 0 12px; }
.person-content p { color: rgba(255,255,255,.76); font-size: clamp(18px, 1.7vw, 27px); margin: 0; }
.person-content strong { color: var(--accent); display: block; font-size: clamp(13px, 1.3vw, 18px); font-weight: 400; margin-top: 12px; }
.person-content blockquote { color: rgba(255,255,255,.48); font-size: clamp(14px, 1.2vw, 18px); line-height: 1.8; margin: 17px auto 0; max-width: 900px; }
.closing-slide h1 { font-size: clamp(100px, 15vw, 220px); margin-bottom: 20px; }
.closing-slide img { background: linear-gradient(145deg, #fffdf7, #e9dcb9); border: 1px solid rgba(215,182,91,.7); border-radius: 4px; box-shadow: 0 18px 60px rgba(0,0,0,.25); margin-top: 45px; padding: 9px; width: 230px; }
.stage-progress { background: rgba(255,255,255,.12); bottom: 0; height: 3px; left: 0; position: absolute; right: 0; z-index: 5; }
.stage-progress i { background: var(--accent); display: block; height: 100%; transition: width .6s ease; }
.show-controls { align-items: center; bottom: 20px; display: flex; gap: 8px; left: 50%; opacity: .18; position: absolute; transform: translateX(-50%); transition: .25s ease; z-index: 10; }
.show-controls:hover, .show-controls:focus-within { opacity: 1; }
.show-controls button, .show-controls a { align-items: center; background: rgba(0,0,0,.22); border: 1px solid rgba(255,255,255,.2); border-radius: 50%; color: white; display: flex; height: 36px; justify-content: center; width: 36px; }
.show-controls .play-control { background: var(--accent); border-color: var(--accent); color: var(--ink); }

/* Admin */
.admin-login { align-items: center; background: radial-gradient(circle at 50% 30%, #185447, #071d18 62%); display: flex; justify-content: center; min-height: 100svh; overflow: hidden; padding: 30px; position: relative; }
.login-glow { border: 1px solid rgba(215,182,91,.15); border-radius: 50%; height: 720px; position: absolute; width: 720px; }
.login-glow::after, .login-glow::before { border: 1px solid rgba(215,182,91,.1); border-radius: 50%; content: ""; inset: -80px; position: absolute; }
.login-glow::after { inset: -170px; }
.back-link { color: rgba(255,255,255,.55); font-size: 13px; position: absolute; right: 36px; top: 30px; z-index: 2; }
.login-card { background: rgba(255,255,255,.97); border-radius: 10px; box-shadow: 0 30px 110px rgba(0,0,0,.34); max-width: 440px; padding: 38px 42px 42px; position: relative; width: 100%; z-index: 2; }
.login-card > img { display: block; margin: 0 auto 30px; width: 210px; }
.login-card > span { color: #a38231; font-size: 11px; }
.login-card h1 { font-size: 48px; font-weight: 800; margin: 3px 0 5px; }
.login-card > p { color: #71807b; font-size: 13px; line-height: 1.8; margin: 0 0 23px; }
.login-card label span { color: #40564e; display: block; font-size: 11px; margin-bottom: 7px; }
.login-card input { background: #f5f3ed; border: 1px solid #e5dfd1; border-radius: 5px; direction: ltr; outline: none; padding: 14px; text-align: center; width: 100%; }
.login-card input:focus { border-color: var(--gold); }
.login-card > button { background: var(--green); border: 0; border-radius: 5px; color: white; margin-top: 13px; padding: 14px; width: 100%; }
.login-card > button:disabled { opacity: .5; }
.admin-shell { background: #f2f1ec; display: grid; grid-template-columns: 245px minmax(0, 1fr); min-height: 100svh; }
.admin-sidebar { background: linear-gradient(180deg, #092c25, #061c17); color: white; display: flex; flex-direction: column; min-height: 100vh; padding: 28px 17px; position: sticky; top: 0; }
.admin-sidebar > img { background: white; border-radius: 5px; margin: 0 auto 46px; padding: 8px; width: 185px; }
.admin-sidebar nav { display: grid; gap: 6px; }
.admin-sidebar nav a { align-items: center; border-radius: 5px; color: rgba(255,255,255,.62); display: flex; font-size: 12px; gap: 12px; padding: 12px 14px; }
.admin-sidebar nav a.active, .admin-sidebar nav a:hover { background: rgba(215,182,91,.13); color: var(--gold-light); }
.admin-sidebar nav span { font-size: 17px; width: 20px; }
.logout-button { background: transparent; border: 1px solid rgba(255,255,255,.12); border-radius: 5px; color: rgba(255,255,255,.45); margin-top: auto; padding: 11px; }
.admin-main { max-width: 1500px; padding: 44px clamp(25px, 5vw, 70px) 80px; width: 100%; }
.admin-header { align-items: flex-end; display: flex; justify-content: space-between; margin-bottom: 34px; }
.admin-header > div > span, .panel-heading > div > span { color: #988039; font-size: 11px; }
.admin-header h1 { font-size: clamp(34px, 4vw, 52px); font-weight: 800; margin: 2px 0 0; }
.admin-stats { display: flex; gap: 32px; }
.admin-stats span { color: #788680; font-size: 10px; }
.admin-stats b { color: var(--green); display: block; font-size: 26px; font-weight: 700; }
.admin-panel { background: white; border: 1px solid #e5e2d8; border-radius: 8px; box-shadow: 0 12px 40px rgba(38,58,51,.04); margin-bottom: 28px; padding: 28px; }
.panel-heading { align-items: center; border-bottom: 1px solid #ebe8de; display: flex; justify-content: space-between; margin-bottom: 25px; padding-bottom: 18px; }
.panel-heading h2 { font-size: 29px; font-weight: 700; margin: 0; }
.quiet-button { background: transparent; border: 1px solid #ddd8ca; border-radius: 4px; color: #6e7975; font-size: 11px; padding: 8px 13px; }
.honoree-form { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field { display: block; }
.field--wide { grid-column: 1 / -1; }
.field--small { max-width: 180px; }
.field > span { color: #52635d; display: block; font-size: 10px; margin-bottom: 7px; }
.field input, .field select, .field textarea, .panel-heading--records select { background: #f8f7f3; border: 1px solid #e4e1d7; border-radius: 4px; color: #18352c; outline: none; padding: 12px 13px; resize: vertical; width: 100%; }
.field input:focus, .field select:focus, .field textarea:focus { background: white; border-color: #c5a64f; box-shadow: 0 0 0 3px rgba(215,182,91,.11); }
