Subscribe to our newsletter
Receive updates on Termite Intelligence
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Heartstrings — Medical Romance</title>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Source+Sans+3:wght@300;400;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
<style>
:root
--bg: #0a0c10;
--bg2: #12151c;
--card: #181c26;
--card-hover: #1e2330;
--border: #2a2f3d;
--fg: #e8e4df;
--fg-muted: #8a8690;
--accent: #d4634a;
--accent-glow: rgba(212,99,74,0.25);
--warm: #e8a87c;
--teal: #5ba8a0;
--lavender: #9b8ec4;
--rose: #c76b7e;
--gold: #c9a84c;
* margin:0; padding:0; box-sizing:border-box;
body
background: var(--bg);
color: var(--fg);
font-family: 'Source Sans 3', sans-serif;
min-height: 100vh;
overflow-x: hidden;
/* Background atmosphere */
.atmosphere
position: fixed; inset:0; z-index:0; pointer-events:none;
background:
radial-gradient(ellipse 600px 400px at 20% 30%, rgba(212,99,74,0.06) 0%, transparent 70%),
radial-gradient(ellipse 500px 500px at 80% 70%, rgba(91,168,160,0.05) 0%, transparent 70%),
radial-gradient(ellipse 400px 300px at 50% 90%, rgba(155,142,196,0.04) 0%, transparent 70%);
.pulse-line
position: fixed; bottom: 0; left:0; width:100%; height: 80px;
z-index: 0; pointer-events: none; opacity: 0.15;
/* Main container */
.game-container
position: relative; z-index: 1;
max-width: 780px;
margin: 0 auto;
padding: 20px;
min-height: 100vh;
display: flex; flex-direction: column;
/* Title screen */
.title-screen
display: flex; flex-direction: column;
align-items: center; justify-content: center;
min-height: 100vh; text-align: center;
animation: fadeIn 1.2s ease;
.title-screen .icon-heart
font-size: 48px; color: var(--accent);
margin-bottom: 24px;
animation: heartbeat 2s ease-in-out infinite;
.title-screen h1
font-family: 'Playfair Display', serif;
font-size: clamp(48px, 8vw, 72px);
font-weight: 700;
letter-spacing: -1px;
line-height: 1.1;
background: linear-gradient(135deg, var(--fg), var(--warm));
-webkit-background-clip: text; -webkit-text-fill-color: transparent;
background-clip: text;
.title-screen .subtitle
font-family: 'Playfair Display', serif;
font-style: italic;
font-size: 18px;
color: var(--fg-muted);
margin-top: 12px;
letter-spacing: 2px;
.title-screen .tagline
margin-top: 40px;
color: var(--fg-muted);
font-size: 15px;
line-height: 1.7;
max-width: 440px;
.btn
display: inline-flex; align-items: center; gap: 10px;
padding: 14px 36px;
border: none; border-radius: 50px;
font-family: 'Source Sans 3', sans-serif;
font-size: 16px; font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
text-transform: uppercase;
letter-spacing: 1.5px;
.btn-primary
background: linear-gradient(135deg, var(--accent), #b84a33);
color: #fff;
box-shadow: 0 4px 24px var(--accent-glow);
.btn-primary:hover
transform: translateY(-2px);
box-shadow: 0 8px 32px rgba(212,99,74,0.4);
.btn-secondary
background: var(--card);
color: var(--fg);
border: 1px solid var(--border);
.btn-secondary:hover
background: var(--card-hover);
border-color: var(--accent);
.start-btn margin-top: 48px;
/* Game screen */
.game-screen display:none; flex-direction:column; flex:1; padding-bottom:40px;
.game-screen.active display:flex; animation: fadeIn 0.6s ease;
/* Top bar */
.top-bar
display: flex; align-items: center; justify-content: space-between;
padding: 16px 0;
border-bottom: 1px solid var(--border);
margin-bottom: 24px;
flex-shrink: 0;
.hospital-name
font-family: 'Playfair Display', serif;
font-size: 14px;
color: var(--fg-muted);
letter-spacing: 3px;
text-transform: uppercase;
.chapter-label
font-size: 13px;
color: var(--accent);
font-weight: 600;
letter-spacing: 1px;
/* Relationship sidebar */
.rel-panel
display: flex; gap: 16px;
padding: 16px;
background: var(--card);
border-radius: 16px;
border: 1px solid var(--border);
margin-bottom: 24px;
flex-shrink: 0;
overflow-x: auto;
.rel-item
display: flex; align-items: center; gap: 10px;
min-width: fit-content;
padding: 8px 14px;
border-radius: 12px;
background: var(--bg2);
transition: all 0.3s;
.rel-item.highlight background: rgba(212,99,74,0.1); border: 1px solid rgba(212,99,74,0.3);
.rel-avatar
width: 36px; height: 36px;
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
font-size: 14px; font-weight: 700;
color: #fff;
flex-shrink: 0;
.rel-info display: flex; flex-direction: column; gap: 4px;
.rel-name font-size: 13px; font-weight: 600;
.rel-bar-track
width: 80px; height: 4px;
background: var(--border); border-radius: 2px; overflow: hidden;
.rel-bar-fill
height: 100%; border-radius: 2px;
transition: width 0.8s cubic-bezier(0.22,1,0.36,1);
.rel-status
font-size: 10px; color: var(--fg-muted); text-transform: uppercase; letter-spacing: 1px;
/* Scene area */
.scene-area
flex: 1;
display: flex; flex-direction: column;
.scene-card {
background: var(--card);
border: 1px solid var(--border);
border-radius: 20px;
padding: 32px;
flex: 1;
display: flex; flex-direction: column;
| Relationship | Realistic Tension | Example Story Hook | |--------------|-------------------|---------------------| | Attending + Resident | Power imbalance, evaluation risk, gossip | They start secretly dating. She passes her boards. Does she stay or leave to avoid favoritism claims? | | Two Residents (same year) | Competition for fellowships, exhaustion bonding, shift clash | They only see each other during night floats. Romance built in 15-min coffee breaks and stolen naps. | | Nurse + Doctor | Historical hierarchy, mutual respect vs. condescension | He finally learns her name after 6 months. She teaches him bedside manner. Real attraction follows. | | ER + ICU | Different pace (chaos vs. protocol) | An ER doc and ICU nurse keep meeting over crashing patients. Their first real date is at 2 AM in the hospital cafeteria. | | Pharmacist + Any Clinician | Quiet hero dynamic, medication safety debates | He catches her near-error. She’s defensive at first, then grateful. They bond over near-miss reports. | | EMS + ER | Street vs. hospital culture | The paramedic trusts no one. The ER doc proves they listen. Romance built in handoff reports. |
Hospice workers report some of the most beautiful, heartbreaking romantic storylines. An elderly couple married for 60 years holds hands as dementia erases memories. A middle-aged widower meets another patient’s daughter in the chemo ward and they marry before his final scan. They speak the same language: "I had a
These stories rarely make it to television because they move too slowly and hurt too much. They are not about passion; they are about presence. or go public with consequences.
When we talk about real medical amp relationships, we must separate two distinct categories: romances between healthcare providers and romances between a patient and a provider (or patient and patient). B. Forbidden Love (High Drama)
Some of the most fascinating real medical relationships are between two healthcare workers. These pairings work not because of grand romance, but because of mutual translation.