/* =============================================================
   RUTH GARCIA AMELA — Portfolio CSS
   Production build · Hostinger deploy
   ============================================================= */

/* DESIGN TOKENS */
:root{--bg-main:#FDF0F3;--bg-light:#FFF5F7;--bg-card:rgba(255,245,247,.75);--accent-rose:#EFAAC4;--accent-dark:#D98CB3;--accent-deep:#C06F98;--text-dark:#2D3748;--text-mid:#4A5568;--text-light:#718096;--border:rgba(239,170,196,.25);--border-strong:rgba(239,170,196,.5);--shadow-sm:0 4px 24px rgba(198,112,152,.08);--shadow-md:0 8px 48px rgba(198,112,152,.14);--shadow-lg:0 20px 80px rgba(198,112,152,.18);--radius-sm:12px;--radius-md:24px;--radius-lg:40px;--font-serif:'Playfair Display',Georgia,serif;--font-sans:'Inter',system-ui,sans-serif}

/* RESET */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* BASE */
html{font-size:clamp(15px,1.2vw,17px);scrollbar-width:thin;scrollbar-color:#EFAAC4 var(--bg-main)}
body{font-family:var(--font-sans);background-color:var(--bg-main);color:var(--text-dark);overflow-x:hidden;-webkit-font-smoothing:antialiased}

/* NOISE GRAIN OVERLAY */
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:999;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* SELECTION BRANDING */
::selection{background:rgba(239,170,196,.38);color:var(--text-dark)}
::-moz-selection{background:rgba(239,170,196,.38);color:var(--text-dark)}

/* CUSTOM SCROLLBAR */
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--accent-rose),var(--accent-dark));border-radius:999px}
::-webkit-scrollbar-thumb:hover{background:var(--accent-deep)}

/* TYPOGRAPHY */
.t-hero{font-family:var(--font-serif);font-size:clamp(2.8rem,6vw,5.2rem);font-weight:700;line-height:1.1;letter-spacing:-.02em}
.t-display{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3.8rem);font-weight:600;line-height:1.15;letter-spacing:-.01em}
.t-h2{font-family:var(--font-serif);font-size:clamp(1.6rem,3vw,2.8rem);font-weight:600;line-height:1.2}
.t-h3{font-family:var(--font-sans);font-size:1.1rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.t-body{font-size:clamp(.95rem,1.5vw,1.05rem);line-height:1.75;color:var(--text-mid)}
.t-small{font-size:clamp(.75rem,1.1vw,.82rem);letter-spacing:.08em;text-transform:uppercase;color:var(--text-light)}
.t-quote{font-family:var(--font-serif);font-size:clamp(1.4rem,3vw,2.6rem);font-weight:400;font-style:italic;line-height:1.45}
.t-accent{color:var(--accent-deep)}

/* LAYOUT */
.container{max-width:1200px;margin-inline:auto;padding-inline:clamp(1.5rem,5vw,4rem)}
.section-pad{padding-block:clamp(5rem,10vw,9rem)}
.pill{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border-strong);border-radius:999px;padding:.35rem .9rem;font-size:.78rem;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-deep);background:rgba(255,255,255,.7);backdrop-filter:blur(8px)}
.pill-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-rose);display:inline-block}

