All Prompts
All Prompts

sectioninteractivemodalframeworkhorizontalscrolleducationalclickable
8-Layer Framework Interactive Section
Интерактивный секция фреймворка с горизонтальной прокруткой. Клики по слоям открывают модальные окна с детальной информацией. Автопрокрутка карточек, эффекты при наведении.
Prompt
<div>
<style>.no-scrollbar::-webkit-scrollbar{display:none}
.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}
.shadow-glow-blue{box-shadow:0 0 20px rgba(14,116,188,0.15)}
#layer-modal{
position:fixed;inset:0;z-index:9999;
display:flex;align-items:center;justify-content:center;
background:rgba(10,18,40,0.55);backdrop-filter:blur(6px);
opacity:0;pointer-events:none;
transition:opacity 0.25s ease;
}
#layer-modal.open{opacity:1;pointer-events:all;}
#layer-modal-inner{
background:#fff;border-radius:20px;
width:min(680px,94vw);max-height:88vh;overflow-y:auto;
padding:40px;position:relative;
transform:translateY(16px) scale(0.98);
transition:transform 0.28s cubic-bezier(0.34,1.56,0.64,1);
box-shadow:0 32px 80px rgba(10,18,40,0.2);
}
#layer-modal.open #layer-modal-inner{transform:translateY(0) scale(1);}
#layer-modal-close{
position:absolute;top:16px;right:16px;
width:32px;height:32px;border-radius:50%;border:none;
background:#f1f5f9;color:#64748b;font-size:18px;
cursor:pointer;display:flex;align-items:center;justify-content:center;
transition:background 0.2s;
}
#layer-modal-close:hover{background:#e2e8f0;}
.modal-badge{
display:inline-block;font-size:11px;font-weight:700;
letter-spacing:0.1em;text-transform:uppercase;
padding:4px 10px;border-radius:6px;margin-bottom:12px;
background:#EFF6FF;color:#1D4ED8;
}
.modal-section-label{
font-size:11px;font-weight:700;letter-spacing:0.12em;
text-transform:uppercase;color:#94a3b8;margin-bottom:6px;
}
.modal-card{
background:#f8fafc;border-radius:12px;padding:16px 18px;
border:1px solid #e2e8f0;margin-bottom:10px;
}
.modal-core-q{
font-size:22px;font-weight:700;color:#0f172a;
margin:0;line-height:1.3;
}
.modal-failure{
background:#fff5f5;border:1px solid #fecaca;
border-radius:12px;padding:16px 18px;margin-bottom:10px;
}
.modal-kpi{
background:#eff6ff;border:1px solid #bfdbfe;
border-radius:12px;padding:14px 18px;
}
.modal-cta{
display:inline-flex;align-items:center;gap:8px;
background:#0e4fa8;color:#fff;font-size:14px;font-weight:600;
padding:12px 24px;border-radius:100px;border:none;
cursor:pointer;margin-top:24px;text-decoration:none;
transition:background 0.2s,transform 0.15s;
}
.modal-cta:hover{background:#1a63c5;transform:translateY(-1px);}
.framework-box{cursor:pointer;}
.framework-box:focus-visible .glass-card{outline:2px solid #0e4fa8;outline-offset:2px;}</style>
<section class="overflow-hidden bg-white pt-[90px] pb-[50px]" id="methodology">
<div class="max-w-[1280px] mx-auto px-6">
<div class="text-center mb-16">
<div class="text-[12px] uppercase font-bold text-slate-600 tracking-[0.15em] mb-4">OUR METHODOLOGY</div>
<h2 class="text-[48px] font-bold text-slate-900 mb-4 tracking-tight">8-Layer Psychological Architecture</h2>
<p class="text-[18px] text-slate-600 max-w-[700px] mx-auto">The decision-engineering framework that identifies exactly where patient intent collapses</p>
<p class="text-[14px] text-sky-700 font-medium mt-4">Click any layer to learn more</p>
</div>
<div class="flex overflow-x-auto pb-12 pt-4 gap-4 no-scrollbar justify-start px-4 snap-x">
<div class="framework-box flex-shrink-0 w-[160px] snap-center group" tabindex="0" data-layer="1">
<div class="h-[140px] glass-card bg-white border-2 border-sky-700/20
rounded-xl p-6 flex flex-col items-center justify-between
transition-all duration-300 hover:scale-105
hover:border-sky-700 hover:shadow-glow-blue
group-hover:border-sky-700/60">
<div class="w-8 h-8 rounded-full bg-blue-50 border-2 border-sky-700
text-sky-700 text-[14px] font-bold flex items-center
justify-center">01</div>
<div class="text-[14px] font-bold text-slate-900 text-center leading-tight">Attention Capture</div>
<div class="text-[12px] text-slate-600 flex items-center gap-1 group-hover:text-sky-700 transition-colors">
<iconify-icon icon="solar:arrow-right-linear"></iconify-icon>
</div>
</div>
</div>
<div class="flex items-center text-slate-300">
<iconify-icon icon="solar:arrow-right-linear" width="20"></iconify-icon>
</div>
<div class="framework-box flex-shrink-0 w-[160px] snap-center group" tabindex="0" data-layer="2">
<div class="h-[140px] glass-card bg-white border-2 border-sky-700/20
rounded-xl p-6 flex flex-col items-center justify-between
transition-all duration-300 hover:scale-105
hover:border-sky-700 hover:shadow-glow-blue
group-hover:border-sky-700/60">
<div class="w-8 h-8 rounded-full bg-blue-50 border-2 border-sky-700
text-sky-700 text-[14px] font-bold flex items-center
justify-center">02</div>
<div class="text-[14px] font-bold text-slate-900 text-center leading-tight">Authority & Safety</div>
<div class="text-[12px] text-slate-600 flex items-center gap-1 group-hover:text-sky-700 transition-colors">
<iconify-icon icon="solar:arrow-right-linear"></iconify-icon>
</div>
</div>
</div>
<div class="flex items-center text-slate-300">
<iconify-icon icon="solar:arrow-right-linear" width="20"></iconify-icon>
</div>
<div class="framework-box flex-shrink-0 w-[160px] snap-center group" tabindex="0" data-layer="3">
<div class="h-[140px] glass-card bg-white border-2 border-sky-700/20
rounded-xl p-6 flex flex-col items-center justify-between
transition-all duration-300 hover:scale-105
hover:border-sky-700 hover:shadow-glow-blue
group-hover:border-sky-700/60">
<div class="w-8 h-8 rounded-full bg-blue-50 border-2 border-sky-700
text-sky-700 text-[14px] font-bold flex items-center
justify-center">03</div>
<div class="text-[14px] font-bold text-slate-900 text-center leading-tight">Risk Reduction</div>
<div class="text-[12px] text-slate-600 flex items-center gap-1 group-hover:text-sky-700 transition-colors">
<iconify-icon icon="solar:arrow-right-linear"></iconify-icon>
</div>
</div>
</div>
<div class="flex items-center text-slate-300">
<iconify-icon icon="solar:arrow-right-linear" width="20"></iconify-icon>
</div>
<div class="framework-box flex-shrink-0 w-[160px] snap-center group" tabindex="0" data-layer="4">
<div class="h-[140px] glass-card bg-white border-2 border-sky-700/20
rounded-xl p-6 flex flex-col items-center justify-between
transition-all duration-300 hover:scale-105
hover:border-sky-700 hover:shadow-glow-blue
group-hover:border-sky-700/60">
<div class="w-8 h-8 rounded-full bg-blue-50 border-2 border-sky-700
text-sky-700 text-[14px] font-bold flex items-center
justify-center">04</div>
<div class="text-[14px] font-bold text-slate-900 text-center leading-tight">Intent Qualification</div>
<div class="text-[12px] text-slate-600 flex items-center gap-1 group-hover:text-sky-700 transition-colors">
<iconify-icon icon="solar:arrow-right-linear"></iconify-icon>
</div>
</div>
</div>
<div class="flex items-center text-slate-300">
<iconify-icon icon="solar:arrow-right-linear" width="20"></iconify-icon>
</div>
<div class="framework-box flex-shrink-0 w-[160px] snap-center group" tabindex="0" data-layer="5">
<div class="h-[140px] glass-card bg-white border-2 border-sky-700/20
rounded-xl p-6 flex flex-col items-center justify-between
transition-all duration-300 hover:scale-105
hover:border-sky-700 hover:shadow-glow-blue
group-hover:border-sky-700/60">
<div class="w-8 h-8 rounded-full bg-blue-50 border-2 border-sky-700
text-sky-700 text-[14px] font-bold flex items-center
justify-center">05</div>
<div class="text-[14px] font-bold text-slate-900 text-center leading-tight">Decision Acceleration</div>
<div class="text-[12px] text-slate-600 flex items-center gap-1 group-hover:text-sky-700 transition-colors">
<iconify-icon icon="solar:arrow-right-linear"></iconify-icon>
</div>
</div>
</div>
<div class="flex items-center text-slate-300">
<iconify-icon icon="solar:arrow-right-linear" width="20"></iconify-icon>
</div>
<div class="framework-box flex-shrink-0 w-[160px] snap-center group" tabindex="0" data-layer="6">
<div class="h-[140px] glass-card bg-white border-2 border-sky-700/20
rounded-xl p-6 flex flex-col items-center justify-between
transition-all duration-300 hover:scale-105
hover:border-sky-700 hover:shadow-glow-blue
group-hover:border-sky-700/60">
<div class="w-8 h-8 rounded-full bg-blue-50 border-2 border-sky-700
text-sky-700 text-[14px] font-bold flex items-center
justify-center">06</div>
<div class="text-[14px] font-bold text-slate-900 text-center leading-tight">Consultation Show-Up</div>
<div class="text-[12px] text-slate-600 flex items-center gap-1 group-hover:text-sky-700 transition-colors">
<iconify-icon icon="solar:arrow-right-linear"></iconify-icon>
</div>
</div>
</div>
<div class="flex items-center text-slate-300">
<iconify-icon icon="solar:arrow-right-linear" width="20"></iconify-icon>
</div>
<div class="framework-box flex-shrink-0 w-[160px] snap-center group" tabindex="0" data-layer="7">
<div class="h-[140px] glass-card bg-white border-2 border-sky-700/20
rounded-xl p-6 flex flex-col items-center justify-between
transition-all duration-300 hover:scale-105
hover:border-sky-700 hover:shadow-glow-blue
group-hover:border-sky-700/60">
<div class="w-8 h-8 rounded-full bg-blue-50 border-2 border-sky-700
text-sky-700 text-[14px] font-bold flex items-center
justify-center">07</div>
<div class="text-[14px] font-bold text-slate-900 text-center leading-tight">Treatment Acceptance</div>
<div class="text-[12px] text-slate-600 flex items-center gap-1 group-hover:text-sky-700 transition-colors">
<iconify-icon icon="solar:arrow-right-linear"></iconify-icon>
</div>
</div>
</div>
<div class="flex items-center text-slate-300">
<iconify-icon icon="solar:arrow-right-linear" width="20"></iconify-icon>
</div>
<div class="framework-box flex-shrink-0 w-[160px] snap-center group" tabindex="0" data-layer="8">
<div class="h-[140px] glass-card bg-white border-2 border-sky-700/20
rounded-xl p-6 flex flex-col items-center justify-between
transition-all duration-300 hover:scale-105
hover:border-sky-700 hover:shadow-glow-blue
group-hover:border-sky-700/60">
<div class="w-8 h-8 rounded-full bg-blue-50 border-2 border-sky-700
text-sky-700 text-[14px] font-bold flex items-center
justify-center">08</div>
<div class="text-[14px] font-bold text-slate-900 text-center leading-tight">Retention & Reputation</div>
<div class="text-[12px] text-slate-600 flex items-center gap-1 group-hover:text-sky-700 transition-colors">
<iconify-icon icon="solar:arrow-right-linear"></iconify-icon>
</div>
</div>
</div>
</div>
<div class="text-center mt-8">
<a href="/methodology" class="inline-flex items-center justify-center gap-2 text-[15px]
transition-all duration-300 hover:bg-sky-800
hover:shadow-glow-blue hover:-translate-y-0.5 group
font-semibold text-white bg-sky-700 rounded-full pt-3 pr-6
pb-3 pl-6 shadow-md">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="transition-transform group-hover:translate-x-1">
<path d="M5 12h14"></path>
<path d="m12 5 7 7-7 7"></path>
</svg>
</a>
</div>
</div>
</section>
<div id="layer-modal" role="dialog" aria-modal="true">
<div id="layer-modal-inner">
<button id="layer-modal-close" aria-label="Close">✕</button>
<div id="modal-content"></div>
</div>
</div>
<script>(function(){
var layers = {
1: {
name: "Attention Capture",
tagline: "Interrupt the scroll. Establish immediate relevance.",
definition: "First contact point between patient and clinic. Interrupts scrolling and searching behaviour, establishing immediate relevance before the patient moves on.",
purpose: "Activate pattern recognition and relevance detection. The patient's brain must answer: 'Is this for me?' — filtering, not persuading. Wrong patients bounce; right patients proceed.",
failure: "Wasted ad spend. High-intent patients never enter the system because nothing caught their attention at the right moment.",
kpi: "Qualified Attention Rate = % of traffic that proceeds to Layer 2",
coreQ: "Is this for me?"
},
2: {
name: "Authority & Safety",
tagline: "Establish legitimacy fast. Reduce fear before engagement.",
definition: "Establish clinic legitimacy and medical credibility. The patient must perceive: 'These are real doctors, this is a real clinic.'",
purpose: "Activate authority bias and satisfy the safety heuristic. Credentials, professional imagery, and medical-grade aesthetics answer: 'Can I trust these people with my body?'",
failure: "High-intent patients leave. Fear of the 'wrong doctor' or 'unprofessional clinic' dominates — attention without trust always ends in bounce.",
kpi: "Trust Engagement Index = time on authority content + credential interaction rate",
coreQ: "Can I trust these people with my body?"
},
3: {
name: "Risk Reduction",
tagline: "Address fear of wrong choice or bad outcome.",
definition: "Surface compliant proof at the moment of doubt — track pre-booking behaviour signals and provide evidence that the treatment works and is safe.",
purpose: "Neutralise loss aversion and reduce uncertainty anxiety. Social proof, before/after evidence, and peer similarity bias answer: 'Will this work for me? Has it worked for people like me?'",
failure: "Patient believes the clinic is legitimate but fears the treatment will go wrong. Stalls at the research phase — analysis paralysis sets in and they never book.",
kpi: "Friction Drop Rate = % reduction in exit rate after engaging with proof content",
coreQ: "Will this work for me?"
},
4: {
name: "Intent Qualification",
tagline: "Separate serious patients from researchers.",
definition: "Constrain access to consultations by forcing commitment signals — turns intent into an irreversible decision path. Patients either commit forward or self-select out.",
purpose: "Activate commitment bias and self-selection. Smart inquiry forms and progressive disclosure answer: 'Am I ready to move forward, or still exploring?'",
failure: "Calendar fills with low-intent consultations. Clinic time is wasted on follow-ups that never convert. Capacity consumed without revenue.",
kpi: "Qualified Lead Probability Score = predictive model of booking + show-up + acceptance likelihood",
coreQ: "Am I ready to move forward?"
},
5: {
name: "Decision Acceleration",
tagline: "Move patients from thinking about it to booking.",
definition: "Removes booking friction and collapses the delay between intent and scheduled consultation — constrains the booking path into a single completion flow.",
purpose: "Combat temporal discounting and decision paralysis. Real-time availability, cognitive ease, and genuine scarcity framing answer: 'Do I book now, or later?'",
failure: "Patients intend to book but return to Google, delay, or ghost entirely. Revenue leaks through abandonment and delay.",
kpi: "Booking Velocity = time from Layer 4 qualification to booked consultation",
coreQ: "Do I book now, or later?"
},
6: {
name: "Consultation Show-Up",
tagline: "Ensure booked patients actually attend.",
definition: "Locks follow-through after booking by reducing avoidance — constrains the post-booking journey so patients confirm, prepare, reschedule cleanly, or self-select out early.",
purpose: "Activate consistency bias and sunk cost reinforcement. Multi-channel reminders, expectation setting, and pre-commitment mechanics answer: 'Will I follow through on my commitment?'",
failure: "No-shows waste clinical capacity. Teams scramble to fill gaps. Doctor time is consumed without output and revenue forecasting breaks.",
kpi: "Show-Up Rate = % of booked consultations attended",
coreQ: "Will I follow through?"
},
7: {
name: "Treatment Acceptance",
tagline: "Convert consultation into an treatment plan.",
definition: "Forces decision clarity in consultation — constrains acceptance into a clear yes/no outcome, reducing 'I'll think about it' objections.",
purpose: "Neutralise decision delay and increase cognitive ease. Visual explanations, doctor confidence, and plan clarity answer: 'Do I say yes now, or wait?'",
failure: "Patients attend and understand the plan but leave without committing. They 'think about it' and often never return — lost revenue despite all clinic effort invested.",
kpi: "Case Acceptance Rate = % of consultations resulting in an accepted treatment plan",
coreQ: "Do I say yes now, or wait?"
},
8: {
name: "Retention & Reputation",
tagline: "Turn patients into advocates. Build repeatable growth.",
definition: "Operationalises retention through follow-up, reviews, and return pathways — maximises lifetime value and converts satisfied patients into referral sources.",
purpose: "Activate reciprocity and dopamine reinforcement. Review requests, referral programmes, and maintenance scheduling answer: 'Was this worth it? Should I tell others?'",
failure: "One-time transactional relationship. No reviews, no referrals. Constant need for new patient acquisition. High CAC, low LTV — growth is permanently expensive.",
kpi: "Patient LTV · Review Velocity · Referral Rate",
coreQ: "Should I return or refer?"
}
};
var modal = document.getElementById('layer-modal');
var modalContent = document.getElementById('modal-content');
var closeBtn = document.getElementById('layer-modal-close');
function openModal(num) {
var d = layers[num];
if (!d) return;
modalContent.innerHTML =
'<div class="modal-badge">Layer 0' + num + '</div>' +
'<h3 style="font-size:24px;font-weight:800;color:#0f172a;margin:0 0 6px;">' + d.name + '</h3>' +
'<p style="font-size:15px;color:#64748b;margin:0 0 24px;">' + d.tagline + '</p>' +
'<div class="modal-section-label">What it does</div>' +
'<div class="modal-card"><p style="font-size:14px;color:#334155;margin:0;line-height:1.6;">' + d.definition + '</p></div>' +
'<div class="modal-section-label">Psychological purpose</div>' +
'<div class="modal-card"><p style="font-size:14px;color:#334155;margin:0;line-height:1.6;">' + d.purpose + '</p></div>' +
'<div class="modal-section-label">Core question</div>' +
'<div class="modal-card" style="background:#eff6ff;border-color:#bfdbfe;">' +
'<p class="modal-core-q">' + d.coreQ + '</p>' +
'</div>' +
'<div class="modal-section-label">Failure mode</div>' +
'<div class="modal-failure"><p style="font-size:14px;color:#991b1b;margin:0;line-height:1.6;">' + d.failure + '</p></div>' +
'<div class="modal-kpi"><span style="font-size:12px;font-weight:700;color:#1d4ed8;letter-spacing:0.08em;text-transform:uppercase;">KPI — </span>' +
'<span style="font-size:13px;color:#1e3a5f;">' + d.kpi + '</span>' +
'</div>' +
'<a href="/methodology#framework" class="modal-cta">' +
'Explore the full framework' +
'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>' +
'</a>';
modal.classList.add('open');
document.body.style.overflow = 'hidden';
}
function closeModal() {
modal.classList.remove('open');
document.body.style.overflow = '';
}
var cards = document.querySelectorAll('.framework-box[data-layer]');
for (var i = 0; i < cards.length; i++) {
(function(card){
card.addEventListener('click', function(){
openModal(parseInt(card.getAttribute('data-layer')));
});
card.addEventListener('keydown', function(e){
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
openModal(parseInt(card.getAttribute('data-layer')));
}
});
})(cards[i]);
}
closeBtn.addEventListener('click', closeModal);
modal.addEventListener('click', function(e){
if (e.target === modal) closeModal();
});
document.addEventListener('keydown', function(e){
if (e.key === 'Escape') closeModal();
});
})();</script>
</div>