@layer reset,tokens,layout,components,motion,responsive;
@layer reset{*,*::before,*::after{box-sizing:border-box}html{min-width:0;background:#f0aa91;color-scheme:light}body{margin:0;min-width:0;min-height:100vh;min-height:100dvh}button,input{font:inherit}button,label{-webkit-tap-highlight-color:transparent}button{border:0}[hidden]{display:none!important}h1,h2,p{margin:0}ol,ul{margin:0;padding:0;list-style:none}img{display:block;max-width:100%}}
@layer tokens{:root{--night:#282435;--night-2:#1d1a28;--blush:#f0aa91;--blush-light:#f7c7b5;--paper:#f7ecde;--yellow:#f5d35f;--sage:#83947e;--sage-light:#d9e2cf;--red:#9e303c;--error-bg:#ffd1c8;--line:rgba(40,36,53,.28);--display:"Avenir Next Condensed","Arial Narrow","HelveticaNeue-CondensedBold",sans-serif;--sans:"Avenir Next","Segoe UI",Helvetica,Arial,sans-serif;--brand:"Avenir Next","Segoe UI",Helvetica,Arial,sans-serif;--snap:cubic-bezier(.2,.85,.25,1);--spring:cubic-bezier(.2,1.4,.45,1)}}
@layer layout{body{color:var(--night);background:var(--blush);font-family:var(--sans);text-rendering:optimizeLegibility}.shell{position:relative;display:flex;flex-direction:column;width:100%;max-width:1120px;min-height:100vh;min-height:100dvh;margin-inline:auto;padding:max(17px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));isolation:isolate}.view{position:relative;z-index:2;flex:1 0 auto;min-width:0}.upload-view{display:flex;flex-direction:column}.ready-view{display:flex;flex:1;flex-direction:column;justify-content:space-between;gap:22px;padding:32px 0 16px}.batch-view{padding:22px 0 14px}.drape-field{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.drape{position:absolute;display:block;border:1px solid rgba(40,36,53,.08);transform-origin:center}.drape-one{width:50vw;height:124vh;top:-16vh;right:-17vw;background:rgba(247,199,181,.48);transform:rotate(13deg)}.drape-two{width:29vw;height:120vh;top:-9vh;right:8vw;background:rgba(245,211,95,.15);transform:rotate(-8deg)}.flash{position:absolute;width:9px;height:9px;background:var(--paper);border:2px solid var(--night);box-shadow:0 0 0 6px rgba(247,236,222,.18);transform:rotate(45deg)}.flash-one{top:18%;right:13%}.flash-two{top:47%;right:28%;width:6px;height:6px;opacity:.58}.topline,.bottomline{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:10px}.topline{min-height:58px;padding-bottom:10px;border-bottom:2px solid var(--night)}.bottomline{min-height:29px;padding-top:9px;border-top:1px solid var(--line);font:750 8px/1 var(--sans);letter-spacing:.09em;text-transform:uppercase}}
@layer components{.skip-link{position:fixed;left:12px;top:8px;z-index:100;max-width:100%;transform:translateY(-160%);padding:12px 16px;color:var(--paper);background:var(--night);font:750 14px/1 var(--sans)}.skip-link:focus{transform:translateY(0)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.sr-only{position:fixed;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.brand-button{display:flex;align-items:center;min-height:44px;padding:0;color:inherit;background:transparent;cursor:pointer;text-align:left}.brand-mark{display:inline-block;width:max-content;max-width:120px;padding-left:8px;color:var(--night-2);border-left:3px solid var(--night);font:900 clamp(15px,4.6vw,18.5px)/.94 var(--brand);font-style:normal;letter-spacing:.025em;text-transform:none;transform:none}.date-chip{display:flex;align-items:center;gap:6px}.date-chip strong{font:900 22px/.8 var(--display)}.date-chip span{padding-left:6px;border-left:1px solid var(--night);font:800 7px/1.25 var(--sans);letter-spacing:.12em;text-transform:uppercase}.view-nav{display:flex;gap:3px;padding:3px;background:rgba(247,236,222,.4);border:1px solid var(--night)}.nav-button{min-height:44px;padding:7px 8px;color:var(--night);background:transparent;cursor:pointer;font:850 8px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase}.nav-button.is-active{color:var(--paper);background:var(--night)}.kicker{display:flex;align-items:center;gap:7px;color:var(--night);font:850 9px/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase}.kicker span{color:var(--red);font-size:8px}h1,h2{max-width:8.2ch;margin-top:15px;color:var(--night);font-family:var(--display);font-size:clamp(54px,17.7vw,94px);font-weight:900;line-height:.82;letter-spacing:-.065em;text-transform:uppercase;text-wrap:balance}.poster-copy h1{margin-top:25px}h1 em,h2 em{display:inline-block;color:var(--paper);font-style:normal;-webkit-text-stroke:1.25px var(--night);text-shadow:2px 2px 0 var(--night)}#batch-title:focus{outline:0}.lede{max-width:32ch;margin-top:17px;color:rgba(40,36,53,.78);font:650 13px/1.42 var(--sans);text-wrap:pretty}.control-deck{display:grid;gap:15px;padding:14px;background:var(--paper);border:2px solid var(--night);box-shadow:7px 7px 0 var(--night)}.name-field label{display:block;font:850 9px/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase}.name-line{display:grid;grid-template-columns:1fr auto;align-items:center;border-bottom:1px solid var(--night)}.name-line input{width:100%;min-width:0;height:44px;padding:7px 0 4px;border:0;outline:0;color:var(--night);background:transparent;font:650 15px/1 var(--sans)}.name-line input::placeholder{color:rgba(40,36,53,.68)}.name-line span{font-size:18px}.name-line:focus-within{border-bottom-width:3px}.name-line input:focus-visible{outline:3px solid var(--red);outline-offset:3px;box-shadow:0 0 0 5px var(--paper)}.selection-block{display:grid;gap:7px}.selection-block:focus{outline:0}.advance-button{display:grid;grid-template-columns:47px minmax(0,1fr) 24px;align-items:center;min-height:68px;padding:8px 11px 8px 8px;color:var(--paper);background:var(--night);cursor:pointer}.advance-disc{position:relative;display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(247,236,222,.5);border-radius:50%}.advance-disc::before,.advance-disc::after,.advance-disc i{content:"";position:absolute;border-radius:50%}.advance-disc::before{inset:7px;border:1px dashed var(--paper)}.advance-disc::after{inset:14px;background:var(--yellow)}.advance-disc i{width:5px;height:5px;top:5px;left:18px;background:var(--blush)}.advance-copy{display:flex;min-width:0;flex-direction:column;gap:3px}.advance-copy strong{font:850 17px/1.05 var(--sans)}.advance-copy small{overflow:hidden;color:rgba(247,236,222,.65);font:550 9px/1.2 var(--sans);white-space:nowrap;text-overflow:ellipsis}.advance-arrow{font-size:21px}.consent{color:rgba(40,36,53,.68);font:550 9px/1.43 var(--sans);text-wrap:pretty}.ready-issues{padding:9px 10px;color:var(--night);background:var(--error-bg);border:1px solid var(--night)}.ready-issues h2{margin:0 0 6px;color:var(--night);font:850 10px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase}.ready-issues ul{display:grid;gap:5px}.ready-issues li{font:650 9px/1.35 var(--sans)}.file-input:focus-visible+.advance-button,.selection-block:focus .advance-button,.advance-button:hover,.advance-button:active{outline:3px solid var(--red);outline-offset:3px}button:focus-visible{outline:3px solid var(--night);outline-offset:3px;box-shadow:0 0 0 5px var(--paper)}.batch-poster{padding-bottom:10px;border-bottom:2px solid var(--night)}.batch-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.batch-title-row #batch-title{font-size:clamp(46px,14vw,76px)}.batch-count{display:flex;align-items:baseline;padding-bottom:4px;font-variant-numeric:tabular-nums}.batch-count strong{font:900 53px/.75 var(--display)}.batch-count span{font:850 12px/1 var(--sans)}.summary-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:9px;border-top:1px solid var(--line)}.summary-strip p{font:750 10px/1.3 var(--sans)}.summary-strip span{flex:0 0 auto;padding:6px 7px;color:var(--paper);background:var(--night);font:850 7px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase}.summary-strip.is-failed span{color:var(--night);background:var(--error-bg);outline:1px solid var(--night)}.summary-strip.is-complete span{color:var(--night);background:var(--sage-light);outline:1px solid var(--night)}.summary-strip:focus{outline:3px solid var(--red);outline-offset:3px}.contact-sheet{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:11px;counter-reset:photo}.photo-slip{counter-increment:photo;position:relative;display:grid;grid-template-rows:auto 1fr auto;min-width:0;min-height:112px;padding:10px;overflow:hidden;color:var(--paper);background:var(--night);border:1px solid var(--night)}.photo-slip::before{content:counter(photo,decimal-leading-zero);position:relative;z-index:2;color:var(--blush-light);font:850 8px/1 var(--sans);letter-spacing:.12em}.photo-slip::after{content:"";position:absolute;inset:auto 0 0;height:var(--progress,0%);z-index:0;background:var(--yellow);transform-origin:bottom}.photo-slip>*{position:relative;z-index:1}.photo-meta{min-width:0;align-self:end}.photo-meta strong{display:block;overflow:hidden;font:800 11px/1.15 var(--sans);white-space:nowrap;text-overflow:ellipsis}.photo-meta small{display:-webkit-box;margin-top:5px;overflow:hidden;color:rgba(247,236,222,.82);font:650 8px/1.3 var(--sans);letter-spacing:.04em;text-transform:uppercase;-webkit-line-clamp:2;-webkit-box-orient:vertical}.photo-state{align-self:end;justify-self:end;margin-top:8px;padding:4px 5px;color:var(--night);background:var(--paper);font:850 8px/1 var(--sans);font-variant-numeric:tabular-nums}.photo-slip.is-success{color:var(--night);background:var(--sage-light)}.photo-slip.is-success::after{background:rgba(255,255,255,.22)}.photo-slip.is-success .photo-meta small{color:rgba(40,36,53,.78)}.photo-slip.is-success .photo-state{color:var(--paper);background:var(--night)}.photo-slip.is-failed{color:var(--night);background:var(--error-bg)}.photo-slip.is-failed::after{background:repeating-linear-gradient(135deg,transparent 0 8px,rgba(158,48,60,.16) 8px 16px)}.photo-slip.is-failed .photo-meta small{color:rgba(40,36,53,.78)}.issue-drawer{margin-top:9px;background:var(--paper);border:1px solid var(--night)}.issue-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:9px 11px;color:var(--night);background:transparent;cursor:pointer;text-align:left}.issue-toggle>span:first-child{display:flex;flex-direction:column;gap:3px}.issue-toggle strong{font:850 10px/1.2 var(--sans);text-transform:uppercase}.issue-toggle small{color:rgba(40,36,53,.68);font:650 8px/1.2 var(--sans)}#issue-list{display:grid;border-top:1px solid var(--night)}#issue-list li{display:grid;grid-template-columns:minmax(82px,.36fr) 1fr;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);font:650 8px/1.3 var(--sans)}.batch-actions{margin-top:9px}.retry-button,.new-batch-button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:60px;padding:10px 13px;cursor:pointer;text-align:left;border:2px solid var(--night);box-shadow:5px 5px 0 var(--night)}.retry-button{color:var(--night);background:var(--yellow)}.new-batch-button{color:var(--paper);background:var(--night)}.retry-button strong,.new-batch-button strong{display:block;font:850 14px/1.15 var(--sans)}.retry-button small,.new-batch-button small{display:block;margin-top:3px;opacity:.68;font:600 9px/1.2 var(--sans)}.gallery-view{padding:30px 0 72px}.gallery-header{display:grid;gap:20px;padding-bottom:22px;border-bottom:2px solid var(--night)}.gallery-header h1{font-size:clamp(48px,15vw,82px)}.gallery-intro{max-width:30ch;color:rgba(40,36,53,.75);font:650 12px/1.45 var(--sans)}.gallery-loading{display:flex;align-items:center;gap:12px;min-height:240px;justify-content:center;font:800 10px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase}.mini-reel{width:32px;height:32px;border:7px dotted var(--night);border-radius:50%}.gallery-empty{display:grid;place-items:start;min-height:450px;padding:38px 0}.gallery-empty>p:last-child{max-width:28ch;margin-top:22px;font:650 12px/1.5 var(--sans)}.empty-film{display:grid;grid-template-columns:repeat(4,44px);gap:5px;margin:0 0 30px;transform:rotate(-3deg)}.empty-film i{display:block;aspect-ratio:1;background:var(--night);border:5px solid var(--paper);box-shadow:0 0 0 1px var(--night)}.gallery-controls{display:flex;align-items:center;justify-content:space-between;padding:15px 0}.gallery-controls p{font:750 10px/1 var(--sans);text-transform:uppercase}.paper-button{min-width:64px;min-height:44px;color:var(--night);background:var(--paper);border:1px solid var(--night);cursor:pointer;font:850 10px/1 var(--sans)}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.gallery-card{position:relative;min-width:0;overflow:hidden;background:var(--night);border:1px solid var(--night)}.gallery-card:nth-child(4n+1){grid-row:span 2}.gallery-photo-button{display:block;width:100%;height:100%;min-height:160px;padding:0;background:var(--night);cursor:zoom-in}.gallery-photo-button img{width:100%;height:100%;min-height:160px;object-fit:cover}.gallery-card:nth-child(4n+1) img{min-height:327px}.select-control{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:44px;height:44px;color:var(--night);background:var(--paper);border:2px solid var(--night);cursor:pointer;font:900 0/1 var(--sans)}.select-control::after{content:"";width:15px;height:15px;border:2px solid currentColor}.gallery-card.is-selected .select-control{color:var(--paper);background:var(--night)}.gallery-card.is-selected .select-control::after{content:"✓";display:grid;place-items:center;font-size:11px}.gallery-card.is-selected{outline:4px solid var(--yellow);outline-offset:-5px}.download-bar{position:fixed;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));z-index:20;display:grid;grid-template-columns:auto 1fr 1fr 44px;align-items:center;gap:6px;max-width:760px;margin:auto;padding:8px;color:var(--paper);background:var(--night);border:2px solid var(--paper);box-shadow:0 8px 30px rgba(0,0,0,.3)}.download-bar p{padding:0 5px;font:750 9px/1.2 var(--sans)}.download-bar button{min-height:44px;padding:7px;color:var(--night);background:var(--yellow);cursor:pointer;font:850 8px/1.1 var(--sans)}#clear-selection{font-size:20px}.lightbox{position:fixed;inset:0;z-index:50;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));color:var(--paper);background:rgba(29,26,40,.98)}.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:54px}.lightbox-top p{font:750 9px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase}.lightbox button{min-width:44px;min-height:44px;padding:7px;color:var(--night);background:var(--paper);cursor:pointer;font:850 9px/1.1 var(--sans)}#lightbox-close{font-size:25px}.lightbox-stage{position:relative;display:grid;place-items:center;min-width:0;min-height:0;overflow:hidden;touch-action:none}.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain;transform:translate(var(--pan-x,0),var(--pan-y,0)) scale(var(--zoom,1));transform-origin:center;will-change:transform}.zoom-hint{position:absolute;bottom:10px;padding:6px 8px;color:var(--night);background:var(--paper);font:750 7px/1 var(--sans);text-transform:uppercase}.lightbox-bottom p{flex:1;min-width:0;overflow:hidden;font:650 9px/1.2 var(--sans);white-space:nowrap;text-overflow:ellipsis}}
@layer motion{@keyframes curtain-swipe{from{transform:translateX(28vw) rotate(13deg)}to{transform:translateX(0) rotate(13deg)}}@keyframes flash-tick{0%,88%,100%{opacity:.28;transform:rotate(45deg) scale(.75)}92%{opacity:1;transform:rotate(45deg) scale(1.5)}}@keyframes poster-in{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}@keyframes deck-in{from{opacity:0;transform:translateY(20px) rotate(.8deg)}to{opacity:1;transform:none}}@keyframes tile-snap{from{opacity:0;transform:translateX(28px) rotate(2deg)}to{opacity:1;transform:none}}@keyframes reel-turn{to{transform:rotate(360deg)}}@keyframes empty-roll{0%,100%{transform:translateX(0) rotate(-3deg)}50%{transform:translateX(10px) rotate(-1deg)}}.drape-one{animation:curtain-swipe 1s var(--snap) both}.flash-one{animation:flash-tick 4.8s ease-in-out 1.2s infinite}.poster-copy,.batch-poster,.gallery-header{animation:poster-in .68s var(--snap) both}.control-deck{animation:deck-in .64s var(--snap) .08s both}.photo-slip,.gallery-card{animation:tile-snap .46s var(--snap) both}.photo-slip::after{transition:height .2s linear}.advance-button:active .advance-disc,.mini-reel{animation:reel-turn .8s linear infinite}.empty-film{animation:empty-roll 3.8s ease-in-out infinite}.view.is-leaving{opacity:0;transform:translateX(-24px);transition:opacity .18s ease,transform .18s var(--snap)}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important}.flash{animation:none!important;opacity:.5}.view.is-leaving{transform:none}.photo-slip::after{transition:none}.lightbox-stage img{will-change:auto}}}
@layer responsive{@media(max-height:680px) and (orientation:portrait){.shell{padding-top:max(10px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom))}.topline{min-height:45px;padding-bottom:6px}.brand-mark{max-width:104px;padding-left:7px;font-size:15px;line-height:.93}.date-chip strong{font-size:19px}.ready-view{gap:10px;padding:13px 0 8px}.poster-copy h1{margin-top:18px;font-size:clamp(43px,15.3vw,54px)}.lede{margin-top:10px;font-size:10px}.control-deck{gap:8px;padding:9px;box-shadow:4px 4px 0 var(--night)}.advance-button{min-height:56px}.consent{font-size:7.5px}.batch-view{padding:10px 0 7px}.batch-title-row #batch-title{font-size:39px}.contact-sheet{gap:5px;margin-top:4px}.photo-slip{min-height:64px;padding:6px}.retry-button,.new-batch-button{min-height:50px}}@media(min-width:680px){.shell{padding-inline:34px}.ready-view{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(340px,1.1fr);align-items:end;gap:64px;padding:64px 0 40px}.control-deck{box-shadow:10px 10px 0 var(--night)}.batch-view{width:min(780px,100%);margin-inline:auto;padding-top:44px}.contact-sheet{grid-template-columns:repeat(4,minmax(0,1fr))}.photo-slip{min-height:168px}.gallery-header{grid-template-columns:1fr auto;align-items:end}.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.gallery-card:nth-child(4n+1){grid-row:span 2}.download-bar{left:50%;right:auto;width:min(760px,calc(100% - 20px));transform:translateX(-50%)}}@media(orientation:landscape) and (max-height:500px){.shell{padding:10px max(18px,env(safe-area-inset-right)) 8px max(18px,env(safe-area-inset-left))}.topline{min-height:38px}.ready-view{display:grid;grid-template-columns:.82fr 1.18fr;align-items:end;gap:36px;padding:8px 0 6px}h1{font-size:clamp(42px,7.5vw,65px)}.control-deck{gap:7px;padding:8px;box-shadow:4px 4px 0 var(--night)}.batch-view{display:grid;grid-template-columns:.72fr 1.28fr;column-gap:20px;padding:8px 0 5px}.contact-sheet{grid-column:2;grid-row:1/span 3;margin-top:0}.issue-drawer,.batch-actions{grid-column:1}}@media(min-width:1000px){body{padding:24px;background:var(--night)}.shell{min-height:calc(100dvh - 48px);border:2px solid var(--night);box-shadow:0 30px 80px rgba(0,0,0,.28);background:var(--blush)}.drape-field{inset:24px}}@media(max-width:359px){.view-nav{order:3}.date-chip{display:none}.download-bar{grid-template-columns:1fr 1fr 44px}.download-bar p{grid-column:1/-1}}@media(max-width:240px){.shell{padding-inline:10px}.brand-mark{max-width:88px;padding-left:6px;font-size:13px}.topline{flex-wrap:wrap}.poster-copy h1{max-width:100%;font-size:34px}.control-deck{padding:9px;box-shadow:4px 4px 0 var(--night)}.gallery-grid{grid-template-columns:1fr}}}
@layer responsive{@media(min-width:280px) and (max-width:359px){.topline{gap:4px}.view-nav{order:0;gap:1px;padding:2px}.nav-button{min-height:44px;padding:6px 5px;font-size:7px}.date-chip{display:flex!important;gap:3px}.date-chip strong{font-size:18px}.date-chip span{padding-left:3px;font-size:6px}}}
@layer responsive{@media(max-width:240px){.topline{flex-wrap:nowrap}.view-nav{order:0;margin-left:auto;gap:0;padding:0}.nav-button{display:none;min-height:44px;padding:6px}.nav-button:not(.is-active){display:block}}}
@layer components{body.lightbox-open{overflow:hidden}}
