@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght,SOFT,[email protected],300..900,0..100,0..1&display=swap'); Portrait Intake | Thumbprinted

I.

Let's start with who you are.

We'll use this to deliver your portrait and follow up.

II.

What is your current role and what are you responsible for?

Title, scope, the work that actually fills your days.

III.

Describe a decision you'd make differently if you had it to do again.

Don't explain why it was the wrong call — describe what you did instead of what you knew you should have done.

IV.

Describe a recent decision where you felt most like yourself.

Not your best decision — the one that felt the most natural.

V.

What do your colleagues say about how you work that surprises you?

The feedback that makes you think — "really? I didn't realize that."

VI.

When the stakes are high, what changes about how you operate?

Do you speed up or slow down? Get louder or quieter? More instinct or more process?

VII.

What is the thing about how you work that you wish more people understood?

The part that gets misread, overlooked, or taken for granted.

VIII.

What patterns do you notice in your own decision-making?

Recurring instincts, tendencies, or defaults — even the ones you're not sure are strengths.

IX.

What is your biggest hesitation about having your behavioral patterns named?

Be honest — we'd rather know now. Honesty here is the first thing that earns your trust.

FOUNDING TIER — $149 (limited to first 50 customers, 2026 only)

STANDARD — $299

Payment via Stripe after submission. You will receive the deliverable within 7 days. 48-hour reply window for revisions.

We'll be in touch within 48 hours.

Your responses are in. We'll review them and reach out to schedule your complimentary portrait session.

Prefer to reach out directly?
[email protected]

← Back to Home

