:root{color-scheme:light;font-family:Inter,system-ui,sans-serif;color:#242b25;background:#f7f5ee}
*{box-sizing:border-box}[hidden]{display:none!important}
body{margin:0}main,.recovery-panel,#paid-gate{max-width:1040px;margin:0 auto;padding:clamp(16px,4vw,38px)}
h1,h2{font-family:Georgia,serif;margin:.25em 0 .5em}h1{font-size:clamp(32px,5vw,54px)}h2{font-size:24px}p{line-height:1.5;max-width:68ch}
.board-header{margin-bottom:18px}.board-header select{max-width:100%}
button,input,select,textarea{font:inherit;max-width:100%}button,select{min-height:44px;border-radius:6px;border:1px solid #abafa3;padding:8px 12px;background:#fffcf5;color:inherit}
button{cursor:pointer}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #247364}
.photo-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(262px,100%),1fr));gap:16px;align-items:start}
.photo-card{display:grid;gap:9px;background:#fffef8;border:1px solid #c9cbbf;padding:14px;border-radius:8px;min-width:0}
.photo-card h2{margin:0}.stage{display:flex;align-items:flex-end;justify-content:center;gap:8px;background:#e9e7dd;padding:8px;min-height:130px}
.stage canvas{display:block;width:100%;max-width:100%;height:155px;object-fit:contain;min-width:0}
.stage .actual-icon{width:48px;height:48px;flex:none}
.photo-card textarea{width:100%;min-height:64px;padding:8px}.photo-card label{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:14px}.photo-card input[type=range]{min-width:0;width:58%;height:32px}
.board-actions{margin:18px 0;display:flex;flex-wrap:wrap;gap:8px}.recovery-panel{border-top:1px solid #ccc}.recovery-panel button{margin:0 8px 8px 0}
#snapshot-save,#pay{background:#285247;color:white;border-color:#285247}
.photo-sources{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.photo-sources label{font-weight:600}
#studio-camera{width:min(94vw,470px);max-height:94dvh;overflow:auto;padding:16px;border:1px solid #aeb6aa;border-radius:10px;background:#fffef8;color:#242b25}
#studio-camera::backdrop{background:rgb(12 20 17/.65)}
#studio-camera video,#studio-camera img{display:block;width:100%;height:clamp(100px,42dvh,370px);object-fit:contain;background:#202a25}
#studio-camera video{transform:scaleX(-1)}
#studio-camera .board-actions{margin-bottom:0}
#open-camera,#snap-photo,#use-photo{background:#285247;color:white;border-color:#285247}