/* GLASS CARD */
.glass-card{background:var(--bg-card);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform .4s cubic-bezier(.25,.46,.45,.94),box-shadow .4s ease}
.glass-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 2rem;min-height:44px;min-width:44px;border-radius:999px;font-family:var(--font-sans);font-size:.92rem;font-weight:500;letter-spacing:.03em;cursor:pointer;border:none;text-decoration:none;transition:transform .3s cubic-bezier(.25,.46,.45,.94),box-shadow .3s ease,background .3s ease;position:relative;overflow:hidden}
.btn::before{content:'';position:absolute;inset:0;opacity:0;transition:opacity .3s}
.btn:hover{transform:translateY(-2px) scale(1.03)}
.btn:active{transform:translateY(0) scale(.99);transition-duration:.1s}
.btn-primary{background:linear-gradient(135deg,var(--accent-rose),var(--accent-dark));color:#fff;box-shadow:0 4px 20px rgba(217,140,179,.35)}
.btn-primary:hover{box-shadow:0 10px 36px rgba(217,140,179,.55),0 2px 8px rgba(217,140,179,.25)}
.btn-ghost{background:transparent;color:var(--text-dark);border:1.5px solid var(--border-strong)}
.btn-ghost:hover{background:rgba(239,170,196,.12);border-color:var(--accent-dark);color:var(--accent-deep);box-shadow:0 6px 20px rgba(239,170,196,.18)}

/* NAVBAR */
#navbar{position:fixed;top:1.25rem;left:50%;transform:translateX(-50%);z-index:900;width:min(calc(100% - 2rem),900px);display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-radius:999px;background:rgba(253,240,243,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:background .5s ease,box-shadow .5s ease}
#navbar.scrolled{background:rgba(253,240,243,.92);box-shadow:var(--shadow-md)}
.nav-brand{font-family:var(--font-serif);font-size:1.1rem;font-weight:600;color:var(--text-dark);text-decoration:none;white-space:nowrap}
.nav-links{display:flex;align-items:center;gap:1.75rem;list-style:none}
.nav-links a{font-size:.88rem;color:var(--text-mid);text-decoration:none;transition:color .2s,transform .2s;font-weight:500}
.nav-links a:hover{color:var(--accent-deep);transform:translateY(-1px)}
.nav-cta{padding:.55rem 1.3rem;font-size:.85rem}
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;min-width:44px;min-height:44px;padding:11px;align-items:center;justify-content:center}
.nav-hamburger span{display:block;width:22px;height:2px;background:var(--text-dark);border-radius:2px;transition:all .3s}
.mobile-menu{display:none;position:fixed;inset:0;z-index:850;background:rgba(253,240,243,.97);backdrop-filter:blur(20px);flex-direction:column;align-items:center;justify-content:center;gap:2rem}
.mobile-menu.open{display:flex}
.mobile-menu a{font-size:1.5rem;font-family:var(--font-serif);color:var(--text-dark);text-decoration:none}
.mobile-menu a:hover{color:var(--accent-deep)}
@media(max-width:680px){.nav-links,.nav-cta{display:none}.nav-hamburger{display:flex}}

/* 1. HERO */
#hero{min-height:100dvh;display:flex;align-items:flex-end;position:relative;overflow:hidden;background:linear-gradient(155deg,#fff5f7 0%,#fce4ef 50%,#f5d0e4 100%)}
.hero-blob{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;animation:blobFloat 8s ease-in-out infinite alternate}
.hero-blob-1{width:60vw;height:60vw;top:-20%;right:-15%;background:radial-gradient(circle,rgba(239,170,196,.45) 0%,rgba(217,140,179,.2) 60%,transparent 100%)}
.hero-blob-2{width:40vw;height:40vw;bottom:-10%;left:-10%;background:radial-gradient(circle,rgba(217,140,179,.3) 0%,transparent 70%);animation-delay:-3s}
@keyframes blobFloat{from{transform:scale(1) rotate(0deg)}to{transform:scale(1.12) rotate(8deg)}}
.hero-content{position:relative;z-index:2;width:100%;padding-bottom:clamp(5rem,10vw,8rem)}
.hero-eyebrow{margin-bottom:1.5rem;opacity:0;transform:translateY(20px)}
.hero-title{margin-bottom:1.5rem;opacity:0;transform:translateY(30px)}
.hero-subtitle{max-width:560px;margin-bottom:2.5rem;opacity:0;transform:translateY(30px)}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;opacity:0;transform:translateY(30px)}

/* DIVIDER */
.section-divider{width:64px;height:3px;background:linear-gradient(90deg,var(--accent-rose),var(--accent-dark));border-radius:2px;margin-bottom:1.5rem}

/* 2. ABOUT */
#about{background:var(--bg-light)}
.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(3rem,6vw,6rem);align-items:center}
.about-img-wrap{position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow-lg)}
.about-img-wrap::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(192,111,152,.15) 100%)}
.about-img-wrap img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.about-tag{position:absolute;bottom:1.5rem;left:1.5rem;z-index:3;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.7rem 1rem;font-size:.82rem}
.about-text .section-label{margin-bottom:.75rem}
.about-text .t-h2{margin-bottom:1.25rem}
.about-text .t-body{margin-bottom:1.5rem}
.about-stat{display:flex;gap:2rem;flex-wrap:wrap;margin-top:2rem}
.stat-item{display:flex;flex-direction:column;gap:.2rem}
.stat-num{font-family:var(--font-serif);font-size:2.2rem;font-weight:600;color:var(--accent-deep);line-height:1}
.stat-label{font-size:.8rem;color:var(--text-light);letter-spacing:.06em;text-transform:uppercase}
@media(max-width:780px){.about-grid{grid-template-columns:1fr}.about-img-wrap{max-width:340px;margin-inline:auto}}

