.pf{--ink:#102521;--muted:#52625e;--paper:#f5f7f4;--accent:#c8f36b;--line:#d5ded6;font:16px/1.65 Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);overflow-wrap:break-word}.pf *{box-sizing:border-box}.pf a{color:inherit;text-decoration:none}.pf h1,.pf h2,.pf h3,.pf p{margin:0}.pf h1,.pf h2,.pf h3{line-height:1.08;letter-spacing:-.045em}.pf h1{font-size:clamp(3rem,5.6vw,5.7rem);font-weight:600}.pf h1 em{font-style:normal;color:#497320}.pf h2{font-size:clamp(2rem,3.6vw,3.4rem);font-weight:500}.pf h3{font-size:1.5rem;font-weight:500}.pf p{color:var(--muted)}.pf a:focus-visible,.pf button:focus-visible,.pf summary:focus-visible{outline:3px solid #3973c8;outline-offset:5px}.pf-header{max-width:1440px;margin:auto;padding:26px 5%;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.pf .brand{display:flex;align-items:center;gap:12px;font-size:1.05rem;font-weight:600;line-height:1.4}.pf .brand-icon{font-size:24px;background:var(--ink);color:var(--accent);padding:8px;border-radius:4px}.pf .brand-sub{display:block;font-size:12px;letter-spacing:.09em;color:var(--muted)}.pf nav{display:flex;gap:22px;flex-wrap:wrap}.pf nav a{font-size:14px}.pf nav a:hover,.pf .text-link:hover{text-decoration:underline;text-underline-offset:5px}.pf .hero,.pf .section,.pf-footer{max-width:1440px;margin:auto;padding:88px 5%}.pf .hero{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:7%;padding-top:90px;padding-bottom:90px}.pf .eyebrow{font-family:monospace;font-size:13px;letter-spacing:.12em;margin-bottom:28px;color:#41604d}.pf .lead{font-size:19px;max-width:600px;margin:28px 0 32px}.pf .actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap}.pf .button{display:inline-flex;align-items:center;gap:35px;padding:15px 23px;background:var(--ink);color:white;border:1px solid var(--ink);font-size:15px;border-radius:3px}.pf .button:hover{background:#2c493b}.pf .text-link{font-size:15px}.pf .hero-foot{font-size:13px;margin-top:44px}.pf .system{background:var(--ink);color:#eff7ef;padding:26px;border-radius:8px;box-shadow:14px 14px 0 #e3e9e1;transform:rotate(1deg)}.pf .system-top{display:flex;justify-content:space-between;font:12px monospace;letter-spacing:.06em;margin-bottom:26px;gap:15px}.pf .dot{height:8px;width:8px;flex-shrink:0;border-radius:50%;background:var(--accent);margin-top:4px}.pf .system-node{border:1px solid #466055;padding:18px 22px;border-radius:4px;display:flex;flex-direction:column}.pf .system-node small{font:12px monospace;color:#b8c8bf}.pf .system-node strong{font-size:26px;font-weight:500}.pf .system-node>span{font-size:14px;color:#c6d3cb}.pf .system-node.primary{background:var(--accent);color:var(--ink);border-color:var(--accent)}.pf .primary small,.pf .primary>span{color:#3e502f}.pf .connector{display:flex;align-items:center;gap:18px;padding:8px 20px;color:var(--accent)}.pf .connector span{color:#c6d3cb;font:12px monospace}.pf .system-bottom{font:11px monospace;letter-spacing:.08em;color:#c6d3cb;margin-top:24px}.pf .section{border-top:1px solid var(--line)}.pf .about,.pf .tech,.pf .experience{display:grid;grid-template-columns:1fr 1fr;gap:8%}.pf .about p+p{margin-top:18px}.pf .large{font-size:23px;color:var(--ink)}.pf .principles{display:flex;flex-wrap:wrap;gap:9px;margin-top:25px}.pf .principles span{font-size:12px;border:1px solid var(--line);padding:5px 10px;border-radius:25px}.pf .section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:45px}.pf .section-heading>p{max-width:390px}.pf .services{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.pf .service{padding:32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.pf .number{display:block;font:14px monospace;color:#61823d;margin-bottom:32px}.pf .service p{margin:20px 0 28px}.pf .meta{font:12px monospace;letter-spacing:.025em;color:#476147}.pf .tech{background:#e9eee6}.pf .tech h2+p,.pf .experience h2+p{margin-top:24px;max-width:450px}.pf .tech-list>div{display:flex;flex-direction:column;padding:22px 0;border-bottom:1px solid #c5d1c2;gap:8px}.pf .tech-list>div:first-child{padding-top:0}.pf .tech-list span{font:13px monospace;color:var(--muted)}.pf .tech-list strong{font-size:19px;font-weight:500}.pf .projects{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.pf .project{background:white;border:1px solid var(--line);padding:30px;display:flex;flex-direction:column}.pf .project h3{margin:28px 0 20px;font-size:28px}.pf .project details{border-top:1px solid var(--line);margin-top:28px;padding-top:17px}.pf summary{cursor:pointer;font-size:14px;display:flex;justify-content:space-between;gap:12px}.pf summary span{color:#497320}.pf details[open] summary span{transform:rotate(45deg)}.pf details h4{font-size:14px;margin:20px 0 6px}.pf details p{font-size:14px}.pf .project-label{font:11px monospace;color:#61705f;padding-top:26px;margin-top:auto}.pf .timeline article{display:flex;gap:25px;border-bottom:1px solid var(--line);padding:26px 0}.pf .timeline article:first-child{padding-top:0}.pf .timeline article>span{font:13px monospace;color:#61823d}.pf .timeline p{margin-top:12px}.pf .contact{background:var(--ink);color:#fff;text-align:center;padding:80px 10%}.pf .contact .eyebrow{color:var(--accent)}.pf .contact h2{font-size:clamp(2.5rem,5vw,4.8rem)}.pf .contact>p:not(.eyebrow){max-width:660px;margin:26px auto;color:#c5d2c8;font-size:18px}.pf .contact .actions{justify-content:center;margin-top:30px}.pf .contact .button{background:var(--accent);color:var(--ink)}.pf .contact .contact-note{font-size:14px!important}.pf-footer{display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap;padding-top:28px;padding-bottom:28px;font-size:13px}.pf-footer>span:nth-child(2){font:11px monospace;align-self:center}.pf .skip{position:absolute;top:-100px;left:15px;background:white;padding:15px;z-index:10}.pf .skip:focus{top:10px}.pf .menu-toggle{display:none;font:inherit;background:transparent;border:1px solid var(--line);padding:8px 12px;color:var(--ink)}@media(max-width:1100px){.pf-header{align-items:flex-start;flex-wrap:wrap}.pf nav{gap:16px}.pf .hero{gap:5%}.pf .service{padding:25px}.pf .projects{gap:14px}.pf .project{padding:22px}}@media(max-width:760px){.pf-header{gap:16px;align-items:center}.pf .menu-toggle:not([hidden]){display:block;margin-left:auto}.pf nav{width:100%;display:flex;gap:0;flex-direction:column}.pf-header:has(.menu-toggle:not([hidden])) nav:not(.is-open){display:none}.pf nav a{padding:10px 0}.pf .hero,.pf .about,.pf .tech,.pf .experience{grid-template-columns:1fr;gap:42px}.pf .hero,.pf .section{padding:56px 6%}.pf .hero{padding-top:45px}.pf .hero h1{font-size:clamp(2.8rem,10vw,4rem)}.pf .lead{font-size:18px}.pf .system{transform:none;margin-right:10px}.pf .section-heading{display:block}.pf .section-heading>p{margin-top:25px}.pf .services,.pf .projects{grid-template-columns:1fr}.pf .service,.pf .project{padding:28px}.pf .number{margin-bottom:22px}.pf .contact{padding:60px 6%}.pf-footer{padding:25px 6%}.pf .actions{gap:20px}.pf .eyebrow{font-size:12px}}@media(prefers-reduced-motion:reduce){.pf *{transition:none!important;scroll-behavior:auto!important}}@media print{.pf nav,.pf .menu-toggle,.pf .actions,.pf .skip{display:none!important}.pf .hero,.pf .section{padding:24px 0;break-inside:avoid}.pf .hero{grid-template-columns:1fr}.pf .system{display:none}.pf .contact{background:white;color:black}.pf .contact p{color:black!important}}

/* Identidad visual Ceros y Unos */
.pf{--ink:#eaf5ff;--muted:#adc2d2;--paper:#030d19;--accent:#00e397;--line:#20384b;background:radial-gradient(ellipse at 0 0,#062345 0,transparent 45%),#030d19;color:var(--ink)}
.pf .brand-logo{width:84px;height:67px;object-fit:contain;border-radius:7px}.pf .brand{font-size:1.1rem}.pf .hero-logo{display:block;width:100%;height:auto;border-radius:8px;margin-bottom:24px}.pf .hero h1 em{color:#00e397}.pf .eyebrow,.pf .number,.pf .meta,.pf .timeline article>span,.pf summary span{color:#00c5ef}.pf .button,.pf .contact .button{background:linear-gradient(110deg,#00b9f3,#00e397);border-color:transparent;color:#02121d;font-weight:700}.pf .button:hover{background:#66edda}.pf .system{background:#061525;box-shadow:12px 12px 0 #07303b;transform:none;border:1px solid #15516a}.pf .system-node{border-color:#254758}.pf .system-node.primary{background:linear-gradient(110deg,#00b9f3,#00e397);color:#031521}.pf .primary small,.pf .primary>span{color:#093044}.pf .tech,.pf .project{background:#081b2b}.pf .tech-list>div{border-color:var(--line)}.pf .project-label{color:#94b9c8}.pf .contact{background:linear-gradient(115deg,#042346,#033429)}.pf .contact>p:not(.eyebrow){color:#c2dbe5}.pf .service:hover{background:#081e30}.pf .skip{background:#062345}.pf a:focus-visible,.pf button:focus-visible,.pf summary:focus-visible{outline-color:#00e397}.pf-footer{background:#030d19}.pf .hero{grid-template-columns:1.25fr 1fr}.pf .system-top{margin-bottom:16px}@media(max-width:760px){.pf .hero{grid-template-columns:1fr}.pf .brand-logo{width:66px;height:53px}.pf .brand-sub{font-size:10px}.pf .system{margin-right:8px}}

.pf .language-switch{display:flex;gap:6px;flex-shrink:0}.pf .language-switch button{font:inherit;font-size:14px;padding:8px;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;border-radius:6px}.pf .language-switch button[aria-pressed="true"]{background:#102521;color:white}.pf-header{flex-wrap:wrap}.pf .language-switch button:focus-visible{outline:3px solid #008f78;outline-offset:3px}

/* Readable solution details in the dark theme. */
.pf .project details h4,.pf .project details summary{color:#e9f5ff}.pf .project details p{color:#bdd4df;font-size:16px;line-height:1.65}.pf .project details[open]{height:auto;overflow:visible}.pf .project details h4{font-size:16px}

.pf .cyu-form{max-width:720px;margin:48px auto 0;text-align:left;padding:28px;border:1px solid #285064;border-radius:12px;background:#071b2b}.pf .cyu-form h3{color:#e9f5ff;margin:0 0 24px}.pf .cyu-form label{display:block;color:#e9f5ff;font-size:16px;margin-bottom:20px}.pf .cyu-form input,.pf .cyu-form textarea{display:block;width:100%;box-sizing:border-box;margin-top:8px;padding:12px;border:1px solid #4b7184;border-radius:6px;background:#03121e;color:white;font:inherit}.pf .cyu-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.pf .cyu-form .cyu-note,.pf .cyu-form .cyu-status{font-size:14px;line-height:1.6}.pf .cyu-honey{position:absolute;left:-10000px}.pf .cyu-form button:disabled{opacity:.65;cursor:wait}.pf .cyu-form :focus-visible{outline:2px solid #00d694;outline-offset:3px}@media(max-width:600px){.pf .cyu-form-grid{grid-template-columns:1fr;gap:0}.pf .cyu-form{padding:20px}}
