@font-face{font-family:"Montserrat";src:url("img/Montserrat-Regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Montserrat";src:url("img/Montserrat-SemiBold.ttf") format("truetype");font-style:normal;font-weight:600;font-display:swap}
:root{--page-width:1050px;--page-scale:1;--scaled-page-width:1050px;--background:#111111;--text:#f4f2f2;--quiet:#888484;--hero-fade:5000ms}
*{box-sizing:border-box}html{overflow-y:scroll;scrollbar-gutter:stable}html,body{margin:0;min-height:100%;background:var(--background);color:var(--text);font-family:"Montserrat",Arial,sans-serif;overflow-x:hidden}body.viewer-open{overflow:hidden}
#scale-shell{position:relative;width:var(--scaled-page-width);margin:0 auto}#page{width:var(--page-width);margin:0;padding:0 0 26px;transform:scale(var(--page-scale));transform-origin:top left}
.site-header{position:relative;height:127px}.logo-link{position:absolute;top:24px;left:-43px;display:block;width:455px;height:78px}.logo{display:block;width:455px;height:78px}
.menu-wrap{position:absolute;top:47px;right:0;z-index:20}.menu-button{display:block;width:24px;height:24px;padding:0;border:0;background:transparent;cursor:pointer}.menu-button img{display:block;width:24px;height:24px}
.site-menu{position:absolute;top:38px;right:0;min-width:170px;padding:8px 0;background:rgba(23,23,23,.98);border:1px solid #363636;box-shadow:0 10px 30px rgba(0,0,0,.42)}.site-menu a{display:block;padding:11px 17px;color:var(--text);font-size:15px;font-weight:600;text-decoration:none;white-space:nowrap}.site-menu a:hover,.site-menu a:focus-visible{background:#2a2a2a;outline:none}
.hero{position:relative;width:1050px;overflow:hidden;background:#0b0b0b}.hero-image{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity var(--hero-fade) ease-in-out;pointer-events:none}.hero-image.is-visible{opacity:1}
.intro{margin-top:40px}h1{margin:0;font-size:40px;line-height:1.16;font-weight:600;letter-spacing:-.02em}.intro-copy{margin-top:25px;font-size:17px;line-height:1.58;text-align:justify;text-justify:inter-word;hyphens:manual}.intro-copy p{margin:0 0 24px}.intro-copy p:last-child{margin-bottom:0}.about-image{display:block;width:1050px;height:auto;margin:0 0 40px;object-fit:contain}.back-link{display:inline-block;margin-top:18px;color:var(--quiet);font-size:17px;line-height:1.58;text-decoration:none}.back-link:hover,.back-link:focus-visible{text-decoration:underline;outline:none}.about-signature{margin-top:34px}.login-form{width:760px;margin-top:34px}.login-fields{display:flex;gap:22px;align-items:flex-end;margin-bottom:22px}.login-field{flex:1 1 0;min-width:0}.login-form label{display:block;margin:0 0 8px;font-size:17px;line-height:1.4;font-weight:600}.login-form input{display:block;width:100%;height:48px;margin:0;padding:8px 12px;border:1px solid #4b4b4b;background:#191919;color:var(--text);font:400 17px/1.4 "Montserrat",Arial,sans-serif;outline:none}.login-form input:focus{border-color:#888484}.login-form button{display:inline-block;padding:12px 22px;border:1px solid #555;background:#202020;color:var(--text);font:600 17px/1.3 "Montserrat",Arial,sans-serif;cursor:pointer}.login-form button:hover,.login-form button:focus-visible{background:#2a2a2a;outline:none}
.gallery-section{margin-top:57px}.portrait-grid{display:grid;width:1048px;height:1048px;margin:0 auto;grid-template-columns:repeat(6,163px);grid-template-rows:repeat(6,163px);gap:14px}.portrait-button{display:block;width:163px;height:163px;padding:0;border:0;background:#191919;cursor:zoom-in;overflow:visible}.portrait-button img{display:block;width:163px;height:163px;object-fit:cover}
.ai-note{margin:11px 0 0;color:var(--quiet);font-size:12px;line-height:1.45}.site-footer{display:flex;justify-content:space-between;align-items:baseline;margin-top:31px;font-size:17px;line-height:1.4}.site-footer a{color:var(--text);text-decoration:none}.site-footer a:hover,.site-footer a:focus-visible{text-decoration:underline}
.viewer{position:fixed;inset:0;z-index:1000}.viewer-dim{position:absolute;inset:0;background:rgba(0,0,0,.82);opacity:0;transition:opacity 280ms ease}.viewer.is-open .viewer-dim{opacity:1}
.viewer-frame{position:fixed;margin:0;width:1050px;height:1050px;background:#0d0d0d;overflow:hidden;transform-origin:top left;box-shadow:0 24px 80px rgba(0,0,0,.55);transition:left 360ms cubic-bezier(.2,.8,.2,1),top 360ms cubic-bezier(.2,.8,.2,1),width 360ms cubic-bezier(.2,.8,.2,1),height 360ms cubic-bezier(.2,.8,.2,1),opacity 240ms ease}.viewer-stage{position:absolute;inset:0;overflow:hidden;touch-action:none;background:#0d0d0d}
.viewer-image{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;opacity:0;transform-origin:0 0;user-select:none;-webkit-user-drag:none;transition:opacity 450ms ease;will-change:transform,opacity}.viewer-image.is-visible{opacity:1}
.viewer-control{position:absolute;z-index:3;border:0;color:#fff;background:rgba(0,0,0,.33);cursor:pointer;opacity:.72;transition:opacity 150ms ease,background 150ms ease}.viewer-control:hover,.viewer-control:focus-visible{opacity:1;background:rgba(0,0,0,.55);outline:none}.viewer-close{top:14px;right:14px;width:48px;height:48px;border-radius:50%;font-family:Arial,sans-serif;font-size:39px;line-height:44px}.viewer-arrow{top:50%;width:58px;height:96px;margin-top:-48px;font-family:Arial,sans-serif;font-size:74px;line-height:82px}.viewer-prev{left:12px}.viewer-next{right:12px}.viewer.is-zoomed .viewer-arrow,.viewer.is-zoomed .viewer-close{opacity:.22}
@media(prefers-reduced-motion:reduce){.hero-image,.viewer-dim,.viewer-frame,.viewer-image{transition-duration:1ms!important}}


@media (max-width: 700px) {
  .intro-copy {
    font-size: 25px;
  }
  .back-link {
    font-size: 25px;
  }
  .site-menu a {
    font-size: 25px;
  }
  .site-footer {
    font-size: 25px;
  }
  .login-form {
    width: 100%;
  }
  .login-form label,
  .login-form input,
  .login-form button {
    font-size: 25px;
  }
  .login-form input {
    height: 64px;
  }
}


.message{margin-top:28px;padding:16px 18px;border:1px solid #444;background:#181818;font-size:17px;line-height:1.5}
.error-message{border-color:#744}
.notice-message{border-color:#49634d}
.stacked-form{width:620px}
.stacked-form label{margin-top:18px}
.stacked-form label:first-of-type{margin-top:0}
.stacked-form input{margin-bottom:18px}
.admin-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:30px}
.admin-subtitle{margin:8px 0 0;color:var(--quiet);font-size:17px}
.quiet-button,.download-button{display:inline-block;padding:12px 20px;border:1px solid #555;background:#202020;color:var(--text);font-size:17px;font-weight:600;text-decoration:none}
.quiet-button:hover,.download-button:hover{background:#2a2a2a}
.admin-panel,.credential-card{margin-top:34px;padding:24px;border:1px solid #3f3f3f;background:#161616}
.admin-panel h2,.credential-card h2{margin:0 0 20px;font-size:25px}
.credential-card p{margin:0 0 18px;font-size:17px;line-height:1.5}
.credential-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:18px}
.credential-grid span{display:block;margin-bottom:7px;color:var(--quiet);font-size:14px}
.credential-grid code{display:block;padding:13px;border:1px solid #444;background:#101010;font-size:17px;overflow-wrap:anywhere}
.client-create-form .login-fields{margin-bottom:18px}
.password-line{display:flex;gap:10px}
.password-line input{flex:1}
.small-button,.secondary-button,.copy-credentials,.delete-button{padding:11px 16px;border:1px solid #555;background:#202020;color:var(--text);font:600 15px/1.3 "Montserrat",Arial,sans-serif;cursor:pointer}
.small-button:hover,.secondary-button:hover,.copy-credentials:hover,.delete-button:hover{background:#2a2a2a}
.admin-actions{display:flex;gap:12px;justify-content:flex-end}
.client-table{width:100%}
.client-row{display:grid;grid-template-columns:1.4fr 1.4fr .7fr auto;gap:18px;align-items:center;padding:14px 0;border-top:1px solid #333;font-size:15px}
.client-row-head{padding-top:0;border-top:0;color:var(--quiet);font-size:13px;font-weight:600;text-transform:uppercase}
.client-row code{overflow-wrap:anywhere}
.client-row form{margin:0}
.delete-button{padding:8px 12px}
.status-ready{color:#a9d5ae}
.status-missing{color:#d7a3a3}
.empty-state{margin:0;color:var(--quiet);font-size:17px}
.download-button{margin-top:26px}
.logout-line{margin:22px 0 0}

@media (max-width:700px){
  .message,.admin-subtitle,.credential-card p,.empty-state,.quiet-button,.download-button{font-size:25px}
  .stacked-form{width:100%}
  .admin-panel h2,.credential-card h2{font-size:32px}
  .credential-grid{grid-template-columns:1fr}
  .credential-grid span{font-size:20px}
  .credential-grid code{font-size:25px}
  .client-row{grid-template-columns:1.25fr 1.25fr .7fr auto;font-size:20px}
  .client-row-head{font-size:17px}
  .small-button,.secondary-button,.copy-credentials,.delete-button{font-size:22px}
}

.panel-note{margin:-6px 0 22px;color:var(--quiet);font-size:17px;line-height:1.5}.archive-upload-form{max-width:760px}.archive-upload-form>label{display:block;margin:18px 0 8px;font-size:17px;font-weight:600}.archive-upload-form input[type="file"]{display:block;width:100%;padding:12px;border:1px solid #444;background:#111;color:var(--text);font:400 16px/1.4 "Montserrat",Arial,sans-serif}.upload-name-options{margin:22px 0;padding:18px;border:1px solid #444}.upload-name-options legend{padding:0 8px;font-size:17px;font-weight:600}.radio-line,.replace-line{display:flex!important;align-items:center;gap:10px;margin:12px 0!important;font-size:17px!important;font-weight:400!important}.radio-line input,.replace-line input{width:auto;height:auto;margin:0}.upload-name-options select{width:100%;margin:4px 0 10px;padding:11px;border:1px solid #444;background:#111;color:var(--text);font:400 16px/1.4 "Montserrat",Arial,sans-serif}.upload-result{margin:18px 0;font-size:17px}.upload-result code{overflow-wrap:anywhere}.client-row{grid-template-columns:1.25fr 1.25fr .6fr minmax(250px,auto)}.client-row-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center}.client-row-actions form{margin:0}.inline-upload-form{display:inline-block}.inline-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.inline-file-label{display:inline-block}@media(max-width:700px){.panel-note,.archive-upload-form>label,.radio-line,.replace-line,.upload-name-options legend,.upload-result{font-size:25px!important}.archive-upload-form input[type="file"],.upload-name-options select{font-size:22px}.client-row{grid-template-columns:1.1fr 1.1fr .55fr minmax(330px,auto)}}

.admin-intro{padding-top:34px}

body.admin-session .about-image{display:none!important}


.upload-progress{margin:18px 0 20px}
.upload-progress[hidden]{display:none}
.upload-progress-track{width:100%;height:16px;border:1px solid #4b4b4b;background:#111;overflow:hidden}
.upload-progress-bar{width:0;height:100%;background:#8a8a8a;transition:width 120ms linear}
.upload-progress-text{margin:9px 0 0;color:var(--quiet);font-size:15px;line-height:1.45}
.inline-upload-progress{min-width:280px;margin:10px 0 0}
.js-upload-form button:disabled,.js-upload-form .small-button[aria-disabled="true"]{opacity:.55;cursor:wait}
@media(max-width:700px){
  .upload-progress-track{height:22px}
  .upload-progress-text{font-size:22px}
  .inline-upload-progress{min-width:420px}
}
