:root{--primary-bg: #1a0a2e;--secondary-bg: #16213e;--tertiary-bg: #0f3460;--text-color: #f5e6c8;--text-secondary: #d4c5a0;--accent-color: #8b0000;--accent-light: #a52a2a;--accent-dark: #5c0000;--choice-bg: #2d1b4e;--choice-hover: #3d2b5e;--choice-active: #4d2b6e;--success-color: #4caf50;--failure-color: #f44336;--warning-color: #ff9800;--info-color: #2196f3;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-xxl: 3rem;--font-family-primary: "Georgia", "Times New Roman", serif;--font-family-secondary: "Arial", "Helvetica", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-md: 1.1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-xxl: 2rem;--font-size-xxxl: 2.5rem;--line-height-tight: 1.2;--line-height-normal: 1.6;--line-height-relaxed: 1.8;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 8px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .5);--shadow-glow-red: 0 0 20px rgba(139, 0, 0, .5);--shadow-glow-gold: 0 0 20px rgba(255, 215, 0, .5);--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--z-background: 1;--z-decorative: 2;--z-character: 3;--z-ui: 4;--z-text: 5;--z-narrative: 4;--z-choice: 5;--z-modal: 100;--dialogue-bg: rgba(45, 27, 78, .9);--dialogue-border: 2px solid rgba(139, 0, 0, .6);--dialogue-padding: 1.5rem;--dialogue-radius: 12px;--dialogue-shadow: 0 8px 32px rgba(0, 0, 0, .6);--character-left-offset: 5%;--character-center-offset: 50%;--character-right-offset: 95%;--decorative-opacity: .7;--decorative-blend-mode: multiply;--transition-scene: .6s ease-in-out;--transition-fade: .4s ease;--transition-slide: .5s ease-out;--touch-target-min: 48px;--button-padding-mobile: 1rem 1.5rem;--button-padding-desktop: .75rem 1.5rem}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family-primary);background-color:var(--primary-bg);color:var(--text-color);line-height:var(--line-height-normal);overflow-x:hidden;min-height:100vh;font-family:Georgia,Palatino,Times New Roman,serif}#game-container{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--primary-bg) 0%,var(--secondary-bg) 100%)}#game-header{padding:var(--spacing-md) var(--spacing-lg);text-align:center;border-bottom:2px solid rgba(139,69,19,.8);background:linear-gradient(180deg,#5c2e1a,#4a2416);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 2px 8px #00000080}#game-header h1{font-size:2.5rem;color:#e8934f;text-shadow:3px 3px 6px rgba(0,0,0,.9),0 0 20px rgba(232,147,79,.5);font-weight:700;letter-spacing:.15em;margin-bottom:0;font-family:"Creepster","Nosifer","Eater",cursive,var(--font-family-primary);text-transform:uppercase}#game-content{flex:1;position:relative;padding:var(--spacing-xl);display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:#3a3a2a;background-image:url(/images/backgrounds/pumpkin_background_characters.png);background-size:cover;background-position:center;background-repeat:no-repeat}#background-layer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:var(--z-background);background-size:cover;background-position:center;background-repeat:no-repeat;opacity:1;transition:opacity var(--transition-slow)}#background-layer img{width:100%;height:100%;object-fit:cover}#decorative-layer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:var(--z-decorative);pointer-events:none}.decorative-element{position:absolute;opacity:var(--decorative-opacity);mix-blend-mode:var(--decorative-blend-mode);pointer-events:none;transition:opacity var(--transition-fade)}.decorative-element.pumpkins{bottom:0;left:0;width:100%;height:200px;background-size:contain;background-repeat:repeat-x;background-position:bottom}.decorative-element.fog{top:0;left:0;width:100%;height:100%;background:linear-gradient(to bottom,rgba(255,255,255,.1),transparent);mix-blend-mode:overlay}.decorative-element.border{top:0;left:0;width:100%;height:100%;border:20px solid transparent;border-image:url(/images/decorative/border_ornate.svg) 30 round;box-sizing:border-box}.decorative-element.particles{top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;animation:float-particles 20s ease-in-out infinite}@keyframes float-particles{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}#character-layer{position:absolute;top:10%;right:5%;z-index:var(--z-character);pointer-events:none;width:300px}.character-sprite-container{position:relative;transition:all var(--transition-normal)}.character-sprite-container img{max-width:300px;max-height:400px;object-fit:contain;filter:drop-shadow(0 0 20px rgba(0,0,0,.9))}#narrative-layer{max-width:800px;width:100%;margin:0 auto;z-index:var(--z-text);position:relative;margin-bottom:var(--spacing-md)}#narrative-text{font-size:var(--font-size-xl);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:transparent;border-radius:0;border:none;box-shadow:none;line-height:var(--line-height-relaxed);-webkit-backdrop-filter:none;backdrop-filter:none;color:#f5e6c8;text-shadow:2px 2px 4px rgba(0,0,0,.9);font-family:var(--font-family-primary);text-align:center;transition:opacity .3s ease}#narrative-text:empty{display:none}#narrative-text p{margin-bottom:var(--spacing-md);color:#f5e6c8;font-family:var(--font-family-primary);text-align:center}#narrative-text p:last-child{margin-bottom:0}.dialogue-box{background:var(--dialogue-bg);border:var(--dialogue-border);padding:var(--dialogue-padding);border-radius:var(--dialogue-radius);box-shadow:var(--dialogue-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;z-index:var(--z-ui);margin-bottom:var(--spacing-xl);line-height:var(--line-height-relaxed)}.dialogue-box.normal{border-color:#8b000099;background:#2d1b4ee6}.dialogue-box.horror{border-color:var(--accent-color);background:#8b000033;box-shadow:0 0 30px #8b0000cc;animation:pulse-glow 2s ease-in-out infinite}.dialogue-box.mystical{border-color:#8a2be2cc;background:#4b00824d;box-shadow:0 0 30px #8a2be299}.dialogue-box.urgent{border-color:#ff8c00cc;background:#8b4500b3;box-shadow:0 0 30px #ff8c0099;animation:pulse-urgent 1s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px #8b000099;border-color:#8b000099}50%{box-shadow:0 0 40px #8b0000e6;border-color:#8b0000e6}}@keyframes pulse-urgent{0%,to{box-shadow:0 0 20px #ff8c0099}50%{box-shadow:0 0 40px #ff8c00e6}}#choice-layer{max-width:800px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:0;z-index:var(--z-choice);position:relative;margin-top:var(--spacing-sm)}#game-controls{display:none}button{background-color:var(--choice-bg);color:var(--text-color);border:2px solid var(--accent-color);padding:var(--button-padding-desktop);font-size:var(--font-size-base);font-family:var(--font-family-primary);cursor:pointer;transition:all var(--transition-normal);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);font-weight:500;letter-spacing:.02em;position:relative;overflow:hidden;min-height:44px}button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#8b00004d;transform:translate(-50%,-50%);transition:width var(--transition-normal),height var(--transition-normal)}button:hover{background-color:var(--choice-hover);transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--accent-light)}button:hover:before{width:300px;height:300px}button:active{transform:translateY(0);background-color:var(--choice-active);box-shadow:var(--shadow-sm)}button:focus{outline:3px solid var(--accent-light);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button:disabled:hover{background-color:var(--choice-bg);transform:none}.choice-button{width:100%;text-align:center;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);line-height:var(--line-height-normal);font-family:var(--font-family-primary);background:linear-gradient(180deg,#6b3e2e,#4a2416);border:2px solid rgba(139,69,19,.6);border-radius:var(--radius-md);box-shadow:0 4px 12px #0009;-webkit-backdrop-filter:none;backdrop-filter:none;color:#f5e6c8;margin-bottom:var(--spacing-md)}.choice-button:hover:not(:disabled){background:linear-gradient(180deg,#7d4a38,#5c2e1a);border-color:#e8934f;box-shadow:0 6px 20px #000c,0 0 15px #e8934f80;transform:translateY(-2px)}.choice-button:active:not(:disabled){background:linear-gradient(180deg,#5c2e1a,#3a1a0f);border-color:#e8934f;box-shadow:0 2px 8px #000000e6,0 0 20px #e8934f99;transform:translateY(0)}.choice-button:focus-visible{outline:3px solid var(--accent-light);outline-offset:3px}.choice-button:disabled{opacity:.4;cursor:not-allowed;transform:none;background:linear-gradient(180deg,#4a2416,#3a1a0f);border-color:#8b45134d;color:#f5e6c880}#audio-toggle{min-width:120px;padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm)}.start-button,.restart-button{font-size:var(--font-size-lg);padding:var(--spacing-lg) var(--spacing-xxl);min-width:200px;background:linear-gradient(180deg,#6b3e2e,#4a2416);border:2px solid rgba(139,69,19,.6);box-shadow:0 4px 12px #0009;font-weight:400;letter-spacing:.05em;color:#f5e6c8;font-family:var(--font-family-primary)}.start-button:hover,.restart-button:hover{background:linear-gradient(180deg,#7d4a38,#5c2e1a);border-color:#e8934f;box-shadow:0 6px 20px #000c,0 0 15px #e8934f80;transform:translateY(-2px)}.challenge-scene{border:3px solid var(--accent-color);padding:1.5rem;border-radius:8px;background:linear-gradient(135deg,#8b00001a,#2d1b4e4d);box-shadow:0 0 20px #8b000080}.challenge-scene .narrative-text{font-weight:700;font-size:1.2rem;color:#fc0;text-shadow:0 0 10px rgba(255,204,0,.5)}.riddle-question{font-style:italic;color:#ff6b6b;font-size:1.15rem;margin:1rem 0;padding:1rem;background:#8b000033;border-left:4px solid var(--accent-color);border-radius:4px}.character-sprite-container.active-character{animation:pulse 2s ease-in-out infinite;filter:brightness(1.3) drop-shadow(0 0 15px rgba(255,204,0,.8))}@keyframes pulse{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.05)}}#progress-indicator{margin-top:.5rem;padding:.5rem;background:transparent;border-radius:0;border:none}.spirit-progress-container{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap}.spirit-indicator{display:flex;align-items:center;padding:.4rem .8rem;border-radius:6px;background:linear-gradient(180deg,#6b3e2e,#4a2416);border:2px solid rgba(139,69,19,.6);transition:all .3s ease}.spirit-indicator.not-met{opacity:.4;border-color:#8b45134d;background:linear-gradient(180deg,#4a2416,#3a1a0f)}.spirit-indicator.met{opacity:.7;border-color:#8b451380}.spirit-indicator.success{opacity:1;border-color:#e8934f;background:linear-gradient(180deg,#7d4a38,#5c2e1a);box-shadow:0 0 10px #e8934f66}.spirit-indicator.failure{opacity:1;border-color:#8b4513;background:linear-gradient(180deg,#5c2e1a,#3a1a0f)}.spirit-label{font-size:.85rem;font-weight:400;color:#f5e6c8;font-family:var(--font-family-primary)}.completion-indicator{margin-top:.5rem;text-align:center;font-size:1rem;font-weight:400;color:#e8934f;text-shadow:0 0 10px rgba(232,147,79,.5);animation:glow 2s ease-in-out infinite;font-family:var(--font-family-primary)}@keyframes glow{0%,to{opacity:1}50%{opacity:.7}}.progress-summary{text-align:center;color:#f5e6c8;font-family:var(--font-family-primary);font-size:.9rem}.feedback-message{font-size:1.5rem;font-weight:700;text-align:center;padding:2rem;border-radius:8px;margin:2rem auto;max-width:600px}.feedback-message.success{color:#4caf50;background:#4caf5033;border:3px solid #4caf50;box-shadow:0 0 20px #4caf5080}.feedback-message.failure{color:#f44336;background:#f4433633;border:3px solid #f44336;box-shadow:0 0 20px #f4433680}.feedback-animation{animation:feedbackPulse .6s ease-in-out,feedbackFadeIn .3s ease-in}@keyframes feedbackPulse{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}@keyframes feedbackFadeIn{0%{opacity:0}to{opacity:1}}.scene-transition-out{animation:fadeOut var(--transition-scene)}.scene-transition-in{animation:fadeIn var(--transition-scene)}.scene-cross-fade-out{animation:fadeOut var(--transition-fade)}.scene-cross-fade-in{animation:fadeIn var(--transition-fade)}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.narrative-text{font-family:var(--font-family-primary);font-size:var(--font-size-xl);font-weight:400;line-height:var(--line-height-relaxed);letter-spacing:.02em;color:#f5e6c8;text-align:center;text-shadow:2px 2px 4px rgba(0,0,0,.9)}.character-name{font-family:var(--font-family-primary);font-size:var(--font-size-lg);font-weight:700;color:var(--accent-light);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--spacing-sm);text-shadow:0 0 10px rgba(165,42,42,.5)}.character-gogo-thandi .character-name{color:#9370db;text-shadow:0 0 10px rgba(147,112,219,.5)}.character-tokoloshe .character-name{color:var(--accent-color);text-shadow:0 0 10px rgba(139,0,0,.8)}.character-sangoma .character-name{color:gold;text-shadow:0 0 10px rgba(255,215,0,.6)}.dialogue-text{font-family:var(--font-family-primary);font-size:var(--font-size-md);font-weight:400;line-height:var(--line-height-relaxed);letter-spacing:.015em;margin:0}.riddle-text{font-family:var(--font-family-primary);font-size:var(--font-size-lg);font-weight:500;font-style:italic;line-height:var(--line-height-normal);letter-spacing:.03em;color:#ff6b6b;text-shadow:0 0 8px rgba(255,107,107,.4);padding:var(--spacing-md);background:#8b000033;border-left:4px solid var(--accent-color);border-radius:var(--radius-sm);margin:var(--spacing-md) 0}.challenge-text{font-family:var(--font-family-primary);font-size:var(--font-size-lg);font-weight:700;line-height:var(--line-height-normal);letter-spacing:.05em;color:#fc0;text-shadow:0 0 10px rgba(255,204,0,.5)}.text-effect-glow,.text-glow{text-shadow:0 0 10px currentColor,0 0 20px currentColor;animation:text-glow-pulse 2s ease-in-out infinite}@keyframes text-glow-pulse{0%,to{text-shadow:0 0 10px currentColor,0 0 20px currentColor}50%{text-shadow:0 0 20px currentColor,0 0 40px currentColor}}.text-effect-shadow,.text-shadow{text-shadow:2px 2px 4px rgba(0,0,0,.8),4px 4px 8px rgba(0,0,0,.6)}.text-effect-pulse,.text-pulse{animation:text-pulse 1.5s ease-in-out infinite}@keyframes text-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}.text-effect-shimmer,.text-shimmer{background:linear-gradient(90deg,currentColor 0%,rgba(255,255,255,.8) 50%,currentColor 100%);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 3s linear infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.title-screen,.ending-screen{text-align:center;padding:var(--spacing-xxl);max-width:800px;margin:0 auto}.title-screen h2,.ending-screen h2{font-size:var(--font-size-xxl);color:#f5e6c8;text-shadow:2px 2px 4px rgba(0,0,0,.9);margin-bottom:var(--spacing-xl);line-height:var(--line-height-tight);font-family:var(--font-family-primary);text-align:center}.title-screen p,.ending-screen p{font-size:var(--font-size-xl);color:#f5e6c8;margin-bottom:var(--spacing-lg);line-height:var(--line-height-relaxed);font-family:var(--font-family-primary);text-align:center;text-shadow:2px 2px 4px rgba(0,0,0,.9)}.ending-screen{background:linear-gradient(180deg,#5c2e1a,#4a2416);border:3px solid rgba(139,69,19,.8);border-radius:var(--radius-lg);box-shadow:0 8px 32px #000000e6,0 0 20px #e8934f4d;padding:var(--spacing-xxl)}.ending-screen.escape-ending{border-color:#e8934f;box-shadow:0 8px 32px #000000e6,0 0 25px #e8934f99}.ending-screen.trapped-ending{border-color:#8b4513;box-shadow:0 8px 32px #000000e6,0 0 20px #8b451366}.confirmation-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:linear-gradient(180deg,#5c2e1a,#4a2416);border:3px solid rgba(139,69,19,.8);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:0 8px 32px #000000e6,0 0 20px #e8934f4d;z-index:var(--z-modal);max-width:500px;width:90%}.confirmation-dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;z-index:calc(var(--z-modal) - 1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.confirmation-dialog h3{font-size:var(--font-size-xl);color:#e8934f;margin-bottom:var(--spacing-md);text-align:center;font-family:var(--font-family-primary);text-shadow:2px 2px 4px rgba(0,0,0,.8)}.confirmation-dialog p{font-size:var(--font-size-base);color:#f5e6c8;margin-bottom:var(--spacing-lg);text-align:center;line-height:var(--line-height-relaxed);font-family:var(--font-family-primary)}.confirmation-dialog-buttons{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap}.confirmation-dialog-buttons button{flex:1;min-width:120px;background:linear-gradient(180deg,#6b3e2e,#4a2416)!important;border:2px solid rgba(139,69,19,.6)!important;color:#f5e6c8!important;font-family:var(--font-family-primary)!important;box-shadow:0 4px 12px #0009!important}.confirmation-dialog-buttons button:hover{background:linear-gradient(180deg,#7d4a38,#5c2e1a)!important;border-color:#e8934f!important;box-shadow:0 6px 20px #000c,0 0 15px #e8934f80!important;transform:translateY(-2px)}.quit-confirmation-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:linear-gradient(180deg,#5c2e1a,#4a2416)!important;border:3px solid rgba(139,69,19,.8)!important;border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:0 8px 32px #000000e6,0 0 20px #e8934f4d!important;z-index:var(--z-modal);max-width:500px;width:90%}.quit-confirmation-dialog h3{font-size:var(--font-size-xl);color:#e8934f!important;margin-bottom:var(--spacing-md);text-align:center;font-family:var(--font-family-primary)!important;text-shadow:2px 2px 4px rgba(0,0,0,.8)}.quit-confirmation-dialog p{font-size:var(--font-size-base);color:#f5e6c8!important;margin-bottom:var(--spacing-lg);text-align:center;line-height:var(--line-height-relaxed);font-family:var(--font-family-primary)!important}.quit-confirmation-dialog button{background:linear-gradient(180deg,#6b3e2e,#4a2416)!important;border:2px solid rgba(139,69,19,.6)!important;color:#f5e6c8!important;font-family:var(--font-family-primary)!important;box-shadow:0 4px 12px #0009!important}.quit-confirmation-dialog button:hover{background:linear-gradient(180deg,#7d4a38,#5c2e1a)!important;border-color:#e8934f!important;box-shadow:0 6px 20px #000c,0 0 15px #e8934f80!important}.loading-spinner{display:inline-block;width:40px;height:40px;border:4px solid rgba(139,0,0,.3);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-lg);padding:var(--spacing-xxl)}.loading-text{font-size:var(--font-size-md);color:var(--text-secondary)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*:focus-visible{outline:3px solid var(--accent-light);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(min-width:1025px){#game-content{padding:var(--spacing-xxl)}#narrative-text{font-size:var(--font-size-lg);padding:var(--spacing-xl)}.character-sprite-container img{max-width:350px;max-height:450px}.choice-button{font-size:var(--font-size-md);padding:var(--spacing-lg) var(--spacing-xl)}#game-header h1{font-size:var(--font-size-xxxl)}}@media(min-width:769px)and (max-width:1024px){#game-content{padding:var(--spacing-xl)}#narrative-text{font-size:var(--font-size-md);padding:var(--spacing-lg)}.character-sprite-container img{max-width:280px;max-height:380px}#game-header h1{font-size:var(--font-size-xxl)}button{min-height:var(--touch-target-min);padding:var(--button-padding-mobile)}.choice-button{font-size:var(--font-size-base);padding:var(--spacing-md) var(--spacing-lg)}}@media(max-width:768px){html{font-size:14px}#game-header{padding:var(--spacing-md)}#game-header h1{font-size:var(--font-size-xl);letter-spacing:.03em}#game-content{padding:var(--spacing-md)}#narrative-text{font-size:var(--font-size-base);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}button{min-height:var(--touch-target-min);padding:var(--button-padding-mobile);font-size:var(--font-size-base)}.choice-button{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);min-height:var(--touch-target-min)}.start-button,.restart-button{font-size:var(--font-size-md);padding:var(--spacing-md) var(--spacing-xl);min-width:180px}#character-layer{position:relative;top:auto;left:auto;transform:none;width:100%;text-align:center;margin-bottom:var(--spacing-md)}.character-sprite-container{display:inline-block}.character-sprite-container img{max-width:200px;max-height:280px}.challenge-scene{padding:var(--spacing-md)}.challenge-scene .narrative-text{font-size:var(--font-size-md)}.riddle-question{font-size:var(--font-size-base);padding:var(--spacing-sm) var(--spacing-md)}.spirit-progress-container{gap:var(--spacing-sm);flex-direction:column;align-items:stretch}.spirit-indicator{padding:var(--spacing-sm) var(--spacing-md);justify-content:center}.spirit-label{font-size:var(--font-size-sm)}.feedback-message{font-size:var(--font-size-lg);padding:var(--spacing-lg);margin:var(--spacing-lg) auto}#game-controls{padding:var(--spacing-md)}#audio-toggle{min-width:100px;padding:var(--spacing-sm) var(--spacing-md)}}@media(max-width:480px){html{font-size:13px}#game-header h1{font-size:var(--font-size-lg)}#game-content{padding:var(--spacing-sm)}#narrative-text{padding:var(--spacing-sm) var(--spacing-md)}#character-layer{margin-bottom:var(--spacing-sm)}.character-sprite-container img{max-width:150px;max-height:220px}.choice-button{padding:var(--spacing-md)}.start-button,.restart-button{min-width:150px;padding:var(--spacing-md) var(--spacing-lg)}}.challenge-effect{animation:challenge-pulse 2s ease-in-out infinite;border-color:var(--warning-color)!important;box-shadow:0 0 30px #ff980099}@keyframes challenge-pulse{0%,to{box-shadow:0 0 20px #ff980066;border-color:#ff980099}50%{box-shadow:0 0 40px #ff9800cc;border-color:#ff9800e6}}.success-effect{animation:success-flash .8s ease-out;border-color:var(--success-color)!important;box-shadow:0 0 30px #4caf50cc}@keyframes success-flash{0%{background-color:#4caf501a;transform:scale(1)}50%{background-color:#4caf504d;transform:scale(1.02);box-shadow:0 0 50px #4caf50}to{background-color:#4caf5033;transform:scale(1)}}.success-glow{color:var(--success-color);text-shadow:0 0 15px rgba(76,175,80,.8),0 0 30px rgba(76,175,80,.5);animation:success-glow-pulse 1.5s ease-in-out}@keyframes success-glow-pulse{0%,to{text-shadow:0 0 15px rgba(76,175,80,.8),0 0 30px rgba(76,175,80,.5)}50%{text-shadow:0 0 25px rgba(76,175,80,1),0 0 50px rgba(76,175,80,.8)}}.failure-effect{animation:failure-shake .6s ease-out;border-color:var(--failure-color)!important;box-shadow:0 0 30px #f44336cc}@keyframes failure-shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}.failure-glow{color:var(--failure-color);text-shadow:0 0 15px rgba(244,67,54,.8),0 0 30px rgba(244,67,54,.5);animation:failure-glow-pulse 1s ease-in-out}@keyframes failure-glow-pulse{0%,to{text-shadow:0 0 15px rgba(244,67,54,.8),0 0 30px rgba(244,67,54,.5)}50%{text-shadow:0 0 25px rgba(244,67,54,1),0 0 50px rgba(244,67,54,.8)}}.blood-moon-effect{background:linear-gradient(135deg,#8b00004d,#2d1b4e4d);border-color:var(--accent-color)!important;box-shadow:0 0 40px #8b0000cc;animation:blood-moon-glow 3s ease-in-out infinite}@keyframes blood-moon-glow{0%,to{box-shadow:0 0 30px #8b000099;filter:hue-rotate(0deg)}50%{box-shadow:0 0 60px #8b0000e6;filter:hue-rotate(5deg)}}.blood-moon-tint{filter:sepia(.3) hue-rotate(-10deg) saturate(1.5);animation:blood-moon-pulse 4s ease-in-out infinite}@keyframes blood-moon-pulse{0%,to{filter:sepia(.3) hue-rotate(-10deg) saturate(1.5)}50%{filter:sepia(.5) hue-rotate(-15deg) saturate(1.8)}}.dramatic-effect{animation:dramatic-emphasis 1.5s ease-out}@keyframes dramatic-emphasis{0%{transform:scale(.98);opacity:.8}50%{transform:scale(1.01);opacity:1}to{transform:scale(1);opacity:1}}.dramatic-glow{text-shadow:0 0 20px currentColor,0 0 40px currentColor;animation:dramatic-glow-pulse 2.5s ease-in-out infinite}@keyframes dramatic-glow-pulse{0%,to{text-shadow:0 0 15px currentColor,0 0 30px currentColor;opacity:.9}50%{text-shadow:0 0 25px currentColor,0 0 50px currentColor;opacity:1}}.dramatic-fade-in{animation:dramatic-fade-in 1.2s ease-in}@keyframes dramatic-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-height:600px)and (orientation:landscape){#game-content{padding:var(--spacing-md)}#game-header{padding:var(--spacing-sm) var(--spacing-md)}#game-header h1{font-size:var(--font-size-lg);margin-bottom:var(--spacing-xs)}#narrative-text{padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md)}#character-layer{left:1rem;width:200px}.character-sprite-container img{max-height:200px}#game-controls{padding:var(--spacing-sm) var(--spacing-md)}.feedback-message{padding:var(--spacing-md);margin:var(--spacing-md) auto}}.collection-bag{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:calc(var(--z-ui) + 1);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);pointer-events:none;will-change:transform,filter;transform:translate(-50%) translateZ(0)}.bag-icon{font-size:4rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.6));transition:transform var(--transition-fast);will-change:transform;transform:translateZ(0)}.candy-count{font-size:var(--font-size-xl);font-weight:700;color:gold;text-shadow:2px 2px 4px rgba(0,0,0,.9),0 0 10px rgba(255,215,0,.6);font-family:var(--font-family-primary);background:#2d1b4ecc;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-md);border:2px solid rgba(255,215,0,.4);min-width:50px;text-align:center}.bag-collect-effect .bag-icon{animation:bag-bounce .6s ease-out}.bag-collect-effect{animation:bag-glow .6s ease-out}@keyframes bag-bounce{0%{transform:scale(1) translateY(0)}30%{transform:scale(1.15) translateY(-10px)}50%{transform:scale(.95) translateY(0)}70%{transform:scale(1.05) translateY(-5px)}to{transform:scale(1) translateY(0)}}@keyframes bag-glow{0%,to{filter:drop-shadow(0 0 0 rgba(255,215,0,0))}50%{filter:drop-shadow(0 0 20px rgba(255,215,0,.8))}}.candy-particle{position:fixed;width:50px;height:50px;z-index:calc(var(--z-ui) + 2);pointer-events:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));will-change:transform,opacity,left,top;transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.candy-particle img{width:100%;height:100%;object-fit:contain}.candy-bonus{width:60px;height:60px;filter:drop-shadow(0 0 8px rgba(255,215,0,.8)) drop-shadow(0 0 4px rgba(255,255,255,.6));animation:bonus-sparkle 1s ease-in-out infinite}@keyframes bonus-sparkle{0%,to{filter:drop-shadow(0 0 8px rgba(255,215,0,.8)) drop-shadow(0 0 4px rgba(255,255,255,.6))}50%{filter:drop-shadow(0 0 16px rgba(255,215,0,1)) drop-shadow(0 0 8px rgba(255,255,255,.9)) drop-shadow(0 0 20px rgba(255,215,0,.6))}}.candy-falling{animation:candy-fall var(--duration, 1.5s) cubic-bezier(.25,.46,.45,.94) forwards,candy-rotate var(--duration, 1.5s) linear forwards,candy-shadow var(--duration, 1.5s) ease-out forwards}@keyframes candy-shadow{0%{filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}50%{filter:drop-shadow(0 8px 16px rgba(0,0,0,.7)) drop-shadow(0 0 8px rgba(255,215,0,.3))}to{filter:drop-shadow(0 4px 8px rgba(0,0,0,.6)) drop-shadow(0 0 12px rgba(255,215,0,.5))}}@keyframes candy-fall{0%{left:var(--start-x, 0px);top:var(--start-y, 0px);opacity:1}50%{left:var(--control-x, 50%);top:var(--control-y, 50%);opacity:1}to{left:var(--end-x, 0px);top:var(--end-y, 0px);opacity:1}}@keyframes candy-rotate{0%{transform:rotate(0) scale(1)}25%{transform:rotate(90deg) scale(1.1)}50%{transform:rotate(180deg) scale(1)}75%{transform:rotate(270deg) scale(1.1)}to{transform:rotate(360deg) scale(1)}}.blood-moon{position:absolute;top:5%;right:8%;width:120px;height:120px;z-index:calc(var(--z-decorative) + 1);pointer-events:none;filter:drop-shadow(0 0 20px rgba(139,0,0,.6));transition:filter var(--transition-normal)}.blood-moon img{width:100%;height:100%;object-fit:contain}.moon-glow{animation:moon-candy-glow .5s ease-out}.moon-glow-effect{animation:moon-candy-glow .8s ease-out}@keyframes moon-candy-glow{0%{filter:drop-shadow(0 0 20px rgba(139,0,0,.6))}50%{filter:drop-shadow(0 0 50px rgba(139,0,0,1)) drop-shadow(0 0 80px rgba(255,0,0,.8))}to{filter:drop-shadow(0 0 20px rgba(139,0,0,.6))}}@media(max-width:768px){.blood-moon{width:90px;height:90px;top:3%;right:5%}.collection-bag{bottom:15px}.bag-icon{font-size:3rem}.candy-count{font-size:var(--font-size-lg);padding:var(--spacing-xs) var(--spacing-sm)}.candy-particle{width:40px;height:40px}.candy-bonus{width:50px;height:50px}}@media(max-width:480px){.blood-moon{width:70px;height:70px;top:2%;right:3%}.collection-bag{bottom:10px}.bag-icon{font-size:2.5rem}.candy-count{font-size:var(--font-size-base)}.candy-particle{width:35px;height:35px;min-width:35px;min-height:35px}.candy-bonus{width:45px;height:45px;min-width:45px;min-height:45px}}@media(max-width:375px){.candy-particle{width:32px;height:32px;min-width:32px;min-height:32px}.candy-bonus{width:40px;height:40px;min-width:40px;min-height:40px}}.candy-particle:after{content:"";position:absolute;top:50%;left:50%;width:100%;height:100%;background:radial-gradient(circle,rgba(255,215,0,.3) 0%,transparent 70%);transform:translate(-50%,-50%);opacity:0;pointer-events:none;animation:particle-trail var(--duration, 1.5s) ease-out forwards}@keyframes particle-trail{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}20%{opacity:.6;transform:translate(-50%,-50%) scale(1.2)}to{opacity:0;transform:translate(-50%,-50%) scale(2)}}.candy-count{background:linear-gradient(135deg,#2d1b4ef2,#4b0082d9);box-shadow:0 4px 12px #0009,inset 0 1px #ffd70033}.candy-fade-in{animation:candy-fade-in-anim .3s ease-in forwards}@keyframes candy-fade-in-anim{0%{opacity:0;left:var(--start-x, 0px);top:var(--start-y, 0px);transform:scale(.5)}to{opacity:1;left:var(--end-x, 0px);top:var(--end-y, 0px);transform:scale(1)}}@media(prefers-reduced-motion:reduce){.candy-falling{animation:candy-fade-in-anim .3s ease-in forwards!important}.bag-collect-effect .bag-icon,.bag-collect-effect,.candy-bonus{animation:none!important}.candy-particle:after{animation:none!important;opacity:0!important}}@keyframes lantern-flicker{0%,to{opacity:1}10%{opacity:.8}20%{opacity:1}30%{opacity:.6}40%{opacity:1}50%{opacity:.7}60%{opacity:1}}@media(max-width:768px){.memory-fragment{font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);margin-top:var(--spacing-sm)}.shadow-overlay{background:radial-gradient(circle at center,transparent 20%,rgba(0,0,0,.75) 100%)}}@media(max-width:480px){.memory-fragment{font-size:var(--font-size-xs);padding:var(--spacing-sm)}}@media(prefers-reduced-motion:reduce){.wrong-answer-dimmed{transition:filter .01ms!important}.wrong-answer-flicker{animation:none!important;opacity:.8}.shadow-overlay{animation:shadow-creep-in-reduced .2s ease-out forwards!important}.shadow-overlay.fade-out{animation:shadow-fade-out-reduced .2s ease-in forwards!important}@keyframes shadow-creep-in-reduced{0%{opacity:0}to{opacity:1}}@keyframes shadow-fade-out-reduced{0%{opacity:1}to{opacity:0}}}.wrong-answer-dimmed{filter:saturate(.4) brightness(.7);transition:filter .4s ease-out}.wrong-answer-dimmed #narrative-text,.wrong-answer-dimmed .feedback-message,.wrong-answer-dimmed .memory-fragment,.wrong-answer-dimmed .choice-button{text-shadow:2px 2px 6px rgba(0,0,0,.95),0 0 4px rgba(0,0,0,.9)}.wrong-answer-flicker{animation:lantern-flicker .8s ease-in-out}@keyframes lantern-flicker{0%,to{opacity:1}15%{opacity:.85}30%{opacity:1}45%{opacity:.7}60%{opacity:1}75%{opacity:.8}90%{opacity:1}}.shadow-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at center,transparent 30%,rgba(0,0,0,.7) 100%);pointer-events:none;z-index:calc(var(--z-ui) - 1);opacity:0;animation:shadow-creep-in .6s ease-out forwards}@keyframes shadow-creep-in{0%{opacity:0;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.shadow-overlay.fade-out{animation:shadow-fade-out .5s ease-in forwards}@keyframes shadow-fade-out{0%{opacity:1}to{opacity:0}}.memory-fragment{font-size:var(--font-size-base);font-style:italic;color:#d4c5a0;margin-top:var(--spacing-md);padding:var(--spacing-md);background:#2d1b4e99;border-left:3px solid rgba(139,0,0,.6);border-radius:var(--radius-sm);text-shadow:1px 1px 2px rgba(0,0,0,.8)}@media(prefers-reduced-motion:reduce){.wrong-answer-dimmed{transition:none}.wrong-answer-flicker{animation:none}.shadow-overlay{animation:shadow-creep-in-reduced .3s ease-out forwards}.shadow-overlay.fade-out{animation:shadow-fade-out-reduced .3s ease-in forwards}@keyframes shadow-creep-in-reduced{0%{opacity:0}to{opacity:1}}@keyframes shadow-fade-out-reduced{0%{opacity:1}to{opacity:0}}}.wrong-answer-dimmed{will-change:filter}.wrong-answer-flicker{will-change:opacity}.shadow-overlay{will-change:opacity,transform}@media(max-width:768px){.memory-fragment{font-size:var(--font-size-sm);padding:var(--spacing-sm);margin-top:var(--spacing-sm)}.shadow-overlay{background:radial-gradient(circle at center,transparent 20%,rgba(0,0,0,.7) 100%)}}