/* 3. WHY ME */
#why{background:var(--bg-main)}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem}
.why-card{padding:2.2rem 1.8rem}
.why-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(239,170,196,.25),rgba(217,140,179,.12));border:1px solid var(--border-strong);margin-bottom:1.5rem}
.why-icon svg{width:24px;height:24px;stroke:var(--accent-deep);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.why-card h3{font-size:1.05rem;font-weight:600;margin-bottom:.75rem;color:var(--text-dark)}
.why-card p{font-size:.95rem;line-height:1.7;color:var(--text-mid)}
@media(max-width:780px){.why-grid{grid-template-columns:1fr}}

/* 4. EXPERIENCE TIMELINE */
#experience{background:linear-gradient(180deg,var(--bg-light) 0%,var(--bg-main) 100%)}
.timeline{position:relative;margin-top:3rem}
.timeline::before{content:'';position:absolute;left:24px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--accent-rose),var(--accent-dark),transparent)}
.timeline-item{display:flex;gap:2rem;padding-left:0;margin-bottom:3rem;position:relative}
.timeline-dot{flex-shrink:0;width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,var(--accent-rose),var(--accent-dark));display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(217,140,179,.35);position:relative;z-index:2}
.timeline-dot svg{width:20px;height:20px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.timeline-body{padding:1.8rem 2rem;flex:1}
.timeline-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}
.timeline-date{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-deep);font-weight:500}
.timeline-location{font-size:.78rem;color:var(--text-light);display:flex;align-items:center;gap:.3rem}
.timeline-body h3{font-size:1.15rem;font-weight:600;margin-bottom:.35rem}
.timeline-body .company{color:var(--accent-deep);font-weight:500;font-size:.95rem;margin-bottom:.75rem}
.timeline-body p{font-size:.95rem;line-height:1.7;color:var(--text-mid)}
@media(max-width:600px){.timeline-body{padding:1.2rem}}

