@import"https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:wght@400;500;600;700&family=Source+Serif+4:opsz,wght@8..60,500;8..60,600&display=swap";:root{color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Schibsted Grotesk,Aptos,Segoe UI,sans-serif;background:#f6f8fa;color:#0e0f11;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;font-synthesis:none}button,input,textarea,select{font:inherit}:root{--paper: #f8f8f9;--surface: #fcfcfd;--ink: #27272a;--muted: #62636a;--soft: #e5e7eb;--line: #c9cbd1;--line-strong: #303236;--toolbar-bg: rgba(248, 248, 249, .92);--paper-shadow: rgba(39, 39, 42, .09);--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem;--space-2xl: 2rem;--space-3xl: 3rem;--space-4xl: 4rem;--body-font: "Schibsted Grotesk", "Aptos", "Segoe UI", sans-serif;--display-font: "Source Serif 4", "Iowan Old Style", Georgia, serif}.app-root[data-theme=dark]{--paper: #1f1f23;--surface: #27272c;--ink: #f1f1f4;--muted: #b4b4bb;--soft: #3f3f46;--line: #56565e;--line-strong: #dedee3;--toolbar-bg: rgba(31, 31, 35, .92);--paper-shadow: rgba(0, 0, 0, .26)}.app-root{min-height:100svh;background:var(--paper);color:var(--ink)}.site-toolbar{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:var(--toolbar-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.toolbar-inner{width:min(1120px,100%);margin:0 auto;padding:var(--space-md) var(--space-xl);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-lg)}.toolbar-center{justify-self:center}.toolbar-brand{color:var(--ink);font-size:.86rem;font-weight:700;text-decoration:none;text-transform:uppercase}.toolbar-controls{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);flex-wrap:wrap}.segmented-control{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;border:1px solid var(--line)}.segmented-control button,.theme-toggle,.download-btn{min-height:2.5rem;border:0;border-radius:0;background:transparent;color:var(--muted);font:inherit;font-size:.82rem;font-weight:700;cursor:pointer;transition:background-color .16s ease,color .16s ease,border-color .16s ease}.segmented-control button{min-width:3.25rem;padding:0 var(--space-md)}.segmented-control button+button{border-left:1px solid var(--line)}.segmented-control button:hover,.theme-toggle:hover{color:var(--ink)}.segmented-control button.active,.theme-toggle{background:var(--ink);color:var(--surface)}.theme-toggle{min-width:4.5rem;padding:0 var(--space-md);border:1px solid var(--ink);display:flex;align-items:center;justify-content:center;gap:.4rem}.app-content{min-height:calc(100svh - 4.25rem);padding:var(--space-3xl) var(--space-xl)}.cv-page,.portfolio-page{width:min(1120px,100%);margin:0 auto;background:var(--surface);border:1px solid var(--line);box-shadow:0 24px 80px var(--paper-shadow);overflow:hidden}.cv-hero{display:grid;gap:var(--space-sm);padding:var(--space-4xl);border-bottom:2px solid var(--line-strong)}.cv-hero,.cv-layout,.cv-sidebar,.cv-main,.entry-header,.skill-row,.project-card,.project-body{min-width:0}.cv-identity{display:grid;gap:var(--space-sm);min-width:0}.cv-kicker{margin:0;color:var(--muted);font-size:.82rem;font-weight:700;text-transform:uppercase}.cv-hero h1,.portfolio-hero h1{margin:0;font-family:var(--display-font);font-weight:600;line-height:.92}.cv-hero h1{max-width:20ch;font-size:5.5rem}.cv-title{margin:var(--space-sm) 0 0;font-size:1rem;font-weight:700;text-transform:uppercase}.download-btn{min-width:auto;padding:0 var(--space-md);border:1px solid var(--ink);background:var(--ink);color:var(--surface)}.download-btn:hover{background:transparent;color:var(--ink)}.download-btn:disabled,.download-btn:disabled:hover{cursor:wait;opacity:.72;background:var(--ink);color:var(--surface)}.download-btn:focus-visible,.theme-toggle:focus-visible,.segmented-control button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.cv-layout{display:grid;grid-template-columns:minmax(320px,.55fr) minmax(0,1fr);min-height:680px}.cv-sidebar{display:grid;align-content:start;gap:var(--space-2xl);padding:var(--space-3xl) var(--space-2xl) var(--space-4xl) var(--space-4xl);border-right:1px solid var(--line)}.cv-main{display:grid;align-content:start;gap:var(--space-3xl);padding:var(--space-3xl) var(--space-4xl) var(--space-4xl) var(--space-3xl)}.cv-section{display:grid;gap:var(--space-lg)}.cv-section h2,.project-detail-grid h3{margin:0;padding-bottom:var(--space-sm);border-bottom:1px solid var(--line-strong);font-size:.78rem;font-weight:700;text-transform:uppercase}.cv-section h3,.cv-section p,.project-card h2,.project-card h3,.project-card p{margin:0}.cv-section address{margin:0;font-style:normal}.cv-section p,.project-summary{color:var(--muted);line-height:1.7}.cv-page{--cv-content-color: #52535b;--cv-content-font-size: 1.03rem}.app-root[data-theme=dark] .cv-page{--cv-content-color: #c6c6cd}.cv-page .cv-section p,.cv-page .entry-header p,.cv-page .entry-header time,.cv-page .entry-note,.cv-page .plain-list,.cv-page .skill-row dd,.cv-page .language-list li{color:var(--cv-content-color);font-size:var(--cv-content-font-size)}.contact-list{display:grid;gap:var(--space-sm);margin:0;padding:0;color:var(--muted);font-style:normal;list-style:none}.contact-list li{display:grid;grid-template-columns:1.25rem minmax(0,1fr);gap:var(--space-sm);align-items:center;min-height:1.75rem}.contact-icon{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.55}.contact-list a,.cv-section a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:.18em;text-decoration-thickness:1px;transition:text-decoration-color .16s ease,color .16s ease;cursor:pointer}.contact-list a:hover,.cv-section a:hover{color:var(--ink);text-decoration-color:var(--ink)}.contact-list li,.cv-section p,.entry-header h3,.entry-header p,.plain-list,.skill-row dd,.language-list li,.project-summary,.stack-list{overflow-wrap:anywhere}.entry-list{display:grid;gap:var(--space-2xl)}.entry-list.compact{gap:var(--space-xl)}.entry{display:grid;gap:var(--space-md);padding-top:var(--space-xl);border-top:1px solid var(--soft)}.entry:first-child{padding-top:0;border-top:0}.entry-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-xl);align-items:start}.entry-context{color:var(--muted)}.entry-header h3{font-size:1.08rem;line-height:1.3}.entry-header p,.entry-header time,.entry-note,.project-heading p{color:var(--muted);font-size:.92rem}.entry-header time{white-space:nowrap}.plain-list{display:grid;gap:var(--space-sm);margin:0;padding:0;color:var(--muted);line-height:1.65;list-style:none}.plain-list li{position:relative;padding-left:var(--space-lg)}.plain-list li:before{content:"";position:absolute;top:.72em;left:0;width:.32rem;height:.32rem;border:1px solid var(--ink);transform:rotate(45deg)}.skills-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.45fr);gap:var(--space-2xl)}.skills-flat{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-xl);margin:0}.skill-list{display:grid;gap:var(--space-md)}.skill-list h3{color:var(--ink);font-size:.95rem}.skill-list dl{display:grid;gap:var(--space-md);margin:0}.skill-row{display:grid;gap:var(--space-xs)}.skill-row dt{font-weight:700}.skill-row dd{margin:0;color:var(--muted);line-height:1.5}.language-list{display:grid;gap:var(--space-sm);margin:0;padding:0;list-style:none}.language-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--soft);color:var(--muted)}.language-list li span:first-child{color:var(--ink);font-weight:700}.portfolio-page{display:grid}.portfolio-hero{display:grid;gap:var(--space-md);padding:var(--space-4xl);border-bottom:2px solid var(--line-strong)}.portfolio-hero h1{font-size:4.8rem}.portfolio-hero p:last-child{margin:0;max-width:42rem;color:var(--muted);line-height:1.6}.project-list{display:grid}.project-card{display:grid;grid-template-columns:6rem minmax(0,1fr);border-top:1px solid var(--line)}.project-card:first-child{border-top:0}.project-card-pending{opacity:.56;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--line) 24%,transparent) 0,color-mix(in srgb,var(--line) 24%,transparent) 1px,transparent 1px,transparent 14px),color-mix(in srgb,var(--surface) 74%,var(--paper))}.project-card-pending .project-link{pointer-events:none}.project-index{padding:var(--space-2xl);border-right:1px solid var(--line);color:var(--muted);font-family:var(--display-font);font-size:2rem;line-height:1}.project-body{display:grid;gap:var(--space-xl);padding:var(--space-2xl)}.project-heading{display:flex;align-items:start;justify-content:space-between;gap:var(--space-xl)}.project-link{align-self:start;display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:0 var(--space-md);border:1px solid var(--line);background:transparent;color:var(--ink);text-decoration:none;font-size:.82rem;font-weight:700;transition:background-color .16s ease,color .16s ease,border-color .16s ease}.project-link:hover{background:var(--ink);color:var(--surface);border-color:var(--ink)}.project-heading h2{font-size:clamp(1.5rem,3vw,2.5rem);line-height:1}.project-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.42fr);gap:var(--space-2xl)}.project-detail-grid>div{display:grid;align-content:start;gap:var(--space-md)}.stack-list{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.stack-list span{padding:.42rem .65rem;border:1px solid var(--line);color:var(--muted);font-size:.82rem;font-weight:700}@media (max-width: 900px) and not print{.toolbar-inner{align-items:flex-start;flex-direction:column}.toolbar-controls{width:100%;justify-content:flex-start}.app-content{padding:var(--space-xl) var(--space-lg)}.cv-hero{grid-template-columns:1fr;padding:var(--space-3xl) var(--space-2xl)}.cv-hero h1{max-width:none;font-size:4rem}.download-btn{width:100%}.cv-layout{grid-template-columns:1fr}.cv-sidebar,.cv-main{padding:var(--space-2xl)}.cv-sidebar{border-right:0;border-bottom:1px solid var(--line)}.skills-grid,.project-detail-grid{grid-template-columns:1fr}}@media (max-width: 620px) and not print{.app-content{padding:0}.toolbar-inner{padding:var(--space-md)}.toolbar-controls{display:grid;grid-template-columns:1fr 1fr}.theme-toggle{grid-column:1 / -1;width:100%}.segmented-control{width:100%}.segmented-control button{width:100%;min-width:0}.cv-page,.portfolio-page{border-left:0;border-right:0}.cv-hero,.cv-sidebar,.cv-main,.portfolio-hero,.project-body{padding:var(--space-xl)}.cv-hero h1{font-size:2.6rem}.portfolio-hero h1{font-size:2.8rem}.entry-header,.language-list li,.project-card{grid-template-columns:1fr;gap:var(--space-xs)}.entry-header time{white-space:normal}.project-index{padding:var(--space-xl) var(--space-xl) 0;border-right:0}}@media print{@page{size:A4;margin:0}html{font-size:71%}.app-root,.app-root[data-theme=dark]{--paper: #ffffff;--surface: #ffffff;--ink: #1a1a1d;--muted: #4a4b52;--soft: #e3e5e9;--line: #c9cbd1;--line-strong: #2a2c30;--cv-content-color: #3a3b42}.app-root{background:#fff;print-color-adjust:exact;-webkit-print-color-adjust:exact}.site-toolbar,.portfolio-page{display:none}.app-content{min-height:0;padding:0}.cv-page{width:210mm;margin:0;border:0;box-shadow:none;overflow:visible}.cv-hero{gap:var(--space-xs);padding:var(--space-xl) var(--space-3xl) var(--space-md)}.cv-hero h1{max-width:none;font-size:4.85rem;line-height:.94}.cv-title{margin-top:var(--space-xs)}.cv-sidebar{gap:var(--space-xl);padding:var(--space-2xl) var(--space-2xl) var(--space-3xl) var(--space-3xl)}.cv-main{gap:var(--space-2xl);padding:var(--space-2xl) var(--space-3xl) var(--space-3xl) var(--space-2xl)}.cv-layout{grid-template-columns:minmax(0,.55fr) minmax(0,1fr);min-height:0}.cv-page[lang=es],.cv-page[lang=en]{--cv-content-font-size: .94rem}.cv-page[lang=en] .cv-hero{padding-block:var(--space-lg) var(--space-sm)}.cv-page[lang=en] .cv-sidebar,.cv-page[lang=en] .cv-main{gap:var(--space-lg);padding-top:var(--space-xl);padding-bottom:var(--space-xl)}.cv-page[lang=en] .cv-section{gap:var(--space-md)}.cv-page[lang=en] .entry-list{gap:var(--space-lg)}.cv-page[lang=en] .entry-list.compact{gap:var(--space-md)}.cv-page[lang=en] .entry{gap:var(--space-sm);padding-top:var(--space-lg)}.cv-page[lang=en] .plain-list{gap:var(--space-xs);line-height:1.52}.cv-page[lang=en] .cv-section p,.cv-page[lang=en] .skill-row dd{line-height:1.55}.cv-page[lang=es] .cv-hero{padding-block:var(--space-lg) var(--space-sm)}.cv-page[lang=es] .cv-sidebar,.cv-page[lang=es] .cv-main{gap:var(--space-lg);padding-top:var(--space-xl);padding-bottom:var(--space-xl)}.cv-page[lang=es] .cv-section{gap:var(--space-md)}.cv-page[lang=es] .entry-list{gap:var(--space-lg)}.cv-page[lang=es] .entry-list.compact{gap:var(--space-md)}.cv-page[lang=es] .entry{gap:var(--space-sm);padding-top:var(--space-lg)}.cv-page[lang=es] .plain-list{gap:var(--space-xs);line-height:1.52}.cv-page[lang=es] .cv-section p,.cv-page[lang=es] .skill-row dd{line-height:1.55}.entry-header h3,.cv-section h3,.skill-row dt,.language-list li span:first-child{overflow-wrap:normal;word-break:normal}.entry,.skill-list,.skill-row,.entry-header,.language-list li{break-inside:avoid}}
