*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;background-color:#f9fafb}.transition-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}.gallery-container{position:relative;min-height:80svh;max-height:80svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:1rem;z-index:0}.content-container{width:100%;max-width:56rem;display:flex;flex-direction:column;align-items:center;text-align:center}.title-text{margin-top:1rem;font-weight:700;font-size:1.5rem;line-height:2rem}.subtitle-text{color:#4b5563}.description-text{margin-top:.5rem;color:#374151}.content-item{padding:.5rem;max-width:100%;height:70svh;display:flex;align-items:center;justify-content:center}.content-image{max-width:100%;max-height:70svh;object-fit:contain}.video-wrapper{width:100vw;aspect-ratio:16/9}.glyph-navigation-wrapper{position:fixed;bottom:0;left:0;right:0;z-index:100}.glyph-navigation{display:flex;justify-content:center;align-items:center;gap:1.5rem;padding:3rem}.glyph-button{width:80px;height:80px;min-width:44px;min-height:44px;background:transparent;border:none}.glyph-button:focus-visible{outline:2px solid rgba(255,255,255,.8);outline-offset:4px;border-radius:8px}.content-unavailable,.content-error{display:flex;align-items:center;justify-content:center;min-height:200px;color:#b91c1c}.content-text{padding:2rem;max-width:65ch;max-height:70svh;overflow-y:auto;line-height:1.7;color:#374151}.content-text pre{white-space:pre-wrap;word-wrap:break-word;font-family:inherit;margin:0}.content-text-loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:#6b7280}.content-text-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;color:#b91c1c;text-align:center}.content-text-error .error-details{margin-top:.5rem;font-size:.875rem;color:#6b7280}.gallery-loading{display:flex;align-items:center;justify-content:center;height:100vh}.gallery-loading-text{font-size:1.25rem;color:#4b5563}@media(max-width:767px){.glyph-navigation{gap:1rem;padding:1rem 1rem 2rem}}.upload-page{min-height:100vh;display:flex;flex-direction:column;background-color:#f9fafb}.upload-loading{flex:1;display:flex;align-items:center;justify-content:center;color:#4b5563}.login-container{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.login-form{width:100%;max-width:24rem;padding:2rem;background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.login-title{font-size:1.5rem;font-weight:600;color:#111827;margin-bottom:.5rem}.login-subtitle{color:#6b7280;margin-bottom:1.5rem}.login-field{margin-bottom:1rem}.login-input{width:100%;padding:.75rem 1rem;font-size:1rem;border:1px solid rgb(209,213,219);border-radius:.375rem;transition:border-color .15s,box-shadow .15s}.login-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.login-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.login-error{color:#b91c1c;font-size:.875rem;margin-bottom:1rem}.login-button{width:100%;padding:.75rem 1rem;font-size:1rem;font-weight:500;color:#fff;background-color:#111827;border:none;border-radius:.375rem;cursor:pointer;transition:background-color .15s}.login-button:hover:not(:disabled){background-color:#1f2937}.login-button:disabled{background-color:#9ca3af;cursor:not-allowed}.upload-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#fff;border-bottom:1px solid rgb(229,231,235)}.upload-title{font-size:1.25rem;font-weight:600;color:#111827}.upload-logout-button{padding:.5rem 1rem;font-size:.875rem;color:#6b7280;background:none;border:1px solid rgb(209,213,219);border-radius:.375rem;cursor:pointer;transition:background-color .15s,color .15s}.upload-logout-button:hover{background-color:#f3f4f6;color:#374151}.upload-main{flex:1;padding:2rem;max-width:48rem;margin:0 auto;width:100%}.upload-placeholder{text-align:center;padding:4rem 2rem;background:#fff;border-radius:.5rem;border:2px dashed rgb(209,213,219)}.upload-placeholder p{color:#6b7280;margin-bottom:.5rem}.upload-placeholder-note{font-size:.875rem}.upload-footer{padding:1rem 2rem;text-align:center;border-top:1px solid rgb(229,231,235);background:#fff}.upload-back-link{color:#3b82f6;text-decoration:none;font-size:.875rem}.upload-back-link:hover{text-decoration:underline}.upload-form{background:#fff;border-radius:.5rem;padding:2rem;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.upload-dropzone{border:2px dashed rgb(209,213,219);border-radius:.5rem;padding:2rem;text-align:center;cursor:pointer;transition:border-color .15s,background-color .15s;margin-bottom:1.5rem}.upload-dropzone:hover{border-color:#9ca3af;background-color:#f9fafb}.upload-dropzone-active{border-color:#3b82f6;background-color:#eff6ff}.upload-dropzone-filled{border-style:solid;border-color:#22c55e;background-color:#f0fdf4}.upload-file-input{display:none}.upload-dropzone-text p{margin:0;color:#6b7280}.upload-dropzone-hint{font-size:.875rem;margin-top:.5rem!important}.upload-file-preview{display:flex;flex-direction:column;gap:.25rem}.upload-file-type{font-size:.75rem;font-weight:600;text-transform:uppercase;color:#22c55e}.upload-file-name{font-weight:500;color:#111827;word-break:break-all}.upload-file-size{font-size:.875rem;color:#6b7280}.upload-fields{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.upload-field{display:flex;flex-direction:column;gap:.375rem}.upload-field-short{max-width:12rem}.upload-label{font-size:.875rem;font-weight:500;color:#374151}.upload-required{color:#ef4444}.upload-input,.upload-textarea{padding:.625rem .875rem;font-size:1rem;border:1px solid rgb(209,213,219);border-radius:.375rem;transition:border-color .15s,box-shadow .15s;font-family:inherit}.upload-input:focus,.upload-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.upload-input:disabled,.upload-textarea:disabled{background-color:#f3f4f6;cursor:not-allowed}.upload-textarea{resize:vertical;min-height:4rem}.energy-sliders{margin-bottom:1.5rem;padding:1rem;background-color:#f9fafb;border-radius:.375rem}.energy-sliders-title{font-size:.875rem;font-weight:600;color:#374151;margin-bottom:1rem}.energy-sliders-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem 1.5rem}@media(max-width:640px){.energy-sliders-grid{grid-template-columns:1fr}}.energy-slider-row{display:flex;align-items:center;gap:.75rem}.energy-slider-label{font-size:.875rem;color:#4b5563;min-width:5.5rem}.energy-slider-input{flex:1;height:.375rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#d1d5db;border-radius:.25rem;cursor:pointer}.energy-slider-input::-webkit-slider-thumb{-webkit-appearance:none;width:1rem;height:1rem;background:#3b82f6;border-radius:50%;cursor:pointer;transition:background-color .15s}.energy-slider-input::-webkit-slider-thumb:hover{background:#2563eb}.energy-slider-input::-moz-range-thumb{width:1rem;height:1rem;background:#3b82f6;border:none;border-radius:50%;cursor:pointer;transition:background-color .15s}.energy-slider-input::-moz-range-thumb:hover{background:#2563eb}.energy-slider-input:disabled{opacity:.5;cursor:not-allowed}.energy-slider-value{font-size:.875rem;font-weight:500;color:#111827;min-width:1.5rem;text-align:right}.upload-validation-error{color:#b91c1c;font-size:.875rem;margin-bottom:1rem}.upload-submit-button{width:100%;padding:.875rem 1.5rem;font-size:1rem;font-weight:500;color:#fff;background-color:#111827;border:none;border-radius:.375rem;cursor:pointer;transition:background-color .15s}.upload-submit-button:hover:not(:disabled){background-color:#1f2937}.upload-submit-button:disabled{background-color:#9ca3af;cursor:not-allowed}.upload-status{text-align:center;padding:3rem 2rem;background:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.upload-status p{margin:0}.upload-status-loading{color:#4b5563}.upload-status-spinner{width:2.5rem;height:2.5rem;border:3px solid rgb(229,231,235);border-top-color:#3b82f6;border-radius:50%;margin:0 auto 1rem;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.upload-progress-container{width:100%;max-width:20rem;height:.5rem;background:#e5e7eb;border-radius:.25rem;margin:0 auto 1rem;overflow:hidden}.upload-progress-bar{height:100%;background:#3b82f6;border-radius:.25rem;transition:width .15s ease-out}.upload-status-success{color:#166534}.upload-status-success p:first-child{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.upload-status-id{font-size:.875rem;color:#4b5563;margin-bottom:1.5rem!important}.upload-status-error{color:#991b1b}.upload-status-error p:first-child{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.upload-status-message{font-size:.875rem;margin-bottom:1.5rem!important}.upload-status-actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.upload-status-link{display:inline-block;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;color:#fff;background-color:#22c55e;border-radius:.375rem;text-decoration:none;transition:background-color .15s}.upload-status-link:hover{background-color:#16a34a}.upload-status-button{padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;color:#374151;background:#fff;border:1px solid rgb(209,213,219);border-radius:.375rem;cursor:pointer;transition:background-color .15s}.upload-status-button:hover{background-color:#f3f4f6}
