<audio id="bgmusic" loop preload="auto"> <source src="https://1947game.online/Twine/Trauma/Music/Sad_Historical_Intro_Piano.mp3 " type="audio/mpeg"> </audio> <div id="musicControls" style=" position:fixed; top:-30px; right:6px; display:flex; flex-direction:column; gap:4px; z-index:9999; "> <button id="toggleMusic" aria-pressed="false" style=" padding:4px 7px; background:#d8c59e; color:#2a1a12; border:1px solid #6a4f3a; border-radius:6px; cursor:pointer; font-weight:700; font-size:0.68rem; box-shadow:0 2px 5px rgba(0,0,0,0.3); "> ▶ Start Music </button> </div> <script> (function () { const audio = document.getElementById('bgmusic'); const toggleBtn = document.getElementById('toggleMusic'); function setUI(isPlaying) { if (isPlaying) { toggleBtn.textContent = '⏸ Pause Music'; toggleBtn.setAttribute('aria-pressed', 'true'); } else { toggleBtn.textContent = '▶ Start Music'; toggleBtn.setAttribute('aria-pressed', 'false'); } } async function playAudio() { try { const playPromise = audio.play(); if (playPromise !== undefined) await playPromise; setUI(true); } catch (err) { console.warn('Audio play blocked:', err); setUI(false); } } function pauseAudio() { audio.pause(); setUI(false); } toggleBtn.addEventListener('click', function () { if (audio.paused) playAudio(); else pauseAudio(); }); function autoStart(e) { if (e.target && e.target.id === 'toggleMusic') return; playAudio(); } document.addEventListener('pointerdown', autoStart, { once: true }); // Sync UI on load setTimeout(() => setUI(!audio.paused), 80); })(); </script> <style> html, body, tw-story, tw-passage, #story, #passages { margin:0 !important; padding:0 !important; background:#1b120c !important; overflow:hidden !important; } #frontPageRoot { position:fixed; inset:0; display:flex; align-items:flex-start; justify-content:center; padding-top:8px; background:#1b120c; font-family:Georgia, serif; } .front-card { width:min(88vw, 520px); max-height:95vh; padding:10px 14px; background:url('https://1947game.online/Twine/Trauma/Image/Front-blend.png') center/cover no-repeat; border-radius:12px; box-shadow:0 12px 28px rgba(0,0,0,0.55); display:flex; flex-direction:column; } .front-title { font-size:2.1rem; text-align:center; margin:0; color:#3a2a1b; } .front-sub { text-align:center; font-size:0.95rem; font-style:italic; margin:2px 0 4px 0; color:#4a3825; } .front-blurb { font-size:0.88rem; line-height:1.26; margin-top:2px; color:#3a2a1b !important; } .question-line { text-align:center; font-style:italic; color:#3a2a1b; margin-top:2px; font-size:1.08rem; } .front-note-inline { margin-top:20px !important; font-size:0.8rem; line-height:1.22; text-align:center; color:#3a2a1b; } .front-cta { margin:16px auto 6px auto; text-align:center; } .front-cta a.link-internal { display:inline-flex !important; justify-content:center; align-items:center; width:auto !important; padding:9px 26px; background:linear-gradient(180deg, #d6c09d, #b79c72); color:#2c1e14 !important; border-radius:10px; border:2px solid rgba(80,54,30,0.4); font-weight:700; font-size:1.35rem; text-decoration:none !important; cursor:pointer !important; box-shadow:0 6px 14px rgba(0,0,0,0.2), inset 0 1px 0 rgba(255,255,255,0.2); animation:pulseGlow 2.2s ease-in-out infinite; transition: transform .18s ease, box-shadow .18s ease, border .18s ease; } .front-cta a.link-internal:hover { animation:none !important; transform:translateY(-2px) scale(1.04); border:3px solid rgba(255, 215, 100, 0.65); box-shadow: 0 0 18px rgba(255, 220, 130, 0.45), 0 0 32px rgba(255, 210, 110, 0.25), inset 0 2px 0 rgba(255,255,255,0.28); } .front-cta a.link-internal:active { transform:scale(0.96); border:3px solid rgba(255, 230, 120, 0.75); box-shadow:0 0 14px rgba(255, 220, 130, 0.45), inset 0 1px 0 rgba(0,0,0,0.25); } @keyframes pulseGlow { 0% { transform:scale(1); } 50% { transform:scale(1.05); } 100% { transform:scale(1); } } @media (max-width: 640px) { #frontPageRoot { padding-top:4px; } .front-card { width:94vw; padding:8px 10px; max-height:100vh; } .front-title { font-size:1.7rem; } .front-sub { font-size:0.85rem; margin:1px 0 3px 0; } .front-blurb { font-size:0.82rem; line-height:1.2; } .question-line { font-size:1rem; margin-top:2px; } .front-cta { margin:10px auto 4px auto; } .front-cta a.link-internal { font-size:1.15rem; padding:7px 20px; } .front-note-inline { margin-top:10px !important; font-size:0.75rem; line-height:1.15; } } </style> <div id="frontPageRoot"> <div class="front-card"> <div class="front-title"><b>1947 : Departed</b></div> <div class="front-sub"><b>A Story of Choice During the 1947 Partition</b></div> <div class="front-blurb"> <strong>August 1947.</strong><br> You are a Bengali Hindu living in what is now East Pakistan.<br> Violence spreads. Trains are attacked. Whole lanes disappear overnight.<br> Those who stay risk everything. Those who flee leave everything behind. <br><br> <div class="question-line"><b>What will you do?</b></div> <div class="front-cta"> [[Begin Your Journey|BeforeBegin]] </div> <div class="front-note-inline"> <b>Historical Note:</b> <br> <b>This fiction is inspired by real accounts of the 1947 Partition.<br> Millions walked these roads — some survived, many were lost.</b> </div> </div> </div> </div> (set: $scene to $scene + 1) (set: $playerName to (prompt: "Every story needs a name. What is yours?", "Arun")) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Home_Page.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> Your family has lived in this quiet village, Nabagram in East Pakistan for generations—long before borders were drawn, long before labels like Hindu and Muslim began shaping destinies and dividing homes. Life here has always moved with a gentle rhythm. You are **$playerName**, fifteen now. Your father, **Debendra**, forty-five, is respected across the town; he helped half the village during the cyclone of ’42, and people never forgot it… or so you believed. Your mother, **Karuna**, holds the home together with warmth and steady hands. Your younger sister, **Mina**, only ten, is the softest presence in your life. This has always been your world—until now. <center> <span style="display:inline-block; padding:4px 8px; margin-top:8px; border-radius:6px; background:#00000015; font-size:1.05em;"> [[Begin the Story]] </span> </center> (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/tensed.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> Your family has always been here. But today, something feels different. Smoke rises from far-off lanes. Neighbours whisper of rising violence — mobs storming homes, families dragged out, entire streets emptied as people flee with nothing but what they can carry. [[Lock the gate and wait|Unease]] [[Go outside and check|CheckOutside]] (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Family_Counsil.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> Your mother grips Mina close. “They marked houses last night,” she says. Your father stares at the floor. “They may come here too.” What do you do? [[Hide your documents|HideDocuments]] [[Sit together and prepare mentally|FamilyTalk]] (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Hide-documents.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> You lift the floor tile near the trunk. Land papers, ration cards — all go inside. Your mother scatters rice over the tile. “Maybe they won’t find everything.” [[Wait quietly|NightWait]] (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Family_Counsil.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> You sit shoulder to shoulder. No one speaks for a long time. Your father finally whispers, “If they come… we stand together.” [[Wait in silence|NightWait]] (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/night-wait.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> Darkness gathers. Shouting echoes from the next lane. Lantern light brushes your bamboo wall. Metal scrapes wood. Your house has been **marked**. What now? [[Bolt doors and arm yourselves|PrepareFight]] [[Hold still and remain silent|SilentWait]] (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Prepare-fight.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> Your father bolts the door. He grips the *Kulhadi.* It is old, but still sharp. He presses a small knife into your hand. “Protect Mina. Stay close.” Footsteps return outside. [[Face what comes|StayConfrontation]] (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Silent-Wait.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> You remain frozen in darkness. Boots approach the gate. Voices murmur outside. A heavy knock hits the door. Your father tightens his grip. [[Open the door|StayConfrontation]] [[Hurry to the back and prepare an escape route|StayBackEscapePrepare]]<div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/stay-confrontation.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> (set: $scene to $scene + 1) Lantern fire flashes across bodies. Your father raises the kulhadi. You slip forward with the knife. (if: $familyPower >= $mobPower)[ Your father moves first. [[Break their line|StayVictory]] ] (else:)[ The mob surges as one black wave. [[They overpower you|StayRefusal]] ] <audio id="bgmusic" loop preload="auto"> <source src="https://1947game.online/Twine/Trauma/Music/Silence-Sad-Background-Music.mp3 " type="audio/mpeg"> </audio> <div id="musicControls" style=" position:fixed; top:12px; right:12px; display:flex; flex-direction:column; gap:6px; z-index:9999; "> <button id="toggleMusic" aria-pressed="false" style=" padding:6px 10px; background:#d8c59e; color:#2a1a12; border:1px solid #6a4f3a; border-radius:6px; cursor:pointer; font-weight:700; font-size:0.85rem; box-shadow:0 2px 5px rgba(0,0,0,0.3); "> ▶ Start Music </button> </div> <script> (function () { const audio = document.getElementById('bgmusic'); const toggleBtn = document.getElementById('toggleMusic'); function setUI(isPlaying) { if (isPlaying) { toggleBtn.textContent = '⏸ Pause Music'; toggleBtn.setAttribute('aria-pressed', 'true'); } else { toggleBtn.textContent = '▶ Start Music'; toggleBtn.setAttribute('aria-pressed', 'false'); } } async function playAudio() { try { const playPromise = audio.play(); if (playPromise !== undefined) await playPromise; setUI(true); } catch (err) { console.warn('Audio play blocked:', err); setUI(false); } } function pauseAudio() { audio.pause(); setUI(false); } // Toggle button handler toggleBtn.addEventListener('click', function () { if (audio.paused) playAudio(); else pauseAudio(); }); // Automatic start on first user interaction ANYWHERE function autoStart(e) { // If user clicked toggle button intending to stop, don't force play if (e.target && e.target.id === 'toggleMusic') return; playAudio(); } document.addEventListener('pointerdown', autoStart, { once: true }); // Sync UI on load setTimeout(() => setUI(!audio.paused), 80); })(); </script> <style> .ending-wrap { background: #f4ecd8; border: 4px solid #a38456; border-radius: 12px; padding: 28px 32px; margin: 40px auto; width: 85%; max-width: 700px; box-shadow: 0 0 18px rgba(0,0,0,0.4); font-family: Georgia, serif; color: #2b1c0f; } .ending-ornament { text-align: center; font-size: 1.3em; margin: 4px 0 18px 0; color: #7a5a36; } .ending-text { font-size: 1.12em; line-height: 1.55em; margin-bottom: 26px; } .ending-final { text-align: center; font-size: 1.35em; font-weight: bold; margin-top: 22px; padding-top: 14px; border-top: 2px solid #a38456; color: #4b2d1a; letter-spacing: 1px; } </style> <div class="ending-wrap"> <div class="ending-ornament">✦ ✦ ✦</div> <div class="ending-text"> (set: $scene to $scene + 1) <div style="width:80%; max-width:80%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Stay-Death.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> The smell of kerosene wakes you up. Your family lies bound together on the floor. Outside, straw is piled against the walls. A voice whispers: "Light it." A match strikes. Flames erupt. Your father pulls you close. Your mother clutches Mina. The heat surges. The smoke thickens. There is no air. No escape. <b>You die together — as a family.</b> </div> <div class="ending-final"> THE LAST EMBRACE </div> </div> <div style="margin-top:6px; text-align:right;"> <span style="font-size:0.85rem;"> [[About the Game|AboutGame]] </span> </div> (set: $scene to $scene + 1) (set: $familyAlive to true) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Stay-Victory.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> Your father’s kulhadi cuts down **two attackers** instantly. You drive your knife into another before he can turn. The rest of the mob falters — fear finally finding them. They scatter into darkness, dragging their wounded. Silence crashes down around your house. Your father steadies himself. “We survived today— but we cannot stay here for long.” [[Decide to escape at dawn|ForcedEscape]] (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Family_Counsil.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> Dawn stains the sky grey-red. Your father speaks quietly: "They will return." Your mother nods. "We leave now." [[Choose your escape route|LeaveChoice]] (set: $scene to $scene + 1) <div style="width:40%; max-width:40%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Leave_Choice.png" style="width:90%; height:auto; border-radius:10px; opacity:0.95; display:block; margin:auto;" /> </div> Your family gathers close. Your mother grips Mina. Your father’s voice stays low. “We must choose our path.” [[Head to the train station|TrainPrep]] [[Try the river crossing|RiverPrep]] [[Walk west toward the border|FootPrep]] (set: $escapeRoute to "train") (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Train-Prep.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> You reach the crowded tracks. People shove forward. Cries echo across the platform. A train screeches to halt. Force your way into a train compartment. [[About the Game|AboutGame]](set: $escapeRoute to "river") (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/River-Prep.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> Moonlight glitters on black water. Boats drift silently near reeds. Your father hesitates for a moment. But, he pays for the river crossing. [[About the Game|AboutGame]](set: $escapeRoute to "foot") (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Foot-Prep.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> You join the endless walking line. Children stumble. Old men cling to sticks. Dust coats every breath. You with your family walk west towards the Indian border. [[About the Game|AboutGame]] <audio id="bgmusic" loop preload="auto"> <source src="https://1947game.online/Twine/Trauma/Music/Sad-Dramatic.mp3 " type="audio/mpeg"> </audio> <div id="musicControls" style=" position:fixed; top:12px; right:12px; display:flex; flex-direction:column; gap:6px; z-index:9999; "> <button id="toggleMusic" aria-pressed="false" style=" padding:6px 10px; background:#d8c59e; color:#2a1a12; border:1px solid #6a4f3a; border-radius:6px; cursor:pointer; font-weight:700; font-size:0.85rem; box-shadow:0 2px 5px rgba(0,0,0,0.3); "> ▶ Start Music </button> </div> <script> (function () { const audio = document.getElementById('bgmusic'); const toggleBtn = document.getElementById('toggleMusic'); function setUI(isPlaying) { if (isPlaying) { toggleBtn.textContent = '⏸ Pause Music'; toggleBtn.setAttribute('aria-pressed', 'true'); } else { toggleBtn.textContent = '▶ Start Music'; toggleBtn.setAttribute('aria-pressed', 'false'); } } async function playAudio() { try { const playPromise = audio.play(); if (playPromise !== undefined) await playPromise; setUI(true); } catch (err) { console.warn('Audio play blocked:', err); setUI(false); } } function pauseAudio() { audio.pause(); setUI(false); } // Toggle button handler toggleBtn.addEventListener('click', function () { if (audio.paused) playAudio(); else pauseAudio(); }); // Automatic start on first user interaction ANYWHERE function autoStart(e) { // If user clicked toggle button intending to stop, don't force play if (e.target && e.target.id === 'toggleMusic') return; playAudio(); } document.addEventListener('pointerdown', autoStart, { once: true }); // Sync UI on load setTimeout(() => setUI(!audio.paused), 80); })(); </script> (set: $scene to $scene + 1) (set: $familyAlive to false) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Stay-Refusal.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> They come from all sides. Bamboo cracks against bone. Knives flash. Someone tears the kulhadi from your father’s hands. You feel a sharp pain behind your head. Your mother screams. Mina vanishes from your sight. Ropes bite into your wrists as the world fades to black. [[All of you lie bound and broken on the floor|StayDeath]] <div style="position:relative; width:100%; min-height:350px; margin-bottom:15px;"> <!-- Background Image --> <div style=" position:absolute; top:0; left:50%; transform:translateX(-50%); width:90%; max-width:900px; height:100%; z-index:1; "> <img src="https://1947game.online/Twine/Trauma/Image/stay-confrontation.png" style=" width:100%; height:100%; object-fit:cover; border-radius:14px; opacity:0.25; "> </div> <!-- Text Overlay --> <div style=" position:relative; z-index:2; padding:10px 15px; "> (set: $scene to $scene + 1) (set: $weaponReady to true) (set: $fatherWeapon to "Kulhadi") (set: $fatherPower to 5) (set: $playerWeapon to "Knife") (set: $playerPower to 2) (set: $familyPower to $fatherPower + $playerPower) (set: $mobSize to (random:3,5)) (set: $mobWeapon to (either:"Bamboo Sticks","Knives","Sickles")) (if: $mobWeapon is "Bamboo Sticks")[ (set: $mobPower to $mobSize * 1) ] (else-if: $mobWeapon is "Knives")[ (set: $mobPower to $mobSize * 2) ] (else:)[ (set: $mobPower to $mobSize * 3) ] $mobSize men force their way through the door. They rush inside carrying **$mobWeapon**. Your father grips his **$fatherWeapon**. Your **$playerWeapon** feels cold in your hand. (if: $familyPower < $mobPower)[ Their strength overwhelms the room. You know you’ll have to fight far harder than you're ready for. ] (else-if: $familyPower is $mobPower)[ The balance is terrifyingly even. Every move must be perfect — your family’s lives depend on it. ] (else:)[ Their weapons look crude and poorly handled. Confidence rises in you. You believe you can overpower them and drive them away. ] [[Stand and fight|CombatCheck]] <audio id="bgmusic" loop preload="auto"> <source src="https://1947game.online/Twine/Trauma/Music/Epic-Cinematic-Inspiring-Classic-Orchestra.mp3" type="audio/mpeg"> </audio> <div id="musicControls" style=" position:fixed; top:-12px; right:6px; display:flex; flex-direction:column; gap:4px; z-index:9999; "> <button id="toggleMusic" aria-pressed="false" style=" padding:4px 7px; background:#d8c59e; color:#2a1a12; border:1px solid #6a4f3a; border-radius:6px; cursor:pointer; font-weight:700; font-size:0.68rem; box-shadow:0 2px 5px rgba(0,0,0,0.3); "> ▶ Start Music </button> </div> <script> (function () { const audio = document.getElementById('bgmusic'); const toggleBtn = document.getElementById('toggleMusic'); function setUI(isPlaying) { toggleBtn.textContent = isPlaying ? '⏸ Pause Music' : '▶ Start Music'; toggleBtn.setAttribute('aria-pressed', isPlaying); } async function playAudio() { try { await audio.play(); setUI(true); } catch { setUI(false); } } function pauseAudio() { audio.pause(); setUI(false); } toggleBtn.addEventListener('click', () => audio.paused ? playAudio() : pauseAudio() ); document.addEventListener('pointerdown', playAudio, { once:true }); })(); </script> <style> /* restore normal scrolling just for this page */ tw-passage { overflow-y: auto !important; } .about-wrapper { width:100%; padding:24px 8vw 40px; box-sizing:border-box; background:rgba(38,22,13,0.85); border:1px solid #6a4f3a; border-radius:12px; box-shadow: inset 0 0 35px rgba(0,0,0,0.35), 0 8px 25px rgba(0,0,0,0.4); color:#efe2c6; line-height:1.6; font-family:Georgia,serif; } .about-title { text-align:center; border-bottom:1px solid #6a4f3a; margin-bottom:18px; padding-bottom:8px; font-size:1.6em; letter-spacing:0.06em; } .about-center { text-align:center; } .about-divider { border:none; height:1px; background:#6a4f3a; margin:18px 0; } .about-box { margin-top:14px; padding:12px; background:rgba(0,0,0,0.35); border:1px solid #6a4f3a; border-radius:8px; text-align:center; } </style> <div id="aboutContent" class="about-wrapper"> <div class="about-title">ABOUT THE GAME</div> <p class="about-center"> This is a short demo extracted from the full narrative for testing and evaluation purposes.<br> Your playthrough and feedback would mean a lot in shaping the final version. </p> <div class="about-center" style="margin:16px 0;"> (link:"▶ Play the full working version")[(goto-url:"https://1947game.online/full.html")] </div> <hr class="about-divider"> <div class="about-center" style="letter-spacing:0.08em;"> CREDITS </div> <p class="about-center"> Made by <b>Animesh Dhara</b> as part of the Twine game project for the course <i>Games and Culture(s)</i> at the <b>Centre for Studies in Social Sciences, Calcutta.</b> </p> <p class="about-center"> Course Instructor:<br> <b>Dr. Souvik Mukherjee</b> </p> <div class="about-box"> For feedback and suggestions:<br> <i>adanimeshdhara45@gmail.com</i> </div> </div> <script> (function(){ function autoScroll() { window.scrollBy(0, 0.35); if( window.innerHeight + window.scrollY < document.body.scrollHeight ){ requestAnimationFrame(autoScroll); } } setTimeout(() => requestAnimationFrame(autoScroll), 1500); })(); </script> <audio id="bgmusic" loop preload="auto"> <source src="https://1947game.online/Twine/Trauma/Music/Sad_Historical_Intro_Piano.mp3 " type="audio/mpeg"> </audio> <div id="musicControls" style=" position:fixed; top:-12px; right:6px; display:flex; flex-direction:column; gap:4px; z-index:9999; "> <button id="toggleMusic" aria-pressed="false" style=" padding:4px 7px; background:#d8c59e; color:#2a1a12; border:1px solid #6a4f3a; border-radius:6px; cursor:pointer; font-weight:700; font-size:0.68rem; box-shadow:0 2px 5px rgba(0,0,0,0.3); "> ▶ Start Music </button> </div> <script> (function () { const audio = document.getElementById('bgmusic'); const toggleBtn = document.getElementById('toggleMusic'); function setUI(isPlaying) { if (isPlaying) { toggleBtn.textContent = '⏸ Pause Music'; toggleBtn.setAttribute('aria-pressed', 'true'); } else { toggleBtn.textContent = '▶ Start Music'; toggleBtn.setAttribute('aria-pressed', 'false'); } } async function playAudio() { try { const playPromise = audio.play(); if (playPromise !== undefined) await playPromise; setUI(true); } catch (err) { console.warn('Audio play blocked:', err); setUI(false); } } function pauseAudio() { audio.pause(); setUI(false); } toggleBtn.addEventListener('click', function () { if (audio.paused) playAudio(); else pauseAudio(); }); function autoStart(e) { if (e.target && e.target.id === 'toggleMusic') return; playAudio(); } document.addEventListener('pointerdown', autoStart, { once: true }); setTimeout(() => setUI(!audio.paused), 80); })(); </script> <style> html, body, tw-story, tw-passage { background:#1b120c !important; margin:0 !important; padding:0 !important; min-height:100% !important; height:100% !important; overflow:hidden !important; } tw-passage { box-shadow:none !important; border:none !important; background:none !important; max-width:none !important; padding:0 !important; margin:0 !important; } #beforeBeginRoot { position:fixed; inset:0; display:flex; align-items:flex-start; justify-content:center; padding-top:0; font-family:Georgia, serif; } #beforeBeginWrapper { margin:0 auto; max-width:500px; transform:translateY(-22px); } @media (max-width:640px) { html, body, tw-story, tw-passage { overflow-y: auto !important; overflow-x: hidden !important; } #beforeBeginWrapper { max-width:90vw; transform:translateY(-10px); /* slightly up, but safe */ } .before-box { font-size:0.75em !important; line-height:1.2 !important; padding:8px 10px 12px 10px !important; /* prevent clipping on very small screens */ max-height:85vh; overflow-y:auto; } } </style> (set: $scene to $scene + 1) <!-- PAGE ROOT --> <div id="beforeBeginRoot"> <div id="beforeBeginWrapper"> <div class="before-box" style=" background:url('https://1947game.online/Twine/Trauma/Image/Parchment_Square.jpg') center/cover no-repeat; padding:10px 12px 18px 12px; margin:0 auto; border-left:4px solid rgba(140,100,60,0.6); border-radius:4px; color:#3b2616; line-height:1.24; font-size:0.78em; "> <!-- TITLE --> <div style=" text-align:center; font-size:1.05em; font-style:italic; font-weight:bold; color:#3a2417; margin:0 0 3px 0; "> Before We Begin </div> <div style="text-align:left;"> • In August 1947, British India was divided into India and Pakistan.<br> • East Pakistan (now Bangladesh) became part of Pakistan despite being 1,300+ miles away.<br> • 12–15 million people were displaced.<br> • Nearly 2 million were killed.<br> • Trains became symbols of horror.<br> • Hindus in East Pakistan faced rising discrimination. </div> <div style=" margin-top:2px; text-align:center; font-size:0.9em; padding-bottom:6px; "> [[Continue|HOME]] </div> </div> </div> </div> (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/Deserted-Street.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> You walk down the lane to check on the neighbours, stepping over scattered straw and shattered clay pots. At the first house, there is no answer. The door stands open. Inside, the beds are overturned and the shelves stripped bare. They fled in the night… or were taken. This street will not remain safe for much longer. [[Return home with this warning|FamilyTalk]] (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/StayBackEscapePrepare.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> You slip into the back courtyard, careful not to make a sound. Your father hooks the rope over the wall. Your mother wraps Mina tightly, hiding her hair and face. She shivers — not from cold, but from the fear closing in on all sides. Your father grips your shoulder. “It’s now or never.” [[Climb the rope and flee into the back lanes|StayEscapeNight]] (set: $scene to $scene + 1) <div style="width:50%; max-width:50%; margin:0 auto 10px auto;"> <img src="https://1947game.online/Twine/Trauma/Image/StayEscapeNight.png" style="width:100%; height:auto; border-radius:10px; opacity:0.95;" /> </div> Your mother climbs the rope first. You push Mina up after her. You climb next, the rope cutting into your palms. Your father comes last, dropping into the back lane with a soft grunt. “From here, we choose our own path.” [[Choose your family’s escape route|LeaveChoice]]