.studio{color:#0f172a;background:radial-gradient(1000px 560px at 80% -20%,#1fa89e1f 0%,#0000 55%),radial-gradient(900px 500px at 10% 10%,#60a5fa14 0%,#0000 50%),#fafcfc;min-height:100vh;padding:40px 20px}.studio header{text-align:center;margin-bottom:34px}.studio header h1{letter-spacing:-.02em;color:#0f172a;margin:0;font-size:30px;font-weight:800}.studio header h1 span{background:linear-gradient(90deg,#1fa89e,#16877f);color:#0000;-webkit-background-clip:text;background-clip:text}.studio header p{color:#64748b;margin:6px 0 0;font-size:14px}.wrap{flex-wrap:wrap;gap:26px;max-width:1060px;margin:0 auto;display:flex}.panel{background:#fff;border:1px solid #e2e8f0;border-radius:18px;flex:340px;padding:26px;box-shadow:0 10px 30px #0f172a0a}.panel h2{text-transform:uppercase;letter-spacing:.12em;color:#64748b;margin:0 0 18px;font-size:13px;font-weight:700}.tiles{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px;display:grid}.tile{cursor:pointer;text-align:center;background:#f8fafc;border:1.5px dashed #cbd5e1;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:118px;padding:10px;transition:all .2s;display:flex}.tile:hover{background:#1fa89e0f;border-color:#1fa89e}.tile .icon{font-size:24px}.tile small{color:#64748b;font-size:12px;line-height:1.4}.tile img{object-fit:contain;max-width:85%;max-height:64px;display:none}.tile.filled{background:#fff;border-style:solid;border-color:#1fa89e8c}.tile.filled img{display:block}.tile.filled .icon,.tile.filled small,.tile input[type=file]{display:none}.field{color:#64748b;text-transform:uppercase;letter-spacing:.08em;margin:14px 0 6px;font-size:12px;font-weight:600;display:block}.field-input{color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:13px 14px;font:500 15px inherit;transition:all .2s}.field-input:focus{border-color:#1fa89e;box-shadow:0 0 0 3px #1fa89e26}.field-input::placeholder{color:#94a3b8}.order-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#1fa89e,#16877f);border:none;border-radius:12px;width:100%;margin-top:24px;padding:16px;font:700 16px inherit;transition:all .2s;box-shadow:0 8px 24px #1fa89e47}.order-btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px #1fa89e66}.shot-label{letter-spacing:.14em;color:#64748b;margin:14px 0 8px;font-size:11px;font-weight:700}.shot-label:first-of-type{margin-top:0}canvas.card{border:1px solid #e2e8f0;border-radius:14px;width:100%;height:auto;display:block;box-shadow:0 12px 32px #0f172a1f}.hint{color:#64748b;text-align:center;margin-top:14px;font-size:12px}.upload-hint{text-align:left;margin-top:4px;margin-bottom:0}.tile.busy{opacity:.55;pointer-events:none}.overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;opacity:0;pointer-events:none;background:#fafcfcd1;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:fixed;inset:0}.overlay.show{opacity:1;pointer-events:auto}.ov-box{text-align:center}.ov-msg{color:#0f172a;margin-top:18px;font-size:16px;font-weight:600}.spinner{border:4px solid #1fa89e2e;border-top-color:#1fa89e;border-radius:50%;width:52px;height:52px;margin:0 auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.ov-check{color:#fff;text-align:center;background:#22c55e;border-radius:50%;width:56px;height:56px;margin:0 auto;font-size:30px;line-height:56px;animation:.35s pop}@keyframes pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.toast{color:#f8fafc;opacity:0;pointer-events:none;z-index:60;background:#0f172a;border:1px solid #0000;border-radius:999px;padding:13px 22px;font-size:14px;font-weight:500;transition:opacity .3s;position:fixed;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0f172a33}.toast.show{opacity:1}
