/* Shared behavior and accessibility; original portfolio design is retained. */
.skip-link{position:fixed;top:-100px;left:16px;z-index:2000;padding:12px 20px;background:#d3f944;color:#111}
.skip-link:focus{top:12px}
button.mobile-menu{appearance:none;border:0;background:transparent;padding:0;color:inherit;cursor:pointer}
button:focus-visible,a:focus-visible,[role="button"]:focus-visible{outline:3px solid #769617;outline-offset:5px}
.zoomable{cursor:zoom-in}
.password-pending main,.password-pending footer{visibility:hidden}
.password-notice{max-width:1045px;margin:40px auto;padding:0 24px}
#password-dialog{width:min(500px,calc(100vw - 32px));box-sizing:border-box;border:0;padding:36px;background:#fff;color:#111;box-shadow:0 12px 80px #0003}
#password-dialog::backdrop{background:rgba(255,255,255,.85)}
#password-dialog h1{font-family:Muli,system-ui,sans-serif;font-size:28px;line-height:1.2;color:#111;margin:0 0 16px;letter-spacing:-.5px}
#password-dialog p{font-size:16px;line-height:1.5}
#password-dialog label{display:block;font-size:15px;font-weight:700;margin-top:24px;margin-bottom:8px}
#password-dialog input{box-sizing:border-box;width:100%;font:18px system-ui;padding:12px;border:1px solid #777;border-radius:0}
#password-error{min-height:24px;color:#9c2525}
.password-actions{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-top:20px;font-size:15px}
.password-actions a{color:#222}
.password-actions button{border:0;padding:14px 18px;background:#d3f944;color:#111;font:700 15px Muli,system-ui,sans-serif;cursor:pointer}
.lightbox-open{overflow:hidden}
#portfolio-lightbox{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;overflow:visible}
#portfolio-lightbox::backdrop{background:rgba(0,0,0,.88)}
#portfolio-lightbox img{display:block;width:auto;height:auto;max-width:92vw;max-height:88vh;margin:0 auto;object-fit:contain;cursor:zoom-out}
.lightbox-close{position:fixed;top:12px;right:18px;z-index:1001;border:0;background:#fff;color:#111;border-radius:50%;width:44px;height:44px;font:32px/1 system-ui;cursor:pointer}
@media(prefers-reduced-motion:no-preference){
  .reveal-ready{opacity:0;transform:translateY(12px);transition:opacity var(--reveal-duration,.7s) ease,transform var(--reveal-duration,.7s) ease}
  .reveal-ready.is-visible{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
