
:root{
 --bg:#111211;--bg2:#171816;--surface:#1d1e1b;--surface2:#242521;--ink:#f0efe9;--muted:#a4a199;--line:#383a34;
 --pink:#f3d55f;--yellow:#ff8faf;--red:#b22339;--paper:#eee9dc;--black:#090a09;--safe:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#080908;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}
button,input,textarea,select{font:inherit}button{color:inherit}.app{min-height:100dvh;background:var(--bg);max-width:460px;margin:0 auto;overflow:hidden;position:relative;box-shadow:0 0 0 1px #161715}
.screen{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}.scroll{flex:1;min-height:0;overflow:auto;padding:0 22px 110px;overscroll-behavior:contain}.scroll.tight{padding-bottom:76px}
.status{height:51px;display:flex;align-items:center;justify-content:space-between;padding:13px 22px 0;font-size:13px;font-weight:700}.status .symbols{font-size:11px;letter-spacing:1.2px}
.mast{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:66px;padding:8px 22px 13px}.brand{font-size:21px;font-weight:750;letter-spacing:.11em}.mast-actions{display:flex;gap:10px;align-items:center}.icon-btn{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--bg2);display:grid;place-items:center;padding:0}.icon-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7}.line{height:1px;background:var(--line);margin:0 22px}.backlink,.textbtn{border:0;background:none;color:var(--muted);font-size:11px;letter-spacing:.06em;padding:9px 0}.textbtn.active,.yellow{color:var(--yellow)}.pink{color:var(--pink)}.muted{color:var(--muted)}
.title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:24px 0 14px}.title-chip{display:inline-flex;background:var(--red);padding:9px 12px 8px;color:#fff;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.counter{font-size:11px;color:var(--pink);font-weight:700;letter-spacing:.08em}.lede{color:var(--muted);font-size:12px;line-height:1.55;margin:0 0 18px}.hair{border-top:1px solid var(--line)}
.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin-bottom:16px}.tabs button{border:0;background:none;color:var(--muted);padding:14px 0 12px;font-size:11px;letter-spacing:.03em;border-bottom:2px solid transparent}.tabs button.active{color:var(--ink);border-color:var(--yellow)}
.nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(460px,100%);display:grid;grid-template-columns:repeat(4,1fr);background:#171816;border-top:1px solid var(--line);padding:8px 12px calc(12px + var(--safe));z-index:20}.nav button{border:0;background:none;color:var(--muted);font-size:9px;letter-spacing:.04em;padding:6px 0}.nav button svg{display:block;margin:0 auto 5px;width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.7}.nav button.active{color:var(--ink)}.nav button.active:before{content:"";display:block;width:19px;height:2px;background:var(--yellow);margin:-4px auto 8px}
.cover-card{border:0;background:none;text-align:left;width:100%;padding:0;color:inherit}.cover-photo{position:relative;aspect-ratio:3/2;background:var(--surface);overflow:hidden}.cover-photo img,.crop-img{width:100%;height:100%;object-fit:cover}.cover-meta{padding:12px 0 16px;border-bottom:1px solid var(--line)}.meta-line{display:flex;align-items:center;justify-content:space-between;gap:12px}.roll-name{font-size:14px;font-weight:700}.micro{font-size:9px;color:var(--muted);letter-spacing:.05em;line-height:1.5}.roll-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.roll-grid .cover-photo{aspect-ratio:3/2}.roll-grid .roll-name{font-size:12px;margin-top:8px}.roll-grid .micro{margin-top:5px}.private-tag{color:var(--yellow)}
.rule{border:1px solid var(--line);padding:13px 14px;margin:12px 0 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.rule strong{font-size:10px;letter-spacing:.11em;color:var(--pink)}.rule span{font-size:10px;color:var(--muted);text-align:right}.progress{display:grid;grid-template-columns:repeat(12,1fr);gap:5px;margin:14px 0 18px}.progress i{height:3px;background:var(--line)}.progress i.done{background:var(--yellow)}
.library{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.library button{border:0;background:var(--surface);padding:0;aspect-ratio:1;position:relative;overflow:hidden}.library img{width:100%;height:100%;object-fit:cover}.library button.selected{outline:2px solid var(--yellow);outline-offset:-2px}.num{position:absolute;top:6px;left:6px;background:var(--pink);color:#211416;font-weight:800;font-size:9px;min-width:24px;height:24px;display:grid;place-items:center}.library button.portrait{opacity:.35}.portrait-label{position:absolute;inset:auto 5px 5px 5px;background:#111c;color:#fff;padding:5px;font-size:8px;letter-spacing:.08em;text-align:center}.import{margin:14px 0}.import input{display:none}
.sticky{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(460px,100%);z-index:25;background:var(--bg);border-top:1px solid var(--line);padding:11px 22px calc(16px + var(--safe));display:flex;align-items:center;justify-content:space-between;gap:12px}.cta{border:0;background:var(--yellow);color:#15140d;padding:14px 16px;border-radius:4px;font-size:11px;font-weight:800;letter-spacing:.06em;min-height:44px}.cta:disabled{opacity:.35}.ghost{border:1px solid var(--line);background:transparent;padding:13px 14px;border-radius:3px;color:var(--ink);font-size:10px;font-weight:700;letter-spacing:.05em}
.adjust-stage{aspect-ratio:3/2;background:#060706;overflow:hidden;position:relative;border:1px solid var(--yellow);margin:16px 0}.adjust-stage img{width:100%;height:100%;object-fit:cover;transform-origin:center}.crop-mark{position:absolute;inset:0;border:1px solid #ff8faf66;pointer-events:none}.slider{margin:18px 0}.slider label{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:8px}.slider input{width:100%;accent-color:var(--yellow)}
.arrange{display:grid;grid-template-columns:1fr 1fr;gap:10px}.arrange-card{border:1px solid var(--line);background:var(--surface);padding:0;overflow:hidden}.arrange-photo{aspect-ratio:3/2;overflow:hidden;background:#090a09}.arrange-foot{display:flex;justify-content:space-between;align-items:center;padding:7px}.arrange-actions{display:flex;gap:4px}.arrange-actions button{border:1px solid var(--line);background:var(--bg2);width:32px;height:28px}.thumbs{display:flex;gap:7px;overflow:auto;padding:11px 0}.thumbs button{border:1px solid var(--line);background:var(--surface);padding:0;min-width:74px;width:74px;aspect-ratio:3/2;overflow:hidden}.thumbs button.active{border:2px solid var(--yellow)}.thumbs img{width:100%;height:100%;object-fit:cover}
.big-landscape{aspect-ratio:3/2;background:var(--surface);overflow:hidden;margin:15px 0}.big-landscape img{width:100%;height:100%;object-fit:cover}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.choice{border:1px solid var(--line);background:var(--surface);padding:9px;text-align:left;min-width:0}.choice.active{border-color:var(--yellow)}.mini-preview{aspect-ratio:3/2;background:#080908;overflow:hidden;margin-bottom:8px}.mini-preview.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px}.mini-preview.sleeve{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,1fr);gap:2px;padding:2px}.mini-preview.frame img{width:100%;height:100%;object-fit:cover}.mini-preview i{background:#383a34}.choice b{font-size:9px;letter-spacing:.06em}.choice p{font-size:8px;color:var(--muted);line-height:1.35;margin:5px 0 0}
.field{display:block;margin:20px 0}.field span{display:block;color:var(--muted);font-size:9px;letter-spacing:.09em;margin-bottom:7px}.field input,.field textarea{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);padding:9px 0 12px;font-size:14px;outline:none;border-radius:0}.field textarea{min-height:70px;resize:vertical}.two-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}.two-choice button{border:1px solid var(--line);background:var(--surface);padding:14px;text-align:left}.two-choice button.active{border-color:var(--yellow)}.two-choice b{font-size:10px}.two-choice span{display:block;color:var(--muted);font-size:9px;margin-top:6px;line-height:1.4}
.roll-switch{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:4px 0 15px}.roll-switch button{border:0;background:none;color:var(--muted);font-size:10px;padding:11px 0;border-bottom:2px solid transparent;letter-spacing:.06em}.roll-switch button.active{color:var(--yellow);border-color:var(--yellow)}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.contact-frame{background:#080908;border:1px solid var(--line);padding:4px 4px 7px;min-width:0}.contact-photo{aspect-ratio:3/2;overflow:hidden;background:#0c0d0c}.contact-photo img{width:100%;height:100%;object-fit:cover}.contact-caption{display:flex;justify-content:space-between;color:var(--pink);font-size:8px;margin-top:5px}.empty-frame{aspect-ratio:3/2;border:1px dashed #464740;background:#141512}.sleeve-wrap{display:grid;gap:13px}.sleeve-row{border:1px solid var(--line);background:#090a09;padding:8px}.sleeve-label{font-size:8px;color:var(--muted);letter-spacing:.08em;margin-bottom:6px}.sleeve-frames{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.sleeve-cell{min-width:0}.sleeve-cell .contact-photo{border:1px solid #22231f}.sleeve-cell .contact-caption{padding:0 2px}.frame-stage{aspect-ratio:3/2;background:#050605;overflow:hidden}.frame-stage img{width:100%;height:100%;object-fit:cover}.frame-meta{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.list-row{width:100%;border:0;border-bottom:1px solid var(--line);background:none;padding:14px 0;display:flex;align-items:center;gap:14px;text-align:left}.list-row img{width:98px;aspect-ratio:3/2;object-fit:cover;background:var(--surface)}.list-row .grow{flex:1}.list-row b{font-size:12px}.list-row span{display:block;color:var(--muted);font-size:9px;margin-top:5px}.studio-item{width:100%;border:0;border-bottom:1px solid var(--line);background:none;display:grid;grid-template-columns:92px 1fr;gap:14px;align-items:center;padding:15px 0;text-align:left}.studio-visual{aspect-ratio:3/2;background:var(--surface);display:grid;place-items:center;overflow:hidden}.studio-visual img{width:100%;height:100%;object-fit:cover}.studio-visual svg{width:25px;height:25px;stroke:var(--yellow);fill:none;stroke-width:1.5}.studio-item b{font-size:12px}.studio-item p{font-size:9px;color:var(--muted);line-height:1.45;margin:6px 0 0}
.negatives-sheet{background:#090a09;padding:12px;border:1px solid var(--line)}.negatives-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.negatives-head b{font-size:10px}.negatives-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.negatives-cell{background:#111;padding:3px 3px 6px}.negatives-cell .contact-photo{border:0}.negatives-cell span{font-size:8px;color:var(--pink)}
.book-formats{display:grid;gap:11px}.format-card{border:1px solid var(--line);background:var(--surface);padding:10px;display:grid;grid-template-columns:130px 1fr;gap:12px;text-align:left}.format-card.active{border-color:var(--yellow)}.format-preview{aspect-ratio:3/2;background:var(--paper);overflow:hidden;color:#151515;display:flex}.format-preview.classic{padding:7px}.format-preview.classic img{width:100%;height:100%;object-fit:cover}.format-preview.editorial{display:grid;grid-template-columns:.36fr .64fr}.format-preview.editorial .copy{padding:9px;font-size:8px;display:flex;flex-direction:column;justify-content:space-between}.format-preview.editorial img{width:100%;height:100%;object-fit:cover}.format-preview.full img{width:100%;height:100%;object-fit:cover}.format-card b{font-size:11px}.format-card p{font-size:9px;color:var(--muted);line-height:1.45}.book-stage{background:#070807;padding:15px;margin-top:10px}.book-page{aspect-ratio:3/2;background:var(--paper);color:#111;overflow:hidden;position:relative}.book-page.classic{padding:8px 8px 23px}.book-page.classic img{width:100%;height:100%;object-fit:cover}.book-caption{position:absolute;left:9px;right:9px;bottom:6px;display:flex;justify-content:space-between;font-size:7px}.book-page.editorial{display:grid;grid-template-columns:.34fr .66fr}.book-page.editorial .editorial-copy{padding:16px;display:flex;flex-direction:column;justify-content:space-between}.book-page.editorial .editorial-copy h3{font-family:Georgia,serif;margin:0;font-size:19px;font-weight:500}.book-page.editorial .editorial-copy p{font-size:8px;line-height:1.45}.book-page.editorial img{width:100%;height:100%;object-fit:cover}.book-page.full img{width:100%;height:100%;object-fit:cover}.page-controls{display:flex;align-items:center;justify-content:space-between;padding:13px 0}.page-controls button{border:0;background:none;color:var(--yellow);font-size:10px}.page-controls span{font-size:9px;color:var(--muted)}
.print-stage{background:var(--surface);padding:22px;margin-top:12px}.print-paper{aspect-ratio:3/2;overflow:hidden;position:relative}.print-paper.black{background:#030403;padding:13px}.print-paper.full{padding:0;background:#000}.print-paper img{width:100%;height:100%;object-fit:cover}.print-index{position:absolute;left:17px;bottom:10px;color:var(--pink);font-size:8px;font-weight:700}.controls{border-top:1px solid var(--line);margin-top:15px}.control-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.control-row>span{font-size:9px;color:var(--muted);letter-spacing:.08em}.options{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.options button{border:1px solid var(--line);background:var(--surface);padding:8px 10px;font-size:9px}.options button.active{border-color:var(--yellow);color:var(--yellow)}
.note{border:1px solid var(--line);padding:12px 13px;color:var(--muted);font-size:9px;line-height:1.5;margin:14px 0}.profile-head{padding:17px 0;border-bottom:1px solid var(--line)}.profile-row{display:flex;gap:14px;align-items:center}.avatar{width:65px;height:65px;border-radius:50%;overflow:hidden;background:var(--surface)}.avatar img{width:100%;height:100%;object-fit:cover}.profile-name{font-size:15px;font-weight:750}.profile-about{color:var(--muted);font-size:10px;line-height:1.55;margin:12px 0}.profile-stats{display:flex;gap:24px;color:var(--muted);font-size:9px}.profile-stats b{color:var(--ink);font-size:11px;margin-right:4px}.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%) translateY(20px);background:#f0efe9;color:#151515;padding:9px 12px;border-radius:3px;font-size:10px;opacity:0;pointer-events:none;transition:.2s;z-index:99;max-width:330px;text-align:center}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.launch{min-height:100dvh;position:relative;background:#000;overflow:hidden}.launch img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.launch:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,#0005,#0001 50%,#0008)}.launch-word{position:absolute;z-index:2;left:50%;top:40%;transform:translate(-50%,-50%);color:#fff;font-size:26px;letter-spacing:.32em;font-weight:500;white-space:nowrap}.launch-enter{position:absolute;z-index:2;left:50%;bottom:calc(54px + var(--safe));transform:translateX(-50%);border:1px solid #fff9;background:#0003;color:#fff;min-width:190px;padding:14px 20px;letter-spacing:.13em;font-size:11px}.launch-credit{position:absolute;z-index:2;left:22px;bottom:calc(16px + var(--safe));font-size:8px;color:#ddd;letter-spacing:.08em}
@media(min-width:700px){body{padding:24px}.app{min-height:844px;height:844px;border-radius:22px}.screen,.launch{min-height:844px;height:844px}.nav,.sticky{position:absolute}.toast{bottom:40px}}

/* Bilingual controls use the approved palette. */
.language-switch{display:flex;flex-shrink:0;gap:2px;border:1px solid var(--line,#383a34);border-radius:4px;padding:2px}
.language-switch button{min-width:40px;min-height:40px;padding:4px 6px;border:0;background:transparent;color:var(--muted,#a4a199);font-family:inherit;font-size:11px;font-weight:700;cursor:pointer}
.language-switch button[aria-pressed="true"]{background:var(--pink,#ff8faf);color:#111211}
.language-switch button:focus-visible{outline:2px solid var(--yellow,#f3d55f);outline-offset:2px}
.launch>.language-switch{position:absolute;top:max(18px,env(safe-area-inset-top));right:18px;z-index:5;background:#111211}
.mast-actions{display:flex;align-items:center;gap:10px}.sticky{gap:8px;flex-wrap:wrap}.sticky .micro{min-width:0}.cta{white-space:normal}.nav button{min-width:0}.title-chip{overflow-wrap:anywhere}