// === STATE INTEGRITY COMMUNICATIONS === // --- Connection status --- var connBar = null; function initConnBar() { connBar = document.createElement('div'); connBar.className = 'conn-bar'; connBar.innerHTML = ''; // Insert after progress bar (which is at top: 0, height: 3px) var progBar = document.querySelector('.progress-bar'); if (progBar && progBar.parentNode) { progBar.parentNode.insertBefore(connBar, progBar.nextSibling); } else { document.body.insertBefore(connBar, document.body.firstChild); } updateConnStatus(); } function updateConnStatus() { if (!connBar) return; var isOnline = navigator.onLine; connBar.className = 'conn-bar visible ' + (isOnline ? 'online' : 'offline'); connBar.querySelector('.conn-text').textContent = isOnline ? 'Connected — your responses are being saved' : 'You're offline — your responses are saved locally and will sync when reconnected'; } window.addEventListener('online', function() { updateConnStatus(); // Try to submit any pending data var pending = localStorage.getItem('thumbprint_pending_submission'); if (pending) { try { var data = JSON.parse(pending); localStorage.removeItem('thumbprint_pending_submission'); // Restore form and re-submit restoreFormData(data); submitForm(); } catch(e) { /* ignore */ } } }); window.addEventListener('offline', updateConnStatus); // --- Save indicator --- var saveIndicator = null; var saveTimeout = null; function initSaveIndicator() { saveIndicator = document.createElement('div'); saveIndicator.className = 'save-indicator'; saveIndicator.id = 'saveIndicator'; document.body.appendChild(saveIndicator); } function showSaveState(state) { if (!saveIndicator) return; saveIndicator.className = 'save-indicator visible ' + state; var labels = { saving: 'Saving...', saved: '✓ Saved locally', error: '⚠ Save failed' }; saveIndicator.textContent = labels[state] || ''; clearTimeout(saveTimeout); if (state === 'saved') { saveTimeout = setTimeout(function() { saveIndicator.classList.remove('visible'); }, 2500); } } // --- Auto-save form data --- function getFormData() { var data = { name: document.getElementById('name') ? document.getElementById('name').value : '', email: document.getElementById('email') ? document.getElementById('email').value : '', linkedin: document.getElementById('linkedin') ? document.getElementById('linkedin').value : '', currentStep: currentStep, savedAt: new Date().toISOString() }; // Save all textarea values var textareas = document.querySelectorAll('textarea'); textareas.forEach(function(ta) { if (ta.id) data['textarea_' + ta.id] = ta.value; }); // Save all input values var inputs = document.querySelectorAll('input[type="text"], input[type="email"], input[type="url"]'); inputs.forEach(function(inp) { if (inp.id) data['input_' + inp.id] = inp.value; }); // Save radio selections var radios = document.querySelectorAll('input[type="radio"]:checked'); radios.forEach(function(r) { if (r.name) data['radio_' + r.name] = r.value; }); return data; } function autoSave() { try { showSaveState('saving'); var data = getFormData(); localStorage.setItem('thumbprint_intake_draft', JSON.stringify(data)); showSaveState('saved'); } catch(e) { showSaveState('error'); } } function restoreFormData(data) { if (!data) return; // Restore basic fields if (data.name && document.getElementById('name')) document.getElementById('name').value = data.name; if (data.email && document.getElementById('email')) document.getElementById('email').value = data.email; if (data.linkedin && document.getElementById('linkedin')) document.getElementById('linkedin').value = data.linkedin; // Restore textareas var textareas = document.querySelectorAll('textarea'); textareas.forEach(function(ta) { if (ta.id && data['textarea_' + ta.id]) ta.value = data['textarea_' + ta.id]; }); // Restore inputs var inputs = document.querySelectorAll('input[type="text"], input[type="email"], input[type="url"]'); inputs.forEach(function(inp) { if (inp.id && data['input_' + inp.id]) inp.value = data['input_' + inp.id]; }); // Restore radio selections var radios = document.querySelectorAll('input[type="radio"]'); radios.forEach(function(r) { if (r.name && data['radio_' + r.name] && r.value === data['radio_' + r.name]) { r.checked = true; // Update visual selection var group = r.closest('.radio-group'); if (group) { group.querySelectorAll('.radio-option').forEach(function(o) { o.classList.remove('selected'); }); var label = r.closest('.radio-option'); if (label) label.classList.add('selected'); } } }); // Restore step if (data.currentStep && data.currentStep > 1) { currentStep = data.currentStep; showStep(currentStep); } } function checkRestoredDraft() { try { var draft = localStorage.getItem('thumbprint_intake_draft'); if (!draft) return; var data = JSON.parse(draft); if (!data.savedAt) return; var savedAt = new Date(data.savedAt); var ageHours = (Date.now() - savedAt.getTime()) / (1000 * 60 * 60); // Only restore if less than 48 hours old if (ageHours > 48) { localStorage.removeItem('thumbprint_intake_draft'); return; } // Check if there's meaningful data if (data.name || data.email) { restoreFormData(data); // Show restoration notice var wrapper = document.querySelector('.question-wrapper'); if (wrapper) { var notice = document.createElement('div'); notice.className = 'progress-restored'; notice.textContent = '↩ We restored your previous progress from ' + savedAt.toLocaleDateString(); wrapper.insertBefore(notice, wrapper.firstChild); // Auto-remove after 8 seconds setTimeout(function() { notice.style.transition = 'opacity 0.5s'; notice.style.opacity = '0'; setTimeout(function() { notice.remove(); }, 500); }, 8000); } } } catch(e) { /* ignore */ } } // --- Enhanced submit with retry --- var submitAttempts = 0; var maxSubmitAttempts = 3; function enhancedSubmitForm() { var name = document.getElementById('name').value.trim(); var email = document.getElementById('email').value.trim(); var linkedin = document.getElementById('linkedin') ? document.getElementById('linkedin').value.trim() : ''; var data = { name: name, email: email, linkedin: linkedin, answers: { q1_proud_decision: document.getElementById('authenticDecision') ? document.getElementById('authenticDecision').value.trim() : '', q2_regret_action: document.getElementById('regretAction') ? document.getElementById('regretAction').value.trim() : '', q3_built_created: document.getElementById('role') ? document.getElementById('role').value.trim() : '', q4_group_disagreement: document.getElementById('colleagueSurprise') ? document.getElementById('colleagueSurprise').value.trim() : '', q5_obsessive_problem: document.getElementById('highStakes') ? document.getElementById('highStakes').value.trim() : '', q6_uninvited_fix: document.getElementById('wishUnderstood') ? document.getElementById('wishUnderstood').value.trim() : '', q7_deferred_judgment: document.getElementById('decisionPatterns') ? document.getElementById('decisionPatterns').value.trim() : '', q8_insider_knowledge: document.getElementById('hesitation') ? document.getElementById('hesitation').value.trim() : '' }, submitted_at: new Date().toISOString(), source: 'general_intake' }; var submitBtn = document.querySelector('[data-step="9"] .btn-next'); if (submitBtn) { submitBtn.classList.add('loading'); submitBtn.disabled = true; } // Clear any previous error var existing = document.getElementById('form-error'); if (existing) existing.remove(); submitAttempts++; fetch('/submit-intake', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }).then(function(response) { if (!response.ok) { return response.json().then(function(errData) { var msg = (errData && errData.error) ? errData.error : 'Submission failed'; if (errData && errData.missing) msg += ': ' + errData.missing.join(', '); throw new Error(msg); }).catch(function(err) { if (err instanceof SyntaxError) throw new Error('Submission failed. Please try again.'); throw err; }); } return response.json(); }).then(function(result) { // Success! submitAttempts = 0; localStorage.removeItem('thumbprint_intake_draft'); localStorage.removeItem('thumbprint_pending_submission'); // Show success view currentStep = 10; showStep(10); // Enhance the confirmation page var confirmDiv = document.querySelector('.confirmation'); if (confirmDiv) { var refId = result && result.id ? result.id : ('TP-' + Date.now().toString(36).toUpperCase()); confirmDiv.innerHTML = '
' + '

