@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap");:root{--ink:#24231f;--muted:#77736b;--paper:#f8f7f2;--orange:#e6673b;--line:#e6e3da;--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.wrap{width:min(1160px,calc(100% - 64px));margin-inline:auto}.site-header{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-size:29px;font-weight:700;letter-spacing:-3px}.wordmark span{color:var(--orange)}.brand-lockup{display:inline-flex;align-items:center;gap:11px}.senyera{width:25px;height:17px;display:grid;grid-template-rows:repeat(9,1fr);overflow:hidden;border-radius:2px;background:#f6c445;box-shadow:0 0 0 1px rgba(36,35,31,.12)}.senyera i:nth-child(2n){background:#c7353d}.intro-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:var(--paper);animation:loader-dismiss .55s ease 1.75s forwards;pointer-events:none}.intro-loader-wordmark{position:absolute;font-size:42px;font-weight:700;letter-spacing:-5px;opacity:0;animation:loader-wordmark .75s cubic-bezier(.2,.7,.25,1) .12s both}.intro-loader-wordmark span{color:var(--orange)}.intro-loader-flag{position:absolute;width:0;height:25px;display:grid;grid-template-rows:repeat(9,1fr);overflow:hidden;border-radius:2px;opacity:0;box-shadow:0 0 0 1px rgba(36,35,31,.12);animation:loader-flag .8s cubic-bezier(.2,.7,.25,1) .72s both}.intro-loader-flag i{background:#f6c445;transform:scaleX(.15);transform-origin:center;animation:flag-stripe .5s cubic-bezier(.2,.7,.25,1) 1.12s both}.intro-loader-flag i:nth-child(2n){background:#c7353d}body>main{animation:site-appear .65s ease 1.35s both}@keyframes loader-wordmark{0%{opacity:0;transform:translateY(5px) scale(.97)}25%,65%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-3px) scale(.96)}}@keyframes loader-flag{0%{opacity:0;width:0;transform:scale(.9)}20%{opacity:1}65%{opacity:1;width:38px;transform:scale(1)}to{opacity:1;width:38px;transform:scale(1)}}@keyframes flag-stripe{to{transform:scaleX(1)}}@keyframes loader-dismiss{to{visibility:hidden;opacity:0}}@keyframes site-appear{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.intro-loader{display:none}body>main{animation:none}}nav{display:flex;align-items:center;gap:38px;font-size:12px;color:#514e48}nav a{transition:color .2s}.footer a:hover,nav a:hover{color:var(--orange)}.nav-contact{border:1px solid #d9d5cb;border-radius:99px;padding:11px 17px}.nav-contact span{color:var(--orange);margin-left:8px}.hero{min-height:620px;display:grid;grid-template-columns:1fr .9fr;align-items:center;position:relative;padding-block:74px 100px;grid-gap:50px;gap:50px}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:1.5px;color:var(--muted);font-weight:600;margin:0 0 22px}.availability-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#6c9b70;margin-right:7px;vertical-align:1px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(52px,6.5vw,84px);line-height:1.03;letter-spacing:-4.5px;margin:0 0 25px}h1,h1 em,h2 em{font-weight:500}h1 em,h2 em{font-family:var(--serif);color:var(--orange)}.hero-intro{font-size:15px;color:#706c64;line-height:1.8;max-width:390px;margin-bottom:30px}.text-link{display:inline-flex;align-items:center;gap:18px;font-size:12px;font-weight:600;border-bottom:1px solid #bcb7ac;padding-bottom:10px}.text-link span{color:var(--orange);font-size:16px}.hero-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.certificate-link span{margin-left:2px}.hero-art{height:390px;max-width:445px;width:100%;justify-self:end;position:relative;overflow:hidden;background:#f0e9dc;border-radius:48% 48% 5px 5px}.art-sun{position:absolute;width:155px;height:155px;border-radius:50%;background:#ed8153;top:70px;left:calc(50% - 78px)}.art-disc{position:absolute;width:255px;height:255px;border:1px solid rgba(53,50,43,.35);border-radius:50%;top:122px;left:calc(50% - 127px);box-shadow:0 0 0 23px rgba(240,233,220,.5),0 0 0 24px rgba(53,50,43,.2)}.art-orbit{position:absolute;border:1px solid rgba(53,50,43,.22);border-radius:50%;transform:rotate(-32deg)}.orbit-one{width:370px;height:120px;top:160px;left:calc(50% - 185px)}.orbit-two{width:300px;height:90px;top:196px;left:calc(50% - 150px);transform:rotate(30deg)}.art-caption{bottom:28px;left:29px;font-size:9px;text-transform:uppercase;line-height:1.7;color:#625e55}.art-caption,.hero-index{position:absolute;letter-spacing:1px}.hero-index{bottom:39px;left:0;right:0;display:flex;justify-content:space-between;color:#8a867e;font-size:10px}.projects-section{background:#f0eee7;padding:105px 0 112px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:43px}.section-heading .eyebrow{margin-bottom:14px}h2{font-size:48px;letter-spacing:-2px;line-height:1.1;font-weight:500;margin-bottom:0}.section-heading>p{font-size:12px;color:var(--muted);max-width:270px;line-height:1.7;margin:0 0 5px}.section-index{text-align:right;margin-top:34px;color:#8a867e;font-size:10px;letter-spacing:1px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:24px;gap:24px}.project-art{height:285px;position:relative;display:grid;place-items:center;overflow:hidden}.project-art:after,.project-art:before{content:"";position:absolute;border-radius:50%;border:1px solid;opacity:.25}.project-art:before{width:220px;height:220px}.project-art:after{width:165px;height:165px}.clay{background:#d9a48d;color:#743d2d}.blue{background:#b7c4cb;color:#344c59}.green{background:#bbc3a4;color:#455339}.upc-blue{background:#b7c4cb;color:#344c59}.stucom-red{background:#d9a48d;color:#743d2d}.im-navy{background:#172b45;color:#e3e9f2}.project-mark{font-family:var(--serif);font-size:100px;line-height:1;z-index:1}.blue .project-mark,.upc-blue .project-mark{font-family:var(--sans);font-size:62px;font-weight:600;letter-spacing:-7px}.green .project-mark{font-size:145px}.school-logo-panel{position:relative;z-index:1;width:min(78%,290px);min-height:112px;padding:18px 22px;display:flex;align-items:center;justify-content:center;gap:18px;background:#fff;border:1px solid rgba(25,35,45,.08);border-radius:5px;box-shadow:0 8px 24px rgba(0,0,0,.12)}.school-logo{display:block;width:auto;height:auto;max-width:100%;max-height:70px;object-fit:contain}.school-logo[alt^=Universitat]{max-width:155px;max-height:70px}.school-logo[alt=ETSEIB]{max-width:54px;max-height:72px;padding-left:14px;border-left:1px solid #d9dde2}.school-logo[alt=STUCOM]{width:185px;max-height:58px}.school-logo[alt="Institució Montserrat"]{max-width:145px;max-height:76px}.project-arrow,.project-number{position:absolute;top:17px;font-size:10px;letter-spacing:1px}.project-number{left:18px}.project-arrow{right:18px;font-size:15px}.project-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-top:20px}.project-meta span:last-child{color:var(--orange);font-size:14px}h3{font-family:var(--serif);font-size:24px;font-weight:500;margin:9px 0 7px}.project-card>p{font-size:11px;line-height:1.7;color:var(--muted);max-width:290px;margin-bottom:0}.certifications-section{padding-block:100px 110px}.certification-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px}.certification-card{min-height:220px;border:1px solid var(--line);padding:22px 23px;background:rgba(255,255,255,.35);display:flex;flex-direction:column;align-items:flex-start}.certification-top{width:100%;min-height:42px;display:flex;justify-content:space-between;align-items:center;margin-bottom:29px;color:var(--muted);font-size:10px;letter-spacing:1px}.certification-logo{display:block;width:auto;height:32px;max-width:145px;object-fit:contain;object-position:right center}.certification-card .eyebrow{font-size:9px;margin-bottom:8px}.certification-card h3{margin:0 0 18px}.certification-date{margin:auto 0 0;color:var(--muted);font-size:10px}.about-section{padding-block:112px 105px}.about-section>.eyebrow{margin-bottom:30px}.about-content{display:grid;grid-template-columns:1.4fr .6fr;grid-gap:80px;gap:80px;align-items:end}.about-content h2{font-size:clamp(34px,4vw,50px);max-width:700px;line-height:1.2}.about-aside p{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:24px}.skills{border-top:1px solid var(--line);margin-top:70px;padding-top:20px;display:flex;gap:10px;flex-wrap:wrap}.skills span{border:1px solid #dcd8ce;border-radius:99px;padding:10px 15px;font-size:10px;color:#666157}.footer{background:#272722;color:#f8f7f2;padding:77px 0 25px}.footer .eyebrow{color:#aaa69b;margin-bottom:14px}.footer h2{font-size:57px}.footer h2 em{color:#ee8a62}.footer-inner{display:grid;grid-template-columns:1fr auto;align-items:end}.footer-email{font-family:var(--serif);font-size:20px;border-bottom:1px solid #646158;padding-bottom:12px}.footer-email span{font-family:var(--sans);color:#ee8a62;margin-left:16px}.footer-bottom{grid-column:1/-1;border-top:1px solid #48473f;margin-top:78px;padding-top:20px;display:flex;align-items:center;justify-content:space-between;color:#aaa69b;font-size:10px}.footer-bottom .wordmark{color:#f8f7f2}.footer-bottom>div{display:flex;gap:22px}@media(max-width:760px){.wrap{width:min(100% - 40px,560px)}.site-header{height:76px}nav{gap:12px;font-size:10px}nav>a[href="#sobre-mi"]{display:none}.hero{grid-template-columns:1fr;padding-block:65px 76px;gap:42px}.hero-art{height:340px;justify-self:center;max-width:390px}.hero-index{bottom:25px}.section-heading{display:block}.section-heading>p{margin-top:17px}.certification-grid,.project-grid{grid-template-columns:1fr;gap:35px}.project-art{height:340px}.projects-section{padding:75px 0}.certifications-section{padding-block:76px}.certification-card{min-height:200px}.about-section{padding-block:78px}.about-content{grid-template-columns:1fr;gap:24px}.about-content h2{font-size:38px}.about-aside{max-width:390px}.skills{margin-top:46px}.footer{padding-top:60px}.footer-inner{grid-template-columns:1fr;gap:30px}.footer-email{justify-self:start}.footer-bottom{margin-top:35px;gap:16px;flex-wrap:wrap}.footer-bottom>div{order:4;width:100%}}@media(max-width:420px){h1{font-size:52px;letter-spacing:-3px}.nav-contact{padding:9px 12px}nav{gap:12px}.hero-art{height:300px}.project-art{height:285px}.section-heading h2{font-size:41px}.footer h2{font-size:48px}}