:root{--bg-color:#fdfbf7;--text-color:#2c2c2c;--accent-color:#4b0082;--highlight-gold:#daa520;--rubric-color:#555555;--nav-bg:#ffffff;--border-color:#dddddd;--font-serif:'Georgia','Times New Roman',serif;--base-font-size:18px;--line-height:1.6}body.dark-mode{--bg-color:#121212;--text-color:#e0e0e0;--accent-color:#bb86fc;--highlight-gold:#ffd700;--rubric-color:#aaaaaa;--nav-bg:#1e1e1e;--border-color:#333333}body.large-font{--base-font-size:24px}body{font-family:var(--font-serif);background-color:var(--bg-color);color:var(--text-color);font-size:var(--base-font-size);line-height:var(--line-height);margin:0;transition:background-color 0.3s ease,color 0.3s ease;-webkit-tap-highlight-color:transparent}.page-container{max-width:800px;margin:0 auto;padding:24px;padding-bottom:120px;box-sizing:border-box;text-align:center}.heading-1{font-weight:bold;font-size:1.5em;margin:0.5em 0;color:var(--accent-color);text-transform:uppercase}.heading-2{font-weight:bold;font-size:1.2em;text-transform:uppercase;margin:1.5em 0 1em 0;letter-spacing:1px}.heading-3{font-weight:bold;font-size:1em;margin:1.5em 0 0.5em 0;text-transform:uppercase}.rubric{font-style:italic;color:var(--rubric-color);margin:1.2em 0;font-size:0.95em;line-height:1.5;white-space:pre-line}.text-block{margin-bottom:1em;text-align:center}.responsive-reading{display:block;margin-bottom:1em;text-align:center}.verse-num{font-weight:bold;color:var(--accent-color);margin-right:8px;display:inline}.hymn-header{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:1.5em 0 1em 0}.hymn-number{font-size:2.8em;font-weight:bold;color:var(--accent-color);line-height:1}.hymn-meter{font-size:0.9em;font-weight:normal;color:var(--rubric-color);margin-top:5px;letter-spacing:2px;text-transform:uppercase}.stanza{margin:2em auto;text-align:center;line-height:1.6;max-width:600px}.stanza p{margin:0.5em 0}.toc-row{display:flex;align-items:flex-end;margin-bottom:0.8em;cursor:pointer;padding:5px 0;text-align:left}.toc-row:hover{background-color:rgba(0,0,0,0.05)}.toc-num{font-weight:bold;min-width:30px;text-align:left}.toc-text{flex-grow:1;font-weight:bold;text-align:left}.toc-dots{flex-grow:1;border-bottom:2px dotted var(--rubric-color);margin:0 5px 5px 5px;opacity:0.5}.toc-page{font-weight:bold;color:var(--accent-color)}.navbar{display:flex;justify-content:space-between;align-items:center;padding:15px 24px;background:rgba(255,255,255,0.55);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-bottom:1px solid rgba(255,255,255,0.45);position:sticky;top:0;z-index:100;box-shadow:0 4px 24px rgba(0,0,0,0.08),inset 0 1px 0 rgba(255,255,255,0.85);text-align:left}body.dark-mode .navbar{background:rgba(20,20,28,0.60);border-bottom:1px solid rgba(255,255,255,0.07);box-shadow:0 4px 24px rgba(0,0,0,0.45),inset 0 1px 0 rgba(255,255,255,0.06)}.nav-left{display:flex;align-items:center;gap:12px}.amec-logo{height:40px;width:auto;object-fit:contain;filter:brightness(0.8) contrast(1.1);transition:filter 0.2s ease,transform 0.2s ease;border-radius:4px}.amec-logo:hover{filter:brightness(1) contrast(1.1);transform:scale(1.05)}.logo{font-weight:bold;font-size:1.1em;font-family:sans-serif}.nav-right{display:flex;align-items:center;gap:10px}.nav-right button{background:rgba(255,255,255,0.35);border:1px solid rgba(255,255,255,0.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--text-color);height:36px;padding:5px 10px;border-radius:20px;font-size:0.9em;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,0.08),inset 0 1px 0 rgba(255,255,255,0.7);transition:background 0.2s ease,box-shadow 0.2s ease}.nav-right button:hover{background:rgba(255,255,255,0.6);box-shadow:0 2px 10px rgba(0,0,0,0.12),inset 0 1px 0 rgba(255,255,255,0.9)}body.dark-mode .nav-right button{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);box-shadow:0 1px 4px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.06)}body.dark-mode .nav-right button:hover{background:rgba(255,255,255,0.15);box-shadow:0 2px 10px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.1)}.theme-toggle-wrap{display:inline-flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border-radius:12px;background:rgba(255,255,255,0.35);border:1px solid rgba(255,255,255,0.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 4px rgba(0,0,0,0.08),inset 0 1px 0 rgba(255,255,255,0.7);cursor:pointer;justify-content:space-between;box-sizing:border-box;transition:background 0.2s ease}.theme-toggle-wrap:hover{background:rgba(255,255,255,0.6)}body.dark-mode .theme-toggle-wrap{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12)}body.dark-mode .theme-toggle-wrap:hover{background:rgba(255,255,255,0.15)}.theme-toggle-label{font-size:0.9em;color:var(--text-color);font-family:sans-serif;user-select:none}.theme-switch{position:relative;width:36px;height:20px;flex-shrink:0}.theme-switch input{opacity:0;width:0;height:0;position:absolute}.theme-switch__thumb{position:absolute;inset:0;background:rgba(120,120,140,0.35);border-radius:10px;border:1px solid rgba(0,0,0,0.08);transition:background 0.25s ease}.theme-switch__thumb::before{content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:white;box-shadow:0 1px 3px rgba(0,0,0,0.3);transition:transform 0.25s ease}.theme-switch input:checked+.theme-switch__thumb{background:var(--accent-color);border-color:transparent}.theme-switch input:checked+.theme-switch__thumb::before{transform:translateX(16px)}.theme-switch input:focus-visible+.theme-switch__thumb{outline:2px solid var(--accent-color);outline-offset:2px}.mobile-only{display:none}@media (max-width:480px){.desktop-only{display:none !important}.mobile-only{display:inline-flex}}.menu-toggle{display:none;background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--text-color)}.nav-controls{display:flex;align-items:center;gap:10px}@media (max-width:480px){.menu-toggle{display:inline-flex}.nav-controls{display:none;position:absolute;top:60px;right:12px;flex-direction:column;align-items:stretch;gap:10px;padding:12px;background:rgba(255,255,255,0.70);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,0.55);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,0.14),inset 0 1px 0 rgba(255,255,255,0.9);z-index:999;min-width:200px}.nav-controls.open{display:flex}.nav-controls #about-toggle{text-align:left;padding:10px 14px;border-radius:12px}.nav-controls .language-select-wrapper{width:100%}.nav-controls .custom-select{width:100%}.nav-controls .custom-select__trigger{width:100%;justify-content:space-between;border-radius:12px;box-sizing:border-box}.nav-controls .custom-select__menu{top:auto;bottom:calc(100%+6px);right:0;left:0;min-width:0;width:100%;transform-origin:bottom right}.nav-controls .custom-select.is-open .custom-select__menu{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}}@media (max-width:480px){body.dark-mode .nav-controls{background:rgba(25,25,35,0.75);border:1px solid rgba(255,255,255,0.08);box-shadow:0 12px 40px rgba(0,0,0,0.5),inset 0 1px 0 rgba(255,255,255,0.06)}}.search-container{padding:15px 24px;max-width:800px;margin:0 auto;position:relative}#search-input{width:100%;padding:12px;font-size:16px;border:1px solid rgba(255,255,255,0.55);border-radius:24px;background:rgba(255,255,255,0.50);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);box-shadow:0 2px 12px rgba(0,0,0,0.07),inset 0 1px 0 rgba(255,255,255,0.75);color:var(--text-color);box-sizing:border-box;text-align:center;transition:box-shadow 0.2s ease,background 0.2s ease}#search-input:focus{outline:none;background:rgba(255,255,255,0.72);box-shadow:0 4px 20px rgba(0,0,0,0.10),inset 0 1px 0 rgba(255,255,255,0.9);border-color:rgba(255,255,255,0.8)}body.dark-mode #search-input{background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.10);box-shadow:0 2px 12px rgba(0,0,0,0.35),inset 0 1px 0 rgba(255,255,255,0.05)}body.dark-mode #search-input:focus{background:rgba(255,255,255,0.12);border-color:rgba(255,255,255,0.18);box-shadow:0 4px 20px rgba(0,0,0,0.5),inset 0 1px 0 rgba(255,255,255,0.08)}#search-results{position:absolute;top:calc(100% - 6px);left:15px;right:15px;background:rgba(255,255,255,0.60);backdrop-filter:blur(20px) saturate(170%);-webkit-backdrop-filter:blur(20px) saturate(170%);border:1px solid rgba(255,255,255,0.55);border-top:none;border-radius:0 0 20px 20px;box-shadow:0 8px 24px rgba(0,0,0,0.10),inset 0 -1px 0 rgba(255,255,255,0.6);z-index:1000;max-height:300px;overflow-y:auto}body.dark-mode #search-results{background:rgba(30,30,40,0.65);border-color:rgba(255,255,255,0.10);box-shadow:0 8px 24px rgba(0,0,0,0.45),inset 0 -1px 0 rgba(255,255,255,0.05)}.search-option{padding:12px 15px;border-bottom:1px solid rgba(0,0,0,0.07);cursor:pointer;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:4px;transition:background 0.15s ease}body.dark-mode .search-option{border-bottom-color:rgba(255,255,255,0.07)}.search-option:last-child{border-bottom:none}.search-option:hover{background:rgba(255,255,255,0.45)}body.dark-mode .search-option:hover{background:rgba(255,255,255,0.08)}.offline-indicator{background-color:#ff6b35;color:white;padding:2px 8px;border-radius:12px;font-size:0.75em;font-weight:bold;animation:pulse 2s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:0.7}100%{opacity:1}}.dark-mode .amec-logo{filter:brightness(1.2) contrast(1.3) invert(0.1)}.dark-mode .amec-logo:hover{filter:brightness(1.4) contrast(1.3) invert(0.1)}.search-label{font-weight:bold;color:var(--accent-color)}.search-detail{color:var(--rubric-color);font-size:0.9em}.update-banner{background:linear-gradient(135deg,var(--accent-color),var(--highlight-gold));color:white;padding:12px 24px;position:sticky;top:0;z-index:1001;box-shadow:0 2px 8px rgba(0,0,0,0.15);animation:slideDown 0.5s ease-out}.update-banner-content{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;gap:15px}.update-icon{font-size:1.2em;animation:spin 2s linear infinite}.update-message{flex:1;font-weight:500;font-size:0.95em}.update-button{background:rgba(255,255,255,0.2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.4);color:white;padding:8px 16px;border-radius:20px;font-size:0.9em;font-weight:500;cursor:pointer;box-shadow:0 1px 6px rgba(0,0,0,0.1),inset 0 1px 0 rgba(255,255,255,0.35);transition:all 0.2s ease}.update-button:hover{background:rgba(255,255,255,0.35);box-shadow:0 3px 12px rgba(0,0,0,0.15),inset 0 1px 0 rgba(255,255,255,0.5);transform:translateY(-1px)}.dismiss-button{background:none;border:none;color:rgba(255,255,255,0.8);font-size:1.5em;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all 0.2s ease}.dismiss-button:hover{background:rgba(255,255,255,0.2);color:white}@keyframes slideDown{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.page-controls{display:flex;justify-content:space-between;align-items:center;padding:15px 24px;position:fixed;bottom:0;left:0;width:100%;background:rgba(255,255,255,0.55);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-top:1px solid rgba(255,255,255,0.45);box-sizing:border-box;box-shadow:0 -4px 24px rgba(0,0,0,0.08)}.page-controls button{padding:12px 24px;background:rgba(75,0,130,0.75);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:white;border:1px solid rgba(255,255,255,0.2);border-radius:20px;font-size:16px;font-weight:bold;cursor:pointer;min-width:80px;box-shadow:0 2px 12px rgba(75,0,130,0.35),inset 0 1px 0 rgba(255,255,255,0.2);transition:background 0.2s ease,box-shadow 0.2s ease}.page-controls button:active{opacity:0.9}#current-page-display{font-family:sans-serif;font-weight:bold;color:var(--text-color)}.hidden{display:none !important}@media (max-width:360px){.page-container{padding:16px}.amec-logo{height:32px}.logo{font-size:1em}.nav-left{gap:8px}}.search-highlight{color:var(--accent-color);font-weight:bold;background-color:rgba(255,255,0,0.2);border-radius:3px;padding:0 2px}#app-footer{background:rgba(255,255,255,0.55);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-top:1px solid rgba(255,255,255,0.45);padding:10px 20px;position:fixed;bottom:0;left:0;width:100%;z-index:200;box-shadow:0 -4px 24px rgba(0,0,0,0.08),inset 0 -1px 0 rgba(255,255,255,0.85);box-sizing:border-box;display:flex;flex-direction:column;gap:10px}body.dark-mode #app-footer{background:rgba(20,20,28,0.60);border-top:1px solid rgba(255,255,255,0.07);box-shadow:0 -4px 24px rgba(0,0,0,0.45),inset 0 -1px 0 rgba(255,255,255,0.06)}.nav-shortcuts{display:flex;justify-content:center;align-items:center;gap:15px}.nav-link{background:rgba(255,255,255,0.0);border:1px solid transparent;color:var(--accent-color);cursor:pointer;padding:5px 10px;font-weight:bold;font-size:0.9rem;text-transform:uppercase;letter-spacing:0.5px;font-family:sans-serif;border-radius:14px;transition:background 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease}.nav-link:hover{background:rgba(255,255,255,0.45);border-color:rgba(255,255,255,0.6);box-shadow:0 1px 6px rgba(0,0,0,0.08),inset 0 1px 0 rgba(255,255,255,0.7)}body.dark-mode .nav-link:hover{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.12);box-shadow:0 1px 6px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.05)}.divider{color:var(--border-color)}.pagination-controls{display:flex;justify-content:space-between;align-items:center;width:100%}.btn-primary{background:rgba(75,0,130,0.75);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:white;border:1px solid rgba(255,255,255,0.2);padding:10px 20px;border-radius:20px;font-size:1rem;font-weight:bold;cursor:pointer;min-width:90px;box-shadow:0 2px 12px rgba(75,0,130,0.35),inset 0 1px 0 rgba(255,255,255,0.2);transition:background 0.2s ease,box-shadow 0.2s ease,transform 0.1s ease}.btn-primary:hover{background:rgba(75,0,130,0.90);box-shadow:0 4px 18px rgba(75,0,130,0.45),inset 0 1px 0 rgba(255,255,255,0.25)}.btn-primary:active{transform:scale(0.97);opacity:0.9}body.dark-mode .btn-primary{background:rgba(187,134,252,0.25);border:1px solid rgba(187,134,252,0.35);box-shadow:0 2px 12px rgba(187,134,252,0.2),inset 0 1px 0 rgba(255,255,255,0.08)}body.dark-mode .btn-primary:hover{background:rgba(187,134,252,0.38);box-shadow:0 4px 18px rgba(187,134,252,0.3),inset 0 1px 0 rgba(255,255,255,0.12)}.page-display{font-weight:bold;color:var(--text-color);font-family:sans-serif}@media (min-width:768px){#app-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:15px 40px}.pagination-controls{display:contents}#prev-page{grid-column:1;justify-self:start}#next-page{grid-column:3;justify-self:end}.nav-shortcuts{grid-column:2;gap:20px}}.offline-message{text-align:center;margin-top:40px;padding:30px;background:var(--nav-bg);border-radius:12px;border:2px solid var(--border-color);box-shadow:0 4px 12px rgba(0,0,0,0.1)}.offline-message h2{color:var(--accent-color);margin-bottom:15px;font-size:1.5em}.offline-message p{margin-bottom:20px;color:var(--rubric-color);line-height:1.6}.loading-indicator{text-align:center;margin-top:40px;padding:30px}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top:4px solid var(--accent-color);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}.loading-indicator p{color:var(--rubric-color);font-style:italic}.page-not-found{text-align:center;margin-top:40px;padding:30px;background:var(--nav-bg);border-radius:12px;border:2px solid var(--border-color)}.page-not-found p{margin-bottom:10px;color:var(--rubric-color)}@media (max-width:480px){.amec-logo{height:35px}.logo{font-size:1.05em}}.language-select-wrapper{display:flex;align-items:center}.custom-select{position:relative;display:inline-block}.custom-select__trigger{display:inline-flex;align-items:center;gap:7px;height:36px;padding:5px 12px;border-radius:20px;background:rgba(255,255,255,0.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.6);box-shadow:0 1px 4px rgba(0,0,0,0.08),inset 0 1px 0 rgba(255,255,255,0.7);color:var(--text-color);font-family:inherit;font-size:0.9em;cursor:pointer;white-space:nowrap;transition:background 0.2s ease,box-shadow 0.2s ease}.custom-select__trigger:hover{background:rgba(255,255,255,0.6);box-shadow:0 2px 10px rgba(0,0,0,0.12),inset 0 1px 0 rgba(255,255,255,0.9)}.custom-select__chevron{flex-shrink:0;transition:transform 0.2s ease}.custom-select.is-open .custom-select__chevron{transform:rotate(180deg)}.custom-select__menu{position:absolute;top:calc(100%+6px);right:0;list-style:none;margin:0;padding:5px;min-width:160px;background:rgba(255,255,255,0.80);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,0.55);border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,0.14),inset 0 1px 0 rgba(255,255,255,0.9);z-index:9999;opacity:0;transform:translateY(-6px) scale(0.97);pointer-events:none;transition:opacity 0.17s ease,transform 0.17s ease;transform-origin:top right}.custom-select.is-open .custom-select__menu{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.custom-select__option{padding:10px 14px;border-radius:9px;cursor:pointer;font-size:0.92em;color:var(--text-color);transition:background 0.15s ease;user-select:none}.custom-select__option:hover{background:rgba(75,0,130,0.08)}.custom-select__option.is-active{background:rgba(75,0,130,0.10);font-weight:bold;color:var(--accent-color)}body.dark-mode .custom-select__trigger{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);box-shadow:0 1px 4px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.06)}body.dark-mode .custom-select__trigger:hover{background:rgba(255,255,255,0.15);box-shadow:0 2px 10px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.1)}body.dark-mode .custom-select__menu{background:rgba(28,28,38,0.90);border:1px solid rgba(255,255,255,0.08);box-shadow:0 12px 40px rgba(0,0,0,0.5),inset 0 1px 0 rgba(255,255,255,0.06)}body.dark-mode .custom-select__option:hover{background:rgba(187,134,252,0.12)}body.dark-mode .custom-select__option.is-active{background:rgba(187,134,252,0.18);color:var(--accent-color)}.about-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:2000;display:flex;align-items:center;justify-content:center;padding:16px}.about-modal{background:var(--nav-bg);color:var(--text-color);border-radius:14px;padding:28px 28px 24px;max-width:420px;width:100%;box-shadow:0 16px 40px rgba(0,0,0,0.25);position:relative;font-family:var(--font-serif)}.about-modal h2{margin:0 0 10px;font-size:1.25rem;color:var(--accent-color)}.about-modal h3{margin:0 0 8px;font-size:1rem;color:var(--accent-color)}.about-modal p{margin:0 0 12px;font-size:0.92rem;line-height:1.6}.about-divider{border:none;border-top:1px solid var(--border-color);margin:16px 0}.about-contact-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.about-contact-list li{display:flex;flex-direction:column;gap:2px}.contact-label{font-size:0.8rem;color:var(--rubric-color);text-transform:uppercase;letter-spacing:0.04em}.about-contact-list a{color:var(--accent-color);text-decoration:none;font-size:0.95rem;word-break:break-all}.about-contact-list a:hover{text-decoration:underline}.about-modal-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:1rem;cursor:pointer;color:var(--rubric-color);line-height:1;padding:4px 6px;border-radius:6px}.about-modal-close:hover{background:var(--border-color);color:var(--text-color)}.about-modal p.about-version{margin:16px 0 0;font-size:0.78rem;color:var(--rubric-color);text-align:right;letter-spacing:0.03em}.qr-link{display:block;text-align:center;color:var(--accent-color);text-decoration:none;font-size:0.85rem;word-break:break-all;margin:4px auto 0}.qr-link:hover{text-decoration:underline}