/* 5. EDUCATION */
#education{background:var(--bg-main)}
.edu-card{padding:3rem 2.5rem;display:flex;gap:2.5rem;align-items:flex-start}
.edu-logo{flex-shrink:0;width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,rgba(239,170,196,.3),rgba(217,140,179,.15));border:1px solid var(--border-strong);display:flex;align-items:center;justify-content:center;margin-top:.3rem}
.edu-logo svg{width:26px;height:26px;stroke:var(--accent-deep);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.edu-content{flex:1}
.edu-content .degree{font-family:var(--font-serif);font-size:1.5rem;font-weight:600;margin-bottom:.4rem}
.edu-content .institution{color:var(--accent-deep);font-weight:500;margin-bottom:.3rem}
.edu-content .years{font-size:.82rem;color:var(--text-light);letter-spacing:.06em;text-transform:uppercase;margin-bottom:1rem}
.edu-content p{font-size:.95rem;line-height:1.7;color:var(--text-mid)}
@media(max-width:600px){.edu-card{flex-direction:column}}

/* 6. SKILLS MARQUEE */
#skills{background:var(--bg-light);padding-block:clamp(4rem,8vw,7rem);overflow:hidden}
.skills-header{text-align:center;margin-bottom:3.5rem}
.marquee-track{display:flex;width:max-content;animation:marqueeScroll 28s linear infinite;gap:1rem}
.marquee-track:hover{animation-play-state:paused}
.marquee-wrapper{overflow:hidden;mask-image:linear-gradient(90deg,transparent,black 10%,black 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,black 10%,black 90%,transparent)}
.skill-tag{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.4rem;border-radius:999px;font-size:.9rem;font-weight:500;white-space:nowrap;background:rgba(255,255,255,.8);backdrop-filter:blur(8px);border:1px solid var(--border-strong);color:var(--text-dark);transition:background .3s,border-color .3s,transform .3s}
.skill-tag:hover{background:linear-gradient(135deg,rgba(239,170,196,.2),rgba(217,140,179,.1));border-color:var(--accent-rose);transform:translateY(-2px)}
.skill-tag-dot{width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,var(--accent-rose),var(--accent-dark))}
@keyframes marqueeScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* 7. PHILOSOPHY */
#philosophy{background:linear-gradient(135deg,#2D1B2A 0%,#3D2035 50%,#2D1B2A 100%);position:relative;overflow:hidden}
#philosophy::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(239,170,196,.12) 0%,transparent 60%),radial-gradient(ellipse at 80% 30%,rgba(217,140,179,.08) 0%,transparent 50%);pointer-events:none}
.philosophy-inner{position:relative;z-index:2;text-align:center;max-width:860px;margin-inline:auto}
.philosophy-inner .pill{border-color:rgba(239,170,196,.35);color:var(--accent-rose);background:rgba(255,255,255,.06)}
.philosophy-inner .pill-dot{background:var(--accent-rose)}
.ethos-quote{font-family:var(--font-serif);font-size:clamp(1.4rem,3.5vw,2.8rem);font-weight:400;font-style:italic;line-height:1.5;color:#fff;margin-bottom:2rem}
.ethos-quote .highlight{color:var(--accent-rose)}
.ethos-divider{width:80px;height:2px;background:linear-gradient(90deg,transparent,var(--accent-rose),transparent);margin:2rem auto}
.ethos-author{font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.philosophy-deco{position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none}
.philosophy-deco-1{width:500px;height:500px;top:-200px;right:-150px;background:radial-gradient(circle,rgba(239,170,196,.08) 0%,transparent 70%)}
.philosophy-deco-2{width:400px;height:400px;bottom:-150px;left:-100px;background:radial-gradient(circle,rgba(192,111,152,.08) 0%,transparent 70%)}

/* 8. CONTACT */
#contact{background:var(--bg-main)}
.contact-inner{text-align:center;max-width:640px;margin-inline:auto}
.contact-inner .t-display{margin-bottom:1.25rem}
.contact-inner .t-body{margin-bottom:2.5rem}
.contact-links{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* FOOTER */
footer{background:#2D1B2A;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:3rem clamp(1.5rem,5vw,4rem);margin-top:0}
.footer-inner{max-width:1200px;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem}
.footer-brand{font-family:var(--font-serif);font-size:1.1rem;font-weight:600;color:rgba(255,255,255,.9)}
.footer-tagline{font-size:.8rem;color:rgba(255,255,255,.4);margin-top:.25rem}
.footer-status{display:flex;align-items:center;gap:.5rem;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.footer-status-dot{width:8px;height:8px;border-radius:50%;background:#4ade80;animation:statusPulse 2s ease-in-out infinite}
@keyframes statusPulse{0%,100%{opacity:1}50%{opacity:.3}}
.footer-copy{font-size:.78rem;color:rgba(255,255,255,.35)}
.footer-copy a{color:rgba(239,170,196,.7);text-decoration:none;transition:color .2s}
.footer-copy a:hover{color:#EFAAC4}

/* SCROLL REVEAL */
.reveal{opacity:0;transform:translateY(40px)}

/* ECOSYSTEM — ANTIGRAVITY FLOATING CARDS */
#ecosystem{background:var(--bg-light);position:relative;overflow:hidden}
#ecosystem::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 45% at 15% 25%,rgba(239,170,196,.14) 0%,transparent 70%),radial-gradient(ellipse 50% 40% at 85% 75%,rgba(217,140,179,.1) 0%,transparent 70%);pointer-events:none}
.ecosystem-header{text-align:center;max-width:680px;margin-inline:auto;margin-bottom:4rem;position:relative;z-index:2}
.ecosystem-header .section-label{margin-bottom:.75rem}
.ecosystem-header h2{margin-bottom:1rem}
.ecosystem-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:auto auto;gap:1.5rem;position:relative;z-index:2;align-items:start}
.eco-card:nth-child(5){grid-column:1/2}
.eco-card:nth-child(6){grid-column:2/3}
.eco-card:nth-child(7){grid-column:3/4}
@media(max-width:1024px){.ecosystem-grid{grid-template-columns:repeat(2,1fr)}.eco-card:nth-child(5),.eco-card:nth-child(6),.eco-card:nth-child(7){grid-column:auto}}
@media(max-width:767px){.ecosystem-grid{display:flex;flex-direction:row;flex-wrap:nowrap;gap:1rem;overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scroll-padding-inline:1.5rem;scrollbar-width:none;padding-bottom:1rem;margin-inline:calc(-1 * clamp(1.5rem,5vw,4rem));padding-inline:clamp(1.5rem,5vw,4rem)}.ecosystem-grid::-webkit-scrollbar{display:none}.eco-card{flex:0 0 clamp(260px,78vw,300px);scroll-snap-align:start;animation:none!important;transform:none!important}.eco-desc{max-height:200px;opacity:1}.eco-hint{display:none}.eco-card:hover{transform:none!important;box-shadow:var(--shadow-sm)}}
@keyframes floatA{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes floatB{0%,100%{transform:translateY(-6px)}50%{transform:translateY(-18px)}}
@keyframes floatC{0%,100%{transform:translateY(-3px)}50%{transform:translateY(-15px)}}
@keyframes floatD{0%,100%{transform:translateY(-8px)}50%{transform:translateY(4px)}}
@keyframes floatE{0%,100%{transform:translateY(-2px)}50%{transform:translateY(-14px)}}
@keyframes floatF{0%,100%{transform:translateY(-10px)}50%{transform:translateY(2px)}}
@keyframes floatG{0%,100%{transform:translateY(-4px)}50%{transform:translateY(-16px)}}
.eco-card{background:rgba(255,245,247,.72);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(239,170,196,.3);border-radius:20px;padding:1.8rem 1.6rem 2rem;position:relative;cursor:default;will-change:transform;transition:box-shadow .35s ease,border-color .35s ease}
.eco-card:nth-child(1){animation:floatA 5.2s ease-in-out infinite}
.eco-card:nth-child(2){animation:floatB 6s ease-in-out infinite .4s}
.eco-card:nth-child(3){animation:floatC 5.6s ease-in-out infinite .8s}
.eco-card:nth-child(4){animation:floatD 6.4s ease-in-out infinite 1.2s}
.eco-card:nth-child(5){animation:floatE 5.8s ease-in-out infinite .6s}
.eco-card:nth-child(6){animation:floatF 6.2s ease-in-out infinite 1s}
.eco-card:nth-child(7){animation:floatG 5.4s ease-in-out infinite 1.6s}
.eco-card:hover{animation-play-state:paused;transform:translateY(-18px)!important;box-shadow:0 24px 64px rgba(192,111,152,.22),0 4px 16px rgba(192,111,152,.12);border-color:rgba(217,140,179,.55)}
.eco-card:hover .eco-desc{max-height:200px;opacity:1}
.eco-tag{display:inline-flex;align-items:center;gap:.4rem;padding:.32rem .9rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;background:linear-gradient(135deg,rgba(239,170,196,.28),rgba(217,140,179,.16));border:1px solid rgba(239,170,196,.45);color:var(--accent-deep);margin-bottom:1.1rem}
.eco-tag-dot{width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,var(--accent-rose),var(--accent-dark));flex-shrink:0}
.eco-icon{width:46px;height:46px;border-radius:13px;background:linear-gradient(135deg,rgba(239,170,196,.22),rgba(217,140,179,.1));border:1px solid var(--border-strong);display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem}
.eco-icon svg{width:22px;height:22px;stroke:var(--accent-deep);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.eco-card h3{font-family:var(--font-serif);font-size:1.05rem;font-weight:600;color:var(--text-dark);margin-bottom:.6rem;line-height:1.3}
.eco-desc{font-size:.88rem;line-height:1.65;color:var(--text-mid);max-height:0;opacity:0;overflow:hidden;transition:max-height .4s ease,opacity .35s ease}
.eco-hint{font-size:.78rem;color:var(--text-light);margin-top:.5rem;display:flex;align-items:center;gap:.35rem;transition:opacity .3s ease}
.eco-card:hover .eco-hint{opacity:0}
.eco-hint-arrow{width:14px;height:14px;stroke:var(--accent-rose);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* PRINT — limpio para imprimir CV */
@media print{
  #navbar,.mobile-menu,.hero-blob,.philosophy-deco,body::before{display:none!important}
  body{background:#fff;color:#000;font-size:12pt}
  .reveal{opacity:1!important;transform:none!important}
  #hero{min-height:auto;padding:2rem 0}
  .btn-primary,.btn-ghost{border:1px solid #000;background:none!important;color:#000!important;box-shadow:none!important}
  footer{background:#f5f5f5;border-radius:0}
}
