.gallery-page{--gallery-ink:#10180f;--gallery-lime:#d9ff43;--gallery-paper:#f1f1e9;background:var(--gallery-paper);color:var(--gallery-ink);min-height:100vh}.gallery-nav{background:var(--gallery-ink);color:var(--gallery-paper);justify-content:space-between;align-items:center;gap:24px;padding:24px 5vw;display:flex}.gallery-brand{flex-direction:column;font:900 32px/1 Impact,sans-serif;display:flex}.gallery-brand>span:first-child{color:var(--gallery-lime)}.gallery-nav>a:last-child{color:var(--gallery-lime);font:700 12px/1.5 monospace}.gallery-heading{max-width:1440px;margin:auto;padding:65px 7vw 50px}.gallery-heading>p{letter-spacing:.12em;font:700 12px/1.5 monospace}.gallery-heading h1{letter-spacing:-.025em;margin:24px 0 0;font:900 clamp(60px,8vw,116px)/.95 Impact,sans-serif}.gallery-heading em{color:#507128;font-style:normal}.gallery-content{max-width:1440px;margin:auto;padding:0 7vw 80px}.gallery-toolbar{letter-spacing:.06em;border-top:1px solid #10180f30;justify-content:space-between;gap:20px;padding:20px 0;font:700 11px/1.5 monospace;display:flex}.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;display:grid}.gallery-card{text-align:left;cursor:pointer;color:var(--gallery-ink);background:#fff;border:1px solid #10180f20;padding:0;transition:transform .15s,box-shadow .15s;overflow:hidden}.gallery-card:hover{box-shadow:6px 6px 0 var(--gallery-lime);transform:translateY(-4px)}.gallery-card>img{aspect-ratio:1;object-fit:contain;background:#10180f;width:100%;display:block}.gallery-card>span{overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:16px;padding:16px;font:700 11px/1.5 monospace;display:flex}.gallery-card b{font-size:20px}.gallery-skeleton{aspect-ratio:1;background:#10180f0c;animation:1.4s ease-in-out infinite gallery-pulse}@keyframes gallery-pulse{50%{opacity:.4}}.gallery-empty{text-align:center;border:1px dashed #10180f40;flex-direction:column;justify-content:center;align-items:center;min-height:350px;padding:35px;display:flex}.gallery-empty>span{color:#507128;font-size:60px}.gallery-empty h2{margin:20px 0;font:900 clamp(28px,4vw,48px)/1.1 Impact,sans-serif}.gallery-empty p{color:#52604b;font-size:16px;line-height:1.5}.gallery-more{background:var(--gallery-ink);color:var(--gallery-lime);cursor:pointer;border:0;margin:40px auto 0;padding:18px 30px;font:700 12px monospace;display:block}.gallery-more:disabled{opacity:.5;cursor:wait}.gallery-error{border:1px solid #10180f40;margin-bottom:24px;padding:24px;font:14px/1.5 monospace}.gallery-error button{cursor:pointer;background:0 0;border:0;margin-left:12px;text-decoration:underline}.gallery-dialog{background:var(--gallery-ink);color:var(--gallery-paper);border:1px solid #d9ff4350;width:min(820px,92vw);max-height:92dvh;padding:0;overflow:auto}.gallery-dialog::backdrop{background:#060c08df}.gallery-dialog>img{object-fit:contain;width:100%;max-width:100%;max-height:76dvh;display:block}.gallery-close{border:1px solid var(--gallery-lime);background:var(--gallery-ink);color:var(--gallery-lime);cursor:pointer;width:40px;height:40px;font-size:18px;position:absolute;top:12px;right:12px}.gallery-dialog>div{overflow-wrap:anywhere;justify-content:space-between;gap:24px;padding:20px;font:12px/1.5 monospace;display:flex}.gallery-dialog a{color:var(--gallery-lime);flex-shrink:0}.gallery-footer{min-height:0;color:var(--gallery-ink);border-top:1px solid #10180f30;flex-direction:row;justify-content:space-between;padding:28px 5vw;font:700 11px/1.5 monospace;display:flex}.gallery-page a:focus-visible,.gallery-page button:focus-visible{outline-offset:4px;outline:3px solid #507128}@media (max-width:1000px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}@media (max-width:700px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gallery-nav{padding:20px 6vw}.gallery-brand{font-size:26px}.gallery-nav>a:last-child{font-size:10px}.gallery-heading{padding:45px 7vw 35px}.gallery-toolbar{font-size:10px}.gallery-toolbar>span:last-child{text-align:right;max-width:150px}.gallery-card>span{padding:12px;font-size:10px}.gallery-dialog>div{flex-direction:column;gap:12px}}@media (prefers-reduced-motion:reduce){.gallery-skeleton{animation:none}.gallery-card{transition:none}}
