Join 54,000+ Looksmaxxing Members!

Register a FREE account today to become a member. Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox.

  • DISCLAIMER: DO NOT ATTEMPT TREATMENT WITHOUT LICENCED MEDICAL CONSULTATION AND SUPERVISION

    This is a public discussion forum. The owners, staff, and users of this website ARE NOT engaged in rendering professional services to the individual reader. DO NOT use the content of this website as an alternative to personal examination and advice from licenced healthcare providers. DO NOT begin, delay, or discontinue treatments and/or exercises without licenced medical supervision. Learn more

new update for my looksmaxxing game

190cm

True Slenderman
Banned
Joined
Aug 23, 2025
Messages
154
Time Online
6h 23m
Reputation
222

Attachments

  • 1756673443981.png
    1756673443981.png
    47.2 KB · Views: 22
  • 1756673465565.png
    1756673465565.png
    49.3 KB · Views: 22
  • 1756673483982.png
    1756673483982.png
    49.4 KB · Views: 16
  • 1756673500704.png
    1756673500704.png
    34.8 KB · Views: 22
Register to hide this ad
why does n***a tag me
 
I actually want to play this game
 
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Blackpill Sim 2026</title>
    <style>
        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        }
        
        body {
            background: linear-gradient(135deg, #0f172a, #1e293b);
            color: #e2e8f0;
            line-height: 1.6;
            padding: 20px;
            min-height: 100vh;
        }
        
        .container {
            max-width: 1200px;
            margin: 0 auto;
            background: rgba(30, 41, 59, 0.8);
            border-radius: 10px;
            padding: 20px;
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
        }
        
        header {
            text-align: center;
            margin-bottom: 20px;
            padding-bottom: 15px;
            border-bottom: 1px solid #334155;
        }
        
        h1 {
            color: #f8fafc;
            font-size: 2.5rem;
            margin-bottom: 10px;
            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
        }
        
        .disclaimer {
            background: rgba(220, 38, 38, 0.2);
            padding: 15px;
            border-radius: 8px;
            margin: 15px 0;
            border-left: 4px solid #dc2626;
            font-size: 0.9rem;
        }
        
        .stats-container {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 15px;
            margin-bottom: 20px;
        }
        
        .stat-box {
            background: rgba(15, 23, 42, 0.7);
            padding: 15px;
            border-radius: 8px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        }
        
        .stat-title {
            font-size: 1rem;
            color: #94a3b8;
            margin-bottom: 5px;
        }
        
        .stat-value {
            font-size: 1.4rem;
            font-weight: bold;
            color: #f8fafc;
        }
        
        .trait-list {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin: 10px 0;
        }
        
        .trait {
            background: rgba(30, 64, 175, 0.3);
            padding: 5px 10px;
            border-radius: 20px;
            font-size: 0.9rem;
        }
        
        .negative-trait {
            background: rgba(220, 38, 38, 0.3);
        }
        
        .actions-container {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 15px;
            margin: 20px 0;
        }
        
        .action-btn {
            background: #3b82f6;
            color: white;
            border: none;
            padding: 12px;
            border-radius: 8px;
            cursor: pointer;
            font-weight: bold;
            transition: all 0.3s ease;
        }
        
        .action-btn:hover {
            background: #2563eb;
            transform: translateY(-2px);
        }
        
        .action-btn:disabled {
            background: #64748b;
            cursor: not-allowed;
            transform: none;
        }
        
        .log-container {
            background: rgba(15, 23, 42, 0.7);
            border-radius: 8px;
            padding: 15px;
            margin-top: 20px;
            max-height: 300px;
            overflow-y: auto;
        }
        
        .log-entry {
            margin-bottom: 8px;
            padding-bottom: 8px;
            border-bottom: 1px solid #334155;
        }
        
        .log-entry:last-child {
            border-bottom: none;
        }
        
        .age-badge {
            display: inline-block;
            background: #8b5cf6;
            padding: 3px 8px;
            border-radius: 12px;
            font-size: 0.8rem;
            margin-right: 8px;
        }
        
        .success {
            color: #10b981;
        }
        
        .danger {
            color: #ef4444;
        }
        
        .warning {
            color: #f59e0b;
        }
        
        .tier-badge {
            display: inline-block;
            padding: 5px 12px;
            border-radius: 20px;
            font-weight: bold;
            margin-top: 5px;
        }
        
        .subhuman { background: #dc2626; color: white; }
        .ltn { background: #ea580c; color: white; }
        .mtn { background: #d97706; color: white; }
        .htn { background: #65a30d; color: white; }
        .chadlite { background: #16a34a; color: white; }
        .chad { background: #059669; color: white; }
        .trueadam { background: linear-gradient(45deg, #06b6d4, #8b5cf6); color: white; }
        
        .progress-bar {
            height: 8px;
            background: #334155;
            border-radius: 4px;
            margin-top: 5px;
            overflow: hidden;
        }
        
        .progress-fill {
            height: 100%;
            background: #3b82f6;
            border-radius: 4px;
        }
        
        footer {
            text-align: center;
            margin-top: 20px;
            padding-top: 15px;
            border-top: 1px solid #334155;
            font-size: 0.9rem;
            color: #94a3b8;
        }
        
        .tab-container {
            display: flex;
            gap: 10px;
            margin-bottom: 15px;
            flex-wrap: wrap;
        }
        
        .tab {
            padding: 10px 15px;
            background: #334155;
            border-radius: 5px;
            cursor: pointer;
            white-space: nowrap;
        }
        
        .tab.active {
            background: #3b82f6;
        }
        
        .tab-content {
            display: none;
        }
        
        .tab-content.active {
            display: block;
        }
        
        .shop-item {
            display: flex;
            justify-content: space-between;
            padding: 10px;
            background: rgba(15, 23, 42, 0.7);
            margin-bottom: 5px;
            border-radius: 5px;
            align-items: center;
        }
        
        .shop-item-info {
            flex: 1;
        }
        
        .shop-item-title {
            font-weight: bold;
            margin-bottom: 5px;
        }
        
        .shop-item-desc {
            font-size: 0.9rem;
            color: #94a3b8;
        }
        
        .shop-item-action {
            display: flex;
            align-items: center;
            gap: 10px;
        }
        
        .genetics-display {
            background: rgba(15, 23, 42, 0.7);
            padding: 15px;
            border-radius: 8px;
            margin-bottom: 15px;
        }
        
        .height-chart {
            margin-top: 20px;
            background: rgba(15, 23, 42, 0.7);
            padding: 15px;
            border-radius: 8px;
        }
        
        .chart-bar {
            height: 20px;
            background: #334155;
            border-radius: 10px;
            margin: 5px 0;
            overflow: hidden;
            position: relative;
        }
        
        .chart-fill {
            height: 100%;
            background: linear-gradient(90deg, #3b82f6, #8b5cf6);
            border-radius: 10px;
            width: 0%;
            transition: width 1s ease;
        }
        
        .chart-label {
            position: absolute;
            left: 10px;
            top: 0;
            line-height: 20px;
            color: white;
            font-size: 0.8rem;
        }
        
        .degeneration-indicator {
            display: inline-block;
            padding: 2px 8px;
            background: #dc2626;
            border-radius: 10px;
            font-size: 0.8rem;
            margin-left: 5px;
            animation: pulse 2s infinite;
        }
        
        @keyframes pulse {
            0% { opacity: 0.7; }
            50% { opacity: 1; }
            100% { opacity: 0.7; }
        }
        
        .status-badge {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 12px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
        
        .gray-status { background: #64748b; color: white; }
        .known-status { background: #3b82f6; color: white; }
        .contributor-status { background: #8b5cf6; color: white; }
        .orgmaster-status { background: linear-gradient(45deg, #06b6d4, #8b5cf6); color: white; }
        
        .modal {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.7);
            z-index: 1000;
            align-items: center;
            justify-content: center;
        }
        
        .modal-content {
            background: #1e293b;
            padding: 20px;
            border-radius: 10px;
            max-width: 500px;
            width: 90%;
            max-height: 80vh;
            overflow-y: auto;
        }
        
        .modal-title {
            font-size: 1.5rem;
            margin-bottom: 15px;
            color: #f8fafc;
        }
        
        .modal-desc {
            margin-bottom: 15px;
            color: #e2e8f0;
        }
        
        .modal-buttons {
            display: flex;
            gap: 10px;
            justify-content: flex-end;
        }
        
        .modal-btn {
            padding: 8px 15px;
            border-radius: 5px;
            cursor: pointer;
            border: none;
            font-weight: bold;
        }
        
        .modal-btn-primary {
            background: #3b82f6;
            color: white;
        }
        
        .modal-btn-secondary {
            background: #64748b;
            color: white;
        }
        
        .risk-indicator {
            display: inline-block;
            padding: 2px 6px;
            border-radius: 10px;
            font-size: 0.7rem;
            margin-left: 5px;
        }
        
        .low-risk { background: #10b981; color: white; }
        .medium-risk { background: #f59e0b; color: white; }
        .high-risk { background: #ef4444; color: white; }
        
        .drug-warning {
            color: #ef4444;
            font-size: 0.9rem;
            margin-top: 5px;
        }
        
        .family-class {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 12px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
        
        .lower-class { background: #dc2626; color: white; }
        .middle-class { background: #d97706; color: white; }
        .upper-class { background: #059669; color: white; }
        
        .social-media-post {
            background: rgba(15, 23, 42, 0.7);
            padding: 15px;
            border-radius: 8px;
            margin-bottom: 15px;
        }
        
        .social-media-icon {
            width: 24px;
            height: 24px;
            margin-right: 8px;
            vertical-align: middle;
        }
        
        .job-item {
            display: flex;
            justify-content: space-between;
            padding: 10px;
            background: rgba(15, 23, 42, 0.7);
            margin-bottom: 5px;
            border-radius: 5px;
            align-items: center;
        }
        
        .job-requirements {
            font-size: 0.9rem;
            color: #94a3b8;
        }
        
        .study-options {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 15px;
        }
        
        .study-option {
            background: rgba(15, 23, 42, 0.7);
            padding: 15px;
            border-radius: 8px;
            text-align: center;
        }
        
        .influencer-status {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 12px;
            background: linear-gradient(45deg, #8b5cf6, #ec4899);
            color: white;
            font-size: 0.8rem;
            margin-left: 5px;
        }
        
        /* New styles for additional features */
        .relationship-status {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 12px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
        
        .single { background: #64748b; color: white; }
        .dating { background: #3b82f6; color: white; }
        .married { background: #8b5cf6; color: white; }
        
        .children-list {
            margin-top: 10px;
            max-height: 150px;
            overflow-y: auto;
        }
        
        .child-item {
            padding: 5px;
            background: rgba(15, 23, 42, 0.5);
            margin-bottom: 3px;
            border-radius: 4px;
            font-size: 0.9rem;
        }
        
        .bmi-value {
            font-size: 1.2rem;
            font-weight: bold;
            color: #f8fafc;
        }
        
        .bmi-status {
            display: inline-block;
            padding: 2px 8px;
            border-radius: 10px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
        
        .underweight { background: #f59e0b; color: white; }
        .normal { background: #10b981; color: white; }
        .overweight { background: #f59e0b; color: white; }
        .obese { background: #ef4444; color: white; }
        
        .date-btn {
            background: #ec4899;
            color: white;
            border: none;
            padding: 8px 12px;
            border-radius: 8px;
            cursor: pointer;
            font-weight: bold;
            transition: all 0.3s ease;
            margin-top: 5px;
        }
        
        .date-btn:hover {
            background: #db2777;
        }
        
        .date-btn:disabled {
            background: #64748b;
            cursor: not-allowed;
        }
        
        .partner-info {
            margin-top: 10px;
            padding: 10px;
            background: rgba(15, 23, 42, 0.5);
            border-radius: 8px;
        }
        
        .eat-btn {
            background: #10b981;
            color: white;
            border: none;
            padding: 8px 12px;
            border-radius: 8px;
            cursor: pointer;
            font-weight: bold;
            transition: all 0.3s ease;
            margin-top: 5px;
        }
        
        .eat-btn:hover {
            background: #059669;
        }
        
        .eat-btn:disabled {
            background: #64748b;
            cursor: not-allowed;
        }
        
        .food-item {
            display: flex;
            justify-content: space-between;
            padding: 8px;
            background: rgba(15, 23, 42, 0.7);
            margin-bottom: 5px;
            border-radius: 5px;
            align-items: center;
        }
        
        .food-item-info {
            flex: 1;
        }
        
        .food-item-title {
            font-weight: bold;
            margin-bottom: 3px;
        }
        
        .food-item-desc {
            font-size: 0.8rem;
            color: #94a3b8;
        }
        
        .food-item-action {
            display: flex;
            align-items: center;
            gap: 10px;
        }
        
        .harmonization-effect {
            display: inline-block;
            padding: 2px 8px;
            background: #8b5cf6;
            border-radius: 10px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
        
        /* New styles for additional features */
        .archetype-container {
            background: rgba(15, 23, 42, 0.7);
            padding: 15px;
            border-radius: 8px;
            margin-bottom: 15px;
        }
        
        .archetype-item {
            margin-bottom: 10px;
            padding: 10px;
            background: rgba(30, 41, 59, 0.5);
            border-radius: 5px;
        }
        
        .archetype-title {
            font-weight: bold;
            margin-bottom: 5px;
            color: #f8fafc;
        }
        
        .archetype-desc {
            font-size: 0.9rem;
            color: #94a3b8;
        }
        
        .select-archetype-btn {
            background: #8b5cf6;
            color: white;
            border: none;
            padding: 8px 12px;
            border-radius: 5px;
            cursor: pointer;
            margin-top: 5px;
            font-size: 0.9rem;
        }
        
        .select-archetype-btn:hover {
            background: #7c3aed;
        }
        
        .hair-style-item {
            display: flex;
            justify-content: space-between;
            padding: 8px;
            background: rgba(15, 23, 42, 0.7);
            margin-bottom: 5px;
            border-radius: 5px;
            align-items: center;
        }
        
        .humor-stat {
            display: inline-block;
            padding: 2px 8px;
            background: #f59e0b;
            border-radius: 10px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
        
        .cheating-risk {
            display: inline-block;
            padding: 2px 8px;
            background: #ec4899;
            border-radius: 10px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
        
        .generation-btn {
            background: linear-gradient(45deg, #06b6d4, #8b5cf6);
            color: white;
            border: none;
            padding: 10px 15px;
            border-radius: 8px;
            cursor: pointer;
            font-weight: bold;
            margin-top: 10px;
        }
        
        .divorce-btn {
            background: #dc2626;
            color: white;
            border: none;
            padding: 8px 12px;
            border-radius: 8px;
            cursor: pointer;
            margin-top: 5px;
        }
        
        .confront-btn {
            background: #ea580c;
            color: white;
            border: none;
            padding: 8px 12px;
            border-radius: 8px;
            cursor: pointer;
            margin-top: 5px;
            margin-left: 5px;
        }
    </style>
</head>
<body>
    <div class="container">
        <header>
            <h1>Blackpill Simulator 2k26</h1>
            <div class="disclaimer">
                <strong>Content Warning:</strong> This game explores themes related to appearance-based discrimination, body image issues, body dysmorphia. Discretion is advised.
            </div>
        </header>
        
        <div class="genetics-display">
            <h3>Genetic Inheritance</h3>
            <p>Father's Height: <span id="father-height">5'10"</span> | Mother's Height: <span id="mother-height">5'4"</span></p>
            <p>Family Class: <span id="family-class-value" class="family-class middle-class">Middle Class</span></p>
            <p>Genetic Potential: <span id="genetic-potential">Medium</span></p>
            <p>Parental Bone Structure: <span id="parent-bone">Average</span></p>
            <p>Race: <span id="race-value">Caucasian</span></p>
            <p>Eye Color: <span id="eye-color">Brown</span></p>
            <p>IQ Potential: <span id="iq-potential">100</span></p>
            <p>SMV: <span id="smv-value">4.5</span> | Status: <span id="status-value">Neutral</span></p>
            <p>Humor: <span id="humor-value">50</span> <span class="humor-stat">Neutral</span></p>
            <div id="org-status-container" style="display: none;">
                <p>.org Status: <span id="org-status-value" class="status-badge gray-status">Gray</span></p>
            </div>
            <div id="social-media-status-container" style="display: none; margin-top: 10px;">
                <p>Social Media: <span id="social-media-status-value">No Presence</span></p>
            </div>
            <div id="relationship-container" style="display: none; margin-top: 10px;">
                <p>Relationship: <span id="relationship-status-value" class="relationship-status single">Single</span></p>
                <div id="partner-info-container" class="partner-info" style="display: none;">
                    <p>Partner: <span id="partner-name">Name</span> | Attractiveness: <span id="partner-attractiveness">5.0</span></p>
                    <p>Height: <span id="partner-height">5'8"</span> | Children: <span id="children-count">0</span></p>
                    <div id="children-container" class="children-list" style="display: none;">
                    </div>
                </div>
            </div>
        </div>
        
        <div class="stats-container">
            <div class="stat-box">
                <div class="stat-title">Age</div>
                <div class="stat-value" id="age-value">0 years old</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="age-progress" style="width: 0%"></div>
                </div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">Neurodiversity Status</div>
                <div class="stat-value" id="neuro-status">Neurotypical</div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">IQ</div>
                <div class="stat-value" id="iq-value">100</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="iq-progress" style="width: 50%"></div>
                </div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">Attractiveness Tier</div>
                <div class="stat-value" id="attractiveness-value">High Low Tier Normie</div>
                <div class="tier-badge ltn" id="tier-badge">HLTN</div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">Height</div>
                <div class="stat-value" id="height-value">1'8"</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="height-progress" style="width: 10%"></div>
                </div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">Weight & BMI</div>
                <div class="stat-value" id="weight-value">20 lbs</div>
                <div class="bmi-value" id="bmi-value">16.2</div>
                <div class="bmi-status underweight" id="bmi-status">Underweight</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="bmi-progress" style="width: 30%"></div>
                </div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">Health</div>
                <div class="stat-value" id="health-value">Good</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="health-progress" style="width: 80%"></div>
                </div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">Money</div>
                <div class="stat-value" id="money-value">$0</div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">Social Status</div>
                <div class="stat-value" id="social-value">Neutral</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="social-progress" style="width: 50%"></div>
                </div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">Followers</div>
                <div class="stat-value" id="followers-value">0</div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">Bone Mass</div>
                <div class="stat-value" id="bone-mass-value">Normal</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="bone-mass-progress" style="width: 50%"></div>
                </div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">Hair Type</div>
                <div class="stat-value" id="hair-type-value">Straight</div>
                <div class="stat-value" id="hair-length-value">Short</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="hair-health-progress" style="width: 80%"></div>
                </div>
            </div>
        </div>
        
        <div class="height-chart">
            <h3>Height Percentile</h3>
            <div class="chart-bar">
                <div class="chart-fill" id="height-percentile" style="width: 50%"></div>
                <div class="chart-label">Your height: <span id="height-percentile-value">50%</span></div>
            </div>
            <p>You are taller than <span id="taller-than">50%</span> of people your age and gender.</p>
        </div>
        
        <div class="tab-container">
            <div class="tab active" data-tab="traits">Traits</div>
            <div class="tab" data-tab="actions">Actions</div>
            <div class="tab" data-tab="school">School</div>
            <div class="tab" data-tab="procedures">Procedures</div>
            <div class="tab" data-tab="peptides">Peptides</div>
            <div class="tab" data-tab="steroids">Steroids</div>
            <div class="tab" data-tab="nutrition">Nutrition</div>
            <div class="tab" data-tab="social-media">Social Media</div>
            <div class="tab" data-tab="jobs">Jobs</div>
            <div class="tab" data-tab="family">Family</div>
            <div class="tab" data-tab="dating">Dating</div>
            <div class="tab" data-tab="forum">.org Forum</div>
            <div class="tab" data-tab="archetypes">Archetypes</div>
            <div class="tab" data-tab="hair">Hair</div>
        </div>
        
        <div class="tab-content active" id="traits-tab">
            <div class="stat-box">
                <div class="stat-title">Physical Traits</div>
                <div class="trait-list" id="physical-traits">
                    <div class="trait">Symmetrical Face</div>
                    <div class="trait negative-trait">Narrow Clavicles</div>
                </div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">Facial Features</div>
                <div class="trait-list" id="facial-traits">
                    <div class="trait">Positive Canthal Tilt</div>
                    <div class="trait negative-trait">Recessed Maxilla</div>
                </div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">Skin Conditions</div>
                <div class="trait-list" id="skin-traits">
                    <div class="trait">Clear Skin</div>
                </div>
            </div>
            
            <div class="stat-box">
                <div class="stat-title">Health Conditions</div>
                <div class="trait-list" id="health-traits">
                    <div class="trait">Good Metabolism</div>
                </div>
            </div>
        </div>
        
        <div class="tab-content" id="actions-tab">
            <div class="actions-container">
                <button class="action-btn" id="age-btn">Age Up (+1 year)</button>
                <button class="action-btn" id="skincare-btn">Skincare Routine ($50)</button>
                <button class="action-btn" id="gym-btn">Gym Workout ($30)</button>
                <button class="action-btn" id="study-btn">Study ($20)</button>
                <button class="action-btn" id="work-btn">Part-time Job ($100)</button>
                <button class="action-btn" id="surgery-btn" disabled>Cosmetic Surgery ($5000)</button>
                <button class="action-btn" id="fraud-btn">Frauding ($20)</button>
                <button class="action-btn" id="diy-filler-btn" disabled>DIY Filler ($100)</button>
                <button class="action-btn" id="rope-btn" style="background: #dc2626;">Rope (Restart)</button>
            </div>
        </div>
        
        <div class="tab-content" id="school-tab">
            <div class="study-options">
                <div class="study-option">
                    <h3>Elementary School</h3>
                    <p>Available until age 12</p>
                    <button class="action-btn" id="elementary-study-btn" disabled>Study Basics</button>
                </div>
                
                <div class="study-option">
                    <h3>Middle School</h3>
                    <p>Available from age 12-15</p>
                    <button class="action-btn" id="middle-study-btn" disabled>Study Regular</button>
                </div>
                
                <div class="study-option">
                    <h3>High School</h3>
                    <p>Available from age 15-18</p>
                    <button class="action-btn" id="high-school-study-btn" disabled>Study Advanced</button>
                </div>
                
                <div class="study-option">
                    <h3>College</h3>
                    <p>Available from age 18+</p>
                    <button class="action-btn" id="college-study-btn" disabled>Study Higher Education</button>
                </div>
            </div>
            
            <div class="stat-box" style="margin-top: 15px;">
                <div class="stat-title">Study Effectiveness</div>
                <p>Your IQ affects how efficiently you learn:</p>
                <ul style="margin-left: 20px; margin-top: 10px;">
                    <li>Lower IQ: Slower learning</li>
                    <li>Average IQ: Moderate learning</li>
                    <li>Higher IQ: Faster learning</li>
                </ul>
            </div>
        </div>
        
        <div class="tab-content" id="procedures-tab">
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Braces <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Fixes malocclusion and crooked teeth. Risk of botch if no issues present.</div>
                </div>
                <div class="shop-item-action">
                    $3000 <button class="action-btn" disabled id="braces-btn">Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Jaw Surgery <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Fixes recessed maxilla/mandible. Can botch if not needed.</div>
                </div>
                <div class="shop-item-action">
                    $15000 <button class="action-btn" disabled id="jawsurgery-btn">Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Buccal Fat Removal <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Removes cheek fat for more defined cheekbones. Can cause premature aging if overdone.</div>
                </div>
                <div class="shop-item-action">
                    $4000 <button class="action-btn" disabled id="buccalfat-btn">Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Rhinoplasty <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Nose reshaping surgery. High botch potential.</div>
                </div>
                <div class="shop-item-action">
                    $8000 <button class="action-btn" disabled id="rhinoplasty-btn">Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Limb Lengthening Surgery <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Increases height by 3-4 inches. Extremely painful and risky.</div>
                </div>
                <div class="shop-item-action">
                    $70000 <button class="action-btn" disabled id="limblengthening-btn">Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Professional Filler <span class="risk-indicator low-risk">Low Risk</span></div>
                    <div class="shop-item-desc">Professional filler injection for lips, cheeks, or jawline.</div>
                </div>
                <div class="shop-item-action">
                    $2000 <button class="action-btn" disabled id="filler-btn">Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Facial Harmonization Filler <span class="harmonization-effect">Corrects Asymmetry</span> <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Advanced filler techniques to improve facial harmony and balance. Can ascend up to 2 tiers.</div>
                </div>
                <div class="shop-item-action">
                    $5000 <button class="action-btn" disabled id="harmonization-filler-btn">Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Palatal Expander <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Widens the upper jaw. Only effective before age 16. Risk of fusion with peptides.</div>
                </div>
                <div class="shop-item-action">
                    $4000 <button class="action-btn" disabled id="palatal-expander-btn">Purchase</button>
                </div>
            </div>
            
            <!-- New eye area procedures -->
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Canthopexy <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Lifts the outer corner of the eyes for a more alert, positive canthal tilt.</div>
                </div>
                <div class="shop-item-action">
                    $6000 <button class="action-btn" disabled id="canthopexy-btn">Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Upper Eyelid Filler <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Adds volume to upper eyelids for a more hunter-eyed/hooded appearance.</div>
                </div>
                <div class="shop-item-action">
                    $3500 <button class="action-btn" disabled id="eyelid-filler-btn">Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Blepharoplasty <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Eyelid surgery to remove excess skin or fat from the eyelids.</div>
                </div>
                <div class="shop-item-action">
                    $8000 <button class="action-btn" disabled id="blepharoplasty-btn">Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Keratopigmentation <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Permanent eye color change procedure. Risk of blindness if botched.</div>
                </div>
                <div class="shop-item-action">
                    $7000 <button class="action-btn" disabled id="keratopigmentation-btn">Purchase</button>
                </div>
            </div>
        </div>
        
        <div class="tab-content" id="peptides-tab">
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">IGF-1 LR3 <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Stimulates growth before plates close. After closure, risk of acromegaly and diabetes.</div>
                    <div class="drug-warning">60% chance of suture fusion if using palatal expander</div>
                </div>
                <div class="shop-item-action">
                    $500 <button class="action-btn" id="igf1-btn" disabled>Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">MK-677 <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Growth hormone secretagogue. Increases height potential and bone mass.</div>
                </div>
                <div class="shop-item-action">
                    $300 <button class="action-btn" id="mk677-btn" disabled>Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">HGH <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Human Growth Hormone. Maximizes growth potential, increases bone mass, but high risk of side effects.</div>
                </div>
                <div class="shop-item-action">
                    $1000 <button class="action-btn" id="hgh-btn" disabled>Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">GHK-Cu <span class="risk-indicator low-risk">Low Risk</span></div>
                    <div class="shop-item-desc">Copper peptide for skin rejuvenation and improved complexion.</div>
                </div>
                <div class="shop-item-action">
                    $200 <button class="action-btn" id="ghk-cu-btn" disabled>Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Minoxidil <span class="risk-indicator low-risk">Low Risk</span></div>
                    <div class="shop-item-desc">Promotes facial hair growth and prevents balding.</div>
                </div>
                <div class="shop-item-action">
                    $50 <button class="action-btn" id="minoxidil-btn" disabled>Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Meclizine/Aromatase Inhibitors <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">May increase height by delaying growth plate closure. Very low success rate. Risk of dementia later in life.</div>
                </div>
                <div class="shop-item-action">
                    $400 <button class="action-btn" id="meclizine-btn" disabled>Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">CJC no DAC + IPA <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Growth hormone releasing peptide combination. May increase height and improve recovery.</div>
                </div>
                <div class="shop-item-action">
                    $600 <button class="action-btn" id="cjc-ipa-btn" disabled>Purchase</button>
                </div>
            </div>
        </div>
        
        <div class="tab-content" id="steroids-tab">
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Trenbolone <span class="risk-indicator high-risk">EXTREME RISK</span></div>
                    <div class="shop-item-desc">Extremely powerful steroid. Very dangerous for teens, dangerous for adults.</div>
                    <div class="drug-warning">High risk of permanent health damage</div>
                </div>
                <div class="shop-item-action">
                    $300 <button class="action-btn" disabled id="trenbolone-btn">Purchase</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Anavar <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Milder steroid but still dangerous. Can cause liver damage.</div>
                </div>
                <div class="shop-item-action">
                    $200 <button class="action-btn" disabled id="anavar-btn">Purchase</button>
                </div>
            </div>
        </div>
        
        <div class="tab-content" id="nutrition-tab">
            <div class="food-item">
                <div class="food-item-info">
                    <div class="food-item-title">Basic Meal ($5)</div>
                    <div class="food-item-desc">A simple meal that satisfies hunger.</div>
                </div>
                <div class="food-item-action">
                    <button class="eat-btn" id="basic-meal-btn">Eat</button>
                </div>
            </div>
            
            <div class="food-item">
                <div class="food-item-info">
                    <div class="food-item-title">Healthy Meal ($15)</div>
                    <div class="food-item-desc">Nutritious meal that improves health and maintains weight.</div>
                </div>
                <div class="food-item-action">
                    <button class="eat-btn" id="healthy-meal-btn">Eat</button>
                </div>
            </div>
            
            <div class="food-item">
                <div class="food-item-info">
                    <div class="food-item-title">Weight Gain Meal ($10)</div>
                    <div class="food-item-desc">High-calorie meal for those looking to gain weight.</div>
                </div>
                <div class="food-item-action">
                    <button class="eat-btn" id="gain-weight-btn">Eat</button>
                </div>
            </div>
            
            <div class="food-item">
                <div class="food-item-info">
                    <div class="food-item-title">Weight Loss Meal ($12)</div>
                    <div class="food-item-desc">Low-calorie meal for those looking to lose weight.</div>
                </div>
                <div class="food-item-action">
                    <button class="eat-btn" id="lose-weight-btn">Eat</button>
                </div>
            </div>
            
            <div class="stat-box" style="margin-top: 15px;">
                <div class="stat-title">Nutrition Effects</div>
                <ul style="margin-left: 20px; margin-top: 10px;">
                    <li>Starving decreases health and can cause organ failure</li>
                    <li>Being underweight reduces attractiveness and social status</li>
                    <li>Being overweight can lead to bloating and reduced attractiveness</li>
                    <li>Obesity significantly reduces attractiveness and health</li>
                </ul>
            </div>
        </div>
        
        <div class="tab-content" id="social-media-tab">
            <div class="social-media-post">
                <h3><img src="https://www.citypng.com/public/uploads/preview/tik-tok-logo-transparent-square-701751694793273qftyarldbx.png" class="social-media-icon"> TikTok</h3>
                <p>Post short videos to gain followers. Risk of becoming a lolcow if below Mid Tier Normie.</p>
                <button class="action-btn" id="tiktok-post-btn" disabled>Post Video</button>
            </div>
            
            <div class="social-media-post">
                <h3><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Instagram_logo_2016.svg/2048px-Instagram_logo_2016.svg.png" class="social-media-icon"> Instagram</h3>
                <p>Post photos to build your brand. Higher success if above Mid Tier Normie.</p>
                <button class="action-btn" id="instagram-post-btn">Post Photo</button>
            </div>
            
            <div class="stat-box" style="margin-top: 15px;">
                <div class="stat-title">Social Media Mechanics</div>
                <ul style="margin-left: 20px; margin-top: 10px;">
                    <li>Below Mid Tier Normie: High risk of becoming a lolcow (lose social status and money)</li>
                    <li>Mid Tier Normie: Neutral outcome</li>
                    <li>Above Mid Tier Normie: Chance to become an influencer (gain followers and money)</li>
                    <li>High Tier Normie+: High chance of virality and sponsorship deals</li>
                </ul>
            </div>
        </div>
        
        <div class="tab-content" id="jobs-tab">
            <div class="job-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Fast Food Worker</div>
                    <div class="job-requirements">No requirements. Earn $8/hour.</div>
                </div>
                <div class="shop-item-action">
                    <button class="action-btn" id="fastfood-job-btn">Apply</button>
                </div>
            </div>
            
            <div class="job-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Retail Associate</div>
                    <div class="job-requirements">Minimum IQ 85. Earn $12/hour.</div>
                </div>
                <div class="shop-item-action">
                    <button class="action-btn" id="retail-job-btn">Apply</button>
                </div>
            </div>
            
            <div class="job-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Office Assistant</div>
                    <div class="job-requirements">Minimum IQ 95. Earn $18/hour.</div>
                </div>
                <div class="shop-item-action">
                    <button class="action-btn" id="office-job-btn">Apply</button>
                </div>
            </div>
            
            <div class="job-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Software Developer</div>
                    <div class="job-requirements">Minimum IQ 110, College Degree. Earn $45/hour.</div>
                </div>
                <div class="shop-item-action">
                    <button class="action-btn" id="developer-job-btn">Apply</button>
                </div>
            </div>
            
            <div class="job-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Data Scientist</div>
                    <div class="job-requirements">Minimum IQ 120, College Degree. Earn $60/hour.</div>
                </div>
                <div class="shop-item-action">
                    <button class="action-btn" id="scientist-job-btn">Apply</button>
                </div>
            </div>
            
            <div class="job-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Surgeon</div>
                    <div class="job-requirements">Minimum IQ 130, Medical Degree. Earn $120/hour.</div>
                </div>
                <div class="shop-item-action">
                    <button class="action-btn" id="surgeon-job-btn">Apply</button>
                </div>
            </div>
        </div>
        
        <div class="tab-content" id="family-tab">
            <div class="stat-box">
                <div class="stat-title">Family Resources</div>
                <p>Your family is <span id="family-class-text">middle class</span>.</p>
                <p>Available support: <span id="family-support">$5000</span></p>
                <div class="actions-container">
                    <button class="action-btn" id="ask-money-btn" disabled>Ask for Money</button>
                    <button class="action-btn" id="ask-braces-btn">Ask for Braces</button>
                    <button class="action-btn" id="ask-expander-btn">Ask for Palatal Expander</button>
                </div>
            </div>
        </div>
        
        <div class="tab-content" id="dating-tab">
            <div class="stat-box">
                <div class="stat-title">Dating & Relationships</div>
                <p>Your dating success depends on your height, attractiveness, and social status.</p>
                
                <div id="dating-status">
                    <p>You are <span id="dating-status-text">too young to date</span>.</p>
                </div>
                
                <div id="dating-actions" style="display: none;">
                    <button class="date-btn" id="date-btn">Go on a Date ($50)</button>
                    <button class="date-btn" id="propose-btn" style="display: none;">Propose Marriage ($500)</button>
                    <button class="date-btn" id="have-child-btn" style="display: none;">Have a Child ($1000)</button>
                    <button class="divorce-btn" id="divorce-btn" style="display: none;">Divorce</button>
                    <button class="confront-btn" id="confront-btn" style="display: none;">Confront About Cheating</button>
                </div>
                
                <div id="cheating-indicator" style="display: none; margin-top: 10px;">
                    <p>Cheating Risk: <span class="cheating-risk" id="cheating-risk-value">Low</span></p>
                </div>
                
                <div id="dating-requirements" style="margin-top: 15px;">
                    <p><strong>Dating Requirements:</strong></p>
                    <ul style="margin-left: 20px; margin-top: 5px;">
                        <li>Below 5'8": Very difficult to date</li>
                        <li>5'8" to 5'11": Need at least LTN face</li>
                        <li>6'0" to 6'2": Need at least MTN face</li>
                        <li>6'3"+: Need at least LTN face for HMTB</li>
                    </ul>
                </div>
            </div>
            
            <div class="stat-box" style="margin-top: 15px;">
                <div class="stat-title">Partner Preferences</div>
                <p>Women generally prefer men who are taller than them with symmetrical features.</p>
                <p>Men generally prefer women with feminine features and good fat distribution.</p>
            </div>
        </div>
        
        <div class="tab-content" id="forum-tab">
            <div class="stat-box">
                <div class="stat-title">.org Forum</div>
                <p>Status: <span id="forum-status">Not a member</span></p>
                <div id="forum-join-container">
                    <p>Minimum age to join: 13 years old</p>
                    <button class="action-btn" id="join-org-btn" disabled>Join .org</button>
                </div>
                <div id="forum-actions-container" style="display: none;">
                    <div class="actions-container">
                        <button class="action-btn" id="post-thread-btn">Post Thread</button>
                        <button class="action-btn" id="comment-btn">Comment</button>
                        <button class="action-btn" id="share-experience-btn">Share Experience</button>
                        <button class="action-btn" id="ask-advice-btn">Ask for Advice</button>
                    </div>
                </div>
            </div>
        </div>
        
        <!-- New Archetypes Tab -->
        <div class="tab-content" id="archetypes-tab">
            <div class="archetype-container">
                <h3>Male Archetypes (Requires .org Membership)</h3>
                
                <div class="archetype-item">
                    <div class="archetype-title">Pretty Boy</div>
                    <div class="archetype-desc">Requirements: HMTN+, clear skin, feminine features, height 5'10"+</div>
                    <button class="select-archetype-btn" id="pretty-boy-btn" disabled>Select Archetype</button>
                </div>
                
                <div class="archetype-item">
                    <div class="archetype-title">Slender Triad</div>
                    <div class="archetype-desc">Requirements: Height 6'0"+, underweight BMI, narrow frame</div>
                    <button class="select-archetype-btn" id="slender-triad-btn" disabled>Select Archetype</button>
                </div>
                
                <div class="archetype-item">
                    <div class="archetype-title">Ogre</div>
                    <div class="archetype-desc">Requirements: Subhuman-Chad range, high bone mass, height 6'0"+</div>
                    <button class="select-archetype-btn" id="ogre-btn" disabled>Select Archetype</button>
                </div>
            </div>
            
            <div class="archetype-container">
                <h3>Female Archetypes</h3>
                
                <div class="archetype-item">
                    <div class="archetype-title">Asian Baddie</div>
                    <div class="archetype-desc">Requirements: Asian race, MTN+, specific facial ratios, makeup frauding</div>
                    <button class="select-archetype-btn" id="asian-baddie-btn" disabled>Select Archetype</button>
                </div>
                
                <div class="archetype-item">
                    <div class="archetype-title">Latina Baddie</div>
                    <div class="archetype-desc">Requirements: Hispanic race, MTN+, specific body ratios, makeup frauding</div>
                    <button class="select-archetype-btn" id="latina-baddie-btn" disabled>Select Archetype</button>
                </div>
                
                <div class="archetype-item">
                    <div class="archetype-title">Baddie</div>
                    <div class="archetype-desc">Requirements: MTN+, ideal body ratios, no major failos</div>
                    <button class="select-archetype-btn" id="baddie-btn" disabled>Select Archetype</button>
                </div>
            </div>
        </div>
        
        <!-- New Hair Tab -->
        <div class="tab-content" id="hair-tab">
            <div class="stat-box">
                <div class="stat-title">Hair Properties</div>
                <p>Type: <span id="hair-type-display">Straight</span></p>
                <p>Length: <span id="hair-length-display">Short</span></p>
                <p>Health: <span id="hair-health-display">Healthy</span></p>
                <div class="progress-bar">
                    <div class="progress-fill" id="hair-health-bar" style="width: 80%"></div>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Basic Haircut</div>
                    <div class="shop-item-desc">Standard haircut appropriate for your hair type.</div>
                </div>
                <div class="shop-item-action">
                    $30 <button class="action-btn" id="basic-haircut-btn">Get Haircut</button>
                </div>
            </div>
            
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Premium Styling</div>
                    <div class="shop-item-desc">Professional styling for maximum aesthetic appeal.</div>
                </div>
                <div class="shop-item-action">
                    $100 <button class="action-btn" id="premium-style-btn">Get Styled</button>
                </div>
            </div>
            
            <div class="hair-style-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Dreadlocks</div>
                    <div class="shop-item-desc">Best for Afro-textured hair. May damage other hair types.</div>
                </div>
                <div class="shop-item-action">
                    $200 <button class="action-btn" id="dreadlocks-btn">Get Style</button>
                </div>
            </div>
            
            <div class="hair-style-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Braids</div>
                    <div class="shop-item-desc">Works well on most hair types but best on Afro-textured hair.</div>
                </div>
                <div class="shop-item-action">
                    $150 <button class="action-btn" id="braids-btn">Get Style</button>
                </div>
            </div>
            
            <div class="hair-style-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Twists</div>
                    <div class="shop-item-desc">Ideal for Afro-textured hair. Requires regular retwisting.</div>
                </div>
                <div class="shop-item-action">
                    $180 <button class="action-btn" id="twists-btn">Get Style</button>
                </div>
            </div>
            
            <div class="hair-style-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">UnderCut</div>
                    <div class="shop-item-desc">Popular modern cut. Works best on straight or wavy hair.</div>
                </div>
                <div class="shop-item-action">
                    $60 <button class="action-btn" id="undercut-btn">Get Style</button>
                </div>
            </div>
        </div>
        
        <div class="log-container" id="game-log">
            <div class="log-entry"><span class="age-badge">Age 0</span> You were born. Your genetic traits have been determined.</div>
            <div class="log-entry"><span class="age-badge">Age 0</span> Your parents have average height and bone structure.</div>
        </div>
        
        <footer>
            <p>follow @trueslendertriad on tt</p>
        </footer>
    </div>

    <!-- Modal for procedures -->
    <div class="modal" id="procedure-modal">
        <div class="modal-content">
            <div class="modal-title" id="modal-procedure-title">Procedure</div>
            <div class="modal-desc" id="modal-procedure-desc">Description of the procedure.</div>
            <div class="modal-buttons">
                <button class="modal-btn modal-btn-secondary" id="modal-cancel-btn">Cancel</button>
                <button class="modal-btn modal-btn-primary" id="modal-confirm-btn">Confirm</button>
            </div>
        </div>
    </div>

    <!-- Generation selection modal (displayed after death) -->
    <div class="modal" id="generation-modal">
        <div class="modal-content">
            <div class="modal-title">Continue Your Legacy</div>
            <div class="modal-desc">You have died. Select a child to continue playing as:</div>
            <div id="children-selection"></div>
            <div class="modal-buttons">
                <button class="modal-btn modal-btn-secondary" id="new-life-btn">Start New Life</button>
            </div>
        </div>
    </div>

    <script>
        // Extensive game state with all new features
        const gameState = {
            age: 0,
            neuroStatus: "Neurotypical",
            iq: 100,
            iqPotential: 100,
            attractiveness: 4.5,
            baseAttractiveness: 4.5,
            height: 20, // in inches (1'8")
            weight: 20, // in pounds
            bmi: 0,
            health: 80,
            money: 0,
            socialStatus: 50,
            growthPlatesOpen: true,
            alive: true,
            fatherHeight: 70, // 5'10"
            motherHeight: 64, // 5'4"
            paternalGrandfatherHeight: 71,
            paternalGrandmotherHeight: 65,
            maternalGrandfatherHeight: 69,
            maternalGrandmotherHeight: 63,
            geneticPotential: 0.5,
            physicalTraits: ["Symmetrical Face"],
            facialTraits: ["Positive Canthal Tilt"],
            skinTraits: ["Clear Skin"],
            healthTraits: ["Good Metabolism"],
            negativePhysical: ["Narrow Clavicles"],
            negativeFacial: ["Recessed Maxilla"],
            negativeSkin: [],
            negativeHealth: [],
            events: [],
            heightPercentile: 50,
            gender: Math.random() > 0.5 ? "male" : "female",
            previousTier: "High Low Tier Normie",
            race: "",
            eyeColor: "",
            smv: 4.5,
            status: "Neutral",
            onForum: false,
            orgStatus: "gray",
            forumReputation: 0,
            peptidesUsed: [],
            proceduresDone: [],
            drugsUsed: [],
            hardcapReached: false,
            trueAdam: Math.random() < 0.0000000001, // 1 in 10 billion chance
            palatalExpander: false,
            futureDementia: false,
            familyClass: "middle",
            familySupport: 5000,
            fillerActive: false,
            gymAscension: 0,
            steroidDamage: 0,
            followers: 0,
            socialMediaStatus: "none",
            currentJob: null,
            schoolLevel: "elementary",
            boneMass: 50, // 0-100 scale
            diabetesRisk: 0,
            belowLtnResistance: 0, // Makes it hard to descend below LTN
            
            // New properties for additional features
            relationshipStatus: "single", // single, dating, married
            partner: null,
            children: [],
            starving: false,
            starvationEffects: 0,
            lastMeal: 100, // 0-100 scale, 100 = fully fed
            metabolismRate: 1.0,
            bloating: false,
            facialAsymmetry: Math.random() < 0.3, // 30% chance of facial asymmetry
            feminineTraits: 0, // 0-100 scale for women
            masculineTraits: 0, // 0-100 scale for men
            breastAsymmetry: false,
            obesity: false,
            downSyndrome: Math.random() < 0.01, // 1% chance
            fas: Math.random() < 0.02, // 2% chance
            
            // New properties for additional features
            hairType: "",
            hairLength: 0, // 0-100 scale
            hairHealth: 80,
            hairStyle: "none",
            archetype: "none",
            humor: 50, // 0-100 scale
            isCheating: false,
            partnerCheating: false,
            cheatingRisk: 0,
            currentArchetype: "none"
        };

        // Updated tiers with adjusted distribution
        const tiers = [
            { name: "Subhuman", min: 1, max: 2.9, class: "subhuman", rarity: 0.05 },
            { name: "Low Tier Normie", min: 3, max: 3.4, class: "ltn", rarity: 0.1 },
            { name: "High Low Tier Normie", min: 3.5, max: 4.9, class: "ltn", rarity: 0.25 },
            { name: "Low Mid Tier Normie", min: 5, max: 5.4, class: "mtn", rarity: 0.2 },
            { name: "High Mid Tier Normie", min: 5.5, max: 5.9, class: "mtn", rarity: 0.15 },
            { name: "Low High Tier Normie", min: 6, max: 6.3, class: "htn", rarity: 0.1 },
            { name: "High Tier Normie", min: 6.4, max: 6.6, class: "htn", rarity: 0.08 },
            { name: "Chad Lite", min: 6.7, max: 6.9, class: "chadlite", rarity: 0.05 },
            { name: "High Chad Lite", min: 7, max: 7.5, class: "chadlite", rarity: 0.015 },
            { name: "Chad", min: 7.6, max: 7.9, class: "chad", rarity: 0.005 },
            { name: "Adamlite", min: 8, max: 8.9, class: "chad", rarity: 0.0005 }, // Made extremely rare
            { name: "True Adam", min: 9, max: 10, class: "trueadam", rarity: 0.0000000001 }
        ];

        // Jobs database
        const jobs = [
            { id: "fastfood", name: "Fast Food Worker", iqReq: 0, pay: 8, hours: 20, degreeReq: false },
            { id: "retail", name: "Retail Associate", iqReq: 85, pay: 12, hours: 25, degreeReq: false },
            { id: "office", name: "Office Assistant", iqReq: 95, pay: 18, hours: 30, degreeReq: false },
            { id: "developer", name: "Software Developer", iqReq: 110, pay: 45, hours: 35, degreeReq: true },
            { id: "scientist", name: "Data Scientist", iqReq: 120, pay: 60, hours: 40, degreeReq: true },
            { id: "surgeon", name: "Surgeon", iqReq: 130, pay: 120, hours: 50, degreeReq: true }
        ];

        // Biologically accurate height percentiles by age and gender
        const heightPercentiles = {
            male: {
                0: 20,    // newborn ~1'8"
                1: 30,    // 1 year ~2'6"
                2: 34,    // 2 years ~2'10"
                3: 37,    // 3 years ~3'1"
                4: 40,    // 4 years ~3'4"
                5: 43,    // 5 years ~3'7"
                6: 45,    // 6 years ~3'9"
                7: 48,    // 7 years ~4'0"
                8: 50,    // 8 years ~4'2"
                9: 52,    // 9 years ~4'4"
                10: 54,   // 10 years ~4'6"
                11: 56,   // 11 years ~4'8"
                12: 59,   // 12 years ~4'11"
                13: 62,   // 13 years ~5'2"
                14: 65,   // 14 years ~5'5"
                15: 67,   // 15 years ~5'7"
                16: 68,   // 16 years ~5'8"
                17: 69,   // 17 years ~5'9"
                18: 69,   // 18 years ~5'9"
                19: 70,   // 19 years ~5'10"
                20: 70,   // 20 years ~5'10"
            },
            female: {
                0: 20,    // newborn ~1'8"
                1: 29,    // 1 year ~2'5"
                2: 33,    // 2 years ~2'9"
                3: 37,    // 3 years ~3'1"
                4: 40,    // 4 years ~3'4"
                5: 42,    // 5 years ~3'6"
                6: 45,    // 6 years ~3'9"
                7: 47,    // 7 years ~3'11"
                8: 50,    // 8 years ~4'2"
                9: 52,    // 9 years ~4'4"
                10: 54,   // 10 years ~4'6"
                11: 57,   // 11 years ~4'9"
                12: 60,   // 12 years ~5'0"
                13: 62,   // 13 years ~5'2"
                14: 63,   // 14 years ~5'3"
                15: 64,   // 15 years ~5'4"
                16: 64,   // 16 years ~5'4"
                17: 64,   // 17 years ~5'4"
                18: 64,   // 18 years ~5'4"
                19: 64,   // 19 years ~5'4"
                20: 64,   // 20 years ~5'4"
            }
        };

        // Weight percentiles by age and gender
        const weightPercentiles = {
            male: {
                0: 7.5,   // newborn
                1: 22,    // 1 year
                2: 28,    // 2 years
                3: 32,    // 3 years
                4: 36,    // 4 years
                5: 40,    // 5 years
                6: 45,    // 6 years
                7: 50,    // 7 years
                8: 55,    // 8 years
                9: 60,    // 9 years
                10: 70,   // 10 years
                11: 80,   // 11 years
                12: 90,   // 12 years
                13: 105,  // 13 years
                14: 120,  // 14 years
                15: 135,  // 15 years
                16: 145,  // 16 years
                17: 155,  // 17 years
                18: 160,  // 18 years
                19: 165,  // 19 years
                20: 170,  // 20 years
            },
            female: {
                0: 7.5,   // newborn
                1: 21,    // 1 year
                2: 26,    // 2 years
                3: 31,    // 3 years
                4: 35,    // 4 years
                5: 39,    // 5 years
                6: 44,    // 6 years
                7: 49,    // 7 years
                8: 57,    // 8 years
                9: 68,    // 9 years
                10: 80,   // 10 years
                11: 95,   // 11 years
                12: 105,  // 12 years
                13: 115,  // 13 years
                14: 120,  // 14 years
                15: 125,  // 15 years
                16: 128,  // 16 years
                17: 130,  // 17 years
                18: 132,  // 18 years
                19: 134,  // 19 years
                20: 135,  // 20 years
            }
        };

        // Race modifiers for different features
        const raceModifiers = {
            caucasian: { boneStructure: 0.7, skinQuality: 0.6, hairQuality: 0.8, heightPotential: 0.8 },
            asian: { boneStructure: 0.5, skinQuality: 0.9, hairQuality: 0.7, heightPotential: 0.6 },
            black: { boneStructure: 0.8, skinQuality: 0.5, hairQuality: 0.4, heightPotential: 0.9 },
            hispanic: { boneStructure: 0.6, skinQuality: 0.7, hairQuality: 0.8, heightPotential: 0.7 },
            mixed: { boneStructure: 0.7, skinQuality: 0.8, hairQuality: 0.7, heightPotential: 0.8 }
        };

        // Hair types by race
        const hairTypesByRace = {
            caucasian: ["Straight", "Wavy", "Curly"],
            asian: ["Straight", "Coarse"],
            black: ["Afro", "Coily", "Kinky"],
            hispanic: ["Straight", "Wavy", "Curly"],
            mixed: ["Varies"] // Random selection from all types
        };

        // Eye colors by race
        const eyeColors = {
            caucasian: ["brown", "blue", "green", "hazel"],
            asian: ["brown", "dark brown", "black"],
            black: ["brown", "dark brown", "black"],
            hispanic: ["brown", "hazel", "green"],
            mixed: ["brown", "blue", "green", "hazel"]
        };

        // Family class modifiers
        const familyClassModifiers = {
            lower: { support: 1000, bracesChance: 0.1, expanderChance: 0.05, moneyRefusalChance: 0.7 },
            middle: { support: 5000, bracesChance: 0.5, expanderChance: 0.3, moneyRefusalChance: 0.4 },
            upper: { support: 20000, bracesChance: 0.9, expanderChance: 0.8, moneyRefusalChance: 0.2 }
        };

        // Partner preferences based on gender
        const partnerPreferences = {
            male: {
                minHeight: 30, // 3'0"
                maxHeight: 80, // 7'0"
                minAttractiveness: 4.0,
                importance: {
                    height: 0.3,
                    attractiveness: 0.6,
                    status: 0.1
                }
            },
            female: {
                minHeight: 30, // 3'0"
                maxHeight: 80, // 7'0"
                minAttractiveness: 5.0,
                importance: {
                    height: 0.6,
                    attractiveness: 0.3,
                    status: 0.1
                }
            }
        };

        // DOM elements
        const ageValue = document.getElementById('age-value');
        const neuroStatus = document.getElementById('neuro-status');
        const iqValue = document.getElementById('iq-value');
        const iqPotential = document.getElementById('iq-potential');
        const attractivenessValue = document.getElementById('attractiveness-value');
        const tierBadge = document.getElementById('tier-badge');
        const heightValue = document.getElementById('height-value');
        const healthValue = document.getElementById('health-value');
        const moneyValue = document.getElementById('money-value');
        const socialValue = document.getElementById('social-value');
        const physicalTraits = document.getElementById('physical-traits');
        const facialTraits = document.getElementById('facial-traits');
        const skinTraits = document.getElementById('skin-traits');
        const healthTraits = document.getElementById('health-traits');
        const gameLog = document.getElementById('game-log');
        const heightPercentile = document.getElementById('height-percentile');
        const heightPercentileValue = document.getElementById('height-percentile-value');
        const tallerThan = document.getElementById('taller-than');
        const raceValue = document.getElementById('race-value');
        const eyeColorValue = document.getElementById('eye-color');
        const smvValue = document.getElementById('smv-value');
        const statusValue = document.getElementById('status-value');
        const orgStatusValue = document.getElementById('org-status-value');
        const orgStatusContainer = document.getElementById('org-status-container');
        const forumStatus = document.getElementById('forum-status');
        const forumJoinContainer = document.getElementById('forum-join-container');
        const forumActionsContainer = document.getElementById('forum-actions-container');
        const joinOrgBtn = document.getElementById('join-org-btn');
        const familyClassValue = document.getElementById('family-class-value');
        const familySupport = document.getElementById('family-support');
        const familyClassText = document.getElementById('family-class-text');
        const followersValue = document.getElementById('followers-value');
        const socialMediaStatusContainer = document.getElementById('social-media-status-container');
        const socialMediaStatusValue = document.getElementById('social-media-status-value');
        const boneMassValue = document.getElementById('bone-mass-value');
        const boneMassProgress = document.getElementById('bone-mass-progress');
        const humorValue = document.getElementById('humor-value');
        
        // Progress bars
        const ageProgress = document.getElementById('age-progress');
        const iqProgress = document.getElementById('iq-progress');
        const heightProgress = document.getElementById('height-progress');
        const healthProgress = document.getElementById('health-progress');
        const socialProgress = document.getElementById('social-progress');

        // Genetic display
        const fatherHeight = document.getElementById('father-height');
        const motherHeight = document.getElementById('mother-height');
        const parentBone = document.getElementById('parent-bone');
        const geneticPotential = document.getElementById('genetic-potential');

        // Buttons
        const ageBtn = document.getElementById('age-btn');
        const skincareBtn = document.getElementById('skincare-btn');
        const gymBtn = document.getElementById('gym-btn');
        const studyBtn = document.getElementById('study-btn');
        const workBtn = document.getElementById('work-btn');
        const surgeryBtn = document.getElementById('surgery-btn');
        const fraudBtn = document.getElementById('fraud-btn');
        const diyFillerBtn = document.getElementById('diy-filler-btn');
        const ropeBtn = document.getElementById('rope-btn');
        const postThreadBtn = document.getElementById('post-thread-btn');
        const commentBtn = document.getElementById('comment-btn');
        const shareExperienceBtn = document.getElementById('share-experience-btn');
        const askAdviceBtn = document.getElementById('ask-advice-btn');
        const askMoneyBtn = document.getElementById('ask-money-btn');
        const askBracesBtn = document.getElementById('ask-braces-btn');
        const askExpanderBtn = document.getElementById('ask-expander-btn');
        const tiktokPostBtn = document.getElementById('tiktok-post-btn');
        const instagramPostBtn = document.getElementById('instagram-post-btn');

        // Study buttons
        const elementaryStudyBtn = document.getElementById('elementary-study-btn');
        const middleStudyBtn = document.getElementById('middle-study-btn');
        const highSchoolStudyBtn = document.getElementById('high-school-study-btn');
        const collegeStudyBtn = document.getElementById('college-study-btn');

        // Job buttons
        const fastfoodJobBtn = document.getElementById('fastfood-job-btn');
        const retailJobBtn = document.getElementById('retail-job-btn');
        const officeJobBtn = document.getElementById('office-job-btn');
        const developerJobBtn = document.getElementById('developer-job-btn');
        const scientistJobBtn = document.getElementById('scientist-job-btn');
        const surgeonJobBtn = document.getElementById('surgeon-job-btn');

        // Procedure buttons
        const bracesBtn = document.getElementById('braces-btn');
        const jawSurgeryBtn = document.getElementById('jawsurgery-btn');
        const buccalFatBtn = document.getElementById('buccalfat-btn');
        const rhinoplastyBtn = document.getElementById('rhinoplasty-btn');
        const limbLengtheningBtn = document.getElementById('limblengthening-btn');
        const fillerBtn = document.getElementById('filler-btn');
        const harmonizationFillerBtn = document.getElementById('harmonization-filler-btn');
        const palatalExpanderBtn = document.getElementById('palatal-expander-btn');
        const canthopexyBtn = document.getElementById('canthopexy-btn');
        const eyelidFillerBtn = document.getElementById('eyelid-filler-btn');
        const blepharoplastyBtn = document.getElementById('blepharoplasty-btn');
        const keratopigmentationBtn = document.getElementById('keratopigmentation-btn');

        // Peptide buttons
        const igf1Btn = document.getElementById('igf1-btn');
        const mk677Btn = document.getElementById('mk677-btn');
        const hghBtn = document.getElementById('hgh-btn');
        const ghkCuBtn = document.getElementById('ghk-cu-btn');
        const minoxidilBtn = document.getElementById('minoxidil-btn');
        const meclizineBtn = document.getElementById('meclizine-btn');
        const cjcIpaBtn = document.getElementById('cjc-ipa-btn');

        // Steroid buttons
        const trenboloneBtn = document.getElementById('trenbolone-btn');
        const anavarBtn = document.getElementById('anavar-btn');

        // Nutrition buttons
        const basicMealBtn = document.getElementById('basic-meal-btn');
        const healthyMealBtn = document.getElementById('healthy-meal-btn');
        const gainWeightBtn = document.getElementById('gain-weight-btn');
        const loseWeightBtn = document.getElementById('lose-weight-btn');

        // Dating buttons
        const dateBtn = document.getElementById('date-btn');
        const proposeBtn = document.getElementById('propose-btn');
        const haveChildBtn = document.getElementById('have-child-btn');
        const divorceBtn = document.getElementById('divorce-btn');
        const confrontBtn = document.getElementById('confront-btn');

        // Hair buttons
        const basicHaircutBtn = document.getElementById('basic-haircut-btn');
        const premiumStyleBtn = document.getElementById('premium-style-btn');
        const dreadlocksBtn = document.getElementById('dreadlocks-btn');
        const braidsBtn = document.getElementById('braids-btn');
        const twistsBtn = document.getElementById('twists-btn');
        const undercutBtn = document.getElementById('undercut-btn');

        // Archetype buttons
        const prettyBoyBtn = document.getElementById('pretty-boy-btn');
        const slenderTriadBtn = document.getElementById('slender-triad-btn');
        const ogreBtn = document.getElementById('ogre-btn');
        const asianBaddieBtn = document.getElementById('asian-baddie-btn');
        const latinaBaddieBtn = document.getElementById('latina-baddie-btn');
        const baddieBtn = document.getElementById('baddie-btn');

        // Tabs
        const tabs = document.querySelectorAll('.tab');
        const tabContents = document.querySelectorAll('.tab-content');

        // Modal elements
        const procedureModal = document.getElementById('procedure-modal');
        const modalProcedureTitle = document.getElementById('modal-procedure-title');
        const modalProcedureDesc = document.getElementById('modal-procedure-desc');
        const modalCancelBtn = document.getElementById('modal-cancel-btn');
        const modalConfirmBtn = document.getElementById('modal-confirm-btn');
        const generationModal = document.getElementById('generation-modal');
        const childrenSelection = document.getElementById('children-selection');
        const newLifeBtn = document.getElementById('new-life-btn');

        // New DOM elements for additional features
        const weightValue = document.getElementById('weight-value');
        const bmiValue = document.getElementById('bmi-value');
        const bmiStatus = document.getElementById('bmi-status');
        const bmiProgress = document.getElementById('bmi-progress');
        const relationshipContainer = document.getElementById('relationship-container');
        const relationshipStatusValue = document.getElementById('relationship-status-value');
        const partnerInfoContainer = document.getElementById('partner-info-container');
        const partnerName = document.getElementById('partner-name');
        const partnerAttractiveness = document.getElementById('partner-attractiveness');
        const partnerHeight = document.getElementById('partner-height');
        const childrenCount = document.getElementById('children-count');
        const childrenContainer = document.getElementById('children-container');
        const datingStatusText = document.getElementById('dating-status-text');
        const datingActions = document.getElementById('dating-actions');
        const cheatingIndicator = document.getElementById('cheating-indicator');
        const cheatingRiskValue = document.getElementById('cheating-risk-value');
        const hairTypeDisplay = document.getElementById('hair-type-display');
        const hairLengthDisplay = document.getElementById('hair-length-display');
        const hairHealthDisplay = document.getElementById('hair-health-display');
        const hairHealthBar = document.getElementById('hair-health-bar');

        // Current procedure being considered
        let currentProcedure = null;

        // Initialize the game
        function initGame() {
            // Randomize initial stats with higher probability for lower tiers
            gameState.neuroStatus = Math.random() > 0.8 ? "Neurodivergent" : "Neurotypical";
            
            // Set IQ potential based on genetics (95-105 range, average 100)
            gameState.iqPotential = Math.floor(Math.random() * 10) + 95;
            
            // Apply conditions that lower IQ
            if (gameState.downSyndrome) {
                gameState.iqPotential = Math.floor(Math.random() * 30) + 40; // 40-70 for Down syndrome
                gameState.negativeHealth.push("Down Syndrome");
            }
            
            if (gameState.fas) {
                gameState.iqPotential = Math.max(60, gameState.iqPotential - 20); // Reduce IQ by 20 points
                gameState.negativeHealth.push("Fetal Alcohol Syndrome");
            }
            
            gameState.iq = Math.floor(gameState.iqPotential * 0.8); // Start at 80% of potential
            
            // Set True Adam if incredibly lucky
            if (gameState.trueAdam) {
                gameState.attractiveness = 9 + Math.random();
                gameState.baseAttractiveness = gameState.attractiveness;
                gameState.geneticPotential = 1;
            } else {
                // Most people between High Low Tier Normie and High Mid Tier Normie
                // Adjusted distribution to make HLTN and HMTN most common
                const tierRandom = Math.random();
                if (tierRandom < 0.25) {
                    gameState.attractiveness = (Math.random() * 1.5) + 3.5; // 3.5 to 5.0 (HLTN)
                } else if (tierRandom < 0.45) {
                    gameState.attractiveness = (Math.random() * 0.5) + 5.0; // 5.0 to 5.5 (LMTN)
                } else if (tierRandom < 0.6) {
                    gameState.attractiveness = (Math.random() * 0.5) + 5.5; // 5.5 to 6.0 (HMTN)
                } else if (tierRandom < 0.7) {
                    gameState.attractiveness = (Math.random() * 0.4) + 6.0; // 6.0 to 6.4 (LHTN)
                } else if (tierRandom < 0.78) {
                    gameState.attractiveness = (Math.random() * 0.3) + 6.4; // 6.4 to 6.7 (HTN)
                } else if (tierRandom < 0.83) {
                    gameState.attractiveness = (Math.random() * 0.3) + 6.7; // 6.7 to 7.0 (CL)
                } else if (tierRandom < 0.845) {
                    gameState.attractiveness = (Math.random() * 0.5) + 7.0; // 7.0 to 7.5 (HCL)
                } else if (tierRandom < 0.85) {
                    gameState.attractiveness = (Math.random() * 0.4) + 7.5; // 7.5 to 7.9 (Chad)
                } else if (tierRandom < 0.8505) {
                    gameState.attractiveness = (Math.random() * 0.9) + 8.0; // 8.0 to 8.9 (Adamlite) - Extremely rare
                } else {
                    gameState.attractiveness = (Math.random() * 1.5) + 2.0; // 2.0 to 3.5 (Subhuman to LTN)
                }
                gameState.baseAttractiveness = gameState.attractiveness;
            }
            
            // Apply conditions that lower attractiveness
            if (gameState.downSyndrome) {
                gameState.attractiveness = Math.max(1, gameState.attractiveness - 2);
                gameState.baseAttractiveness = gameState.attractiveness;
            }
            
            if (gameState.fas) {
                gameState.attractiveness = Math.max(1, gameState.attractiveness - 1);
                gameState.baseAttractiveness = gameState.attractiveness;
            }
            
            // Set initial height based on age
            gameState.height = heightPercentiles[gameState.gender][0];
            gameState.weight = weightPercentiles[gameState.gender][0];
            
            // Generate random parent and grandparent genetics
            generateFamilyGenetics();
            
            // Calculate genetic potential based on family
            calculateGeneticPotential();
            
            // Set race based on probability (predetermined at birth)
            const raceRandom = Math.random();
            if (raceRandom < 0.6) gameState.race = "caucasian";
            else if (raceRandom < 0.75) gameState.race = "asian";
            else if (raceRandom < 0.85) gameState.race = "black";
            else if (raceRandom < 0.95) gameState.race = "hispanic";
            else gameState.race = "mixed";
            
            // Set eye color based on race
            const eyeColorsForRace = eyeColors[gameState.race];
            gameState.eyeColor = eyeColorsForRace[Math.floor(Math.random() * eyeColorsForRace.length)];
            
            // Set family class
            const classRandom = Math.random();
            if (classRandom < 0.4) gameState.familyClass = "lower";
            else if (classRandom < 0.8) gameState.familyClass = "middle";
            else gameState.familyClass = "upper";
            
            gameState.familySupport = familyClassModifiers[gameState.familyClass].support;
            
            // Initialize hair system
            initHairSystem();
            
            // Generate random traits (without conflicts)
            generateTraits();
            
            // Update UI
            updateUI();
            
            // Add initial log entry
            addLogEntry("You were born. Your genetic traits have been determined.");
            addLogEntry(`Your father is ${formatHeight(gameState.fatherHeight)} and your mother is ${formatHeight(gameState.motherHeight)}.`);
            addLogEntry(`You are ${gameState.gender}, ${gameState.race}, with ${gameState.eyeColor} eyes.`);
            addLogEntry(`Your family is ${gameState.familyClass} class.`);
            
            if (gameState.downSyndrome) {
                addLogEntry("You were born with Down Syndrome.", "warning");
            }
            
            if (gameState.fas) {
                addLogEntry("You have Fetal Alcohol Syndrome.", "warning");
            }
            
            if (gameState.trueAdam) {
                addLogEntry("MIRACLE! You were born as a True Adam (1 in 10 billion chance)!", "success");
            }
            
            // Set up tab functionality
            tabs.forEach(tab => {
                tab.addEventListener('click', () => {
                    const tabId = tab.getAttribute('data-tab');
                    
                    // Remove active class from all tabs and contents
                    tabs.forEach(t => t.classList.remove('active'));
                    tabContents.forEach(c => c.classList.remove('active'));
                    
                    // Add active class to current tab and content
                    tab.classList.add('active');
                    document.getElementById(`${tabId}-tab`).classList.add('active');
                });
            });
            
            // Set up modal buttons
            modalCancelBtn.addEventListener('click', () => {
                procedureModal.style.display = 'none';
            });
            
            modalConfirmBtn.addEventListener('click', () => {
                procedureModal.style.display = 'none';
                if (currentProcedure) {
                    performProcedure(currentProcedure);
                }
            });
            
            newLifeBtn.addEventListener('click', () => {
                generationModal.style.display = 'none';
                restartGame();
            });
            
            // Set up procedure buttons
            setupProcedureButton(bracesBtn, 'braces', 3000);
            setupProcedureButton(jawSurgeryBtn, 'jawSurgery', 15000);
            setupProcedureButton(buccalFatBtn, 'buccalFat', 4000);
            setupProcedureButton(rhinoplastyBtn, 'rhinoplasty', 8000);
            setupProcedureButton(limbLengtheningBtn, 'limbLengthening', 70000);
            setupProcedureButton(fillerBtn, 'filler', 2000);
            setupProcedureButton(harmonizationFillerBtn, 'harmonizationFiller', 5000);
            setupProcedureButton(palatalExpanderBtn, 'palatalExpander', 4000);
            setupProcedureButton(canthopexyBtn, 'canthopexy', 6000);
            setupProcedureButton(eyelidFillerBtn, 'eyelidFiller', 3500);
            setupProcedureButton(blepharoplastyBtn, 'blepharoplasty', 8000);
            setupProcedureButton(keratopigmentationBtn, 'keratopigmentation', 7000);
            
            // Set up peptide buttons
            setupProcedureButton(igf1Btn, 'igf1', 500);
            setupProcedureButton(mk677Btn, 'mk677', 300);
            setupProcedureButton(hghBtn, 'hgh', 1000);
            setupProcedureButton(ghkCuBtn, 'ghkCu', 200);
            setupProcedureButton(minoxidilBtn, 'minoxidil', 50);
            setupProcedureButton(meclizineBtn, 'meclizine', 400);
            setupProcedureButton(cjcIpaBtn, 'cjcIpa', 600);
            
            // Set up steroid buttons
            setupProcedureButton(trenboloneBtn, 'trenbolone', 300);
            setupProcedureButton(anavarBtn, 'anavar', 200);
            
            // Set up nutrition buttons
            basicMealBtn.addEventListener('click', () => eatMeal('basic', 5));
            healthyMealBtn.addEventListener('click', () => eatMeal('healthy', 15));
            gainWeightBtn.addEventListener('click', () => eatMeal('gain', 10));
            loseWeightBtn.addEventListener('click', () => eatMeal('lose', 12));
            
            // Set up dating buttons
            dateBtn.addEventListener('click', goOnDate);
            proposeBtn.addEventListener('click', proposeMarriage);
            haveChildBtn.addEventListener('click', haveChild);
            divorceBtn.addEventListener('click', initiateDivorce);
            confrontBtn.addEventListener('click', confrontCheating);
            
            // Set up forum button
            joinOrgBtn.addEventListener('click', joinOrg);
            postThreadBtn.addEventListener('click', () => forumAction('postThread'));
            commentBtn.addEventListener('click', () => forumAction('comment'));
            shareExperienceBtn.addEventListener('click', () => forumAction('shareExperience'));
            askAdviceBtn.addEventListener('click', () => forumAction('askAdvice'));
            
            // Set up family buttons
            askMoneyBtn.addEventListener('click', askForMoney);
            askBracesBtn.addEventListener('click', askForBraces);
            askExpanderBtn.addEventListener('click', askForExpander);
            
            // Set up social media buttons
            tiktokPostBtn.addEventListener('click', () => postOnSocialMedia('tiktok'));
            instagramPostBtn.addEventListener('click', () => postOnSocialMedia('instagram'));
            
            // Set up study buttons
            elementaryStudyBtn.addEventListener('click', () => study('elementary'));
            middleStudyBtn.addEventListener('click', () => study('middle'));
            highSchoolStudyBtn.addEventListener('click', () => study('highschool'));
            collegeStudyBtn.addEventListener('click', () => study('college'));
            
            // Set up job buttons
            fastfoodJobBtn.addEventListener('click', () => applyForJob('fastfood'));
            retailJobBtn.addEventListener('click', () => applyForJob('retail'));
            officeJobBtn.addEventListener('click', () => applyForJob('office'));
            developerJobBtn.addEventListener('click', () => applyForJob('developer'));
            scientistJobBtn.addEventListener('click', () => applyForJob('scientist'));
            surgeonJobBtn.addEventListener('click', () => applyForJob('surgeon'));
            
            // Set up hair buttons
            basicHaircutBtn.addEventListener('click', () => getHaircut('basic'));
            premiumStyleBtn.addEventListener('click', () => getHaircut('premium'));
            dreadlocksBtn.addEventListener('click', () => setHairstyle('dreadlocks'));
            braidsBtn.addEventListener('click', () => setHairstyle('braids'));
            twistsBtn.addEventListener('click', () => setHairstyle('twists'));
            undercutBtn.addEventListener('click', () => setHairstyle('undercut'));
            
            // Set up archetype buttons
            prettyBoyBtn.addEventListener('click', () => selectArchetype('prettyBoy'));
            slenderTriadBtn.addEventListener('click', () => selectArchetype('slenderTriad'));
            ogreBtn.addEventListener('click', () => selectArchetype('ogre'));
            asianBaddieBtn.addEventListener('click', () => selectArchetype('asianBaddie'));
            latinaBaddieBtn.addEventListener('click', () => selectArchetype('latinaBaddie'));
            baddieBtn.addEventListener('click', () => selectArchetype('baddie'));
            
            // Set up other buttons
            ageBtn.addEventListener('click', ageUp);
            skincareBtn.addEventListener('click', doSkincare);
            gymBtn.addEventListener('click', doGymWorkout);
            studyBtn.addEventListener('click', doStudy);
            workBtn.addEventListener('click', doWork);
            fraudBtn.addEventListener('click', doFrauding);
            diyFillerBtn.addEventListener('click', doDiyFiller);
            ropeBtn.addEventListener('click', rope);
        }

        // Initialize hair system based on race
        function initHairSystem() {
            if (gameState.race === "mixed") {
                // Combine all hair types for mixed race
                const allTypes = [...hairTypesByRace.caucasian, ...hairTypesByRace.asian,
                                 ...hairTypesByRace.black, ...hairTypesByRace.hispanic];
                gameState.hairType = allTypes[Math.floor(Math.random() * allTypes.length)];
            } else {
                const types = hairTypesByRace[gameState.race];
                gameState.hairType = types[Math.floor(Math.random() * types.length)];
            }
            
            // Set initial hair length based on age
            gameState.hairLength = Math.min(30, gameState.age * 2);
        }

        // Generate family genetics
        function generateFamilyGenetics() {
            // Generate grandparent heights
            gameState.paternalGrandfatherHeight = Math.floor(Math.random() * 10) + 66; // 5'6" to 6'4"
            gameState.paternalGrandmotherHeight = Math.floor(Math.random() * 10) + 60; // 5'0" to 5'10"
            gameState.maternalGrandfatherHeight = Math.floor(Math.random() * 10) + 66; // 5'6" to 6'4"
            gameState.maternalGrandmotherHeight = Math.floor(Math.random() * 10) + 60; // 5'0" to 5'10"
            
            // Calculate parent heights based on grandparents (simplified)
            gameState.fatherHeight = Math.floor((gameState.paternalGrandfatherHeight + gameState.paternalGrandmotherHeight + 5) / 2);
            gameState.motherHeight = Math.floor((gameState.maternalGrandfatherHeight + gameState.maternalGrandmotherHeight) / 2);
        }

        // Calculate genetic potential based on family
        function calculateGeneticPotential() {
            // Calculate height potential based on family heights
            const maleHeightPotential = (gameState.fatherHeight + gameState.paternalGrandfatherHeight + gameState.maternalGrandfatherHeight) / 3;
            const femaleHeightPotential = (gameState.motherHeight + gameState.paternalGrandmotherHeight + gameState.maternalGrandmotherHeight) / 3;
            
            // Adjust for gender
            const heightPotential = gameState.gender === "male" ? maleHeightPotential : femaleHeightPotential;
            
            // Convert to genetic potential (0 to 1 scale)
            gameState.geneticPotential = (heightPotential - 74) / 12; // 5'4" to 7'4" becomes 0 to 1
            gameState.geneticPotential = Math.max(0, Math.min(1, gameState.geneticPotential));
        }

        // Format height in feet and inches
        function formatHeight(inches) {
            const feet = Math.floor(inches / 12);
            const remainingInches = inches % 12;
            return `${feet}'${remainingInches}"`;
        }

        // Generate random traits without conflicts
        function generateTraits() {
            const attractivePhysicalTraits = [
                "Symmetrical Face", "Wide Clavicles", "Broad Shoulders", "Tall Stature",
                "Good Body Fat Distribution", "V-Taper Torso", "Long Limbs", "Good Posture"
            ];
            
            const attractiveFacialTraits = [
                "Positive Canthal Tilt", "Forward Grown Maxilla", "Strong Jawline",
                "High Cheekbones", "Harmonious Features", "Good Facial Balance",
                "Hooded Eyes", "Defined Cupid's Bow"
            ];
            
            const attractiveSkinTraits = [
                "Clear Skin", "Even Skin Tone", "Smooth Texture"
            ];
            
            const unattractivePhysicalTraits = [
                "Narrow Clavicles", "Short Stature", "Poor Body Fat Distribution",
                "Round Shoulders", "Small Frame", "Poor Posture", "Short Neck",
                "Small Wrists"
            ];
            
            const unattractiveFacialTraits = [
                "Recessed Maxilla", "Recessed Chin", "Negative Canthal Tilt",
                "Asymmetrical Features", "Poor Facial Harmony", "Bug Eyes",
                "Thin Lips", "Weak Jawline", "Malocclusion"
            ];
            
            const unattractiveSkinTraits = [
                "Acne", "Cystic Acne", "Hyperpigmentation", "Rosacea", "Large Pores",
                "Scarring", "Oily Skin", "Dry Skin"
            ];
            
            const healthTraits = [
                "Good Metabolism", "Good Immune System", "Fast Recovery",
                "Healthy Skin", "Thick Hair", "Good Cardiovascular Health"
            ];
            
            const negativeHealthTraits = [
                "Acne-Prone Skin", "Poor Metabolism", "Weak Immune System",
                "Slow Recovery", "Balding Genes", "Allergies", "Asthma"
            ];
            
            // Clear current traits
            gameState.physicalTraits = [];
            gameState.facialTraits = [];
            gameState.skinTraits = [];
            gameState.healthTraits = [];
            gameState.negativePhysical = [];
            gameState.negativeFacial = [];
            gameState.negativeSkin = [];
            gameState.negativeHealth = [];
            
            // Add physical traits based on genetic potential
            const physicalTraitCount = Math.floor(gameState.geneticPotential * 3) + 1;
            for (let i = 0; i < physicalTraitCount; i++) {
                const trait = attractivePhysicalTraits[Math.floor(Math.random() * attractivePhysicalTraits.length)];
                if (!gameState.physicalTraits.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.physicalTraits.push(trait);
                }
            }
            
            // Add facial traits based on genetic potential
            const facialTraitCount = Math.floor(gameState.geneticPotential * 3) + 1;
            for (let i = 0; i < facialTraitCount; i++) {
                const trait = attractiveFacialTraits[Math.floor(Math.random() * attractiveFacialTraits.length)];
                if (!gameState.facialTraits.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.facialTraits.push(trait);
                }
            }
            
            // Add skin traits
            const skinTraitCount = Math.floor(Math.random() * 2) + 1;
            for (let i = 0; i < skinTraitCount; i++) {
                const trait = attractiveSkinTraits[Math.floor(Math.random() * attractiveSkinTraits.length)];
                if (!gameState.skinTraits.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.skinTraits.push(trait);
                }
            }
            
            // Add health traits
            const healthTraitCount = Math.floor(Math.random() * 3) + 1;
            for (let i = 0; i < healthTraitCount; i++) {
                const trait = healthTraits[Math.floor(Math.random() * healthTraits.length)];
                if (!gameState.healthTraits.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.healthTraits.push(trait);
                }
            }
            
            // Add negative physical traits (more likely with lower genetic potential)
            const negativePhysicalCount = Math.floor((1 - gameState.geneticPotential) * 3) + 1;
            for (let i = 0; i < negativePhysicalCount; i++) {
                const trait = unattractivePhysicalTraits[Math.floor(Math.random() * unattractivePhysicalTraits.length)];
                if (!gameState.negativePhysical.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.negativePhysical.push(trait);
                }
            }
            
            // Add negative facial traits (more likely with lower genetic potential)
            const negativeFacialCount = Math.floor((1 - gameState.geneticPotential) * 3) + 1;
            for (let i = 0; i < negativeFacialCount; i++) {
                const trait = unattractiveFacialTraits[Math.floor(Math.random() * unattractiveFacialTraits.length)];
                if (!gameState.negativeFacial.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.negativeFacial.push(trait);
                }
            }
            
            // Add negative skin traits
            const negativeSkinCount = Math.floor(Math.random() * 3);
            for (let i = 0; i < negativeSkinCount; i++) {
                const trait = unattractiveSkinTraits[Math.floor(Math.random() * unattractiveSkinTraits.length)];
                if (!gameState.negativeSkin.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.negativeSkin.push(trait);
                }
            }
            
            // Add negative health traits
            const negativeHealthCount = Math.floor(Math.random() * 2);
            for (let i = 0; i < negativeHealthCount; i++) {
                const trait = negativeHealthTraits[Math.floor(Math.random() * negativeHealthTraits.length)];
                if (!gameState.negativeHealth.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.negativeHealth.push(trait);
                }
            }
            
            // Add facial asymmetry if applicable
            if (gameState.facialAsymmetry) {
                gameState.negativeFacial.push("Facial Asymmetry");
            }
            
            // Add gender-specific traits
            if (gameState.gender === "female") {
                // Female-specific traits
                const feminineTraitCount = Math.floor(gameState.geneticPotential * 2) + 1;
                for (let i = 0; i < feminineTraitCount; i++) {
                    const trait = ["Wide Hips", "Narrow Shoulders", "Balanced Physique", "Clear Skin", "Good Fat Distribution"][Math.floor(Math.random() * 5)];
                    if (!gameState.physicalTraits.includes(trait) && !hasConflictingTrait(trait)) {
                        gameState.physicalTraits.push(trait);
                    }
                }
                
                // Female-specific failos
                if (Math.random() < 0.3) {
                    gameState.negativePhysical.push("Breast Asymmetry");
                }
                
                if (Math.random() < 0.2) {
                    gameState.negativeFacial.push("Masculinized Jaw");
                }
            } else {
                // Male-specific traits
                const masculineTraitCount = Math.floor(gameState.geneticPotential * 2) + 1;
                for (let i = 0; i < masculineTraitCount; i++) {
                    const trait = ["Broad Shoulders", "Strong Jawline", "V-Taper Torso", "Defined Features"][Math.floor(Math.random() * 4)];
                    if (!gameState.physicalTraits.includes(trait) && !hasConflictingTrait(trait)) {
                        gameState.physicalTraits.push(trait);
                    }
                }
            }
        }

        // Check for conflicting traits
        function hasConflictingTrait(trait) {
            const conflicts = {
                "Good Metabolism": ["Poor Metabolism"],
                "Poor Metabolism": ["Good Metabolism"],
                "Good Immune System": ["Weak Immune System"],
                "Weak Immune System": ["Good Immune System"],
                "Fast Recovery": ["Slow Recovery"],
                "Slow Recovery": ["Fast Recovery"],
                "Clear Skin": ["Acne", "Cystic Acne", "Hyperpigmentation", "Rosacea", "Oily Skin", "Dry Skin"],
                "Acne": ["Clear Skin"],
                "Cystic Acne": ["Clear Skin"],
                "Hyperpigmentation": ["Clear Skin"],
                "Rosacea": ["Clear Skin"],
                "Oily Skin": ["Clear Skin"],
                "Dry Skin": ["Clear Skin"]
            };
            
            if (conflicts[trait]) {
                for (const conflictingTrait of conflicts[trait]) {
                    if (gameState.physicalTraits.includes(conflictingTrait) ||
                        gameState.facialTraits.includes(conflictingTrait) ||
                        gameState.skinTraits.includes(conflictingTrait) ||
                        gameState.healthTraits.includes(conflictingTrait) ||
                        gameState.negativePhysical.includes(conflictingTrait) ||
                        gameState.negativeFacial.includes(conflictingTrait) ||
                        gameState.negativeSkin.includes(conflictingTrait) ||
                        gameState.negativeHealth.includes(conflictingTrait)) {
                        return true;
                    }
                }
            }
            
            return false;
        }

        // Update the UI with current game state
        function updateUI() {
            // Update basic stats
            ageValue.textContent = `${gameState.age} years old`;
            neuroStatus.textContent = gameState.neuroStatus;
            iqValue.textContent = gameState.iq;
            iqPotential.textContent = gameState.iqPotential;
            heightValue.textContent = formatHeight(gameState.height);
            healthValue.textContent = getHealthStatus();
            moneyValue.textContent = `$${gameState.money}`;
            socialValue.textContent = getSocialStatus();
            raceValue.textContent = gameState.race.charAt(0).toUpperCase() + gameState.race.slice(1);
            eyeColorValue.textContent = gameState.eyeColor.charAt(0).toUpperCase() + gameState.eyeColor.slice(1);
            smvValue.textContent = gameState.smv.toFixed(1);
            statusValue.textContent = gameState.status;
            followersValue.textContent = gameState.followers;
            humorValue.textContent = gameState.humor;
            
            // Update weight and BMI
            weightValue.textContent = `${gameState.weight} lbs`;
            
            // Calculate BMI: (weight in pounds / (height in inches)^2) * 703
            gameState.bmi = (gameState.weight / (gameState.height * gameState.height)) * 703;
            bmiValue.textContent = gameState.bmi.toFixed(1);
            
            // Update BMI status
            let bmiStatusText = "";
            let bmiStatusClass = "";
            
            if (gameState.bmi < 18.5) {
                bmiStatusText = "Underweight";
                bmiStatusClass = "underweight";
            } else if (gameState.bmi < 25) {
                bmiStatusText = "Normal";
                bmiStatusClass = "normal";
            } else if (gameState.bmi < 30) {
                bmiStatusText = "Overweight";
                bmiStatusClass = "overweight";
            } else {
                bmiStatusText = "Obese";
                bmiStatusClass = "obese";
            }
            
            bmiStatus.textContent = bmiStatusText;
            bmiStatus.className = "bmi-status " + bmiStatusClass;
            
            // Update BMI progress bar (18.5-24.9 is normal range)
            const bmiProgressValue = Math.max(0, Math.min(100, (gameState.bmi - 15) * 5));
            bmiProgress.style.width = `${bmiProgressValue}%`;
            
            // Update bone mass
            boneMassValue.textContent = getBoneMassStatus();
            boneMassProgress.style.width = `${gameState.boneMass}%`;
            
            // Update genetic display
            fatherHeight.textContent = formatHeight(gameState.fatherHeight);
            motherHeight.textContent = formatHeight(gameState.motherHeight);
            parentBone.textContent = gameState.geneticPotential > 0.6 ? "Good" : gameState.geneticPotential > 0.4 ? "Average" : "Poor";
            geneticPotential.textContent = gameState.geneticPotential > 0.6 ? "High" : gameState.geneticPotential > 0.4 ? "Medium" : "Low";
            
            // Update family class display
            familyClassValue.textContent = gameState.familyClass.charAt(0).toUpperCase() + gameState.familyClass.slice(1);
            familyClassValue.className = "family-class " + gameState.familyClass + "-class";
            familySupport.textContent = `$${gameState.familySupport}`;
            familyClassText.textContent = gameState.familyClass;
            
            // Update height percentile
            updateHeightPercentile();
            heightPercentile.style.width = `${gameState.heightPercentile}%`;
            heightPercentileValue.textContent = `${gameState.heightPercentile}%`;
            tallerThan.textContent = `${gameState.heightPercentile}%`;
            
            // Update attractiveness tier
            const tier = getCurrentTier();
            attractivenessValue.textContent = tier.name;
            
            // Set tier badge text based on tier name
            let tierBadgeText = "";
            if (tier.name === "Subhuman") tierBadgeText = "SUB";
            else if (tier.name === "Low Tier Normie") tierBadgeText = "LTN";
            else if (tier.name === "High Low Tier Normie") tierBadgeText = "HLTN";
            else if (tier.name === "Low Mid Tier Normie") tierBadgeText = "LMTN";
            else if (tier.name === "High Mid Tier Normie") tierBadgeText = "HMTN";
            else if (tier.name === "Low High Tier Normie") tierBadgeText = "LHTN";
            else if (tier.name === "High Tier Normie") tierBadgeText = "HTN";
            else if (tier.name === "Chad Lite") tierBadgeText = "CL";
            else if (tier.name === "High Chad Lite") tierBadgeText = "HCL";
            else if (tier.name === "Chad") tierBadgeText = "CHAD";
            else if (tier.name === "Adamlite") tierBadgeText = "AL";
            else if (tier.name === "True Adam") tierBadgeText = "TA";
            
            tierBadge.textContent = tierBadgeText;
            tierBadge.className = "tier-badge " + tier.class;
            
            // Check if tier has decreased
            if (tier.name !== gameState.previousTier && gameState.age > 0) {
                const previousTierIndex = tiers.findIndex(t => t.name === gameState.previousTier);
                const currentTierIndex = tiers.findIndex(t => t.name === tier.name);
                
                if (currentTierIndex < previousTierIndex) {
                    addLogEntry(`Your attractiveness tier has decreased from ${gameState.previousTier} to ${tier.name}!`, "danger");
                }
            }
            
            gameState.previousTier = tier.name;
            
            // Update .org status if on forum
            if (gameState.onForum) {
                orgStatusContainer.style.display = 'block';
                let orgStatusClass = 'gray-status';
                let orgStatusText = 'Gray';
                
                if (gameState.orgStatus === 'known') {
                    orgStatusClass = 'known-status';
                    orgStatusText = 'Known';
                } else if (gameState.orgStatus === 'contributor') {
                    orgStatusClass = 'contributor-status';
                    orgStatusText = 'Contributor';
                } else if (gameState.orgStatus === 'orgmaster') {
                    orgStatusClass = 'orgmaster-status';
                    orgStatusText = '.org Master';
                }
                
                orgStatusValue.className = 'status-badge ' + orgStatusClass;
                orgStatusValue.textContent = orgStatusText;
                
                forumStatus.textContent = 'Member';
                forumJoinContainer.style.display = 'none';
                forumActionsContainer.style.display = 'block';
            } else {
                orgStatusContainer.style.display = 'none';
                forumStatus.textContent = 'Not a member';
                forumJoinContainer.style.display = 'block';
                forumActionsContainer.style.display = 'none';
            }
            
            // Enable/disable .org join button based on age
            joinOrgBtn.disabled = gameState.age < 13;
            
            // Update social media status
            if (gameState.socialMediaStatus !== "none") {
                socialMediaStatusContainer.style.display = 'block';
                let statusText = "No Presence";
                
                if (gameState.socialMediaStatus === "lolcow") {
                    statusText = "Lolcow (Negative Attention)";
                } else if (gameState.socialMediaStatus === "influencer") {
                    statusText = "Influencer (" + gameState.followers + " followers)";
                } else if (gameState.socialMediaStatus === "viral") {
                    statusText = "Viral Star (" + gameState.followers + " followers)";
                }
                
                socialMediaStatusValue.textContent = statusText;
            } else {
                socialMediaStatusContainer.style.display = 'none';
            }
            
            // Update relationship status
            if (gameState.age >= 16) {
                relationshipContainer.style.display = 'block';
                
                let relationshipText = "";
                let relationshipClass = "";
                
                if (gameState.relationshipStatus === "single") {
                    relationshipText = "Single";
                    relationshipClass = "single";
                } else if (gameState.relationshipStatus === "dating") {
                    relationshipText = "Dating";
                    relationshipClass = "dating";
                } else if (gameState.relationshipStatus === "married") {
                    relationshipText = "Married";
                    relationshipClass = "married";
                }
                
                relationshipStatusValue.textContent = relationshipText;
                relationshipStatusValue.className = "relationship-status " + relationshipClass;
                
                // Show partner info if in a relationship
                if (gameState.relationshipStatus !== "single" && gameState.partner) {
                    partnerInfoContainer.style.display = 'block';
                    partnerName.textContent = gameState.partner.name;
                    partnerAttractiveness.textContent = gameState.partner.attractiveness.toFixed(1);
                    partnerHeight.textContent = formatHeight(gameState.partner.height);
                    childrenCount.textContent = gameState.children.length;
                    
                    // Show children if any
                    if (gameState.children.length > 0) {
                        childrenContainer.style.display = 'block';
                        childrenContainer.innerHTML = '';
                        
                        gameState.children.forEach((child, index) => {
                            const childEl = document.createElement('div');
                            childEl.className = 'child-item';
                            childEl.textContent = `Child ${index + 1}: ${formatHeight(child.height)} tall, ${child.attractiveness.toFixed(1)} SMV`;
                            childrenContainer.appendChild(childEl);
                        });
                    } else {
                        childrenContainer.style.display = 'none';
                    }
                } else {
                    partnerInfoContainer.style.display = 'none';
                }
            } else {
                relationshipContainer.style.display = 'none';
            }
            
            // Update dating tab
            if (gameState.age < 16) {
                datingStatusText.textContent = "too young to date";
                datingActions.style.display = 'none';
            } else {
                datingActions.style.display = 'block';
                
                if (gameState.relationshipStatus === "single") {
                    datingStatusText.textContent = "single and looking";
                    dateBtn.style.display = 'block';
                    proposeBtn.style.display = 'none';
                    haveChildBtn.style.display = 'none';
                    divorceBtn.style.display = 'none';
                    confrontBtn.style.display = 'none';
                } else if (gameState.relationshipStatus === "dating") {
                    datingStatusText.textContent = `dating ${gameState.partner.name}`;
                    dateBtn.style.display = 'none';
                    proposeBtn.style.display = 'block';
                    haveChildBtn.style.display = 'none';
                    divorceBtn.style.display = 'none';
                    confrontBtn.style.display = 'none';
                } else if (gameState.relationshipStatus === "married") {
                    datingStatusText.textContent = `married to ${gameState.partner.name}`;
                    dateBtn.style.display = 'none';
                    proposeBtn.style.display = 'none';
                    haveChildBtn.style.display = 'block';
                    divorceBtn.style.display = 'block';
                    
                    // Show confront button if cheating is detected
                    if (gameState.partnerCheating) {
                        confrontBtn.style.display = 'block';
                    } else {
                        confrontBtn.style.display = 'none';
                    }
                }
                
                // Show cheating indicator if married
                if (gameState.relationshipStatus === "married") {
                    cheatingIndicator.style.display = 'block';
                    let riskText = "Low";
                    let riskClass = "low-risk";
                    
                    if (gameState.cheatingRisk > 70) {
                        riskText = "High";
                        riskClass = "high-risk";
                    } else if (gameState.cheatingRisk > 40) {
                        riskText = "Medium";
                        riskClass = "medium-risk";
                    }
                    
                    cheatingRiskValue.textContent = riskText;
                    cheatingRiskValue.className = "cheating-risk " + riskClass;
                } else {
                    cheatingIndicator.style.display = 'none';
                }
            }
            
            // Update hair UI
            hairTypeDisplay.textContent = gameState.hairType;
            
            let lengthText = "Short";
            if (gameState.hairLength > 70) lengthText = "Very Long";
            else if (gameState.hairLength > 50) lengthText = "Long";
            else if (gameState.hairLength > 30) lengthText = "Medium";
            
            hairLengthDisplay.textContent = lengthText;
            
            let healthText = "Healthy";
            if (gameState.hairHealth > 80) healthText = "Very Healthy";
            else if (gameState.hairHealth > 60) healthText = "Healthy";
            else if (gameState.hairHealth > 40) healthText = "Damaged";
            else if (gameState.hairHealth > 20) healthText = "Very Damaged";
            else healthText = "Unhealthy";
            
            hairHealthDisplay.textContent = healthText;
            hairHealthBar.style.width = `${gameState.hairHealth}%`;
            
            // Update progress bars
            ageProgress.style.width = `${(gameState.age / 80) * 100}%`;
            iqProgress.style.width = `${((gameState.iq - 70) / 60) * 100}%`;
            heightProgress.style.width = `${((gameState.height - 20) / 60) * 100}%`;
            healthProgress.style.width = `${gameState.health}%`;
            socialProgress.style.width = `${gameState.socialStatus}%`;
            
            // Update traits
            physicalTraits.innerHTML = '';
            gameState.physicalTraits.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait';
                traitEl.textContent = trait;
                physicalTraits.appendChild(traitEl);
            });
            
            gameState.negativePhysical.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait negative-trait';
                traitEl.textContent = trait;
                physicalTraits.appendChild(traitEl);
            });
            
            facialTraits.innerHTML = '';
            gameState.facialTraits.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait';
                traitEl.textContent = trait;
                facialTraits.appendChild(traitEl);
            });
            
            gameState.negativeFacial.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait negative-trait';
                traitEl.textContent = trait;
                facialTraits.appendChild(traitEl);
            });
            
            skinTraits.innerHTML = '';
            gameState.skinTraits.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait';
                traitEl.textContent = trait;
                skinTraits.appendChild(traitEl);
            });
            
            gameState.negativeSkin.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait negative-trait';
                traitEl.textContent = trait;
                skinTraits.appendChild(traitEl);
            });
            
            healthTraits.innerHTML = '';
            gameState.healthTraits.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait';
                traitEl.textContent = trait;
                healthTraits.appendChild(traitEl);
            });
            
            gameState.negativeHealth.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait negative-trait';
                traitEl.textContent = trait;
                healthTraits.appendChild(traitEl);
            });
            
            // Update button states
            surgeryBtn.disabled = gameState.age < 18 || gameState.money < 5000;
            skincareBtn.disabled = gameState.money < 50;
            gymBtn.disabled = gameState.money < 30 || gameState.gymAscension >= 2;
            studyBtn.disabled = gameState.money < 20 || gameState.iq >= gameState.iqPotential;
            workBtn.disabled = gameState.age < 16;
            fraudBtn.disabled = gameState.money < 20;
            diyFillerBtn.disabled = gameState.money < 100 || gameState.age < 11;
            
            // Update procedure buttons
            updateProcedureButton(bracesBtn, 3000);
            updateProcedureButton(jawSurgeryBtn, 15000);
            updateProcedureButton(buccalFatBtn, 4000);
            updateProcedureButton(rhinoplastyBtn, 8000);
            updateProcedureButton(limbLengtheningBtn, 70000);
            updateProcedureButton(fillerBtn, 2000);
            updateProcedureButton(harmonizationFillerBtn, 5000);
            updateProcedureButton(palatalExpanderBtn, 4000, gameState.age >= 16);
            updateProcedureButton(canthopexyBtn, 6000);
            updateProcedureButton(eyelidFillerBtn, 3500);
            updateProcedureButton(blepharoplastyBtn, 8000);
            updateProcedureButton(keratopigmentationBtn, 7000);
            
            // Update peptide buttons (available only from age 12)
            updatePeptideButton(igf1Btn, 500, gameState.age >= 12);
            updatePeptideButton(mk677Btn, 300, gameState.age >= 12);
            updatePeptideButton(hghBtn, 1000, gameState.age >= 12);
            updatePeptideButton(ghkCuBtn, 200, gameState.age >= 12);
            updatePeptideButton(minoxidilBtn, 50, gameState.age >= 12);
            updatePeptideButton(meclizineBtn, 400, gameState.age >= 12);
            updatePeptideButton(cjcIpaBtn, 600, gameState.age >= 12);
            
            // Update steroid buttons
            updateProcedureButton(trenboloneBtn, 300, gameState.age >= 18);
            updateProcedureButton(anavarBtn, 200, gameState.age >= 18);
            
            // Update family buttons (ask for money only available from age 12)
            askMoneyBtn.disabled = gameState.familySupport <= 0 || gameState.age < 12;
            askBracesBtn.disabled = gameState.familySupport < 3000 || gameState.proceduresDone.includes("braces");
            askExpanderBtn.disabled = gameState.familySupport < 4000 || gameState.age >= 16 || gameState.proceduresDone.includes("palatalExpander");
            
            // Update study buttons based on age
            elementaryStudyBtn.disabled = gameState.age > 12;
            middleStudyBtn.disabled = gameState.age < 12 || gameState.age > 15;
            highSchoolStudyBtn.disabled = gameState.age < 15 || gameState.age > 18;
            collegeStudyBtn.disabled = gameState.age < 18;
            
            // Update job buttons based on IQ requirements
            updateJobButton(fastfoodJobBtn, 0);
            updateJobButton(retailJobBtn, 85);
            updateJobButton(officeJobBtn, 95);
            updateJobButton(developerJobBtn, 110);
            updateJobButton(scientistJobBtn, 120);
            updateJobButton(surgeonJobBtn, 130);
            
            // Update TikTok button based on age
            tiktokPostBtn.disabled = gameState.age < 13;
            
            // Update nutrition buttons
            basicMealBtn.disabled = gameState.money < 5;
            healthyMealBtn.disabled = gameState.money < 15;
            gainWeightBtn.disabled = gameState.money < 10;
            loseWeightBtn.disabled = gameState.money < 12;
            
            // Update hair buttons
            basicHaircutBtn.disabled = gameState.money < 30;
            premiumStyleBtn.disabled = gameState.money < 100;
            dreadlocksBtn.disabled = gameState.money < 200;
            braidsBtn.disabled = gameState.money < 150;
            twistsBtn.disabled = gameState.money < 180;
            undercutBtn.disabled = gameState.money < 60;
            
            // Update archetype buttons
            updateArchetypeButtons();
        }

        // Get bone mass status text
        function getBoneMassStatus() {
            if (gameState.boneMass >= 80) return "Dense";
            if (gameState.boneMass >= 60) return "Strong";
            if (gameState.boneMass >= 40) return "Normal";
            if (gameState.boneMass >= 20) return "Weak";
            return "Fragile";
        }

        // Update height percentile based on age and gender
        function updateHeightPercentile() {
            const baseHeight = heightPercentiles[gameState.gender][gameState.age];
            const heightDifference = gameState.height - baseHeight;
            
            // Calculate percentile based on difference from average
            if (heightDifference < -4) {
                gameState.heightPercentile = 10;
            } else if (heightDifference < -2) {
                gameState.heightPercentile = 25;
            } else if (heightDifference < 0) {
                gameState.heightPercentile = 40;
            } else if (heightDifference < 2) {
                gameState.heightPercentile = 60;
            } else if (heightDifference < 4) {
                gameState.heightPercentile = 75;
            } else if (heightDifference < 6) {
                gameState.heightPercentile = 85;
            } else if (heightDifference < 8) {
                gameState.heightPercentile = 90;
            } else if (heightDifference < 10) {
                gameState.heightPercentile = 95;
            } else {
                gameState.heightPercentile = 99;
            }
            
            // Make above average height uncommon and very tall rare
            if (gameState.height > 74) { // 6'2"
                gameState.heightPercentile = 99;
            } else if (gameState.height > 72) { // 6'0"
                gameState.heightPercentile = 90;
            } else if (gameState.height > 70) { // 5'10"
                gameState.heightPercentile = 75;
            }
        }

        // Get current attractiveness tier
        function getCurrentTier() {
            for (const tier of tiers) {
                if (gameState.attractiveness >= tier.min && gameState.attractiveness <= tier.max) {
                    return tier;
                }
            }
            return tiers[2]; // Default to High Low Tier Normie
        }

        // Get health status text
        function getHealthStatus() {
            if (gameState.health >= 80) return "Excellent";
            if (gameState.health >= 60) return "Good";
            if (gameState.health >= 40) return "Fair";
            if (gameState.health >= 20) return "Poor";
            return "Critical";
        }

        // Get social status text
        function getSocialStatus() {
            if (gameState.socialStatus >= 80) return "Popular";
            if (gameState.socialStatus >= 60) return "Liked";
            if (gameState.socialStatus >= 40) return "Neutral";
            if (gameState.socialStatus >= 20) return "Disliked";
            return "Bullied";
        }

        // Add a log entry
        function addLogEntry(message, type = "info") {
            const logEntry = document.createElement('div');
            logEntry.className = 'log-entry';
            
            let className = "";
            if (type === "success") className = "success";
            if (type === "danger") className = "danger";
            if (type === "warning") className = "warning";
            
            logEntry.innerHTML = `<span class="age-badge">Age ${gameState.age}</span> ${message}`;
            if (className) logEntry.classList.add(className);
            
            gameLog.appendChild(logEntry);
            gameLog.scrollTop = gameLog.scrollHeight;
        }

        // Setup procedure button
        function setupProcedureButton(button, procedure, cost) {
            button.addEventListener('click', () => {
                if (gameState.money >= cost) {
                    currentProcedure = procedure;
                    showProcedureModal(procedure, cost);
                }
            });
        }

        // Update procedure button state
        function updateProcedureButton(button, cost, additionalCondition = true) {
            button.disabled = gameState.money < cost || !additionalCondition;
        }

        // Update peptide button state (available only from age 12)
        function updatePeptideButton(button, cost, additionalCondition = true) {
            button.disabled = gameState.money < cost || !additionalCondition;
        }

        // Update job button state
        function updateJobButton(button, iqReq) {
            const job = jobs.find(j => j.id === button.id.replace('-job-btn', ''));
            const hasDegree = gameState.schoolLevel === "college" && gameState.age >= 22;
            button.disabled = gameState.iq < iqReq || gameState.currentJob === job.id || (job.degreeReq && !hasDegree);
        }

        // Update archetype button states
        function updateArchetypeButtons() {
            prettyBoyBtn.disabled = !canSelectArchetype('prettyBoy');
            slenderTriadBtn.disabled = !canSelectArchetype('slenderTriad');
            ogreBtn.disabled = !canSelectArchetype('ogre');
            asianBaddieBtn.disabled = !canSelectArchetype('asianBaddie');
            latinaBaddieBtn.disabled = !canSelectArchetype('latinaBaddie');
            baddieBtn.disabled = !canSelectArchetype('baddie');
            
            // Male archetypes require .org membership
            if (gameState.gender === "male") {
                prettyBoyBtn.disabled = prettyBoyBtn.disabled || !gameState.onForum;
                slenderTriadBtn.disabled = slenderTriadBtn.disabled || !gameState.onForum;
                ogreBtn.disabled = ogreBtn.disabled || !gameState.onForum;
            }
        }

        // Check if player can select an archetype
        function canSelectArchetype(archetype) {
            const tier = getCurrentTier();
            
            switch(archetype) {
                case 'prettyBoy':
                    return tier.min >= 5.5 &&
                           gameState.height >= 70 &&
                           !gameState.negativeSkin.includes("Acne") &&
                           !gameState.negativeSkin.includes("Cystic Acne") &&
                           gameState.feminineTraits > 60;
                
                case 'slenderTriad':
                    return gameState.height >= 72 &&
                           gameState.bmi < 18.5 &&
                           gameState.negativePhysical.includes("Narrow Clavicles");
                
                case 'ogre':
                    return (tier.min >= 7.6 || tier.max <= 2.9) &&
                           gameState.height >= 72 &&
                           gameState.boneMass > 70;
                
                case 'asianBaddie':
                    return gameState.race === "asian" &&
                           tier.min >= 5.0 &&
                           hasIdealRatios();
                
                case 'latinaBaddie':
                    return gameState.race === "hispanic" &&
                           tier.min >= 5.0 &&
                           hasIdealRatios();
                
                case 'baddie':
                    return tier.min >= 5.0 &&
                           hasIdealRatios() &&
                           gameState.negativeFacial.length === 0;
            }
            
            return false;
        }

        // Check if player has ideal facial/body ratios
        function hasIdealRatios() {
            // Simplified check for ideal ratios
            return Math.random() > 0.7; // 30% chance of having ideal ratios
        }

        // Show procedure modal
        function showProcedureModal(procedure, cost) {
            let title = "";
            let description = "";
            let risk = "";
            
            switch(procedure) {
                case 'braces':
                    title = "Braces";
                    description = "Corrects malocclusion and straightens teeth. Risk of botch if no dental issues present.";
                    risk = "Medium";
                    break;
                case 'jawSurgery':
                    title = "Jaw Surgery";
                    description = "Fixes recessed maxilla or mandible. Significant improvement to facial structure but high risk of complications.";
                    risk = "High";
                    break;
                case 'buccalFat':
                    title = "Buccal Fat Removal";
                    description = "Removes cheek fat for more defined cheekbones. Can cause premature aging if overdone.";
                    risk = "Medium";
                    break;
                case 'rhinoplasty':
                    title = "Rhinoplasty";
                    description = "Reshapes the nose. High botch potential but can significantly improve facial harmony.";
                    risk = "High";
                    break;
                case 'limbLengthening':
                    title = "Limb Lengthening Surgery";
                    description = "Increases height by 3-4 inches. Extremely painful and risky with long recovery time.";
                    risk = "High";
                    break;
                case 'filler':
                    title = "Professional Filler";
                    description = "Adds volume to lips, cheeks, or jawline. Low risk but temporary results.";
                    risk = "Low";
                    break;
                case 'harmonizationFiller':
                    title = "Facial Harmonization Filler";
                    description = "Advanced filler techniques to improve facial harmony and balance. Can push past natural hardcaps and ascend up to 2 tiers.";
                    risk = "Medium";
                    break;
                case 'palatalExpander':
                    title = "Palatal Expander";
                    description = "Widens the upper jaw. Only effective before age 16. Risk of fusion with peptides.";
                    risk = "Medium";
                    break;
                case 'canthopexy':
                    title = "Canthopexy";
                    description = "Lifts the outer corner of the eyes for a more alert, positive canthal tilt.";
                    risk = "High";
                    break;
                case 'eyelidFiller':
                    title = "Upper Eyelid Filler";
                    description = "Adds volume to upper eyelids for a more hunter-eyed/hooded appearance.";
                    risk = "Medium";
                    break;
                case 'blepharoplasty':
                    title = "Blepharoplasty";
                    description = "Eyelid surgery to remove excess skin or fat from the eyelids.";
                    risk = "High";
                    break;
                case 'keratopigmentation':
                    title = "Keratopigmentation";
                    description = "Permanent eye color change procedure. Risk of blindness if botched.";
                    risk = "Medium";
                    break;
                case 'igf1':
                    title = "IGF-1 Peptides";
                    description = "Stimulates growth before plates close. After closure, risk of acromegaly, organ enlargement, and diabetes.";
                    risk = "High";
                    break;
                case 'mk677':
                    title = "MK-677";
                    description = "Growth hormone secretagogue. Increases height potential and bone mass but may cause insulin resistance.";
                    risk = "Medium";
                    break;
                case 'hgh':
                    title = "Human Growth Hormone";
                    description = "Maximizes growth potential and increases bone mass. High risk of side effects including acromegaly and cardiovascular issues.";
                    risk = "High";
                    break;
                case 'ghkCu':
                    title = "GHK-Cu";
                    description = "Copper peptide for skin rejuvenation and improved complexion.";
                    risk = "Low";
                    break;
                case 'minoxidil':
                    title = "Minoxidil";
                    description = "Promotes facial hair growth and prevents balding. Low risk but requires continuous use.";
                    risk = "Low";
                    break;
                case 'meclizine':
                    title = "Meclizine/Aromatase Inhibitors";
                    description = "May increase height by delaying growth plate closure. Very low success rate. Risk of dementia later in life.";
                    risk = "High";
                    break;
                case 'cjcIpa':
                    title = "CJC no DAC + IPA";
                    description = "Growth hormone releasing peptide combination. May increase height and improve recovery.";
                    risk = "Medium";
                    break;
                case 'trenbolone':
                    title = "Trenbolone";
                    description = "Extremely powerful steroid. Very dangerous for teens, dangerous for adults.";
                    risk = "High";
                    break;
                case 'anavar':
                    title = "Anavar";
                    description = "Milder steroid but still dangerous. Can cause liver damage.";
                    risk = "High";
                    break;
            }
            
            modalProcedureTitle.textContent = title;
            modalProcedureDesc.innerHTML = `${description}<br><br>Cost: $${cost}<br>Risk: <span class="risk-indicator ${risk.toLowerCase()}-risk">${risk} Risk</span>`;
            procedureModal.style.display = 'flex';
        }

        // Perform procedure
        function performProcedure(procedure) {
            let cost = 0;
            let success = false;
            let message = "";
            let messageType = "info";
            let attractivenessChange = 0;
            let healthChange = 0;
            let heightChange = 0;
            let boneMassChange = 0;
            
            switch(procedure) {
                case 'braces':
                    cost = 3000;
                    if (gameState.negativeFacial.includes("Malocclusion")) {
                        success = true;
                        const index = gameState.negativeFacial.indexOf("Malocclusion");
                        gameState.negativeFacial.splice(index, 1);
                        message = "Braces successfully corrected your malocclusion.";
                        attractivenessChange = 0.3;
                    } else {
                        message = "Braces were unnecessary and caused dental problems.";
                        messageType = "danger";
                        healthChange = -5;
                    }
                    break;
                case 'jawSurgery':
                    cost = 15000;
                    if (gameState.negativeFacial.includes("Recessed Maxilla") || gameState.negativeFacial.includes("Recessed Chin")) {
                        success = true;
                        if (gameState.negativeFacial.includes("Recessed Maxilla")) {
                            const index = gameState.negativeFacial.indexOf("Recessed Maxilla");
                            gameState.negativeFacial.splice(index, 1);
                        }
                        if (gameState.negativeFacial.includes("Recessed Chin")) {
                            const index = gameState.negativeFacial.indexOf("Recessed Chin");
                            gameState.negativeFacial.splice(index, 1);
                        }
                        message = "Jaw surgery successfully improved your facial structure.";
                        attractivenessChange = 0.8;
                        healthChange = -10; // Surgery recovery
                    } else {
                        if (Math.random() < 0.7) {
                            message = "Jaw surgery was unnecessary and resulted in a botched outcome.";
                            messageType = "danger";
                            attractivenessChange = -0.5;
                            healthChange = -15;
                        } else {
                            message = "Jaw surgery provided minor improvement despite not being necessary.";
                            attractivenessChange = 0.2;
                            healthChange = -10;
                        }
                    }
                    break;
                case 'buccalFat':
                    cost = 4000;
                    if (gameState.negativePhysical.includes("Poor Body Fat Distribution") || Math.random() < 0.6) {
                        success = true;
                        if (gameState.negativePhysical.includes("Poor Body Fat Distribution")) {
                            const index = gameState.negativePhysical.indexOf("Poor Body Fat Distribution");
                            gameState.negativePhysical.splice(index, 1);
                        }
                        message = "Buccal fat removal improved your facial definition.";
                        attractivenessChange = 0.4;
                    } else {
                        message = "Buccal fat removal was overdone, causing premature aging.";
                        messageType = "danger";
                        attractivenessChange = -0.3;
                        healthChange = -5;
                    }
                    break;
                case 'rhinoplasty':
                    cost = 8000;
                    if (gameState.negativeFacial.includes("Asymmetrical Features") || Math.random() < 0.5) {
                        success = true;
                        if (gameState.negativeFacial.includes("Asymmetrical Features")) {
                            const index = gameState.negativeFacial.indexOf("Asymmetrical Features");
                            gameState.negativeFacial.splice(index, 1);
                        }
                        message = "Rhinoplasty improved your nasal appearance.";
                        attractivenessChange = 0.5;
                    } else {
                        message = "Rhinoplasty resulted in a botched nose.";
                        messageType = "danger";
                        attractivenessChange = -0.7;
                    }
                    healthChange = -8;
                    break;
                case 'limbLengthening':
                    cost = 70000;
                    if (gameState.height < 70 && Math.random() < 0.7) {
                        success = true;
                        gameState.height += 3;
                        message = "Limb lengthening surgery increased your height by 3 inches.";
                        attractivenessChange = 0.6;
                    } else {
                        message = "Limb lengthening surgery resulted in complications and poor outcomes.";
                        messageType = "danger";
                        healthChange = -20;
                        attractivenessChange = -0.3;
                    }
                    healthChange = -15;
                    break;
                case 'filler':
                    cost = 2000;
                    success = true;
                    message = "Professional filler enhanced your facial features.";
                    attractivenessChange = 0.3;
                    gameState.fillerActive = true;
                    // Filler is temporary
                    setTimeout(() => {
                        gameState.attractiveness -= 0.2;
                        gameState.fillerActive = false;
                        addLogEntry("Your filler has worn off.", "warning");
                        updateUI();
                    }, 60000); // 1 minute = 1-2 years in game time
                    break;
                case 'harmonizationFiller':
                    cost = 5000;
                    success = true;
                    
                    // Correct facial asymmetry
                    if (gameState.facialAsymmetry) {
                        gameState.facialAsymmetry = false;
                        const index = gameState.negativeFacial.indexOf("Facial Asymmetry");
                        if (index !== -1) {
                            gameState.negativeFacial.splice(index, 1);
                        }
                        message = "Facial harmonization filler corrected your facial asymmetry and improved your facial harmony.";
                        attractivenessChange = 0.8;
                    } else {
                        // Calculate tier improvement (up to 2 tiers)
                        const currentTierIndex = tiers.findIndex(t =>
                            gameState.attractiveness >= t.min && gameState.attractiveness <= t.max
                        );
                        
                        let maxTierIncrease = 2;
                        if (currentTierIndex + maxTierIncrease >= tiers.length) {
                            maxTierIncrease = tiers.length - currentTierIndex - 1;
                        }
                        
                        // Determine actual improvement (1-2 tiers)
                        const tierIncrease = Math.floor(Math.random() * maxTierIncrease) + 1;
                        const targetTier = tiers[currentTierIndex + tierIncrease];
                        
                        // Calculate attractiveness needed to reach target tier
                        const minAttractiveness = targetTier.min;
                        const maxAttractiveness = Math.min(targetTier.max, gameState.baseAttractiveness + 1.5);
                        
                        // Set new attractiveness
                        gameState.attractiveness = minAttractiveness + (Math.random() * (maxAttractiveness - minAttractiveness));
                        
                        message = `Facial harmonization filler significantly improved your facial harmony. You ascended ${tierIncrease} tier(s)!`;
                    }
                    
                    gameState.fillerActive = true;
                    
                    // Filler is temporary but with some permanent improvement
                    setTimeout(() => {
                        gameState.attractiveness -= 0.5;
                        gameState.fillerActive = false;
                        addLogEntry("Your harmonization filler has partially worn off, but you retained some improvement.", "warning");
                        updateUI();
                    }, 90000); // 1.5 minutes = 2-3 years in game time
                    break;
                case 'palatalExpander':
                    cost = 4000;
                    if (gameState.age < 16) {
                        success = true;
                        gameState.palatalExpander = true;
                        message = "Palatal expander installed. It will gradually widen your jaw.";
                        attractivenessChange = 0.2;
                    } else {
                        message = "Palatal expander is only effective before age 16. It had no effect.";
                        messageType = "warning";
                    }
                    break;
                case 'canthopexy':
                    cost = 6000;
                    if (gameState.negativeFacial.includes("Negative Canthal Tilt")) {
                        success = true;
                        const index = gameState.negativeFacial.indexOf("Negative Canthal Tilt");
                        gameState.negativeFacial.splice(index, 1);
                        gameState.facialTraits.push("Positive Canthal Tilt");
                        message = "Canthopexy successfully improved your eye shape.";
                        attractivenessChange = 0.4;
                    } else if (Math.random() < 0.7) {
                        success = true;
                        message = "Canthopexy provided a subtle improvement to your eye area.";
                        attractivenessChange = 0.2;
                    } else {
                        message = "Canthopexy resulted in an unnatural look.";
                        messageType = "danger";
                        attractivenessChange = -0.3;
                    }
                    healthChange = -8;
                    break;
                case 'eyelidFiller':
                    cost = 3500;
                    success = true;
                    if (gameState.negativeFacial.includes("Bug Eyes")) {
                        const index = gameState.negativeFacial.indexOf("Bug Eyes");
                        gameState.negativeFacial.splice(index, 1);
                        message = "Eyelid filler improved your eye shape, making them less prominent.";
                    } else {
                        message = "Eyelid filler added a more hunter-eyed appearance.";
                    }
                    attractivenessChange = 0.3;
                    break;
                case 'blepharoplasty':
                    cost = 8000;
                    if (Math.random() < 0.6) {
                        success = true;
                        if (gameState.negativeFacial.includes("Hooded Eyes")) {
                            const index = gameState.negativeFacial.indexOf("Hooded Eyes");
                            gameState.negativeFacial.splice(index, 1);
                            message = "Blepharoplasty successfully reduced your hooded eyelids.";
                        } else {
                            message = "Blepharoplasty improved your eyelid appearance.";
                        }
                        attractivenessChange = 0.4;
                    } else {
                        message = "Blepharoplasty resulted in an unnatural or overdone look.";
                        messageType = "danger";
                        attractivenessChange = -0.5;
                    }
                    healthChange = -10;
                    break;
                case 'keratopigmentation':
                    cost = 7000;
                    if (Math.random() < 0.8) {
                        success = true;
                        const newColor = eyeColors[gameState.race][Math.floor(Math.random() * eyeColors[gameState.race].length)];
                        gameState.eyeColor = newColor;
                        message = `Keratopigmentation successfully changed your eye color to ${newColor}.`;
                        attractivenessChange = 0.3;
                    } else {
                        message = "Keratopigmentation resulted in an unnatural eye color.";
                        messageType = "danger";
                        attractivenessChange = -0.4;
                        healthChange = -5;
                    }
                    break;
                case 'igf1':
                    cost = 500;
                    if (gameState.growthPlatesOpen) {
                        // Check for palatal expander interaction
                        if (gameState.palatalExpander && Math.random() < 0.6) {
                            message = "IGF-1 caused your sutures to fuse prematurely! Botched result.";
                            messageType = "danger";
                            gameState.negativeFacial.push("Futed Sutures");
                            attractivenessChange = -0.8;
                            healthChange = -10;
                        } else {
                            success = true;
                            // Calculate height increase based on genetic potential
                            const heightIncrease = 1 + (gameState.geneticPotential * 2); // 1-3 inches
                            gameState.height += heightIncrease;
                            message = `IGF-1 peptides increased your height by ${heightIncrease.toFixed(1)} inches.`;
                            attractivenessChange = 0.2;
                            
                            // Chance of diabetes
                            if (Math.random() < 0.3) {
                                gameState.diabetesRisk += 20;
                                addLogEntry("IGF-1 use has increased your risk of developing diabetes.", "warning");
                            }
                        }
                    } else {
                        if (Math.random() < 0.4) {
                            message = "IGF-1 use after growth plate closure caused acromegaly.";
                            messageType = "danger";
                            gameState.negativeFacial.push("Acromegaly Features");
                            attractivenessChange = -0.8;
                            healthChange = -10;
                        } else {
                            message = "IGF-1 had no effect after growth plate closure.";
                            messageType = "warning";
                        }
                    }
                    gameState.peptidesUsed.push("IGF-1");
                    break;
                case 'mk677':
                    cost = 300;
                    if (gameState.growthPlatesOpen) {
                        success = true;
                        // Calculate height increase based on genetic potential
                        const heightIncrease = 0.5 + (gameState.geneticPotential * 1); // 0.5-1.5 inches
                        gameState.height += heightIncrease;
                        gameState.boneMass += 5;
                        message = `MK-677 increased your height by ${heightIncrease.toFixed(1)} inches and improved bone mass.`;
                        attractivenessChange = 0.1;
                    } else {
                        message = "MK-677 had minimal effect after growth plate closure.";
                        messageType = "warning";
                    }
                    gameState.peptidesUsed.push("MK-677");
                    break;
                case 'hgh':
                    cost = 1000;
                    if (gameState.growthPlatesOpen) {
                        success = true;
                        // Calculate height increase based on genetic potential
                        const heightIncrease = 1.5 + (gameState.geneticPotential * 2); // 1.5-3.5 inches
                        gameState.height += heightIncrease;
                        gameState.boneMass += 8;
                        message = `HGH significantly increased your height by ${heightIncrease.toFixed(1)} inches and improved bone mass.`;
                        attractivenessChange = 0.3;
                    } else {
                        if (Math.random() < 0.6) {
                            message = "HGH use after growth plate closure caused severe acromegaly.";
                            messageType = "danger";
                            gameState.negativeFacial.push("Severe Acromegaly");
                            attractivenessChange = -1.2;
                            healthChange = -15;
                        } else {
                            message = "HGH had no significant effect after growth plate closure.";
                            messageType = "warning";
                        }
                    }
                    gameState.peptidesUsed.push("HGH");
                    break;
                case 'ghkCu':
                    cost = 200;
                    success = true;
                    if (gameState.negativeSkin.length > 0) {
                        const skinIssue = gameState.negativeSkin[Math.floor(Math.random() * gameState.negativeSkin.length)];
                        const index = gameState.negativeSkin.indexOf(skinIssue);
                        gameState.negativeSkin.splice(index, 1);
                        message = `GHK-Cu improved your skin and cleared your ${skinIssue}.`;
                    } else {
                        message = "GHK-Cu improved your skin quality.";
                    }
                    attractivenessChange = 0.2;
                    gameState.peptidesUsed.push("GHK-Cu");
                    break;
                case 'minoxidil':
                    cost = 50;
                    success = true;
                    if (gameState.negativeHealth.includes("Balding Genes")) {
                        const index = gameState.negativeHealth.indexOf("Balding Genes");
                        gameState.negativeHealth.splice(index, 1);
                        message = "Minoxidil prevented hair loss and promoted beard growth.";
                    } else {
                        message = "Minoxidil promoted beard growth.";
                    }
                    attractivenessChange = 0.2;
                    gameState.peptidesUsed.push("Minoxidil");
                    break;
                case 'meclizine':
                    cost = 400;
                    // 5% chance of working
                    if (Math.random() < 0.05 && gameState.growthPlatesOpen) {
                        success = true;
                        // Calculate height increase based on genetic potential
                        const heightIncrease = 1 + (gameState.geneticPotential * 1); // 1-2 inches
                        gameState.height += heightIncrease;
                        message = `Meclizine/Aromatase Inhibitors delayed growth plate closure and increased your height by ${heightIncrease.toFixed(1)} inches!`;
                        attractivenessChange = 0.2;
                        // Set future dementia risk
                        gameState.futureDementia = true;
                        addLogEntry("Warning: This medication may cause dementia later in life.", "warning");
                    } else {
                        message = "Meclizine/Aromatase Inhibitors had no effect on your height.";
                        messageType = "warning";
                        // Still risk dementia even if it doesn't work
                        if (Math.random() < 0.3) {
                            gameState.futureDementia = true;
                            addLogEntry("Warning: This medication may cause dementia later in life.", "warning");
                        }
                    }
                    gameState.peptidesUsed.push("Meclizine/AI");
                    break;
                case 'cjcIpa':
                    cost = 600;
                    if (gameState.growthPlatesOpen) {
                        success = true;
                        // Calculate height increase based on genetic potential
                        const heightIncrease = 0.7 + (gameState.geneticPotential * 0.8); // 0.7-1.5 inches
                        gameState.height += heightIncrease;
                        message = `CJC no DAC + IPA increased your height by ${heightIncrease.toFixed(1)} inches.`;
                        attractivenessChange = 0.15;
                    } else {
                        message = "CJC no DAC + IPA had minimal effect after growth plate closure.";
                        messageType = "warning";
                    }
                    gameState.peptidesUsed.push("CJC+IPA");
                    break;
                case 'trenbolone':
                    cost = 300;
                    // Extreme risk for teens
                    if (gameState.age < 18) {
                        message = "Trenbolone use as a teen caused permanent health damage!";
                        messageType = "danger";
                        healthChange = -30;
                        gameState.steroidDamage += 20;
                    } else {
                        if (Math.random() < 0.7) {
                            message = "Trenbolone use caused serious health complications.";
                            messageType = "danger";
                            healthChange = -20;
                            gameState.steroidDamage += 15;
                        } else {
                            success = true;
                            message = "Trenbolone increased your muscle mass but with side effects.";
                            attractivenessChange = 0.4;
                            healthChange = -10;
                            gameState.steroidDamage += 5;
                        }
                    }
                    gameState.drugsUsed.push("Trenbolone");
                    break;
                case 'anavar':
                    cost = 200;
                    // High risk for teens
                    if (gameState.age < 18) {
                        message = "Anavar use as a teen caused health problems!";
                        messageType = "danger";
                        healthChange = -20;
                        gameState.steroidDamage += 10;
                    } else {
                        if (Math.random() < 0.5) {
                            message = "Anavar use caused health complications.";
                            messageType = "danger";
                            healthChange = -15;
                            gameState.steroidDamage += 8;
                        } else {
                            success = true;
                            message = "Anavar increased your muscle mass with some side effects.";
                            attractivenessChange = 0.3;
                            healthChange = -5;
                            gameState.steroidDamage += 3;
                        }
                    }
                    gameState.drugsUsed.push("Anavar");
                    break;
            }
            
            gameState.money -= cost;
            gameState.attractiveness += attractivenessChange;
            gameState.health += healthChange;
            gameState.height += heightChange;
            gameState.boneMass = Math.min(100, gameState.boneMass + boneMassChange);
            
            // Make it extremely hard to descend below LTN
            if (gameState.attractiveness < 3.0) {
                // Build up resistance - the longer you're below LTN, the harder it is to go lower
                gameState.belowLtnResistance += 0.1;
                
                // Chance to resist further decrease based on resistance
                const resistanceChance = Math.min(0.9, gameState.belowLtnResistance * 0.3);
                if (Math.random() < resistanceChance) {
                    gameState.attractiveness = 3.0;
                    addLogEntry("You've hit the floor of Low Tier Normie. It's extremely difficult to descend further.", "warning");
                }
            } else {
                // Reset resistance when above LTN
                gameState.belowLtnResistance = 0;
            }
            
            // Make Adamlite virtually impossible to reach (only through extreme procedures)
            if (gameState.attractiveness > 8.0 && !gameState.trueAdam) {
                const adamLiteChance = 0.0005; // 0.05% chance to keep Adamlite status
                if (Math.random() > adamLiteChance) {
                    gameState.attractiveness = 7.9;
                    addLogEntry("You've reached the genetic hardcap at Chad tier. Adamlite is virtually impossible to achieve.", "warning");
                }
            }
            
            if (procedure !== 'igf1' && procedure !== 'mk677' && procedure !== 'hgh' &&
                procedure !== 'ghkCu' && procedure !== 'minoxidil' && procedure !== 'meclizine' &&
                procedure !== 'cjcIpa' && procedure !== 'trenbolone' && procedure !== 'anavar') {
                gameState.proceduresDone.push(procedure);
            }
            
            addLogEntry(message, messageType);
            updateUI();
        }

        // Eat a meal function
        function eatMeal(type, cost) {
            if (gameState.money < cost) {
                addLogEntry(`You don't have enough money for this meal.`, "warning");
                return;
            }
            
            gameState.money -= cost;
            gameState.lastMeal = 100; // Reset hunger
            
            let message = "";
            let healthChange = 0;
            let weightChange = 0;
            
            switch(type) {
                case 'basic':
                    message = "You ate a basic meal.";
                    healthChange = 2;
                    weightChange = 0.5;
                    break;
                case 'healthy':
                    message = "You ate a healthy, nutritious meal.";
                    healthChange = 5;
                    weightChange = 0.2;
                    break;
                case 'gain':
                    message = "You ate a high-calorie meal to gain weight.";
                    healthChange = 1;
                    weightChange = 2;
                    break;
                case 'lose':
                    message = "You ate a low-calorie meal to lose weight.";
                    healthChange = 3;
                    weightChange = -1;
                    break;
            }
            
            gameState.health = Math.min(100, gameState.health + healthChange);
            gameState.weight = Math.max(10, gameState.weight + weightChange);
            
            // Update BMI
            gameState.bmi = (gameState.weight / (gameState.height * gameState.height)) * 703;
            
            // Update bloating based on BMI
            if (gameState.bmi > 25 && !gameState.bloating) {
                gameState.bloating = true;
                if (!gameState.negativePhysical.includes("Bloated Face")) {
                    gameState.negativePhysical.push("Bloated Face");
                }
                addLogEntry("You've developed a bloated face from weight gain.", "warning");
            } else if (gameState.bmi <= 25 && gameState.bloating) {
                gameState.bloating = false;
                const index = gameState.negativePhysical.indexOf("Bloated Face");
                if (index !== -1) {
                    gameState.negativePhysical.splice(index, 1);
                }
                addLogEntry("Your face is less bloated after weight loss.", "success");
            }
            
            // Update obesity trait
            if (gameState.bmi > 30 && !gameState.obesity) {
                gameState.obesity = true;
                if (!gameState.negativePhysical.includes("Obesity")) {
                    gameState.negativePhysical.push("Obesity");
                }
                addLogEntry("You've become obese, which affects your appearance and health.", "danger");
                gameState.attractiveness -= 0.5;
                gameState.health -= 10;
            } else if (gameState.bmi <= 30 && gameState.obesity) {
                gameState.obesity = false;
                const index = gameState.negativePhysical.indexOf("Obesity");
                if (index !== -1) {
                    gameState.negativePhysical.splice(index, 1);
                }
                addLogEntry("You're no longer obese. Your health has improved.", "success");
                gameState.attractiveness += 0.3;
                gameState.health += 5;
            }
            
            addLogEntry(message, "success");
            updateUI();
        }

        // Ask family for money (with chance of refusal)
        function askForMoney() {
            if (gameState.familySupport <= 0) {
                addLogEntry("Your family has no more money to give you.", "warning");
                return;
            }
            
            if (gameState.age < 12) {
                addLogEntry("You're too young to ask for money directly.", "warning");
                return;
            }
            
            // Chance of refusal based on family class
            const refusalChance = familyClassModifiers[gameState.familyClass].moneyRefusalChance;
            if (Math.random() < refusalChance) {
                addLogEntry("Your parents refused to give you money.", "warning");
                return;
            }
            
            const amount = Math.min(500, gameState.familySupport);
            gameState.money += amount;
            gameState.familySupport -= amount;
            
            addLogEntry(`Your family gave you $${amount}.`, "success");
            updateUI();
        }

        // Ask family for braces
        function askForBraces() {
            if (gameState.familySupport < 3000) {
                addLogEntry("Your family cannot afford braces.", "warning");
                return;
            }
            
            if (gameState.proceduresDone.includes("braces")) {
                addLogEntry("You already have braces.", "warning");
                return;
            }
            
            // Chance based on family class
            const chance = familyClassModifiers[gameState.familyClass].bracesChance;
            if (Math.random() < chance) {
                gameState.familySupport -= 3000;
                performProcedure('braces');
                addLogEntry("Your family agreed to pay for braces.", "success");
            } else {
                addLogEntry("Your family refused to pay for braces.", "warning");
            }
        }

        // Ask family for palatal expander
        function askForExpander() {
            if (gameState.age >= 16) {
                addLogEntry("You're too old for a palatal expander to be effective.", "warning");
                return;
            }
            
            if (gameState.familySupport < 4000) {
                addLogEntry("Your family cannot afford a palatal expander.", "warning");
                return;
            }
            
            if (gameState.proceduresDone.includes("palatalExpander")) {
                addLogEntry("You already have a palatal expander.", "warning");
                return;
            }
            
            // Chance based on family class
            const chance = familyClassModifiers[gameState.familyClass].expanderChance;
            if (Math.random() < chance) {
                gameState.familySupport -= 4000;
                performProcedure('palatalExpander');
                addLogEntry("Your family agreed to pay for a palatal expander.", "success");
            } else {
                addLogEntry("Your family refused to pay for a palatal expander.", "warning");
            }
        }

        // Go on a date function
        function goOnDate() {
            if (gameState.money < 50) {
                addLogEntry("You don't have enough money to go on a date.", "warning");
                return;
            }
            
            gameState.money -= 50;
            
            // Calculate dating success based on height, attractiveness, and social status
            const heightScore = calculateHeightScore();
            const attractivenessScore = gameState.attractiveness / 10;
            const statusScore = gameState.socialStatus / 100;
            
            let successChance = 0;
            
            if (gameState.gender === "male") {
                successChance = (heightScore * 0.6) + (attractivenessScore * 0.3) + (statusScore * 0.1);
            } else {
                successChance = (heightScore * 0.3) + (attractivenessScore * 0.6) + (statusScore * 0.1);
            }
            
            // Adjust for BMI
            if (gameState.bmi < 18.5 || gameState.bmi > 25) {
                successChance *= 0.7; // 30% penalty for underweight or overweight
            }
            
            // Adjust for humor if below MTN
            const tier = getCurrentTier();
            if (tier.name.includes("Subhuman") || tier.name.includes("Low Tier Normie")) {
                successChance *= (1 + (gameState.humor / 200)); // Humor can help but not overcome looks completely
            }
            
            // Check if successful
            if (Math.random() < successChance) {
                // Create a partner
                gameState.partner = generatePartner();
                gameState.relationshipStatus = "dating";
                
                addLogEntry(`You went on a successful date with ${gameState.partner.name}! You're now dating.`, "success");
            } else {
                addLogEntry("Your date didn't go well. Maybe try improving your appearance.", "warning");
            }
            
            updateUI();
        }

        // Propose marriage function
        function proposeMarriage() {
            if (gameState.money < 500) {
                addLogEntry("You don't have enough money for a marriage proposal.", "warning");
                return;
            }
            
            gameState.money -= 500;
            
            // Marriage chance based on relationship length and compatibility
            const heightCompatibility = 1 - Math.abs((gameState.height - gameState.partner.height) / gameState.partner.height);
            const attractivenessCompatibility = 1 - Math.abs((gameState.attractiveness - gameState.partner.attractiveness) / gameState.partner.attractiveness);
            
            const compatibilityScore = (heightCompatibility + attractivenessCompatibility) / 2;
            const successChance = compatibilityScore * 0.8; // 80% of compatibility score
            
            if (Math.random() < successChance) {
                gameState.relationshipStatus = "married";
                addLogEntry(`You proposed to ${gameState.partner.name} and they said yes! You're now married.`, "success");
                
                // Reset cheating risk when getting married
                gameState.cheatingRisk = 10;
            } else {
                addLogEntry(`You proposed to ${gameState.partner.name} but they said no. The relationship ended.`, "danger");
                gameState.relationshipStatus = "single";
                gameState.partner = null;
            }
            
            updateUI();
        }

        // Have a child function
        function haveChild() {
            if (gameState.money < 1000) {
                addLogEntry("You don't have enough money to raise a child.", "warning");
                return;
            }
            
            if (gameState.relationshipStatus !== "married") {
                addLogEntry("You need to be married to have a child.", "warning");
                return;
            }
            
            gameState.money -= 1000;
            
            // Create a child with genetics from both parents
            const child = generateChild();
            gameState.children.push(child);
            
            addLogEntry(`You and ${gameState.partner.name} had a child! ${child.name} has been born.`, "success");
            
            updateUI();
        }

        // Generate a partner based on player's attributes
        function generatePartner() {
            const gender = gameState.gender === "male" ? "female" : "male";
            const names = gender === "male" ? ["James", "John", "Robert", "Michael", "William"] : ["Mary", "Jennifer", "Linda", "Elizabeth", "Susan"];
            
            // Partner height based on player height and preferences
            let height = 0;
            if (gender === "female") {
                // Women prefer men taller than them
                height = gameState.height - (Math.random() * 4 + 2); // 2-6 inches shorter
                height = Math.max(partnerPreferences.female.minHeight, Math.min(partnerPreferences.female.maxHeight, height));
            } else {
                // Men prefer women shorter than them
                height = gameState.height + (Math.random() * 4 + 2); // 2-6 inches taller
                height = Math.max(partnerPreferences.male.minHeight, Math.min(partnerPreferences.male.maxHeight, height));
            }
            
            // Partner attractiveness based on player attractiveness
            const attractiveness = gameState.attractiveness + (Math.random() * 2 - 1); // ±1 point
            const minAttractiveness = gender === "female" ? partnerPreferences.female.minAttractiveness : partnerPreferences.male.minAttractiveness;
            const cappedAttractiveness = Math.max(minAttractiveness, Math.min(10, attractiveness));
            
            return {
                name: names[Math.floor(Math.random() * names.length)],
                gender: gender,
                height: height,
                attractiveness: cappedAttractiveness,
                age: gameState.age + Math.floor(Math.random() * 5) - 2 // ±2 years
            };
        }

        // Generate a child with genetics from both parents
        function generateChild() {
            const gender = Math.random() > 0.5 ? "male" : "female";
            const names = gender === "male" ? ["James", "John", "Robert", "Michael", "William"] : ["Mary", "Jennifer", "Linda", "Elizabeth", "Susan"];
            
            // Calculate potential height using mid-parental formula
            let potentialHeight = 0;
            if (gender === "male") {
                potentialHeight = (gameState.height + gameState.partner.height + 5) / 2;
            } else {
                potentialHeight = (gameState.height + gameState.partner.height - 5) / 2;
            }
            
            // Add some genetic variation (±10%)
            potentialHeight = potentialHeight * (0.9 + Math.random() * 0.2);
            
            // Calculate potential attractiveness (average of parents ±1)
            const potentialAttractiveness = (gameState.attractiveness + gameState.partner.attractiveness) / 2 + (Math.random() * 2 - 1);
            
            return {
                name: names[Math.floor(Math.random() * names.length)],
                gender: gender,
                height: potentialHeight,
                attractiveness: Math.max(1, Math.min(10, potentialAttractiveness)),
                iqPotential: Math.floor((gameState.iqPotential + (Math.random() * 30 + 85)) / 2) // Average of player's IQ and random
            };
        }

        // Calculate height score for dating
        function calculateHeightScore() {
            if (gameState.gender === "male") {
                if (gameState.height < 66) return 0.2; // Below 5'6"
                if (gameState.height < 68) return 0.4; // 5'6" to 5'8"
                if (gameState.height < 70) return 0.6; // 5'8" to 5'10"
                if (gameState.height < 72) return 0.8; // 5'10" to 6'0"
                if (gameState.height < 74) return 0.9; // 6'0" to 6'2"
                return 1.0; // 6'2"+
            } else {
                if (gameState.height < 62) return 0.8; // Below 5'2"
                if (gameState.height < 64) return 0.9; // 5'2" to 5'4"
                if (gameState.height < 66) return 1.0; // 5'4" to 5'6"
                if (gameState.height < 68) return 0.7; // 5'6" to 5'8"
                return 0.5; // 5'8"+
            }
        }

        // Post on social media
        function postOnSocialMedia(platform) {
            // Can't post on TikTok as a newborn
            if (platform === 'tiktok' && gameState.age < 13) {
                addLogEntry("You're too young to post on TikTok.", "warning");
                return;
            }
            
            const tier = getCurrentTier();
            let message = "";
            let messageType = "info";
            
            // If below MTN but has high humor, chance to go viral instead of becoming lolcow
            if ((tier.name.includes("Subhuman") || tier.name.includes("Low Tier Normie")) &&
                gameState.humor > 70) {
                
                if (Math.random() < (gameState.humor / 100)) {
                    // Go viral due to humor
                    gameState.socialMediaStatus = "viral";
                    const newFollowers = Math.floor(Math.random() * 10000) + 5000;
                    gameState.followers += newFollowers;
                    gameState.money += newFollowers * 0.2;
                    gameState.socialStatus += 40;
                    
                    message = `Your humorous content went viral on ${platform}! Gained ${newFollowers} followers and sponsorship opportunities.`;
                    messageType = "success";
                } else {
                    // Still become lolcow but with less severity
                    gameState.socialMediaStatus = "lolcow";
                    gameState.socialStatus -= 10;
                    gameState.health -= 3;
                    
                    message = `You posted on ${platform} and became a lolcow, but your humor made it less severe.`;
                    messageType = "warning";
                }
            } else if (tier.name.includes("Subhuman") || tier.name.includes("Low Tier Normie")) {
                // Negative outcome - become a lolcow
                gameState.socialMediaStatus = "lolcow";
                gameState.socialStatus -= 20;
                gameState.health -= 5;
                
                message = `You posted on ${platform} and became a lolcow. People are making fun of your appearance.`;
                messageType = "danger";
                
                // Add negative trait if not already present
                if (!gameState.negativeHealth.includes("Depression")) {
                    gameState.negativeHealth.push("Depression");
                }
            } else if (tier.name.includes("Mid Tier Normie")) {
                // Neutral outcome
                message = `You posted on ${platform}. You got a few likes but nothing special.`;
                gameState.followers += Math.floor(Math.random() * 10) + 1;
            } else {
                // Positive outcome - chance to become influencer
                const successChance = (gameState.attractiveness - 6) * 0.2; // Higher attractiveness = better chance
                
                if (Math.random() < successChance) {
                    if (gameState.socialMediaStatus !== "viral" && gameState.attractiveness > 7.5) {
                        gameState.socialMediaStatus = "viral";
                        const newFollowers = Math.floor(Math.random() * 5000) + 1000;
                        gameState.followers += newFollowers;
                        gameState.money += newFollowers * 0.1;
                        gameState.socialStatus += 30;
                        
                        message = `You went viral on ${platform}! Gained ${newFollowers} followers and sponsorship opportunities.`;
                        messageType = "success";
                    } else {
                        gameState.socialMediaStatus = "influencer";
                        const newFollowers = Math.floor(Math.random() * 500) + 100;
                        gameState.followers += newFollowers;
                        gameState.money += newFollowers * 0.05;
                        gameState.socialStatus += 15;
                        
                        message = `You're gaining traction on ${platform}! Gained ${newFollowers} followers.`;
                        messageType = "success";
                    }
                } else {
                    const newFollowers = Math.floor(Math.random() * 100) + 10;
                    gameState.followers += newFollowers;
                    message = `You posted on ${platform}. Gained ${newFollowers} followers.`;
                }
            }
            
            addLogEntry(message, messageType);
            updateUI();
        }

        // Study function with IQ-based efficiency
        function study(level) {
            let cost = 0;
            let iqGain = 0;
            let message = "";
            
            switch(level) {
                case 'elementary':
                    cost = 10;
                    break;
                case 'middle':
                    cost = 15;
                    break;
                case 'highschool':
                    cost = 20;
                    break;
                case 'college':
                    cost = 30;
                    break;
            }
            
            if (gameState.money < cost) {
                addLogEntry(`You don't have enough money to pay for ${level} school materials.`, "warning");
                return;
            }
            
            gameState.money -= cost;
            
            // Calculate study effectiveness based on IQ
            let efficiency = 0.2; // Default for very low IQ
            if (gameState.iq >= 115) efficiency = 1.0;
            else if (gameState.iq >= 100) efficiency = 0.8;
            else if (gameState.iq >= 85) efficiency = 0.5;
            
            // Calculate IQ gain based on efficiency and school level
            iqGain = Math.floor((Math.random() * 3 + 1) * efficiency);
            
            if (gameState.iq + iqGain > gameState.iqPotential) {
                iqGain = gameState.iqPotential - gameState.iq;
            }
            
            if (iqGain > 0) {
                gameState.iq += iqGain;
                message = `You studied at ${level} level. Your IQ increased by ${iqGain} points.`;
                
                if (efficiency < 0.3) {
                    message += " It was difficult for you.";
                } else if (efficiency > 0.8) {
                    message += " You learned quickly.";
                }
            } else {
                message = `You studied at ${level} level but reached your genetic potential.`;
            }
            
            addLogEntry(message, "success");
            updateUI();
        }

        // Apply for job
        function applyForJob(jobId) {
            const job = jobs.find(j => j.id === jobId);
            
            if (!job) return;
            
            if (gameState.iq < job.iqReq) {
                addLogEntry(`You don't meet the IQ requirements for ${job.name}.`, "warning");
                return;
            }
            
            // Check for degree requirements for high-level jobs
            if (job.degreeReq && gameState.schoolLevel !== "college") {
                addLogEntry(`You need a college degree to become a ${job.name}.`, "warning");
                return;
            }
            
            gameState.currentJob = jobId;
            addLogEntry(`You got a job as a ${job.name}. You'll earn $${job.pay}/hour.`, "success");
            updateUI();
            
            // Set up job income
            if (gameState.jobInterval) {
                clearInterval(gameState.jobInterval);
            }
            
            gameState.jobInterval = setInterval(() => {
                if (gameState.currentJob === jobId) {
                    gameState.money += job.pay;
                    addLogEntry(`You worked as a ${job.name} and earned $${job.pay}.`, "success");
                    updateUI();
                } else {
                    clearInterval(gameState.jobInterval);
                }
            }, 30000); // Every 30 seconds
        }

        // Age up function
        function ageUp() {
            if (!gameState.alive) return;
            
            gameState.age++;
            
            // Update school level based on age
            if (gameState.age < 12) {
                gameState.schoolLevel = "elementary";
            } else if (gameState.age < 15) {
                gameState.schoolLevel = "middle";
            } else if (gameState.age < 18) {
                gameState.schoolLevel = "highschool";
            } else {
                gameState.schoolLevel = "college";
            }
            
            // Update weight based on age
            if (gameState.age in weightPercentiles[gameState.gender]) {
                const baseWeight = weightPercentiles[gameState.gender][gameState.age];
                const geneticModifier = (gameState.geneticPotential - 0.5) * 20;
                const randomVariation = (Math.random() * 10) - 5; // -5 to +5 pounds
                gameState.weight = baseWeight + geneticModifier + randomVariation;
                
                // Adjust for starving
                if (gameState.starving) {
                    gameState.weight -= 5;
                    gameState.starvationEffects += 1;
                    
                    if (gameState.starvationEffects > 5) {
                        addLogEntry("Severe starvation is affecting your health.", "danger");
                        gameState.health -= 10;
                        
                        if (gameState.health < 20) {
                            addLogEntry("Your organs are failing from starvation!", "danger");
                            gameState.health -= 10;
                        }
                    }
                }
            }
            
            // Update BMI
            gameState.bmi = (gameState.weight / (gameState.height * gameState.height)) * 703;
            
            // Update bloating based on BMI
            if (gameState.bmi > 25 && !gameState.bloating) {
                gameState.bloating = true;
                if (!gameState.negativePhysical.includes("Bloated Face")) {
                    gameState.negativePhysical.push("Bloated Face");
                }
                addLogEntry("You've developed a bloated face from weight gain.", "warning");
            } else if (gameState.bmi <= 25 && gameState.bloating) {
                gameState.bloating = false;
                const index = gameState.negativePhysical.indexOf("Bloated Face");
                if (index !== -1) {
                    gameState.negativePhysical.splice(index, 1);
                }
                addLogEntry("Your face is less bloated after weight loss.", "success");
            }
            
            // Update obesity trait
            if (gameState.bmi > 30 && !gameState.obesity) {
                gameState.obesity = true;
                if (!gameState.negativePhysical.includes("Obesity")) {
                    gameState.negativePhysical.push("Obesity");
                }
                addLogEntry("You've become obese, which affects your appearance and health.", "danger");
                gameState.attractiveness -= 0.5;
                gameState.health -= 10;
            } else if (gameState.bmi <= 30 && gameState.obesity) {
                gameState.obesity = false;
                const index = gameState.negativePhysical.indexOf("Obesity");
                if (index !== -1) {
                    gameState.negativePhysical.splice(index, 1);
                }
                addLogEntry("You're no longer obese. Your health has improved.", "success");
                gameState.attractiveness += 0.3;
                gameState.health += 5;
            }
            
            // Hair grows over time
            if (gameState.age < 50) { // Hair stops growing as much after 50
                gameState.hairLength += Math.random() * 2;
                
                // Natural length limit based on hair type
                const maxLengths = {
                    "Straight": 100,
                    "Wavy": 90,
                    "Curly": 80,
                    "Coarse": 70,
                    "Afro": 60,
                    "Coily": 50,
                    "Kinky": 40,
                    "Varies": 80
                };
                
                const maxLength = maxLengths[gameState.hairType] || 80;
                gameState.hairLength = Math.min(maxLength, gameState.hairLength);
            }
            
            // Check for cheating
            if (gameState.age >= 18 && gameState.relationshipStatus === "married") {
                checkForCheating();
            }
            
            // Update humor based on social status and IQ
            if (gameState.socialStatus > 70 && gameState.iq > 110) {
                gameState.humor += 5;
            } else if (gameState.socialStatus > 50 && gameState.iq > 90) {
                gameState.humor += 2;
            }
            
            gameState.humor = Math.min(100, gameState.humor);
            
            // Apply hardcap at 18 if not True Adam or Adamlite
            if (gameState.age === 18 && !gameState.trueAdam && gameState.baseAttractiveness < 8) {
                const tier = getCurrentTier();
                if (tier.min > 5.9) {
                    gameState.attractiveness = 5.9;
                    gameState.hardcapReached = true;
                    addLogEntry("You've reached the genetic hardcap at High High Tier Normie.", "warning");
                }
                
                // Close growth plates
                gameState.growthPlatesOpen = false;
                addLogEntry("Your growth plates have closed. No more natural height increase.", "warning");
            }
            
            // Update height based on biological growth patterns
            if (gameState.age in heightPercentiles[gameState.gender] && gameState.growthPlatesOpen) {
                const baseHeight = heightPercentiles[gameState.gender][gameState.age];
                const geneticModifier = (gameState.geneticPotential - 0.5) * 8;
                const raceModifier = (raceModifiers[gameState.race].heightPotential - 0.5) * 4;
                const randomVariation = (Math.random() * 4) - 2; // -2 to +2 inches
                gameState.height = baseHeight + geneticModifier + raceModifier + randomVariation;
            }
            
            // Increase IQ with age (up to potential)
            if (gameState.age < 25 && gameState.iq < gameState.iqPotential) {
                gameState.iq += Math.floor(Math.random() * 3);
                if (gameState.iq > gameState.iqPotential) {
                    gameState.iq = gameState.iqPotential;
                }
            }
            
            // Random events based on age
            handleAgeEvents();
            
            // Small chance of random events
            if (Math.random() > 0.7) {
                handleRandomEvents();
            }
            
            // Degeneration events that can decrease attractiveness
            handleDegenerationEvents();
            
            // Update social status based on attractiveness
            updateSocialStatus();
            
            // Update SMV based on various factors
            updateSMV();
            
            updateUI();
        }

        // Handle age-specific events
        function handleAgeEvents() {
            if (gameState.age === 5) {
                addLogEntry("You started school. Other kids are noticing your appearance.");
                
                // Bullying based on attractiveness
                if (gameState.attractiveness < 4) {
                    addLogEntry("You're being bullied for your looks.", "danger");
                    gameState.health -= 10;
                    gameState.socialStatus -= 20;
                    gameState.attractiveness -= 0.2;
                } else if (gameState.attractiveness > 5) {
                    addLogEntry("Other kids like you because of your looks.", "success");
                    gameState.socialStatus += 15;
                }
            }
            
            if (gameState.age === 11) {
                addLogEntry("You're now 11 years old. DIY filler options are available.");
            }
            
            if (gameState.age === 12) {
                addLogEntry("You're now 12 years old. You can now use peptides and ask your parents for money directly.");
            }
            
            if (gameState.age === 13) {
                addLogEntry("You're a teenager now. Appearance matters more than ever.");
                
                // Acne development
                if (gameState.negativeHealth.includes("Acne-Prone Skin") && Math.random() > 0.3) {
                    if (!gameState.negativeSkin.includes("Cystic Acne")) {
                        gameState.negativeSkin.push("Cystic Acne");
                    }
                    addLogEntry("You've developed severe cystic acne.", "warning");
                    gameState.attractiveness -= 0.5;
                } else if (Math.random() > 0.5) {
                    if (!gameState.negativeSkin.includes("Acne")) {
                        gameState.negativeSkin.push("Acne");
                    }
                    addLogEntry("You've developed some acne.", "warning");
                    gameState.attractiveness -= 0.2;
                }
                
                // Can now join .org if LTN
                const tier = getCurrentTier();
                if (tier.name.includes("Low Tier Normie")) {
                    addLogEntry("You've discovered the .org forum and can now join.", "success");
                }
                
                // Can now post on TikTok
                addLogEntry("You're now old enough to post on TikTok.");
            }
            
            if (gameState.age === 16) {
                addLogEntry("You can now get a part-time job.");
                // Palatal expander becomes ineffective
                if (gameState.palatalExpander) {
                    addLogEntry("Your palatal expander is no longer effective at your age.", "warning");
                }
            }
            
            if (gameState.age === 18) {
                addLogEntry("You're now an adult. Cosmetic surgery options are available.");
            }
            
            if (gameState.age === 30) {
                addLogEntry("You're 30 now. Aging effects are starting to show.");
                gameState.attractiveness -= 0.2;
                
                // Chance of hair loss
                if (gameState.negativeHealth.includes("Balding Genes") && Math.random() > 0.5) {
                    addLogEntry("You're starting to lose your hair.", "warning");
                    gameState.attractiveness -= 0.3;
                }
                
                // Chance of diabetes from IGF-1 use
                if (gameState.diabetesRisk > 0 && Math.random() < gameState.diabetesRisk / 100) {
                    addLogEntry("You've developed diabetes from past peptide use.", "danger");
                    gameState.health -= 15;
                    gameState.negativeHealth.push("Diabetes");
                }
            }
            
            if (gameState.age > 40) {
                // Aging effects accelerate
                const ageEffect = (gameState.age - 40) * 0.05;
                gameState.attractiveness -= ageEffect;
                
                if (Math.random() > 0.8) {
                    addLogEntry("Aging is taking a toll on your appearance.", "warning");
                }
                
                // Risk of dementia from aromatase inhibitors
                if (gameState.futureDementia && Math.random() < 0.1) {
                    addLogEntry("You're experiencing cognitive decline from past drug use.", "danger");
                    gameState.iq -= 10;
                    gameState.health -= 5;
                }
                
                // Risk from steroid damage
                if (gameState.steroidDamage > 0 && Math.random() < 0.2) {
                    const damageEffect = gameState.steroidDamage * 0.1;
                    addLogEntry("Past steroid use is causing health problems.", "danger");
                    gameState.health -= damageEffect;
                }
            }
            
            if (gameState.age > 70) {
                // Health decline in old age
                const healthDecline = Math.random() * 10;
                gameState.health -= healthDecline;
                
                if (gameState.health < 30) {
                    addLogEntry("Your health is deteriorating.", "danger");
                }
                
                // Chance of death increases with age and poor health
                if (gameState.health < 10 && Math.random() > 0.7) {
                    gameState.alive = false;
                    addLogEntry("You have died due to poor health. Game over.", "danger");
                    
                    // If you have children, offer to continue as one of them
                    if (gameState.children.length > 0) {
                        setTimeout(showGenerationSelection, 3000);
                    } else {
                        setTimeout(restartGame, 3000);
                    }
                }
            }
        }

        // Show generation selection after death
        function showGenerationSelection() {
            generationModal.style.display = 'flex';
            childrenSelection.innerHTML = '';
            
            gameState.children.forEach((child, index) => {
                const childEl = document.createElement('div');
                childEl.className = 'child-item';
                childEl.innerHTML = `
                    <div>${child.name} (${child.gender}), ${formatHeight(child.height)} tall</div>
                    <div>Attractiveness: ${child.attractiveness.toFixed(1)} | IQ Potential: ${child.iqPotential}</div>
                    <button class="generation-btn" data-index="${index}">Play as ${child.name}</button>
                `;
                childrenSelection.appendChild(childEl);
            });
            
            // Add event listeners to generation buttons
            document.querySelectorAll('.generation-btn').forEach(btn => {
                btn.addEventListener('click', function() {
                    const index = parseInt(this.getAttribute('data-index'));
                    continueAsChild(index);
                });
            });
        }

        // Continue the game as a child
        function continueAsChild(index) {
            const child = gameState.children[index];
            
            // Create new game state based on child
            gameState.age = 20; // Start as young adult
            gameState.height = child.height;
            gameState.attractiveness = child.attractiveness;
            gameState.iqPotential = child.iqPotential;
            gameState.iq = Math.floor(child.iqPotential * 0.8);
            gameState.gender = child.gender;
            gameState.health = 80;
            gameState.money = 1000; // Small inheritance
            gameState.socialStatus = 50;
            gameState.relationshipStatus = "single";
            gameState.partner = null;
            gameState.children = [];
            gameState.alive = true;
            
            // Reset some properties
            gameState.growthPlatesOpen = false;
            gameState.hardcapReached = true;
            gameState.trueAdam = false;
            
            generationModal.style.display = 'none';
            
            addLogEntry(`You continue your life as ${child.name}, the next generation.`, "success");
            updateUI();
        }

        // Handle cheating mechanics
        function checkForCheating() {
            if (gameState.relationshipStatus !== "married") return;
            
            // Base chance of cheating based on relationship quality
            let cheatChance = 0.1;
            
            // Increased chance if partner is significantly more attractive
            if (gameState.partner.attractiveness > gameState.attractiveness + 1) {
                cheatChance += 0.2;
            }
            
            // Increased chance if player is neglecting relationship
            cheatChance += (100 - gameState.socialStatus) * 0.001;
            
            // Check if partner cheats
            if (Math.random() < cheatChance) {
                gameState.partnerCheating = true;
                gameState.cheatingRisk = 100;
                addLogEntry("You suspect your partner might be cheating on you.", "danger");
            }
            
            // Update cheating risk
            gameState.cheatingRisk = Math.min(100, gameState.cheatingRisk + (cheatChance * 10));
            updateUI();
        }

        // Initiate divorce
        function initiateDivorce() {
            if (gameState.relationshipStatus !== "married") return;
            
            gameState.relationshipStatus = "single";
            addLogEntry("You divorced your partner.", "danger");
            
            // Financial consequences
            const settlement = Math.floor(gameState.money * 0.3);
            gameState.money -= settlement;
            
            if (settlement > 0) {
                addLogEntry(`You paid $${settlement} in the divorce settlement.`, "warning");
            }
            
            gameState.partner = null;
            gameState.partnerCheating = false;
            gameState.cheatingRisk = 0;
            updateUI();
        }

        // Confront partner about cheating
        function confrontCheating() {
            if (!gameState.partnerCheating) return;
            
            // 50% chance of confession
            if (Math.random() > 0.5) {
                addLogEntry("Your partner admitted to cheating. The relationship is over.", "danger");
                initiateDivorce();
            } else {
                addLogEntry("Your partner denied cheating. You're not sure what to believe.", "warning");
                gameState.cheatingRisk = 50;
            }
            
            gameState.partnerCheating = false;
            updateUI();
        }

        // Select an archetype
        function selectArchetype(archetype) {
            if (!canSelectArchetype(archetype)) {
                addLogEntry("You don't meet the requirements for this archetype.", "warning");
                return;
            }
            
            gameState.currentArchetype = archetype;
            
            // Apply archetype benefits
            switch(archetype) {
                case 'prettyBoy':
                    gameState.attractiveness += 0.3;
                    gameState.socialStatus += 15;
                    break;
                
                case 'slenderTriad':
                    gameState.attractiveness += 0.4;
                    gameState.socialStatus += 10;
                    break;
                
                case 'ogre':
                    gameState.attractiveness += 0.5;
                    gameState.socialStatus += 5;
                    break;
                
                case 'asianBaddie':
                case 'latinaBaddie':
                case 'baddie':
                    gameState.attractiveness += 0.4;
                    gameState.socialStatus += 20;
                    break;
            }
            
            addLogEntry(`You've adopted the ${archetype} archetype.`, "success");
            updateUI();
        }

        // Get a haircut
        function getHaircut(type) {
            let cost = type === 'basic' ? 30 : 100;
            
            if (gameState.money < cost) {
                addLogEntry(`You don't have enough money for this haircut.`, "warning");
                return;
            }
            
            gameState.money -= cost;
            
            if (type === 'basic') {
                gameState.hairHealth += 5;
                addLogEntry("You got a basic haircut. Your hair looks neat.", "success");
            } else {
                gameState.hairHealth += 10;
                gameState.attractiveness += 0.2;
                addLogEntry("You got a premium hairstyle. You look more attractive.", "success");
            }
            
            gameState.hairHealth = Math.min(100, gameState.hairHealth);
            updateUI();
        }

        // Set a specific hairstyle
        function setHairstyle(style) {
            const costs = {
                dreadlocks: 200,
                braids: 150,
                twists: 180,
                undercut: 60
            };
            
            const cost = costs[style];
            
            if (gameState.money < cost) {
                addLogEntry(`You don't have enough money for this style.`, "warning");
                return;
            }
            
            // Check if hairstyle is compatible with hair type
            if (!isHairstyleCompatible(style)) {
                addLogEntry(`This hairstyle is not compatible with your hair type and may cause damage.`, "warning");
                
                if (Math.random() > 0.5) {
                    gameState.hairHealth -= 20;
                    addLogEntry(`The ${style} damaged your hair.`, "danger");
                }
            }
            
            gameState.money -= cost;
            gameState.hairStyle = style;
            
            // Style-specific effects
            if (style === 'dreadlocks' || style === 'braids' || style === 'twists') {
                gameState.attractiveness += 0.3;
            } else {
                gameState.attractiveness += 0.2;
            }
            
            addLogEntry(`You got ${style} hairstyle.`, "success");
            updateUI();
        }

        // Check if hairstyle is compatible with hair type
        function isHairstyleCompatible(style) {
            // Dreadlocks, braids, and twists work best on Afro-textured hair
            if (style === 'dreadlocks' || style === 'braids' || style === 'twists') {
                return gameState.hairType === "Afro" ||
                       gameState.hairType === "Coily" ||
                       gameState.hairType === "Kinky";
            }
            
            // Other styles work on most hair types
            return true;
        }

        // Handle random events that can decrease attractiveness
        function handleDegenerationEvents() {
            // Poor health can decrease attractiveness
            if (gameState.health < 50 && Math.random() > 0.7) {
                addLogEntry("Poor health is affecting your appearance.", "warning");
                gameState.attractiveness -= 0.1;
            }
            
            // Negative traits can worsen over time
            if (gameState.negativeFacial.length > 0 && Math.random() > 0.8) {
                const trait = gameState.negativeFacial[Math.floor(Math.random() * gameState.negativeFacial.length)];
                addLogEntry(`Your ${trait} is becoming more pronounced.`, "warning");
                gameState.attractiveness -= 0.15;
            }
            
            // Poor lifestyle choices can decrease attractiveness
            if (gameState.money < 20 && Math.random() > 0.9) {
                addLogEntry("Poor nutrition is affecting your appearance.", "warning");
                gameState.attractiveness -= 0.1;
                gameState.health -= 5;
            }
            
            // Injuries can decrease attractiveness
            if (Math.random() > 0.95) {
                addLogEntry("You suffered a minor injury that slightly affected your appearance.", "warning");
                gameState.attractiveness -= 0.2;
                gameState.health -= 5;
            }
            
            // Starvation effects
            if (gameState.starving) {
                gameState.lastMeal -= 10;
                if (gameState.lastMeal <= 0) {
                    addLogEntry("You're starving! Your health is deteriorating.", "danger");
                    gameState.health -= 5;
                    gameState.attractiveness -= 0.1;
                    gameState.lastMeal = 0;
                }
            }
        }

        // Handle random events
        function handleRandomEvents() {
            const events = [
                {
                    message: "You found $50 on the street.",
                    effect: () => gameState.money += 50
                },
                {
                    message: "You caught a cold. Health decreased slightly.",
                    effect: () => {
                        gameState.health -= 5;
                        if (gameState.health < 40) {
                            gameState.attractiveness -= 0.1;
                        }
                    }
                },
                {
                    message: "You read a book. IQ increased slightly.",
                    effect: () => {
                        if (gameState.iq < gameState.iqPotential) {
                            gameState.iq += 2;
                            if (gameState.iq > gameState.iqPotential) {
                                gameState.iq = gameState.iqPotential;
                            }
                        }
                    }
                },
                {
                    message: "You've been working out. Attractiveness increased slightly.",
                    effect: () => gameState.attractiveness += 0.1
                },
                {
                    message: "You developed a bad habit of mouth breathing.",
                    effect: () => {
                        if (!gameState.negativeFacial.includes("Malocclusion")) {
                            gameState.negativeFacial.push("Malocclusion");
                            addLogEntry("Mouth breathing has caused malocclusion.", "warning");
                            gameState.attractiveness -= 0.3;
                        }
                    }
                },
                {
                    message: "You spent time in the sun without protection.",
                    effect: () => {
                        gameState.health -= 3;
                        if (Math.random() > 0.7) {
                            addLogEntry("Sun damage has aged your skin prematurely.", "warning");
                            gameState.attractiveness -= 0.2;
                        }
                    }
                },
                {
                    message: "You've been stressed lately. It's affecting your appearance.",
                    effect: () => {
                        gameState.health -= 3;
                        gameState.attractiveness -= 0.1;
                    }
                },
                {
                    message: "Poor sleep quality is affecting your appearance.",
                    effect: () => {
                        gameState.health -= 2;
                        gameState.attractiveness -= 0.1;
                    }
                }
            ];
            
            const event = events[Math.floor(Math.random() * events.length)];
            addLogEntry(event.message);
            event.effect();
        }

        // Update social status based on attractiveness
        function updateSocialStatus() {
            if (gameState.attractiveness < 3) {
                gameState.socialStatus -= 5;
            } else if (gameState.attractiveness < 4) {
                gameState.socialStatus -= 2;
            } else if (gameState.attractiveness > 6) {
                gameState.socialStatus += 5;
            } else if (gameState.attractiveness > 5) {
                gameState.socialStatus += 2;
            }
            
            // Ensure social status stays within bounds
            gameState.socialStatus = Math.max(0, Math.min(100, gameState.socialStatus));
            
            // Update status text
            if (gameState.socialStatus >= 80) {
                gameState.status = "Popular";
            } else if (gameState.socialStatus >= 60) {
                gameState.status = "Liked";
            } else if (gameState.socialStatus >= 40) {
                gameState.status = "Neutral";
            } else if (gameState.socialStatus >= 20) {
                gameState.status = "Disliked";
            } else {
                gameState.status = "Bullied";
            }
        }

        // Update SMV based on various factors
        function updateSMV() {
            // Base SMV is attractiveness
            gameState.smv = gameState.attractiveness;
            
            // Adjust based on height
            if (gameState.height >= 72) { // 6'0"
                gameState.smv += 1;
            } else if (gameState.height < 67) { // 5'7"
                gameState.smv -= 1;
            }
            
            // Adjust based on race
            const raceMod = raceModifiers[gameState.race];
            gameState.smv += (raceMod.boneStructure + raceMod.skinQuality - 1) * 0.5;
            
            // Ensure SMV doesn't go below 1 or above 10
            gameState.smv = Math.max(1, Math.min(10, gameState.smv));
        }

        // Join .org forum
        function joinOrg() {
            if (gameState.age < 13) {
                addLogEntry("You must be at least 13 years old to join .org.", "warning");
                return;
            }
            
            gameState.onForum = true;
            gameState.orgStatus = "gray";
            addLogEntry("You've joined the .org forum. Your status is now 'Gray'.", "success");
            updateUI();
        }

        // Perform forum action
        function forumAction(action) {
            let message = "";
            let messageType = "info";
            let repChange = 0;
            
            switch(action) {
                case 'postThread':
                    if (Math.random() < 0.7) {
                        message = "Your thread was well-received on the forum.";
                        repChange = 10;
                    } else {
                        message = "Your thread was criticized on the forum.";
                        repChange = -5;
                    }
                    break;
                case 'comment':
                    message = "You commented on a thread.";
                    repChange = 2;
                    break;
                case 'shareExperience':
                    if (Math.random() < 0.6) {
                        message = "You shared your looksmaxxing experience. Others found it helpful.";
                        repChange = 15;
                    } else {
                        message = "You shared your looksmaxxing experience. Some questioned your methods.";
                        repChange = -3;
                    }
                    break;
                case 'askAdvice':
                    message = "You asked for advice on the forum.";
                    repChange = 5;
                    break;
            }
            
            gameState.forumReputation += repChange;
            
            // Update .org status based on reputation
            if (gameState.forumReputation >= 200) {
                gameState.orgStatus = "orgmaster";
            } else if (gameState.forumReputation >= 100) {
                gameState.orgStatus = "contributor";
            } else if (gameState.forumReputation >= 50) {
                gameState.orgStatus = "known";
            }
            
            addLogEntry(message, repChange >= 0 ? "success" : "warning");
            updateUI();
        }

        // Skincare routine
        function doSkincare() {
            if (gameState.money < 50) return;
            
            gameState.money -= 50;
            
            // Remove acne if present
            const acneIndex = gameState.negativeSkin.indexOf("Acne");
            const cysticAcneIndex = gameState.negativeSkin.indexOf("Cystic Acne");
            
            if (cysticAcneIndex !== -1 && Math.random() > 0.7) {
                gameState.negativeSkin.splice(cysticAcneIndex, 1);
                addLogEntry("Skincare routine improved your cystic acne.", "success");
                gameState.attractiveness += 0.4;
            } else if (acneIndex !== -1 && Math.random() > 0.5) {
                gameState.negativeSkin.splice(acneIndex, 1);
                addLogEntry("Skincare routine cleared your acne.", "success");
                gameState.attractiveness += 0.3;
            } else {
                addLogEntry("Skincare routine improved your complexion.", "success");
                gameState.attractiveness += 0.1;
            }
            
            updateUI();
        }

        // Gym workout
        function doGymWorkout() {
            if (gameState.money < 30 || gameState.gymAscension >= 2) return;
            
            gameState.money -= 30;
            
            // Improve body fat distribution
            const fatIndex = gameState.negativePhysical.indexOf("Poor Body Fat Distribution");
            if (fatIndex !== -1 && Math.random() > 0.5) {
                gameState.negativePhysical.splice(fatIndex, 1);
                addLogEntry("Regular workouts improved your body fat distribution.", "success");
                gameState.attractiveness += 0.3;
            }
            
            // Chance to widen clavicles
            if (gameState.negativePhysical.includes("Narrow Clavicles") && Math.random() > 0.8) {
                const clavicleIndex = gameState.negativePhysical.indexOf("Narrow Clavicles");
                gameState.negativePhysical.splice(clavicleIndex, 1);
                gameState.physicalTraits.push("Wide Clavicles");
                addLogEntry("Your clavicles widened from weight training.", "success");
                gameState.attractiveness += 0.4;
            }
            
            // Gym can only ascend you 1-2 tiers based on your base
            const baseTierIndex = tiers.findIndex(t => gameState.baseAttractiveness >= t.min && gameState.baseAttractiveness <= t.max);
            const maxAscension = Math.min(2, tiers.length - baseTierIndex - 1);
            
            if (gameState.gymAscension < maxAscension) {
                gameState.attractiveness += 0.3;
                gameState.gymAscension++;
                addLogEntry("Gym workout improved your physique.", "success");
            } else {
                addLogEntry("You've reached your maximum genetic potential from gym workouts.", "warning");
            }
            
            gameState.health += 2;
            updateUI();
        }

        // Study
        function doStudy() {
            if (gameState.money < 20 || gameState.iq >= gameState.iqPotential) return;
            
            gameState.money -= 20;
            gameState.iq += Math.floor(Math.random() * 3) + 1;
            if (gameState.iq > gameState.iqPotential) {
                gameState.iq = gameState.iqPotential;
            }
            addLogEntry("You spent time studying. Your IQ increased.", "success");
            updateUI();
        }

        // Work
        function doWork() {
            if (gameState.age < 16) {
                addLogEntry("You're too young for a job.", "warning");
                return;
            }
            
            const earnings = Math.floor(Math.random() * 50) + 75;
            gameState.money += earnings;
            addLogEntry(`You worked a part-time job and earned $${earnings}.`, "success");
            updateUI();
        }

        // Frauding (makeup, height boosts, etc.)
        function doFrauding() {
            if (gameState.money < 20) return;
            
            gameState.money -= 20;
            
            const frauds = [
                "You used makeup to enhance your features.",
                "You wore height-boosting insoles.",
                "You used clothing to create a more attractive silhouette.",
                "You got a flattering haircut.",
                "You practiced good posture to appear taller."
            ];
            
            const fraud = frauds[Math.floor(Math.random() * frauds.length)];
            addLogEntry(fraud, "success");
            
            // Temporary attractiveness boost
            gameState.attractiveness += 0.3;
            
            updateUI();
            
            // Fraud effects are temporary - reset after some time
            setTimeout(() => {
                gameState.attractiveness -= 0.3;
                addLogEntry("The effects of your frauding have worn off.", "warning");
                updateUI();
            }, 3000);
        }

        // DIY Filler
        function doDiyFiller() {
            if (gameState.money < 100 || gameState.age < 11) return;
            
            gameState.money -= 100;
            
            if (Math.random() < 0.7) {
                addLogEntry("DIY filler attempt failed and caused complications.", "danger");
                gameState.health -= 10;
                gameState.attractiveness -= 0.3;
                
                if (Math.random() < 0.3) {
                    addLogEntry("DIY filler caused a serious infection.", "danger");
                    gameState.health -= 15;
                }
            } else {
                addLogEntry("DIY filler provided a minor improvement.", "success");
                gameState.attractiveness += 0.2;
                
                // Temporary effect
                setTimeout(() => {
                    gameState.attractiveness -= 0.15;
                    addLogEntry("Your DIY filler has dissolved.", "warning");
                    updateUI();
                }, 4000);
            }
            
            updateUI();
        }

        // Restart game
        function restartGame() {
            if (confirm("Start a new life?")) {
                location.reload();
            }
        }

        // Rope (restart) function
        function rope() {
            if (confirm("Are you sure you want to end your life? All progress will be lost.")) {
                restartGame();
            }
        }

        // Initialize the game
        initGame();
    </script>
</body>
</html>
 
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Blackpill Sim 2026</title>
    <style>
        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        }
       
        body {
            background: linear-gradient(135deg, #0f172a, #1e293b);
            color: #e2e8f0;
            line-height: 1.6;
            padding: 20px;
            min-height: 100vh;
        }
       
        .container {
            max-width: 1200px;
            margin: 0 auto;
            background: rgba(30, 41, 59, 0.8);
            border-radius: 10px;
            padding: 20px;
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
        }
       
        header {
            text-align: center;
            margin-bottom: 20px;
            padding-bottom: 15px;
            border-bottom: 1px solid #334155;
        }
       
        h1 {
            color: #f8fafc;
            font-size: 2.5rem;
            margin-bottom: 10px;
            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
        }
       
        .disclaimer {
            background: rgba(220, 38, 38, 0.2);
            padding: 15px;
            border-radius: 8px;
            margin: 15px 0;
            border-left: 4px solid #dc2626;
            font-size: 0.9rem;
        }
       
        .stats-container {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 15px;
            margin-bottom: 20px;
        }
       
        .stat-box {
            background: rgba(15, 23, 42, 0.7);
            padding: 15px;
            border-radius: 8px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        }
       
        .stat-title {
            font-size: 1rem;
            color: #94a3b8;
            margin-bottom: 5px;
        }
       
        .stat-value {
            font-size: 1.4rem;
            font-weight: bold;
            color: #f8fafc;
        }
       
        .trait-list {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin: 10px 0;
        }
       
        .trait {
            background: rgba(30, 64, 175, 0.3);
            padding: 5px 10px;
            border-radius: 20px;
            font-size: 0.9rem;
        }
       
        .negative-trait {
            background: rgba(220, 38, 38, 0.3);
        }
       
        .actions-container {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 15px;
            margin: 20px 0;
        }
       
        .action-btn {
            background: #3b82f6;
            color: white;
            border: none;
            padding: 12px;
            border-radius: 8px;
            cursor: pointer;
            font-weight: bold;
            transition: all 0.3s ease;
        }
       
        .action-btn:hover {
            background: #2563eb;
            transform: translateY(-2px);
        }
       
        .action-btn:disabled {
            background: #64748b;
            cursor: not-allowed;
            transform: none;
        }
       
        .log-container {
            background: rgba(15, 23, 42, 0.7);
            border-radius: 8px;
            padding: 15px;
            margin-top: 20px;
            max-height: 300px;
            overflow-y: auto;
        }
       
        .log-entry {
            margin-bottom: 8px;
            padding-bottom: 8px;
            border-bottom: 1px solid #334155;
        }
       
        .log-entry:last-child {
            border-bottom: none;
        }
       
        .age-badge {
            display: inline-block;
            background: #8b5cf6;
            padding: 3px 8px;
            border-radius: 12px;
            font-size: 0.8rem;
            margin-right: 8px;
        }
       
        .success {
            color: #10b981;
        }
       
        .danger {
            color: #ef4444;
        }
       
        .warning {
            color: #f59e0b;
        }
       
        .tier-badge {
            display: inline-block;
            padding: 5px 12px;
            border-radius: 20px;
            font-weight: bold;
            margin-top: 5px;
        }
       
        .subhuman { background: #dc2626; color: white; }
        .ltn { background: #ea580c; color: white; }
        .mtn { background: #d97706; color: white; }
        .htn { background: #65a30d; color: white; }
        .chadlite { background: #16a34a; color: white; }
        .chad { background: #059669; color: white; }
        .trueadam { background: linear-gradient(45deg, #06b6d4, #8b5cf6); color: white; }
       
        .progress-bar {
            height: 8px;
            background: #334155;
            border-radius: 4px;
            margin-top: 5px;
            overflow: hidden;
        }
       
        .progress-fill {
            height: 100%;
            background: #3b82f6;
            border-radius: 4px;
        }
       
        footer {
            text-align: center;
            margin-top: 20px;
            padding-top: 15px;
            border-top: 1px solid #334155;
            font-size: 0.9rem;
            color: #94a3b8;
        }
       
        .tab-container {
            display: flex;
            gap: 10px;
            margin-bottom: 15px;
            flex-wrap: wrap;
        }
       
        .tab {
            padding: 10px 15px;
            background: #334155;
            border-radius: 5px;
            cursor: pointer;
            white-space: nowrap;
        }
       
        .tab.active {
            background: #3b82f6;
        }
       
        .tab-content {
            display: none;
        }
       
        .tab-content.active {
            display: block;
        }
       
        .shop-item {
            display: flex;
            justify-content: space-between;
            padding: 10px;
            background: rgba(15, 23, 42, 0.7);
            margin-bottom: 5px;
            border-radius: 5px;
            align-items: center;
        }
       
        .shop-item-info {
            flex: 1;
        }
       
        .shop-item-title {
            font-weight: bold;
            margin-bottom: 5px;
        }
       
        .shop-item-desc {
            font-size: 0.9rem;
            color: #94a3b8;
        }
       
        .shop-item-action {
            display: flex;
            align-items: center;
            gap: 10px;
        }
       
        .genetics-display {
            background: rgba(15, 23, 42, 0.7);
            padding: 15px;
            border-radius: 8px;
            margin-bottom: 15px;
        }
       
        .height-chart {
            margin-top: 20px;
            background: rgba(15, 23, 42, 0.7);
            padding: 15px;
            border-radius: 8px;
        }
       
        .chart-bar {
            height: 20px;
            background: #334155;
            border-radius: 10px;
            margin: 5px 0;
            overflow: hidden;
            position: relative;
        }
       
        .chart-fill {
            height: 100%;
            background: linear-gradient(90deg, #3b82f6, #8b5cf6);
            border-radius: 10px;
            width: 0%;
            transition: width 1s ease;
        }
       
        .chart-label {
            position: absolute;
            left: 10px;
            top: 0;
            line-height: 20px;
            color: white;
            font-size: 0.8rem;
        }
       
        .degeneration-indicator {
            display: inline-block;
            padding: 2px 8px;
            background: #dc2626;
            border-radius: 10px;
            font-size: 0.8rem;
            margin-left: 5px;
            animation: pulse 2s infinite;
        }
       
        @keyframes pulse {
            0% { opacity: 0.7; }
            50% { opacity: 1; }
            100% { opacity: 0.7; }
        }
       
        .status-badge {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 12px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
       
        .gray-status { background: #64748b; color: white; }
        .known-status { background: #3b82f6; color: white; }
        .contributor-status { background: #8b5cf6; color: white; }
        .orgmaster-status { background: linear-gradient(45deg, #06b6d4, #8b5cf6); color: white; }
       
        .modal {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.7);
            z-index: 1000;
            align-items: center;
            justify-content: center;
        }
       
        .modal-content {
            background: #1e293b;
            padding: 20px;
            border-radius: 10px;
            max-width: 500px;
            width: 90%;
            max-height: 80vh;
            overflow-y: auto;
        }
       
        .modal-title {
            font-size: 1.5rem;
            margin-bottom: 15px;
            color: #f8fafc;
        }
       
        .modal-desc {
            margin-bottom: 15px;
            color: #e2e8f0;
        }
       
        .modal-buttons {
            display: flex;
            gap: 10px;
            justify-content: flex-end;
        }
       
        .modal-btn {
            padding: 8px 15px;
            border-radius: 5px;
            cursor: pointer;
            border: none;
            font-weight: bold;
        }
       
        .modal-btn-primary {
            background: #3b82f6;
            color: white;
        }
       
        .modal-btn-secondary {
            background: #64748b;
            color: white;
        }
       
        .risk-indicator {
            display: inline-block;
            padding: 2px 6px;
            border-radius: 10px;
            font-size: 0.7rem;
            margin-left: 5px;
        }
       
        .low-risk { background: #10b981; color: white; }
        .medium-risk { background: #f59e0b; color: white; }
        .high-risk { background: #ef4444; color: white; }
       
        .drug-warning {
            color: #ef4444;
            font-size: 0.9rem;
            margin-top: 5px;
        }
       
        .family-class {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 12px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
       
        .lower-class { background: #dc2626; color: white; }
        .middle-class { background: #d97706; color: white; }
        .upper-class { background: #059669; color: white; }
       
        .social-media-post {
            background: rgba(15, 23, 42, 0.7);
            padding: 15px;
            border-radius: 8px;
            margin-bottom: 15px;
        }
       
        .social-media-icon {
            width: 24px;
            height: 24px;
            margin-right: 8px;
            vertical-align: middle;
        }
       
        .job-item {
            display: flex;
            justify-content: space-between;
            padding: 10px;
            background: rgba(15, 23, 42, 0.7);
            margin-bottom: 5px;
            border-radius: 5px;
            align-items: center;
        }
       
        .job-requirements {
            font-size: 0.9rem;
            color: #94a3b8;
        }
       
        .study-options {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 15px;
        }
       
        .study-option {
            background: rgba(15, 23, 42, 0.7);
            padding: 15px;
            border-radius: 8px;
            text-align: center;
        }
       
        .influencer-status {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 12px;
            background: linear-gradient(45deg, #8b5cf6, #ec4899);
            color: white;
            font-size: 0.8rem;
            margin-left: 5px;
        }
       
        /* New styles for additional features */
        .relationship-status {
            display: inline-block;
            padding: 3px 8px;
            border-radius: 12px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
       
        .single { background: #64748b; color: white; }
        .dating { background: #3b82f6; color: white; }
        .married { background: #8b5cf6; color: white; }
       
        .children-list {
            margin-top: 10px;
            max-height: 150px;
            overflow-y: auto;
        }
       
        .child-item {
            padding: 5px;
            background: rgba(15, 23, 42, 0.5);
            margin-bottom: 3px;
            border-radius: 4px;
            font-size: 0.9rem;
        }
       
        .bmi-value {
            font-size: 1.2rem;
            font-weight: bold;
            color: #f8fafc;
        }
       
        .bmi-status {
            display: inline-block;
            padding: 2px 8px;
            border-radius: 10px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
       
        .underweight { background: #f59e0b; color: white; }
        .normal { background: #10b981; color: white; }
        .overweight { background: #f59e0b; color: white; }
        .obese { background: #ef4444; color: white; }
       
        .date-btn {
            background: #ec4899;
            color: white;
            border: none;
            padding: 8px 12px;
            border-radius: 8px;
            cursor: pointer;
            font-weight: bold;
            transition: all 0.3s ease;
            margin-top: 5px;
        }
       
        .date-btn:hover {
            background: #db2777;
        }
       
        .date-btn:disabled {
            background: #64748b;
            cursor: not-allowed;
        }
       
        .partner-info {
            margin-top: 10px;
            padding: 10px;
            background: rgba(15, 23, 42, 0.5);
            border-radius: 8px;
        }
       
        .eat-btn {
            background: #10b981;
            color: white;
            border: none;
            padding: 8px 12px;
            border-radius: 8px;
            cursor: pointer;
            font-weight: bold;
            transition: all 0.3s ease;
            margin-top: 5px;
        }
       
        .eat-btn:hover {
            background: #059669;
        }
       
        .eat-btn:disabled {
            background: #64748b;
            cursor: not-allowed;
        }
       
        .food-item {
            display: flex;
            justify-content: space-between;
            padding: 8px;
            background: rgba(15, 23, 42, 0.7);
            margin-bottom: 5px;
            border-radius: 5px;
            align-items: center;
        }
       
        .food-item-info {
            flex: 1;
        }
       
        .food-item-title {
            font-weight: bold;
            margin-bottom: 3px;
        }
       
        .food-item-desc {
            font-size: 0.8rem;
            color: #94a3b8;
        }
       
        .food-item-action {
            display: flex;
            align-items: center;
            gap: 10px;
        }
       
        .harmonization-effect {
            display: inline-block;
            padding: 2px 8px;
            background: #8b5cf6;
            border-radius: 10px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
       
        /* New styles for additional features */
        .archetype-container {
            background: rgba(15, 23, 42, 0.7);
            padding: 15px;
            border-radius: 8px;
            margin-bottom: 15px;
        }
       
        .archetype-item {
            margin-bottom: 10px;
            padding: 10px;
            background: rgba(30, 41, 59, 0.5);
            border-radius: 5px;
        }
       
        .archetype-title {
            font-weight: bold;
            margin-bottom: 5px;
            color: #f8fafc;
        }
       
        .archetype-desc {
            font-size: 0.9rem;
            color: #94a3b8;
        }
       
        .select-archetype-btn {
            background: #8b5cf6;
            color: white;
            border: none;
            padding: 8px 12px;
            border-radius: 5px;
            cursor: pointer;
            margin-top: 5px;
            font-size: 0.9rem;
        }
       
        .select-archetype-btn:hover {
            background: #7c3aed;
        }
       
        .hair-style-item {
            display: flex;
            justify-content: space-between;
            padding: 8px;
            background: rgba(15, 23, 42, 0.7);
            margin-bottom: 5px;
            border-radius: 5px;
            align-items: center;
        }
       
        .humor-stat {
            display: inline-block;
            padding: 2px 8px;
            background: #f59e0b;
            border-radius: 10px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
       
        .cheating-risk {
            display: inline-block;
            padding: 2px 8px;
            background: #ec4899;
            border-radius: 10px;
            font-size: 0.8rem;
            margin-left: 5px;
        }
       
        .generation-btn {
            background: linear-gradient(45deg, #06b6d4, #8b5cf6);
            color: white;
            border: none;
            padding: 10px 15px;
            border-radius: 8px;
            cursor: pointer;
            font-weight: bold;
            margin-top: 10px;
        }
       
        .divorce-btn {
            background: #dc2626;
            color: white;
            border: none;
            padding: 8px 12px;
            border-radius: 8px;
            cursor: pointer;
            margin-top: 5px;
        }
       
        .confront-btn {
            background: #ea580c;
            color: white;
            border: none;
            padding: 8px 12px;
            border-radius: 8px;
            cursor: pointer;
            margin-top: 5px;
            margin-left: 5px;
        }
    </style>
</head>
<body>
    <div class="container">
        <header>
            <h1>Blackpill Simulator 2k26</h1>
            <div class="disclaimer">
                <strong>Content Warning:</strong> This game explores themes related to appearance-based discrimination, body image issues, body dysmorphia. Discretion is advised.
            </div>
        </header>
       
        <div class="genetics-display">
            <h3>Genetic Inheritance</h3>
            <p>Father's Height: <span id="father-height">5'10"</span> | Mother's Height: <span id="mother-height">5'4"</span></p>
            <p>Family Class: <span id="family-class-value" class="family-class middle-class">Middle Class</span></p>
            <p>Genetic Potential: <span id="genetic-potential">Medium</span></p>
            <p>Parental Bone Structure: <span id="parent-bone">Average</span></p>
            <p>Race: <span id="race-value">Caucasian</span></p>
            <p>Eye Color: <span id="eye-color">Brown</span></p>
            <p>IQ Potential: <span id="iq-potential">100</span></p>
            <p>SMV: <span id="smv-value">4.5</span> | Status: <span id="status-value">Neutral</span></p>
            <p>Humor: <span id="humor-value">50</span> <span class="humor-stat">Neutral</span></p>
            <div id="org-status-container" style="display: none;">
                <p>.org Status: <span id="org-status-value" class="status-badge gray-status">Gray</span></p>
            </div>
            <div id="social-media-status-container" style="display: none; margin-top: 10px;">
                <p>Social Media: <span id="social-media-status-value">No Presence</span></p>
            </div>
            <div id="relationship-container" style="display: none; margin-top: 10px;">
                <p>Relationship: <span id="relationship-status-value" class="relationship-status single">Single</span></p>
                <div id="partner-info-container" class="partner-info" style="display: none;">
                    <p>Partner: <span id="partner-name">Name</span> | Attractiveness: <span id="partner-attractiveness">5.0</span></p>
                    <p>Height: <span id="partner-height">5'8"</span> | Children: <span id="children-count">0</span></p>
                    <div id="children-container" class="children-list" style="display: none;">
                    </div>
                </div>
            </div>
        </div>
       
        <div class="stats-container">
            <div class="stat-box">
                <div class="stat-title">Age</div>
                <div class="stat-value" id="age-value">0 years old</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="age-progress" style="width: 0%"></div>
                </div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">Neurodiversity Status</div>
                <div class="stat-value" id="neuro-status">Neurotypical</div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">IQ</div>
                <div class="stat-value" id="iq-value">100</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="iq-progress" style="width: 50%"></div>
                </div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">Attractiveness Tier</div>
                <div class="stat-value" id="attractiveness-value">High Low Tier Normie</div>
                <div class="tier-badge ltn" id="tier-badge">HLTN</div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">Height</div>
                <div class="stat-value" id="height-value">1'8"</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="height-progress" style="width: 10%"></div>
                </div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">Weight & BMI</div>
                <div class="stat-value" id="weight-value">20 lbs</div>
                <div class="bmi-value" id="bmi-value">16.2</div>
                <div class="bmi-status underweight" id="bmi-status">Underweight</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="bmi-progress" style="width: 30%"></div>
                </div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">Health</div>
                <div class="stat-value" id="health-value">Good</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="health-progress" style="width: 80%"></div>
                </div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">Money</div>
                <div class="stat-value" id="money-value">$0</div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">Social Status</div>
                <div class="stat-value" id="social-value">Neutral</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="social-progress" style="width: 50%"></div>
                </div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">Followers</div>
                <div class="stat-value" id="followers-value">0</div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">Bone Mass</div>
                <div class="stat-value" id="bone-mass-value">Normal</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="bone-mass-progress" style="width: 50%"></div>
                </div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">Hair Type</div>
                <div class="stat-value" id="hair-type-value">Straight</div>
                <div class="stat-value" id="hair-length-value">Short</div>
                <div class="progress-bar">
                    <div class="progress-fill" id="hair-health-progress" style="width: 80%"></div>
                </div>
            </div>
        </div>
       
        <div class="height-chart">
            <h3>Height Percentile</h3>
            <div class="chart-bar">
                <div class="chart-fill" id="height-percentile" style="width: 50%"></div>
                <div class="chart-label">Your height: <span id="height-percentile-value">50%</span></div>
            </div>
            <p>You are taller than <span id="taller-than">50%</span> of people your age and gender.</p>
        </div>
       
        <div class="tab-container">
            <div class="tab active" data-tab="traits">Traits</div>
            <div class="tab" data-tab="actions">Actions</div>
            <div class="tab" data-tab="school">School</div>
            <div class="tab" data-tab="procedures">Procedures</div>
            <div class="tab" data-tab="peptides">Peptides</div>
            <div class="tab" data-tab="steroids">Steroids</div>
            <div class="tab" data-tab="nutrition">Nutrition</div>
            <div class="tab" data-tab="social-media">Social Media</div>
            <div class="tab" data-tab="jobs">Jobs</div>
            <div class="tab" data-tab="family">Family</div>
            <div class="tab" data-tab="dating">Dating</div>
            <div class="tab" data-tab="forum">.org Forum</div>
            <div class="tab" data-tab="archetypes">Archetypes</div>
            <div class="tab" data-tab="hair">Hair</div>
        </div>
       
        <div class="tab-content active" id="traits-tab">
            <div class="stat-box">
                <div class="stat-title">Physical Traits</div>
                <div class="trait-list" id="physical-traits">
                    <div class="trait">Symmetrical Face</div>
                    <div class="trait negative-trait">Narrow Clavicles</div>
                </div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">Facial Features</div>
                <div class="trait-list" id="facial-traits">
                    <div class="trait">Positive Canthal Tilt</div>
                    <div class="trait negative-trait">Recessed Maxilla</div>
                </div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">Skin Conditions</div>
                <div class="trait-list" id="skin-traits">
                    <div class="trait">Clear Skin</div>
                </div>
            </div>
           
            <div class="stat-box">
                <div class="stat-title">Health Conditions</div>
                <div class="trait-list" id="health-traits">
                    <div class="trait">Good Metabolism</div>
                </div>
            </div>
        </div>
       
        <div class="tab-content" id="actions-tab">
            <div class="actions-container">
                <button class="action-btn" id="age-btn">Age Up (+1 year)</button>
                <button class="action-btn" id="skincare-btn">Skincare Routine ($50)</button>
                <button class="action-btn" id="gym-btn">Gym Workout ($30)</button>
                <button class="action-btn" id="study-btn">Study ($20)</button>
                <button class="action-btn" id="work-btn">Part-time Job ($100)</button>
                <button class="action-btn" id="surgery-btn" disabled>Cosmetic Surgery ($5000)</button>
                <button class="action-btn" id="fraud-btn">Frauding ($20)</button>
                <button class="action-btn" id="diy-filler-btn" disabled>DIY Filler ($100)</button>
                <button class="action-btn" id="rope-btn" style="background: #dc2626;">Rope (Restart)</button>
            </div>
        </div>
       
        <div class="tab-content" id="school-tab">
            <div class="study-options">
                <div class="study-option">
                    <h3>Elementary School</h3>
                    <p>Available until age 12</p>
                    <button class="action-btn" id="elementary-study-btn" disabled>Study Basics</button>
                </div>
               
                <div class="study-option">
                    <h3>Middle School</h3>
                    <p>Available from age 12-15</p>
                    <button class="action-btn" id="middle-study-btn" disabled>Study Regular</button>
                </div>
               
                <div class="study-option">
                    <h3>High School</h3>
                    <p>Available from age 15-18</p>
                    <button class="action-btn" id="high-school-study-btn" disabled>Study Advanced</button>
                </div>
               
                <div class="study-option">
                    <h3>College</h3>
                    <p>Available from age 18+</p>
                    <button class="action-btn" id="college-study-btn" disabled>Study Higher Education</button>
                </div>
            </div>
           
            <div class="stat-box" style="margin-top: 15px;">
                <div class="stat-title">Study Effectiveness</div>
                <p>Your IQ affects how efficiently you learn:</p>
                <ul style="margin-left: 20px; margin-top: 10px;">
                    <li>Lower IQ: Slower learning</li>
                    <li>Average IQ: Moderate learning</li>
                    <li>Higher IQ: Faster learning</li>
                </ul>
            </div>
        </div>
       
        <div class="tab-content" id="procedures-tab">
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Braces <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Fixes malocclusion and crooked teeth. Risk of botch if no issues present.</div>
                </div>
                <div class="shop-item-action">
                    $3000 <button class="action-btn" disabled id="braces-btn">Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Jaw Surgery <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Fixes recessed maxilla/mandible. Can botch if not needed.</div>
                </div>
                <div class="shop-item-action">
                    $15000 <button class="action-btn" disabled id="jawsurgery-btn">Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Buccal Fat Removal <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Removes cheek fat for more defined cheekbones. Can cause premature aging if overdone.</div>
                </div>
                <div class="shop-item-action">
                    $4000 <button class="action-btn" disabled id="buccalfat-btn">Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Rhinoplasty <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Nose reshaping surgery. High botch potential.</div>
                </div>
                <div class="shop-item-action">
                    $8000 <button class="action-btn" disabled id="rhinoplasty-btn">Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Limb Lengthening Surgery <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Increases height by 3-4 inches. Extremely painful and risky.</div>
                </div>
                <div class="shop-item-action">
                    $70000 <button class="action-btn" disabled id="limblengthening-btn">Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Professional Filler <span class="risk-indicator low-risk">Low Risk</span></div>
                    <div class="shop-item-desc">Professional filler injection for lips, cheeks, or jawline.</div>
                </div>
                <div class="shop-item-action">
                    $2000 <button class="action-btn" disabled id="filler-btn">Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Facial Harmonization Filler <span class="harmonization-effect">Corrects Asymmetry</span> <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Advanced filler techniques to improve facial harmony and balance. Can ascend up to 2 tiers.</div>
                </div>
                <div class="shop-item-action">
                    $5000 <button class="action-btn" disabled id="harmonization-filler-btn">Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Palatal Expander <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Widens the upper jaw. Only effective before age 16. Risk of fusion with peptides.</div>
                </div>
                <div class="shop-item-action">
                    $4000 <button class="action-btn" disabled id="palatal-expander-btn">Purchase</button>
                </div>
            </div>
           
            <!-- New eye area procedures -->
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Canthopexy <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Lifts the outer corner of the eyes for a more alert, positive canthal tilt.</div>
                </div>
                <div class="shop-item-action">
                    $6000 <button class="action-btn" disabled id="canthopexy-btn">Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Upper Eyelid Filler <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Adds volume to upper eyelids for a more hunter-eyed/hooded appearance.</div>
                </div>
                <div class="shop-item-action">
                    $3500 <button class="action-btn" disabled id="eyelid-filler-btn">Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Blepharoplasty <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Eyelid surgery to remove excess skin or fat from the eyelids.</div>
                </div>
                <div class="shop-item-action">
                    $8000 <button class="action-btn" disabled id="blepharoplasty-btn">Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Keratopigmentation <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Permanent eye color change procedure. Risk of blindness if botched.</div>
                </div>
                <div class="shop-item-action">
                    $7000 <button class="action-btn" disabled id="keratopigmentation-btn">Purchase</button>
                </div>
            </div>
        </div>
       
        <div class="tab-content" id="peptides-tab">
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">IGF-1 LR3 <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Stimulates growth before plates close. After closure, risk of acromegaly and diabetes.</div>
                    <div class="drug-warning">60% chance of suture fusion if using palatal expander</div>
                </div>
                <div class="shop-item-action">
                    $500 <button class="action-btn" id="igf1-btn" disabled>Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">MK-677 <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Growth hormone secretagogue. Increases height potential and bone mass.</div>
                </div>
                <div class="shop-item-action">
                    $300 <button class="action-btn" id="mk677-btn" disabled>Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">HGH <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Human Growth Hormone. Maximizes growth potential, increases bone mass, but high risk of side effects.</div>
                </div>
                <div class="shop-item-action">
                    $1000 <button class="action-btn" id="hgh-btn" disabled>Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">GHK-Cu <span class="risk-indicator low-risk">Low Risk</span></div>
                    <div class="shop-item-desc">Copper peptide for skin rejuvenation and improved complexion.</div>
                </div>
                <div class="shop-item-action">
                    $200 <button class="action-btn" id="ghk-cu-btn" disabled>Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Minoxidil <span class="risk-indicator low-risk">Low Risk</span></div>
                    <div class="shop-item-desc">Promotes facial hair growth and prevents balding.</div>
                </div>
                <div class="shop-item-action">
                    $50 <button class="action-btn" id="minoxidil-btn" disabled>Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Meclizine/Aromatase Inhibitors <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">May increase height by delaying growth plate closure. Very low success rate. Risk of dementia later in life.</div>
                </div>
                <div class="shop-item-action">
                    $400 <button class="action-btn" id="meclizine-btn" disabled>Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">CJC no DAC + IPA <span class="risk-indicator medium-risk">Medium Risk</span></div>
                    <div class="shop-item-desc">Growth hormone releasing peptide combination. May increase height and improve recovery.</div>
                </div>
                <div class="shop-item-action">
                    $600 <button class="action-btn" id="cjc-ipa-btn" disabled>Purchase</button>
                </div>
            </div>
        </div>
       
        <div class="tab-content" id="steroids-tab">
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Trenbolone <span class="risk-indicator high-risk">EXTREME RISK</span></div>
                    <div class="shop-item-desc">Extremely powerful steroid. Very dangerous for teens, dangerous for adults.</div>
                    <div class="drug-warning">High risk of permanent health damage</div>
                </div>
                <div class="shop-item-action">
                    $300 <button class="action-btn" disabled id="trenbolone-btn">Purchase</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Anavar <span class="risk-indicator high-risk">High Risk</span></div>
                    <div class="shop-item-desc">Milder steroid but still dangerous. Can cause liver damage.</div>
                </div>
                <div class="shop-item-action">
                    $200 <button class="action-btn" disabled id="anavar-btn">Purchase</button>
                </div>
            </div>
        </div>
       
        <div class="tab-content" id="nutrition-tab">
            <div class="food-item">
                <div class="food-item-info">
                    <div class="food-item-title">Basic Meal ($5)</div>
                    <div class="food-item-desc">A simple meal that satisfies hunger.</div>
                </div>
                <div class="food-item-action">
                    <button class="eat-btn" id="basic-meal-btn">Eat</button>
                </div>
            </div>
           
            <div class="food-item">
                <div class="food-item-info">
                    <div class="food-item-title">Healthy Meal ($15)</div>
                    <div class="food-item-desc">Nutritious meal that improves health and maintains weight.</div>
                </div>
                <div class="food-item-action">
                    <button class="eat-btn" id="healthy-meal-btn">Eat</button>
                </div>
            </div>
           
            <div class="food-item">
                <div class="food-item-info">
                    <div class="food-item-title">Weight Gain Meal ($10)</div>
                    <div class="food-item-desc">High-calorie meal for those looking to gain weight.</div>
                </div>
                <div class="food-item-action">
                    <button class="eat-btn" id="gain-weight-btn">Eat</button>
                </div>
            </div>
           
            <div class="food-item">
                <div class="food-item-info">
                    <div class="food-item-title">Weight Loss Meal ($12)</div>
                    <div class="food-item-desc">Low-calorie meal for those looking to lose weight.</div>
                </div>
                <div class="food-item-action">
                    <button class="eat-btn" id="lose-weight-btn">Eat</button>
                </div>
            </div>
           
            <div class="stat-box" style="margin-top: 15px;">
                <div class="stat-title">Nutrition Effects</div>
                <ul style="margin-left: 20px; margin-top: 10px;">
                    <li>Starving decreases health and can cause organ failure</li>
                    <li>Being underweight reduces attractiveness and social status</li>
                    <li>Being overweight can lead to bloating and reduced attractiveness</li>
                    <li>Obesity significantly reduces attractiveness and health</li>
                </ul>
            </div>
        </div>
       
        <div class="tab-content" id="social-media-tab">
            <div class="social-media-post">
                <h3><img src="https://www.citypng.com/public/uploads/preview/tik-tok-logo-transparent-square-701751694793273qftyarldbx.png" class="social-media-icon"> TikTok</h3>
                <p>Post short videos to gain followers. Risk of becoming a lolcow if below Mid Tier Normie.</p>
                <button class="action-btn" id="tiktok-post-btn" disabled>Post Video</button>
            </div>
           
            <div class="social-media-post">
                <h3><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Instagram_logo_2016.svg/2048px-Instagram_logo_2016.svg.png" class="social-media-icon"> Instagram</h3>
                <p>Post photos to build your brand. Higher success if above Mid Tier Normie.</p>
                <button class="action-btn" id="instagram-post-btn">Post Photo</button>
            </div>
           
            <div class="stat-box" style="margin-top: 15px;">
                <div class="stat-title">Social Media Mechanics</div>
                <ul style="margin-left: 20px; margin-top: 10px;">
                    <li>Below Mid Tier Normie: High risk of becoming a lolcow (lose social status and money)</li>
                    <li>Mid Tier Normie: Neutral outcome</li>
                    <li>Above Mid Tier Normie: Chance to become an influencer (gain followers and money)</li>
                    <li>High Tier Normie+: High chance of virality and sponsorship deals</li>
                </ul>
            </div>
        </div>
       
        <div class="tab-content" id="jobs-tab">
            <div class="job-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Fast Food Worker</div>
                    <div class="job-requirements">No requirements. Earn $8/hour.</div>
                </div>
                <div class="shop-item-action">
                    <button class="action-btn" id="fastfood-job-btn">Apply</button>
                </div>
            </div>
           
            <div class="job-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Retail Associate</div>
                    <div class="job-requirements">Minimum IQ 85. Earn $12/hour.</div>
                </div>
                <div class="shop-item-action">
                    <button class="action-btn" id="retail-job-btn">Apply</button>
                </div>
            </div>
           
            <div class="job-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Office Assistant</div>
                    <div class="job-requirements">Minimum IQ 95. Earn $18/hour.</div>
                </div>
                <div class="shop-item-action">
                    <button class="action-btn" id="office-job-btn">Apply</button>
                </div>
            </div>
           
            <div class="job-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Software Developer</div>
                    <div class="job-requirements">Minimum IQ 110, College Degree. Earn $45/hour.</div>
                </div>
                <div class="shop-item-action">
                    <button class="action-btn" id="developer-job-btn">Apply</button>
                </div>
            </div>
           
            <div class="job-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Data Scientist</div>
                    <div class="job-requirements">Minimum IQ 120, College Degree. Earn $60/hour.</div>
                </div>
                <div class="shop-item-action">
                    <button class="action-btn" id="scientist-job-btn">Apply</button>
                </div>
            </div>
           
            <div class="job-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Surgeon</div>
                    <div class="job-requirements">Minimum IQ 130, Medical Degree. Earn $120/hour.</div>
                </div>
                <div class="shop-item-action">
                    <button class="action-btn" id="surgeon-job-btn">Apply</button>
                </div>
            </div>
        </div>
       
        <div class="tab-content" id="family-tab">
            <div class="stat-box">
                <div class="stat-title">Family Resources</div>
                <p>Your family is <span id="family-class-text">middle class</span>.</p>
                <p>Available support: <span id="family-support">$5000</span></p>
                <div class="actions-container">
                    <button class="action-btn" id="ask-money-btn" disabled>Ask for Money</button>
                    <button class="action-btn" id="ask-braces-btn">Ask for Braces</button>
                    <button class="action-btn" id="ask-expander-btn">Ask for Palatal Expander</button>
                </div>
            </div>
        </div>
       
        <div class="tab-content" id="dating-tab">
            <div class="stat-box">
                <div class="stat-title">Dating & Relationships</div>
                <p>Your dating success depends on your height, attractiveness, and social status.</p>
               
                <div id="dating-status">
                    <p>You are <span id="dating-status-text">too young to date</span>.</p>
                </div>
               
                <div id="dating-actions" style="display: none;">
                    <button class="date-btn" id="date-btn">Go on a Date ($50)</button>
                    <button class="date-btn" id="propose-btn" style="display: none;">Propose Marriage ($500)</button>
                    <button class="date-btn" id="have-child-btn" style="display: none;">Have a Child ($1000)</button>
                    <button class="divorce-btn" id="divorce-btn" style="display: none;">Divorce</button>
                    <button class="confront-btn" id="confront-btn" style="display: none;">Confront About Cheating</button>
                </div>
               
                <div id="cheating-indicator" style="display: none; margin-top: 10px;">
                    <p>Cheating Risk: <span class="cheating-risk" id="cheating-risk-value">Low</span></p>
                </div>
               
                <div id="dating-requirements" style="margin-top: 15px;">
                    <p><strong>Dating Requirements:</strong></p>
                    <ul style="margin-left: 20px; margin-top: 5px;">
                        <li>Below 5'8": Very difficult to date</li>
                        <li>5'8" to 5'11": Need at least LTN face</li>
                        <li>6'0" to 6'2": Need at least MTN face</li>
                        <li>6'3"+: Need at least LTN face for HMTB</li>
                    </ul>
                </div>
            </div>
           
            <div class="stat-box" style="margin-top: 15px;">
                <div class="stat-title">Partner Preferences</div>
                <p>Women generally prefer men who are taller than them with symmetrical features.</p>
                <p>Men generally prefer women with feminine features and good fat distribution.</p>
            </div>
        </div>
       
        <div class="tab-content" id="forum-tab">
            <div class="stat-box">
                <div class="stat-title">.org Forum</div>
                <p>Status: <span id="forum-status">Not a member</span></p>
                <div id="forum-join-container">
                    <p>Minimum age to join: 13 years old</p>
                    <button class="action-btn" id="join-org-btn" disabled>Join .org</button>
                </div>
                <div id="forum-actions-container" style="display: none;">
                    <div class="actions-container">
                        <button class="action-btn" id="post-thread-btn">Post Thread</button>
                        <button class="action-btn" id="comment-btn">Comment</button>
                        <button class="action-btn" id="share-experience-btn">Share Experience</button>
                        <button class="action-btn" id="ask-advice-btn">Ask for Advice</button>
                    </div>
                </div>
            </div>
        </div>
       
        <!-- New Archetypes Tab -->
        <div class="tab-content" id="archetypes-tab">
            <div class="archetype-container">
                <h3>Male Archetypes (Requires .org Membership)</h3>
               
                <div class="archetype-item">
                    <div class="archetype-title">Pretty Boy</div>
                    <div class="archetype-desc">Requirements: HMTN+, clear skin, feminine features, height 5'10"+</div>
                    <button class="select-archetype-btn" id="pretty-boy-btn" disabled>Select Archetype</button>
                </div>
               
                <div class="archetype-item">
                    <div class="archetype-title">Slender Triad</div>
                    <div class="archetype-desc">Requirements: Height 6'0"+, underweight BMI, narrow frame</div>
                    <button class="select-archetype-btn" id="slender-triad-btn" disabled>Select Archetype</button>
                </div>
               
                <div class="archetype-item">
                    <div class="archetype-title">Ogre</div>
                    <div class="archetype-desc">Requirements: Subhuman-Chad range, high bone mass, height 6'0"+</div>
                    <button class="select-archetype-btn" id="ogre-btn" disabled>Select Archetype</button>
                </div>
            </div>
           
            <div class="archetype-container">
                <h3>Female Archetypes</h3>
               
                <div class="archetype-item">
                    <div class="archetype-title">Asian Baddie</div>
                    <div class="archetype-desc">Requirements: Asian race, MTN+, specific facial ratios, makeup frauding</div>
                    <button class="select-archetype-btn" id="asian-baddie-btn" disabled>Select Archetype</button>
                </div>
               
                <div class="archetype-item">
                    <div class="archetype-title">Latina Baddie</div>
                    <div class="archetype-desc">Requirements: Hispanic race, MTN+, specific body ratios, makeup frauding</div>
                    <button class="select-archetype-btn" id="latina-baddie-btn" disabled>Select Archetype</button>
                </div>
               
                <div class="archetype-item">
                    <div class="archetype-title">Baddie</div>
                    <div class="archetype-desc">Requirements: MTN+, ideal body ratios, no major failos</div>
                    <button class="select-archetype-btn" id="baddie-btn" disabled>Select Archetype</button>
                </div>
            </div>
        </div>
       
        <!-- New Hair Tab -->
        <div class="tab-content" id="hair-tab">
            <div class="stat-box">
                <div class="stat-title">Hair Properties</div>
                <p>Type: <span id="hair-type-display">Straight</span></p>
                <p>Length: <span id="hair-length-display">Short</span></p>
                <p>Health: <span id="hair-health-display">Healthy</span></p>
                <div class="progress-bar">
                    <div class="progress-fill" id="hair-health-bar" style="width: 80%"></div>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Basic Haircut</div>
                    <div class="shop-item-desc">Standard haircut appropriate for your hair type.</div>
                </div>
                <div class="shop-item-action">
                    $30 <button class="action-btn" id="basic-haircut-btn">Get Haircut</button>
                </div>
            </div>
           
            <div class="shop-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Premium Styling</div>
                    <div class="shop-item-desc">Professional styling for maximum aesthetic appeal.</div>
                </div>
                <div class="shop-item-action">
                    $100 <button class="action-btn" id="premium-style-btn">Get Styled</button>
                </div>
            </div>
           
            <div class="hair-style-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Dreadlocks</div>
                    <div class="shop-item-desc">Best for Afro-textured hair. May damage other hair types.</div>
                </div>
                <div class="shop-item-action">
                    $200 <button class="action-btn" id="dreadlocks-btn">Get Style</button>
                </div>
            </div>
           
            <div class="hair-style-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Braids</div>
                    <div class="shop-item-desc">Works well on most hair types but best on Afro-textured hair.</div>
                </div>
                <div class="shop-item-action">
                    $150 <button class="action-btn" id="braids-btn">Get Style</button>
                </div>
            </div>
           
            <div class="hair-style-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">Twists</div>
                    <div class="shop-item-desc">Ideal for Afro-textured hair. Requires regular retwisting.</div>
                </div>
                <div class="shop-item-action">
                    $180 <button class="action-btn" id="twists-btn">Get Style</button>
                </div>
            </div>
           
            <div class="hair-style-item">
                <div class="shop-item-info">
                    <div class="shop-item-title">UnderCut</div>
                    <div class="shop-item-desc">Popular modern cut. Works best on straight or wavy hair.</div>
                </div>
                <div class="shop-item-action">
                    $60 <button class="action-btn" id="undercut-btn">Get Style</button>
                </div>
            </div>
        </div>
       
        <div class="log-container" id="game-log">
            <div class="log-entry"><span class="age-badge">Age 0</span> You were born. Your genetic traits have been determined.</div>
            <div class="log-entry"><span class="age-badge">Age 0</span> Your parents have average height and bone structure.</div>
        </div>
       
        <footer>
            <p>follow @trueslendertriad on tt</p>
        </footer>
    </div>

    <!-- Modal for procedures -->
    <div class="modal" id="procedure-modal">
        <div class="modal-content">
            <div class="modal-title" id="modal-procedure-title">Procedure</div>
            <div class="modal-desc" id="modal-procedure-desc">Description of the procedure.</div>
            <div class="modal-buttons">
                <button class="modal-btn modal-btn-secondary" id="modal-cancel-btn">Cancel</button>
                <button class="modal-btn modal-btn-primary" id="modal-confirm-btn">Confirm</button>
            </div>
        </div>
    </div>

    <!-- Generation selection modal (displayed after death) -->
    <div class="modal" id="generation-modal">
        <div class="modal-content">
            <div class="modal-title">Continue Your Legacy</div>
            <div class="modal-desc">You have died. Select a child to continue playing as:</div>
            <div id="children-selection"></div>
            <div class="modal-buttons">
                <button class="modal-btn modal-btn-secondary" id="new-life-btn">Start New Life</button>
            </div>
        </div>
    </div>

    <script>
        // Extensive game state with all new features
        const gameState = {
            age: 0,
            neuroStatus: "Neurotypical",
            iq: 100,
            iqPotential: 100,
            attractiveness: 4.5,
            baseAttractiveness: 4.5,
            height: 20, // in inches (1'8")
            weight: 20, // in pounds
            bmi: 0,
            health: 80,
            money: 0,
            socialStatus: 50,
            growthPlatesOpen: true,
            alive: true,
            fatherHeight: 70, // 5'10"
            motherHeight: 64, // 5'4"
            paternalGrandfatherHeight: 71,
            paternalGrandmotherHeight: 65,
            maternalGrandfatherHeight: 69,
            maternalGrandmotherHeight: 63,
            geneticPotential: 0.5,
            physicalTraits: ["Symmetrical Face"],
            facialTraits: ["Positive Canthal Tilt"],
            skinTraits: ["Clear Skin"],
            healthTraits: ["Good Metabolism"],
            negativePhysical: ["Narrow Clavicles"],
            negativeFacial: ["Recessed Maxilla"],
            negativeSkin: [],
            negativeHealth: [],
            events: [],
            heightPercentile: 50,
            gender: Math.random() > 0.5 ? "male" : "female",
            previousTier: "High Low Tier Normie",
            race: "",
            eyeColor: "",
            smv: 4.5,
            status: "Neutral",
            onForum: false,
            orgStatus: "gray",
            forumReputation: 0,
            peptidesUsed: [],
            proceduresDone: [],
            drugsUsed: [],
            hardcapReached: false,
            trueAdam: Math.random() < 0.0000000001, // 1 in 10 billion chance
            palatalExpander: false,
            futureDementia: false,
            familyClass: "middle",
            familySupport: 5000,
            fillerActive: false,
            gymAscension: 0,
            steroidDamage: 0,
            followers: 0,
            socialMediaStatus: "none",
            currentJob: null,
            schoolLevel: "elementary",
            boneMass: 50, // 0-100 scale
            diabetesRisk: 0,
            belowLtnResistance: 0, // Makes it hard to descend below LTN
           
            // New properties for additional features
            relationshipStatus: "single", // single, dating, married
            partner: null,
            children: [],
            starving: false,
            starvationEffects: 0,
            lastMeal: 100, // 0-100 scale, 100 = fully fed
            metabolismRate: 1.0,
            bloating: false,
            facialAsymmetry: Math.random() < 0.3, // 30% chance of facial asymmetry
            feminineTraits: 0, // 0-100 scale for women
            masculineTraits: 0, // 0-100 scale for men
            breastAsymmetry: false,
            obesity: false,
            downSyndrome: Math.random() < 0.01, // 1% chance
            fas: Math.random() < 0.02, // 2% chance
           
            // New properties for additional features
            hairType: "",
            hairLength: 0, // 0-100 scale
            hairHealth: 80,
            hairStyle: "none",
            archetype: "none",
            humor: 50, // 0-100 scale
            isCheating: false,
            partnerCheating: false,
            cheatingRisk: 0,
            currentArchetype: "none"
        };

        // Updated tiers with adjusted distribution
        const tiers = [
            { name: "Subhuman", min: 1, max: 2.9, class: "subhuman", rarity: 0.05 },
            { name: "Low Tier Normie", min: 3, max: 3.4, class: "ltn", rarity: 0.1 },
            { name: "High Low Tier Normie", min: 3.5, max: 4.9, class: "ltn", rarity: 0.25 },
            { name: "Low Mid Tier Normie", min: 5, max: 5.4, class: "mtn", rarity: 0.2 },
            { name: "High Mid Tier Normie", min: 5.5, max: 5.9, class: "mtn", rarity: 0.15 },
            { name: "Low High Tier Normie", min: 6, max: 6.3, class: "htn", rarity: 0.1 },
            { name: "High Tier Normie", min: 6.4, max: 6.6, class: "htn", rarity: 0.08 },
            { name: "Chad Lite", min: 6.7, max: 6.9, class: "chadlite", rarity: 0.05 },
            { name: "High Chad Lite", min: 7, max: 7.5, class: "chadlite", rarity: 0.015 },
            { name: "Chad", min: 7.6, max: 7.9, class: "chad", rarity: 0.005 },
            { name: "Adamlite", min: 8, max: 8.9, class: "chad", rarity: 0.0005 }, // Made extremely rare
            { name: "True Adam", min: 9, max: 10, class: "trueadam", rarity: 0.0000000001 }
        ];

        // Jobs database
        const jobs = [
            { id: "fastfood", name: "Fast Food Worker", iqReq: 0, pay: 8, hours: 20, degreeReq: false },
            { id: "retail", name: "Retail Associate", iqReq: 85, pay: 12, hours: 25, degreeReq: false },
            { id: "office", name: "Office Assistant", iqReq: 95, pay: 18, hours: 30, degreeReq: false },
            { id: "developer", name: "Software Developer", iqReq: 110, pay: 45, hours: 35, degreeReq: true },
            { id: "scientist", name: "Data Scientist", iqReq: 120, pay: 60, hours: 40, degreeReq: true },
            { id: "surgeon", name: "Surgeon", iqReq: 130, pay: 120, hours: 50, degreeReq: true }
        ];

        // Biologically accurate height percentiles by age and gender
        const heightPercentiles = {
            male: {
                0: 20,    // newborn ~1'8"
                1: 30,    // 1 year ~2'6"
                2: 34,    // 2 years ~2'10"
                3: 37,    // 3 years ~3'1"
                4: 40,    // 4 years ~3'4"
                5: 43,    // 5 years ~3'7"
                6: 45,    // 6 years ~3'9"
                7: 48,    // 7 years ~4'0"
                8: 50,    // 8 years ~4'2"
                9: 52,    // 9 years ~4'4"
                10: 54,   // 10 years ~4'6"
                11: 56,   // 11 years ~4'8"
                12: 59,   // 12 years ~4'11"
                13: 62,   // 13 years ~5'2"
                14: 65,   // 14 years ~5'5"
                15: 67,   // 15 years ~5'7"
                16: 68,   // 16 years ~5'8"
                17: 69,   // 17 years ~5'9"
                18: 69,   // 18 years ~5'9"
                19: 70,   // 19 years ~5'10"
                20: 70,   // 20 years ~5'10"
            },
            female: {
                0: 20,    // newborn ~1'8"
                1: 29,    // 1 year ~2'5"
                2: 33,    // 2 years ~2'9"
                3: 37,    // 3 years ~3'1"
                4: 40,    // 4 years ~3'4"
                5: 42,    // 5 years ~3'6"
                6: 45,    // 6 years ~3'9"
                7: 47,    // 7 years ~3'11"
                8: 50,    // 8 years ~4'2"
                9: 52,    // 9 years ~4'4"
                10: 54,   // 10 years ~4'6"
                11: 57,   // 11 years ~4'9"
                12: 60,   // 12 years ~5'0"
                13: 62,   // 13 years ~5'2"
                14: 63,   // 14 years ~5'3"
                15: 64,   // 15 years ~5'4"
                16: 64,   // 16 years ~5'4"
                17: 64,   // 17 years ~5'4"
                18: 64,   // 18 years ~5'4"
                19: 64,   // 19 years ~5'4"
                20: 64,   // 20 years ~5'4"
            }
        };

        // Weight percentiles by age and gender
        const weightPercentiles = {
            male: {
                0: 7.5,   // newborn
                1: 22,    // 1 year
                2: 28,    // 2 years
                3: 32,    // 3 years
                4: 36,    // 4 years
                5: 40,    // 5 years
                6: 45,    // 6 years
                7: 50,    // 7 years
                8: 55,    // 8 years
                9: 60,    // 9 years
                10: 70,   // 10 years
                11: 80,   // 11 years
                12: 90,   // 12 years
                13: 105,  // 13 years
                14: 120,  // 14 years
                15: 135,  // 15 years
                16: 145,  // 16 years
                17: 155,  // 17 years
                18: 160,  // 18 years
                19: 165,  // 19 years
                20: 170,  // 20 years
            },
            female: {
                0: 7.5,   // newborn
                1: 21,    // 1 year
                2: 26,    // 2 years
                3: 31,    // 3 years
                4: 35,    // 4 years
                5: 39,    // 5 years
                6: 44,    // 6 years
                7: 49,    // 7 years
                8: 57,    // 8 years
                9: 68,    // 9 years
                10: 80,   // 10 years
                11: 95,   // 11 years
                12: 105,  // 12 years
                13: 115,  // 13 years
                14: 120,  // 14 years
                15: 125,  // 15 years
                16: 128,  // 16 years
                17: 130,  // 17 years
                18: 132,  // 18 years
                19: 134,  // 19 years
                20: 135,  // 20 years
            }
        };

        // Race modifiers for different features
        const raceModifiers = {
            caucasian: { boneStructure: 0.7, skinQuality: 0.6, hairQuality: 0.8, heightPotential: 0.8 },
            asian: { boneStructure: 0.5, skinQuality: 0.9, hairQuality: 0.7, heightPotential: 0.6 },
            black: { boneStructure: 0.8, skinQuality: 0.5, hairQuality: 0.4, heightPotential: 0.9 },
            hispanic: { boneStructure: 0.6, skinQuality: 0.7, hairQuality: 0.8, heightPotential: 0.7 },
            mixed: { boneStructure: 0.7, skinQuality: 0.8, hairQuality: 0.7, heightPotential: 0.8 }
        };

        // Hair types by race
        const hairTypesByRace = {
            caucasian: ["Straight", "Wavy", "Curly"],
            asian: ["Straight", "Coarse"],
            black: ["Afro", "Coily", "Kinky"],
            hispanic: ["Straight", "Wavy", "Curly"],
            mixed: ["Varies"] // Random selection from all types
        };

        // Eye colors by race
        const eyeColors = {
            caucasian: ["brown", "blue", "green", "hazel"],
            asian: ["brown", "dark brown", "black"],
            black: ["brown", "dark brown", "black"],
            hispanic: ["brown", "hazel", "green"],
            mixed: ["brown", "blue", "green", "hazel"]
        };

        // Family class modifiers
        const familyClassModifiers = {
            lower: { support: 1000, bracesChance: 0.1, expanderChance: 0.05, moneyRefusalChance: 0.7 },
            middle: { support: 5000, bracesChance: 0.5, expanderChance: 0.3, moneyRefusalChance: 0.4 },
            upper: { support: 20000, bracesChance: 0.9, expanderChance: 0.8, moneyRefusalChance: 0.2 }
        };

        // Partner preferences based on gender
        const partnerPreferences = {
            male: {
                minHeight: 30, // 3'0"
                maxHeight: 80, // 7'0"
                minAttractiveness: 4.0,
                importance: {
                    height: 0.3,
                    attractiveness: 0.6,
                    status: 0.1
                }
            },
            female: {
                minHeight: 30, // 3'0"
                maxHeight: 80, // 7'0"
                minAttractiveness: 5.0,
                importance: {
                    height: 0.6,
                    attractiveness: 0.3,
                    status: 0.1
                }
            }
        };

        // DOM elements
        const ageValue = document.getElementById('age-value');
        const neuroStatus = document.getElementById('neuro-status');
        const iqValue = document.getElementById('iq-value');
        const iqPotential = document.getElementById('iq-potential');
        const attractivenessValue = document.getElementById('attractiveness-value');
        const tierBadge = document.getElementById('tier-badge');
        const heightValue = document.getElementById('height-value');
        const healthValue = document.getElementById('health-value');
        const moneyValue = document.getElementById('money-value');
        const socialValue = document.getElementById('social-value');
        const physicalTraits = document.getElementById('physical-traits');
        const facialTraits = document.getElementById('facial-traits');
        const skinTraits = document.getElementById('skin-traits');
        const healthTraits = document.getElementById('health-traits');
        const gameLog = document.getElementById('game-log');
        const heightPercentile = document.getElementById('height-percentile');
        const heightPercentileValue = document.getElementById('height-percentile-value');
        const tallerThan = document.getElementById('taller-than');
        const raceValue = document.getElementById('race-value');
        const eyeColorValue = document.getElementById('eye-color');
        const smvValue = document.getElementById('smv-value');
        const statusValue = document.getElementById('status-value');
        const orgStatusValue = document.getElementById('org-status-value');
        const orgStatusContainer = document.getElementById('org-status-container');
        const forumStatus = document.getElementById('forum-status');
        const forumJoinContainer = document.getElementById('forum-join-container');
        const forumActionsContainer = document.getElementById('forum-actions-container');
        const joinOrgBtn = document.getElementById('join-org-btn');
        const familyClassValue = document.getElementById('family-class-value');
        const familySupport = document.getElementById('family-support');
        const familyClassText = document.getElementById('family-class-text');
        const followersValue = document.getElementById('followers-value');
        const socialMediaStatusContainer = document.getElementById('social-media-status-container');
        const socialMediaStatusValue = document.getElementById('social-media-status-value');
        const boneMassValue = document.getElementById('bone-mass-value');
        const boneMassProgress = document.getElementById('bone-mass-progress');
        const humorValue = document.getElementById('humor-value');
       
        // Progress bars
        const ageProgress = document.getElementById('age-progress');
        const iqProgress = document.getElementById('iq-progress');
        const heightProgress = document.getElementById('height-progress');
        const healthProgress = document.getElementById('health-progress');
        const socialProgress = document.getElementById('social-progress');

        // Genetic display
        const fatherHeight = document.getElementById('father-height');
        const motherHeight = document.getElementById('mother-height');
        const parentBone = document.getElementById('parent-bone');
        const geneticPotential = document.getElementById('genetic-potential');

        // Buttons
        const ageBtn = document.getElementById('age-btn');
        const skincareBtn = document.getElementById('skincare-btn');
        const gymBtn = document.getElementById('gym-btn');
        const studyBtn = document.getElementById('study-btn');
        const workBtn = document.getElementById('work-btn');
        const surgeryBtn = document.getElementById('surgery-btn');
        const fraudBtn = document.getElementById('fraud-btn');
        const diyFillerBtn = document.getElementById('diy-filler-btn');
        const ropeBtn = document.getElementById('rope-btn');
        const postThreadBtn = document.getElementById('post-thread-btn');
        const commentBtn = document.getElementById('comment-btn');
        const shareExperienceBtn = document.getElementById('share-experience-btn');
        const askAdviceBtn = document.getElementById('ask-advice-btn');
        const askMoneyBtn = document.getElementById('ask-money-btn');
        const askBracesBtn = document.getElementById('ask-braces-btn');
        const askExpanderBtn = document.getElementById('ask-expander-btn');
        const tiktokPostBtn = document.getElementById('tiktok-post-btn');
        const instagramPostBtn = document.getElementById('instagram-post-btn');

        // Study buttons
        const elementaryStudyBtn = document.getElementById('elementary-study-btn');
        const middleStudyBtn = document.getElementById('middle-study-btn');
        const highSchoolStudyBtn = document.getElementById('high-school-study-btn');
        const collegeStudyBtn = document.getElementById('college-study-btn');

        // Job buttons
        const fastfoodJobBtn = document.getElementById('fastfood-job-btn');
        const retailJobBtn = document.getElementById('retail-job-btn');
        const officeJobBtn = document.getElementById('office-job-btn');
        const developerJobBtn = document.getElementById('developer-job-btn');
        const scientistJobBtn = document.getElementById('scientist-job-btn');
        const surgeonJobBtn = document.getElementById('surgeon-job-btn');

        // Procedure buttons
        const bracesBtn = document.getElementById('braces-btn');
        const jawSurgeryBtn = document.getElementById('jawsurgery-btn');
        const buccalFatBtn = document.getElementById('buccalfat-btn');
        const rhinoplastyBtn = document.getElementById('rhinoplasty-btn');
        const limbLengtheningBtn = document.getElementById('limblengthening-btn');
        const fillerBtn = document.getElementById('filler-btn');
        const harmonizationFillerBtn = document.getElementById('harmonization-filler-btn');
        const palatalExpanderBtn = document.getElementById('palatal-expander-btn');
        const canthopexyBtn = document.getElementById('canthopexy-btn');
        const eyelidFillerBtn = document.getElementById('eyelid-filler-btn');
        const blepharoplastyBtn = document.getElementById('blepharoplasty-btn');
        const keratopigmentationBtn = document.getElementById('keratopigmentation-btn');

        // Peptide buttons
        const igf1Btn = document.getElementById('igf1-btn');
        const mk677Btn = document.getElementById('mk677-btn');
        const hghBtn = document.getElementById('hgh-btn');
        const ghkCuBtn = document.getElementById('ghk-cu-btn');
        const minoxidilBtn = document.getElementById('minoxidil-btn');
        const meclizineBtn = document.getElementById('meclizine-btn');
        const cjcIpaBtn = document.getElementById('cjc-ipa-btn');

        // Steroid buttons
        const trenboloneBtn = document.getElementById('trenbolone-btn');
        const anavarBtn = document.getElementById('anavar-btn');

        // Nutrition buttons
        const basicMealBtn = document.getElementById('basic-meal-btn');
        const healthyMealBtn = document.getElementById('healthy-meal-btn');
        const gainWeightBtn = document.getElementById('gain-weight-btn');
        const loseWeightBtn = document.getElementById('lose-weight-btn');

        // Dating buttons
        const dateBtn = document.getElementById('date-btn');
        const proposeBtn = document.getElementById('propose-btn');
        const haveChildBtn = document.getElementById('have-child-btn');
        const divorceBtn = document.getElementById('divorce-btn');
        const confrontBtn = document.getElementById('confront-btn');

        // Hair buttons
        const basicHaircutBtn = document.getElementById('basic-haircut-btn');
        const premiumStyleBtn = document.getElementById('premium-style-btn');
        const dreadlocksBtn = document.getElementById('dreadlocks-btn');
        const braidsBtn = document.getElementById('braids-btn');
        const twistsBtn = document.getElementById('twists-btn');
        const undercutBtn = document.getElementById('undercut-btn');

        // Archetype buttons
        const prettyBoyBtn = document.getElementById('pretty-boy-btn');
        const slenderTriadBtn = document.getElementById('slender-triad-btn');
        const ogreBtn = document.getElementById('ogre-btn');
        const asianBaddieBtn = document.getElementById('asian-baddie-btn');
        const latinaBaddieBtn = document.getElementById('latina-baddie-btn');
        const baddieBtn = document.getElementById('baddie-btn');

        // Tabs
        const tabs = document.querySelectorAll('.tab');
        const tabContents = document.querySelectorAll('.tab-content');

        // Modal elements
        const procedureModal = document.getElementById('procedure-modal');
        const modalProcedureTitle = document.getElementById('modal-procedure-title');
        const modalProcedureDesc = document.getElementById('modal-procedure-desc');
        const modalCancelBtn = document.getElementById('modal-cancel-btn');
        const modalConfirmBtn = document.getElementById('modal-confirm-btn');
        const generationModal = document.getElementById('generation-modal');
        const childrenSelection = document.getElementById('children-selection');
        const newLifeBtn = document.getElementById('new-life-btn');

        // New DOM elements for additional features
        const weightValue = document.getElementById('weight-value');
        const bmiValue = document.getElementById('bmi-value');
        const bmiStatus = document.getElementById('bmi-status');
        const bmiProgress = document.getElementById('bmi-progress');
        const relationshipContainer = document.getElementById('relationship-container');
        const relationshipStatusValue = document.getElementById('relationship-status-value');
        const partnerInfoContainer = document.getElementById('partner-info-container');
        const partnerName = document.getElementById('partner-name');
        const partnerAttractiveness = document.getElementById('partner-attractiveness');
        const partnerHeight = document.getElementById('partner-height');
        const childrenCount = document.getElementById('children-count');
        const childrenContainer = document.getElementById('children-container');
        const datingStatusText = document.getElementById('dating-status-text');
        const datingActions = document.getElementById('dating-actions');
        const cheatingIndicator = document.getElementById('cheating-indicator');
        const cheatingRiskValue = document.getElementById('cheating-risk-value');
        const hairTypeDisplay = document.getElementById('hair-type-display');
        const hairLengthDisplay = document.getElementById('hair-length-display');
        const hairHealthDisplay = document.getElementById('hair-health-display');
        const hairHealthBar = document.getElementById('hair-health-bar');

        // Current procedure being considered
        let currentProcedure = null;

        // Initialize the game
        function initGame() {
            // Randomize initial stats with higher probability for lower tiers
            gameState.neuroStatus = Math.random() > 0.8 ? "Neurodivergent" : "Neurotypical";
           
            // Set IQ potential based on genetics (95-105 range, average 100)
            gameState.iqPotential = Math.floor(Math.random() * 10) + 95;
           
            // Apply conditions that lower IQ
            if (gameState.downSyndrome) {
                gameState.iqPotential = Math.floor(Math.random() * 30) + 40; // 40-70 for Down syndrome
                gameState.negativeHealth.push("Down Syndrome");
            }
           
            if (gameState.fas) {
                gameState.iqPotential = Math.max(60, gameState.iqPotential - 20); // Reduce IQ by 20 points
                gameState.negativeHealth.push("Fetal Alcohol Syndrome");
            }
           
            gameState.iq = Math.floor(gameState.iqPotential * 0.8); // Start at 80% of potential
           
            // Set True Adam if incredibly lucky
            if (gameState.trueAdam) {
                gameState.attractiveness = 9 + Math.random();
                gameState.baseAttractiveness = gameState.attractiveness;
                gameState.geneticPotential = 1;
            } else {
                // Most people between High Low Tier Normie and High Mid Tier Normie
                // Adjusted distribution to make HLTN and HMTN most common
                const tierRandom = Math.random();
                if (tierRandom < 0.25) {
                    gameState.attractiveness = (Math.random() * 1.5) + 3.5; // 3.5 to 5.0 (HLTN)
                } else if (tierRandom < 0.45) {
                    gameState.attractiveness = (Math.random() * 0.5) + 5.0; // 5.0 to 5.5 (LMTN)
                } else if (tierRandom < 0.6) {
                    gameState.attractiveness = (Math.random() * 0.5) + 5.5; // 5.5 to 6.0 (HMTN)
                } else if (tierRandom < 0.7) {
                    gameState.attractiveness = (Math.random() * 0.4) + 6.0; // 6.0 to 6.4 (LHTN)
                } else if (tierRandom < 0.78) {
                    gameState.attractiveness = (Math.random() * 0.3) + 6.4; // 6.4 to 6.7 (HTN)
                } else if (tierRandom < 0.83) {
                    gameState.attractiveness = (Math.random() * 0.3) + 6.7; // 6.7 to 7.0 (CL)
                } else if (tierRandom < 0.845) {
                    gameState.attractiveness = (Math.random() * 0.5) + 7.0; // 7.0 to 7.5 (HCL)
                } else if (tierRandom < 0.85) {
                    gameState.attractiveness = (Math.random() * 0.4) + 7.5; // 7.5 to 7.9 (Chad)
                } else if (tierRandom < 0.8505) {
                    gameState.attractiveness = (Math.random() * 0.9) + 8.0; // 8.0 to 8.9 (Adamlite) - Extremely rare
                } else {
                    gameState.attractiveness = (Math.random() * 1.5) + 2.0; // 2.0 to 3.5 (Subhuman to LTN)
                }
                gameState.baseAttractiveness = gameState.attractiveness;
            }
           
            // Apply conditions that lower attractiveness
            if (gameState.downSyndrome) {
                gameState.attractiveness = Math.max(1, gameState.attractiveness - 2);
                gameState.baseAttractiveness = gameState.attractiveness;
            }
           
            if (gameState.fas) {
                gameState.attractiveness = Math.max(1, gameState.attractiveness - 1);
                gameState.baseAttractiveness = gameState.attractiveness;
            }
           
            // Set initial height based on age
            gameState.height = heightPercentiles[gameState.gender][0];
            gameState.weight = weightPercentiles[gameState.gender][0];
           
            // Generate random parent and grandparent genetics
            generateFamilyGenetics();
           
            // Calculate genetic potential based on family
            calculateGeneticPotential();
           
            // Set race based on probability (predetermined at birth)
            const raceRandom = Math.random();
            if (raceRandom < 0.6) gameState.race = "caucasian";
            else if (raceRandom < 0.75) gameState.race = "asian";
            else if (raceRandom < 0.85) gameState.race = "black";
            else if (raceRandom < 0.95) gameState.race = "hispanic";
            else gameState.race = "mixed";
           
            // Set eye color based on race
            const eyeColorsForRace = eyeColors[gameState.race];
            gameState.eyeColor = eyeColorsForRace[Math.floor(Math.random() * eyeColorsForRace.length)];
           
            // Set family class
            const classRandom = Math.random();
            if (classRandom < 0.4) gameState.familyClass = "lower";
            else if (classRandom < 0.8) gameState.familyClass = "middle";
            else gameState.familyClass = "upper";
           
            gameState.familySupport = familyClassModifiers[gameState.familyClass].support;
           
            // Initialize hair system
            initHairSystem();
           
            // Generate random traits (without conflicts)
            generateTraits();
           
            // Update UI
            updateUI();
           
            // Add initial log entry
            addLogEntry("You were born. Your genetic traits have been determined.");
            addLogEntry(`Your father is ${formatHeight(gameState.fatherHeight)} and your mother is ${formatHeight(gameState.motherHeight)}.`);
            addLogEntry(`You are ${gameState.gender}, ${gameState.race}, with ${gameState.eyeColor} eyes.`);
            addLogEntry(`Your family is ${gameState.familyClass} class.`);
           
            if (gameState.downSyndrome) {
                addLogEntry("You were born with Down Syndrome.", "warning");
            }
           
            if (gameState.fas) {
                addLogEntry("You have Fetal Alcohol Syndrome.", "warning");
            }
           
            if (gameState.trueAdam) {
                addLogEntry("MIRACLE! You were born as a True Adam (1 in 10 billion chance)!", "success");
            }
           
            // Set up tab functionality
            tabs.forEach(tab => {
                tab.addEventListener('click', () => {
                    const tabId = tab.getAttribute('data-tab');
                   
                    // Remove active class from all tabs and contents
                    tabs.forEach(t => t.classList.remove('active'));
                    tabContents.forEach(c => c.classList.remove('active'));
                   
                    // Add active class to current tab and content
                    tab.classList.add('active');
                    document.getElementById(`${tabId}-tab`).classList.add('active');
                });
            });
           
            // Set up modal buttons
            modalCancelBtn.addEventListener('click', () => {
                procedureModal.style.display = 'none';
            });
           
            modalConfirmBtn.addEventListener('click', () => {
                procedureModal.style.display = 'none';
                if (currentProcedure) {
                    performProcedure(currentProcedure);
                }
            });
           
            newLifeBtn.addEventListener('click', () => {
                generationModal.style.display = 'none';
                restartGame();
            });
           
            // Set up procedure buttons
            setupProcedureButton(bracesBtn, 'braces', 3000);
            setupProcedureButton(jawSurgeryBtn, 'jawSurgery', 15000);
            setupProcedureButton(buccalFatBtn, 'buccalFat', 4000);
            setupProcedureButton(rhinoplastyBtn, 'rhinoplasty', 8000);
            setupProcedureButton(limbLengtheningBtn, 'limbLengthening', 70000);
            setupProcedureButton(fillerBtn, 'filler', 2000);
            setupProcedureButton(harmonizationFillerBtn, 'harmonizationFiller', 5000);
            setupProcedureButton(palatalExpanderBtn, 'palatalExpander', 4000);
            setupProcedureButton(canthopexyBtn, 'canthopexy', 6000);
            setupProcedureButton(eyelidFillerBtn, 'eyelidFiller', 3500);
            setupProcedureButton(blepharoplastyBtn, 'blepharoplasty', 8000);
            setupProcedureButton(keratopigmentationBtn, 'keratopigmentation', 7000);
           
            // Set up peptide buttons
            setupProcedureButton(igf1Btn, 'igf1', 500);
            setupProcedureButton(mk677Btn, 'mk677', 300);
            setupProcedureButton(hghBtn, 'hgh', 1000);
            setupProcedureButton(ghkCuBtn, 'ghkCu', 200);
            setupProcedureButton(minoxidilBtn, 'minoxidil', 50);
            setupProcedureButton(meclizineBtn, 'meclizine', 400);
            setupProcedureButton(cjcIpaBtn, 'cjcIpa', 600);
           
            // Set up steroid buttons
            setupProcedureButton(trenboloneBtn, 'trenbolone', 300);
            setupProcedureButton(anavarBtn, 'anavar', 200);
           
            // Set up nutrition buttons
            basicMealBtn.addEventListener('click', () => eatMeal('basic', 5));
            healthyMealBtn.addEventListener('click', () => eatMeal('healthy', 15));
            gainWeightBtn.addEventListener('click', () => eatMeal('gain', 10));
            loseWeightBtn.addEventListener('click', () => eatMeal('lose', 12));
           
            // Set up dating buttons
            dateBtn.addEventListener('click', goOnDate);
            proposeBtn.addEventListener('click', proposeMarriage);
            haveChildBtn.addEventListener('click', haveChild);
            divorceBtn.addEventListener('click', initiateDivorce);
            confrontBtn.addEventListener('click', confrontCheating);
           
            // Set up forum button
            joinOrgBtn.addEventListener('click', joinOrg);
            postThreadBtn.addEventListener('click', () => forumAction('postThread'));
            commentBtn.addEventListener('click', () => forumAction('comment'));
            shareExperienceBtn.addEventListener('click', () => forumAction('shareExperience'));
            askAdviceBtn.addEventListener('click', () => forumAction('askAdvice'));
           
            // Set up family buttons
            askMoneyBtn.addEventListener('click', askForMoney);
            askBracesBtn.addEventListener('click', askForBraces);
            askExpanderBtn.addEventListener('click', askForExpander);
           
            // Set up social media buttons
            tiktokPostBtn.addEventListener('click', () => postOnSocialMedia('tiktok'));
            instagramPostBtn.addEventListener('click', () => postOnSocialMedia('instagram'));
           
            // Set up study buttons
            elementaryStudyBtn.addEventListener('click', () => study('elementary'));
            middleStudyBtn.addEventListener('click', () => study('middle'));
            highSchoolStudyBtn.addEventListener('click', () => study('highschool'));
            collegeStudyBtn.addEventListener('click', () => study('college'));
           
            // Set up job buttons
            fastfoodJobBtn.addEventListener('click', () => applyForJob('fastfood'));
            retailJobBtn.addEventListener('click', () => applyForJob('retail'));
            officeJobBtn.addEventListener('click', () => applyForJob('office'));
            developerJobBtn.addEventListener('click', () => applyForJob('developer'));
            scientistJobBtn.addEventListener('click', () => applyForJob('scientist'));
            surgeonJobBtn.addEventListener('click', () => applyForJob('surgeon'));
           
            // Set up hair buttons
            basicHaircutBtn.addEventListener('click', () => getHaircut('basic'));
            premiumStyleBtn.addEventListener('click', () => getHaircut('premium'));
            dreadlocksBtn.addEventListener('click', () => setHairstyle('dreadlocks'));
            braidsBtn.addEventListener('click', () => setHairstyle('braids'));
            twistsBtn.addEventListener('click', () => setHairstyle('twists'));
            undercutBtn.addEventListener('click', () => setHairstyle('undercut'));
           
            // Set up archetype buttons
            prettyBoyBtn.addEventListener('click', () => selectArchetype('prettyBoy'));
            slenderTriadBtn.addEventListener('click', () => selectArchetype('slenderTriad'));
            ogreBtn.addEventListener('click', () => selectArchetype('ogre'));
            asianBaddieBtn.addEventListener('click', () => selectArchetype('asianBaddie'));
            latinaBaddieBtn.addEventListener('click', () => selectArchetype('latinaBaddie'));
            baddieBtn.addEventListener('click', () => selectArchetype('baddie'));
           
            // Set up other buttons
            ageBtn.addEventListener('click', ageUp);
            skincareBtn.addEventListener('click', doSkincare);
            gymBtn.addEventListener('click', doGymWorkout);
            studyBtn.addEventListener('click', doStudy);
            workBtn.addEventListener('click', doWork);
            fraudBtn.addEventListener('click', doFrauding);
            diyFillerBtn.addEventListener('click', doDiyFiller);
            ropeBtn.addEventListener('click', rope);
        }

        // Initialize hair system based on race
        function initHairSystem() {
            if (gameState.race === "mixed") {
                // Combine all hair types for mixed race
                const allTypes = [...hairTypesByRace.caucasian, ...hairTypesByRace.asian,
                                 ...hairTypesByRace.black, ...hairTypesByRace.hispanic];
                gameState.hairType = allTypes[Math.floor(Math.random() * allTypes.length)];
            } else {
                const types = hairTypesByRace[gameState.race];
                gameState.hairType = types[Math.floor(Math.random() * types.length)];
            }
           
            // Set initial hair length based on age
            gameState.hairLength = Math.min(30, gameState.age * 2);
        }

        // Generate family genetics
        function generateFamilyGenetics() {
            // Generate grandparent heights
            gameState.paternalGrandfatherHeight = Math.floor(Math.random() * 10) + 66; // 5'6" to 6'4"
            gameState.paternalGrandmotherHeight = Math.floor(Math.random() * 10) + 60; // 5'0" to 5'10"
            gameState.maternalGrandfatherHeight = Math.floor(Math.random() * 10) + 66; // 5'6" to 6'4"
            gameState.maternalGrandmotherHeight = Math.floor(Math.random() * 10) + 60; // 5'0" to 5'10"
           
            // Calculate parent heights based on grandparents (simplified)
            gameState.fatherHeight = Math.floor((gameState.paternalGrandfatherHeight + gameState.paternalGrandmotherHeight + 5) / 2);
            gameState.motherHeight = Math.floor((gameState.maternalGrandfatherHeight + gameState.maternalGrandmotherHeight) / 2);
        }

        // Calculate genetic potential based on family
        function calculateGeneticPotential() {
            // Calculate height potential based on family heights
            const maleHeightPotential = (gameState.fatherHeight + gameState.paternalGrandfatherHeight + gameState.maternalGrandfatherHeight) / 3;
            const femaleHeightPotential = (gameState.motherHeight + gameState.paternalGrandmotherHeight + gameState.maternalGrandmotherHeight) / 3;
           
            // Adjust for gender
            const heightPotential = gameState.gender === "male" ? maleHeightPotential : femaleHeightPotential;
           
            // Convert to genetic potential (0 to 1 scale)
            gameState.geneticPotential = (heightPotential - 74) / 12; // 5'4" to 7'4" becomes 0 to 1
            gameState.geneticPotential = Math.max(0, Math.min(1, gameState.geneticPotential));
        }

        // Format height in feet and inches
        function formatHeight(inches) {
            const feet = Math.floor(inches / 12);
            const remainingInches = inches % 12;
            return `${feet}'${remainingInches}"`;
        }

        // Generate random traits without conflicts
        function generateTraits() {
            const attractivePhysicalTraits = [
                "Symmetrical Face", "Wide Clavicles", "Broad Shoulders", "Tall Stature",
                "Good Body Fat Distribution", "V-Taper Torso", "Long Limbs", "Good Posture"
            ];
           
            const attractiveFacialTraits = [
                "Positive Canthal Tilt", "Forward Grown Maxilla", "Strong Jawline",
                "High Cheekbones", "Harmonious Features", "Good Facial Balance",
                "Hooded Eyes", "Defined Cupid's Bow"
            ];
           
            const attractiveSkinTraits = [
                "Clear Skin", "Even Skin Tone", "Smooth Texture"
            ];
           
            const unattractivePhysicalTraits = [
                "Narrow Clavicles", "Short Stature", "Poor Body Fat Distribution",
                "Round Shoulders", "Small Frame", "Poor Posture", "Short Neck",
                "Small Wrists"
            ];
           
            const unattractiveFacialTraits = [
                "Recessed Maxilla", "Recessed Chin", "Negative Canthal Tilt",
                "Asymmetrical Features", "Poor Facial Harmony", "Bug Eyes",
                "Thin Lips", "Weak Jawline", "Malocclusion"
            ];
           
            const unattractiveSkinTraits = [
                "Acne", "Cystic Acne", "Hyperpigmentation", "Rosacea", "Large Pores",
                "Scarring", "Oily Skin", "Dry Skin"
            ];
           
            const healthTraits = [
                "Good Metabolism", "Good Immune System", "Fast Recovery",
                "Healthy Skin", "Thick Hair", "Good Cardiovascular Health"
            ];
           
            const negativeHealthTraits = [
                "Acne-Prone Skin", "Poor Metabolism", "Weak Immune System",
                "Slow Recovery", "Balding Genes", "Allergies", "Asthma"
            ];
           
            // Clear current traits
            gameState.physicalTraits = [];
            gameState.facialTraits = [];
            gameState.skinTraits = [];
            gameState.healthTraits = [];
            gameState.negativePhysical = [];
            gameState.negativeFacial = [];
            gameState.negativeSkin = [];
            gameState.negativeHealth = [];
           
            // Add physical traits based on genetic potential
            const physicalTraitCount = Math.floor(gameState.geneticPotential * 3) + 1;
            for (let i = 0; i < physicalTraitCount; i++) {
                const trait = attractivePhysicalTraits[Math.floor(Math.random() * attractivePhysicalTraits.length)];
                if (!gameState.physicalTraits.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.physicalTraits.push(trait);
                }
            }
           
            // Add facial traits based on genetic potential
            const facialTraitCount = Math.floor(gameState.geneticPotential * 3) + 1;
            for (let i = 0; i < facialTraitCount; i++) {
                const trait = attractiveFacialTraits[Math.floor(Math.random() * attractiveFacialTraits.length)];
                if (!gameState.facialTraits.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.facialTraits.push(trait);
                }
            }
           
            // Add skin traits
            const skinTraitCount = Math.floor(Math.random() * 2) + 1;
            for (let i = 0; i < skinTraitCount; i++) {
                const trait = attractiveSkinTraits[Math.floor(Math.random() * attractiveSkinTraits.length)];
                if (!gameState.skinTraits.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.skinTraits.push(trait);
                }
            }
           
            // Add health traits
            const healthTraitCount = Math.floor(Math.random() * 3) + 1;
            for (let i = 0; i < healthTraitCount; i++) {
                const trait = healthTraits[Math.floor(Math.random() * healthTraits.length)];
                if (!gameState.healthTraits.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.healthTraits.push(trait);
                }
            }
           
            // Add negative physical traits (more likely with lower genetic potential)
            const negativePhysicalCount = Math.floor((1 - gameState.geneticPotential) * 3) + 1;
            for (let i = 0; i < negativePhysicalCount; i++) {
                const trait = unattractivePhysicalTraits[Math.floor(Math.random() * unattractivePhysicalTraits.length)];
                if (!gameState.negativePhysical.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.negativePhysical.push(trait);
                }
            }
           
            // Add negative facial traits (more likely with lower genetic potential)
            const negativeFacialCount = Math.floor((1 - gameState.geneticPotential) * 3) + 1;
            for (let i = 0; i < negativeFacialCount; i++) {
                const trait = unattractiveFacialTraits[Math.floor(Math.random() * unattractiveFacialTraits.length)];
                if (!gameState.negativeFacial.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.negativeFacial.push(trait);
                }
            }
           
            // Add negative skin traits
            const negativeSkinCount = Math.floor(Math.random() * 3);
            for (let i = 0; i < negativeSkinCount; i++) {
                const trait = unattractiveSkinTraits[Math.floor(Math.random() * unattractiveSkinTraits.length)];
                if (!gameState.negativeSkin.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.negativeSkin.push(trait);
                }
            }
           
            // Add negative health traits
            const negativeHealthCount = Math.floor(Math.random() * 2);
            for (let i = 0; i < negativeHealthCount; i++) {
                const trait = negativeHealthTraits[Math.floor(Math.random() * negativeHealthTraits.length)];
                if (!gameState.negativeHealth.includes(trait) && !hasConflictingTrait(trait)) {
                    gameState.negativeHealth.push(trait);
                }
            }
           
            // Add facial asymmetry if applicable
            if (gameState.facialAsymmetry) {
                gameState.negativeFacial.push("Facial Asymmetry");
            }
           
            // Add gender-specific traits
            if (gameState.gender === "female") {
                // Female-specific traits
                const feminineTraitCount = Math.floor(gameState.geneticPotential * 2) + 1;
                for (let i = 0; i < feminineTraitCount; i++) {
                    const trait = ["Wide Hips", "Narrow Shoulders", "Balanced Physique", "Clear Skin", "Good Fat Distribution"][Math.floor(Math.random() * 5)];
                    if (!gameState.physicalTraits.includes(trait) && !hasConflictingTrait(trait)) {
                        gameState.physicalTraits.push(trait);
                    }
                }
               
                // Female-specific failos
                if (Math.random() < 0.3) {
                    gameState.negativePhysical.push("Breast Asymmetry");
                }
               
                if (Math.random() < 0.2) {
                    gameState.negativeFacial.push("Masculinized Jaw");
                }
            } else {
                // Male-specific traits
                const masculineTraitCount = Math.floor(gameState.geneticPotential * 2) + 1;
                for (let i = 0; i < masculineTraitCount; i++) {
                    const trait = ["Broad Shoulders", "Strong Jawline", "V-Taper Torso", "Defined Features"][Math.floor(Math.random() * 4)];
                    if (!gameState.physicalTraits.includes(trait) && !hasConflictingTrait(trait)) {
                        gameState.physicalTraits.push(trait);
                    }
                }
            }
        }

        // Check for conflicting traits
        function hasConflictingTrait(trait) {
            const conflicts = {
                "Good Metabolism": ["Poor Metabolism"],
                "Poor Metabolism": ["Good Metabolism"],
                "Good Immune System": ["Weak Immune System"],
                "Weak Immune System": ["Good Immune System"],
                "Fast Recovery": ["Slow Recovery"],
                "Slow Recovery": ["Fast Recovery"],
                "Clear Skin": ["Acne", "Cystic Acne", "Hyperpigmentation", "Rosacea", "Oily Skin", "Dry Skin"],
                "Acne": ["Clear Skin"],
                "Cystic Acne": ["Clear Skin"],
                "Hyperpigmentation": ["Clear Skin"],
                "Rosacea": ["Clear Skin"],
                "Oily Skin": ["Clear Skin"],
                "Dry Skin": ["Clear Skin"]
            };
           
            if (conflicts[trait]) {
                for (const conflictingTrait of conflicts[trait]) {
                    if (gameState.physicalTraits.includes(conflictingTrait) ||
                        gameState.facialTraits.includes(conflictingTrait) ||
                        gameState.skinTraits.includes(conflictingTrait) ||
                        gameState.healthTraits.includes(conflictingTrait) ||
                        gameState.negativePhysical.includes(conflictingTrait) ||
                        gameState.negativeFacial.includes(conflictingTrait) ||
                        gameState.negativeSkin.includes(conflictingTrait) ||
                        gameState.negativeHealth.includes(conflictingTrait)) {
                        return true;
                    }
                }
            }
           
            return false;
        }

        // Update the UI with current game state
        function updateUI() {
            // Update basic stats
            ageValue.textContent = `${gameState.age} years old`;
            neuroStatus.textContent = gameState.neuroStatus;
            iqValue.textContent = gameState.iq;
            iqPotential.textContent = gameState.iqPotential;
            heightValue.textContent = formatHeight(gameState.height);
            healthValue.textContent = getHealthStatus();
            moneyValue.textContent = `$${gameState.money}`;
            socialValue.textContent = getSocialStatus();
            raceValue.textContent = gameState.race.charAt(0).toUpperCase() + gameState.race.slice(1);
            eyeColorValue.textContent = gameState.eyeColor.charAt(0).toUpperCase() + gameState.eyeColor.slice(1);
            smvValue.textContent = gameState.smv.toFixed(1);
            statusValue.textContent = gameState.status;
            followersValue.textContent = gameState.followers;
            humorValue.textContent = gameState.humor;
           
            // Update weight and BMI
            weightValue.textContent = `${gameState.weight} lbs`;
           
            // Calculate BMI: (weight in pounds / (height in inches)^2) * 703
            gameState.bmi = (gameState.weight / (gameState.height * gameState.height)) * 703;
            bmiValue.textContent = gameState.bmi.toFixed(1);
           
            // Update BMI status
            let bmiStatusText = "";
            let bmiStatusClass = "";
           
            if (gameState.bmi < 18.5) {
                bmiStatusText = "Underweight";
                bmiStatusClass = "underweight";
            } else if (gameState.bmi < 25) {
                bmiStatusText = "Normal";
                bmiStatusClass = "normal";
            } else if (gameState.bmi < 30) {
                bmiStatusText = "Overweight";
                bmiStatusClass = "overweight";
            } else {
                bmiStatusText = "Obese";
                bmiStatusClass = "obese";
            }
           
            bmiStatus.textContent = bmiStatusText;
            bmiStatus.className = "bmi-status " + bmiStatusClass;
           
            // Update BMI progress bar (18.5-24.9 is normal range)
            const bmiProgressValue = Math.max(0, Math.min(100, (gameState.bmi - 15) * 5));
            bmiProgress.style.width = `${bmiProgressValue}%`;
           
            // Update bone mass
            boneMassValue.textContent = getBoneMassStatus();
            boneMassProgress.style.width = `${gameState.boneMass}%`;
           
            // Update genetic display
            fatherHeight.textContent = formatHeight(gameState.fatherHeight);
            motherHeight.textContent = formatHeight(gameState.motherHeight);
            parentBone.textContent = gameState.geneticPotential > 0.6 ? "Good" : gameState.geneticPotential > 0.4 ? "Average" : "Poor";
            geneticPotential.textContent = gameState.geneticPotential > 0.6 ? "High" : gameState.geneticPotential > 0.4 ? "Medium" : "Low";
           
            // Update family class display
            familyClassValue.textContent = gameState.familyClass.charAt(0).toUpperCase() + gameState.familyClass.slice(1);
            familyClassValue.className = "family-class " + gameState.familyClass + "-class";
            familySupport.textContent = `$${gameState.familySupport}`;
            familyClassText.textContent = gameState.familyClass;
           
            // Update height percentile
            updateHeightPercentile();
            heightPercentile.style.width = `${gameState.heightPercentile}%`;
            heightPercentileValue.textContent = `${gameState.heightPercentile}%`;
            tallerThan.textContent = `${gameState.heightPercentile}%`;
           
            // Update attractiveness tier
            const tier = getCurrentTier();
            attractivenessValue.textContent = tier.name;
           
            // Set tier badge text based on tier name
            let tierBadgeText = "";
            if (tier.name === "Subhuman") tierBadgeText = "SUB";
            else if (tier.name === "Low Tier Normie") tierBadgeText = "LTN";
            else if (tier.name === "High Low Tier Normie") tierBadgeText = "HLTN";
            else if (tier.name === "Low Mid Tier Normie") tierBadgeText = "LMTN";
            else if (tier.name === "High Mid Tier Normie") tierBadgeText = "HMTN";
            else if (tier.name === "Low High Tier Normie") tierBadgeText = "LHTN";
            else if (tier.name === "High Tier Normie") tierBadgeText = "HTN";
            else if (tier.name === "Chad Lite") tierBadgeText = "CL";
            else if (tier.name === "High Chad Lite") tierBadgeText = "HCL";
            else if (tier.name === "Chad") tierBadgeText = "CHAD";
            else if (tier.name === "Adamlite") tierBadgeText = "AL";
            else if (tier.name === "True Adam") tierBadgeText = "TA";
           
            tierBadge.textContent = tierBadgeText;
            tierBadge.className = "tier-badge " + tier.class;
           
            // Check if tier has decreased
            if (tier.name !== gameState.previousTier && gameState.age > 0) {
                const previousTierIndex = tiers.findIndex(t => t.name === gameState.previousTier);
                const currentTierIndex = tiers.findIndex(t => t.name === tier.name);
               
                if (currentTierIndex < previousTierIndex) {
                    addLogEntry(`Your attractiveness tier has decreased from ${gameState.previousTier} to ${tier.name}!`, "danger");
                }
            }
           
            gameState.previousTier = tier.name;
           
            // Update .org status if on forum
            if (gameState.onForum) {
                orgStatusContainer.style.display = 'block';
                let orgStatusClass = 'gray-status';
                let orgStatusText = 'Gray';
               
                if (gameState.orgStatus === 'known') {
                    orgStatusClass = 'known-status';
                    orgStatusText = 'Known';
                } else if (gameState.orgStatus === 'contributor') {
                    orgStatusClass = 'contributor-status';
                    orgStatusText = 'Contributor';
                } else if (gameState.orgStatus === 'orgmaster') {
                    orgStatusClass = 'orgmaster-status';
                    orgStatusText = '.org Master';
                }
               
                orgStatusValue.className = 'status-badge ' + orgStatusClass;
                orgStatusValue.textContent = orgStatusText;
               
                forumStatus.textContent = 'Member';
                forumJoinContainer.style.display = 'none';
                forumActionsContainer.style.display = 'block';
            } else {
                orgStatusContainer.style.display = 'none';
                forumStatus.textContent = 'Not a member';
                forumJoinContainer.style.display = 'block';
                forumActionsContainer.style.display = 'none';
            }
           
            // Enable/disable .org join button based on age
            joinOrgBtn.disabled = gameState.age < 13;
           
            // Update social media status
            if (gameState.socialMediaStatus !== "none") {
                socialMediaStatusContainer.style.display = 'block';
                let statusText = "No Presence";
               
                if (gameState.socialMediaStatus === "lolcow") {
                    statusText = "Lolcow (Negative Attention)";
                } else if (gameState.socialMediaStatus === "influencer") {
                    statusText = "Influencer (" + gameState.followers + " followers)";
                } else if (gameState.socialMediaStatus === "viral") {
                    statusText = "Viral Star (" + gameState.followers + " followers)";
                }
               
                socialMediaStatusValue.textContent = statusText;
            } else {
                socialMediaStatusContainer.style.display = 'none';
            }
           
            // Update relationship status
            if (gameState.age >= 16) {
                relationshipContainer.style.display = 'block';
               
                let relationshipText = "";
                let relationshipClass = "";
               
                if (gameState.relationshipStatus === "single") {
                    relationshipText = "Single";
                    relationshipClass = "single";
                } else if (gameState.relationshipStatus === "dating") {
                    relationshipText = "Dating";
                    relationshipClass = "dating";
                } else if (gameState.relationshipStatus === "married") {
                    relationshipText = "Married";
                    relationshipClass = "married";
                }
               
                relationshipStatusValue.textContent = relationshipText;
                relationshipStatusValue.className = "relationship-status " + relationshipClass;
               
                // Show partner info if in a relationship
                if (gameState.relationshipStatus !== "single" && gameState.partner) {
                    partnerInfoContainer.style.display = 'block';
                    partnerName.textContent = gameState.partner.name;
                    partnerAttractiveness.textContent = gameState.partner.attractiveness.toFixed(1);
                    partnerHeight.textContent = formatHeight(gameState.partner.height);
                    childrenCount.textContent = gameState.children.length;
                   
                    // Show children if any
                    if (gameState.children.length > 0) {
                        childrenContainer.style.display = 'block';
                        childrenContainer.innerHTML = '';
                       
                        gameState.children.forEach((child, index) => {
                            const childEl = document.createElement('div');
                            childEl.className = 'child-item';
                            childEl.textContent = `Child ${index + 1}: ${formatHeight(child.height)} tall, ${child.attractiveness.toFixed(1)} SMV`;
                            childrenContainer.appendChild(childEl);
                        });
                    } else {
                        childrenContainer.style.display = 'none';
                    }
                } else {
                    partnerInfoContainer.style.display = 'none';
                }
            } else {
                relationshipContainer.style.display = 'none';
            }
           
            // Update dating tab
            if (gameState.age < 16) {
                datingStatusText.textContent = "too young to date";
                datingActions.style.display = 'none';
            } else {
                datingActions.style.display = 'block';
               
                if (gameState.relationshipStatus === "single") {
                    datingStatusText.textContent = "single and looking";
                    dateBtn.style.display = 'block';
                    proposeBtn.style.display = 'none';
                    haveChildBtn.style.display = 'none';
                    divorceBtn.style.display = 'none';
                    confrontBtn.style.display = 'none';
                } else if (gameState.relationshipStatus === "dating") {
                    datingStatusText.textContent = `dating ${gameState.partner.name}`;
                    dateBtn.style.display = 'none';
                    proposeBtn.style.display = 'block';
                    haveChildBtn.style.display = 'none';
                    divorceBtn.style.display = 'none';
                    confrontBtn.style.display = 'none';
                } else if (gameState.relationshipStatus === "married") {
                    datingStatusText.textContent = `married to ${gameState.partner.name}`;
                    dateBtn.style.display = 'none';
                    proposeBtn.style.display = 'none';
                    haveChildBtn.style.display = 'block';
                    divorceBtn.style.display = 'block';
                   
                    // Show confront button if cheating is detected
                    if (gameState.partnerCheating) {
                        confrontBtn.style.display = 'block';
                    } else {
                        confrontBtn.style.display = 'none';
                    }
                }
               
                // Show cheating indicator if married
                if (gameState.relationshipStatus === "married") {
                    cheatingIndicator.style.display = 'block';
                    let riskText = "Low";
                    let riskClass = "low-risk";
                   
                    if (gameState.cheatingRisk > 70) {
                        riskText = "High";
                        riskClass = "high-risk";
                    } else if (gameState.cheatingRisk > 40) {
                        riskText = "Medium";
                        riskClass = "medium-risk";
                    }
                   
                    cheatingRiskValue.textContent = riskText;
                    cheatingRiskValue.className = "cheating-risk " + riskClass;
                } else {
                    cheatingIndicator.style.display = 'none';
                }
            }
           
            // Update hair UI
            hairTypeDisplay.textContent = gameState.hairType;
           
            let lengthText = "Short";
            if (gameState.hairLength > 70) lengthText = "Very Long";
            else if (gameState.hairLength > 50) lengthText = "Long";
            else if (gameState.hairLength > 30) lengthText = "Medium";
           
            hairLengthDisplay.textContent = lengthText;
           
            let healthText = "Healthy";
            if (gameState.hairHealth > 80) healthText = "Very Healthy";
            else if (gameState.hairHealth > 60) healthText = "Healthy";
            else if (gameState.hairHealth > 40) healthText = "Damaged";
            else if (gameState.hairHealth > 20) healthText = "Very Damaged";
            else healthText = "Unhealthy";
           
            hairHealthDisplay.textContent = healthText;
            hairHealthBar.style.width = `${gameState.hairHealth}%`;
           
            // Update progress bars
            ageProgress.style.width = `${(gameState.age / 80) * 100}%`;
            iqProgress.style.width = `${((gameState.iq - 70) / 60) * 100}%`;
            heightProgress.style.width = `${((gameState.height - 20) / 60) * 100}%`;
            healthProgress.style.width = `${gameState.health}%`;
            socialProgress.style.width = `${gameState.socialStatus}%`;
           
            // Update traits
            physicalTraits.innerHTML = '';
            gameState.physicalTraits.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait';
                traitEl.textContent = trait;
                physicalTraits.appendChild(traitEl);
            });
           
            gameState.negativePhysical.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait negative-trait';
                traitEl.textContent = trait;
                physicalTraits.appendChild(traitEl);
            });
           
            facialTraits.innerHTML = '';
            gameState.facialTraits.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait';
                traitEl.textContent = trait;
                facialTraits.appendChild(traitEl);
            });
           
            gameState.negativeFacial.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait negative-trait';
                traitEl.textContent = trait;
                facialTraits.appendChild(traitEl);
            });
           
            skinTraits.innerHTML = '';
            gameState.skinTraits.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait';
                traitEl.textContent = trait;
                skinTraits.appendChild(traitEl);
            });
           
            gameState.negativeSkin.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait negative-trait';
                traitEl.textContent = trait;
                skinTraits.appendChild(traitEl);
            });
           
            healthTraits.innerHTML = '';
            gameState.healthTraits.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait';
                traitEl.textContent = trait;
                healthTraits.appendChild(traitEl);
            });
           
            gameState.negativeHealth.forEach(trait => {
                const traitEl = document.createElement('div');
                traitEl.className = 'trait negative-trait';
                traitEl.textContent = trait;
                healthTraits.appendChild(traitEl);
            });
           
            // Update button states
            surgeryBtn.disabled = gameState.age < 18 || gameState.money < 5000;
            skincareBtn.disabled = gameState.money < 50;
            gymBtn.disabled = gameState.money < 30 || gameState.gymAscension >= 2;
            studyBtn.disabled = gameState.money < 20 || gameState.iq >= gameState.iqPotential;
            workBtn.disabled = gameState.age < 16;
            fraudBtn.disabled = gameState.money < 20;
            diyFillerBtn.disabled = gameState.money < 100 || gameState.age < 11;
           
            // Update procedure buttons
            updateProcedureButton(bracesBtn, 3000);
            updateProcedureButton(jawSurgeryBtn, 15000);
            updateProcedureButton(buccalFatBtn, 4000);
            updateProcedureButton(rhinoplastyBtn, 8000);
            updateProcedureButton(limbLengtheningBtn, 70000);
            updateProcedureButton(fillerBtn, 2000);
            updateProcedureButton(harmonizationFillerBtn, 5000);
            updateProcedureButton(palatalExpanderBtn, 4000, gameState.age >= 16);
            updateProcedureButton(canthopexyBtn, 6000);
            updateProcedureButton(eyelidFillerBtn, 3500);
            updateProcedureButton(blepharoplastyBtn, 8000);
            updateProcedureButton(keratopigmentationBtn, 7000);
           
            // Update peptide buttons (available only from age 12)
            updatePeptideButton(igf1Btn, 500, gameState.age >= 12);
            updatePeptideButton(mk677Btn, 300, gameState.age >= 12);
            updatePeptideButton(hghBtn, 1000, gameState.age >= 12);
            updatePeptideButton(ghkCuBtn, 200, gameState.age >= 12);
            updatePeptideButton(minoxidilBtn, 50, gameState.age >= 12);
            updatePeptideButton(meclizineBtn, 400, gameState.age >= 12);
            updatePeptideButton(cjcIpaBtn, 600, gameState.age >= 12);
           
            // Update steroid buttons
            updateProcedureButton(trenboloneBtn, 300, gameState.age >= 18);
            updateProcedureButton(anavarBtn, 200, gameState.age >= 18);
           
            // Update family buttons (ask for money only available from age 12)
            askMoneyBtn.disabled = gameState.familySupport <= 0 || gameState.age < 12;
            askBracesBtn.disabled = gameState.familySupport < 3000 || gameState.proceduresDone.includes("braces");
            askExpanderBtn.disabled = gameState.familySupport < 4000 || gameState.age >= 16 || gameState.proceduresDone.includes("palatalExpander");
           
            // Update study buttons based on age
            elementaryStudyBtn.disabled = gameState.age > 12;
            middleStudyBtn.disabled = gameState.age < 12 || gameState.age > 15;
            highSchoolStudyBtn.disabled = gameState.age < 15 || gameState.age > 18;
            collegeStudyBtn.disabled = gameState.age < 18;
           
            // Update job buttons based on IQ requirements
            updateJobButton(fastfoodJobBtn, 0);
            updateJobButton(retailJobBtn, 85);
            updateJobButton(officeJobBtn, 95);
            updateJobButton(developerJobBtn, 110);
            updateJobButton(scientistJobBtn, 120);
            updateJobButton(surgeonJobBtn, 130);
           
            // Update TikTok button based on age
            tiktokPostBtn.disabled = gameState.age < 13;
           
            // Update nutrition buttons
            basicMealBtn.disabled = gameState.money < 5;
            healthyMealBtn.disabled = gameState.money < 15;
            gainWeightBtn.disabled = gameState.money < 10;
            loseWeightBtn.disabled = gameState.money < 12;
           
            // Update hair buttons
            basicHaircutBtn.disabled = gameState.money < 30;
            premiumStyleBtn.disabled = gameState.money < 100;
            dreadlocksBtn.disabled = gameState.money < 200;
            braidsBtn.disabled = gameState.money < 150;
            twistsBtn.disabled = gameState.money < 180;
            undercutBtn.disabled = gameState.money < 60;
           
            // Update archetype buttons
            updateArchetypeButtons();
        }

        // Get bone mass status text
        function getBoneMassStatus() {
            if (gameState.boneMass >= 80) return "Dense";
            if (gameState.boneMass >= 60) return "Strong";
            if (gameState.boneMass >= 40) return "Normal";
            if (gameState.boneMass >= 20) return "Weak";
            return "Fragile";
        }

        // Update height percentile based on age and gender
        function updateHeightPercentile() {
            const baseHeight = heightPercentiles[gameState.gender][gameState.age];
            const heightDifference = gameState.height - baseHeight;
           
            // Calculate percentile based on difference from average
            if (heightDifference < -4) {
                gameState.heightPercentile = 10;
            } else if (heightDifference < -2) {
                gameState.heightPercentile = 25;
            } else if (heightDifference < 0) {
                gameState.heightPercentile = 40;
            } else if (heightDifference < 2) {
                gameState.heightPercentile = 60;
            } else if (heightDifference < 4) {
                gameState.heightPercentile = 75;
            } else if (heightDifference < 6) {
                gameState.heightPercentile = 85;
            } else if (heightDifference < 8) {
                gameState.heightPercentile = 90;
            } else if (heightDifference < 10) {
                gameState.heightPercentile = 95;
            } else {
                gameState.heightPercentile = 99;
            }
           
            // Make above average height uncommon and very tall rare
            if (gameState.height > 74) { // 6'2"
                gameState.heightPercentile = 99;
            } else if (gameState.height > 72) { // 6'0"
                gameState.heightPercentile = 90;
            } else if (gameState.height > 70) { // 5'10"
                gameState.heightPercentile = 75;
            }
        }

        // Get current attractiveness tier
        function getCurrentTier() {
            for (const tier of tiers) {
                if (gameState.attractiveness >= tier.min && gameState.attractiveness <= tier.max) {
                    return tier;
                }
            }
            return tiers[2]; // Default to High Low Tier Normie
        }

        // Get health status text
        function getHealthStatus() {
            if (gameState.health >= 80) return "Excellent";
            if (gameState.health >= 60) return "Good";
            if (gameState.health >= 40) return "Fair";
            if (gameState.health >= 20) return "Poor";
            return "Critical";
        }

        // Get social status text
        function getSocialStatus() {
            if (gameState.socialStatus >= 80) return "Popular";
            if (gameState.socialStatus >= 60) return "Liked";
            if (gameState.socialStatus >= 40) return "Neutral";
            if (gameState.socialStatus >= 20) return "Disliked";
            return "Bullied";
        }

        // Add a log entry
        function addLogEntry(message, type = "info") {
            const logEntry = document.createElement('div');
            logEntry.className = 'log-entry';
           
            let className = "";
            if (type === "success") className = "success";
            if (type === "danger") className = "danger";
            if (type === "warning") className = "warning";
           
            logEntry.innerHTML = `<span class="age-badge">Age ${gameState.age}</span> ${message}`;
            if (className) logEntry.classList.add(className);
           
            gameLog.appendChild(logEntry);
            gameLog.scrollTop = gameLog.scrollHeight;
        }

        // Setup procedure button
        function setupProcedureButton(button, procedure, cost) {
            button.addEventListener('click', () => {
                if (gameState.money >= cost) {
                    currentProcedure = procedure;
                    showProcedureModal(procedure, cost);
                }
            });
        }

        // Update procedure button state
        function updateProcedureButton(button, cost, additionalCondition = true) {
            button.disabled = gameState.money < cost || !additionalCondition;
        }

        // Update peptide button state (available only from age 12)
        function updatePeptideButton(button, cost, additionalCondition = true) {
            button.disabled = gameState.money < cost || !additionalCondition;
        }

        // Update job button state
        function updateJobButton(button, iqReq) {
            const job = jobs.find(j => j.id === button.id.replace('-job-btn', ''));
            const hasDegree = gameState.schoolLevel === "college" && gameState.age >= 22;
            button.disabled = gameState.iq < iqReq || gameState.currentJob === job.id || (job.degreeReq && !hasDegree);
        }

        // Update archetype button states
        function updateArchetypeButtons() {
            prettyBoyBtn.disabled = !canSelectArchetype('prettyBoy');
            slenderTriadBtn.disabled = !canSelectArchetype('slenderTriad');
            ogreBtn.disabled = !canSelectArchetype('ogre');
            asianBaddieBtn.disabled = !canSelectArchetype('asianBaddie');
            latinaBaddieBtn.disabled = !canSelectArchetype('latinaBaddie');
            baddieBtn.disabled = !canSelectArchetype('baddie');
           
            // Male archetypes require .org membership
            if (gameState.gender === "male") {
                prettyBoyBtn.disabled = prettyBoyBtn.disabled || !gameState.onForum;
                slenderTriadBtn.disabled = slenderTriadBtn.disabled || !gameState.onForum;
                ogreBtn.disabled = ogreBtn.disabled || !gameState.onForum;
            }
        }

        // Check if player can select an archetype
        function canSelectArchetype(archetype) {
            const tier = getCurrentTier();
           
            switch(archetype) {
                case 'prettyBoy':
                    return tier.min >= 5.5 &&
                           gameState.height >= 70 &&
                           !gameState.negativeSkin.includes("Acne") &&
                           !gameState.negativeSkin.includes("Cystic Acne") &&
                           gameState.feminineTraits > 60;
               
                case 'slenderTriad':
                    return gameState.height >= 72 &&
                           gameState.bmi < 18.5 &&
                           gameState.negativePhysical.includes("Narrow Clavicles");
               
                case 'ogre':
                    return (tier.min >= 7.6 || tier.max <= 2.9) &&
                           gameState.height >= 72 &&
                           gameState.boneMass > 70;
               
                case 'asianBaddie':
                    return gameState.race === "asian" &&
                           tier.min >= 5.0 &&
                           hasIdealRatios();
               
                case 'latinaBaddie':
                    return gameState.race === "hispanic" &&
                           tier.min >= 5.0 &&
                           hasIdealRatios();
               
                case 'baddie':
                    return tier.min >= 5.0 &&
                           hasIdealRatios() &&
                           gameState.negativeFacial.length === 0;
            }
           
            return false;
        }

        // Check if player has ideal facial/body ratios
        function hasIdealRatios() {
            // Simplified check for ideal ratios
            return Math.random() > 0.7; // 30% chance of having ideal ratios
        }

        // Show procedure modal
        function showProcedureModal(procedure, cost) {
            let title = "";
            let description = "";
            let risk = "";
           
            switch(procedure) {
                case 'braces':
                    title = "Braces";
                    description = "Corrects malocclusion and straightens teeth. Risk of botch if no dental issues present.";
                    risk = "Medium";
                    break;
                case 'jawSurgery':
                    title = "Jaw Surgery";
                    description = "Fixes recessed maxilla or mandible. Significant improvement to facial structure but high risk of complications.";
                    risk = "High";
                    break;
                case 'buccalFat':
                    title = "Buccal Fat Removal";
                    description = "Removes cheek fat for more defined cheekbones. Can cause premature aging if overdone.";
                    risk = "Medium";
                    break;
                case 'rhinoplasty':
                    title = "Rhinoplasty";
                    description = "Reshapes the nose. High botch potential but can significantly improve facial harmony.";
                    risk = "High";
                    break;
                case 'limbLengthening':
                    title = "Limb Lengthening Surgery";
                    description = "Increases height by 3-4 inches. Extremely painful and risky with long recovery time.";
                    risk = "High";
                    break;
                case 'filler':
                    title = "Professional Filler";
                    description = "Adds volume to lips, cheeks, or jawline. Low risk but temporary results.";
                    risk = "Low";
                    break;
                case 'harmonizationFiller':
                    title = "Facial Harmonization Filler";
                    description = "Advanced filler techniques to improve facial harmony and balance. Can push past natural hardcaps and ascend up to 2 tiers.";
                    risk = "Medium";
                    break;
                case 'palatalExpander':
                    title = "Palatal Expander";
                    description = "Widens the upper jaw. Only effective before age 16. Risk of fusion with peptides.";
                    risk = "Medium";
                    break;
                case 'canthopexy':
                    title = "Canthopexy";
                    description = "Lifts the outer corner of the eyes for a more alert, positive canthal tilt.";
                    risk = "High";
                    break;
                case 'eyelidFiller':
                    title = "Upper Eyelid Filler";
                    description = "Adds volume to upper eyelids for a more hunter-eyed/hooded appearance.";
                    risk = "Medium";
                    break;
                case 'blepharoplasty':
                    title = "Blepharoplasty";
                    description = "Eyelid surgery to remove excess skin or fat from the eyelids.";
                    risk = "High";
                    break;
                case 'keratopigmentation':
                    title = "Keratopigmentation";
                    description = "Permanent eye color change procedure. Risk of blindness if botched.";
                    risk = "Medium";
                    break;
                case 'igf1':
                    title = "IGF-1 Peptides";
                    description = "Stimulates growth before plates close. After closure, risk of acromegaly, organ enlargement, and diabetes.";
                    risk = "High";
                    break;
                case 'mk677':
                    title = "MK-677";
                    description = "Growth hormone secretagogue. Increases height potential and bone mass but may cause insulin resistance.";
                    risk = "Medium";
                    break;
                case 'hgh':
                    title = "Human Growth Hormone";
                    description = "Maximizes growth potential and increases bone mass. High risk of side effects including acromegaly and cardiovascular issues.";
                    risk = "High";
                    break;
                case 'ghkCu':
                    title = "GHK-Cu";
                    description = "Copper peptide for skin rejuvenation and improved complexion.";
                    risk = "Low";
                    break;
                case 'minoxidil':
                    title = "Minoxidil";
                    description = "Promotes facial hair growth and prevents balding. Low risk but requires continuous use.";
                    risk = "Low";
                    break;
                case 'meclizine':
                    title = "Meclizine/Aromatase Inhibitors";
                    description = "May increase height by delaying growth plate closure. Very low success rate. Risk of dementia later in life.";
                    risk = "High";
                    break;
                case 'cjcIpa':
                    title = "CJC no DAC + IPA";
                    description = "Growth hormone releasing peptide combination. May increase height and improve recovery.";
                    risk = "Medium";
                    break;
                case 'trenbolone':
                    title = "Trenbolone";
                    description = "Extremely powerful steroid. Very dangerous for teens, dangerous for adults.";
                    risk = "High";
                    break;
                case 'anavar':
                    title = "Anavar";
                    description = "Milder steroid but still dangerous. Can cause liver damage.";
                    risk = "High";
                    break;
            }
           
            modalProcedureTitle.textContent = title;
            modalProcedureDesc.innerHTML = `${description}<br><br>Cost: $${cost}<br>Risk: <span class="risk-indicator ${risk.toLowerCase()}-risk">${risk} Risk</span>`;
            procedureModal.style.display = 'flex';
        }

        // Perform procedure
        function performProcedure(procedure) {
            let cost = 0;
            let success = false;
            let message = "";
            let messageType = "info";
            let attractivenessChange = 0;
            let healthChange = 0;
            let heightChange = 0;
            let boneMassChange = 0;
           
            switch(procedure) {
                case 'braces':
                    cost = 3000;
                    if (gameState.negativeFacial.includes("Malocclusion")) {
                        success = true;
                        const index = gameState.negativeFacial.indexOf("Malocclusion");
                        gameState.negativeFacial.splice(index, 1);
                        message = "Braces successfully corrected your malocclusion.";
                        attractivenessChange = 0.3;
                    } else {
                        message = "Braces were unnecessary and caused dental problems.";
                        messageType = "danger";
                        healthChange = -5;
                    }
                    break;
                case 'jawSurgery':
                    cost = 15000;
                    if (gameState.negativeFacial.includes("Recessed Maxilla") || gameState.negativeFacial.includes("Recessed Chin")) {
                        success = true;
                        if (gameState.negativeFacial.includes("Recessed Maxilla")) {
                            const index = gameState.negativeFacial.indexOf("Recessed Maxilla");
                            gameState.negativeFacial.splice(index, 1);
                        }
                        if (gameState.negativeFacial.includes("Recessed Chin")) {
                            const index = gameState.negativeFacial.indexOf("Recessed Chin");
                            gameState.negativeFacial.splice(index, 1);
                        }
                        message = "Jaw surgery successfully improved your facial structure.";
                        attractivenessChange = 0.8;
                        healthChange = -10; // Surgery recovery
                    } else {
                        if (Math.random() < 0.7) {
                            message = "Jaw surgery was unnecessary and resulted in a botched outcome.";
                            messageType = "danger";
                            attractivenessChange = -0.5;
                            healthChange = -15;
                        } else {
                            message = "Jaw surgery provided minor improvement despite not being necessary.";
                            attractivenessChange = 0.2;
                            healthChange = -10;
                        }
                    }
                    break;
                case 'buccalFat':
                    cost = 4000;
                    if (gameState.negativePhysical.includes("Poor Body Fat Distribution") || Math.random() < 0.6) {
                        success = true;
                        if (gameState.negativePhysical.includes("Poor Body Fat Distribution")) {
                            const index = gameState.negativePhysical.indexOf("Poor Body Fat Distribution");
                            gameState.negativePhysical.splice(index, 1);
                        }
                        message = "Buccal fat removal improved your facial definition.";
                        attractivenessChange = 0.4;
                    } else {
                        message = "Buccal fat removal was overdone, causing premature aging.";
                        messageType = "danger";
                        attractivenessChange = -0.3;
                        healthChange = -5;
                    }
                    break;
                case 'rhinoplasty':
                    cost = 8000;
                    if (gameState.negativeFacial.includes("Asymmetrical Features") || Math.random() < 0.5) {
                        success = true;
                        if (gameState.negativeFacial.includes("Asymmetrical Features")) {
                            const index = gameState.negativeFacial.indexOf("Asymmetrical Features");
                            gameState.negativeFacial.splice(index, 1);
                        }
                        message = "Rhinoplasty improved your nasal appearance.";
                        attractivenessChange = 0.5;
                    } else {
                        message = "Rhinoplasty resulted in a botched nose.";
                        messageType = "danger";
                        attractivenessChange = -0.7;
                    }
                    healthChange = -8;
                    break;
                case 'limbLengthening':
                    cost = 70000;
                    if (gameState.height < 70 && Math.random() < 0.7) {
                        success = true;
                        gameState.height += 3;
                        message = "Limb lengthening surgery increased your height by 3 inches.";
                        attractivenessChange = 0.6;
                    } else {
                        message = "Limb lengthening surgery resulted in complications and poor outcomes.";
                        messageType = "danger";
                        healthChange = -20;
                        attractivenessChange = -0.3;
                    }
                    healthChange = -15;
                    break;
                case 'filler':
                    cost = 2000;
                    success = true;
                    message = "Professional filler enhanced your facial features.";
                    attractivenessChange = 0.3;
                    gameState.fillerActive = true;
                    // Filler is temporary
                    setTimeout(() => {
                        gameState.attractiveness -= 0.2;
                        gameState.fillerActive = false;
                        addLogEntry("Your filler has worn off.", "warning");
                        updateUI();
                    }, 60000); // 1 minute = 1-2 years in game time
                    break;
                case 'harmonizationFiller':
                    cost = 5000;
                    success = true;
                   
                    // Correct facial asymmetry
                    if (gameState.facialAsymmetry) {
                        gameState.facialAsymmetry = false;
                        const index = gameState.negativeFacial.indexOf("Facial Asymmetry");
                        if (index !== -1) {
                            gameState.negativeFacial.splice(index, 1);
                        }
                        message = "Facial harmonization filler corrected your facial asymmetry and improved your facial harmony.";
                        attractivenessChange = 0.8;
                    } else {
                        // Calculate tier improvement (up to 2 tiers)
                        const currentTierIndex = tiers.findIndex(t =>
                            gameState.attractiveness >= t.min && gameState.attractiveness <= t.max
                        );
                       
                        let maxTierIncrease = 2;
                        if (currentTierIndex + maxTierIncrease >= tiers.length) {
                            maxTierIncrease = tiers.length - currentTierIndex - 1;
                        }
                       
                        // Determine actual improvement (1-2 tiers)
                        const tierIncrease = Math.floor(Math.random() * maxTierIncrease) + 1;
                        const targetTier = tiers[currentTierIndex + tierIncrease];
                       
                        // Calculate attractiveness needed to reach target tier
                        const minAttractiveness = targetTier.min;
                        const maxAttractiveness = Math.min(targetTier.max, gameState.baseAttractiveness + 1.5);
                       
                        // Set new attractiveness
                        gameState.attractiveness = minAttractiveness + (Math.random() * (maxAttractiveness - minAttractiveness));
                       
                        message = `Facial harmonization filler significantly improved your facial harmony. You ascended ${tierIncrease} tier(s)!`;
                    }
                   
                    gameState.fillerActive = true;
                   
                    // Filler is temporary but with some permanent improvement
                    setTimeout(() => {
                        gameState.attractiveness -= 0.5;
                        gameState.fillerActive = false;
                        addLogEntry("Your harmonization filler has partially worn off, but you retained some improvement.", "warning");
                        updateUI();
                    }, 90000); // 1.5 minutes = 2-3 years in game time
                    break;
                case 'palatalExpander':
                    cost = 4000;
                    if (gameState.age < 16) {
                        success = true;
                        gameState.palatalExpander = true;
                        message = "Palatal expander installed. It will gradually widen your jaw.";
                        attractivenessChange = 0.2;
                    } else {
                        message = "Palatal expander is only effective before age 16. It had no effect.";
                        messageType = "warning";
                    }
                    break;
                case 'canthopexy':
                    cost = 6000;
                    if (gameState.negativeFacial.includes("Negative Canthal Tilt")) {
                        success = true;
                        const index = gameState.negativeFacial.indexOf("Negative Canthal Tilt");
                        gameState.negativeFacial.splice(index, 1);
                        gameState.facialTraits.push("Positive Canthal Tilt");
                        message = "Canthopexy successfully improved your eye shape.";
                        attractivenessChange = 0.4;
                    } else if (Math.random() < 0.7) {
                        success = true;
                        message = "Canthopexy provided a subtle improvement to your eye area.";
                        attractivenessChange = 0.2;
                    } else {
                        message = "Canthopexy resulted in an unnatural look.";
                        messageType = "danger";
                        attractivenessChange = -0.3;
                    }
                    healthChange = -8;
                    break;
                case 'eyelidFiller':
                    cost = 3500;
                    success = true;
                    if (gameState.negativeFacial.includes("Bug Eyes")) {
                        const index = gameState.negativeFacial.indexOf("Bug Eyes");
                        gameState.negativeFacial.splice(index, 1);
                        message = "Eyelid filler improved your eye shape, making them less prominent.";
                    } else {
                        message = "Eyelid filler added a more hunter-eyed appearance.";
                    }
                    attractivenessChange = 0.3;
                    break;
                case 'blepharoplasty':
                    cost = 8000;
                    if (Math.random() < 0.6) {
                        success = true;
                        if (gameState.negativeFacial.includes("Hooded Eyes")) {
                            const index = gameState.negativeFacial.indexOf("Hooded Eyes");
                            gameState.negativeFacial.splice(index, 1);
                            message = "Blepharoplasty successfully reduced your hooded eyelids.";
                        } else {
                            message = "Blepharoplasty improved your eyelid appearance.";
                        }
                        attractivenessChange = 0.4;
                    } else {
                        message = "Blepharoplasty resulted in an unnatural or overdone look.";
                        messageType = "danger";
                        attractivenessChange = -0.5;
                    }
                    healthChange = -10;
                    break;
                case 'keratopigmentation':
                    cost = 7000;
                    if (Math.random() < 0.8) {
                        success = true;
                        const newColor = eyeColors[gameState.race][Math.floor(Math.random() * eyeColors[gameState.race].length)];
                        gameState.eyeColor = newColor;
                        message = `Keratopigmentation successfully changed your eye color to ${newColor}.`;
                        attractivenessChange = 0.3;
                    } else {
                        message = "Keratopigmentation resulted in an unnatural eye color.";
                        messageType = "danger";
                        attractivenessChange = -0.4;
                        healthChange = -5;
                    }
                    break;
                case 'igf1':
                    cost = 500;
                    if (gameState.growthPlatesOpen) {
                        // Check for palatal expander interaction
                        if (gameState.palatalExpander && Math.random() < 0.6) {
                            message = "IGF-1 caused your sutures to fuse prematurely! Botched result.";
                            messageType = "danger";
                            gameState.negativeFacial.push("Futed Sutures");
                            attractivenessChange = -0.8;
                            healthChange = -10;
                        } else {
                            success = true;
                            // Calculate height increase based on genetic potential
                            const heightIncrease = 1 + (gameState.geneticPotential * 2); // 1-3 inches
                            gameState.height += heightIncrease;
                            message = `IGF-1 peptides increased your height by ${heightIncrease.toFixed(1)} inches.`;
                            attractivenessChange = 0.2;
                           
                            // Chance of diabetes
                            if (Math.random() < 0.3) {
                                gameState.diabetesRisk += 20;
                                addLogEntry("IGF-1 use has increased your risk of developing diabetes.", "warning");
                            }
                        }
                    } else {
                        if (Math.random() < 0.4) {
                            message = "IGF-1 use after growth plate closure caused acromegaly.";
                            messageType = "danger";
                            gameState.negativeFacial.push("Acromegaly Features");
                            attractivenessChange = -0.8;
                            healthChange = -10;
                        } else {
                            message = "IGF-1 had no effect after growth plate closure.";
                            messageType = "warning";
                        }
                    }
                    gameState.peptidesUsed.push("IGF-1");
                    break;
                case 'mk677':
                    cost = 300;
                    if (gameState.growthPlatesOpen) {
                        success = true;
                        // Calculate height increase based on genetic potential
                        const heightIncrease = 0.5 + (gameState.geneticPotential * 1); // 0.5-1.5 inches
                        gameState.height += heightIncrease;
                        gameState.boneMass += 5;
                        message = `MK-677 increased your height by ${heightIncrease.toFixed(1)} inches and improved bone mass.`;
                        attractivenessChange = 0.1;
                    } else {
                        message = "MK-677 had minimal effect after growth plate closure.";
                        messageType = "warning";
                    }
                    gameState.peptidesUsed.push("MK-677");
                    break;
                case 'hgh':
                    cost = 1000;
                    if (gameState.growthPlatesOpen) {
                        success = true;
                        // Calculate height increase based on genetic potential
                        const heightIncrease = 1.5 + (gameState.geneticPotential * 2); // 1.5-3.5 inches
                        gameState.height += heightIncrease;
                        gameState.boneMass += 8;
                        message = `HGH significantly increased your height by ${heightIncrease.toFixed(1)} inches and improved bone mass.`;
                        attractivenessChange = 0.3;
                    } else {
                        if (Math.random() < 0.6) {
                            message = "HGH use after growth plate closure caused severe acromegaly.";
                            messageType = "danger";
                            gameState.negativeFacial.push("Severe Acromegaly");
                            attractivenessChange = -1.2;
                            healthChange = -15;
                        } else {
                            message = "HGH had no significant effect after growth plate closure.";
                            messageType = "warning";
                        }
                    }
                    gameState.peptidesUsed.push("HGH");
                    break;
                case 'ghkCu':
                    cost = 200;
                    success = true;
                    if (gameState.negativeSkin.length > 0) {
                        const skinIssue = gameState.negativeSkin[Math.floor(Math.random() * gameState.negativeSkin.length)];
                        const index = gameState.negativeSkin.indexOf(skinIssue);
                        gameState.negativeSkin.splice(index, 1);
                        message = `GHK-Cu improved your skin and cleared your ${skinIssue}.`;
                    } else {
                        message = "GHK-Cu improved your skin quality.";
                    }
                    attractivenessChange = 0.2;
                    gameState.peptidesUsed.push("GHK-Cu");
                    break;
                case 'minoxidil':
                    cost = 50;
                    success = true;
                    if (gameState.negativeHealth.includes("Balding Genes")) {
                        const index = gameState.negativeHealth.indexOf("Balding Genes");
                        gameState.negativeHealth.splice(index, 1);
                        message = "Minoxidil prevented hair loss and promoted beard growth.";
                    } else {
                        message = "Minoxidil promoted beard growth.";
                    }
                    attractivenessChange = 0.2;
                    gameState.peptidesUsed.push("Minoxidil");
                    break;
                case 'meclizine':
                    cost = 400;
                    // 5% chance of working
                    if (Math.random() < 0.05 && gameState.growthPlatesOpen) {
                        success = true;
                        // Calculate height increase based on genetic potential
                        const heightIncrease = 1 + (gameState.geneticPotential * 1); // 1-2 inches
                        gameState.height += heightIncrease;
                        message = `Meclizine/Aromatase Inhibitors delayed growth plate closure and increased your height by ${heightIncrease.toFixed(1)} inches!`;
                        attractivenessChange = 0.2;
                        // Set future dementia risk
                        gameState.futureDementia = true;
                        addLogEntry("Warning: This medication may cause dementia later in life.", "warning");
                    } else {
                        message = "Meclizine/Aromatase Inhibitors had no effect on your height.";
                        messageType = "warning";
                        // Still risk dementia even if it doesn't work
                        if (Math.random() < 0.3) {
                            gameState.futureDementia = true;
                            addLogEntry("Warning: This medication may cause dementia later in life.", "warning");
                        }
                    }
                    gameState.peptidesUsed.push("Meclizine/AI");
                    break;
                case 'cjcIpa':
                    cost = 600;
                    if (gameState.growthPlatesOpen) {
                        success = true;
                        // Calculate height increase based on genetic potential
                        const heightIncrease = 0.7 + (gameState.geneticPotential * 0.8); // 0.7-1.5 inches
                        gameState.height += heightIncrease;
                        message = `CJC no DAC + IPA increased your height by ${heightIncrease.toFixed(1)} inches.`;
                        attractivenessChange = 0.15;
                    } else {
                        message = "CJC no DAC + IPA had minimal effect after growth plate closure.";
                        messageType = "warning";
                    }
                    gameState.peptidesUsed.push("CJC+IPA");
                    break;
                case 'trenbolone':
                    cost = 300;
                    // Extreme risk for teens
                    if (gameState.age < 18) {
                        message = "Trenbolone use as a teen caused permanent health damage!";
                        messageType = "danger";
                        healthChange = -30;
                        gameState.steroidDamage += 20;
                    } else {
                        if (Math.random() < 0.7) {
                            message = "Trenbolone use caused serious health complications.";
                            messageType = "danger";
                            healthChange = -20;
                            gameState.steroidDamage += 15;
                        } else {
                            success = true;
                            message = "Trenbolone increased your muscle mass but with side effects.";
                            attractivenessChange = 0.4;
                            healthChange = -10;
                            gameState.steroidDamage += 5;
                        }
                    }
                    gameState.drugsUsed.push("Trenbolone");
                    break;
                case 'anavar':
                    cost = 200;
                    // High risk for teens
                    if (gameState.age < 18) {
                        message = "Anavar use as a teen caused health problems!";
                        messageType = "danger";
                        healthChange = -20;
                        gameState.steroidDamage += 10;
                    } else {
                        if (Math.random() < 0.5) {
                            message = "Anavar use caused health complications.";
                            messageType = "danger";
                            healthChange = -15;
                            gameState.steroidDamage += 8;
                        } else {
                            success = true;
                            message = "Anavar increased your muscle mass with some side effects.";
                            attractivenessChange = 0.3;
                            healthChange = -5;
                            gameState.steroidDamage += 3;
                        }
                    }
                    gameState.drugsUsed.push("Anavar");
                    break;
            }
           
            gameState.money -= cost;
            gameState.attractiveness += attractivenessChange;
            gameState.health += healthChange;
            gameState.height += heightChange;
            gameState.boneMass = Math.min(100, gameState.boneMass + boneMassChange);
           
            // Make it extremely hard to descend below LTN
            if (gameState.attractiveness < 3.0) {
                // Build up resistance - the longer you're below LTN, the harder it is to go lower
                gameState.belowLtnResistance += 0.1;
               
                // Chance to resist further decrease based on resistance
                const resistanceChance = Math.min(0.9, gameState.belowLtnResistance * 0.3);
                if (Math.random() < resistanceChance) {
                    gameState.attractiveness = 3.0;
                    addLogEntry("You've hit the floor of Low Tier Normie. It's extremely difficult to descend further.", "warning");
                }
            } else {
                // Reset resistance when above LTN
                gameState.belowLtnResistance = 0;
            }
           
            // Make Adamlite virtually impossible to reach (only through extreme procedures)
            if (gameState.attractiveness > 8.0 && !gameState.trueAdam) {
                const adamLiteChance = 0.0005; // 0.05% chance to keep Adamlite status
                if (Math.random() > adamLiteChance) {
                    gameState.attractiveness = 7.9;
                    addLogEntry("You've reached the genetic hardcap at Chad tier. Adamlite is virtually impossible to achieve.", "warning");
                }
            }
           
            if (procedure !== 'igf1' && procedure !== 'mk677' && procedure !== 'hgh' &&
                procedure !== 'ghkCu' && procedure !== 'minoxidil' && procedure !== 'meclizine' &&
                procedure !== 'cjcIpa' && procedure !== 'trenbolone' && procedure !== 'anavar') {
                gameState.proceduresDone.push(procedure);
            }
           
            addLogEntry(message, messageType);
            updateUI();
        }

        // Eat a meal function
        function eatMeal(type, cost) {
            if (gameState.money < cost) {
                addLogEntry(`You don't have enough money for this meal.`, "warning");
                return;
            }
           
            gameState.money -= cost;
            gameState.lastMeal = 100; // Reset hunger
           
            let message = "";
            let healthChange = 0;
            let weightChange = 0;
           
            switch(type) {
                case 'basic':
                    message = "You ate a basic meal.";
                    healthChange = 2;
                    weightChange = 0.5;
                    break;
                case 'healthy':
                    message = "You ate a healthy, nutritious meal.";
                    healthChange = 5;
                    weightChange = 0.2;
                    break;
                case 'gain':
                    message = "You ate a high-calorie meal to gain weight.";
                    healthChange = 1;
                    weightChange = 2;
                    break;
                case 'lose':
                    message = "You ate a low-calorie meal to lose weight.";
                    healthChange = 3;
                    weightChange = -1;
                    break;
            }
           
            gameState.health = Math.min(100, gameState.health + healthChange);
            gameState.weight = Math.max(10, gameState.weight + weightChange);
           
            // Update BMI
            gameState.bmi = (gameState.weight / (gameState.height * gameState.height)) * 703;
           
            // Update bloating based on BMI
            if (gameState.bmi > 25 && !gameState.bloating) {
                gameState.bloating = true;
                if (!gameState.negativePhysical.includes("Bloated Face")) {
                    gameState.negativePhysical.push("Bloated Face");
                }
                addLogEntry("You've developed a bloated face from weight gain.", "warning");
            } else if (gameState.bmi <= 25 && gameState.bloating) {
                gameState.bloating = false;
                const index = gameState.negativePhysical.indexOf("Bloated Face");
                if (index !== -1) {
                    gameState.negativePhysical.splice(index, 1);
                }
                addLogEntry("Your face is less bloated after weight loss.", "success");
            }
           
            // Update obesity trait
            if (gameState.bmi > 30 && !gameState.obesity) {
                gameState.obesity = true;
                if (!gameState.negativePhysical.includes("Obesity")) {
                    gameState.negativePhysical.push("Obesity");
                }
                addLogEntry("You've become obese, which affects your appearance and health.", "danger");
                gameState.attractiveness -= 0.5;
                gameState.health -= 10;
            } else if (gameState.bmi <= 30 && gameState.obesity) {
                gameState.obesity = false;
                const index = gameState.negativePhysical.indexOf("Obesity");
                if (index !== -1) {
                    gameState.negativePhysical.splice(index, 1);
                }
                addLogEntry("You're no longer obese. Your health has improved.", "success");
                gameState.attractiveness += 0.3;
                gameState.health += 5;
            }
           
            addLogEntry(message, "success");
            updateUI();
        }

        // Ask family for money (with chance of refusal)
        function askForMoney() {
            if (gameState.familySupport <= 0) {
                addLogEntry("Your family has no more money to give you.", "warning");
                return;
            }
           
            if (gameState.age < 12) {
                addLogEntry("You're too young to ask for money directly.", "warning");
                return;
            }
           
            // Chance of refusal based on family class
            const refusalChance = familyClassModifiers[gameState.familyClass].moneyRefusalChance;
            if (Math.random() < refusalChance) {
                addLogEntry("Your parents refused to give you money.", "warning");
                return;
            }
           
            const amount = Math.min(500, gameState.familySupport);
            gameState.money += amount;
            gameState.familySupport -= amount;
           
            addLogEntry(`Your family gave you $${amount}.`, "success");
            updateUI();
        }

        // Ask family for braces
        function askForBraces() {
            if (gameState.familySupport < 3000) {
                addLogEntry("Your family cannot afford braces.", "warning");
                return;
            }
           
            if (gameState.proceduresDone.includes("braces")) {
                addLogEntry("You already have braces.", "warning");
                return;
            }
           
            // Chance based on family class
            const chance = familyClassModifiers[gameState.familyClass].bracesChance;
            if (Math.random() < chance) {
                gameState.familySupport -= 3000;
                performProcedure('braces');
                addLogEntry("Your family agreed to pay for braces.", "success");
            } else {
                addLogEntry("Your family refused to pay for braces.", "warning");
            }
        }

        // Ask family for palatal expander
        function askForExpander() {
            if (gameState.age >= 16) {
                addLogEntry("You're too old for a palatal expander to be effective.", "warning");
                return;
            }
           
            if (gameState.familySupport < 4000) {
                addLogEntry("Your family cannot afford a palatal expander.", "warning");
                return;
            }
           
            if (gameState.proceduresDone.includes("palatalExpander")) {
                addLogEntry("You already have a palatal expander.", "warning");
                return;
            }
           
            // Chance based on family class
            const chance = familyClassModifiers[gameState.familyClass].expanderChance;
            if (Math.random() < chance) {
                gameState.familySupport -= 4000;
                performProcedure('palatalExpander');
                addLogEntry("Your family agreed to pay for a palatal expander.", "success");
            } else {
                addLogEntry("Your family refused to pay for a palatal expander.", "warning");
            }
        }

        // Go on a date function
        function goOnDate() {
            if (gameState.money < 50) {
                addLogEntry("You don't have enough money to go on a date.", "warning");
                return;
            }
           
            gameState.money -= 50;
           
            // Calculate dating success based on height, attractiveness, and social status
            const heightScore = calculateHeightScore();
            const attractivenessScore = gameState.attractiveness / 10;
            const statusScore = gameState.socialStatus / 100;
           
            let successChance = 0;
           
            if (gameState.gender === "male") {
                successChance = (heightScore * 0.6) + (attractivenessScore * 0.3) + (statusScore * 0.1);
            } else {
                successChance = (heightScore * 0.3) + (attractivenessScore * 0.6) + (statusScore * 0.1);
            }
           
            // Adjust for BMI
            if (gameState.bmi < 18.5 || gameState.bmi > 25) {
                successChance *= 0.7; // 30% penalty for underweight or overweight
            }
           
            // Adjust for humor if below MTN
            const tier = getCurrentTier();
            if (tier.name.includes("Subhuman") || tier.name.includes("Low Tier Normie")) {
                successChance *= (1 + (gameState.humor / 200)); // Humor can help but not overcome looks completely
            }
           
            // Check if successful
            if (Math.random() < successChance) {
                // Create a partner
                gameState.partner = generatePartner();
                gameState.relationshipStatus = "dating";
               
                addLogEntry(`You went on a successful date with ${gameState.partner.name}! You're now dating.`, "success");
            } else {
                addLogEntry("Your date didn't go well. Maybe try improving your appearance.", "warning");
            }
           
            updateUI();
        }

        // Propose marriage function
        function proposeMarriage() {
            if (gameState.money < 500) {
                addLogEntry("You don't have enough money for a marriage proposal.", "warning");
                return;
            }
           
            gameState.money -= 500;
           
            // Marriage chance based on relationship length and compatibility
            const heightCompatibility = 1 - Math.abs((gameState.height - gameState.partner.height) / gameState.partner.height);
            const attractivenessCompatibility = 1 - Math.abs((gameState.attractiveness - gameState.partner.attractiveness) / gameState.partner.attractiveness);
           
            const compatibilityScore = (heightCompatibility + attractivenessCompatibility) / 2;
            const successChance = compatibilityScore * 0.8; // 80% of compatibility score
           
            if (Math.random() < successChance) {
                gameState.relationshipStatus = "married";
                addLogEntry(`You proposed to ${gameState.partner.name} and they said yes! You're now married.`, "success");
               
                // Reset cheating risk when getting married
                gameState.cheatingRisk = 10;
            } else {
                addLogEntry(`You proposed to ${gameState.partner.name} but they said no. The relationship ended.`, "danger");
                gameState.relationshipStatus = "single";
                gameState.partner = null;
            }
           
            updateUI();
        }

        // Have a child function
        function haveChild() {
            if (gameState.money < 1000) {
                addLogEntry("You don't have enough money to raise a child.", "warning");
                return;
            }
           
            if (gameState.relationshipStatus !== "married") {
                addLogEntry("You need to be married to have a child.", "warning");
                return;
            }
           
            gameState.money -= 1000;
           
            // Create a child with genetics from both parents
            const child = generateChild();
            gameState.children.push(child);
           
            addLogEntry(`You and ${gameState.partner.name} had a child! ${child.name} has been born.`, "success");
           
            updateUI();
        }

        // Generate a partner based on player's attributes
        function generatePartner() {
            const gender = gameState.gender === "male" ? "female" : "male";
            const names = gender === "male" ? ["James", "John", "Robert", "Michael", "William"] : ["Mary", "Jennifer", "Linda", "Elizabeth", "Susan"];
           
            // Partner height based on player height and preferences
            let height = 0;
            if (gender === "female") {
                // Women prefer men taller than them
                height = gameState.height - (Math.random() * 4 + 2); // 2-6 inches shorter
                height = Math.max(partnerPreferences.female.minHeight, Math.min(partnerPreferences.female.maxHeight, height));
            } else {
                // Men prefer women shorter than them
                height = gameState.height + (Math.random() * 4 + 2); // 2-6 inches taller
                height = Math.max(partnerPreferences.male.minHeight, Math.min(partnerPreferences.male.maxHeight, height));
            }
           
            // Partner attractiveness based on player attractiveness
            const attractiveness = gameState.attractiveness + (Math.random() * 2 - 1); // ±1 point
            const minAttractiveness = gender === "female" ? partnerPreferences.female.minAttractiveness : partnerPreferences.male.minAttractiveness;
            const cappedAttractiveness = Math.max(minAttractiveness, Math.min(10, attractiveness));
           
            return {
                name: names[Math.floor(Math.random() * names.length)],
                gender: gender,
                height: height,
                attractiveness: cappedAttractiveness,
                age: gameState.age + Math.floor(Math.random() * 5) - 2 // ±2 years
            };
        }

        // Generate a child with genetics from both parents
        function generateChild() {
            const gender = Math.random() > 0.5 ? "male" : "female";
            const names = gender === "male" ? ["James", "John", "Robert", "Michael", "William"] : ["Mary", "Jennifer", "Linda", "Elizabeth", "Susan"];
           
            // Calculate potential height using mid-parental formula
            let potentialHeight = 0;
            if (gender === "male") {
                potentialHeight = (gameState.height + gameState.partner.height + 5) / 2;
            } else {
                potentialHeight = (gameState.height + gameState.partner.height - 5) / 2;
            }
           
            // Add some genetic variation (±10%)
            potentialHeight = potentialHeight * (0.9 + Math.random() * 0.2);
           
            // Calculate potential attractiveness (average of parents ±1)
            const potentialAttractiveness = (gameState.attractiveness + gameState.partner.attractiveness) / 2 + (Math.random() * 2 - 1);
           
            return {
                name: names[Math.floor(Math.random() * names.length)],
                gender: gender,
                height: potentialHeight,
                attractiveness: Math.max(1, Math.min(10, potentialAttractiveness)),
                iqPotential: Math.floor((gameState.iqPotential + (Math.random() * 30 + 85)) / 2) // Average of player's IQ and random
            };
        }

        // Calculate height score for dating
        function calculateHeightScore() {
            if (gameState.gender === "male") {
                if (gameState.height < 66) return 0.2; // Below 5'6"
                if (gameState.height < 68) return 0.4; // 5'6" to 5'8"
                if (gameState.height < 70) return 0.6; // 5'8" to 5'10"
                if (gameState.height < 72) return 0.8; // 5'10" to 6'0"
                if (gameState.height < 74) return 0.9; // 6'0" to 6'2"
                return 1.0; // 6'2"+
            } else {
                if (gameState.height < 62) return 0.8; // Below 5'2"
                if (gameState.height < 64) return 0.9; // 5'2" to 5'4"
                if (gameState.height < 66) return 1.0; // 5'4" to 5'6"
                if (gameState.height < 68) return 0.7; // 5'6" to 5'8"
                return 0.5; // 5'8"+
            }
        }

        // Post on social media
        function postOnSocialMedia(platform) {
            // Can't post on TikTok as a newborn
            if (platform === 'tiktok' && gameState.age < 13) {
                addLogEntry("You're too young to post on TikTok.", "warning");
                return;
            }
           
            const tier = getCurrentTier();
            let message = "";
            let messageType = "info";
           
            // If below MTN but has high humor, chance to go viral instead of becoming lolcow
            if ((tier.name.includes("Subhuman") || tier.name.includes("Low Tier Normie")) &&
                gameState.humor > 70) {
               
                if (Math.random() < (gameState.humor / 100)) {
                    // Go viral due to humor
                    gameState.socialMediaStatus = "viral";
                    const newFollowers = Math.floor(Math.random() * 10000) + 5000;
                    gameState.followers += newFollowers;
                    gameState.money += newFollowers * 0.2;
                    gameState.socialStatus += 40;
                   
                    message = `Your humorous content went viral on ${platform}! Gained ${newFollowers} followers and sponsorship opportunities.`;
                    messageType = "success";
                } else {
                    // Still become lolcow but with less severity
                    gameState.socialMediaStatus = "lolcow";
                    gameState.socialStatus -= 10;
                    gameState.health -= 3;
                   
                    message = `You posted on ${platform} and became a lolcow, but your humor made it less severe.`;
                    messageType = "warning";
                }
            } else if (tier.name.includes("Subhuman") || tier.name.includes("Low Tier Normie")) {
                // Negative outcome - become a lolcow
                gameState.socialMediaStatus = "lolcow";
                gameState.socialStatus -= 20;
                gameState.health -= 5;
               
                message = `You posted on ${platform} and became a lolcow. People are making fun of your appearance.`;
                messageType = "danger";
               
                // Add negative trait if not already present
                if (!gameState.negativeHealth.includes("Depression")) {
                    gameState.negativeHealth.push("Depression");
                }
            } else if (tier.name.includes("Mid Tier Normie")) {
                // Neutral outcome
                message = `You posted on ${platform}. You got a few likes but nothing special.`;
                gameState.followers += Math.floor(Math.random() * 10) + 1;
            } else {
                // Positive outcome - chance to become influencer
                const successChance = (gameState.attractiveness - 6) * 0.2; // Higher attractiveness = better chance
               
                if (Math.random() < successChance) {
                    if (gameState.socialMediaStatus !== "viral" && gameState.attractiveness > 7.5) {
                        gameState.socialMediaStatus = "viral";
                        const newFollowers = Math.floor(Math.random() * 5000) + 1000;
                        gameState.followers += newFollowers;
                        gameState.money += newFollowers * 0.1;
                        gameState.socialStatus += 30;
                       
                        message = `You went viral on ${platform}! Gained ${newFollowers} followers and sponsorship opportunities.`;
                        messageType = "success";
                    } else {
                        gameState.socialMediaStatus = "influencer";
                        const newFollowers = Math.floor(Math.random() * 500) + 100;
                        gameState.followers += newFollowers;
                        gameState.money += newFollowers * 0.05;
                        gameState.socialStatus += 15;
                       
                        message = `You're gaining traction on ${platform}! Gained ${newFollowers} followers.`;
                        messageType = "success";
                    }
                } else {
                    const newFollowers = Math.floor(Math.random() * 100) + 10;
                    gameState.followers += newFollowers;
                    message = `You posted on ${platform}. Gained ${newFollowers} followers.`;
                }
            }
           
            addLogEntry(message, messageType);
            updateUI();
        }

        // Study function with IQ-based efficiency
        function study(level) {
            let cost = 0;
            let iqGain = 0;
            let message = "";
           
            switch(level) {
                case 'elementary':
                    cost = 10;
                    break;
                case 'middle':
                    cost = 15;
                    break;
                case 'highschool':
                    cost = 20;
                    break;
                case 'college':
                    cost = 30;
                    break;
            }
           
            if (gameState.money < cost) {
                addLogEntry(`You don't have enough money to pay for ${level} school materials.`, "warning");
                return;
            }
           
            gameState.money -= cost;
           
            // Calculate study effectiveness based on IQ
            let efficiency = 0.2; // Default for very low IQ
            if (gameState.iq >= 115) efficiency = 1.0;
            else if (gameState.iq >= 100) efficiency = 0.8;
            else if (gameState.iq >= 85) efficiency = 0.5;
           
            // Calculate IQ gain based on efficiency and school level
            iqGain = Math.floor((Math.random() * 3 + 1) * efficiency);
           
            if (gameState.iq + iqGain > gameState.iqPotential) {
                iqGain = gameState.iqPotential - gameState.iq;
            }
           
            if (iqGain > 0) {
                gameState.iq += iqGain;
                message = `You studied at ${level} level. Your IQ increased by ${iqGain} points.`;
               
                if (efficiency < 0.3) {
                    message += " It was difficult for you.";
                } else if (efficiency > 0.8) {
                    message += " You learned quickly.";
                }
            } else {
                message = `You studied at ${level} level but reached your genetic potential.`;
            }
           
            addLogEntry(message, "success");
            updateUI();
        }

        // Apply for job
        function applyForJob(jobId) {
            const job = jobs.find(j => j.id === jobId);
           
            if (!job) return;
           
            if (gameState.iq < job.iqReq) {
                addLogEntry(`You don't meet the IQ requirements for ${job.name}.`, "warning");
                return;
            }
           
            // Check for degree requirements for high-level jobs
            if (job.degreeReq && gameState.schoolLevel !== "college") {
                addLogEntry(`You need a college degree to become a ${job.name}.`, "warning");
                return;
            }
           
            gameState.currentJob = jobId;
            addLogEntry(`You got a job as a ${job.name}. You'll earn $${job.pay}/hour.`, "success");
            updateUI();
           
            // Set up job income
            if (gameState.jobInterval) {
                clearInterval(gameState.jobInterval);
            }
           
            gameState.jobInterval = setInterval(() => {
                if (gameState.currentJob === jobId) {
                    gameState.money += job.pay;
                    addLogEntry(`You worked as a ${job.name} and earned $${job.pay}.`, "success");
                    updateUI();
                } else {
                    clearInterval(gameState.jobInterval);
                }
            }, 30000); // Every 30 seconds
        }

        // Age up function
        function ageUp() {
            if (!gameState.alive) return;
           
            gameState.age++;
           
            // Update school level based on age
            if (gameState.age < 12) {
                gameState.schoolLevel = "elementary";
            } else if (gameState.age < 15) {
                gameState.schoolLevel = "middle";
            } else if (gameState.age < 18) {
                gameState.schoolLevel = "highschool";
            } else {
                gameState.schoolLevel = "college";
            }
           
            // Update weight based on age
            if (gameState.age in weightPercentiles[gameState.gender]) {
                const baseWeight = weightPercentiles[gameState.gender][gameState.age];
                const geneticModifier = (gameState.geneticPotential - 0.5) * 20;
                const randomVariation = (Math.random() * 10) - 5; // -5 to +5 pounds
                gameState.weight = baseWeight + geneticModifier + randomVariation;
               
                // Adjust for starving
                if (gameState.starving) {
                    gameState.weight -= 5;
                    gameState.starvationEffects += 1;
                   
                    if (gameState.starvationEffects > 5) {
                        addLogEntry("Severe starvation is affecting your health.", "danger");
                        gameState.health -= 10;
                       
                        if (gameState.health < 20) {
                            addLogEntry("Your organs are failing from starvation!", "danger");
                            gameState.health -= 10;
                        }
                    }
                }
            }
           
            // Update BMI
            gameState.bmi = (gameState.weight / (gameState.height * gameState.height)) * 703;
           
            // Update bloating based on BMI
            if (gameState.bmi > 25 && !gameState.bloating) {
                gameState.bloating = true;
                if (!gameState.negativePhysical.includes("Bloated Face")) {
                    gameState.negativePhysical.push("Bloated Face");
                }
                addLogEntry("You've developed a bloated face from weight gain.", "warning");
            } else if (gameState.bmi <= 25 && gameState.bloating) {
                gameState.bloating = false;
                const index = gameState.negativePhysical.indexOf("Bloated Face");
                if (index !== -1) {
                    gameState.negativePhysical.splice(index, 1);
                }
                addLogEntry("Your face is less bloated after weight loss.", "success");
            }
           
            // Update obesity trait
            if (gameState.bmi > 30 && !gameState.obesity) {
                gameState.obesity = true;
                if (!gameState.negativePhysical.includes("Obesity")) {
                    gameState.negativePhysical.push("Obesity");
                }
                addLogEntry("You've become obese, which affects your appearance and health.", "danger");
                gameState.attractiveness -= 0.5;
                gameState.health -= 10;
            } else if (gameState.bmi <= 30 && gameState.obesity) {
                gameState.obesity = false;
                const index = gameState.negativePhysical.indexOf("Obesity");
                if (index !== -1) {
                    gameState.negativePhysical.splice(index, 1);
                }
                addLogEntry("You're no longer obese. Your health has improved.", "success");
                gameState.attractiveness += 0.3;
                gameState.health += 5;
            }
           
            // Hair grows over time
            if (gameState.age < 50) { // Hair stops growing as much after 50
                gameState.hairLength += Math.random() * 2;
               
                // Natural length limit based on hair type
                const maxLengths = {
                    "Straight": 100,
                    "Wavy": 90,
                    "Curly": 80,
                    "Coarse": 70,
                    "Afro": 60,
                    "Coily": 50,
                    "Kinky": 40,
                    "Varies": 80
                };
               
                const maxLength = maxLengths[gameState.hairType] || 80;
                gameState.hairLength = Math.min(maxLength, gameState.hairLength);
            }
           
            // Check for cheating
            if (gameState.age >= 18 && gameState.relationshipStatus === "married") {
                checkForCheating();
            }
           
            // Update humor based on social status and IQ
            if (gameState.socialStatus > 70 && gameState.iq > 110) {
                gameState.humor += 5;
            } else if (gameState.socialStatus > 50 && gameState.iq > 90) {
                gameState.humor += 2;
            }
           
            gameState.humor = Math.min(100, gameState.humor);
           
            // Apply hardcap at 18 if not True Adam or Adamlite
            if (gameState.age === 18 && !gameState.trueAdam && gameState.baseAttractiveness < 8) {
                const tier = getCurrentTier();
                if (tier.min > 5.9) {
                    gameState.attractiveness = 5.9;
                    gameState.hardcapReached = true;
                    addLogEntry("You've reached the genetic hardcap at High High Tier Normie.", "warning");
                }
               
                // Close growth plates
                gameState.growthPlatesOpen = false;
                addLogEntry("Your growth plates have closed. No more natural height increase.", "warning");
            }
           
            // Update height based on biological growth patterns
            if (gameState.age in heightPercentiles[gameState.gender] && gameState.growthPlatesOpen) {
                const baseHeight = heightPercentiles[gameState.gender][gameState.age];
                const geneticModifier = (gameState.geneticPotential - 0.5) * 8;
                const raceModifier = (raceModifiers[gameState.race].heightPotential - 0.5) * 4;
                const randomVariation = (Math.random() * 4) - 2; // -2 to +2 inches
                gameState.height = baseHeight + geneticModifier + raceModifier + randomVariation;
            }
           
            // Increase IQ with age (up to potential)
            if (gameState.age < 25 && gameState.iq < gameState.iqPotential) {
                gameState.iq += Math.floor(Math.random() * 3);
                if (gameState.iq > gameState.iqPotential) {
                    gameState.iq = gameState.iqPotential;
                }
            }
           
            // Random events based on age
            handleAgeEvents();
           
            // Small chance of random events
            if (Math.random() > 0.7) {
                handleRandomEvents();
            }
           
            // Degeneration events that can decrease attractiveness
            handleDegenerationEvents();
           
            // Update social status based on attractiveness
            updateSocialStatus();
           
            // Update SMV based on various factors
            updateSMV();
           
            updateUI();
        }

        // Handle age-specific events
        function handleAgeEvents() {
            if (gameState.age === 5) {
                addLogEntry("You started school. Other kids are noticing your appearance.");
               
                // Bullying based on attractiveness
                if (gameState.attractiveness < 4) {
                    addLogEntry("You're being bullied for your looks.", "danger");
                    gameState.health -= 10;
                    gameState.socialStatus -= 20;
                    gameState.attractiveness -= 0.2;
                } else if (gameState.attractiveness > 5) {
                    addLogEntry("Other kids like you because of your looks.", "success");
                    gameState.socialStatus += 15;
                }
            }
           
            if (gameState.age === 11) {
                addLogEntry("You're now 11 years old. DIY filler options are available.");
            }
           
            if (gameState.age === 12) {
                addLogEntry("You're now 12 years old. You can now use peptides and ask your parents for money directly.");
            }
           
            if (gameState.age === 13) {
                addLogEntry("You're a teenager now. Appearance matters more than ever.");
               
                // Acne development
                if (gameState.negativeHealth.includes("Acne-Prone Skin") && Math.random() > 0.3) {
                    if (!gameState.negativeSkin.includes("Cystic Acne")) {
                        gameState.negativeSkin.push("Cystic Acne");
                    }
                    addLogEntry("You've developed severe cystic acne.", "warning");
                    gameState.attractiveness -= 0.5;
                } else if (Math.random() > 0.5) {
                    if (!gameState.negativeSkin.includes("Acne")) {
                        gameState.negativeSkin.push("Acne");
                    }
                    addLogEntry("You've developed some acne.", "warning");
                    gameState.attractiveness -= 0.2;
                }
               
                // Can now join .org if LTN
                const tier = getCurrentTier();
                if (tier.name.includes("Low Tier Normie")) {
                    addLogEntry("You've discovered the .org forum and can now join.", "success");
                }
               
                // Can now post on TikTok
                addLogEntry("You're now old enough to post on TikTok.");
            }
           
            if (gameState.age === 16) {
                addLogEntry("You can now get a part-time job.");
                // Palatal expander becomes ineffective
                if (gameState.palatalExpander) {
                    addLogEntry("Your palatal expander is no longer effective at your age.", "warning");
                }
            }
           
            if (gameState.age === 18) {
                addLogEntry("You're now an adult. Cosmetic surgery options are available.");
            }
           
            if (gameState.age === 30) {
                addLogEntry("You're 30 now. Aging effects are starting to show.");
                gameState.attractiveness -= 0.2;
               
                // Chance of hair loss
                if (gameState.negativeHealth.includes("Balding Genes") && Math.random() > 0.5) {
                    addLogEntry("You're starting to lose your hair.", "warning");
                    gameState.attractiveness -= 0.3;
                }
               
                // Chance of diabetes from IGF-1 use
                if (gameState.diabetesRisk > 0 && Math.random() < gameState.diabetesRisk / 100) {
                    addLogEntry("You've developed diabetes from past peptide use.", "danger");
                    gameState.health -= 15;
                    gameState.negativeHealth.push("Diabetes");
                }
            }
           
            if (gameState.age > 40) {
                // Aging effects accelerate
                const ageEffect = (gameState.age - 40) * 0.05;
                gameState.attractiveness -= ageEffect;
               
                if (Math.random() > 0.8) {
                    addLogEntry("Aging is taking a toll on your appearance.", "warning");
                }
               
                // Risk of dementia from aromatase inhibitors
                if (gameState.futureDementia && Math.random() < 0.1) {
                    addLogEntry("You're experiencing cognitive decline from past drug use.", "danger");
                    gameState.iq -= 10;
                    gameState.health -= 5;
                }
               
                // Risk from steroid damage
                if (gameState.steroidDamage > 0 && Math.random() < 0.2) {
                    const damageEffect = gameState.steroidDamage * 0.1;
                    addLogEntry("Past steroid use is causing health problems.", "danger");
                    gameState.health -= damageEffect;
                }
            }
           
            if (gameState.age > 70) {
                // Health decline in old age
                const healthDecline = Math.random() * 10;
                gameState.health -= healthDecline;
               
                if (gameState.health < 30) {
                    addLogEntry("Your health is deteriorating.", "danger");
                }
               
                // Chance of death increases with age and poor health
                if (gameState.health < 10 && Math.random() > 0.7) {
                    gameState.alive = false;
                    addLogEntry("You have died due to poor health. Game over.", "danger");
                   
                    // If you have children, offer to continue as one of them
                    if (gameState.children.length > 0) {
                        setTimeout(showGenerationSelection, 3000);
                    } else {
                        setTimeout(restartGame, 3000);
                    }
                }
            }
        }

        // Show generation selection after death
        function showGenerationSelection() {
            generationModal.style.display = 'flex';
            childrenSelection.innerHTML = '';
           
            gameState.children.forEach((child, index) => {
                const childEl = document.createElement('div');
                childEl.className = 'child-item';
                childEl.innerHTML = `
                    <div>${child.name} (${child.gender}), ${formatHeight(child.height)} tall</div>
                    <div>Attractiveness: ${child.attractiveness.toFixed(1)} | IQ Potential: ${child.iqPotential}</div>
                    <button class="generation-btn" data-index="${index}">Play as ${child.name}</button>
                `;
                childrenSelection.appendChild(childEl);
            });
           
            // Add event listeners to generation buttons
            document.querySelectorAll('.generation-btn').forEach(btn => {
                btn.addEventListener('click', function() {
                    const index = parseInt(this.getAttribute('data-index'));
                    continueAsChild(index);
                });
            });
        }

        // Continue the game as a child
        function continueAsChild(index) {
            const child = gameState.children[index];
           
            // Create new game state based on child
            gameState.age = 20; // Start as young adult
            gameState.height = child.height;
            gameState.attractiveness = child.attractiveness;
            gameState.iqPotential = child.iqPotential;
            gameState.iq = Math.floor(child.iqPotential * 0.8);
            gameState.gender = child.gender;
            gameState.health = 80;
            gameState.money = 1000; // Small inheritance
            gameState.socialStatus = 50;
            gameState.relationshipStatus = "single";
            gameState.partner = null;
            gameState.children = [];
            gameState.alive = true;
           
            // Reset some properties
            gameState.growthPlatesOpen = false;
            gameState.hardcapReached = true;
            gameState.trueAdam = false;
           
            generationModal.style.display = 'none';
           
            addLogEntry(`You continue your life as ${child.name}, the next generation.`, "success");
            updateUI();
        }

        // Handle cheating mechanics
        function checkForCheating() {
            if (gameState.relationshipStatus !== "married") return;
           
            // Base chance of cheating based on relationship quality
            let cheatChance = 0.1;
           
            // Increased chance if partner is significantly more attractive
            if (gameState.partner.attractiveness > gameState.attractiveness + 1) {
                cheatChance += 0.2;
            }
           
            // Increased chance if player is neglecting relationship
            cheatChance += (100 - gameState.socialStatus) * 0.001;
           
            // Check if partner cheats
            if (Math.random() < cheatChance) {
                gameState.partnerCheating = true;
                gameState.cheatingRisk = 100;
                addLogEntry("You suspect your partner might be cheating on you.", "danger");
            }
           
            // Update cheating risk
            gameState.cheatingRisk = Math.min(100, gameState.cheatingRisk + (cheatChance * 10));
            updateUI();
        }

        // Initiate divorce
        function initiateDivorce() {
            if (gameState.relationshipStatus !== "married") return;
           
            gameState.relationshipStatus = "single";
            addLogEntry("You divorced your partner.", "danger");
           
            // Financial consequences
            const settlement = Math.floor(gameState.money * 0.3);
            gameState.money -= settlement;
           
            if (settlement > 0) {
                addLogEntry(`You paid $${settlement} in the divorce settlement.`, "warning");
            }
           
            gameState.partner = null;
            gameState.partnerCheating = false;
            gameState.cheatingRisk = 0;
            updateUI();
        }

        // Confront partner about cheating
        function confrontCheating() {
            if (!gameState.partnerCheating) return;
           
            // 50% chance of confession
            if (Math.random() > 0.5) {
                addLogEntry("Your partner admitted to cheating. The relationship is over.", "danger");
                initiateDivorce();
            } else {
                addLogEntry("Your partner denied cheating. You're not sure what to believe.", "warning");
                gameState.cheatingRisk = 50;
            }
           
            gameState.partnerCheating = false;
            updateUI();
        }

        // Select an archetype
        function selectArchetype(archetype) {
            if (!canSelectArchetype(archetype)) {
                addLogEntry("You don't meet the requirements for this archetype.", "warning");
                return;
            }
           
            gameState.currentArchetype = archetype;
           
            // Apply archetype benefits
            switch(archetype) {
                case 'prettyBoy':
                    gameState.attractiveness += 0.3;
                    gameState.socialStatus += 15;
                    break;
               
                case 'slenderTriad':
                    gameState.attractiveness += 0.4;
                    gameState.socialStatus += 10;
                    break;
               
                case 'ogre':
                    gameState.attractiveness += 0.5;
                    gameState.socialStatus += 5;
                    break;
               
                case 'asianBaddie':
                case 'latinaBaddie':
                case 'baddie':
                    gameState.attractiveness += 0.4;
                    gameState.socialStatus += 20;
                    break;
            }
           
            addLogEntry(`You've adopted the ${archetype} archetype.`, "success");
            updateUI();
        }

        // Get a haircut
        function getHaircut(type) {
            let cost = type === 'basic' ? 30 : 100;
           
            if (gameState.money < cost) {
                addLogEntry(`You don't have enough money for this haircut.`, "warning");
                return;
            }
           
            gameState.money -= cost;
           
            if (type === 'basic') {
                gameState.hairHealth += 5;
                addLogEntry("You got a basic haircut. Your hair looks neat.", "success");
            } else {
                gameState.hairHealth += 10;
                gameState.attractiveness += 0.2;
                addLogEntry("You got a premium hairstyle. You look more attractive.", "success");
            }
           
            gameState.hairHealth = Math.min(100, gameState.hairHealth);
            updateUI();
        }

        // Set a specific hairstyle
        function setHairstyle(style) {
            const costs = {
                dreadlocks: 200,
                braids: 150,
                twists: 180,
                undercut: 60
            };
           
            const cost = costs[style];
           
            if (gameState.money < cost) {
                addLogEntry(`You don't have enough money for this style.`, "warning");
                return;
            }
           
            // Check if hairstyle is compatible with hair type
            if (!isHairstyleCompatible(style)) {
                addLogEntry(`This hairstyle is not compatible with your hair type and may cause damage.`, "warning");
               
                if (Math.random() > 0.5) {
                    gameState.hairHealth -= 20;
                    addLogEntry(`The ${style} damaged your hair.`, "danger");
                }
            }
           
            gameState.money -= cost;
            gameState.hairStyle = style;
           
            // Style-specific effects
            if (style === 'dreadlocks' || style === 'braids' || style === 'twists') {
                gameState.attractiveness += 0.3;
            } else {
                gameState.attractiveness += 0.2;
            }
           
            addLogEntry(`You got ${style} hairstyle.`, "success");
            updateUI();
        }

        // Check if hairstyle is compatible with hair type
        function isHairstyleCompatible(style) {
            // Dreadlocks, braids, and twists work best on Afro-textured hair
            if (style === 'dreadlocks' || style === 'braids' || style === 'twists') {
                return gameState.hairType === "Afro" ||
                       gameState.hairType === "Coily" ||
                       gameState.hairType === "Kinky";
            }
           
            // Other styles work on most hair types
            return true;
        }

        // Handle random events that can decrease attractiveness
        function handleDegenerationEvents() {
            // Poor health can decrease attractiveness
            if (gameState.health < 50 && Math.random() > 0.7) {
                addLogEntry("Poor health is affecting your appearance.", "warning");
                gameState.attractiveness -= 0.1;
            }
           
            // Negative traits can worsen over time
            if (gameState.negativeFacial.length > 0 && Math.random() > 0.8) {
                const trait = gameState.negativeFacial[Math.floor(Math.random() * gameState.negativeFacial.length)];
                addLogEntry(`Your ${trait} is becoming more pronounced.`, "warning");
                gameState.attractiveness -= 0.15;
            }
           
            // Poor lifestyle choices can decrease attractiveness
            if (gameState.money < 20 && Math.random() > 0.9) {
                addLogEntry("Poor nutrition is affecting your appearance.", "warning");
                gameState.attractiveness -= 0.1;
                gameState.health -= 5;
            }
           
            // Injuries can decrease attractiveness
            if (Math.random() > 0.95) {
                addLogEntry("You suffered a minor injury that slightly affected your appearance.", "warning");
                gameState.attractiveness -= 0.2;
                gameState.health -= 5;
            }
           
            // Starvation effects
            if (gameState.starving) {
                gameState.lastMeal -= 10;
                if (gameState.lastMeal <= 0) {
                    addLogEntry("You're starving! Your health is deteriorating.", "danger");
                    gameState.health -= 5;
                    gameState.attractiveness -= 0.1;
                    gameState.lastMeal = 0;
                }
            }
        }

        // Handle random events
        function handleRandomEvents() {
            const events = [
                {
                    message: "You found $50 on the street.",
                    effect: () => gameState.money += 50
                },
                {
                    message: "You caught a cold. Health decreased slightly.",
                    effect: () => {
                        gameState.health -= 5;
                        if (gameState.health < 40) {
                            gameState.attractiveness -= 0.1;
                        }
                    }
                },
                {
                    message: "You read a book. IQ increased slightly.",
                    effect: () => {
                        if (gameState.iq < gameState.iqPotential) {
                            gameState.iq += 2;
                            if (gameState.iq > gameState.iqPotential) {
                                gameState.iq = gameState.iqPotential;
                            }
                        }
                    }
                },
                {
                    message: "You've been working out. Attractiveness increased slightly.",
                    effect: () => gameState.attractiveness += 0.1
                },
                {
                    message: "You developed a bad habit of mouth breathing.",
                    effect: () => {
                        if (!gameState.negativeFacial.includes("Malocclusion")) {
                            gameState.negativeFacial.push("Malocclusion");
                            addLogEntry("Mouth breathing has caused malocclusion.", "warning");
                            gameState.attractiveness -= 0.3;
                        }
                    }
                },
                {
                    message: "You spent time in the sun without protection.",
                    effect: () => {
                        gameState.health -= 3;
                        if (Math.random() > 0.7) {
                            addLogEntry("Sun damage has aged your skin prematurely.", "warning");
                            gameState.attractiveness -= 0.2;
                        }
                    }
                },
                {
                    message: "You've been stressed lately. It's affecting your appearance.",
                    effect: () => {
                        gameState.health -= 3;
                        gameState.attractiveness -= 0.1;
                    }
                },
                {
                    message: "Poor sleep quality is affecting your appearance.",
                    effect: () => {
                        gameState.health -= 2;
                        gameState.attractiveness -= 0.1;
                    }
                }
            ];
           
            const event = events[Math.floor(Math.random() * events.length)];
            addLogEntry(event.message);
            event.effect();
        }

        // Update social status based on attractiveness
        function updateSocialStatus() {
            if (gameState.attractiveness < 3) {
                gameState.socialStatus -= 5;
            } else if (gameState.attractiveness < 4) {
                gameState.socialStatus -= 2;
            } else if (gameState.attractiveness > 6) {
                gameState.socialStatus += 5;
            } else if (gameState.attractiveness > 5) {
                gameState.socialStatus += 2;
            }
           
            // Ensure social status stays within bounds
            gameState.socialStatus = Math.max(0, Math.min(100, gameState.socialStatus));
           
            // Update status text
            if (gameState.socialStatus >= 80) {
                gameState.status = "Popular";
            } else if (gameState.socialStatus >= 60) {
                gameState.status = "Liked";
            } else if (gameState.socialStatus >= 40) {
                gameState.status = "Neutral";
            } else if (gameState.socialStatus >= 20) {
                gameState.status = "Disliked";
            } else {
                gameState.status = "Bullied";
            }
        }

        // Update SMV based on various factors
        function updateSMV() {
            // Base SMV is attractiveness
            gameState.smv = gameState.attractiveness;
           
            // Adjust based on height
            if (gameState.height >= 72) { // 6'0"
                gameState.smv += 1;
            } else if (gameState.height < 67) { // 5'7"
                gameState.smv -= 1;
            }
           
            // Adjust based on race
            const raceMod = raceModifiers[gameState.race];
            gameState.smv += (raceMod.boneStructure + raceMod.skinQuality - 1) * 0.5;
           
            // Ensure SMV doesn't go below 1 or above 10
            gameState.smv = Math.max(1, Math.min(10, gameState.smv));
        }

        // Join .org forum
        function joinOrg() {
            if (gameState.age < 13) {
                addLogEntry("You must be at least 13 years old to join .org.", "warning");
                return;
            }
           
            gameState.onForum = true;
            gameState.orgStatus = "gray";
            addLogEntry("You've joined the .org forum. Your status is now 'Gray'.", "success");
            updateUI();
        }

        // Perform forum action
        function forumAction(action) {
            let message = "";
            let messageType = "info";
            let repChange = 0;
           
            switch(action) {
                case 'postThread':
                    if (Math.random() < 0.7) {
                        message = "Your thread was well-received on the forum.";
                        repChange = 10;
                    } else {
                        message = "Your thread was criticized on the forum.";
                        repChange = -5;
                    }
                    break;
                case 'comment':
                    message = "You commented on a thread.";
                    repChange = 2;
                    break;
                case 'shareExperience':
                    if (Math.random() < 0.6) {
                        message = "You shared your looksmaxxing experience. Others found it helpful.";
                        repChange = 15;
                    } else {
                        message = "You shared your looksmaxxing experience. Some questioned your methods.";
                        repChange = -3;
                    }
                    break;
                case 'askAdvice':
                    message = "You asked for advice on the forum.";
                    repChange = 5;
                    break;
            }
           
            gameState.forumReputation += repChange;
           
            // Update .org status based on reputation
            if (gameState.forumReputation >= 200) {
                gameState.orgStatus = "orgmaster";
            } else if (gameState.forumReputation >= 100) {
                gameState.orgStatus = "contributor";
            } else if (gameState.forumReputation >= 50) {
                gameState.orgStatus = "known";
            }
           
            addLogEntry(message, repChange >= 0 ? "success" : "warning");
            updateUI();
        }

        // Skincare routine
        function doSkincare() {
            if (gameState.money < 50) return;
           
            gameState.money -= 50;
           
            // Remove acne if present
            const acneIndex = gameState.negativeSkin.indexOf("Acne");
            const cysticAcneIndex = gameState.negativeSkin.indexOf("Cystic Acne");
           
            if (cysticAcneIndex !== -1 && Math.random() > 0.7) {
                gameState.negativeSkin.splice(cysticAcneIndex, 1);
                addLogEntry("Skincare routine improved your cystic acne.", "success");
                gameState.attractiveness += 0.4;
            } else if (acneIndex !== -1 && Math.random() > 0.5) {
                gameState.negativeSkin.splice(acneIndex, 1);
                addLogEntry("Skincare routine cleared your acne.", "success");
                gameState.attractiveness += 0.3;
            } else {
                addLogEntry("Skincare routine improved your complexion.", "success");
                gameState.attractiveness += 0.1;
            }
           
            updateUI();
        }

        // Gym workout
        function doGymWorkout() {
            if (gameState.money < 30 || gameState.gymAscension >= 2) return;
           
            gameState.money -= 30;
           
            // Improve body fat distribution
            const fatIndex = gameState.negativePhysical.indexOf("Poor Body Fat Distribution");
            if (fatIndex !== -1 && Math.random() > 0.5) {
                gameState.negativePhysical.splice(fatIndex, 1);
                addLogEntry("Regular workouts improved your body fat distribution.", "success");
                gameState.attractiveness += 0.3;
            }
           
            // Chance to widen clavicles
            if (gameState.negativePhysical.includes("Narrow Clavicles") && Math.random() > 0.8) {
                const clavicleIndex = gameState.negativePhysical.indexOf("Narrow Clavicles");
                gameState.negativePhysical.splice(clavicleIndex, 1);
                gameState.physicalTraits.push("Wide Clavicles");
                addLogEntry("Your clavicles widened from weight training.", "success");
                gameState.attractiveness += 0.4;
            }
           
            // Gym can only ascend you 1-2 tiers based on your base
            const baseTierIndex = tiers.findIndex(t => gameState.baseAttractiveness >= t.min && gameState.baseAttractiveness <= t.max);
            const maxAscension = Math.min(2, tiers.length - baseTierIndex - 1);
           
            if (gameState.gymAscension < maxAscension) {
                gameState.attractiveness += 0.3;
                gameState.gymAscension++;
                addLogEntry("Gym workout improved your physique.", "success");
            } else {
                addLogEntry("You've reached your maximum genetic potential from gym workouts.", "warning");
            }
           
            gameState.health += 2;
            updateUI();
        }

        // Study
        function doStudy() {
            if (gameState.money < 20 || gameState.iq >= gameState.iqPotential) return;
           
            gameState.money -= 20;
            gameState.iq += Math.floor(Math.random() * 3) + 1;
            if (gameState.iq > gameState.iqPotential) {
                gameState.iq = gameState.iqPotential;
            }
            addLogEntry("You spent time studying. Your IQ increased.", "success");
            updateUI();
        }

        // Work
        function doWork() {
            if (gameState.age < 16) {
                addLogEntry("You're too young for a job.", "warning");
                return;
            }
           
            const earnings = Math.floor(Math.random() * 50) + 75;
            gameState.money += earnings;
            addLogEntry(`You worked a part-time job and earned $${earnings}.`, "success");
            updateUI();
        }

        // Frauding (makeup, height boosts, etc.)
        function doFrauding() {
            if (gameState.money < 20) return;
           
            gameState.money -= 20;
           
            const frauds = [
                "You used makeup to enhance your features.",
                "You wore height-boosting insoles.",
                "You used clothing to create a more attractive silhouette.",
                "You got a flattering haircut.",
                "You practiced good posture to appear taller."
            ];
           
            const fraud = frauds[Math.floor(Math.random() * frauds.length)];
            addLogEntry(fraud, "success");
           
            // Temporary attractiveness boost
            gameState.attractiveness += 0.3;
           
            updateUI();
           
            // Fraud effects are temporary - reset after some time
            setTimeout(() => {
                gameState.attractiveness -= 0.3;
                addLogEntry("The effects of your frauding have worn off.", "warning");
                updateUI();
            }, 3000);
        }

        // DIY Filler
        function doDiyFiller() {
            if (gameState.money < 100 || gameState.age < 11) return;
           
            gameState.money -= 100;
           
            if (Math.random() < 0.7) {
                addLogEntry("DIY filler attempt failed and caused complications.", "danger");
                gameState.health -= 10;
                gameState.attractiveness -= 0.3;
               
                if (Math.random() < 0.3) {
                    addLogEntry("DIY filler caused a serious infection.", "danger");
                    gameState.health -= 15;
                }
            } else {
                addLogEntry("DIY filler provided a minor improvement.", "success");
                gameState.attractiveness += 0.2;
               
                // Temporary effect
                setTimeout(() => {
                    gameState.attractiveness -= 0.15;
                    addLogEntry("Your DIY filler has dissolved.", "warning");
                    updateUI();
                }, 4000);
            }
           
            updateUI();
        }

        // Restart game
        function restartGame() {
            if (confirm("Start a new life?")) {
                location.reload();
            }
        }

        // Rope (restart) function
        function rope() {
            if (confirm("Are you sure you want to end your life? All progress will be lost.")) {
                restartGame();
            }
        }

        // Initialize the game
        initGame();
    </script>
</body>
</html>
bill gates over here
 
1756678068657.png

nd people are now significantly smarter than nts
 

Users who are viewing this thread

Back
Top