Received.

' + '

Your intake has been recorded. We'll begin crafting your portrait and send it to ' + escapeHtml(email) + ' within 48 hours.

' + '
Reference: ' + escapeHtml(refId) + '
'; } }).catch(function(err) { // Failure — show error with retry if (submitBtn) { submitBtn.classList.remove('loading'); submitBtn.disabled = false; } // Save pending submission for retry when back online try { localStorage.setItem('thumbprint_pending_submission', JSON.stringify(data)); } catch(e) { /* ignore */ } var msg = err.message || 'Submission failed. Please try again.'; var canRetry = submitAttempts < maxSubmitAttempts; var q9 = document.querySelector('[data-step="9"]'); if (q9) { var errDiv = document.createElement('div'); errDiv.id = 'form-error'; errDiv.className = 'form-error-banner visible'; errDiv.innerHTML = escapeHtml(msg); if (canRetry) { var retryBtn = document.createElement('button'); retryBtn.className = 'retry-btn'; retryBtn.textContent = 'Retry (' + (maxSubmitAttempts - submitAttempts) + ' attempts left)'; retryBtn.addEventListener('click', function() { errDiv.remove(); enhancedSubmitForm(); }); errDiv.appendChild(document.createElement('br')); errDiv.appendChild(retryBtn); } else { errDiv.innerHTML += '
If this keeps failing, email your answers to [email protected]'; } var btnRow = q9.querySelector('.btn-row'); if (btnRow) btnRow.insertAdjacentElement('beforebegin', errDiv); else q9.appendChild(errDiv); } }); } function escapeHtml(str) { var div = document.createElement('div'); div.textContent = str; return div.innerHTML; } // --- Initialize --- // Hook into existing DOMContentLoaded or run immediately function initStateIntegrity() { initConnBar(); initSaveIndicator(); checkRestoredDraft(); // Auto-save on any input change document.addEventListener('input', function(e) { if (e.target.closest('.question-wrapper')) { clearTimeout(window._autoSaveTimer); window._autoSaveTimer = setTimeout(autoSave, 800); } }); // Auto-save on step change var origNextStep = window.nextStep; window.nextStep = function() { autoSave(); if (origNextStep) origNextStep(); }; var origPrevStep = window.prevStep; window.prevStep = function() { autoSave(); if (origPrevStep) origPrevStep(); }; // Replace submitForm with enhanced version window.submitForm = enhancedSubmitForm; // Save before page unload window.addEventListener('beforeunload', function() { autoSave(); }); } // Run init if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initStateIntegrity); } else { initStateIntegrity(); }