:root {
      --cream:      #FAF7F2;
      --cream-dark: #F2EDE4;
      --espresso:   #2C1A0E;
      --coffee:     #6B3F1F;
      --caramel:    #C9894A;
      --foam:       #E8D5BC;
      --foam-light: #F0E4D0;
      --text:       #3D2B1A;
      --text-soft:  #7A5C40;
      --text-muted: #A8896E;
      --border:     #DDD0BE;
      --serif:      'Lora', Georgia, serif;
      --sans:       'Source Sans 3', system-ui, sans-serif;
    }

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body { background: var(--cream); color: var(--text); font-family: var(--sans); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
    a { color: inherit; text-decoration: none; }

    /* NAV */
    nav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 10;
      display: flex; align-items: center; justify-content: space-between;
      padding: 18px 48px;
      background: rgba(250,247,242,0.92);
      backdrop-filter: blur(8px);
      border-bottom: 1px solid var(--border);
    }
    .nav-logo { font-family: var(--serif); font-size: 1rem; color: var(--espresso); }
    .nav-logo span { color: var(--caramel); }
    nav ul { display: flex; gap: 28px; list-style: none; }
    nav a { font-size: 0.875rem; font-weight: 500; color: var(--text-soft); }
    nav a:hover { color: var(--espresso); }

    /* LAYOUT */
    .wrap { max-width: 880px; margin: 0 auto; padding: 88px 48px; }
    .divider { height: 1px; background: var(--border); max-width: 880px; margin: 0 auto; }

    /* TYPOGRAPHY */
    .label { font-size: 0.73rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--caramel); margin-bottom: 14px; }
    h2 { font-family: var(--serif); font-size: 1.9rem; font-weight: 500; color: var(--espresso); line-height: 1.25; margin-bottom: 28px; }

    /* HERO */
    #hero { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; }
    #hero h1 { font-family: var(--serif); font-size: clamp(2.6rem, 5.5vw, 4rem); font-weight: 500; line-height: 1.13; letter-spacing: -0.02em; color: var(--espresso); margin-bottom: 22px; }
    #hero h1 em { font-style: italic; color: var(--coffee); }
    .hero-bio { font-size: 1.05rem; color: var(--text-soft); max-width: 520px; line-height: 1.8; margin-bottom: 34px; }
    .btn-row { display: flex; gap: 12px; flex-wrap: wrap; }
    .btn { display: inline-block; padding: 12px 24px; border-radius: 8px; font-family: var(--sans); font-size: 0.88rem; font-weight: 600; border: none; cursor: pointer; }
    .btn-dark { background: var(--espresso); color: var(--cream); }
    .btn-dark:hover { background: var(--coffee); }
    .btn-outline { background: transparent; color: var(--text-soft); border: 1.5px solid var(--border); }
    .btn-outline:hover { border-color: var(--caramel); color: var(--espresso); }

    /* SOBRE */
    #sobre .inner { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; align-items: start; }
    .sobre-text { color: var(--text-soft); line-height: 1.8; }
    .sobre-text p + p { margin-top: 12px; }
    .cards { display: flex; flex-direction: column; gap: 10px; }
    .card { background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; display: flex; align-items: center; gap: 14px; }
    .card-icon { width: 36px; height: 36px; background: var(--foam-light); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 0.95rem; flex-shrink: 0; }
    .card strong { display: block; font-size: 0.86rem; color: var(--espresso); }
    .card span { font-size: 0.78rem; color: var(--text-muted); }

    /* SKILLS */
    .skills-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(195px, 1fr)); gap: 12px; }
    .skill-group { background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 18px; }
    .skill-group-name { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--caramel); margin-bottom: 10px; }
    .tags { display: flex; flex-wrap: wrap; gap: 5px; }
    .tag { font-size: 0.76rem; font-weight: 500; padding: 3px 9px; border-radius: 20px; background: var(--foam-light); color: var(--coffee); border: 1px solid var(--foam); }

    /* PROYECTOS */
    #proyectos { background: var(--cream-dark); }
    .projects-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
    .pcard { background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 22px; display: flex; flex-direction: column; gap: 10px; }
    .pcard.wide { grid-column: span 2; display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
    .ptype { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--caramel); }
    .pname { font-family: var(--serif); font-size: 1.1rem; color: var(--espresso); }
    .pname.big { font-size: 1.35rem; }
    .pdesc { font-size: 0.86rem; color: var(--text-soft); line-height: 1.7; }
    .pstack { display: flex; flex-wrap: wrap; gap: 5px; margin-top: auto; }
    .stag { font-size: 0.72rem; font-weight: 600; padding: 3px 8px; border-radius: 4px; background: var(--cream-dark); color: var(--coffee); border: 1px solid var(--foam); }
    .pbullets { list-style: none; display: flex; flex-direction: column; gap: 7px; }
    .pbullets li { font-size: 0.84rem; color: var(--text-soft); line-height: 1.6; padding-left: 15px; position: relative; }
    .pbullets li::before { content: '→'; position: absolute; left: 0; color: var(--caramel); font-size: 0.76rem; top: 3px; }

    /* EXPERIENCIA */
    .exp { display: grid; grid-template-columns: 145px 1fr; gap: 26px; padding: 26px 0; border-bottom: 1px solid var(--border); }
    .exp:last-child { border-bottom: none; }
    .exp-date { font-size: 0.82rem; color: var(--text-muted); }
    .exp-date strong { display: block; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--caramel); margin-bottom: 4px; }
    .exp-role { font-family: var(--serif); font-size: 1.08rem; color: var(--espresso); margin-bottom: 3px; }
    .exp-co { font-size: 0.85rem; color: var(--caramel); font-weight: 600; margin-bottom: 10px; }
    .exp-desc { font-size: 0.86rem; color: var(--text-soft); line-height: 1.75; }

    /* CONTACTO */
    #contacto { background: var(--espresso); text-align: center; }
    #contacto .label { color: var(--caramel); }
    #contacto h2 { color: var(--cream); margin-bottom: 12px; }
    #contacto h2 em { color: var(--caramel); font-style: italic; }
    .contact-sub { color: var(--foam); font-size: 0.93rem; margin-bottom: 32px; opacity: 0.8; }
    .contact-row { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
    .cbtn { display: inline-block; padding: 12px 24px; border-radius: 8px; font-family: var(--sans); font-size: 0.88rem; font-weight: 600; border: none; cursor: pointer; }
    .cbtn-fill { background: var(--caramel); color: #fff; }
    .cbtn-fill:hover { background: #b57a3e; }
    .cbtn-ghost { background: transparent; color: var(--foam); border: 1.5px solid rgba(255,255,255,0.2); }
    .cbtn-ghost:hover { border-color: var(--caramel); color: var(--caramel); }

    /* FOOTER */
    footer { background: var(--espresso); border-top: 1px solid rgba(255,255,255,0.07); padding: 20px 48px; display: flex; justify-content: space-between; align-items: center; }
    footer span { font-size: 0.78rem; color: var(--text-muted); }
    .f-logo { font-family: var(--serif); font-size: 0.86rem; color: rgba(255,255,255,0.25); }
    .f-logo em { color: var(--caramel); font-style: normal; }

    /* RESPONSIVE */
    @media (max-width: 680px) {
      nav { padding: 16px 20px; }
      nav ul { display: none; }
      .wrap { padding: 64px 20px; }
      #hero { padding: 90px 20px 64px; min-height: auto; }
      #sobre .inner { grid-template-columns: 1fr; gap: 32px; }
      .projects-grid { grid-template-columns: 1fr; }
      .pcard.wide { grid-column: span 1; grid-template-columns: 1fr; }
      .exp { grid-template-columns: 1fr; gap: 4px; }
      #contacto .wrap { padding: 64px 20px; }
      footer { flex-direction: column; gap: 6px; text-align: center; padding: 20px; }
    }