@keyframes bt-heroUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bt-heroClip{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}@keyframes bt-heroFade{0%{opacity:0}to{opacity:1}}@keyframes bt-blink{50%{opacity:0}}@keyframes bt-pulse{50%{background-color:var(--bt-ghost)}}:root{--bt-white: #ffffff;--bt-black: #0a0a0a;--bt-gray: #f2f2f0;--bt-mid: #888880;--bt-ghost: #d8d8d4;--bt-coral: #e8321a;--bt-border: 1px solid var(--bt-black);--bt-spring: cubic-bezier(.16, 1, .3, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bt-white);color:var(--bt-black);font-family:IBM Plex Mono,monospace;font-weight:300;line-height:1.6;overflow-x:hidden;min-height:100vh;display:flex;flex-direction:column}a{text-decoration:none;color:inherit}ul,ol{list-style:none}img{display:block;max-width:100%}button{font:inherit;cursor:pointer}.bt-coral{color:var(--bt-coral)}.label{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bt-mid)}.skip-link{position:absolute;top:-100%;left:1rem;z-index:1000;background:var(--bt-coral);color:var(--bt-white);padding:.5rem 1rem;font-family:Syne,sans-serif;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.skip-link:focus{top:1rem}nav{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--bt-white);border-bottom:var(--bt-border);height:52px;display:grid;grid-template-columns:220px 1fr auto;align-items:stretch;animation:bt-heroFade .5s ease both}.nav-logo-cell{border-right:var(--bt-border);display:flex;align-items:center;padding:0 1.25rem}.nav-logo{font-family:Syne,sans-serif;font-size:.9rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--bt-black)}.nav-logo span{color:var(--bt-coral)}.nav-links-cell{display:flex;align-items:stretch}.nav-links-cell a{display:flex;align-items:center;padding:0 1.25rem;font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-mid);border-right:var(--bt-border);transition:background .15s,color .15s}.nav-links-cell a:hover{background:var(--bt-coral);color:var(--bt-white)}.nav-context{display:flex;align-items:center;padding:0 1.25rem;font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-ghost);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-cta-cell{border-left:var(--bt-border);display:flex;align-items:stretch}.nav-cta-cell a,.nav-cta-cell button{display:flex;align-items:center;height:100%;padding:0 1.5rem;font-family:Syne,sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--bt-white);background:var(--bt-black);border:none;transition:background .15s}.nav-cta-cell a:hover,.nav-cta-cell button:hover{background:var(--bt-coral)}.nav-cta-cell form{display:flex;align-items:stretch}.frame{width:100%;max-width:1280px;margin:52px auto 0;border-left:var(--bt-border);border-right:var(--bt-border);flex:1;background:var(--bt-white)}.page-head{padding:3.5rem 2rem 2.5rem;border-bottom:var(--bt-border)}.page-head .label{animation:bt-heroFade .8s ease .1s both}.page-title{font-family:Syne,sans-serif;font-size:clamp(3rem,10vw,7.5rem);font-weight:800;line-height:.9;letter-spacing:-.04em;text-transform:uppercase;margin-top:.75rem;clip-path:inset(0 100% 0 0);animation:bt-heroClip .9s var(--bt-spring) .2s both}.page-title span{color:var(--bt-coral)}.page-head-meta{margin-top:1.25rem;font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-mid);animation:bt-heroUp .7s var(--bt-spring) .5s both}.page-head-meta .sep{color:var(--bt-ghost);margin:0 .6em}.album-card{display:grid;grid-template-columns:auto 3.2rem 1fr auto;align-items:center;gap:1.5rem;padding:1rem 2rem 1rem 1rem;border-bottom:var(--bt-border);animation:bt-heroUp .7s var(--bt-spring) both;transition:background .2s}.album-card:hover{background:var(--bt-gray)}.album-card:focus-visible{outline:2px solid var(--bt-coral);outline-offset:-2px}.album-thumb{width:108px;height:108px;border:var(--bt-border);overflow:hidden;background-color:var(--bt-gray);animation:bt-pulse 1.6s ease-in-out infinite;flex-shrink:0}.album-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--bt-spring)}.album-card:hover .album-thumb img{transform:scale(1.05)}.album-thumb-empty{display:flex;align-items:center;justify-content:center;color:var(--bt-mid);animation:none}.album-idx{font-size:.7rem;letter-spacing:.1em;color:var(--bt-coral)}.album-text{min-width:0}.album-title{font-family:Syne,sans-serif;font-size:clamp(1.15rem,2.6vw,1.9rem);font-weight:800;line-height:1.05;letter-spacing:-.02em;text-transform:uppercase;transition:color .2s;overflow:hidden;text-overflow:ellipsis}.album-card:hover .album-title{color:var(--bt-coral)}.album-meta{margin-top:.35rem;display:flex;gap:1.25rem;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-mid)}.album-arrow{font-family:Syne,sans-serif;font-weight:800;color:var(--bt-ghost);transition:color .2s,transform .2s}.album-card:hover .album-arrow{color:var(--bt-coral);transform:translate(4px)}.empty-state{padding:5rem 2rem;text-align:center;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-mid)}.empty-state:before{content:"●";display:block;color:var(--bt-coral);margin-bottom:1rem;animation:bt-blink 1.5s step-start infinite}.album-head{padding:3rem 2rem 2rem;border-bottom:var(--bt-border)}.back-link{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bt-mid);transition:color .15s}.back-link:hover{color:var(--bt-coral)}.album-head h1{font-family:Syne,sans-serif;font-size:clamp(2.2rem,7vw,5rem);font-weight:800;line-height:.95;letter-spacing:-.03em;text-transform:uppercase;margin-top:1rem;clip-path:inset(0 100% 0 0);animation:bt-heroClip .9s var(--bt-spring) .15s both}.album-head h1 span{color:var(--bt-coral)}.album-head-meta{margin-top:1.25rem;display:flex;align-items:center;flex-wrap:wrap;gap:.6em 1.5em;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-mid);animation:bt-heroUp .7s var(--bt-spring) .4s both}.share-btn{background:none;border:var(--bt-border);padding:.35rem .8rem;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-black);transition:background .15s,color .15s}.share-btn:hover{background:var(--bt-black);color:var(--bt-white)}.share-btn.copied{background:var(--bt-coral);border-color:var(--bt-coral);color:var(--bt-white)}.jgrid{display:flex;flex-wrap:wrap;gap:6px;padding:6px;--row-h: 320px}.jgrid:after{content:"";flex:1e7 1 0%}.jtile{position:relative;flex-grow:calc(var(--ar) * 100);flex-basis:calc(var(--ar) * var(--row-h));border:var(--bt-border);overflow:hidden;background-color:var(--bt-gray);animation:bt-pulse 1.6s ease-in-out infinite}.jtile img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--bt-spring),filter .3s}.jtile:before{content:attr(data-idx);position:absolute;left:0;bottom:0;z-index:1;background:var(--bt-black);color:var(--bt-coral);font-size:.55rem;letter-spacing:.12em;padding:.2rem .5rem;opacity:0;transition:opacity .2s;pointer-events:none}@media(hover:hover){.jtile:hover img{transform:scale(1.02)}.jtile:hover:before{opacity:1}}.jtile:focus-visible{outline:2px solid var(--bt-coral);outline-offset:-2px}@media(max-width:700px){.jgrid{--row-h: 220px;gap:4px;padding:4px}}.pswp{--pswp-bg: #0a0a0a}.pswp__counter{font-family:IBM Plex Mono,monospace;font-size:.65rem;letter-spacing:.15em}footer{border-top:var(--bt-border);background:var(--bt-white);display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;height:44px;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-mid)}.foot-cell{display:flex;align-items:center;padding:0 1.25rem}.foot-mid{border-left:var(--bt-border);border-right:var(--bt-border)}.foot-end{justify-content:flex-end}.foot-end a{color:var(--bt-ghost);transition:color .15s}.foot-end a:hover{color:var(--bt-coral)}.foot-dot{width:6px;height:6px;border-radius:50%;background:var(--bt-coral);margin-right:.6em;animation:bt-blink 1.5s step-start infinite}.admin-section{padding:2rem;border-bottom:var(--bt-border)}.section-flag{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bt-coral);margin-bottom:1.25rem}.admin-title{font-family:Syne,sans-serif;font-size:clamp(1.8rem,5vw,3.2rem);font-weight:800;line-height:1;letter-spacing:-.03em;text-transform:uppercase}.admin-title span{color:var(--bt-coral)}.field{display:flex;flex-direction:column;gap:.4rem}.field label{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bt-mid)}.field input[type=text],.field input[type=date],.field input[type=password]{font-family:IBM Plex Mono,monospace;font-size:.85rem;font-weight:400;padding:.6rem .8rem;border:var(--bt-border);border-radius:0;background:var(--bt-white);color:var(--bt-black);outline:none;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}.field input:focus{border-color:var(--bt-coral);box-shadow:inset 0 0 0 1px var(--bt-coral)}.check{display:flex;align-items:center;gap:.6rem;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-mid);cursor:pointer;user-select:none}.check input{accent-color:var(--bt-coral);width:15px;height:15px}.form-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:1rem}.form-row .field{flex:1 1 200px}.btn{display:inline-flex;align-items:center;gap:.5em;font-family:Syne,sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.7rem 1.4rem;background:var(--bt-black);color:var(--bt-white);border:1px solid var(--bt-black);border-radius:0;transition:background .15s,color .15s,border-color .15s}.btn:hover{background:var(--bt-coral);border-color:var(--bt-coral)}.btn:disabled{background:var(--bt-ghost);border-color:var(--bt-ghost);cursor:not-allowed}.btn-ghost{background:var(--bt-white);color:var(--bt-black)}.btn-ghost:hover{background:var(--bt-black);color:var(--bt-white);border-color:var(--bt-black)}.btn-danger{background:var(--bt-white);color:var(--bt-coral);border-color:var(--bt-coral)}.btn-danger:hover{background:var(--bt-coral);color:var(--bt-white)}.btn-small{padding:.35rem .8rem;font-size:.6rem}.album-table{border-top:var(--bt-border)}.album-row{display:grid;grid-template-columns:3rem auto 1fr auto auto auto;gap:1.25rem;align-items:center;padding:.9rem 1.25rem;border-bottom:1px solid var(--bt-ghost);transition:background .15s}.album-row:hover{background:var(--bt-gray)}.album-row .row-idx{font-size:.65rem;color:var(--bt-coral)}.row-thumb{width:44px;height:44px;border:var(--bt-border);overflow:hidden;background:var(--bt-gray);display:flex;align-items:center;justify-content:center;color:var(--bt-mid);font-size:.6rem}.row-thumb img{width:100%;height:100%;object-fit:cover}.album-row .row-title{font-family:Syne,sans-serif;font-size:.95rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-row .row-title:hover{color:var(--bt-coral)}.album-row .row-meta{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bt-mid);white-space:nowrap}.tag-unlisted{font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bt-white);background:var(--bt-black);padding:.15rem .5rem}.row-actions{display:flex;gap:.5rem}.dropzone{border:var(--bt-border);min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;text-align:center;padding:1.5rem;cursor:pointer;font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-mid);transition:background .15s,color .15s}.dropzone:hover{background:var(--bt-gray)}.dropzone.dragover{color:var(--bt-black);background:repeating-linear-gradient(-45deg,var(--bt-white) 0px,var(--bt-white) 10px,var(--bt-gray) 10px,var(--bt-gray) 20px)}.dropzone strong{font-family:Syne,sans-serif;font-weight:800;font-size:.85rem;color:var(--bt-black)}.batch-status{margin-top:1rem;font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-coral)}.batch-status:before{content:"●";margin-right:.6em;animation:bt-blink 1s step-start infinite}.upload-queue{margin-top:1rem;display:flex;flex-direction:column}.upload-row{display:grid;grid-template-columns:1fr 120px auto;gap:1rem;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--bt-ghost);font-size:.65rem}.upload-row .up-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.up-track{height:4px;background:var(--bt-ghost)}.up-fill{height:100%;width:0%;background:var(--bt-coral);transition:width .2s}.upload-row.done .up-fill{background:var(--bt-black)}.up-status{letter-spacing:.12em;text-transform:uppercase;color:var(--bt-mid);white-space:nowrap;display:flex;gap:.5rem;align-items:center}.upload-row.error .up-status{color:var(--bt-coral)}.pm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}.pm-tile{border:var(--bt-border);background:var(--bt-white);display:flex;flex-direction:column}.pm-tile.dragging{opacity:.4}.pm-tile.is-cover{outline:2px solid var(--bt-coral);outline-offset:1px}.pm-thumb{aspect-ratio:1;overflow:hidden;cursor:grab;position:relative;background-color:var(--bt-gray);animation:bt-pulse 1.6s ease-in-out infinite}.pm-thumb img{width:100%;height:100%;object-fit:cover}.pm-cover-tag{position:absolute;top:0;left:0;background:var(--bt-coral);color:var(--bt-white);font-size:.5rem;letter-spacing:.15em;text-transform:uppercase;padding:.15rem .45rem}.pm-tools{display:grid;grid-template-columns:repeat(4,1fr);border-top:var(--bt-border)}.pm-tools button{background:var(--bt-white);border:none;border-right:1px solid var(--bt-ghost);padding:.4rem 0;font-family:IBM Plex Mono,monospace;font-size:.7rem;color:var(--bt-black);transition:background .15s,color .15s}.pm-tools button:last-child{border-right:none}.pm-tools button:hover{background:var(--bt-black);color:var(--bt-white)}.pm-tools button.pm-del:hover{background:var(--bt-coral)}.pm-hint{margin-top:1rem;font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-ghost)}.login-wrap{min-height:calc(100vh - 96px);display:flex;align-items:center;justify-content:center;padding:2rem}.login-box{width:100%;max-width:380px;border:var(--bt-border);padding:2.5rem 2rem;display:flex;flex-direction:column;gap:1.25rem}.login-error{font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-coral)}.login-error:before{content:"● ";animation:bt-blink 1.5s step-start infinite}.notfound{padding:6rem 2rem;text-align:center}.notfound h1{font-family:Syne,sans-serif;font-size:clamp(3rem,12vw,8rem);font-weight:800;text-transform:uppercase;line-height:.9;letter-spacing:-.04em}.notfound h1 span{color:var(--bt-coral)}.notfound p{margin-top:1.5rem;font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--bt-mid)}.notfound a{color:var(--bt-coral)}@media(max-width:860px){nav{grid-template-columns:auto 1fr auto}.nav-logo-cell{padding:0 1rem}.nav-context{display:none}.page-head,.album-head,.admin-section{padding-left:1.25rem;padding-right:1.25rem}.album-card{grid-template-columns:auto 1fr auto;gap:.9rem;padding:.75rem 1rem}.album-card .album-idx{display:none}.album-thumb{width:72px;height:72px}.album-meta{flex-wrap:wrap;gap:.4rem 1rem}.album-row{grid-template-columns:auto 1fr;row-gap:.4rem}.album-row .row-idx{display:none}.album-row .row-thumb{grid-row:span 2;align-self:start}.album-row .row-actions{grid-column:2;justify-content:flex-start;flex-wrap:wrap}.album-row .row-meta{grid-column:2}.album-row>.btn{grid-column:2;justify-self:start}.upload-row{grid-template-columns:1fr 80px auto;gap:.6rem}.pm-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}
