/*
╔═══════════════════════════════════════════════════════════════════════════╗
║                    PORTFÓLIO SARAH NASCIMENTO                             ║
║                    Tema: Multi-Theme (Sakura, Light, Dark)                ║
╚═══════════════════════════════════════════════════════════════════════════╝
*/

* { margin: 0; padding: 0; box-sizing: border-box; }

/* 🌸 TEMA SAKURA (Padrão) 🌸 */
:root {
    --primary: #d81b60; 
    --secondary: #f48fb1; 
    --accent: #ff8da1; 
    --bg-light: #ffffff; 
    --bg-sidebar: rgba(255, 255, 255, 0.98); 
    --bg-card: #ffffff; 
    --text-primary: #1a202c; 
    --text-secondary: #4a5568; 
    --text-muted: #718096; 
    --gradient-primary: linear-gradient(135deg, #d81b60 0%, #ff8da1 100%);
    --gradient-light: linear-gradient(180deg, #ffffff 0%, #f7fafc 100%);
    --shadow-soft: 0 4px 20px rgba(0, 0, 0, 0.05); 
    --shadow-glow: 0 0 20px rgba(216, 27, 96, 0.3); 
    
    --space-xs: 0.5rem; --space-sm: 1rem; --space-md: 1.5rem; --space-lg: 2.5rem; --space-xl: 4rem;
    --radius-sm: 8px; --radius-md: 16px; --radius-lg: 24px;
    --sidebar-width: 260px;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* 🌿 TEMA LIGHT (Verde) 🌿 */
[data-theme="light"] {
    --primary: #10b981; 
    --secondary: #6ee7b7;
    --accent: #a7f3d0;
    --gradient-primary: linear-gradient(135deg, #10b981 0%, #34d399 100%);
    --shadow-glow: 0 0 20px rgba(16, 185, 129, 0.3);
    
    --bg-light: #f8fafc;
    --bg-sidebar: rgba(255, 255, 255, 0.98);
    --bg-card: #ffffff;
    --text-primary: #0f172a;
    --text-secondary: #334155;
    --text-muted: #64748b;
}

/* ❄️ TEMA DARK (Azul Escuro/Gelo) ❄️ */
[data-theme="dark"] {
    --primary: #3b82f6; 
    --secondary: #93c5fd;
    --accent: #bfdbfe;
    --gradient-primary: linear-gradient(135deg, #3b82f6 0%, #60a5fa 100%);
    --shadow-glow: 0 0 20px rgba(59, 130, 246, 0.3);
    
    --bg-light: #0f172a; 
    --bg-sidebar: rgba(15, 23, 42, 0.98);
    --bg-card: #1e293b;
    --text-primary: #f8fafc;
    --text-secondary: #cbd5e1;
    --text-muted: #94a3b8;
    --shadow-soft: 0 4px 20px rgba(0, 0, 0, 0.3);
}

/* Ajustes Específicos do Modo Escuro */
[data-theme="dark"] .grid-bg { background-image: radial-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px); }
[data-theme="dark"] .sidebar, [data-theme="dark"] .terminal-header, 
[data-theme="dark"] .terminal-window, [data-theme="dark"] .skill-card, [data-theme="dark"] .project-card, 
[data-theme="dark"] .exp-card, [data-theme="dark"] .contact-item, [data-theme="dark"] .contact-form, 
[data-theme="dark"] .showcase-box, [data-theme="dark"] .dash-image-container, [data-theme="dark"] footer, 
[data-theme="dark"] .social-links-sidebar { border-color: rgba(255, 255, 255, 0.05); }
[data-theme="dark"] .form-group input, [data-theme="dark"] .form-group textarea { background: #0f172a; border-color: #334155; color: #f8fafc; }
[data-theme="dark"] .form-group input:focus, [data-theme="dark"] .form-group textarea:focus { background: #1e293b; }
[data-theme="dark"] .terminal-header { background: #1e293b; }
[data-theme="dark"] .tech-item { background: #1e293b; border-color: rgba(255, 255, 255, 0.1); }
[data-theme="dark"] .featured-project { background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%); }
[data-theme="dark"] .dash-overlay { background: rgba(15, 23, 42, 0.9); border-top: 1px solid rgba(255, 255, 255, 0.05); }

html { font-size: 90%; scroll-behavior: smooth; overflow-x: hidden; }
body { font-family: 'Space Grotesk', 'Inter', sans-serif; background: var(--bg-light); color: var(--text-primary); line-height: 1.7; overflow-x: hidden; transition: background-color 0.5s ease, color 0.5s ease; }

.grid-bg { position: fixed; inset: 0; background-image: radial-gradient(rgba(0, 0, 0, 0.03) 1px, transparent 1px); background-size: 25px 25px; z-index: -2; transition: background-image 0.5s ease; }

/* ======== SELETOR DE TEMAS ======== */
.theme-toggle-wrapper { display: flex; justify-content: center; align-items: center; gap: 1rem; padding: 1.5rem 0; margin: auto 0 0 0; }
.theme-btn { background: transparent; border: none; color: var(--text-muted); font-size: 1.2rem; cursor: pointer; width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: var(--transition); }
.theme-btn:hover { color: var(--primary); background: rgba(0, 0, 0, 0.05); }
[data-theme="dark"] .theme-btn:hover { background: rgba(255, 255, 255, 0.05); }
.theme-btn.active { background: var(--gradient-primary); color: #ffffff; transform: scale(1.15); box-shadow: var(--shadow-glow); }

/* ======== PARTICULAS ANIMADAS (AGORA NO FUNDO) ======== */
#sakura-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: -1; overflow: hidden; }
.particle { position: absolute; top: -20px; animation: fall linear forwards; pointer-events: none; }
@keyframes fall { 0% { transform: translateY(0) rotate(0deg) scale(0.8); } 100% { transform: translateY(105vh) rotate(360deg) scale(1.1); } }

.sakura-petal { background: linear-gradient(135deg, #ff8da1, #d81b60); border-radius: 15px 0 15px 15px; box-shadow: 0 2px 5px rgba(216, 27, 96, 0.3); }
.green-leaf { background: linear-gradient(135deg, #6ee7b7, #10b981); border-radius: 15px 0 15px 0; box-shadow: 0 2px 5px rgba(16, 185, 129, 0.3); }
.snow-flake { background: #ffffff; border-radius: 50%; box-shadow: 0 0 10px rgba(255, 255, 255, 0.8); }

/* ======== LOADER ======== */
.loader-wrapper { position: fixed; inset: 0; background: var(--bg-light); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.5rem; z-index: 9999; transition: opacity 0.5s ease, visibility 0.5s ease; animation: autoHideLoader 0.5s ease 3s forwards; }
@keyframes autoHideLoader { to { opacity: 0; visibility: hidden; pointer-events: none; } }
.loader-wrapper.hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.loader-sakura { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; width: 50px; height: 50px; }
.sakura-square { background: var(--primary); border-radius: 50% 50% 0 50%; animation: cyberPulse 1.2s ease-in-out infinite; }
.sakura-square:nth-child(1) { animation-delay: 0s; } .sakura-square:nth-child(2) { animation-delay: 0.2s; } .sakura-square:nth-child(3) { animation-delay: 0.4s; } .sakura-square:nth-child(4) { animation-delay: 0.6s; }
@keyframes cyberPulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(0.5); opacity: 0.5; } }
.loader-text { font-family: 'JetBrains Mono', monospace; font-size: 1.1rem; color: var(--primary); letter-spacing: 3px; font-weight: 600;}
.dots { animation: dotBlink 1.4s infinite; }
@keyframes dotBlink { 0%, 20% { opacity: 0; } 40% { opacity: 1; } 60%, 100% { opacity: 0; } }

main { display: flex; height: 100vh; overflow: hidden; }

.sidebar { width: var(--sidebar-width); background: var(--bg-sidebar); backdrop-filter: blur(15px); border-right: 1px solid rgba(0, 0, 0, 0.05); box-shadow: var(--shadow-soft); display: flex; flex-direction: column; padding: 2.5rem 1.5rem; position: relative; z-index: 1000; flex-shrink: 0; transition: background-color 0.5s ease, border-color 0.5s ease, left 0.3s ease; }
.logo { text-align: center; margin-bottom: 4rem; }
.logo-glitch { font-size: 3rem; font-weight: 700; background: var(--gradient-primary); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.logo-sub { font-size: 0.8rem; color: var(--text-muted); letter-spacing: 2px; text-transform: uppercase; margin-top: 0.5rem; font-weight: 600;}

.nav-links { list-style: none; flex: 1; display: flex; flex-direction: column; gap: 0.5rem; }
.nav-links li { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.5rem; border-radius: var(--radius-sm); color: var(--text-secondary); font-weight: 500; cursor: pointer; transition: var(--transition); position: relative; overflow: hidden; }
.nav-links li::before { content: ''; position: absolute; left: 0; top: 0; width: 4px; height: 100%; background: var(--primary); transform: scaleY(0); transition: var(--transition); border-radius: 4px; }
.nav-links li:hover { background: rgba(0, 0, 0, 0.03); color: var(--primary); transform: translateX(5px); }
[data-theme="dark"] .nav-links li:hover { background: rgba(255, 255, 255, 0.05); }
.nav-links li:hover::before { transform: scaleY(1); }
.nav-links li.active-link { background: rgba(0, 0, 0, 0.05); color: var(--primary); font-weight: 600; }
[data-theme="dark"] .nav-links li.active-link { background: rgba(255, 255, 255, 0.08); }
.nav-links li.active-link::before { transform: scaleY(1); }

.social-links-sidebar { display: flex; justify-content: center; gap: 1rem; padding: 1.5rem 0; margin-bottom: 1rem; border-top: 1px solid rgba(0, 0, 0, 0.05); }
.social-btn { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--bg-card); color: var(--text-secondary); box-shadow: 0 2px 5px rgba(0,0,0,0.05); transition: var(--transition); border: 1px solid #edf2f7; font-size: 1.1rem;}
.social-btn:hover { background: var(--gradient-primary); color: white; border-color: transparent; transform: translateY(-3px); box-shadow: var(--shadow-glow); }
[data-theme="dark"] .social-btn { border-color: rgba(255,255,255,0.05); }

.sidebar-footer { font-size: 0.85rem; color: var(--text-muted); font-weight: 500;}
.status-indicator { width: 8px; height: 8px; border-radius: 50%; background: #48bb78; box-shadow: 0 0 10px rgba(72, 187, 120, 0.5); animation: pulse 2s infinite; }

.portfolio-content { flex: 1; height: 100vh; overflow-y: auto; overflow-x: hidden; scroll-behavior: smooth; min-width: 0; z-index: 1;}
.sections-wrapper { display: flex; flex-direction: column; width: 100%; min-width: 0; padding-bottom: 80px; }

.page-section { display: flex; align-items: center; justify-content: center; padding: 4rem; min-height: 100vh; width: 100%; box-sizing: border-box; }

/* MUDANÇA AQUI: Fundo e borda removidos para a animação aparecer no Início */
.hero-section { position: relative; background: transparent; }
.hero-content { display: grid; grid-template-columns: 1.2fr 1fr; gap: 4rem; max-width: 1400px; width: 100%; align-items: center; }

.hero-greeting { font-family: 'JetBrains Mono', monospace; color: var(--text-muted); font-size: 1.1rem; margin-bottom: 1rem; font-weight: 600;}
.hero-title { font-size: 4.5rem; font-weight: 700; line-height: 1.1; margin-bottom: 1.5rem; color: var(--text-primary); }
.text-gradient { background: var(--gradient-primary); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

.typing-wrapper { display: flex; align-items: center; gap: 1rem; min-height: 70px; margin-bottom: 2.5rem; }
.typing-prefix { font-family: 'JetBrains Mono', monospace; color: var(--primary); font-size: 1.8rem; }
.typing-text { font-size: 1.8rem; color: var(--text-secondary); font-weight: 500; }
.typing { border-right: 3px solid var(--primary); animation: blink 0.7s step-end infinite; }

.hero-bio { font-size: 1.15rem; line-height: 1.8; color: var(--text-secondary); margin-bottom: 2.5rem; }
.highlight { color: var(--primary); font-weight: 600; }

.hero-cta { display: flex; gap: 1.5rem; margin-bottom: 4rem; flex-wrap: wrap; }
.btn { padding: 12px 28px; border: none; border-radius: var(--radius-md); font-size: 1rem; font-weight: 600; cursor: pointer; transition: var(--transition); display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-family: inherit; }
.btn-primary { background: var(--gradient-primary); color: white; box-shadow: var(--shadow-glow); }
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2); }
.btn-secondary { background: var(--bg-light); color: var(--primary); border: 2px solid var(--primary); box-shadow: var(--shadow-soft); }
.btn-secondary:hover { background: rgba(0, 0, 0, 0.03); transform: translateY(-3px); }

.hero-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.stat-box { text-align: center; padding: 1.5rem; background: var(--bg-card); border: 1px solid rgba(0, 0, 0, 0.05); border-radius: var(--radius-md); box-shadow: var(--shadow-soft); transition: var(--transition); }
.stat-box:hover { transform: translateY(-5px); border-color: var(--primary); box-shadow: var(--shadow-glow); }
.stat-number { font-size: 2.5rem; font-weight: 700; color: var(--primary); margin-bottom: 0.5rem; }
.stat-label { font-size: 0.9rem; color: var(--text-muted); font-weight: 500;}

.terminal-window { background: var(--bg-card); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-soft); }
.terminal-header { background: #f8fafc; padding: 10px 15px; display: flex; gap: 8px; border-bottom: 1px solid rgba(0,0,0,0.05); }
.terminal-btn { width: 10px; height: 10px; border-radius: 50%; }
.terminal-btn.red { background: #ff5f56; } .terminal-btn.yellow { background: #ffbd2e; } .terminal-btn.green { background: #27c93f; }
.terminal-body { padding: 1.5rem; font-family: 'JetBrains Mono', monospace; font-size: 0.95rem; line-height: 1.8; color: var(--text-secondary); }
.prompt { color: var(--primary); font-weight: 600; }
.terminal-output { color: var(--text-secondary); margin-left: 20px; }
.text-pink { color: var(--primary); font-weight: 600; }
.text-dark { color: var(--text-primary); font-weight: 600; }
.cursor-blink { animation: blink 1s step-end infinite; }

.section-wrapper { max-width: 1200px; width: 100%; margin: 0 auto; box-sizing: border-box; }
.section-header { margin-bottom: 4rem; }
.section-tag { font-family: 'JetBrains Mono', monospace; color: var(--text-muted); font-size: 0.95rem; display: block; margin-bottom: 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: 1px;}
.section-title { font-size: 3rem; font-weight: 700; color: var(--text-primary); }

.about-content { display: grid; grid-template-columns: 1.2fr 1fr; gap: 4rem; }
.about-intro { font-size: 1.3rem; color: var(--text-primary); margin-bottom: 1.5rem; font-weight: 500;}
.about-text p { color: var(--text-secondary); margin-bottom: 1.5rem; line-height: 1.8; }

.tech-stack { margin-top: 2.5rem; }
.tech-stack h3 { color: var(--text-primary); margin-bottom: 1.5rem; font-size: 1.2rem; font-weight: 600;}
.tech-grid { display: flex; flex-wrap: wrap; gap: 1rem; }
.tech-item { padding: 8px 16px; background: var(--bg-card); border: 1px solid rgba(0, 0, 0, 0.1); border-radius: var(--radius-sm); color: var(--text-secondary); font-size: 0.9rem; font-weight: 500; box-shadow: 0 2px 5px rgba(0,0,0,0.02); transition: var(--transition); }
.tech-item:hover { background: var(--gradient-primary); color: white; border-color: transparent; box-shadow: var(--shadow-glow); transform: translateY(-2px); }

.skills-visual { display: flex; flex-direction: column; gap: 1.5rem; }
.skill-card { padding: 1.5rem; background: var(--bg-card); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: var(--radius-md); box-shadow: var(--shadow-soft); transition: var(--transition); }
.skill-card:hover { border-color: var(--primary); box-shadow: var(--shadow-glow); transform: translateX(10px); }
.skill-icon { font-size: 2rem; color: var(--primary); margin-bottom: 1rem; }
.skill-card h4 { color: var(--text-primary); margin-bottom: 0.5rem; font-size: 1.1rem; }
.skill-card p { color: var(--text-secondary); font-size: 0.95rem; }

.projects-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2.5rem; }
.project-card { padding: 2.5rem; background: var(--bg-card); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: var(--radius-md); box-shadow: var(--shadow-soft); transition: var(--transition); }
.project-card:hover { border-color: var(--primary); box-shadow: var(--shadow-glow); transform: translateY(-10px); }
.featured-project { background: linear-gradient(135deg, var(--bg-card) 0%, rgba(216, 27, 96, 0.02) 100%); border: 2px solid var(--primary); position: relative; }
.featured-project::before { content: 'DESTAQUE'; position: absolute; top: -12px; right: 20px; background: var(--gradient-primary); color: white; font-size: 0.7rem; font-weight: 700; padding: 4px 12px; border-radius: var(--radius-sm); letter-spacing: 1px; box-shadow: var(--shadow-glow); z-index: 10; }

.project-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; font-size: 2rem; color: var(--primary); }
.project-title { font-size: 1.4rem; color: var(--text-primary); margin-bottom: 1rem; font-weight: 700;}
.project-desc { color: var(--text-secondary); line-height: 1.7; margin-bottom: 1.5rem; }
.project-tech { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.project-tech span { padding: 4px 12px; background: rgba(0, 0, 0, 0.03); border: 1px solid rgba(0, 0, 0, 0.05); border-radius: var(--radius-sm); color: var(--primary); font-size: 0.8rem; font-weight: 600;}
[data-theme="dark"] .project-tech span { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.1); }

.experience-section { margin-top: 4rem; padding-top: 4rem; border-top: 1px solid rgba(0, 0, 0, 0.08); }
.exp-title { font-size: 1.8rem; color: var(--text-primary); margin-bottom: 2.5rem; font-weight: 700;}
.exp-card { padding: 2.5rem; background: var(--bg-card); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: var(--radius-md); box-shadow: var(--shadow-soft); margin-bottom: 1.5rem; transition: var(--transition); border-left: 4px solid var(--primary); }
.exp-card:hover { box-shadow: var(--shadow-glow); transform: translateX(5px); border-color: var(--primary); }
.exp-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1rem; flex-wrap: wrap; gap: 1rem; }
.exp-header h4 { font-size: 1.3rem; color: var(--text-primary); font-weight: 600;}
.exp-period { color: var(--primary); font-size: 0.9rem; font-family: 'JetBrains Mono', monospace; background: rgba(0, 0, 0, 0.03); padding: 4px 12px; border-radius: var(--radius-sm); font-weight: 600;}
[data-theme="dark"] .exp-period { background: rgba(255,255,255,0.05); }
.exp-company { color: var(--text-muted); margin-bottom: 1.5rem; font-size: 1rem; font-weight: 500;}
.exp-list { color: var(--text-secondary); padding-left: 1.5rem; }
.exp-list li { margin-bottom: 0.5rem; }
.exp-list li::marker { color: var(--primary); }

.contact-content { display: grid; grid-template-columns: 1fr 1.5fr; gap: 4rem; }
.contact-intro { font-size: 1.2rem; color: var(--text-secondary); margin-bottom: 2.5rem; }
.contact-methods { display: flex; flex-direction: column; gap: 1.5rem; }
.contact-item { display: flex; align-items: center; gap: 1.5rem; padding: 1.5rem; background: var(--bg-card); border: 1px solid rgba(0, 0, 0, 0.08); border-radius: var(--radius-md); color: var(--text-secondary); text-decoration: none; transition: var(--transition); box-shadow: var(--shadow-soft); font-weight: 500;}
.contact-item:hover { border-color: var(--primary); color: var(--primary); transform: translateX(5px); box-shadow: var(--shadow-glow);}
.contact-item i { font-size: 1.5rem; color: var(--primary); }

.contact-form { display: flex; flex-direction: column; gap: 1.5rem; padding: 2.5rem; background: var(--bg-card); border-radius: var(--radius-md); box-shadow: var(--shadow-soft); border: 1px solid rgba(0, 0, 0, 0.08); }
.form-group input, .form-group textarea { width: 100%; padding: 1rem 1.5rem; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: var(--radius-sm); color: var(--text-primary); font-family: inherit; font-size: 1rem; transition: var(--transition); }
.form-group input:focus, .form-group textarea:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.05); background: white; }
.form-message { padding: 1.5rem; border-radius: var(--radius-sm); font-size: 0.95rem; margin-top: 1.5rem; display: none; font-weight: 500;}
.form-message.success { background: #f0fdf4; border: 1px solid #48bb78; color: #22c55e; }
.form-message.error { background: #fef2f2; border: 1px solid #ef4444; color: #ef4444; }

.progress-bar { position: fixed; top: 0; left: var(--sidebar-width); right: 0; height: 4px; background: rgba(0, 0, 0, 0.05); z-index: 1000; }
.progress-fill { height: 100%; background: var(--gradient-primary); width: 0; transition: width 0.3s ease; box-shadow: var(--shadow-glow); }
footer { position: fixed; bottom: 0; left: var(--sidebar-width); right: 0; background: var(--bg-sidebar); backdrop-filter: blur(10px); padding: 1rem; text-align: center; border-top: 1px solid rgba(0, 0, 0, 0.08); z-index: 100; font-size: 0.85rem; color: var(--text-muted); font-weight: 500;}
footer strong { color: var(--primary); }

.showcase-container { display: flex; flex-direction: column; gap: 3rem; margin-bottom: 4rem; width: 100%; max-width: 100%; }
.showcase-box { background: var(--bg-card); padding: 2.5rem; border-radius: var(--radius-md); box-shadow: var(--shadow-soft); border: 1px solid rgba(0, 0, 0, 0.08); width: 100%; max-width: 100%; min-width: 0; }
.showcase-subtitle { color: var(--text-primary); font-size: 1.5rem; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 10px; font-weight: 700; }
.showcase-subtitle i { color: var(--primary); }
.showcase-desc { color: var(--text-secondary); font-size: 1rem; margin-bottom: 2rem; }

.swiper { width: 100%; padding-bottom: 3rem; max-width: 100%; min-width: 0; overflow: hidden; }
.swiper-wrapper { display: flex; }
.swiper-slide { width: 100%; flex-shrink: 0; }
.custom-arrow { color: var(--primary) !important; transform: scale(0.7); }
.swiper-pagination-bullet-active { background-color: var(--primary) !important; }

.mac-window { background: #1e1e1e; border-radius: 10px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.1); border: 1px solid #333; width: 100%; max-width: 100%; }
.mac-header { background: #2d2d2d; padding: 10px 15px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid #111; }
.mac-btn { width: 10px; height: 10px; border-radius: 50%; }
.mac-btn.red { background: #ff5f56; } .mac-btn.yellow { background: #ffbd2e; } .mac-btn.green { background: #27c93f; }
.mac-title { color: #888; font-size: 0.85rem; font-family: 'JetBrains Mono', monospace; margin-left: 10px; }
.mac-body { padding: 1.5rem; overflow-x: auto; width: 100%; max-width: 100%; box-sizing: border-box; }
.mac-body pre { margin: 0; white-space: pre-wrap; word-break: break-word; word-wrap: break-word; }
.mac-body code { font-family: 'JetBrains Mono', monospace; font-size: 0.9rem; line-height: 1.6; color: #e0e7ff; }

.mac-body .keyword { color: #ff79c6; } 
.mac-body .string { color: #f1fa8c; } 
.mac-body .comment { color: #6272a4; font-style: italic; } 
.mac-body .function { color: #50fa7b; }
.mac-body .number { color: #bd93f9; }

.dash-image-container { position: relative; border-radius: 12px; overflow: hidden; box-shadow: 0 5px 20px rgba(0,0,0,0.05); border: 1px solid rgba(0, 0, 0, 0.08); aspect-ratio: 16/9; width: 100%; }
.dash-img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform 0.5s ease; }
.dash-image-container:hover .dash-img { transform: scale(1.05); }
.dash-overlay { position: absolute; bottom: 0; left: 0; width: 100%; padding: 12px; background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(5px); color: var(--text-primary); font-weight: 700; font-size: 1rem; text-align: center; border-top: 1px solid rgba(0, 0, 0, 0.05); }

/* ======== MOBILE NAVBAR E BUTTON ======== */
.mobile-toggle { display: none; position: fixed; bottom: 90px; right: 25px; width: 55px; height: 55px; border-radius: 50%; background: var(--gradient-primary); color: white; border: none; box-shadow: var(--shadow-glow); z-index: 1001; align-items: center; justify-content: center; font-size: 1.5rem; cursor: pointer; transition: transform 0.3s ease; }
.mobile-toggle:hover { transform: scale(1.1); }
.sidebar-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 999; backdrop-filter: blur(3px); opacity: 0; transition: opacity 0.3s ease; }
.sidebar-overlay.active { display: block; opacity: 1; }

@media (max-width: 1200px) {
    .hero-content, .about-content, .contact-content { grid-template-columns: 1fr; }
    .hero-visual { order: -1; }
}

@media (max-width: 768px) {
    :root { --space-lg: 1.5rem; --space-xl: 2.5rem; }
    
    .mobile-toggle { display: flex; }
    .sidebar { position: fixed; left: -100%; top: 0; height: 100vh; width: 260px; transition: left 0.3s ease; z-index: 1000; box-shadow: 0 0 20px rgba(0,0,0,0.3); }
    .sidebar.active { left: 0; }
    
    .sidebar-footer { display: none !important; }
    
    .page-section { padding: var(--space-xl) var(--space-md); }
    .project-card, .skill-card, .exp-card, .contact-item, .terminal-body, .showcase-box { padding: var(--space-md); }
    .theme-toggle-wrapper { flex-direction: row; padding: 1.5rem 0; }
    .hero-title { font-size: 2.5rem; }
    .typing-text { font-size: 1.3rem; }
    .progress-bar, footer { left: 0; } 
    .projects-grid { grid-template-columns: 1fr; }
    .showcase-box { padding: 1rem; }
    .mac-body { padding: 1rem; }
}

@media (max-width: 480px) {
    .hero-title, .section-title { font-size: 2rem; }
    .hero-cta { flex-direction: column; }
    .hero-stats { grid-template-columns: 1fr; }
}