.app-page{padding-top:88px}.app-header{position:fixed}.app-main{min-height:70vh}.section-shell{width:min(1240px,91vw);margin-inline:auto}.app-hero{min-height:540px;display:grid;grid-template-columns:1.05fr .95fr;background:var(--blue);border-bottom:5px solid var(--ink);overflow:hidden}.app-hero-copy{padding:110px 5vw 70px;align-self:center}.app-hero h1,.gallery-hero h1,.admin-top h1,.admin-login h1{font-family:"Luckiest Guy";font-size:clamp(52px,7vw,96px);line-height:.95;text-transform:uppercase;margin:.2em 0}.app-hero-copy>p:last-child{font-size:20px;font-weight:700;max-width:650px}.app-hero-art{background:url('../berlin-comic-process.jpg') center/cover;border-left:5px solid #111}.form-section{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:36px;padding:80px 0}.comic-card{background:#fff;border:4px solid #111;border-radius:10px;box-shadow:8px 8px 0 #111}.form-card{padding:clamp(24px,4vw,54px)}.form-intro{display:flex;gap:22px;align-items:center;margin-bottom:34px}.form-intro h2,.upload-notes h2,.gallery-heading h2,.empty-state h2{font-family:"Luckiest Guy";font-size:clamp(38px,5vw,62px);text-transform:uppercase;margin:0}.comic-number{font:64px "Bangers";color:var(--pink);-webkit-text-stroke:2px #111;text-shadow:4px 4px 0 var(--yellow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label,.admin-login label{display:grid;gap:8px;font-weight:800}.form-grid .full{grid-column:1/-1}.optional{font-weight:500;font-size:12px}.upload-form input,.upload-form select,.admin-login input{width:100%;padding:14px 15px;border:3px solid #111;border-radius:7px;background:#fff;font:inherit}.upload-zone{position:relative;margin:28px 0;border:4px dashed #111;background:var(--cream);min-height:310px;display:grid;place-items:center;padding:24px;transition:.2s}.upload-zone.dragging{background:var(--lime);transform:rotate(-.5deg)}.upload-zone>input{position:absolute;opacity:0;pointer-events:none}.upload-placeholder{text-align:center;display:grid;justify-items:center;gap:11px}.upload-icon{font-size:56px}.upload-placeholder strong{font:30px "Luckiest Guy";text-transform:uppercase}.upload-placeholder small{font-weight:700}.preview-panel{width:100%;grid-template-columns:minmax(0,1fr) 230px;gap:22px;align-items:center}.preview-panel:not([hidden]){display:grid}.preview-panel img{width:100%;max-height:430px;object-fit:contain;background:white;border:3px solid #111}.preview-panel div{display:grid;gap:10px}.text-button{border:0;background:none;text-decoration:underline;font:inherit;font-weight:800;text-align:left;cursor:pointer}.consent-row{display:grid;grid-template-columns:24px 1fr;gap:13px;align-items:start;font-size:14px;font-weight:600}.consent-row input{width:22px;height:22px}.progress-wrap{margin:26px 0}.progress-label{display:flex;justify-content:space-between;font-weight:900}.progress-track{height:24px;border:3px solid #111;background:#fff;margin-top:8px}.progress-bar{width:0;height:100%;background:var(--mint);transition:width .15s}.form-message{margin:18px 0;font-weight:800}.form-message.success,.alert.success{padding:15px;background:#c8f59f;border:3px solid #111}.form-message.error,.alert.error{padding:15px;background:#ffb1a0;border:3px solid #111}.submit-button{margin-top:12px}.upload-notes{padding:35px;align-self:start;background:var(--yellow);position:sticky;top:120px}.upload-notes ul{padding-left:20px;font-weight:700}.burst{display:inline-block;background:var(--pink);border:3px solid #111;padding:12px 18px;font:28px "Bangers";transform:rotate(-6deg);box-shadow:4px 4px 0 #111}.admin-login-shell{min-height:80vh;display:grid;place-items:center;padding:60px 20px;background:var(--blue)}.admin-login{width:min(520px,100%);padding:45px;display:grid;gap:18px}.admin-lock{font-size:48px}.admin-login h1{font-size:58px}.admin-login small{font-weight:700}.admin-main{padding-bottom:80px}.admin-top{display:flex;justify-content:space-between;align-items:end;padding:70px 0 30px}.admin-top h1{font-size:68px}.button-secondary{background:var(--yellow);color:#111}.status-tabs{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px}.status-tabs a{padding:11px 16px;border:3px solid #111;background:#fff;font-weight:900;box-shadow:3px 3px 0 #111}.status-tabs a.active{background:var(--mint)}.status-tabs b{display:inline-grid;place-items:center;min-width:25px;height:25px;background:#111;color:#fff;border-radius:50%;margin-left:6px}.bulk-toolbar{position:sticky;top:86px;z-index:5;background:var(--cream);border:4px solid #111;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:28px;box-shadow:5px 5px 0 #111}.bulk-toolbar>label{font-weight:900}.button.mini{padding:9px 12px;font-size:13px;box-shadow:3px 3px 0 #111}.button.approve{background:var(--mint)}.button.reject{background:#ff8b75}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.admin-entry{overflow:hidden;display:grid;grid-template-columns:42% 58%;position:relative}.select-entry{position:absolute;top:10px;left:10px;background:white;border:3px solid #111;padding:7px 9px;font-weight:900;z-index:2}.admin-image{min-height:330px;background:#ddd;border-right:4px solid #111}.admin-image img{width:100%;height:100%;object-fit:cover}.entry-body{padding:24px}.entry-body h2{font:34px "Luckiest Guy";text-transform:uppercase;margin:12px 0}.entry-status{display:inline-block;padding:5px 9px;border:2px solid #111;font-weight:900}.status-pending{background:var(--yellow)}.status-approved{background:var(--mint)}.status-rejected{background:#ff8b75}.entry-body dl{display:grid;gap:10px}.entry-body dl div{border-top:2px solid #111;padding-top:7px}.entry-body dt{font-size:11px;text-transform:uppercase;font-weight:900}.entry-body dd{margin:2px 0 0;font-weight:650;overflow-wrap:anywhere}.gallery-hero{min-height:560px;background:linear-gradient(90deg,rgba(17,17,17,.07),rgba(17,17,17,.15)),url('../berlin-comic-master.png') center 33%/cover;display:flex;align-items:end;border-bottom:5px solid #111}.gallery-hero-copy{width:min(850px,90vw);margin:0 0 50px 5vw;background:white;border:5px solid #111;box-shadow:10px 10px 0 #111;padding:28px 35px;transform:rotate(-1deg)}.gallery-hero h1{font-size:clamp(46px,7vw,88px);margin:12px 0}.gallery-hero-copy>p:last-child{font-size:19px;font-weight:750}.gallery-section{padding:70px 0 90px}.gallery-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:40px}.gallery-heading>p{max-width:430px;font-weight:700}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.gallery-card{overflow:hidden;background:#fff}.gallery-image-button{display:block;width:100%;height:330px;border:0;border-bottom:4px solid #111;padding:0;cursor:zoom-in;background:#ddd}.gallery-image-button img{width:100%;height:100%;object-fit:cover;transition:.25s}.gallery-image-button:hover img{transform:scale(1.035)}.gallery-card-body{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:18px}.gallery-card h3{font:28px "Luckiest Guy";text-transform:uppercase;margin:0 0 4px}.gallery-card p{margin:0;font-weight:700;font-size:14px}.vote-button{min-width:82px;border:3px solid #111;background:var(--pink);box-shadow:4px 4px 0 #111;padding:8px;display:grid;grid-template-columns:auto auto;align-items:center;justify-content:center;gap:3px;cursor:pointer}.vote-button span{font-size:22px}.vote-button b{font-size:18px}.vote-button small{grid-column:1/-1;font-weight:900}.vote-button.voted{background:var(--mint);cursor:default}.pagination{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:55px;font-weight:900}.pagination a,.pagination span{border:3px solid #111;padding:10px 14px;background:white;box-shadow:3px 3px 0 #111}.empty-state{text-align:center;padding:60px;background:var(--yellow)}.empty-state>span{font-size:60px}.lightbox{width:min(1000px,92vw);padding:20px;border:5px solid #111;box-shadow:12px 12px 0 #111}.lightbox img{max-width:100%;max-height:76vh;display:block;margin:auto}.lightbox h2{font:34px "Luckiest Guy";text-align:center;margin:15px 0 0}.app-footer{margin-top:0}
@media(max-width:1000px){.app-hero{grid-template-columns:1fr}.app-hero-art{height:380px;border-left:0;border-top:5px solid #111}.form-section{grid-template-columns:1fr}.upload-notes{position:static}.admin-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.app-page{padding-top:74px}.app-hero-copy{padding:70px 5vw 50px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.preview-panel:not([hidden]){grid-template-columns:1fr}.admin-top,.gallery-heading,.bulk-toolbar{align-items:flex-start;flex-direction:column}.bulk-toolbar{top:73px}.admin-entry{grid-template-columns:1fr}.admin-image{border-right:0;border-bottom:4px solid #111}.gallery-grid{grid-template-columns:1fr}.gallery-hero-copy{margin:0 auto 30px}.gallery-image-button{height:300px}}
